@excalidraw/excalidraw 0.11.0-5346-513c9cb → 0.11.0-76a5bb0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1295,7 +1295,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1295
1295
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1296
1296
 
1297
1297
  "use strict";
1298
- 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 _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .CollabButton.is-collaborating {\\n background-color: var(--button-special-active-bg-color);\\n}\\n.excalidraw .CollabButton.is-collaborating .ToolIcon__icon svg,\\n.excalidraw .CollabButton.is-collaborating .ToolIcon__label {\\n color: var(--icon-green-fill-color);\\n}\\n.excalidraw .CollabButton-collaborators {\\n min-width: 1em;\\n position: absolute;\\n bottom: -5px;\\n padding: 3px;\\n border-radius: 50%;\\n background-color: #40c057;\\n color: #ffffff;\\n font-size: 0.7em;\\n font-family: var(--ui-font);\\n}\\n:root[dir=ltr] .excalidraw .CollabButton-collaborators {\\n right: -5px;\\n}\\n:root[dir=rtl] .excalidraw .CollabButton-collaborators {\\n left: -5px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/CollabButton.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,uDAAA;AAGJ;AADI;;EAEE,mCAAA;AAGN;AACE;EAOE,cAAA;EACA,kBAAA;EACA,YAAA;EACA,YAAA;EACA,kBAAA;EACA,yBCyQS;EDxQT,cCde;EDef,gBAAA;EACA,2BAAA;AALJ;AATI;EACE,WAAA;AAWN;AATI;EACE,UAAA;AAWN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .CollabButton.is-collaborating {\\n background-color: var(--button-special-active-bg-color);\\n\\n .ToolIcon__icon svg,\\n .ToolIcon__label {\\n color: var(--icon-green-fill-color);\\n }\\n }\\n\\n .CollabButton-collaborators {\\n :root[dir=\\\"ltr\\\"] & {\\n right: -5px;\\n }\\n :root[dir=\\\"rtl\\\"] & {\\n left: -5px;\\n }\\n min-width: 1em;\\n position: absolute;\\n bottom: -5px;\\n padding: 3px;\\n border-radius: 50%;\\n background-color: $oc-green-6;\\n color: $oc-white;\\n font-size: 0.7em;\\n font-family: var(--ui-font);\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xsYWJCdXR0b24uc2Nzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQzhIO0FBQ2pCO0FBQzdHLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0Y7QUFDQSxtREFBbUQsZ0RBQWdELDZCQUE2QixHQUFHLGdEQUFnRCw0REFBNEQsR0FBRyxnSUFBZ0ksd0NBQXdDLEdBQUcsMkNBQTJDLG1CQUFtQix1QkFBdUIsaUJBQWlCLGlCQUFpQix1QkFBdUIsOEJBQThCLG1CQUFtQixxQkFBcUIsZ0NBQWdDLEdBQUcsMERBQTBELGdCQUFnQixHQUFHLDBEQUEwRCxlQUFlLEdBQUcsT0FBTyxtTkFBbU4sV0FBVyxXQUFXLE9BQU8sS0FBSyxXQUFXLEtBQUssTUFBTSxXQUFXLEtBQUssS0FBSyxVQUFVLFdBQVcsVUFBVSxVQUFVLFdBQVcsWUFBWSxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxnRUFBZ0UsdUJBQXVCLGtDQUFrQyxJQUFJLGVBQWUsS0FBSyxHQUFHLHFDQUFxQyxzREFBc0Qsa0NBQWtDLCtDQUErQyxPQUFPLG1DQUFtQyx5Q0FBeUMsNkJBQTZCLFdBQVcsOEJBQThCLFdBQVcsT0FBTywwQ0FBMEMsZ0RBQWdELE9BQU8sS0FBSyw2QkFBNkIsa0JBQWtCLGlCQUFpQixLQUFLLEdBQUcsc0RBQXNELGtDQUFrQyxhQUFhLHdDQUF3QyxxREFBcUQsR0FBRyx5Q0FBeUMsaUJBQWlCLG9DQUFvQyw4REFBOEQsb0RBQW9ELDRDQUE0QyxPQUFPLEtBQUssbUNBQW1DLDRCQUE0QixvQkFBb0IsT0FBTyw0QkFBNEIsbUJBQW1CLE9BQU8scUJBQXFCLHlCQUF5QixtQkFBbUIsbUJBQW1CLHlCQUF5QixvQ0FBb0MsdUJBQXVCLHVCQUF1QixrQ0FBa0MsS0FBSyxHQUFHLGtMQUFrTCw2QkFBNkIsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0QywwUUFBMFEsNENBQTRDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCx5RkFBeUYsdWRBQXVkLHFCQUFxQjtBQUNwcVo7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi5zY3NzPzM2MWYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IDMwMnB4O1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuQ29sbGFiQnV0dG9uLmlzLWNvbGxhYm9yYXRpbmcge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLXNwZWNpYWwtYWN0aXZlLWJnLWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkNvbGxhYkJ1dHRvbi5pcy1jb2xsYWJvcmF0aW5nIC5Ub29sSWNvbl9faWNvbiBzdmcsXFxuLmV4Y2FsaWRyYXcgLkNvbGxhYkJ1dHRvbi5pcy1jb2xsYWJvcmF0aW5nIC5Ub29sSWNvbl9fbGFiZWwge1xcbiAgY29sb3I6IHZhcigtLWljb24tZ3JlZW4tZmlsbC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5Db2xsYWJCdXR0b24tY29sbGFib3JhdG9ycyB7XFxuICBtaW4td2lkdGg6IDFlbTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogLTVweDtcXG4gIHBhZGRpbmc6IDNweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MGMwNTc7XFxuICBjb2xvcjogI2ZmZmZmZjtcXG4gIGZvbnQtc2l6ZTogMC43ZW07XFxuICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5Db2xsYWJCdXR0b24tY29sbGFib3JhdG9ycyB7XFxuICByaWdodDogLTVweDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLkNvbGxhYkJ1dHRvbi1jb2xsYWJvcmF0b3JzIHtcXG4gIGxlZnQ6IC01cHg7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUFFO0VBQ0UsdURBQUE7QUFHSjtBQURJOztFQUVFLG1DQUFBO0FBR047QUFDRTtFQU9FLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkN5UVM7RUR4UVQsY0NkZTtFRGVmLGdCQUFBO0VBQ0EsMkJBQUE7QUFMSjtBQVRJO0VBQ0UsV0FBQTtBQVdOO0FBVEk7RUFDRSxVQUFBO0FBV05cIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuXFxuLmV4Y2FsaWRyYXcge1xcbiAgLkNvbGxhYkJ1dHRvbi5pcy1jb2xsYWJvcmF0aW5nIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLXNwZWNpYWwtYWN0aXZlLWJnLWNvbG9yKTtcXG5cXG4gICAgLlRvb2xJY29uX19pY29uIHN2ZyxcXG4gICAgLlRvb2xJY29uX19sYWJlbCB7XFxuICAgICAgY29sb3I6IHZhcigtLWljb24tZ3JlZW4tZmlsbC1jb2xvcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Db2xsYWJCdXR0b24tY29sbGFib3JhdG9ycyB7XFxuICAgIDpyb290W2Rpcj1cXFwibHRyXFxcIl0gJiB7XFxuICAgICAgcmlnaHQ6IC01cHg7XFxuICAgIH1cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICBsZWZ0OiAtNXB4O1xcbiAgICB9XFxuICAgIG1pbi13aWR0aDogMWVtO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogLTVweDtcXG4gICAgcGFkZGluZzogM3B4O1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1ncmVlbi02O1xcbiAgICBjb2xvcjogJG9jLXdoaXRlO1xcbiAgICBmb250LXNpemU6IDAuN2VtO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxuICB9XFxufVxcblwiLFwiLy9cXG4vL1xcbi8vICDwnZeWIPCdl6Ig8J2XnyDwnZeiIPCdl6VcXG4vLyAgdiAxLjkuMVxcbi8vXFxuLy8gIOKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgVxcblxcblxcbi8vICBHZW5lcmFsXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcblxcblxcbi8vICBHcmF5XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmF5LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y4ZjlmYSxcXG4gIFxcXCIxXFxcIjogI2YxZjNmNSxcXG4gIFxcXCIyXFxcIjogI2U5ZWNlZixcXG4gIFxcXCIzXFxcIjogI2RlZTJlNixcXG4gIFxcXCI0XFxcIjogI2NlZDRkYSxcXG4gIFxcXCI1XFxcIjogI2FkYjViZCxcXG4gIFxcXCI2XFxcIjogIzg2OGU5NixcXG4gIFxcXCI3XFxcIjogIzQ5NTA1NyxcXG4gIFxcXCI4XFxcIjogIzM0M2E0MCxcXG4gIFxcXCI5XFxcIjogIzIxMjUyOVxcbik7XFxuXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBSZWRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXJlZC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY1ZjUsXFxuICBcXFwiMVxcXCI6ICNmZmUzZTMsXFxuICBcXFwiMlxcXCI6ICNmZmM5YzksXFxuICBcXFwiM1xcXCI6ICNmZmE4YTgsXFxuICBcXFwiNFxcXCI6ICNmZjg3ODcsXFxuICBcXFwiNVxcXCI6ICNmZjZiNmIsXFxuICBcXFwiNlxcXCI6ICNmYTUyNTIsXFxuICBcXFwiN1xcXCI6ICNmMDNlM2UsXFxuICBcXFwiOFxcXCI6ICNlMDMxMzEsXFxuICBcXFwiOVxcXCI6ICNjOTJhMmFcXG4pO1xcblxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFBpbmtcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXBpbmstbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmMGY2LFxcbiAgXFxcIjFcXFwiOiAjZmZkZWViLFxcbiAgXFxcIjJcXFwiOiAjZmNjMmQ3LFxcbiAgXFxcIjNcXFwiOiAjZmFhMmMxLFxcbiAgXFxcIjRcXFwiOiAjZjc4M2FjLFxcbiAgXFxcIjVcXFwiOiAjZjA2NTk1LFxcbiAgXFxcIjZcXFwiOiAjZTY0OTgwLFxcbiAgXFxcIjdcXFwiOiAjZDYzMzZjLFxcbiAgXFxcIjhcXFwiOiAjYzIyNTVjLFxcbiAgXFxcIjlcXFwiOiAjYTYxZTRkXFxuKTtcXG5cXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyYXBlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmFwZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGYwZmMsXFxuICBcXFwiMVxcXCI6ICNmM2Q5ZmEsXFxuICBcXFwiMlxcXCI6ICNlZWJlZmEsXFxuICBcXFwiM1xcXCI6ICNlNTk5ZjcsXFxuICBcXFwiNFxcXCI6ICNkYTc3ZjIsXFxuICBcXFwiNVxcXCI6ICNjYzVkZTgsXFxuICBcXFwiNlxcXCI6ICNiZTRiZGIsXFxuICBcXFwiN1xcXCI6ICNhZTNlYzksXFxuICBcXFwiOFxcXCI6ICM5YzM2YjUsXFxuICBcXFwiOVxcXCI6ICM4NjJlOWNcXG4pO1xcblxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBWaW9sZXRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXZpb2xldC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmM2YwZmYsXFxuICBcXFwiMVxcXCI6ICNlNWRiZmYsXFxuICBcXFwiMlxcXCI6ICNkMGJmZmYsXFxuICBcXFwiM1xcXCI6ICNiMTk3ZmMsXFxuICBcXFwiNFxcXCI6ICM5Nzc1ZmEsXFxuICBcXFwiNVxcXCI6ICM4NDVlZjcsXFxuICBcXFwiNlxcXCI6ICM3OTUwZjIsXFxuICBcXFwiN1xcXCI6ICM3MDQ4ZTgsXFxuICBcXFwiOFxcXCI6ICM2NzQxZDksXFxuICBcXFwiOVxcXCI6ICM1ZjNkYzRcXG4pO1xcblxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEluZGlnb1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtaW5kaWdvLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2VkZjJmZixcXG4gIFxcXCIxXFxcIjogI2RiZTRmZixcXG4gIFxcXCIyXFxcIjogI2JhYzhmZixcXG4gIFxcXCIzXFxcIjogIzkxYTdmZixcXG4gIFxcXCI0XFxcIjogIzc0OGZmYyxcXG4gIFxcXCI1XFxcIjogIzVjN2NmYSxcXG4gIFxcXCI2XFxcIjogIzRjNmVmNSxcXG4gIFxcXCI3XFxcIjogIzQyNjNlYixcXG4gIFxcXCI4XFxcIjogIzNiNWJkYixcXG4gIFxcXCI5XFxcIjogIzM2NGZjN1xcbik7XFxuXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQmx1ZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtYmx1ZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlN2Y1ZmYsXFxuICBcXFwiMVxcXCI6ICNkMGViZmYsXFxuICBcXFwiMlxcXCI6ICNhNWQ4ZmYsXFxuICBcXFwiM1xcXCI6ICM3NGMwZmMsXFxuICBcXFwiNFxcXCI6ICM0ZGFiZjcsXFxuICBcXFwiNVxcXCI6ICMzMzlhZjAsXFxuICBcXFwiNlxcXCI6ICMyMjhiZTYsXFxuICBcXFwiN1xcXCI6ICMxYzdlZDYsXFxuICBcXFwiOFxcXCI6ICMxOTcxYzIsXFxuICBcXFwiOVxcXCI6ICMxODY0YWJcXG4pO1xcblxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ3lhblxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY3lhbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlM2ZhZmMsXFxuICBcXFwiMVxcXCI6ICNjNWY2ZmEsXFxuICBcXFwiMlxcXCI6ICM5OWU5ZjIsXFxuICBcXFwiM1xcXCI6ICM2NmQ5ZTgsXFxuICBcXFwiNFxcXCI6ICMzYmM5ZGIsXFxuICBcXFwiNVxcXCI6ICMyMmI4Y2YsXFxuICBcXFwiNlxcXCI6ICMxNWFhYmYsXFxuICBcXFwiN1xcXCI6ICMxMDk4YWQsXFxuICBcXFwiOFxcXCI6ICMwYzg1OTksXFxuICBcXFwiOVxcXCI6ICMwYjcyODVcXG4pO1xcblxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVGVhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtdGVhbC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlNmZjZjUsXFxuICBcXFwiMVxcXCI6ICNjM2ZhZTgsXFxuICBcXFwiMlxcXCI6ICM5NmYyZDcsXFxuICBcXFwiM1xcXCI6ICM2M2U2YmUsXFxuICBcXFwiNFxcXCI6ICMzOGQ5YTksXFxuICBcXFwiNVxcXCI6ICMyMGM5OTcsXFxuICBcXFwiNlxcXCI6ICMxMmI4ODYsXFxuICBcXFwiN1xcXCI6ICMwY2E2NzgsXFxuICBcXFwiOFxcXCI6ICMwOTkyNjgsXFxuICBcXFwiOVxcXCI6ICMwODdmNWJcXG4pO1xcblxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgR3JlZW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWdyZWVuLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ViZmJlZSxcXG4gIFxcXCIxXFxcIjogI2QzZjlkOCxcXG4gIFxcXCIyXFxcIjogI2IyZjJiYixcXG4gIFxcXCIzXFxcIjogIzhjZTk5YSxcXG4gIFxcXCI0XFxcIjogIzY5ZGI3YyxcXG4gIFxcXCI1XFxcIjogIzUxY2Y2NixcXG4gIFxcXCI2XFxcIjogIzQwYzA1NyxcXG4gIFxcXCI3XFxcIjogIzM3YjI0ZCxcXG4gIFxcXCI4XFxcIjogIzJmOWU0NCxcXG4gIFxcXCI5XFxcIjogIzJiOGEzZVxcbik7XFxuXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIExpbWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWxpbWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjRmY2UzLFxcbiAgXFxcIjFcXFwiOiAjZTlmYWM4LFxcbiAgXFxcIjJcXFwiOiAjZDhmNWEyLFxcbiAgXFxcIjNcXFwiOiAjYzBlYjc1LFxcbiAgXFxcIjRcXFwiOiAjYTllMzRiLFxcbiAgXFxcIjVcXFwiOiAjOTRkODJkLFxcbiAgXFxcIjZcXFwiOiAjODJjOTFlLFxcbiAgXFxcIjdcXFwiOiAjNzRiODE2LFxcbiAgXFxcIjhcXFwiOiAjNjZhODBmLFxcbiAgXFxcIjlcXFwiOiAjNWM5NDBkXFxuKTtcXG5cXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFllbGxvd1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MteWVsbG93LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjlkYixcXG4gIFxcXCIxXFxcIjogI2ZmZjNiZixcXG4gIFxcXCIyXFxcIjogI2ZmZWM5OSxcXG4gIFxcXCIzXFxcIjogI2ZmZTA2NixcXG4gIFxcXCI0XFxcIjogI2ZmZDQzYixcXG4gIFxcXCI1XFxcIjogI2ZjYzQxOSxcXG4gIFxcXCI2XFxcIjogI2ZhYjAwNSxcXG4gIFxcXCI3XFxcIjogI2Y1OWYwMCxcXG4gIFxcXCI4XFxcIjogI2YwOGMwMCxcXG4gIFxcXCI5XFxcIjogI2U2NzcwMFxcbik7XFxuXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgT3JhbmdlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNGU2LFxcbiAgXFxcIjFcXFwiOiAjZmZlOGNjLFxcbiAgXFxcIjJcXFwiOiAjZmZkOGE4LFxcbiAgXFxcIjNcXFwiOiAjZmZjMDc4LFxcbiAgXFxcIjRcXFwiOiAjZmZhOTRkLFxcbiAgXFxcIjVcXFwiOiAjZmY5MjJiLFxcbiAgXFxcIjZcXFwiOiAjZmQ3ZTE0LFxcbiAgXFxcIjdcXFwiOiAjZjc2NzA3LFxcbiAgXFxcIjhcXFwiOiAjZTg1OTBjLFxcbiAgXFxcIjlcXFwiOiAjZDk0ODBmXFxuKTtcXG5cXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBDb2xvciBsaXN0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcblxcbiRvYy1jb2xvci1saXN0OiAoXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXCJncmF5XFxcIixcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFwicmVkXFxcIixcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcInBpbmtcXFwiLFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcImdyYXBlXFxcIixcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFwidmlvbGV0XFxcIixcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFwiaW5kaWdvXFxcIixcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcImJsdWVcXFwiLFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFwiY3lhblxcXCIsXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXCJ0ZWFsXFxcIixcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXCJncmVlblxcXCIsXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXCJsaW1lXFxcIixcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFwieWVsbG93XFxcIixcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFwib3JhbmdlXFxcIlxcbik7XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/CollabButton.scss\n");
1298
+ 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 _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .CollabButton.is-collaborating {\\n background-color: var(--button-special-active-bg-color);\\n}\\n.excalidraw .CollabButton.is-collaborating .ToolIcon__icon svg,\\n.excalidraw .CollabButton.is-collaborating .ToolIcon__label {\\n color: var(--icon-green-fill-color);\\n}\\n.excalidraw .CollabButton-collaborators {\\n min-width: 1em;\\n min-height: 1em;\\n line-height: 1;\\n position: absolute;\\n bottom: -5px;\\n padding: 3px;\\n border-radius: 50%;\\n background-color: #40c057;\\n color: #ffffff;\\n font-size: 0.6em;\\n font-family: \\\"Cascadia\\\";\\n}\\n:root[dir=ltr] .excalidraw .CollabButton-collaborators {\\n right: -5px;\\n}\\n:root[dir=rtl] .excalidraw .CollabButton-collaborators {\\n left: -5px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/CollabButton.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,uDAAA;AAGJ;AADI;;EAEE,mCAAA;AAGN;AACE;EAOE,cAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,YAAA;EACA,YAAA;EACA,kBAAA;EACA,yBCuQS;EDtQT,cChBe;EDiBf,gBAAA;EACA,uBAAA;AALJ;AAXI;EACE,WAAA;AAaN;AAXI;EACE,UAAA;AAaN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .CollabButton.is-collaborating {\\n background-color: var(--button-special-active-bg-color);\\n\\n .ToolIcon__icon svg,\\n .ToolIcon__label {\\n color: var(--icon-green-fill-color);\\n }\\n }\\n\\n .CollabButton-collaborators {\\n :root[dir=\\\"ltr\\\"] & {\\n right: -5px;\\n }\\n :root[dir=\\\"rtl\\\"] & {\\n left: -5px;\\n }\\n min-width: 1em;\\n min-height: 1em;\\n line-height: 1;\\n position: absolute;\\n bottom: -5px;\\n padding: 3px;\\n border-radius: 50%;\\n background-color: $oc-green-6;\\n color: $oc-white;\\n font-size: 0.6em;\\n font-family: \\\"Cascadia\\\";\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xsYWJCdXR0b24uc2Nzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQzhIO0FBQ2pCO0FBQzdHLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0Y7QUFDQSxtREFBbUQsZ0RBQWdELDZCQUE2QixHQUFHLGdEQUFnRCw0REFBNEQsR0FBRyxnSUFBZ0ksd0NBQXdDLEdBQUcsMkNBQTJDLG1CQUFtQixvQkFBb0IsbUJBQW1CLHVCQUF1QixpQkFBaUIsaUJBQWlCLHVCQUF1Qiw4QkFBOEIsbUJBQW1CLHFCQUFxQiw4QkFBOEIsR0FBRywwREFBMEQsZ0JBQWdCLEdBQUcsMERBQTBELGVBQWUsR0FBRyxPQUFPLG1OQUFtTixXQUFXLFdBQVcsT0FBTyxLQUFLLFdBQVcsS0FBSyxNQUFNLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFdBQVcsVUFBVSxVQUFVLFdBQVcsWUFBWSxZQUFZLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxnRUFBZ0UsdUJBQXVCLGtDQUFrQyxJQUFJLGVBQWUsS0FBSyxHQUFHLHFDQUFxQyxzREFBc0Qsa0NBQWtDLCtDQUErQyxPQUFPLG1DQUFtQyx5Q0FBeUMsNkJBQTZCLFdBQVcsOEJBQThCLFdBQVcsT0FBTywwQ0FBMEMsZ0RBQWdELE9BQU8sS0FBSyw2QkFBNkIsa0JBQWtCLGlCQUFpQixLQUFLLEdBQUcsc0RBQXNELGtDQUFrQyxhQUFhLHdDQUF3QyxxREFBcUQsR0FBRyx5Q0FBeUMsaUJBQWlCLG9DQUFvQyw4REFBOEQsb0RBQW9ELDRDQUE0QyxPQUFPLEtBQUssbUNBQW1DLDRCQUE0QixvQkFBb0IsT0FBTyw0QkFBNEIsbUJBQW1CLE9BQU8scUJBQXFCLHNCQUFzQixxQkFBcUIseUJBQXlCLG1CQUFtQixtQkFBbUIseUJBQXlCLG9DQUFvQyx1QkFBdUIsdUJBQXVCLGdDQUFnQyxLQUFLLEdBQUcsa0xBQWtMLDZCQUE2Qiw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDBRQUEwUSw0Q0FBNEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw4UUFBOFEsZ0RBQWdELDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw4UUFBOFEsZ0RBQWdELDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELHlGQUF5Rix1ZEFBdWQscUJBQXFCO0FBQ3h3WjtBQUNBLGlFQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnNjc3M/MzYxZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5Db2xsYWJCdXR0b24uaXMtY29sbGFib3JhdGluZyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tc3BlY2lhbC1hY3RpdmUtYmctY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuQ29sbGFiQnV0dG9uLmlzLWNvbGxhYm9yYXRpbmcgLlRvb2xJY29uX19pY29uIHN2ZyxcXG4uZXhjYWxpZHJhdyAuQ29sbGFiQnV0dG9uLmlzLWNvbGxhYm9yYXRpbmcgLlRvb2xJY29uX19sYWJlbCB7XFxuICBjb2xvcjogdmFyKC0taWNvbi1ncmVlbi1maWxsLWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkNvbGxhYkJ1dHRvbi1jb2xsYWJvcmF0b3JzIHtcXG4gIG1pbi13aWR0aDogMWVtO1xcbiAgbWluLWhlaWdodDogMWVtO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IC01cHg7XFxuICBwYWRkaW5nOiAzcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDBjMDU3O1xcbiAgY29sb3I6ICNmZmZmZmY7XFxuICBmb250LXNpemU6IDAuNmVtO1xcbiAgZm9udC1mYW1pbHk6IFxcXCJDYXNjYWRpYVxcXCI7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5Db2xsYWJCdXR0b24tY29sbGFib3JhdG9ycyB7XFxuICByaWdodDogLTVweDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLkNvbGxhYkJ1dHRvbi1jb2xsYWJvcmF0b3JzIHtcXG4gIGxlZnQ6IC01cHg7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUFFO0VBQ0UsdURBQUE7QUFHSjtBQURJOztFQUVFLG1DQUFBO0FBR047QUFDRTtFQU9FLGNBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQ3VRUztFRHRRVCxjQ2hCZTtFRGlCZixnQkFBQTtFQUNBLHVCQUFBO0FBTEo7QUFYSTtFQUNFLFdBQUE7QUFhTjtBQVhJO0VBQ0UsVUFBQTtBQWFOXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiQGltcG9ydCBcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFwiO1xcblxcbi5leGNhbGlkcmF3IHtcXG4gIC5Db2xsYWJCdXR0b24uaXMtY29sbGFib3JhdGluZyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1zcGVjaWFsLWFjdGl2ZS1iZy1jb2xvcik7XFxuXFxuICAgIC5Ub29sSWNvbl9faWNvbiBzdmcsXFxuICAgIC5Ub29sSWNvbl9fbGFiZWwge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1pY29uLWdyZWVuLWZpbGwtY29sb3IpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuQ29sbGFiQnV0dG9uLWNvbGxhYm9yYXRvcnMge1xcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIHJpZ2h0OiAtNXB4O1xcbiAgICB9XFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgbGVmdDogLTVweDtcXG4gICAgfVxcbiAgICBtaW4td2lkdGg6IDFlbTtcXG4gICAgbWluLWhlaWdodDogMWVtO1xcbiAgICBsaW5lLWhlaWdodDogMTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IC01cHg7XFxuICAgIHBhZGRpbmc6IDNweDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtZ3JlZW4tNjtcXG4gICAgY29sb3I6ICRvYy13aGl0ZTtcXG4gICAgZm9udC1zaXplOiAwLjZlbTtcXG4gICAgZm9udC1mYW1pbHk6IFxcXCJDYXNjYWRpYVxcXCI7XFxuICB9XFxufVxcblwiLFwiLy9cXG4vL1xcbi8vICDwnZeWIPCdl6Ig8J2XnyDwnZeiIPCdl6VcXG4vLyAgdiAxLjkuMVxcbi8vXFxuLy8gIOKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgVxcblxcblxcbi8vICBHZW5lcmFsXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcblxcblxcbi8vICBHcmF5XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmF5LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y4ZjlmYSxcXG4gIFxcXCIxXFxcIjogI2YxZjNmNSxcXG4gIFxcXCIyXFxcIjogI2U5ZWNlZixcXG4gIFxcXCIzXFxcIjogI2RlZTJlNixcXG4gIFxcXCI0XFxcIjogI2NlZDRkYSxcXG4gIFxcXCI1XFxcIjogI2FkYjViZCxcXG4gIFxcXCI2XFxcIjogIzg2OGU5NixcXG4gIFxcXCI3XFxcIjogIzQ5NTA1NyxcXG4gIFxcXCI4XFxcIjogIzM0M2E0MCxcXG4gIFxcXCI5XFxcIjogIzIxMjUyOVxcbik7XFxuXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBSZWRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXJlZC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY1ZjUsXFxuICBcXFwiMVxcXCI6ICNmZmUzZTMsXFxuICBcXFwiMlxcXCI6ICNmZmM5YzksXFxuICBcXFwiM1xcXCI6ICNmZmE4YTgsXFxuICBcXFwiNFxcXCI6ICNmZjg3ODcsXFxuICBcXFwiNVxcXCI6ICNmZjZiNmIsXFxuICBcXFwiNlxcXCI6ICNmYTUyNTIsXFxuICBcXFwiN1xcXCI6ICNmMDNlM2UsXFxuICBcXFwiOFxcXCI6ICNlMDMxMzEsXFxuICBcXFwiOVxcXCI6ICNjOTJhMmFcXG4pO1xcblxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFBpbmtcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXBpbmstbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmMGY2LFxcbiAgXFxcIjFcXFwiOiAjZmZkZWViLFxcbiAgXFxcIjJcXFwiOiAjZmNjMmQ3LFxcbiAgXFxcIjNcXFwiOiAjZmFhMmMxLFxcbiAgXFxcIjRcXFwiOiAjZjc4M2FjLFxcbiAgXFxcIjVcXFwiOiAjZjA2NTk1LFxcbiAgXFxcIjZcXFwiOiAjZTY0OTgwLFxcbiAgXFxcIjdcXFwiOiAjZDYzMzZjLFxcbiAgXFxcIjhcXFwiOiAjYzIyNTVjLFxcbiAgXFxcIjlcXFwiOiAjYTYxZTRkXFxuKTtcXG5cXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyYXBlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmFwZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGYwZmMsXFxuICBcXFwiMVxcXCI6ICNmM2Q5ZmEsXFxuICBcXFwiMlxcXCI6ICNlZWJlZmEsXFxuICBcXFwiM1xcXCI6ICNlNTk5ZjcsXFxuICBcXFwiNFxcXCI6ICNkYTc3ZjIsXFxuICBcXFwiNVxcXCI6ICNjYzVkZTgsXFxuICBcXFwiNlxcXCI6ICNiZTRiZGIsXFxuICBcXFwiN1xcXCI6ICNhZTNlYzksXFxuICBcXFwiOFxcXCI6ICM5YzM2YjUsXFxuICBcXFwiOVxcXCI6ICM4NjJlOWNcXG4pO1xcblxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBWaW9sZXRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXZpb2xldC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmM2YwZmYsXFxuICBcXFwiMVxcXCI6ICNlNWRiZmYsXFxuICBcXFwiMlxcXCI6ICNkMGJmZmYsXFxuICBcXFwiM1xcXCI6ICNiMTk3ZmMsXFxuICBcXFwiNFxcXCI6ICM5Nzc1ZmEsXFxuICBcXFwiNVxcXCI6ICM4NDVlZjcsXFxuICBcXFwiNlxcXCI6ICM3OTUwZjIsXFxuICBcXFwiN1xcXCI6ICM3MDQ4ZTgsXFxuICBcXFwiOFxcXCI6ICM2NzQxZDksXFxuICBcXFwiOVxcXCI6ICM1ZjNkYzRcXG4pO1xcblxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEluZGlnb1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtaW5kaWdvLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2VkZjJmZixcXG4gIFxcXCIxXFxcIjogI2RiZTRmZixcXG4gIFxcXCIyXFxcIjogI2JhYzhmZixcXG4gIFxcXCIzXFxcIjogIzkxYTdmZixcXG4gIFxcXCI0XFxcIjogIzc0OGZmYyxcXG4gIFxcXCI1XFxcIjogIzVjN2NmYSxcXG4gIFxcXCI2XFxcIjogIzRjNmVmNSxcXG4gIFxcXCI3XFxcIjogIzQyNjNlYixcXG4gIFxcXCI4XFxcIjogIzNiNWJkYixcXG4gIFxcXCI5XFxcIjogIzM2NGZjN1xcbik7XFxuXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQmx1ZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtYmx1ZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlN2Y1ZmYsXFxuICBcXFwiMVxcXCI6ICNkMGViZmYsXFxuICBcXFwiMlxcXCI6ICNhNWQ4ZmYsXFxuICBcXFwiM1xcXCI6ICM3NGMwZmMsXFxuICBcXFwiNFxcXCI6ICM0ZGFiZjcsXFxuICBcXFwiNVxcXCI6ICMzMzlhZjAsXFxuICBcXFwiNlxcXCI6ICMyMjhiZTYsXFxuICBcXFwiN1xcXCI6ICMxYzdlZDYsXFxuICBcXFwiOFxcXCI6ICMxOTcxYzIsXFxuICBcXFwiOVxcXCI6ICMxODY0YWJcXG4pO1xcblxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ3lhblxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY3lhbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlM2ZhZmMsXFxuICBcXFwiMVxcXCI6ICNjNWY2ZmEsXFxuICBcXFwiMlxcXCI6ICM5OWU5ZjIsXFxuICBcXFwiM1xcXCI6ICM2NmQ5ZTgsXFxuICBcXFwiNFxcXCI6ICMzYmM5ZGIsXFxuICBcXFwiNVxcXCI6ICMyMmI4Y2YsXFxuICBcXFwiNlxcXCI6ICMxNWFhYmYsXFxuICBcXFwiN1xcXCI6ICMxMDk4YWQsXFxuICBcXFwiOFxcXCI6ICMwYzg1OTksXFxuICBcXFwiOVxcXCI6ICMwYjcyODVcXG4pO1xcblxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVGVhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtdGVhbC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlNmZjZjUsXFxuICBcXFwiMVxcXCI6ICNjM2ZhZTgsXFxuICBcXFwiMlxcXCI6ICM5NmYyZDcsXFxuICBcXFwiM1xcXCI6ICM2M2U2YmUsXFxuICBcXFwiNFxcXCI6ICMzOGQ5YTksXFxuICBcXFwiNVxcXCI6ICMyMGM5OTcsXFxuICBcXFwiNlxcXCI6ICMxMmI4ODYsXFxuICBcXFwiN1xcXCI6ICMwY2E2NzgsXFxuICBcXFwiOFxcXCI6ICMwOTkyNjgsXFxuICBcXFwiOVxcXCI6ICMwODdmNWJcXG4pO1xcblxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgR3JlZW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWdyZWVuLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ViZmJlZSxcXG4gIFxcXCIxXFxcIjogI2QzZjlkOCxcXG4gIFxcXCIyXFxcIjogI2IyZjJiYixcXG4gIFxcXCIzXFxcIjogIzhjZTk5YSxcXG4gIFxcXCI0XFxcIjogIzY5ZGI3YyxcXG4gIFxcXCI1XFxcIjogIzUxY2Y2NixcXG4gIFxcXCI2XFxcIjogIzQwYzA1NyxcXG4gIFxcXCI3XFxcIjogIzM3YjI0ZCxcXG4gIFxcXCI4XFxcIjogIzJmOWU0NCxcXG4gIFxcXCI5XFxcIjogIzJiOGEzZVxcbik7XFxuXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIExpbWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWxpbWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjRmY2UzLFxcbiAgXFxcIjFcXFwiOiAjZTlmYWM4LFxcbiAgXFxcIjJcXFwiOiAjZDhmNWEyLFxcbiAgXFxcIjNcXFwiOiAjYzBlYjc1LFxcbiAgXFxcIjRcXFwiOiAjYTllMzRiLFxcbiAgXFxcIjVcXFwiOiAjOTRkODJkLFxcbiAgXFxcIjZcXFwiOiAjODJjOTFlLFxcbiAgXFxcIjdcXFwiOiAjNzRiODE2LFxcbiAgXFxcIjhcXFwiOiAjNjZhODBmLFxcbiAgXFxcIjlcXFwiOiAjNWM5NDBkXFxuKTtcXG5cXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFllbGxvd1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MteWVsbG93LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjlkYixcXG4gIFxcXCIxXFxcIjogI2ZmZjNiZixcXG4gIFxcXCIyXFxcIjogI2ZmZWM5OSxcXG4gIFxcXCIzXFxcIjogI2ZmZTA2NixcXG4gIFxcXCI0XFxcIjogI2ZmZDQzYixcXG4gIFxcXCI1XFxcIjogI2ZjYzQxOSxcXG4gIFxcXCI2XFxcIjogI2ZhYjAwNSxcXG4gIFxcXCI3XFxcIjogI2Y1OWYwMCxcXG4gIFxcXCI4XFxcIjogI2YwOGMwMCxcXG4gIFxcXCI5XFxcIjogI2U2NzcwMFxcbik7XFxuXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgT3JhbmdlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNGU2LFxcbiAgXFxcIjFcXFwiOiAjZmZlOGNjLFxcbiAgXFxcIjJcXFwiOiAjZmZkOGE4LFxcbiAgXFxcIjNcXFwiOiAjZmZjMDc4LFxcbiAgXFxcIjRcXFwiOiAjZmZhOTRkLFxcbiAgXFxcIjVcXFwiOiAjZmY5MjJiLFxcbiAgXFxcIjZcXFwiOiAjZmQ3ZTE0LFxcbiAgXFxcIjdcXFwiOiAjZjc2NzA3LFxcbiAgXFxcIjhcXFwiOiAjZTg1OTBjLFxcbiAgXFxcIjlcXFwiOiAjZDk0ODBmXFxuKTtcXG5cXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBDb2xvciBsaXN0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcblxcbiRvYy1jb2xvci1saXN0OiAoXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXCJncmF5XFxcIixcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFwicmVkXFxcIixcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcInBpbmtcXFwiLFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcImdyYXBlXFxcIixcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFwidmlvbGV0XFxcIixcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFwiaW5kaWdvXFxcIixcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcImJsdWVcXFwiLFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFwiY3lhblxcXCIsXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXCJ0ZWFsXFxcIixcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXCJncmVlblxcXCIsXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXCJsaW1lXFxcIixcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFwieWVsbG93XFxcIixcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFwib3JhbmdlXFxcIlxcbik7XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/CollabButton.scss\n");
1299
1299
 
1300
1300
  /***/ }),
1301
1301
 
@@ -1581,7 +1581,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1581
1581
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1582
1582
 
1583
1583
  "use strict";
1584
- 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 _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .Toast {\\n animation: fade-in 0.5s;\\n background-color: var(--button-gray-1);\\n border-radius: 4px;\\n bottom: 10px;\\n box-sizing: border-box;\\n cursor: default;\\n left: 50%;\\n margin-left: -150px;\\n padding: 4px 0;\\n position: absolute;\\n text-align: center;\\n width: 300px;\\n z-index: 999999;\\n}\\n.excalidraw .Toast__message {\\n color: var(--popup-text-color);\\n white-space: pre-wrap;\\n}\\n@keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/Toast.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,uBAAA;EACA,sCAAA;EACA,kBAAA;EACA,YAAA;EACA,sBAAA;EACA,eAAA;EACA,SAAA;EACA,mBAAA;EACA,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;AAGJ;AAAE;EACE,8BAAA;EACA,qBAAA;AAEJ;AACE;EACE;IACE,UAAA;EACJ;EACE;IACE,UAAA;EACJ;AACF\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .Toast {\\n animation: fade-in 0.5s;\\n background-color: var(--button-gray-1);\\n border-radius: 4px;\\n bottom: 10px;\\n box-sizing: border-box;\\n cursor: default;\\n left: 50%;\\n margin-left: -150px;\\n padding: 4px 0;\\n position: absolute;\\n text-align: center;\\n width: 300px;\\n z-index: 999999;\\n }\\n\\n .Toast__message {\\n color: var(--popup-text-color);\\n white-space: pre-wrap;\\n }\\n\\n @keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub2FzdC5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLG1EQUFtRCxnREFBZ0QsNkJBQTZCLEdBQUcsd0JBQXdCLDRCQUE0QiwyQ0FBMkMsdUJBQXVCLGlCQUFpQiwyQkFBMkIsb0JBQW9CLGNBQWMsd0JBQXdCLG1CQUFtQix1QkFBdUIsdUJBQXVCLGlCQUFpQixvQkFBb0IsR0FBRywrQkFBK0IsbUNBQW1DLDBCQUEwQixHQUFHLHNCQUFzQixVQUFVLGlCQUFpQixLQUFLLFFBQVEsaUJBQWlCLEtBQUssR0FBRyxPQUFPLDZJQUE2SSxXQUFXLFdBQVcsT0FBTyxLQUFLLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxVQUFVLFVBQVUsV0FBVyxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFdBQVcsV0FBVyxLQUFLLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssZ0VBQWdFLHVCQUF1QixrQ0FBa0MsSUFBSSxlQUFlLEtBQUssR0FBRyxxQ0FBcUMsc0RBQXNELGtDQUFrQywrQ0FBK0MsT0FBTyxtQ0FBbUMseUNBQXlDLDZCQUE2QixXQUFXLDhCQUE4QixXQUFXLE9BQU8sMENBQTBDLGdEQUFnRCxPQUFPLEtBQUssNkJBQTZCLGtCQUFrQixpQkFBaUIsS0FBSyxHQUFHLHNEQUFzRCxrQ0FBa0MsYUFBYSx3Q0FBd0MscURBQXFELEdBQUcseUNBQXlDLGlCQUFpQixZQUFZLDhCQUE4Qiw2Q0FBNkMseUJBQXlCLG1CQUFtQiw2QkFBNkIsc0JBQXNCLGdCQUFnQiwwQkFBMEIscUJBQXFCLHlCQUF5Qix5QkFBeUIsbUJBQW1CLHNCQUFzQixLQUFLLHVCQUF1QixxQ0FBcUMsNEJBQTRCLEtBQUssMEJBQTBCLFlBQVksbUJBQW1CLE9BQU8sVUFBVSxtQkFBbUIsT0FBTyxLQUFLLEdBQUcscUJBQXFCO0FBQzE5RTtBQUNBLGlFQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2NvbXBvbmVudHMvVG9hc3Quc2Nzcz9mZTc2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiAzMDJweDtcXG59XFxuXFxuLmV4Y2FsaWRyYXcgLlRvYXN0IHtcXG4gIGFuaW1hdGlvbjogZmFkZS1pbiAwLjVzO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBib3R0b206IDEwcHg7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgbGVmdDogNTAlO1xcbiAgbWFyZ2luLWxlZnQ6IC0xNTBweDtcXG4gIHBhZGRpbmc6IDRweCAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgd2lkdGg6IDMwMHB4O1xcbiAgei1pbmRleDogOTk5OTk5O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9hc3RfX21lc3NhZ2Uge1xcbiAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbn1cXG5Aa2V5ZnJhbWVzIGZhZGUtaW4ge1xcbiAgZnJvbSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICB0byB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9hc3Quc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUFFO0VBQ0UsdUJBQUE7RUFDQSxzQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUFHSjtBQUFFO0VBQ0UsOEJBQUE7RUFDQSxxQkFBQTtBQUVKO0FBQ0U7RUFDRTtJQUNFLFVBQUE7RUFDSjtFQUNFO0lBQ0UsVUFBQTtFQUNKO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuXFxuLmV4Y2FsaWRyYXcge1xcbiAgLlRvYXN0IHtcXG4gICAgYW5pbWF0aW9uOiBmYWRlLWluIDAuNXM7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIGJvdHRvbTogMTBweDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTUwcHg7XFxuICAgIHBhZGRpbmc6IDRweCAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgd2lkdGg6IDMwMHB4O1xcbiAgICB6LWluZGV4OiA5OTk5OTk7XFxuICB9XFxuXFxuICAuVG9hc3RfX21lc3NhZ2Uge1xcbiAgICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG5cXG4gIEBrZXlmcmFtZXMgZmFkZS1pbiB7XFxuICAgIGZyb20ge1xcbiAgICAgIG9wYWNpdHk6IDA7XFxuICAgIH1cXG4gICAgdG8ge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/Toast.scss\n");
1584
+ 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 _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .Toast {\\n animation: fade-in 0.5s;\\n background-color: var(--button-gray-1);\\n border-radius: 4px;\\n bottom: 10px;\\n box-sizing: border-box;\\n cursor: default;\\n left: 50%;\\n margin-left: -150px;\\n padding: 4px 0;\\n position: absolute;\\n text-align: center;\\n width: 300px;\\n z-index: 999999;\\n}\\n.excalidraw .Toast .Toast__message {\\n padding: 0 1.6rem;\\n color: var(--popup-text-color);\\n white-space: pre-wrap;\\n}\\n.excalidraw .Toast .close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: 0.4rem;\\n}\\n.excalidraw .Toast .close .ToolIcon__icon {\\n width: 1.2rem;\\n height: 1.2rem;\\n}\\n@keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/Toast.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EAIE,uBAAA;EACA,sCAAA;EACA,kBAAA;EACA,YAAA;EACA,sBAAA;EACA,eAAA;EACA,SAAA;EACA,mBAAA;EACA,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;AAAJ;AAEI;EACE,iBAAA;EACA,8BAAA;EACA,qBAAA;AAAN;AAGI;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,eA1BmB;AAyBzB;AAGM;EACE,aA9Bc;EA+Bd,cA/Bc;AA8BtB;AAME;EACE;IACE,UAAA;EAJJ;EAME;IACE,UAAA;EAJJ;AACF\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .Toast {\\n $closeButtonSize: 1.2rem;\\n $closeButtonPadding: 0.4rem;\\n\\n animation: fade-in 0.5s;\\n background-color: var(--button-gray-1);\\n border-radius: 4px;\\n bottom: 10px;\\n box-sizing: border-box;\\n cursor: default;\\n left: 50%;\\n margin-left: -150px;\\n padding: 4px 0;\\n position: absolute;\\n text-align: center;\\n width: 300px;\\n z-index: 999999;\\n\\n .Toast__message {\\n padding: 0 $closeButtonSize + ($closeButtonPadding);\\n color: var(--popup-text-color);\\n white-space: pre-wrap;\\n }\\n\\n .close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: $closeButtonPadding;\\n\\n .ToolIcon__icon {\\n width: $closeButtonSize;\\n height: $closeButtonSize;\\n }\\n }\\n }\\n\\n @keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub2FzdC5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLG1EQUFtRCxnREFBZ0QsNkJBQTZCLEdBQUcsd0JBQXdCLDRCQUE0QiwyQ0FBMkMsdUJBQXVCLGlCQUFpQiwyQkFBMkIsb0JBQW9CLGNBQWMsd0JBQXdCLG1CQUFtQix1QkFBdUIsdUJBQXVCLGlCQUFpQixvQkFBb0IsR0FBRyxzQ0FBc0Msc0JBQXNCLG1DQUFtQywwQkFBMEIsR0FBRyw2QkFBNkIsdUJBQXVCLFdBQVcsYUFBYSxvQkFBb0IsR0FBRyw2Q0FBNkMsa0JBQWtCLG1CQUFtQixHQUFHLHNCQUFzQixVQUFVLGlCQUFpQixLQUFLLFFBQVEsaUJBQWlCLEtBQUssR0FBRyxPQUFPLDZJQUE2SSxXQUFXLFdBQVcsT0FBTyxLQUFLLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxVQUFVLFVBQVUsV0FBVyxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxXQUFXLFlBQVksT0FBTyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLGdFQUFnRSx1QkFBdUIsa0NBQWtDLElBQUksZUFBZSxLQUFLLEdBQUcscUNBQXFDLHNEQUFzRCxrQ0FBa0MsK0NBQStDLE9BQU8sbUNBQW1DLHlDQUF5Qyw2QkFBNkIsV0FBVyw4QkFBOEIsV0FBVyxPQUFPLDBDQUEwQyxnREFBZ0QsT0FBTyxLQUFLLDZCQUE2QixrQkFBa0IsaUJBQWlCLEtBQUssR0FBRyxzREFBc0Qsa0NBQWtDLGFBQWEsd0NBQXdDLHFEQUFxRCxHQUFHLHlDQUF5QyxpQkFBaUIsWUFBWSwrQkFBK0Isa0NBQWtDLGdDQUFnQyw2Q0FBNkMseUJBQXlCLG1CQUFtQiw2QkFBNkIsc0JBQXNCLGdCQUFnQiwwQkFBMEIscUJBQXFCLHlCQUF5Qix5QkFBeUIsbUJBQW1CLHNCQUFzQix5QkFBeUIsNERBQTRELHVDQUF1Qyw4QkFBOEIsT0FBTyxnQkFBZ0IsMkJBQTJCLGVBQWUsaUJBQWlCLHFDQUFxQywyQkFBMkIsa0NBQWtDLG1DQUFtQyxTQUFTLE9BQU8sS0FBSywwQkFBMEIsWUFBWSxtQkFBbUIsT0FBTyxVQUFVLG1CQUFtQixPQUFPLEtBQUssR0FBRyxxQkFBcUI7QUFDM25HO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Ub2FzdC5zY3NzP2ZlNzYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IDMwMnB4O1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuVG9hc3Qge1xcbiAgYW5pbWF0aW9uOiBmYWRlLWluIDAuNXM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIGJvdHRvbTogMTBweDtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBsZWZ0OiA1MCU7XFxuICBtYXJnaW4tbGVmdDogLTE1MHB4O1xcbiAgcGFkZGluZzogNHB4IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB3aWR0aDogMzAwcHg7XFxuICB6LWluZGV4OiA5OTk5OTk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub2FzdCAuVG9hc3RfX21lc3NhZ2Uge1xcbiAgcGFkZGluZzogMCAxLjZyZW07XFxuICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxufVxcbi5leGNhbGlkcmF3IC5Ub2FzdCAuY2xvc2Uge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBwYWRkaW5nOiAwLjRyZW07XFxufVxcbi5leGNhbGlkcmF3IC5Ub2FzdCAuY2xvc2UgLlRvb2xJY29uX19pY29uIHtcXG4gIHdpZHRoOiAxLjJyZW07XFxuICBoZWlnaHQ6IDEuMnJlbTtcXG59XFxuQGtleWZyYW1lcyBmYWRlLWluIHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL1RvYXN0LnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBaUNBO0VBQ0UsMkNBQUE7RUFDQSx3QkFBQTtBQ2hDRjs7QUFBRTtFQUlFLHVCQUFBO0VBQ0Esc0NBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0FBQUo7QUFFSTtFQUNFLGlCQUFBO0VBQ0EsOEJBQUE7RUFDQSxxQkFBQTtBQUFOO0FBR0k7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsZUExQm1CO0FBeUJ6QjtBQUdNO0VBQ0UsYUE5QmM7RUErQmQsY0EvQmM7QUE4QnRCO0FBTUU7RUFDRTtJQUNFLFVBQUE7RUFKSjtFQU1FO0lBQ0UsVUFBQTtFQUpKO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuXFxuLmV4Y2FsaWRyYXcge1xcbiAgLlRvYXN0IHtcXG4gICAgJGNsb3NlQnV0dG9uU2l6ZTogMS4ycmVtO1xcbiAgICAkY2xvc2VCdXR0b25QYWRkaW5nOiAwLjRyZW07XFxuXFxuICAgIGFuaW1hdGlvbjogZmFkZS1pbiAwLjVzO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBib3R0b206IDEwcHg7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgbGVmdDogNTAlO1xcbiAgICBtYXJnaW4tbGVmdDogLTE1MHB4O1xcbiAgICBwYWRkaW5nOiA0cHggMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHdpZHRoOiAzMDBweDtcXG4gICAgei1pbmRleDogOTk5OTk5O1xcblxcbiAgICAuVG9hc3RfX21lc3NhZ2Uge1xcbiAgICAgIHBhZGRpbmc6IDAgJGNsb3NlQnV0dG9uU2l6ZSArICgkY2xvc2VCdXR0b25QYWRkaW5nKTtcXG4gICAgICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgICB9XFxuXFxuICAgIC5jbG9zZSB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHRvcDogMDtcXG4gICAgICByaWdodDogMDtcXG4gICAgICBwYWRkaW5nOiAkY2xvc2VCdXR0b25QYWRkaW5nO1xcblxcbiAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICB3aWR0aDogJGNsb3NlQnV0dG9uU2l6ZTtcXG4gICAgICAgIGhlaWdodDogJGNsb3NlQnV0dG9uU2l6ZTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBrZXlmcmFtZXMgZmFkZS1pbiB7XFxuICAgIGZyb20ge1xcbiAgICAgIG9wYWNpdHk6IDA7XFxuICAgIH1cXG4gICAgdG8ge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/Toast.scss\n");
1585
1585
 
1586
1586
  /***/ }),
1587
1587
 
@@ -2032,7 +2032,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2032
2032
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2033
2033
 
2034
2034
  "use strict";
2035
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nvar _a, _b;\nconst trackEvent = typeof process !== \"undefined\" &&\n ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-5346-513c9cb\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.REACT_APP_GOOGLE_ANALYTICS_ID) &&\n typeof window !== \"undefined\" &&\n window.gtag\n ? (category, action, label, value) => {\n try {\n window.gtag(\"event\", action, {\n event_category: category,\n event_label: label,\n value,\n });\n }\n catch (error) {\n console.error(\"error logging to ga\", error);\n }\n }\n : typeof process !== \"undefined\" && ((_b = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-5346-513c9cb\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _b === void 0 ? void 0 : _b.JEST_WORKER_ID)\n ? (category, action, label, value) => { }\n : (category, action, label, value) => {\n // Uncomment the next line to track locally\n // console.log(\"Track Event\", { category, action, label, value });\n };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vYW5hbHl0aWNzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sTUFBTSxVQUFVLEdBQ3JCLE9BQU8sT0FBTyxLQUFLLFdBQVc7S0FDOUIsczRCQUFXLDBDQUFFLDZCQUE2QjtJQUMxQyxPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE1BQU0sQ0FBQyxJQUFJO0lBQ1QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFO1FBQ25FLElBQUk7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQzNCLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUksczRCQUFXLDBDQUFFLGNBQWM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxLQUFjLEVBQUUsS0FBYyxFQUFFLEVBQUU7WUFDbkUsMkNBQTJDO1lBQzNDLGtFQUFrRTtRQUNwRSxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vYW5hbHl0aWNzLnRzPzVmMGMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYWNrRXZlbnQgPVxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICBwcm9jZXNzLmVudj8uUkVBQ1RfQVBQX0dPT0dMRV9BTkFMWVRJQ1NfSUQgJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICB3aW5kb3cuZ3RhZ1xuICAgID8gKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB3aW5kb3cuZ3RhZyhcImV2ZW50XCIsIGFjdGlvbiwge1xuICAgICAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxuICAgICAgICAgICAgZXZlbnRfbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIGxvZ2dpbmcgdG8gZ2FcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudj8uSkVTVF9XT1JLRVJfSURcbiAgICA/IChjYXRlZ29yeTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgbGFiZWw/OiBzdHJpbmcsIHZhbHVlPzogbnVtYmVyKSA9PiB7fVxuICAgIDogKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlRyYWNrIEV2ZW50XCIsIHsgY2F0ZWdvcnksIGFjdGlvbiwgbGFiZWwsIHZhbHVlIH0pO1xuICAgICAgfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../analytics.ts\n");
2035
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nvar _a, _b;\nconst trackEvent = typeof process !== \"undefined\" &&\n ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-76a5bb0\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.REACT_APP_GOOGLE_ANALYTICS_ID) &&\n typeof window !== \"undefined\" &&\n window.gtag\n ? (category, action, label, value) => {\n try {\n window.gtag(\"event\", action, {\n event_category: category,\n event_label: label,\n value,\n });\n }\n catch (error) {\n console.error(\"error logging to ga\", error);\n }\n }\n : typeof process !== \"undefined\" && ((_b = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-76a5bb0\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _b === void 0 ? void 0 : _b.JEST_WORKER_ID)\n ? (category, action, label, value) => { }\n : (category, action, label, value) => {\n // Uncomment the next line to track locally\n // console.log(\"Track Event\", { category, action, label, value });\n };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vYW5hbHl0aWNzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sTUFBTSxVQUFVLEdBQ3JCLE9BQU8sT0FBTyxLQUFLLFdBQVc7S0FDOUIsaTRCQUFXLDBDQUFFLDZCQUE2QjtJQUMxQyxPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE1BQU0sQ0FBQyxJQUFJO0lBQ1QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFO1FBQ25FLElBQUk7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQzNCLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUksaTRCQUFXLDBDQUFFLGNBQWM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxLQUFjLEVBQUUsS0FBYyxFQUFFLEVBQUU7WUFDbkUsMkNBQTJDO1lBQzNDLGtFQUFrRTtRQUNwRSxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vYW5hbHl0aWNzLnRzPzVmMGMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYWNrRXZlbnQgPVxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICBwcm9jZXNzLmVudj8uUkVBQ1RfQVBQX0dPT0dMRV9BTkFMWVRJQ1NfSUQgJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICB3aW5kb3cuZ3RhZ1xuICAgID8gKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB3aW5kb3cuZ3RhZyhcImV2ZW50XCIsIGFjdGlvbiwge1xuICAgICAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxuICAgICAgICAgICAgZXZlbnRfbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIGxvZ2dpbmcgdG8gZ2FcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudj8uSkVTVF9XT1JLRVJfSURcbiAgICA/IChjYXRlZ29yeTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgbGFiZWw/OiBzdHJpbmcsIHZhbHVlPzogbnVtYmVyKSA9PiB7fVxuICAgIDogKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlRyYWNrIEV2ZW50XCIsIHsgY2F0ZWdvcnksIGFjdGlvbiwgbGFiZWwsIHZhbHVlIH0pO1xuICAgICAgfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../analytics.ts\n");
2036
2036
 
2037
2037
  /***/ }),
2038
2038
 
@@ -2197,7 +2197,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2197
2197
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2198
2198
 
2199
2199
  "use strict";
2200
- 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_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./icons */ \"../../components/icons.tsx\");\n/* harmony import */ var _CollabButton_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CollabButton.scss */ \"../../components/CollabButton.scss\");\n/* harmony import */ var _CollabButton_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_CollabButton_scss__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n\nconst CollabButton = ({ isCollaborating, collaboratorCount, onClick, }) => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_2__.ToolButton, Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"CollabButton\", {\n \"is-collaborating\": isCollaborating,\n }), onClick: onClick, icon: _icons__WEBPACK_IMPORTED_MODULE_5__.users, type: \"button\", title: (0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(\"labels.liveCollaboration\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(\"labels.liveCollaboration\"), showAriaLabel: (0,_components_App__WEBPACK_IMPORTED_MODULE_4__.useDevice)().isMobile }, { children: collaboratorCount > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"CollabButton-collaborators\" }, { children: collaboratorCount }))) })) }));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CollabButton);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9Db2xsYWJCdXR0b24udHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBd0I7QUFDa0I7QUFDZDtBQUNrQjtBQUNkO0FBRUg7QUFFN0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUNwQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLE9BQU8sR0FLUixFQUFFLEVBQUU7SUFDSCxPQUFPLENBQ0wsNEhBQ0UsdURBQUMsbURBQVUsa0JBQ1QsU0FBUyxFQUFFLGdEQUFJLENBQUMsY0FBYyxFQUFFO2dCQUM5QixrQkFBa0IsRUFBRSxlQUFlO2FBQ3BDLENBQUMsRUFDRixPQUFPLEVBQUUsT0FBTyxFQUNoQixJQUFJLEVBQUUseUNBQUssRUFDWCxJQUFJLEVBQUMsUUFBUSxFQUNiLEtBQUssRUFBRSx3Q0FBQyxDQUFDLDBCQUEwQixDQUFDLGdCQUN4Qix3Q0FBQyxDQUFDLDBCQUEwQixDQUFDLEVBQ3pDLGFBQWEsRUFBRSwwREFBUyxFQUFFLENBQUMsUUFBUSxnQkFFbEMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQ3hCLDhFQUFLLFNBQVMsRUFBQyw0QkFBNEIsZ0JBQUUsaUJBQWlCLElBQU8sQ0FDdEUsSUFDVSxHQUNaLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGlFQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi50c3g/MjM1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xuaW1wb3J0IHsgVG9vbEJ1dHRvbiB9IGZyb20gXCIuL1Rvb2xCdXR0b25cIjtcbmltcG9ydCB7IHQgfSBmcm9tIFwiLi4vaTE4blwiO1xuaW1wb3J0IHsgdXNlRGV2aWNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQXBwXCI7XG5pbXBvcnQgeyB1c2VycyB9IGZyb20gXCIuL2ljb25zXCI7XG5cbmltcG9ydCBcIi4vQ29sbGFiQnV0dG9uLnNjc3NcIjtcblxuY29uc3QgQ29sbGFiQnV0dG9uID0gKHtcbiAgaXNDb2xsYWJvcmF0aW5nLFxuICBjb2xsYWJvcmF0b3JDb3VudCxcbiAgb25DbGljayxcbn06IHtcbiAgaXNDb2xsYWJvcmF0aW5nOiBib29sZWFuO1xuICBjb2xsYWJvcmF0b3JDb3VudDogbnVtYmVyO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8VG9vbEJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e2Nsc3goXCJDb2xsYWJCdXR0b25cIiwge1xuICAgICAgICAgIFwiaXMtY29sbGFib3JhdGluZ1wiOiBpc0NvbGxhYm9yYXRpbmcsXG4gICAgICAgIH0pfVxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBpY29uPXt1c2Vyc31cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRpdGxlPXt0KFwibGFiZWxzLmxpdmVDb2xsYWJvcmF0aW9uXCIpfVxuICAgICAgICBhcmlhLWxhYmVsPXt0KFwibGFiZWxzLmxpdmVDb2xsYWJvcmF0aW9uXCIpfVxuICAgICAgICBzaG93QXJpYUxhYmVsPXt1c2VEZXZpY2UoKS5pc01vYmlsZX1cbiAgICAgID5cbiAgICAgICAge2NvbGxhYm9yYXRvckNvdW50ID4gMCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJDb2xsYWJCdXR0b24tY29sbGFib3JhdG9yc1wiPntjb2xsYWJvcmF0b3JDb3VudH08L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbEJ1dHRvbj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhYkJ1dHRvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/CollabButton.tsx\n");
2200
+ 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_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./icons */ \"../../components/icons.tsx\");\n/* harmony import */ var _CollabButton_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CollabButton.scss */ \"../../components/CollabButton.scss\");\n/* harmony import */ var _CollabButton_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_CollabButton_scss__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n\nconst CollabButton = ({ isCollaborating, collaboratorCount, onClick, }) => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_2__.ToolButton, Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"CollabButton\", {\n \"is-collaborating\": isCollaborating,\n }), onClick: onClick, icon: _icons__WEBPACK_IMPORTED_MODULE_5__.users, type: \"button\", title: (0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(\"labels.liveCollaboration\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_3__.t)(\"labels.liveCollaboration\"), showAriaLabel: (0,_components_App__WEBPACK_IMPORTED_MODULE_4__.useDevice)().isMobile }, { children: isCollaborating && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"CollabButton-collaborators\" }, { children: collaboratorCount }))) })) }));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CollabButton);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9Db2xsYWJCdXR0b24udHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBd0I7QUFDa0I7QUFDZDtBQUNrQjtBQUNkO0FBRUg7QUFFN0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUNwQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLE9BQU8sR0FLUixFQUFFLEVBQUU7SUFDSCxPQUFPLENBQ0wsNEhBQ0UsdURBQUMsbURBQVUsa0JBQ1QsU0FBUyxFQUFFLGdEQUFJLENBQUMsY0FBYyxFQUFFO2dCQUM5QixrQkFBa0IsRUFBRSxlQUFlO2FBQ3BDLENBQUMsRUFDRixPQUFPLEVBQUUsT0FBTyxFQUNoQixJQUFJLEVBQUUseUNBQUssRUFDWCxJQUFJLEVBQUMsUUFBUSxFQUNiLEtBQUssRUFBRSx3Q0FBQyxDQUFDLDBCQUEwQixDQUFDLGdCQUN4Qix3Q0FBQyxDQUFDLDBCQUEwQixDQUFDLEVBQ3pDLGFBQWEsRUFBRSwwREFBUyxFQUFFLENBQUMsUUFBUSxnQkFFbEMsZUFBZSxJQUFJLENBQ2xCLDhFQUFLLFNBQVMsRUFBQyw0QkFBNEIsZ0JBQUUsaUJBQWlCLElBQU8sQ0FDdEUsSUFDVSxHQUNaLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGlFQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi50c3g/MjM1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xuaW1wb3J0IHsgVG9vbEJ1dHRvbiB9IGZyb20gXCIuL1Rvb2xCdXR0b25cIjtcbmltcG9ydCB7IHQgfSBmcm9tIFwiLi4vaTE4blwiO1xuaW1wb3J0IHsgdXNlRGV2aWNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQXBwXCI7XG5pbXBvcnQgeyB1c2VycyB9IGZyb20gXCIuL2ljb25zXCI7XG5cbmltcG9ydCBcIi4vQ29sbGFiQnV0dG9uLnNjc3NcIjtcblxuY29uc3QgQ29sbGFiQnV0dG9uID0gKHtcbiAgaXNDb2xsYWJvcmF0aW5nLFxuICBjb2xsYWJvcmF0b3JDb3VudCxcbiAgb25DbGljayxcbn06IHtcbiAgaXNDb2xsYWJvcmF0aW5nOiBib29sZWFuO1xuICBjb2xsYWJvcmF0b3JDb3VudDogbnVtYmVyO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8VG9vbEJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e2Nsc3goXCJDb2xsYWJCdXR0b25cIiwge1xuICAgICAgICAgIFwiaXMtY29sbGFib3JhdGluZ1wiOiBpc0NvbGxhYm9yYXRpbmcsXG4gICAgICAgIH0pfVxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBpY29uPXt1c2Vyc31cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRpdGxlPXt0KFwibGFiZWxzLmxpdmVDb2xsYWJvcmF0aW9uXCIpfVxuICAgICAgICBhcmlhLWxhYmVsPXt0KFwibGFiZWxzLmxpdmVDb2xsYWJvcmF0aW9uXCIpfVxuICAgICAgICBzaG93QXJpYUxhYmVsPXt1c2VEZXZpY2UoKS5pc01vYmlsZX1cbiAgICAgID5cbiAgICAgICAge2lzQ29sbGFib3JhdGluZyAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJDb2xsYWJCdXR0b24tY29sbGFib3JhdG9yc1wiPntjb2xsYWJvcmF0b3JDb3VudH08L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbEJ1dHRvbj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhYkJ1dHRvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/CollabButton.tsx\n");
2201
2201
 
2202
2202
  /***/ }),
2203
2203
 
@@ -2593,7 +2593,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2593
2593
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2594
2594
 
2595
2595
  "use strict";
2596
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Toast\": () => (/* binding */ Toast)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\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 _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _Toast_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Toast.scss */ \"../../components/Toast.scss\");\n/* harmony import */ var _Toast_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Toast_scss__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nconst Toast = ({ message, clearToast, }) => {\n const timerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n const scheduleTimeout = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => (timerRef.current = window.setTimeout(() => clearToast(), _constants__WEBPACK_IMPORTED_MODULE_2__.TOAST_TIMEOUT)), [clearToast]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n scheduleTimeout();\n return () => clearTimeout(timerRef.current);\n }, [scheduleTimeout, message]);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"Toast\", onMouseEnter: () => clearTimeout(timerRef === null || timerRef === void 0 ? void 0 : timerRef.current), onMouseLeave: scheduleTimeout }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", Object.assign({ className: \"Toast__message\" }, { children: message })) })));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9Ub2FzdC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBdUQ7QUFDVjtBQUN2QjtBQUVmLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFDcEIsT0FBTyxFQUNQLFVBQVUsR0FJWCxFQUFFLEVBQUU7SUFDSCxNQUFNLFFBQVEsR0FBRyw2Q0FBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sZUFBZSxHQUFHLGtEQUFXLENBQ2pDLEdBQUcsRUFBRSxDQUNILENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLHFEQUFhLENBQUMsQ0FBQyxFQUMzRSxDQUFDLFVBQVUsQ0FBQyxDQUNiLENBQUM7SUFFRixnREFBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUUvQixPQUFPLENBQ0wsOEVBQ0UsU0FBUyxFQUFDLE9BQU8sRUFDakIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxDQUFDLEVBQ25ELFlBQVksRUFBRSxlQUFlLGdCQUU3Qiw0RUFBRyxTQUFTLEVBQUMsZ0JBQWdCLGdCQUFFLE9BQU8sSUFBSyxJQUN2QyxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Ub2FzdC50c3g/ZmQ1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFRPQVNUX1RJTUVPVVQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgXCIuL1RvYXN0LnNjc3NcIjtcblxuZXhwb3J0IGNvbnN0IFRvYXN0ID0gKHtcbiAgbWVzc2FnZSxcbiAgY2xlYXJUb2FzdCxcbn06IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBjbGVhclRvYXN0OiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aW1lclJlZiA9IHVzZVJlZjxudW1iZXI+KDApO1xuXG4gIGNvbnN0IHNjaGVkdWxlVGltZW91dCA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+XG4gICAgICAodGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IGNsZWFyVG9hc3QoKSwgVE9BU1RfVElNRU9VVCkpLFxuICAgIFtjbGVhclRvYXN0XSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNjaGVkdWxlVGltZW91dCgpO1xuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gIH0sIFtzY2hlZHVsZVRpbWVvdXQsIG1lc3NhZ2VdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT1cIlRvYXN0XCJcbiAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVyUmVmPy5jdXJyZW50KX1cbiAgICAgIG9uTW91c2VMZWF2ZT17c2NoZWR1bGVUaW1lb3V0fVxuICAgID5cbiAgICAgIDxwIGNsYXNzTmFtZT1cIlRvYXN0X19tZXNzYWdlXCI+e21lc3NhZ2V9PC9wPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/Toast.tsx\n");
2596
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Toast\": () => (/* binding */ Toast)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\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 _icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons */ \"../../components/icons.tsx\");\n/* harmony import */ var _Toast_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Toast.scss */ \"../../components/Toast.scss\");\n/* harmony import */ var _Toast_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Toast_scss__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n\n\n\n\n\nconst DEFAULT_TOAST_TIMEOUT = 5000;\nconst Toast = ({ message, clearToast, closable = false, \n// To prevent autoclose, pass duration as Infinity\nduration = DEFAULT_TOAST_TIMEOUT, }) => {\n const timerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n const shouldAutoClose = duration !== Infinity;\n const scheduleTimeout = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {\n if (!shouldAutoClose) {\n return;\n }\n timerRef.current = window.setTimeout(() => clearToast(), duration);\n }, [clearToast, duration, shouldAutoClose]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n if (!shouldAutoClose) {\n return;\n }\n scheduleTimeout();\n return () => clearTimeout(timerRef.current);\n }, [scheduleTimeout, message, duration, shouldAutoClose]);\n const onMouseEnter = shouldAutoClose\n ? () => clearTimeout(timerRef === null || timerRef === void 0 ? void 0 : timerRef.current)\n : undefined;\n const onMouseLeave = shouldAutoClose ? scheduleTimeout : undefined;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"Toast\", onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", Object.assign({ className: \"Toast__message\" }, { children: message })), closable && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_4__.ToolButton, { icon: _icons__WEBPACK_IMPORTED_MODULE_2__.close, \"aria-label\": \"close\", type: \"icon\", onClick: clearToast, className: \"close\" }))] })));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9Ub2FzdC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXVEO0FBQ3ZCO0FBQ1Y7QUFDb0I7QUFFMUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFFNUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUNwQixPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsR0FBRyxLQUFLO0FBQ2hCLGtEQUFrRDtBQUNsRCxRQUFRLEdBQUcscUJBQXFCLEdBTWpDLEVBQUUsRUFBRTtJQUNILE1BQU0sUUFBUSxHQUFHLDZDQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsTUFBTSxlQUFlLEdBQUcsUUFBUSxLQUFLLFFBQVEsQ0FBQztJQUM5QyxNQUFNLGVBQWUsR0FBRyxrREFBVyxDQUFDLEdBQUcsRUFBRTtRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUNELFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFFNUMsZ0RBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUNELGVBQWUsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBRTFELE1BQU0sWUFBWSxHQUFHLGVBQWU7UUFDbEMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDZCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ25FLE9BQU8sQ0FDTCwrRUFDRSxTQUFTLEVBQUMsT0FBTyxFQUNqQixZQUFZLEVBQUUsWUFBWSxFQUMxQixZQUFZLEVBQUUsWUFBWSxpQkFFMUIsNEVBQUcsU0FBUyxFQUFDLGdCQUFnQixnQkFBRSxPQUFPLElBQUssRUFDMUMsUUFBUSxJQUFJLENBQ1gsdURBQUMsbURBQVUsSUFDVCxJQUFJLEVBQUUseUNBQUssZ0JBQ0EsT0FBTyxFQUNsQixJQUFJLEVBQUMsTUFBTSxFQUNYLE9BQU8sRUFBRSxVQUFVLEVBQ25CLFNBQVMsRUFBQyxPQUFPLEdBQ2pCLENBQ0gsS0FDRyxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Ub2FzdC50c3g/ZmQ1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNsb3NlIH0gZnJvbSBcIi4vaWNvbnNcIjtcbmltcG9ydCBcIi4vVG9hc3Quc2Nzc1wiO1xuaW1wb3J0IHsgVG9vbEJ1dHRvbiB9IGZyb20gXCIuL1Rvb2xCdXR0b25cIjtcblxuY29uc3QgREVGQVVMVF9UT0FTVF9USU1FT1VUID0gNTAwMDtcblxuZXhwb3J0IGNvbnN0IFRvYXN0ID0gKHtcbiAgbWVzc2FnZSxcbiAgY2xlYXJUb2FzdCxcbiAgY2xvc2FibGUgPSBmYWxzZSxcbiAgLy8gVG8gcHJldmVudCBhdXRvY2xvc2UsIHBhc3MgZHVyYXRpb24gYXMgSW5maW5pdHlcbiAgZHVyYXRpb24gPSBERUZBVUxUX1RPQVNUX1RJTUVPVVQsXG59OiB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY2xlYXJUb2FzdDogKCkgPT4gdm9pZDtcbiAgY2xvc2FibGU/OiBib29sZWFuO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbn0pID0+IHtcbiAgY29uc3QgdGltZXJSZWYgPSB1c2VSZWY8bnVtYmVyPigwKTtcbiAgY29uc3Qgc2hvdWxkQXV0b0Nsb3NlID0gZHVyYXRpb24gIT09IEluZmluaXR5O1xuICBjb25zdCBzY2hlZHVsZVRpbWVvdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFzaG91bGRBdXRvQ2xvc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IGNsZWFyVG9hc3QoKSwgZHVyYXRpb24pO1xuICB9LCBbY2xlYXJUb2FzdCwgZHVyYXRpb24sIHNob3VsZEF1dG9DbG9zZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG91bGRBdXRvQ2xvc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2NoZWR1bGVUaW1lb3V0KCk7XG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgfSwgW3NjaGVkdWxlVGltZW91dCwgbWVzc2FnZSwgZHVyYXRpb24sIHNob3VsZEF1dG9DbG9zZV0pO1xuXG4gIGNvbnN0IG9uTW91c2VFbnRlciA9IHNob3VsZEF1dG9DbG9zZVxuICAgID8gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVyUmVmPy5jdXJyZW50KVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBvbk1vdXNlTGVhdmUgPSBzaG91bGRBdXRvQ2xvc2UgPyBzY2hlZHVsZVRpbWVvdXQgOiB1bmRlZmluZWQ7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwiVG9hc3RcIlxuICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJ9XG4gICAgICBvbk1vdXNlTGVhdmU9e29uTW91c2VMZWF2ZX1cbiAgICA+XG4gICAgICA8cCBjbGFzc05hbWU9XCJUb2FzdF9fbWVzc2FnZVwiPnttZXNzYWdlfTwvcD5cbiAgICAgIHtjbG9zYWJsZSAmJiAoXG4gICAgICAgIDxUb29sQnV0dG9uXG4gICAgICAgICAgaWNvbj17Y2xvc2V9XG4gICAgICAgICAgYXJpYS1sYWJlbD1cImNsb3NlXCJcbiAgICAgICAgICB0eXBlPVwiaWNvblwiXG4gICAgICAgICAgb25DbGljaz17Y2xlYXJUb2FzdH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJjbG9zZVwiXG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/Toast.tsx\n");
2597
2597
 
2598
2598
  /***/ }),
2599
2599
 
@@ -2648,7 +2648,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2648
2648
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2649
2649
 
2650
2650
  "use strict";
2651
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ACTIVE_THRESHOLD\": () => (/* binding */ ACTIVE_THRESHOLD),\n/* harmony export */ \"ALLOWED_IMAGE_MIME_TYPES\": () => (/* binding */ ALLOWED_IMAGE_MIME_TYPES),\n/* harmony export */ \"APP_NAME\": () => (/* binding */ APP_NAME),\n/* harmony export */ \"BOUND_TEXT_PADDING\": () => (/* binding */ BOUND_TEXT_PADDING),\n/* harmony export */ \"CANVAS_ONLY_ACTIONS\": () => (/* binding */ CANVAS_ONLY_ACTIONS),\n/* harmony export */ \"CLASSES\": () => (/* binding */ CLASSES),\n/* harmony export */ \"COOKIES\": () => (/* binding */ COOKIES),\n/* harmony export */ \"CURSOR_TYPE\": () => (/* binding */ CURSOR_TYPE),\n/* harmony export */ \"DEFAULT_EXPORT_PADDING\": () => (/* binding */ DEFAULT_EXPORT_PADDING),\n/* harmony export */ \"DEFAULT_FONT_FAMILY\": () => (/* binding */ DEFAULT_FONT_FAMILY),\n/* harmony export */ \"DEFAULT_FONT_SIZE\": () => (/* binding */ DEFAULT_FONT_SIZE),\n/* harmony export */ \"DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT\": () => (/* binding */ DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT),\n/* harmony export */ \"DEFAULT_TEXT_ALIGN\": () => (/* binding */ DEFAULT_TEXT_ALIGN),\n/* harmony export */ \"DEFAULT_UI_OPTIONS\": () => (/* binding */ DEFAULT_UI_OPTIONS),\n/* harmony export */ \"DEFAULT_VERSION\": () => (/* binding */ DEFAULT_VERSION),\n/* harmony export */ \"DEFAULT_VERTICAL_ALIGN\": () => (/* binding */ DEFAULT_VERTICAL_ALIGN),\n/* harmony export */ \"DRAGGING_THRESHOLD\": () => (/* binding */ DRAGGING_THRESHOLD),\n/* harmony export */ \"ELEMENT_READY_TO_ERASE_OPACITY\": () => (/* binding */ ELEMENT_READY_TO_ERASE_OPACITY),\n/* harmony export */ \"ELEMENT_SHIFT_TRANSLATE_AMOUNT\": () => (/* binding */ ELEMENT_SHIFT_TRANSLATE_AMOUNT),\n/* harmony export */ \"ELEMENT_TRANSLATE_AMOUNT\": () => (/* binding */ ELEMENT_TRANSLATE_AMOUNT),\n/* harmony export */ \"ENCRYPTION_KEY_BITS\": () => (/* binding */ ENCRYPTION_KEY_BITS),\n/* harmony export */ \"ENV\": () => (/* binding */ ENV),\n/* harmony export */ \"EVENT\": () => (/* binding */ EVENT),\n/* harmony export */ \"EXPORT_DATA_TYPES\": () => (/* binding */ EXPORT_DATA_TYPES),\n/* harmony export */ \"EXPORT_SCALES\": () => (/* binding */ EXPORT_SCALES),\n/* harmony export */ \"EXPORT_SOURCE\": () => (/* binding */ EXPORT_SOURCE),\n/* harmony export */ \"FONT_FAMILY\": () => (/* binding */ FONT_FAMILY),\n/* harmony export */ \"GRID_SIZE\": () => (/* binding */ GRID_SIZE),\n/* harmony export */ \"HYPERLINK_TOOLTIP_DELAY\": () => (/* binding */ HYPERLINK_TOOLTIP_DELAY),\n/* harmony export */ \"IDLE_THRESHOLD\": () => (/* binding */ IDLE_THRESHOLD),\n/* harmony export */ \"IMAGE_RENDER_TIMEOUT\": () => (/* binding */ IMAGE_RENDER_TIMEOUT),\n/* harmony export */ \"LIBRARY_SIDEBAR_WIDTH\": () => (/* binding */ LIBRARY_SIDEBAR_WIDTH),\n/* harmony export */ \"LINE_CONFIRM_THRESHOLD\": () => (/* binding */ LINE_CONFIRM_THRESHOLD),\n/* harmony export */ \"MAX_ALLOWED_FILE_BYTES\": () => (/* binding */ MAX_ALLOWED_FILE_BYTES),\n/* harmony export */ \"MAX_DECIMALS_FOR_SVG_EXPORT\": () => (/* binding */ MAX_DECIMALS_FOR_SVG_EXPORT),\n/* harmony export */ \"MIME_TYPES\": () => (/* binding */ MIME_TYPES),\n/* harmony export */ \"MODES\": () => (/* binding */ MODES),\n/* harmony export */ \"MQ_MAX_HEIGHT_LANDSCAPE\": () => (/* binding */ MQ_MAX_HEIGHT_LANDSCAPE),\n/* harmony export */ \"MQ_MAX_WIDTH_LANDSCAPE\": () => (/* binding */ MQ_MAX_WIDTH_LANDSCAPE),\n/* harmony export */ \"MQ_MAX_WIDTH_PORTRAIT\": () => (/* binding */ MQ_MAX_WIDTH_PORTRAIT),\n/* harmony export */ \"MQ_RIGHT_SIDEBAR_MIN_WIDTH\": () => (/* binding */ MQ_RIGHT_SIDEBAR_MIN_WIDTH),\n/* harmony export */ \"MQ_SM_MAX_WIDTH\": () => (/* binding */ MQ_SM_MAX_WIDTH),\n/* harmony export */ \"POINTER_BUTTON\": () => (/* binding */ POINTER_BUTTON),\n/* harmony export */ \"SCROLL_TIMEOUT\": () => (/* binding */ SCROLL_TIMEOUT),\n/* harmony export */ \"SHIFT_LOCKING_ANGLE\": () => (/* binding */ SHIFT_LOCKING_ANGLE),\n/* harmony export */ \"SVG_NS\": () => (/* binding */ SVG_NS),\n/* harmony export */ \"TAP_TWICE_TIMEOUT\": () => (/* binding */ TAP_TWICE_TIMEOUT),\n/* harmony export */ \"TEXT_TO_CENTER_SNAP_THRESHOLD\": () => (/* binding */ TEXT_TO_CENTER_SNAP_THRESHOLD),\n/* harmony export */ \"THEME\": () => (/* binding */ THEME),\n/* harmony export */ \"THEME_FILTER\": () => (/* binding */ THEME_FILTER),\n/* harmony export */ \"TITLE_TIMEOUT\": () => (/* binding */ TITLE_TIMEOUT),\n/* harmony export */ \"TOAST_TIMEOUT\": () => (/* binding */ TOAST_TIMEOUT),\n/* harmony export */ \"TOUCH_CTX_MENU_TIMEOUT\": () => (/* binding */ TOUCH_CTX_MENU_TIMEOUT),\n/* harmony export */ \"URL_HASH_KEYS\": () => (/* binding */ URL_HASH_KEYS),\n/* harmony export */ \"URL_QUERY_KEYS\": () => (/* binding */ URL_QUERY_KEYS),\n/* harmony export */ \"VERSIONS\": () => (/* binding */ VERSIONS),\n/* harmony export */ \"VERSION_TIMEOUT\": () => (/* binding */ VERSION_TIMEOUT),\n/* harmony export */ \"VERTICAL_ALIGN\": () => (/* binding */ VERTICAL_ALIGN),\n/* harmony export */ \"WINDOWS_EMOJI_FALLBACK_FONT\": () => (/* binding */ WINDOWS_EMOJI_FALLBACK_FONT),\n/* harmony export */ \"ZOOM_STEP\": () => (/* binding */ ZOOM_STEP)\n/* harmony export */ });\n/* harmony import */ var _css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css/variables.module.scss */ \"../../css/variables.module.scss\");\n/* harmony import */ var _css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0__);\n\nconst APP_NAME = \"Excalidraw\";\nconst DRAGGING_THRESHOLD = 10; // px\nconst LINE_CONFIRM_THRESHOLD = 8; // px\nconst ELEMENT_SHIFT_TRANSLATE_AMOUNT = 5;\nconst ELEMENT_TRANSLATE_AMOUNT = 1;\nconst TEXT_TO_CENTER_SNAP_THRESHOLD = 30;\nconst SHIFT_LOCKING_ANGLE = Math.PI / 12;\nconst CURSOR_TYPE = {\n TEXT: \"text\",\n CROSSHAIR: \"crosshair\",\n GRABBING: \"grabbing\",\n GRAB: \"grab\",\n POINTER: \"pointer\",\n MOVE: \"move\",\n AUTO: \"\",\n};\nconst POINTER_BUTTON = {\n MAIN: 0,\n WHEEL: 1,\n SECONDARY: 2,\n TOUCH: -1,\n};\nvar EVENT;\n(function (EVENT) {\n EVENT[\"COPY\"] = \"copy\";\n EVENT[\"PASTE\"] = \"paste\";\n EVENT[\"CUT\"] = \"cut\";\n EVENT[\"KEYDOWN\"] = \"keydown\";\n EVENT[\"KEYUP\"] = \"keyup\";\n EVENT[\"MOUSE_MOVE\"] = \"mousemove\";\n EVENT[\"RESIZE\"] = \"resize\";\n EVENT[\"UNLOAD\"] = \"unload\";\n EVENT[\"FOCUS\"] = \"focus\";\n EVENT[\"BLUR\"] = \"blur\";\n EVENT[\"DRAG_OVER\"] = \"dragover\";\n EVENT[\"DROP\"] = \"drop\";\n EVENT[\"GESTURE_END\"] = \"gestureend\";\n EVENT[\"BEFORE_UNLOAD\"] = \"beforeunload\";\n EVENT[\"GESTURE_START\"] = \"gesturestart\";\n EVENT[\"GESTURE_CHANGE\"] = \"gesturechange\";\n EVENT[\"POINTER_MOVE\"] = \"pointermove\";\n EVENT[\"POINTER_UP\"] = \"pointerup\";\n EVENT[\"STATE_CHANGE\"] = \"statechange\";\n EVENT[\"WHEEL\"] = \"wheel\";\n EVENT[\"TOUCH_START\"] = \"touchstart\";\n EVENT[\"TOUCH_END\"] = \"touchend\";\n EVENT[\"HASHCHANGE\"] = \"hashchange\";\n EVENT[\"VISIBILITY_CHANGE\"] = \"visibilitychange\";\n EVENT[\"SCROLL\"] = \"scroll\";\n // custom events\n EVENT[\"EXCALIDRAW_LINK\"] = \"excalidraw-link\";\n})(EVENT || (EVENT = {}));\nconst ENV = {\n TEST: \"test\",\n DEVELOPMENT: \"development\",\n};\nconst CLASSES = {\n SHAPE_ACTIONS_MENU: \"App-menu__left\",\n};\n// 1-based in case we ever do `if(element.fontFamily)`\nconst FONT_FAMILY = {\n Virgil: 1,\n Helvetica: 2,\n Cascadia: 3,\n};\nconst THEME = {\n LIGHT: \"light\",\n DARK: \"dark\",\n};\nconst WINDOWS_EMOJI_FALLBACK_FONT = \"Segoe UI Emoji\";\nconst DEFAULT_FONT_SIZE = 20;\nconst DEFAULT_FONT_FAMILY = FONT_FAMILY.Virgil;\nconst DEFAULT_TEXT_ALIGN = \"left\";\nconst DEFAULT_VERTICAL_ALIGN = \"top\";\nconst DEFAULT_VERSION = \"{version}\";\nconst CANVAS_ONLY_ACTIONS = [\"selectAll\"];\nconst GRID_SIZE = 20; // TODO make it configurable?\nconst MIME_TYPES = {\n excalidraw: \"application/vnd.excalidraw+json\",\n excalidrawlib: \"application/vnd.excalidrawlib+json\",\n json: \"application/json\",\n svg: \"image/svg+xml\",\n \"excalidraw.svg\": \"image/svg+xml\",\n png: \"image/png\",\n \"excalidraw.png\": \"image/png\",\n jpg: \"image/jpeg\",\n gif: \"image/gif\",\n binary: \"application/octet-stream\",\n};\nconst EXPORT_DATA_TYPES = {\n excalidraw: \"excalidraw\",\n excalidrawClipboard: \"excalidraw/clipboard\",\n excalidrawLibrary: \"excalidrawlib\",\n};\nconst EXPORT_SOURCE = window.EXCALIDRAW_EXPORT_SOURCE || window.location.origin;\n// time in milliseconds\nconst IMAGE_RENDER_TIMEOUT = 500;\nconst TAP_TWICE_TIMEOUT = 300;\nconst TOUCH_CTX_MENU_TIMEOUT = 500;\nconst TITLE_TIMEOUT = 10000;\nconst TOAST_TIMEOUT = 5000;\nconst VERSION_TIMEOUT = 30000;\nconst SCROLL_TIMEOUT = 100;\nconst ZOOM_STEP = 0.1;\nconst HYPERLINK_TOOLTIP_DELAY = 300;\n// Report a user inactive after IDLE_THRESHOLD milliseconds\nconst IDLE_THRESHOLD = 60000;\n// Report a user active each ACTIVE_THRESHOLD milliseconds\nconst ACTIVE_THRESHOLD = 3000;\nconst MODES = {\n VIEW: \"viewMode\",\n ZEN: \"zenMode\",\n GRID: \"gridMode\",\n};\nconst THEME_FILTER = (_css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0___default().themeFilter);\nconst URL_QUERY_KEYS = {\n addLibrary: \"addLibrary\",\n};\nconst URL_HASH_KEYS = {\n addLibrary: \"addLibrary\",\n};\nconst DEFAULT_UI_OPTIONS = {\n canvasActions: {\n changeViewBackgroundColor: true,\n clearCanvas: true,\n export: { saveFileToDisk: true },\n loadScene: true,\n saveToActiveFile: true,\n theme: true,\n saveAsImage: true,\n },\n};\n// breakpoints\n// -----------------------------------------------------------------------------\n// sm screen\nconst MQ_SM_MAX_WIDTH = 640;\n// md screen\nconst MQ_MAX_WIDTH_PORTRAIT = 730;\nconst MQ_MAX_WIDTH_LANDSCAPE = 1000;\nconst MQ_MAX_HEIGHT_LANDSCAPE = 500;\n// sidebar\nconst MQ_RIGHT_SIDEBAR_MIN_WIDTH = 1229;\n// -----------------------------------------------------------------------------\nconst LIBRARY_SIDEBAR_WIDTH = parseInt((_css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0___default().rightSidebarWidth));\nconst MAX_DECIMALS_FOR_SVG_EXPORT = 2;\nconst EXPORT_SCALES = [1, 2, 3];\nconst DEFAULT_EXPORT_PADDING = 10; // px\nconst DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;\nconst ALLOWED_IMAGE_MIME_TYPES = [\n MIME_TYPES.png,\n MIME_TYPES.jpg,\n MIME_TYPES.svg,\n MIME_TYPES.gif,\n];\nconst MAX_ALLOWED_FILE_BYTES = 2 * 1024 * 1024;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst ENCRYPTION_KEY_BITS = 128;\nconst VERSIONS = {\n excalidraw: 2,\n excalidrawLibrary: 2,\n};\nconst BOUND_TEXT_PADDING = 5;\nconst VERTICAL_ALIGN = {\n TOP: \"top\",\n MIDDLE: \"middle\",\n BOTTOM: \"bottom\",\n};\nconst ELEMENT_READY_TO_ERASE_OPACITY = 20;\nconst COOKIES = {\n AUTH_STATE_COOKIE: \"excplus-auth\",\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QTRCLENBQUM7QUFFNUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsVUFBVSxFQUFFLENBQUM7SUFDYixpQkFBaUIsRUFBRSxDQUFDO0NBQ1osQ0FBQztBQUVKLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBRTdCLE1BQU0sY0FBYyxHQUFHO0lBQzVCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQztBQUVLLE1BQU0sOEJBQThCLEdBQUcsRUFBRSxDQUFDO0FBRTFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLGlCQUFpQixFQUFFLGNBQWM7Q0FDekIsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb25zdGFudHMudHM/NjI1NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3NzVmFyaWFibGVzIGZyb20gXCIuL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IEFwcFByb3BzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZvbnRGYW1pbHlWYWx1ZXMgfSBmcm9tIFwiLi9lbGVtZW50L3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBBUFBfTkFNRSA9IFwiRXhjYWxpZHJhd1wiO1xuXG5leHBvcnQgY29uc3QgRFJBR0dJTkdfVEhSRVNIT0xEID0gMTA7IC8vIHB4XG5leHBvcnQgY29uc3QgTElORV9DT05GSVJNX1RIUkVTSE9MRCA9IDg7IC8vIHB4XG5leHBvcnQgY29uc3QgRUxFTUVOVF9TSElGVF9UUkFOU0xBVEVfQU1PVU5UID0gNTtcbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RSQU5TTEFURV9BTU9VTlQgPSAxO1xuZXhwb3J0IGNvbnN0IFRFWFRfVE9fQ0VOVEVSX1NOQVBfVEhSRVNIT0xEID0gMzA7XG5leHBvcnQgY29uc3QgU0hJRlRfTE9DS0lOR19BTkdMRSA9IE1hdGguUEkgLyAxMjtcbmV4cG9ydCBjb25zdCBDVVJTT1JfVFlQRSA9IHtcbiAgVEVYVDogXCJ0ZXh0XCIsXG4gIENST1NTSEFJUjogXCJjcm9zc2hhaXJcIixcbiAgR1JBQkJJTkc6IFwiZ3JhYmJpbmdcIixcbiAgR1JBQjogXCJncmFiXCIsXG4gIFBPSU5URVI6IFwicG9pbnRlclwiLFxuICBNT1ZFOiBcIm1vdmVcIixcbiAgQVVUTzogXCJcIixcbn07XG5leHBvcnQgY29uc3QgUE9JTlRFUl9CVVRUT04gPSB7XG4gIE1BSU46IDAsXG4gIFdIRUVMOiAxLFxuICBTRUNPTkRBUlk6IDIsXG4gIFRPVUNIOiAtMSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBlbnVtIEVWRU5UIHtcbiAgQ09QWSA9IFwiY29weVwiLFxuICBQQVNURSA9IFwicGFzdGVcIixcbiAgQ1VUID0gXCJjdXRcIixcbiAgS0VZRE9XTiA9IFwia2V5ZG93blwiLFxuICBLRVlVUCA9IFwia2V5dXBcIixcbiAgTU9VU0VfTU9WRSA9IFwibW91c2Vtb3ZlXCIsXG4gIFJFU0laRSA9IFwicmVzaXplXCIsXG4gIFVOTE9BRCA9IFwidW5sb2FkXCIsXG4gIEZPQ1VTID0gXCJmb2N1c1wiLFxuICBCTFVSID0gXCJibHVyXCIsXG4gIERSQUdfT1ZFUiA9IFwiZHJhZ292ZXJcIixcbiAgRFJPUCA9IFwiZHJvcFwiLFxuICBHRVNUVVJFX0VORCA9IFwiZ2VzdHVyZWVuZFwiLFxuICBCRUZPUkVfVU5MT0FEID0gXCJiZWZvcmV1bmxvYWRcIixcbiAgR0VTVFVSRV9TVEFSVCA9IFwiZ2VzdHVyZXN0YXJ0XCIsXG4gIEdFU1RVUkVfQ0hBTkdFID0gXCJnZXN0dXJlY2hhbmdlXCIsXG4gIFBPSU5URVJfTU9WRSA9IFwicG9pbnRlcm1vdmVcIixcbiAgUE9JTlRFUl9VUCA9IFwicG9pbnRlcnVwXCIsXG4gIFNUQVRFX0NIQU5HRSA9IFwic3RhdGVjaGFuZ2VcIixcbiAgV0hFRUwgPSBcIndoZWVsXCIsXG4gIFRPVUNIX1NUQVJUID0gXCJ0b3VjaHN0YXJ0XCIsXG4gIFRPVUNIX0VORCA9IFwidG91Y2hlbmRcIixcbiAgSEFTSENIQU5HRSA9IFwiaGFzaGNoYW5nZVwiLFxuICBWSVNJQklMSVRZX0NIQU5HRSA9IFwidmlzaWJpbGl0eWNoYW5nZVwiLFxuICBTQ1JPTEwgPSBcInNjcm9sbFwiLFxuICAvLyBjdXN0b20gZXZlbnRzXG4gIEVYQ0FMSURSQVdfTElOSyA9IFwiZXhjYWxpZHJhdy1saW5rXCIsXG59XG5cbmV4cG9ydCBjb25zdCBFTlYgPSB7XG4gIFRFU1Q6IFwidGVzdFwiLFxuICBERVZFTE9QTUVOVDogXCJkZXZlbG9wbWVudFwiLFxufTtcblxuZXhwb3J0IGNvbnN0IENMQVNTRVMgPSB7XG4gIFNIQVBFX0FDVElPTlNfTUVOVTogXCJBcHAtbWVudV9fbGVmdFwiLFxufTtcblxuLy8gMS1iYXNlZCBpbiBjYXNlIHdlIGV2ZXIgZG8gYGlmKGVsZW1lbnQuZm9udEZhbWlseSlgXG5leHBvcnQgY29uc3QgRk9OVF9GQU1JTFkgPSB7XG4gIFZpcmdpbDogMSxcbiAgSGVsdmV0aWNhOiAyLFxuICBDYXNjYWRpYTogMyxcbn07XG5cbmV4cG9ydCBjb25zdCBUSEVNRSA9IHtcbiAgTElHSFQ6IFwibGlnaHRcIixcbiAgREFSSzogXCJkYXJrXCIsXG59O1xuXG5leHBvcnQgY29uc3QgV0lORE9XU19FTU9KSV9GQUxMQkFDS19GT05UID0gXCJTZWdvZSBVSSBFbW9qaVwiO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT05UX1NJWkUgPSAyMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTlRfRkFNSUxZOiBGb250RmFtaWx5VmFsdWVzID0gRk9OVF9GQU1JTFkuVmlyZ2lsO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVF9BTElHTiA9IFwibGVmdFwiO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVkVSVElDQUxfQUxJR04gPSBcInRvcFwiO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVkVSU0lPTiA9IFwie3ZlcnNpb259XCI7XG5cbmV4cG9ydCBjb25zdCBDQU5WQVNfT05MWV9BQ1RJT05TID0gW1wic2VsZWN0QWxsXCJdO1xuXG5leHBvcnQgY29uc3QgR1JJRF9TSVpFID0gMjA7IC8vIFRPRE8gbWFrZSBpdCBjb25maWd1cmFibGU/XG5cbmV4cG9ydCBjb25zdCBNSU1FX1RZUEVTID0ge1xuICBleGNhbGlkcmF3OiBcImFwcGxpY2F0aW9uL3ZuZC5leGNhbGlkcmF3K2pzb25cIixcbiAgZXhjYWxpZHJhd2xpYjogXCJhcHBsaWNhdGlvbi92bmQuZXhjYWxpZHJhd2xpYitqc29uXCIsXG4gIGpzb246IFwiYXBwbGljYXRpb24vanNvblwiLFxuICBzdmc6IFwiaW1hZ2Uvc3ZnK3htbFwiLFxuICBcImV4Y2FsaWRyYXcuc3ZnXCI6IFwiaW1hZ2Uvc3ZnK3htbFwiLFxuICBwbmc6IFwiaW1hZ2UvcG5nXCIsXG4gIFwiZXhjYWxpZHJhdy5wbmdcIjogXCJpbWFnZS9wbmdcIixcbiAganBnOiBcImltYWdlL2pwZWdcIixcbiAgZ2lmOiBcImltYWdlL2dpZlwiLFxuICBiaW5hcnk6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfVFlQRVMgPSB7XG4gIGV4Y2FsaWRyYXc6IFwiZXhjYWxpZHJhd1wiLFxuICBleGNhbGlkcmF3Q2xpcGJvYXJkOiBcImV4Y2FsaWRyYXcvY2xpcGJvYXJkXCIsXG4gIGV4Y2FsaWRyYXdMaWJyYXJ5OiBcImV4Y2FsaWRyYXdsaWJcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfU09VUkNFID1cbiAgd2luZG93LkVYQ0FMSURSQVdfRVhQT1JUX1NPVVJDRSB8fCB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuXG4vLyB0aW1lIGluIG1pbGxpc2Vjb25kc1xuZXhwb3J0IGNvbnN0IElNQUdFX1JFTkRFUl9USU1FT1VUID0gNTAwO1xuZXhwb3J0IGNvbnN0IFRBUF9UV0lDRV9USU1FT1VUID0gMzAwO1xuZXhwb3J0IGNvbnN0IFRPVUNIX0NUWF9NRU5VX1RJTUVPVVQgPSA1MDA7XG5leHBvcnQgY29uc3QgVElUTEVfVElNRU9VVCA9IDEwMDAwO1xuZXhwb3J0IGNvbnN0IFRPQVNUX1RJTUVPVVQgPSA1MDAwO1xuZXhwb3J0IGNvbnN0IFZFUlNJT05fVElNRU9VVCA9IDMwMDAwO1xuZXhwb3J0IGNvbnN0IFNDUk9MTF9USU1FT1VUID0gMTAwO1xuZXhwb3J0IGNvbnN0IFpPT01fU1RFUCA9IDAuMTtcbmV4cG9ydCBjb25zdCBIWVBFUkxJTktfVE9PTFRJUF9ERUxBWSA9IDMwMDtcblxuLy8gUmVwb3J0IGEgdXNlciBpbmFjdGl2ZSBhZnRlciBJRExFX1RIUkVTSE9MRCBtaWxsaXNlY29uZHNcbmV4cG9ydCBjb25zdCBJRExFX1RIUkVTSE9MRCA9IDYwXzAwMDtcbi8vIFJlcG9ydCBhIHVzZXIgYWN0aXZlIGVhY2ggQUNUSVZFX1RIUkVTSE9MRCBtaWxsaXNlY29uZHNcbmV4cG9ydCBjb25zdCBBQ1RJVkVfVEhSRVNIT0xEID0gM18wMDA7XG5cbmV4cG9ydCBjb25zdCBNT0RFUyA9IHtcbiAgVklFVzogXCJ2aWV3TW9kZVwiLFxuICBaRU46IFwiemVuTW9kZVwiLFxuICBHUklEOiBcImdyaWRNb2RlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgVEhFTUVfRklMVEVSID0gY3NzVmFyaWFibGVzLnRoZW1lRmlsdGVyO1xuXG5leHBvcnQgY29uc3QgVVJMX1FVRVJZX0tFWVMgPSB7XG4gIGFkZExpYnJhcnk6IFwiYWRkTGlicmFyeVwiLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFVSTF9IQVNIX0tFWVMgPSB7XG4gIGFkZExpYnJhcnk6IFwiYWRkTGlicmFyeVwiLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVUlfT1BUSU9OUzogQXBwUHJvcHNbXCJVSU9wdGlvbnNcIl0gPSB7XG4gIGNhbnZhc0FjdGlvbnM6IHtcbiAgICBjaGFuZ2VWaWV3QmFja2dyb3VuZENvbG9yOiB0cnVlLFxuICAgIGNsZWFyQ2FudmFzOiB0cnVlLFxuICAgIGV4cG9ydDogeyBzYXZlRmlsZVRvRGlzazogdHJ1ZSB9LFxuICAgIGxvYWRTY2VuZTogdHJ1ZSxcbiAgICBzYXZlVG9BY3RpdmVGaWxlOiB0cnVlLFxuICAgIHRoZW1lOiB0cnVlLFxuICAgIHNhdmVBc0ltYWdlOiB0cnVlLFxuICB9LFxufTtcblxuLy8gYnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBzbSBzY3JlZW5cbmV4cG9ydCBjb25zdCBNUV9TTV9NQVhfV0lEVEggPSA2NDA7XG4vLyBtZCBzY3JlZW5cbmV4cG9ydCBjb25zdCBNUV9NQVhfV0lEVEhfUE9SVFJBSVQgPSA3MzA7XG5leHBvcnQgY29uc3QgTVFfTUFYX1dJRFRIX0xBTkRTQ0FQRSA9IDEwMDA7XG5leHBvcnQgY29uc3QgTVFfTUFYX0hFSUdIVF9MQU5EU0NBUEUgPSA1MDA7XG4vLyBzaWRlYmFyXG5leHBvcnQgY29uc3QgTVFfUklHSFRfU0lERUJBUl9NSU5fV0lEVEggPSAxMjI5O1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IExJQlJBUllfU0lERUJBUl9XSURUSCA9IHBhcnNlSW50KGNzc1ZhcmlhYmxlcy5yaWdodFNpZGViYXJXaWR0aCk7XG5cbmV4cG9ydCBjb25zdCBNQVhfREVDSU1BTFNfRk9SX1NWR19FWFBPUlQgPSAyO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX1NDQUxFUyA9IFsxLCAyLCAzXTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9QQURESU5HID0gMTA7IC8vIHB4XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9JTUFHRV9XSURUSF9PUl9IRUlHSFQgPSAxNDQwO1xuXG5leHBvcnQgY29uc3QgQUxMT1dFRF9JTUFHRV9NSU1FX1RZUEVTID0gW1xuICBNSU1FX1RZUEVTLnBuZyxcbiAgTUlNRV9UWVBFUy5qcGcsXG4gIE1JTUVfVFlQRVMuc3ZnLFxuICBNSU1FX1RZUEVTLmdpZixcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBNQVhfQUxMT1dFRF9GSUxFX0JZVEVTID0gMiAqIDEwMjQgKiAxMDI0O1xuXG5leHBvcnQgY29uc3QgU1ZHX05TID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO1xuXG5leHBvcnQgY29uc3QgRU5DUllQVElPTl9LRVlfQklUUyA9IDEyODtcblxuZXhwb3J0IGNvbnN0IFZFUlNJT05TID0ge1xuICBleGNhbGlkcmF3OiAyLFxuICBleGNhbGlkcmF3TGlicmFyeTogMixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBCT1VORF9URVhUX1BBRERJTkcgPSA1O1xuXG5leHBvcnQgY29uc3QgVkVSVElDQUxfQUxJR04gPSB7XG4gIFRPUDogXCJ0b3BcIixcbiAgTUlERExFOiBcIm1pZGRsZVwiLFxuICBCT1RUT006IFwiYm90dG9tXCIsXG59O1xuXG5leHBvcnQgY29uc3QgRUxFTUVOVF9SRUFEWV9UT19FUkFTRV9PUEFDSVRZID0gMjA7XG5cbmV4cG9ydCBjb25zdCBDT09LSUVTID0ge1xuICBBVVRIX1NUQVRFX0NPT0tJRTogXCJleGNwbHVzLWF1dGhcIixcbn0gYXMgY29uc3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../constants.ts\n");
2651
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ACTIVE_THRESHOLD\": () => (/* binding */ ACTIVE_THRESHOLD),\n/* harmony export */ \"ALLOWED_IMAGE_MIME_TYPES\": () => (/* binding */ ALLOWED_IMAGE_MIME_TYPES),\n/* harmony export */ \"APP_NAME\": () => (/* binding */ APP_NAME),\n/* harmony export */ \"BOUND_TEXT_PADDING\": () => (/* binding */ BOUND_TEXT_PADDING),\n/* harmony export */ \"CANVAS_ONLY_ACTIONS\": () => (/* binding */ CANVAS_ONLY_ACTIONS),\n/* harmony export */ \"CLASSES\": () => (/* binding */ CLASSES),\n/* harmony export */ \"COOKIES\": () => (/* binding */ COOKIES),\n/* harmony export */ \"CURSOR_TYPE\": () => (/* binding */ CURSOR_TYPE),\n/* harmony export */ \"DEFAULT_EXPORT_PADDING\": () => (/* binding */ DEFAULT_EXPORT_PADDING),\n/* harmony export */ \"DEFAULT_FONT_FAMILY\": () => (/* binding */ DEFAULT_FONT_FAMILY),\n/* harmony export */ \"DEFAULT_FONT_SIZE\": () => (/* binding */ DEFAULT_FONT_SIZE),\n/* harmony export */ \"DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT\": () => (/* binding */ DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT),\n/* harmony export */ \"DEFAULT_TEXT_ALIGN\": () => (/* binding */ DEFAULT_TEXT_ALIGN),\n/* harmony export */ \"DEFAULT_UI_OPTIONS\": () => (/* binding */ DEFAULT_UI_OPTIONS),\n/* harmony export */ \"DEFAULT_VERSION\": () => (/* binding */ DEFAULT_VERSION),\n/* harmony export */ \"DEFAULT_VERTICAL_ALIGN\": () => (/* binding */ DEFAULT_VERTICAL_ALIGN),\n/* harmony export */ \"DRAGGING_THRESHOLD\": () => (/* binding */ DRAGGING_THRESHOLD),\n/* harmony export */ \"ELEMENT_READY_TO_ERASE_OPACITY\": () => (/* binding */ ELEMENT_READY_TO_ERASE_OPACITY),\n/* harmony export */ \"ELEMENT_SHIFT_TRANSLATE_AMOUNT\": () => (/* binding */ ELEMENT_SHIFT_TRANSLATE_AMOUNT),\n/* harmony export */ \"ELEMENT_TRANSLATE_AMOUNT\": () => (/* binding */ ELEMENT_TRANSLATE_AMOUNT),\n/* harmony export */ \"ENCRYPTION_KEY_BITS\": () => (/* binding */ ENCRYPTION_KEY_BITS),\n/* harmony export */ \"ENV\": () => (/* binding */ ENV),\n/* harmony export */ \"EVENT\": () => (/* binding */ EVENT),\n/* harmony export */ \"EXPORT_DATA_TYPES\": () => (/* binding */ EXPORT_DATA_TYPES),\n/* harmony export */ \"EXPORT_SCALES\": () => (/* binding */ EXPORT_SCALES),\n/* harmony export */ \"EXPORT_SOURCE\": () => (/* binding */ EXPORT_SOURCE),\n/* harmony export */ \"FONT_FAMILY\": () => (/* binding */ FONT_FAMILY),\n/* harmony export */ \"GRID_SIZE\": () => (/* binding */ GRID_SIZE),\n/* harmony export */ \"HYPERLINK_TOOLTIP_DELAY\": () => (/* binding */ HYPERLINK_TOOLTIP_DELAY),\n/* harmony export */ \"IDLE_THRESHOLD\": () => (/* binding */ IDLE_THRESHOLD),\n/* harmony export */ \"IMAGE_RENDER_TIMEOUT\": () => (/* binding */ IMAGE_RENDER_TIMEOUT),\n/* harmony export */ \"LIBRARY_SIDEBAR_WIDTH\": () => (/* binding */ LIBRARY_SIDEBAR_WIDTH),\n/* harmony export */ \"LINE_CONFIRM_THRESHOLD\": () => (/* binding */ LINE_CONFIRM_THRESHOLD),\n/* harmony export */ \"MAX_ALLOWED_FILE_BYTES\": () => (/* binding */ MAX_ALLOWED_FILE_BYTES),\n/* harmony export */ \"MAX_DECIMALS_FOR_SVG_EXPORT\": () => (/* binding */ MAX_DECIMALS_FOR_SVG_EXPORT),\n/* harmony export */ \"MIME_TYPES\": () => (/* binding */ MIME_TYPES),\n/* harmony export */ \"MODES\": () => (/* binding */ MODES),\n/* harmony export */ \"MQ_MAX_HEIGHT_LANDSCAPE\": () => (/* binding */ MQ_MAX_HEIGHT_LANDSCAPE),\n/* harmony export */ \"MQ_MAX_WIDTH_LANDSCAPE\": () => (/* binding */ MQ_MAX_WIDTH_LANDSCAPE),\n/* harmony export */ \"MQ_MAX_WIDTH_PORTRAIT\": () => (/* binding */ MQ_MAX_WIDTH_PORTRAIT),\n/* harmony export */ \"MQ_RIGHT_SIDEBAR_MIN_WIDTH\": () => (/* binding */ MQ_RIGHT_SIDEBAR_MIN_WIDTH),\n/* harmony export */ \"MQ_SM_MAX_WIDTH\": () => (/* binding */ MQ_SM_MAX_WIDTH),\n/* harmony export */ \"POINTER_BUTTON\": () => (/* binding */ POINTER_BUTTON),\n/* harmony export */ \"SCROLL_TIMEOUT\": () => (/* binding */ SCROLL_TIMEOUT),\n/* harmony export */ \"SHIFT_LOCKING_ANGLE\": () => (/* binding */ SHIFT_LOCKING_ANGLE),\n/* harmony export */ \"SVG_NS\": () => (/* binding */ SVG_NS),\n/* harmony export */ \"TAP_TWICE_TIMEOUT\": () => (/* binding */ TAP_TWICE_TIMEOUT),\n/* harmony export */ \"TEXT_TO_CENTER_SNAP_THRESHOLD\": () => (/* binding */ TEXT_TO_CENTER_SNAP_THRESHOLD),\n/* harmony export */ \"THEME\": () => (/* binding */ THEME),\n/* harmony export */ \"THEME_FILTER\": () => (/* binding */ THEME_FILTER),\n/* harmony export */ \"TITLE_TIMEOUT\": () => (/* binding */ TITLE_TIMEOUT),\n/* harmony export */ \"TOUCH_CTX_MENU_TIMEOUT\": () => (/* binding */ TOUCH_CTX_MENU_TIMEOUT),\n/* harmony export */ \"URL_HASH_KEYS\": () => (/* binding */ URL_HASH_KEYS),\n/* harmony export */ \"URL_QUERY_KEYS\": () => (/* binding */ URL_QUERY_KEYS),\n/* harmony export */ \"VERSIONS\": () => (/* binding */ VERSIONS),\n/* harmony export */ \"VERSION_TIMEOUT\": () => (/* binding */ VERSION_TIMEOUT),\n/* harmony export */ \"VERTICAL_ALIGN\": () => (/* binding */ VERTICAL_ALIGN),\n/* harmony export */ \"WINDOWS_EMOJI_FALLBACK_FONT\": () => (/* binding */ WINDOWS_EMOJI_FALLBACK_FONT),\n/* harmony export */ \"ZOOM_STEP\": () => (/* binding */ ZOOM_STEP)\n/* harmony export */ });\n/* harmony import */ var _css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css/variables.module.scss */ \"../../css/variables.module.scss\");\n/* harmony import */ var _css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0__);\n\nconst APP_NAME = \"Excalidraw\";\nconst DRAGGING_THRESHOLD = 10; // px\nconst LINE_CONFIRM_THRESHOLD = 8; // px\nconst ELEMENT_SHIFT_TRANSLATE_AMOUNT = 5;\nconst ELEMENT_TRANSLATE_AMOUNT = 1;\nconst TEXT_TO_CENTER_SNAP_THRESHOLD = 30;\nconst SHIFT_LOCKING_ANGLE = Math.PI / 12;\nconst CURSOR_TYPE = {\n TEXT: \"text\",\n CROSSHAIR: \"crosshair\",\n GRABBING: \"grabbing\",\n GRAB: \"grab\",\n POINTER: \"pointer\",\n MOVE: \"move\",\n AUTO: \"\",\n};\nconst POINTER_BUTTON = {\n MAIN: 0,\n WHEEL: 1,\n SECONDARY: 2,\n TOUCH: -1,\n};\nvar EVENT;\n(function (EVENT) {\n EVENT[\"COPY\"] = \"copy\";\n EVENT[\"PASTE\"] = \"paste\";\n EVENT[\"CUT\"] = \"cut\";\n EVENT[\"KEYDOWN\"] = \"keydown\";\n EVENT[\"KEYUP\"] = \"keyup\";\n EVENT[\"MOUSE_MOVE\"] = \"mousemove\";\n EVENT[\"RESIZE\"] = \"resize\";\n EVENT[\"UNLOAD\"] = \"unload\";\n EVENT[\"FOCUS\"] = \"focus\";\n EVENT[\"BLUR\"] = \"blur\";\n EVENT[\"DRAG_OVER\"] = \"dragover\";\n EVENT[\"DROP\"] = \"drop\";\n EVENT[\"GESTURE_END\"] = \"gestureend\";\n EVENT[\"BEFORE_UNLOAD\"] = \"beforeunload\";\n EVENT[\"GESTURE_START\"] = \"gesturestart\";\n EVENT[\"GESTURE_CHANGE\"] = \"gesturechange\";\n EVENT[\"POINTER_MOVE\"] = \"pointermove\";\n EVENT[\"POINTER_UP\"] = \"pointerup\";\n EVENT[\"STATE_CHANGE\"] = \"statechange\";\n EVENT[\"WHEEL\"] = \"wheel\";\n EVENT[\"TOUCH_START\"] = \"touchstart\";\n EVENT[\"TOUCH_END\"] = \"touchend\";\n EVENT[\"HASHCHANGE\"] = \"hashchange\";\n EVENT[\"VISIBILITY_CHANGE\"] = \"visibilitychange\";\n EVENT[\"SCROLL\"] = \"scroll\";\n // custom events\n EVENT[\"EXCALIDRAW_LINK\"] = \"excalidraw-link\";\n})(EVENT || (EVENT = {}));\nconst ENV = {\n TEST: \"test\",\n DEVELOPMENT: \"development\",\n};\nconst CLASSES = {\n SHAPE_ACTIONS_MENU: \"App-menu__left\",\n};\n// 1-based in case we ever do `if(element.fontFamily)`\nconst FONT_FAMILY = {\n Virgil: 1,\n Helvetica: 2,\n Cascadia: 3,\n};\nconst THEME = {\n LIGHT: \"light\",\n DARK: \"dark\",\n};\nconst WINDOWS_EMOJI_FALLBACK_FONT = \"Segoe UI Emoji\";\nconst DEFAULT_FONT_SIZE = 20;\nconst DEFAULT_FONT_FAMILY = FONT_FAMILY.Virgil;\nconst DEFAULT_TEXT_ALIGN = \"left\";\nconst DEFAULT_VERTICAL_ALIGN = \"top\";\nconst DEFAULT_VERSION = \"{version}\";\nconst CANVAS_ONLY_ACTIONS = [\"selectAll\"];\nconst GRID_SIZE = 20; // TODO make it configurable?\nconst MIME_TYPES = {\n excalidraw: \"application/vnd.excalidraw+json\",\n excalidrawlib: \"application/vnd.excalidrawlib+json\",\n json: \"application/json\",\n svg: \"image/svg+xml\",\n \"excalidraw.svg\": \"image/svg+xml\",\n png: \"image/png\",\n \"excalidraw.png\": \"image/png\",\n jpg: \"image/jpeg\",\n gif: \"image/gif\",\n binary: \"application/octet-stream\",\n};\nconst EXPORT_DATA_TYPES = {\n excalidraw: \"excalidraw\",\n excalidrawClipboard: \"excalidraw/clipboard\",\n excalidrawLibrary: \"excalidrawlib\",\n};\nconst EXPORT_SOURCE = window.EXCALIDRAW_EXPORT_SOURCE || window.location.origin;\n// time in milliseconds\nconst IMAGE_RENDER_TIMEOUT = 500;\nconst TAP_TWICE_TIMEOUT = 300;\nconst TOUCH_CTX_MENU_TIMEOUT = 500;\nconst TITLE_TIMEOUT = 10000;\nconst VERSION_TIMEOUT = 30000;\nconst SCROLL_TIMEOUT = 100;\nconst ZOOM_STEP = 0.1;\nconst HYPERLINK_TOOLTIP_DELAY = 300;\n// Report a user inactive after IDLE_THRESHOLD milliseconds\nconst IDLE_THRESHOLD = 60000;\n// Report a user active each ACTIVE_THRESHOLD milliseconds\nconst ACTIVE_THRESHOLD = 3000;\nconst MODES = {\n VIEW: \"viewMode\",\n ZEN: \"zenMode\",\n GRID: \"gridMode\",\n};\nconst THEME_FILTER = (_css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0___default().themeFilter);\nconst URL_QUERY_KEYS = {\n addLibrary: \"addLibrary\",\n};\nconst URL_HASH_KEYS = {\n addLibrary: \"addLibrary\",\n};\nconst DEFAULT_UI_OPTIONS = {\n canvasActions: {\n changeViewBackgroundColor: true,\n clearCanvas: true,\n export: { saveFileToDisk: true },\n loadScene: true,\n saveToActiveFile: true,\n theme: true,\n saveAsImage: true,\n },\n};\n// breakpoints\n// -----------------------------------------------------------------------------\n// sm screen\nconst MQ_SM_MAX_WIDTH = 640;\n// md screen\nconst MQ_MAX_WIDTH_PORTRAIT = 730;\nconst MQ_MAX_WIDTH_LANDSCAPE = 1000;\nconst MQ_MAX_HEIGHT_LANDSCAPE = 500;\n// sidebar\nconst MQ_RIGHT_SIDEBAR_MIN_WIDTH = 1229;\n// -----------------------------------------------------------------------------\nconst LIBRARY_SIDEBAR_WIDTH = parseInt((_css_variables_module_scss__WEBPACK_IMPORTED_MODULE_0___default().rightSidebarWidth));\nconst MAX_DECIMALS_FOR_SVG_EXPORT = 2;\nconst EXPORT_SCALES = [1, 2, 3];\nconst DEFAULT_EXPORT_PADDING = 10; // px\nconst DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;\nconst ALLOWED_IMAGE_MIME_TYPES = [\n MIME_TYPES.png,\n MIME_TYPES.jpg,\n MIME_TYPES.svg,\n MIME_TYPES.gif,\n];\nconst MAX_ALLOWED_FILE_BYTES = 2 * 1024 * 1024;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst ENCRYPTION_KEY_BITS = 128;\nconst VERSIONS = {\n excalidraw: 2,\n excalidrawLibrary: 2,\n};\nconst BOUND_TEXT_PADDING = 5;\nconst VERTICAL_ALIGN = {\n TOP: \"top\",\n MIDDLE: \"middle\",\n BOTTOM: \"bottom\",\n};\nconst ELEMENT_READY_TO_ERASE_OPACITY = 20;\nconst COOKIES = {\n AUTH_STATE_COOKIE: \"excplus-auth\",\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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R0FBRyxDQUFDO0FBRWhDLE1BQU0sUUFBUSxHQUFHO0lBQ3RCLFVBQVUsRUFBRSxDQUFDO0lBQ2IsaUJBQWlCLEVBQUUsQ0FBQztDQUNaLENBQUM7QUFFSixNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQUU3QixNQUFNLGNBQWMsR0FBRztJQUM1QixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0NBQ2pCLENBQUM7QUFFSyxNQUFNLDhCQUE4QixHQUFHLEVBQUUsQ0FBQztBQUUxQyxNQUFNLE9BQU8sR0FBRztJQUNyQixpQkFBaUIsRUFBRSxjQUFjO0NBQ3pCLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29uc3RhbnRzLnRzPzYyNTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNzc1ZhcmlhYmxlcyBmcm9tIFwiLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBBcHBQcm9wcyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBGb250RmFtaWx5VmFsdWVzIH0gZnJvbSBcIi4vZWxlbWVudC90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgQVBQX05BTUUgPSBcIkV4Y2FsaWRyYXdcIjtcblxuZXhwb3J0IGNvbnN0IERSQUdHSU5HX1RIUkVTSE9MRCA9IDEwOyAvLyBweFxuZXhwb3J0IGNvbnN0IExJTkVfQ09ORklSTV9USFJFU0hPTEQgPSA4OyAvLyBweFxuZXhwb3J0IGNvbnN0IEVMRU1FTlRfU0hJRlRfVFJBTlNMQVRFX0FNT1VOVCA9IDU7XG5leHBvcnQgY29uc3QgRUxFTUVOVF9UUkFOU0xBVEVfQU1PVU5UID0gMTtcbmV4cG9ydCBjb25zdCBURVhUX1RPX0NFTlRFUl9TTkFQX1RIUkVTSE9MRCA9IDMwO1xuZXhwb3J0IGNvbnN0IFNISUZUX0xPQ0tJTkdfQU5HTEUgPSBNYXRoLlBJIC8gMTI7XG5leHBvcnQgY29uc3QgQ1VSU09SX1RZUEUgPSB7XG4gIFRFWFQ6IFwidGV4dFwiLFxuICBDUk9TU0hBSVI6IFwiY3Jvc3NoYWlyXCIsXG4gIEdSQUJCSU5HOiBcImdyYWJiaW5nXCIsXG4gIEdSQUI6IFwiZ3JhYlwiLFxuICBQT0lOVEVSOiBcInBvaW50ZXJcIixcbiAgTU9WRTogXCJtb3ZlXCIsXG4gIEFVVE86IFwiXCIsXG59O1xuZXhwb3J0IGNvbnN0IFBPSU5URVJfQlVUVE9OID0ge1xuICBNQUlOOiAwLFxuICBXSEVFTDogMSxcbiAgU0VDT05EQVJZOiAyLFxuICBUT1VDSDogLTEsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZW51bSBFVkVOVCB7XG4gIENPUFkgPSBcImNvcHlcIixcbiAgUEFTVEUgPSBcInBhc3RlXCIsXG4gIENVVCA9IFwiY3V0XCIsXG4gIEtFWURPV04gPSBcImtleWRvd25cIixcbiAgS0VZVVAgPSBcImtleXVwXCIsXG4gIE1PVVNFX01PVkUgPSBcIm1vdXNlbW92ZVwiLFxuICBSRVNJWkUgPSBcInJlc2l6ZVwiLFxuICBVTkxPQUQgPSBcInVubG9hZFwiLFxuICBGT0NVUyA9IFwiZm9jdXNcIixcbiAgQkxVUiA9IFwiYmx1clwiLFxuICBEUkFHX09WRVIgPSBcImRyYWdvdmVyXCIsXG4gIERST1AgPSBcImRyb3BcIixcbiAgR0VTVFVSRV9FTkQgPSBcImdlc3R1cmVlbmRcIixcbiAgQkVGT1JFX1VOTE9BRCA9IFwiYmVmb3JldW5sb2FkXCIsXG4gIEdFU1RVUkVfU1RBUlQgPSBcImdlc3R1cmVzdGFydFwiLFxuICBHRVNUVVJFX0NIQU5HRSA9IFwiZ2VzdHVyZWNoYW5nZVwiLFxuICBQT0lOVEVSX01PVkUgPSBcInBvaW50ZXJtb3ZlXCIsXG4gIFBPSU5URVJfVVAgPSBcInBvaW50ZXJ1cFwiLFxuICBTVEFURV9DSEFOR0UgPSBcInN0YXRlY2hhbmdlXCIsXG4gIFdIRUVMID0gXCJ3aGVlbFwiLFxuICBUT1VDSF9TVEFSVCA9IFwidG91Y2hzdGFydFwiLFxuICBUT1VDSF9FTkQgPSBcInRvdWNoZW5kXCIsXG4gIEhBU0hDSEFOR0UgPSBcImhhc2hjaGFuZ2VcIixcbiAgVklTSUJJTElUWV9DSEFOR0UgPSBcInZpc2liaWxpdHljaGFuZ2VcIixcbiAgU0NST0xMID0gXCJzY3JvbGxcIixcbiAgLy8gY3VzdG9tIGV2ZW50c1xuICBFWENBTElEUkFXX0xJTksgPSBcImV4Y2FsaWRyYXctbGlua1wiLFxufVxuXG5leHBvcnQgY29uc3QgRU5WID0ge1xuICBURVNUOiBcInRlc3RcIixcbiAgREVWRUxPUE1FTlQ6IFwiZGV2ZWxvcG1lbnRcIixcbn07XG5cbmV4cG9ydCBjb25zdCBDTEFTU0VTID0ge1xuICBTSEFQRV9BQ1RJT05TX01FTlU6IFwiQXBwLW1lbnVfX2xlZnRcIixcbn07XG5cbi8vIDEtYmFzZWQgaW4gY2FzZSB3ZSBldmVyIGRvIGBpZihlbGVtZW50LmZvbnRGYW1pbHkpYFxuZXhwb3J0IGNvbnN0IEZPTlRfRkFNSUxZID0ge1xuICBWaXJnaWw6IDEsXG4gIEhlbHZldGljYTogMixcbiAgQ2FzY2FkaWE6IDMsXG59O1xuXG5leHBvcnQgY29uc3QgVEhFTUUgPSB7XG4gIExJR0hUOiBcImxpZ2h0XCIsXG4gIERBUks6IFwiZGFya1wiLFxufTtcblxuZXhwb3J0IGNvbnN0IFdJTkRPV1NfRU1PSklfRkFMTEJBQ0tfRk9OVCA9IFwiU2Vnb2UgVUkgRW1vamlcIjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9OVF9TSVpFID0gMjA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9GT05UX0ZBTUlMWTogRm9udEZhbWlseVZhbHVlcyA9IEZPTlRfRkFNSUxZLlZpcmdpbDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFWFRfQUxJR04gPSBcImxlZnRcIjtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOID0gXCJ0b3BcIjtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZFUlNJT04gPSBcInt2ZXJzaW9ufVwiO1xuXG5leHBvcnQgY29uc3QgQ0FOVkFTX09OTFlfQUNUSU9OUyA9IFtcInNlbGVjdEFsbFwiXTtcblxuZXhwb3J0IGNvbnN0IEdSSURfU0laRSA9IDIwOyAvLyBUT0RPIG1ha2UgaXQgY29uZmlndXJhYmxlP1xuXG5leHBvcnQgY29uc3QgTUlNRV9UWVBFUyA9IHtcbiAgZXhjYWxpZHJhdzogXCJhcHBsaWNhdGlvbi92bmQuZXhjYWxpZHJhdytqc29uXCIsXG4gIGV4Y2FsaWRyYXdsaWI6IFwiYXBwbGljYXRpb24vdm5kLmV4Y2FsaWRyYXdsaWIranNvblwiLFxuICBqc29uOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgc3ZnOiBcImltYWdlL3N2Zyt4bWxcIixcbiAgXCJleGNhbGlkcmF3LnN2Z1wiOiBcImltYWdlL3N2Zyt4bWxcIixcbiAgcG5nOiBcImltYWdlL3BuZ1wiLFxuICBcImV4Y2FsaWRyYXcucG5nXCI6IFwiaW1hZ2UvcG5nXCIsXG4gIGpwZzogXCJpbWFnZS9qcGVnXCIsXG4gIGdpZjogXCJpbWFnZS9naWZcIixcbiAgYmluYXJ5OiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX1RZUEVTID0ge1xuICBleGNhbGlkcmF3OiBcImV4Y2FsaWRyYXdcIixcbiAgZXhjYWxpZHJhd0NsaXBib2FyZDogXCJleGNhbGlkcmF3L2NsaXBib2FyZFwiLFxuICBleGNhbGlkcmF3TGlicmFyeTogXCJleGNhbGlkcmF3bGliXCIsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX1NPVVJDRSA9XG4gIHdpbmRvdy5FWENBTElEUkFXX0VYUE9SVF9TT1VSQ0UgfHwgd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcblxuLy8gdGltZSBpbiBtaWxsaXNlY29uZHNcbmV4cG9ydCBjb25zdCBJTUFHRV9SRU5ERVJfVElNRU9VVCA9IDUwMDtcbmV4cG9ydCBjb25zdCBUQVBfVFdJQ0VfVElNRU9VVCA9IDMwMDtcbmV4cG9ydCBjb25zdCBUT1VDSF9DVFhfTUVOVV9USU1FT1VUID0gNTAwO1xuZXhwb3J0IGNvbnN0IFRJVExFX1RJTUVPVVQgPSAxMDAwMDtcbmV4cG9ydCBjb25zdCBWRVJTSU9OX1RJTUVPVVQgPSAzMDAwMDtcbmV4cG9ydCBjb25zdCBTQ1JPTExfVElNRU9VVCA9IDEwMDtcbmV4cG9ydCBjb25zdCBaT09NX1NURVAgPSAwLjE7XG5leHBvcnQgY29uc3QgSFlQRVJMSU5LX1RPT0xUSVBfREVMQVkgPSAzMDA7XG5cbi8vIFJlcG9ydCBhIHVzZXIgaW5hY3RpdmUgYWZ0ZXIgSURMRV9USFJFU0hPTEQgbWlsbGlzZWNvbmRzXG5leHBvcnQgY29uc3QgSURMRV9USFJFU0hPTEQgPSA2MF8wMDA7XG4vLyBSZXBvcnQgYSB1c2VyIGFjdGl2ZSBlYWNoIEFDVElWRV9USFJFU0hPTEQgbWlsbGlzZWNvbmRzXG5leHBvcnQgY29uc3QgQUNUSVZFX1RIUkVTSE9MRCA9IDNfMDAwO1xuXG5leHBvcnQgY29uc3QgTU9ERVMgPSB7XG4gIFZJRVc6IFwidmlld01vZGVcIixcbiAgWkVOOiBcInplbk1vZGVcIixcbiAgR1JJRDogXCJncmlkTW9kZVwiLFxufTtcblxuZXhwb3J0IGNvbnN0IFRIRU1FX0ZJTFRFUiA9IGNzc1ZhcmlhYmxlcy50aGVtZUZpbHRlcjtcblxuZXhwb3J0IGNvbnN0IFVSTF9RVUVSWV9LRVlTID0ge1xuICBhZGRMaWJyYXJ5OiBcImFkZExpYnJhcnlcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBVUkxfSEFTSF9LRVlTID0ge1xuICBhZGRMaWJyYXJ5OiBcImFkZExpYnJhcnlcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1VJX09QVElPTlM6IEFwcFByb3BzW1wiVUlPcHRpb25zXCJdID0ge1xuICBjYW52YXNBY3Rpb25zOiB7XG4gICAgY2hhbmdlVmlld0JhY2tncm91bmRDb2xvcjogdHJ1ZSxcbiAgICBjbGVhckNhbnZhczogdHJ1ZSxcbiAgICBleHBvcnQ6IHsgc2F2ZUZpbGVUb0Rpc2s6IHRydWUgfSxcbiAgICBsb2FkU2NlbmU6IHRydWUsXG4gICAgc2F2ZVRvQWN0aXZlRmlsZTogdHJ1ZSxcbiAgICB0aGVtZTogdHJ1ZSxcbiAgICBzYXZlQXNJbWFnZTogdHJ1ZSxcbiAgfSxcbn07XG5cbi8vIGJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc20gc2NyZWVuXG5leHBvcnQgY29uc3QgTVFfU01fTUFYX1dJRFRIID0gNjQwO1xuLy8gbWQgc2NyZWVuXG5leHBvcnQgY29uc3QgTVFfTUFYX1dJRFRIX1BPUlRSQUlUID0gNzMwO1xuZXhwb3J0IGNvbnN0IE1RX01BWF9XSURUSF9MQU5EU0NBUEUgPSAxMDAwO1xuZXhwb3J0IGNvbnN0IE1RX01BWF9IRUlHSFRfTEFORFNDQVBFID0gNTAwO1xuLy8gc2lkZWJhclxuZXhwb3J0IGNvbnN0IE1RX1JJR0hUX1NJREVCQVJfTUlOX1dJRFRIID0gMTIyOTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBMSUJSQVJZX1NJREVCQVJfV0lEVEggPSBwYXJzZUludChjc3NWYXJpYWJsZXMucmlnaHRTaWRlYmFyV2lkdGgpO1xuXG5leHBvcnQgY29uc3QgTUFYX0RFQ0lNQUxTX0ZPUl9TVkdfRVhQT1JUID0gMjtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9TQ0FMRVMgPSBbMSwgMiwgM107XG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFBPUlRfUEFERElORyA9IDEwOyAvLyBweFxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVhfSU1BR0VfV0lEVEhfT1JfSEVJR0hUID0gMTQ0MDtcblxuZXhwb3J0IGNvbnN0IEFMTE9XRURfSU1BR0VfTUlNRV9UWVBFUyA9IFtcbiAgTUlNRV9UWVBFUy5wbmcsXG4gIE1JTUVfVFlQRVMuanBnLFxuICBNSU1FX1RZUEVTLnN2ZyxcbiAgTUlNRV9UWVBFUy5naWYsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgTUFYX0FMTE9XRURfRklMRV9CWVRFUyA9IDIgKiAxMDI0ICogMTAyNDtcblxuZXhwb3J0IGNvbnN0IFNWR19OUyA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcblxuZXhwb3J0IGNvbnN0IEVOQ1JZUFRJT05fS0VZX0JJVFMgPSAxMjg7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OUyA9IHtcbiAgZXhjYWxpZHJhdzogMixcbiAgZXhjYWxpZHJhd0xpYnJhcnk6IDIsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQk9VTkRfVEVYVF9QQURESU5HID0gNTtcblxuZXhwb3J0IGNvbnN0IFZFUlRJQ0FMX0FMSUdOID0ge1xuICBUT1A6IFwidG9wXCIsXG4gIE1JRERMRTogXCJtaWRkbGVcIixcbiAgQk9UVE9NOiBcImJvdHRvbVwiLFxufTtcblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRfUkVBRFlfVE9fRVJBU0VfT1BBQ0lUWSA9IDIwO1xuXG5leHBvcnQgY29uc3QgQ09PS0lFUyA9IHtcbiAgQVVUSF9TVEFURV9DT09LSUU6IFwiZXhjcGx1cy1hdXRoXCIsXG59IGFzIGNvbnN0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../constants.ts\n");
2652
2652
 
2653
2653
  /***/ }),
2654
2654
 
@@ -3099,7 +3099,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3099
3099
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3100
3100
 
3101
3101
  "use strict";
3102
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"jotaiScope\": () => (/* binding */ jotaiScope),\n/* harmony export */ \"jotaiStore\": () => (/* binding */ jotaiStore)\n/* harmony export */ });\n/* harmony import */ var jotai__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jotai */ \"../../../node_modules/jotai/esm/index.js\");\n\nconst jotaiScope = Symbol();\nconst jotaiStore = (0,jotai__WEBPACK_IMPORTED_MODULE_0__.unstable_createStore)();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vam90YWkudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTZDO0FBRXRDLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQzVCLE1BQU0sVUFBVSxHQUFHLDJEQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vam90YWkudHM/MzhmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1bnN0YWJsZV9jcmVhdGVTdG9yZSB9IGZyb20gXCJqb3RhaVwiO1xuXG5leHBvcnQgY29uc3Qgam90YWlTY29wZSA9IFN5bWJvbCgpO1xuZXhwb3J0IGNvbnN0IGpvdGFpU3RvcmUgPSB1bnN0YWJsZV9jcmVhdGVTdG9yZSgpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../jotai.ts\n");
3102
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"jotaiScope\": () => (/* binding */ jotaiScope),\n/* harmony export */ \"jotaiStore\": () => (/* binding */ jotaiStore),\n/* harmony export */ \"useAtomWithInitialValue\": () => (/* binding */ useAtomWithInitialValue)\n/* harmony export */ });\n/* harmony import */ var jotai__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jotai */ \"../../../node_modules/jotai/esm/index.js\");\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\n\nconst jotaiScope = Symbol();\nconst jotaiStore = (0,jotai__WEBPACK_IMPORTED_MODULE_1__.unstable_createStore)();\nconst useAtomWithInitialValue = (atom, initialValue) => {\n const [value, setValue] = (0,jotai__WEBPACK_IMPORTED_MODULE_1__.useAtom)(atom);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(() => {\n if (typeof initialValue === \"function\") {\n // @ts-ignore\n setValue(initialValue());\n }\n else {\n setValue(initialValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [value, setValue];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vam90YWkudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW9FO0FBQzVCO0FBRWpDLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQzVCLE1BQU0sVUFBVSxHQUFHLDJEQUFvQixFQUFFLENBQUM7QUFFMUMsTUFBTSx1QkFBdUIsR0FBRyxDQUlyQyxJQUFPLEVBQ1AsWUFBMkIsRUFDM0IsRUFBRTtJQUNGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsOENBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QyxzREFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLE9BQU8sWUFBWSxLQUFLLFVBQVUsRUFBRTtZQUN0QyxhQUFhO1lBQ2IsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN4QjtRQUNELHVEQUF1RDtJQUN6RCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBVSxDQUFDO0FBQ3BDLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9qb3RhaS50cz8zOGYzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVuc3RhYmxlX2NyZWF0ZVN0b3JlLCB1c2VBdG9tLCBXcml0YWJsZUF0b20gfSBmcm9tIFwiam90YWlcIjtcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3Qgam90YWlTY29wZSA9IFN5bWJvbCgpO1xuZXhwb3J0IGNvbnN0IGpvdGFpU3RvcmUgPSB1bnN0YWJsZV9jcmVhdGVTdG9yZSgpO1xuXG5leHBvcnQgY29uc3QgdXNlQXRvbVdpdGhJbml0aWFsVmFsdWUgPSA8XG4gIFQgZXh0ZW5kcyB1bmtub3duLFxuICBBIGV4dGVuZHMgV3JpdGFibGVBdG9tPFQsIFQ+LFxuPihcbiAgYXRvbTogQSxcbiAgaW5pdGlhbFZhbHVlOiBUIHwgKCgpID0+IFQpLFxuKSA9PiB7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlQXRvbShhdG9tKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgaW5pdGlhbFZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHNldFZhbHVlKGluaXRpYWxWYWx1ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VmFsdWUoaW5pdGlhbFZhbHVlKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIFt2YWx1ZSwgc2V0VmFsdWVdIGFzIGNvbnN0O1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../jotai.ts\n");
3103
3103
 
3104
3104
  /***/ }),
3105
3105
 
@@ -3154,7 +3154,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3154
3154
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3155
3155
 
3156
3156
  "use strict";
3157
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.11.0-5346-513c9cb\"}/dist/`;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wdWJsaWNQYXRoLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNDO0FBQ3RDLElBQUksYUFBb0IsS0FBSyxnREFBUSxFQUFFO0lBQ3JDLG9CQUFvQjtJQUNwQiw2Q0FBNkM7SUFDN0MscUJBQXVCO1FBQ3JCLE1BQU0sQ0FBQyxxQkFBcUI7WUFDNUIscUJBQXFCLHdCQUFvQixJQUFJLHFCQUF1QixRQUFRLENBQUM7Q0FDaEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWNQYXRoLmpzP2E4N2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5WIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBFTlYuVEVTVCkge1xuICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAvKiBnbG9iYWwgX193ZWJwYWNrX3B1YmxpY19wYXRoX186d3JpdGFibGUgKi9cbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPVxuICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICBgaHR0cHM6Ly91bnBrZy5jb20vJHtwcm9jZXNzLmVudi5QS0dfTkFNRX1AJHtwcm9jZXNzLmVudi5QS0dfVkVSU0lPTn0vZGlzdC9gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./publicPath.js\n");
3157
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.11.0-76a5bb0\"}/dist/`;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wdWJsaWNQYXRoLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNDO0FBQ3RDLElBQUksYUFBb0IsS0FBSyxnREFBUSxFQUFFO0lBQ3JDLG9CQUFvQjtJQUNwQiw2Q0FBNkM7SUFDN0MscUJBQXVCO1FBQ3JCLE1BQU0sQ0FBQyxxQkFBcUI7WUFDNUIscUJBQXFCLHdCQUFvQixJQUFJLGdCQUF1QixRQUFRLENBQUM7Q0FDaEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWNQYXRoLmpzP2E4N2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5WIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBFTlYuVEVTVCkge1xuICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAvKiBnbG9iYWwgX193ZWJwYWNrX3B1YmxpY19wYXRoX186d3JpdGFibGUgKi9cbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPVxuICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICBgaHR0cHM6Ly91bnBrZy5jb20vJHtwcm9jZXNzLmVudi5QS0dfTkFNRX1AJHtwcm9jZXNzLmVudi5QS0dfVkVSU0lPTn0vZGlzdC9gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./publicPath.js\n");
3158
3158
 
3159
3159
  /***/ }),
3160
3160
 
@@ -3264,7 +3264,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3264
3264
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3265
3265
 
3266
3266
  "use strict";
3267
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__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};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)(elements, appState, null, scale, roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas), canvas, {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files) => __awaiter(void 0, void 0, void 0, function* () {\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.11.0-5346-513c9cb\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style>\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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azovLy8uLi8uLi9zY2VuZS9leHBvcnQudHM/OWJmNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcm91Z2ggZnJvbSBcInJvdWdoanMvYmluL3JvdWdoXCI7XG5pbXBvcnQgeyBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0Q29tbW9uQm91bmRzIH0gZnJvbSBcIi4uL2VsZW1lbnQvYm91bmRzXCI7XG5pbXBvcnQgeyByZW5kZXJTY2VuZSwgcmVuZGVyU2NlbmVUb1N2ZyB9IGZyb20gXCIuLi9yZW5kZXJlci9yZW5kZXJTY2VuZVwiO1xuaW1wb3J0IHsgZGlzdGFuY2UgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBCaW5hcnlGaWxlcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9FWFBPUlRfUEFERElORywgU1ZHX05TLCBUSEVNRV9GSUxURVIgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0QXBwU3RhdGUgfSBmcm9tIFwiLi4vYXBwU3RhdGVcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZUFzSlNPTiB9IGZyb20gXCIuLi9kYXRhL2pzb25cIjtcbmltcG9ydCB7XG4gIGdldEluaXRpYWxpemVkSW1hZ2VFbGVtZW50cyxcbiAgdXBkYXRlSW1hZ2VDYWNoZSxcbn0gZnJvbSBcIi4uL2VsZW1lbnQvaW1hZ2VcIjtcblxuZXhwb3J0IGNvbnN0IFNWR19FWFBPUlRfVEFHID0gYDwhLS0gc3ZnLXNvdXJjZTpleGNhbGlkcmF3IC0tPmA7XG5cbmV4cG9ydCBjb25zdCBleHBvcnRUb0NhbnZhcyA9IGFzeW5jIChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4gIGZpbGVzOiBCaW5hcnlGaWxlcyxcbiAge1xuICAgIGV4cG9ydEJhY2tncm91bmQsXG4gICAgZXhwb3J0UGFkZGluZyA9IERFRkFVTFRfRVhQT1JUX1BBRERJTkcsXG4gICAgdmlld0JhY2tncm91bmRDb2xvcixcbiAgfToge1xuICAgIGV4cG9ydEJhY2tncm91bmQ6IGJvb2xlYW47XG4gICAgZXhwb3J0UGFkZGluZz86IG51bWJlcjtcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIH0sXG4gIGNyZWF0ZUNhbnZhczogKFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICkgPT4geyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50OyBzY2FsZTogbnVtYmVyIH0gPSAod2lkdGgsIGhlaWdodCkgPT4ge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgY2FudmFzLndpZHRoID0gd2lkdGggKiBhcHBTdGF0ZS5leHBvcnRTY2FsZTtcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogYXBwU3RhdGUuZXhwb3J0U2NhbGU7XG4gICAgcmV0dXJuIHsgY2FudmFzLCBzY2FsZTogYXBwU3RhdGUuZXhwb3J0U2NhbGUgfTtcbiAgfSxcbikgPT4ge1xuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICBjb25zdCB7IGNhbnZhcywgc2NhbGUgPSAxIH0gPSBjcmVhdGVDYW52YXMod2lkdGgsIGhlaWdodCk7XG5cbiAgY29uc3QgZGVmYXVsdEFwcFN0YXRlID0gZ2V0RGVmYXVsdEFwcFN0YXRlKCk7XG5cbiAgY29uc3QgeyBpbWFnZUNhY2hlIH0gPSBhd2FpdCB1cGRhdGVJbWFnZUNhY2hlKHtcbiAgICBpbWFnZUNhY2hlOiBuZXcgTWFwKCksXG4gICAgZmlsZUlkczogZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzKGVsZW1lbnRzKS5tYXAoXG4gICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC5maWxlSWQsXG4gICAgKSxcbiAgICBmaWxlcyxcbiAgfSk7XG5cbiAgcmVuZGVyU2NlbmUoZWxlbWVudHMsIGFwcFN0YXRlLCBudWxsLCBzY2FsZSwgcm91Z2guY2FudmFzKGNhbnZhcyksIGNhbnZhcywge1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IGV4cG9ydEJhY2tncm91bmQgPyB2aWV3QmFja2dyb3VuZENvbG9yIDogbnVsbCxcbiAgICBzY3JvbGxYOiAtbWluWCArIGV4cG9ydFBhZGRpbmcsXG4gICAgc2Nyb2xsWTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxuICAgIHpvb206IGRlZmF1bHRBcHBTdGF0ZS56b29tLFxuICAgIHJlbW90ZVBvaW50ZXJWaWV3cG9ydENvb3Jkczoge30sXG4gICAgcmVtb3RlU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IGZhbHNlLFxuICAgIHJlbW90ZVBvaW50ZXJVc2VybmFtZXM6IHt9LFxuICAgIHJlbW90ZVBvaW50ZXJVc2VyU3RhdGVzOiB7fSxcbiAgICB0aGVtZTogYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gXCJkYXJrXCIgOiBcImxpZ2h0XCIsXG4gICAgaW1hZ2VDYWNoZSxcbiAgICByZW5kZXJTY3JvbGxiYXJzOiBmYWxzZSxcbiAgICByZW5kZXJTZWxlY3Rpb246IGZhbHNlLFxuICAgIHJlbmRlckdyaWQ6IGZhbHNlLFxuICAgIGlzRXhwb3J0aW5nOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gY2FudmFzO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvU3ZnID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIGV4cG9ydFNjYWxlPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBleHBvcnRXaXRoRGFya01vZGU/OiBib29sZWFuO1xuICAgIGV4cG9ydEVtYmVkU2NlbmU/OiBib29sZWFuO1xuICB9LFxuICBmaWxlczogQmluYXJ5RmlsZXMgfCBudWxsLFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBzZXJpYWxpemVBc0pTT04oZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcyB8fCB7fSwgXCJsb2NhbFwiKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICAvLyBpbml0aWFsaXplIFNWRyByb290XG4gIGNvbnN0IHN2Z1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCBcInN2Z1wiKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2ZXJzaW9uXCIsIFwiMS4xXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInhtbG5zXCIsIFNWR19OUyk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBgMCAwICR7d2lkdGh9ICR7aGVpZ2h0fWApO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRoICogZXhwb3J0U2NhbGV9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodCAqIGV4cG9ydFNjYWxlfWApO1xuICBpZiAoYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlKSB7XG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJmaWx0ZXJcIiwgVEhFTUVfRklMVEVSKTtcbiAgfVxuXG4gIGxldCBhc3NldFBhdGggPSBcImh0dHBzOi8vZXhjYWxpZHJhdy5jb20vXCI7XG5cbiAgLy8gQXNzZXQgcGF0aCBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9ubHkgd2hlbiB1c2luZyBwYWNrYWdlXG4gIGlmIChwcm9jZXNzLmVudi5JU19FWENBTElEUkFXX05QTV9QQUNLQUdFKSB7XG4gICAgYXNzZXRQYXRoID1cbiAgICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICAgIGBodHRwczovL3VucGtnLmNvbS8ke3Byb2Nlc3MuZW52LlBLR19OQU1FfUAke3Byb2Nlc3MuZW52LlBLR19WRVJTSU9OfWA7XG5cbiAgICBpZiAoYXNzZXRQYXRoPy5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgYXNzZXRQYXRoID0gYXNzZXRQYXRoLnJlcGxhY2UoXCIvXCIsIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2ApO1xuICAgIH1cbiAgICBhc3NldFBhdGggPSBgJHthc3NldFBhdGh9L2Rpc3QvZXhjYWxpZHJhdy1hc3NldHMvYDtcbiAgfVxuICBzdmdSb290LmlubmVySFRNTCA9IGBcbiAgJHtTVkdfRVhQT1JUX1RBR31cbiAgJHttZXRhZGF0YX1cbiAgPGRlZnM+XG4gICAgPHN0eWxlPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
3267
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__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};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)(elements, appState, null, scale, roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas), canvas, {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files) => __awaiter(void 0, void 0, void 0, function* () {\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.11.0-76a5bb0\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style>\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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azovLy8uLi8uLi9zY2VuZS9leHBvcnQudHM/OWJmNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcm91Z2ggZnJvbSBcInJvdWdoanMvYmluL3JvdWdoXCI7XG5pbXBvcnQgeyBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0Q29tbW9uQm91bmRzIH0gZnJvbSBcIi4uL2VsZW1lbnQvYm91bmRzXCI7XG5pbXBvcnQgeyByZW5kZXJTY2VuZSwgcmVuZGVyU2NlbmVUb1N2ZyB9IGZyb20gXCIuLi9yZW5kZXJlci9yZW5kZXJTY2VuZVwiO1xuaW1wb3J0IHsgZGlzdGFuY2UgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBCaW5hcnlGaWxlcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9FWFBPUlRfUEFERElORywgU1ZHX05TLCBUSEVNRV9GSUxURVIgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0QXBwU3RhdGUgfSBmcm9tIFwiLi4vYXBwU3RhdGVcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZUFzSlNPTiB9IGZyb20gXCIuLi9kYXRhL2pzb25cIjtcbmltcG9ydCB7XG4gIGdldEluaXRpYWxpemVkSW1hZ2VFbGVtZW50cyxcbiAgdXBkYXRlSW1hZ2VDYWNoZSxcbn0gZnJvbSBcIi4uL2VsZW1lbnQvaW1hZ2VcIjtcblxuZXhwb3J0IGNvbnN0IFNWR19FWFBPUlRfVEFHID0gYDwhLS0gc3ZnLXNvdXJjZTpleGNhbGlkcmF3IC0tPmA7XG5cbmV4cG9ydCBjb25zdCBleHBvcnRUb0NhbnZhcyA9IGFzeW5jIChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4gIGZpbGVzOiBCaW5hcnlGaWxlcyxcbiAge1xuICAgIGV4cG9ydEJhY2tncm91bmQsXG4gICAgZXhwb3J0UGFkZGluZyA9IERFRkFVTFRfRVhQT1JUX1BBRERJTkcsXG4gICAgdmlld0JhY2tncm91bmRDb2xvcixcbiAgfToge1xuICAgIGV4cG9ydEJhY2tncm91bmQ6IGJvb2xlYW47XG4gICAgZXhwb3J0UGFkZGluZz86IG51bWJlcjtcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIH0sXG4gIGNyZWF0ZUNhbnZhczogKFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICkgPT4geyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50OyBzY2FsZTogbnVtYmVyIH0gPSAod2lkdGgsIGhlaWdodCkgPT4ge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgY2FudmFzLndpZHRoID0gd2lkdGggKiBhcHBTdGF0ZS5leHBvcnRTY2FsZTtcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogYXBwU3RhdGUuZXhwb3J0U2NhbGU7XG4gICAgcmV0dXJuIHsgY2FudmFzLCBzY2FsZTogYXBwU3RhdGUuZXhwb3J0U2NhbGUgfTtcbiAgfSxcbikgPT4ge1xuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICBjb25zdCB7IGNhbnZhcywgc2NhbGUgPSAxIH0gPSBjcmVhdGVDYW52YXMod2lkdGgsIGhlaWdodCk7XG5cbiAgY29uc3QgZGVmYXVsdEFwcFN0YXRlID0gZ2V0RGVmYXVsdEFwcFN0YXRlKCk7XG5cbiAgY29uc3QgeyBpbWFnZUNhY2hlIH0gPSBhd2FpdCB1cGRhdGVJbWFnZUNhY2hlKHtcbiAgICBpbWFnZUNhY2hlOiBuZXcgTWFwKCksXG4gICAgZmlsZUlkczogZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzKGVsZW1lbnRzKS5tYXAoXG4gICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC5maWxlSWQsXG4gICAgKSxcbiAgICBmaWxlcyxcbiAgfSk7XG5cbiAgcmVuZGVyU2NlbmUoZWxlbWVudHMsIGFwcFN0YXRlLCBudWxsLCBzY2FsZSwgcm91Z2guY2FudmFzKGNhbnZhcyksIGNhbnZhcywge1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IGV4cG9ydEJhY2tncm91bmQgPyB2aWV3QmFja2dyb3VuZENvbG9yIDogbnVsbCxcbiAgICBzY3JvbGxYOiAtbWluWCArIGV4cG9ydFBhZGRpbmcsXG4gICAgc2Nyb2xsWTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxuICAgIHpvb206IGRlZmF1bHRBcHBTdGF0ZS56b29tLFxuICAgIHJlbW90ZVBvaW50ZXJWaWV3cG9ydENvb3Jkczoge30sXG4gICAgcmVtb3RlU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IGZhbHNlLFxuICAgIHJlbW90ZVBvaW50ZXJVc2VybmFtZXM6IHt9LFxuICAgIHJlbW90ZVBvaW50ZXJVc2VyU3RhdGVzOiB7fSxcbiAgICB0aGVtZTogYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gXCJkYXJrXCIgOiBcImxpZ2h0XCIsXG4gICAgaW1hZ2VDYWNoZSxcbiAgICByZW5kZXJTY3JvbGxiYXJzOiBmYWxzZSxcbiAgICByZW5kZXJTZWxlY3Rpb246IGZhbHNlLFxuICAgIHJlbmRlckdyaWQ6IGZhbHNlLFxuICAgIGlzRXhwb3J0aW5nOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gY2FudmFzO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvU3ZnID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIGV4cG9ydFNjYWxlPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBleHBvcnRXaXRoRGFya01vZGU/OiBib29sZWFuO1xuICAgIGV4cG9ydEVtYmVkU2NlbmU/OiBib29sZWFuO1xuICB9LFxuICBmaWxlczogQmluYXJ5RmlsZXMgfCBudWxsLFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBzZXJpYWxpemVBc0pTT04oZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcyB8fCB7fSwgXCJsb2NhbFwiKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICAvLyBpbml0aWFsaXplIFNWRyByb290XG4gIGNvbnN0IHN2Z1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCBcInN2Z1wiKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2ZXJzaW9uXCIsIFwiMS4xXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInhtbG5zXCIsIFNWR19OUyk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBgMCAwICR7d2lkdGh9ICR7aGVpZ2h0fWApO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRoICogZXhwb3J0U2NhbGV9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodCAqIGV4cG9ydFNjYWxlfWApO1xuICBpZiAoYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlKSB7XG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJmaWx0ZXJcIiwgVEhFTUVfRklMVEVSKTtcbiAgfVxuXG4gIGxldCBhc3NldFBhdGggPSBcImh0dHBzOi8vZXhjYWxpZHJhdy5jb20vXCI7XG5cbiAgLy8gQXNzZXQgcGF0aCBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9ubHkgd2hlbiB1c2luZyBwYWNrYWdlXG4gIGlmIChwcm9jZXNzLmVudi5JU19FWENBTElEUkFXX05QTV9QQUNLQUdFKSB7XG4gICAgYXNzZXRQYXRoID1cbiAgICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICAgIGBodHRwczovL3VucGtnLmNvbS8ke3Byb2Nlc3MuZW52LlBLR19OQU1FfUAke3Byb2Nlc3MuZW52LlBLR19WRVJTSU9OfWA7XG5cbiAgICBpZiAoYXNzZXRQYXRoPy5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgYXNzZXRQYXRoID0gYXNzZXRQYXRoLnJlcGxhY2UoXCIvXCIsIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2ApO1xuICAgIH1cbiAgICBhc3NldFBhdGggPSBgJHthc3NldFBhdGh9L2Rpc3QvZXhjYWxpZHJhdy1hc3NldHMvYDtcbiAgfVxuICBzdmdSb290LmlubmVySFRNTCA9IGBcbiAgJHtTVkdfRVhQT1JUX1RBR31cbiAgJHttZXRhZGF0YX1cbiAgPGRlZnM+XG4gICAgPHN0eWxlPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
3268
3268
 
3269
3269
  /***/ }),
3270
3270
 
@@ -3352,7 +3352,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3352
3352
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3353
3353
 
3354
3354
  "use strict";
3355
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"allowFullScreen\": () => (/* binding */ allowFullScreen),\n/* harmony export */ \"arrayToMap\": () => (/* binding */ arrayToMap),\n/* harmony export */ \"bytesToHexString\": () => (/* binding */ bytesToHexString),\n/* harmony export */ \"capitalizeString\": () => (/* binding */ capitalizeString),\n/* harmony export */ \"chunk\": () => (/* binding */ chunk),\n/* harmony export */ \"debounce\": () => (/* binding */ debounce),\n/* harmony export */ \"distance\": () => (/* binding */ distance),\n/* harmony export */ \"exitFullScreen\": () => (/* binding */ exitFullScreen),\n/* harmony export */ \"findIndex\": () => (/* binding */ findIndex),\n/* harmony export */ \"findLastIndex\": () => (/* binding */ findLastIndex),\n/* harmony export */ \"focusNearestParent\": () => (/* binding */ focusNearestParent),\n/* harmony export */ \"getDateTime\": () => (/* binding */ getDateTime),\n/* harmony export */ \"getFontFamilyString\": () => (/* binding */ getFontFamilyString),\n/* harmony export */ \"getFontString\": () => (/* binding */ getFontString),\n/* harmony export */ \"getFrame\": () => (/* binding */ getFrame),\n/* harmony export */ \"getGlobalCSSVariable\": () => (/* binding */ getGlobalCSSVariable),\n/* harmony export */ \"getNearestScrollableContainer\": () => (/* binding */ getNearestScrollableContainer),\n/* harmony export */ \"getShortcutKey\": () => (/* binding */ getShortcutKey),\n/* harmony export */ \"getUpdatedTimestamp\": () => (/* binding */ getUpdatedTimestamp),\n/* harmony export */ \"getVersion\": () => (/* binding */ getVersion),\n/* harmony export */ \"isFullScreen\": () => (/* binding */ isFullScreen),\n/* harmony export */ \"isInputLike\": () => (/* binding */ isInputLike),\n/* harmony export */ \"isPrimitive\": () => (/* binding */ isPrimitive),\n/* harmony export */ \"isProdEnv\": () => (/* binding */ isProdEnv),\n/* harmony export */ \"isPromiseLike\": () => (/* binding */ isPromiseLike),\n/* harmony export */ \"isRTL\": () => (/* binding */ isRTL),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isToolIcon\": () => (/* binding */ isToolIcon),\n/* harmony export */ \"isTransparent\": () => (/* binding */ isTransparent),\n/* harmony export */ \"isWritableElement\": () => (/* binding */ isWritableElement),\n/* harmony export */ \"muteFSAbortError\": () => (/* binding */ muteFSAbortError),\n/* harmony export */ \"nFormatter\": () => (/* binding */ nFormatter),\n/* harmony export */ \"preventUnload\": () => (/* binding */ preventUnload),\n/* harmony export */ \"queryFocusableElements\": () => (/* binding */ queryFocusableElements),\n/* harmony export */ \"removeSelection\": () => (/* binding */ removeSelection),\n/* harmony export */ \"resetCursor\": () => (/* binding */ resetCursor),\n/* harmony export */ \"resolvablePromise\": () => (/* binding */ resolvablePromise),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* binding */ sceneCoordsToViewportCoords),\n/* harmony export */ \"selectNode\": () => (/* binding */ selectNode),\n/* harmony export */ \"setCursor\": () => (/* binding */ setCursor),\n/* harmony export */ \"setCursorForShape\": () => (/* binding */ setCursorForShape),\n/* harmony export */ \"setDateTimeForTests\": () => (/* binding */ setDateTimeForTests),\n/* harmony export */ \"setEraserCursor\": () => (/* binding */ setEraserCursor),\n/* harmony export */ \"supportsEmoji\": () => (/* binding */ supportsEmoji),\n/* harmony export */ \"throttleRAF\": () => (/* binding */ throttleRAF),\n/* harmony export */ \"tupleToCoors\": () => (/* binding */ tupleToCoors),\n/* harmony export */ \"updateActiveTool\": () => (/* binding */ updateActiveTool),\n/* harmony export */ \"updateObject\": () => (/* binding */ updateObject),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* binding */ viewportCoordsToSceneCoords),\n/* harmony export */ \"withBatchedUpdates\": () => (/* binding */ withBatchedUpdates),\n/* harmony export */ \"withBatchedUpdatesThrottled\": () => (/* binding */ withBatchedUpdatesThrottled),\n/* harmony export */ \"wrapEvent\": () => (/* binding */ wrapEvent)\n/* harmony export */ });\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ \"../../colors.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"../../constants.ts\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys */ \"../../keys.ts\");\n\n\n\n\n\nlet mockDateTime = null;\nconst setDateTimeForTests = (dateTime) => {\n mockDateTime = dateTime;\n};\nconst getDateTime = () => {\n if (mockDateTime) {\n return mockDateTime;\n }\n const date = new Date();\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const hr = `${date.getHours()}`.padStart(2, \"0\");\n const min = `${date.getMinutes()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}-${hr}${min}`;\n};\nconst capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nconst isToolIcon = (target) => target instanceof HTMLElement && target.className.includes(\"ToolIcon\");\nconst isInputLike = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement;\nconst isWritableElement = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLInputElement &&\n (target.type === \"text\" || target.type === \"number\"));\nconst getFontFamilyString = ({ fontFamily, }) => {\n for (const [fontFamilyString, id] of Object.entries(_constants__WEBPACK_IMPORTED_MODULE_2__.FONT_FAMILY)) {\n if (id === fontFamily) {\n return `${fontFamilyString}, ${_constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT}`;\n }\n }\n return _constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT;\n};\n/** returns fontSize+fontFamily string for assignment to DOM elements */\nconst getFontString = ({ fontSize, fontFamily, }) => {\n return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;\n};\nconst debounce = (fn, timeout) => {\n let handle = 0;\n let lastArgs = null;\n const ret = (...args) => {\n lastArgs = args;\n clearTimeout(handle);\n handle = window.setTimeout(() => {\n lastArgs = null;\n fn(...args);\n }, timeout);\n };\n ret.flush = () => {\n clearTimeout(handle);\n if (lastArgs) {\n const _lastArgs = lastArgs;\n lastArgs = null;\n fn(..._lastArgs);\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n clearTimeout(handle);\n };\n return ret;\n};\n// throttle callback to execute once per animation frame\nconst throttleRAF = (fn) => {\n let handle = null;\n let lastArgs = null;\n let callback = null;\n const ret = (...args) => {\n if (false) {}\n lastArgs = args;\n callback = fn;\n if (handle === null) {\n handle = window.requestAnimationFrame(() => {\n handle = null;\n lastArgs = null;\n callback = null;\n fn(...args);\n });\n }\n };\n ret.flush = () => {\n if (handle !== null) {\n cancelAnimationFrame(handle);\n handle = null;\n }\n if (lastArgs) {\n const _lastArgs = lastArgs;\n const _callback = callback;\n lastArgs = null;\n callback = null;\n if (_callback !== null) {\n _callback(..._lastArgs);\n }\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n callback = null;\n if (handle !== null) {\n cancelAnimationFrame(handle);\n handle = null;\n }\n };\n return ret;\n};\n// https://github.com/lodash/lodash/blob/es/chunk.js\nconst chunk = (array, size) => {\n if (!array.length || size < 1) {\n return [];\n }\n let index = 0;\n let resIndex = 0;\n const result = Array(Math.ceil(array.length / size));\n while (index < array.length) {\n result[resIndex++] = array.slice(index, (index += size));\n }\n return result;\n};\nconst selectNode = (node) => {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(node);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\nconst removeSelection = () => {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n }\n};\nconst distance = (x, y) => Math.abs(x - y);\nconst updateActiveTool = (appState, data) => {\n if (data.type === \"custom\") {\n return Object.assign(Object.assign({}, appState.activeTool), { type: \"custom\", customType: data.customType });\n }\n return Object.assign(Object.assign({}, appState.activeTool), { lastActiveToolBeforeEraser: data.lastActiveToolBeforeEraser === undefined\n ? appState.activeTool.lastActiveToolBeforeEraser\n : data.lastActiveToolBeforeEraser, type: data.type, customType: null });\n};\nconst resetCursor = (canvas) => {\n if (canvas) {\n canvas.style.cursor = \"\";\n }\n};\nconst setCursor = (canvas, cursor) => {\n if (canvas) {\n canvas.style.cursor = cursor;\n }\n};\nlet eraserCanvasCache;\nlet previewDataURL;\nconst setEraserCursor = (canvas, theme) => {\n const cursorImageSizePx = 20;\n const drawCanvas = () => {\n const isDarkTheme = theme === _constants__WEBPACK_IMPORTED_MODULE_2__.THEME.DARK;\n eraserCanvasCache = document.createElement(\"canvas\");\n eraserCanvasCache.theme = theme;\n eraserCanvasCache.height = cursorImageSizePx;\n eraserCanvasCache.width = cursorImageSizePx;\n const context = eraserCanvasCache.getContext(\"2d\");\n context.lineWidth = 1;\n context.beginPath();\n context.arc(eraserCanvasCache.width / 2, eraserCanvasCache.height / 2, 5, 0, 2 * Math.PI);\n context.fillStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.black : open_color__WEBPACK_IMPORTED_MODULE_0__.white;\n context.fill();\n context.strokeStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.white : open_color__WEBPACK_IMPORTED_MODULE_0__.black;\n context.stroke();\n previewDataURL = eraserCanvasCache.toDataURL(_constants__WEBPACK_IMPORTED_MODULE_2__.MIME_TYPES.svg);\n };\n if (!eraserCanvasCache || eraserCanvasCache.theme !== theme) {\n drawCanvas();\n }\n setCursor(canvas, `url(${previewDataURL}) ${cursorImageSizePx / 2} ${cursorImageSizePx / 2}, auto`);\n};\nconst setCursorForShape = (canvas, appState) => {\n if (!canvas) {\n return;\n }\n if (appState.activeTool.type === \"selection\") {\n resetCursor(canvas);\n }\n else if (appState.activeTool.type === \"eraser\") {\n setEraserCursor(canvas, appState.theme);\n // do nothing if image tool is selected which suggests there's\n // a image-preview set as the cursor\n // Ignore custom type as well and let host decide\n }\n else if (![\"image\", \"custom\"].includes(appState.activeTool.type)) {\n canvas.style.cursor = _constants__WEBPACK_IMPORTED_MODULE_2__.CURSOR_TYPE.CROSSHAIR;\n }\n};\nconst isFullScreen = () => { var _a; return ((_a = document.fullscreenElement) === null || _a === void 0 ? void 0 : _a.nodeName) === \"HTML\"; };\nconst allowFullScreen = () => document.documentElement.requestFullscreen();\nconst exitFullScreen = () => document.exitFullscreen();\nconst getShortcutKey = (shortcut) => {\n shortcut = shortcut\n .replace(/\\bAlt\\b/i, \"Alt\")\n .replace(/\\bShift\\b/i, \"Shift\")\n .replace(/\\b(Enter|Return)\\b/i, \"Enter\")\n .replace(/\\bDel\\b/i, \"Delete\");\n if (_keys__WEBPACK_IMPORTED_MODULE_4__.isDarwin) {\n return shortcut\n .replace(/\\bCtrlOrCmd\\b/i, \"Cmd\")\n .replace(/\\bAlt\\b/i, \"Option\");\n }\n return shortcut.replace(/\\bCtrlOrCmd\\b/i, \"Ctrl\");\n};\nconst viewportCoordsToSceneCoords = ({ clientX, clientY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const invScale = 1 / zoom.value;\n const x = (clientX - offsetLeft) * invScale - scrollX;\n const y = (clientY - offsetTop) * invScale - scrollY;\n return { x, y };\n};\nconst sceneCoordsToViewportCoords = ({ sceneX, sceneY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const x = (sceneX + scrollX) * zoom.value + offsetLeft;\n const y = (sceneY + scrollY) * zoom.value + offsetTop;\n return { x, y };\n};\nconst getGlobalCSSVariable = (name) => getComputedStyle(document.documentElement).getPropertyValue(`--${name}`);\nconst RS_LTR_CHARS = \"A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\" +\n \"\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF\";\nconst RS_RTL_CHARS = \"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\";\nconst RE_RTL_CHECK = new RegExp(`^[^${RS_LTR_CHARS}]*[${RS_RTL_CHARS}]`);\n/**\n * Checks whether first directional character is RTL. Meaning whether it starts\n * with RTL characters, or indeterminate (numbers etc.) characters followed by\n * RTL.\n * See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171\n */\nconst isRTL = (text) => RE_RTL_CHECK.test(text);\nconst tupleToCoors = (xyTuple) => {\n const [x, y] = xyTuple;\n return { x, y };\n};\n/** use as a rejectionHandler to mute filesystem Abort errors */\nconst muteFSAbortError = (error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return;\n }\n throw error;\n};\nconst findIndex = (array, cb, fromIndex = 0) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length, Math.max(fromIndex, 0));\n let index = fromIndex - 1;\n while (++index < array.length) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst findLastIndex = (array, cb, fromIndex = array.length - 1) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length - 1, Math.max(fromIndex, 0));\n let index = fromIndex + 1;\n while (--index > -1) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst isTransparent = (color) => {\n const isRGBTransparent = color.length === 5 && color.substr(4, 1) === \"0\";\n const isRRGGBBTransparent = color.length === 9 && color.substr(7, 2) === \"00\";\n return (isRGBTransparent ||\n isRRGGBBTransparent ||\n color === _colors__WEBPACK_IMPORTED_MODULE_1__[\"default\"].elementBackground[0]);\n};\nconst resolvablePromise = () => {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n};\n/**\n * @param func handler taking at most single parameter (event).\n */\nconst withBatchedUpdates = (func) => ((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n});\n/**\n * barches React state updates and throttles the calls to a single call per\n * animation frame\n */\nconst withBatchedUpdatesThrottled = (func) => {\n // @ts-ignore\n return throttleRAF(((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n }));\n};\n//https://stackoverflow.com/a/9462382/8418\nconst nFormatter = (num, digits) => {\n const si = [\n { value: 1, symbol: \"b\" },\n { value: 1e3, symbol: \"k\" },\n { value: 1e6, symbol: \"M\" },\n { value: 1e9, symbol: \"G\" },\n ];\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n let index;\n for (index = si.length - 1; index > 0; index--) {\n if (num >= si[index].value) {\n break;\n }\n }\n return ((num / si[index].value).toFixed(digits).replace(rx, \"$1\") + si[index].symbol);\n};\nconst getVersion = () => {\n var _a;\n return (((_a = document.querySelector('meta[name=\"version\"]')) === null || _a === void 0 ? void 0 : _a.content) ||\n _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_VERSION);\n};\n// Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/emoji.js\nconst supportsEmoji = () => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return false;\n }\n const offset = 12;\n ctx.fillStyle = \"#f00\";\n ctx.textBaseline = \"top\";\n ctx.font = \"32px Arial\";\n // Modernizr used 🐨, but it is sort of supported on Windows 7.\n // Luckily 😀 isn't supported.\n ctx.fillText(\"😀\", 0, 0);\n return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;\n};\nconst getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent &&\n (overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nconst focusNearestParent = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent.tabIndex > -1) {\n parent.focus();\n return;\n }\n parent = parent.parentElement;\n }\n};\nconst preventUnload = (event) => {\n event.preventDefault();\n // NOTE: modern browsers no longer allow showing a custom message here\n event.returnValue = \"\";\n};\nconst bytesToHexString = (bytes) => {\n return Array.from(bytes)\n .map((byte) => `0${byte.toString(16)}`.slice(-2))\n .join(\"\");\n};\nconst getUpdatedTimestamp = () => (isTestEnv() ? 1 : Date.now());\n/**\n * Transforms array of objects containing `id` attribute,\n * or array of ids (strings), into a Map, keyd by `id`.\n */\nconst arrayToMap = (items) => {\n return items.reduce((acc, element) => {\n acc.set(typeof element === \"string\" ? element : element.id, element);\n return acc;\n }, new Map());\n};\nconst isTestEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-5346-513c9cb\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"test\"; };\nconst isProdEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-5346-513c9cb\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"production\"; };\nconst wrapEvent = (name, nativeEvent) => {\n return new CustomEvent(name, {\n detail: {\n nativeEvent,\n },\n cancelable: true,\n });\n};\nconst updateObject = (obj, updates) => {\n let didChange = false;\n for (const key in updates) {\n const value = updates[key];\n if (typeof value !== \"undefined\") {\n if (obj[key] === value &&\n // if object, always update because its attrs could have changed\n (typeof value !== \"object\" || value === null)) {\n continue;\n }\n didChange = true;\n }\n }\n if (!didChange) {\n return obj;\n }\n return Object.assign(Object.assign({}, obj), updates);\n};\nconst isPrimitive = (val) => {\n const type = typeof val;\n return val == null || (type !== \"object\" && type !== \"function\");\n};\nconst getFrame = () => {\n try {\n return window.self === window.top ? \"top\" : \"iframe\";\n }\n catch (error) {\n return \"iframe\";\n }\n};\nconst isPromiseLike = (value) => {\n return (!!value &&\n typeof value === \"object\" &&\n \"then\" in value &&\n \"catch\" in value &&\n \"finally\" in value);\n};\nconst queryFocusableElements = (container) => {\n const focusableElements = container === null || container === void 0 ? void 0 : container.querySelectorAll(\"button, a, input, select, textarea, div[tabindex], label[tabindex]\");\n return focusableElements\n ? Array.from(focusableElements).filter((element) => element.tabIndex > -1 && !element.disabled)\n : [];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUN0RDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxRQUFRLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFFSyxNQUFNLGFBQWEsR0FBRyxDQUMzQixLQUFVLEVBQ3NDLEVBQUU7SUFDbEQsT0FBTyxDQUNMLENBQUMsQ0FBQyxLQUFLO1FBQ1AsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixNQUFNLElBQUksS0FBSztRQUNmLE9BQU8sSUFBSSxLQUFLO1FBQ2hCLFNBQVMsSUFBSSxLQUFLLENBQ25CLENBQUM7QUFDSixDQUFDLENBQUM7QUFFSyxNQUFNLHNCQUFzQixHQUFHLENBQUMsU0FBNkIsRUFBRSxFQUFFO0lBQ3RFLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLGdCQUFnQixDQUNuRCxvRUFBb0UsQ0FDckUsQ0FBQztJQUVGLE9BQU8saUJBQWlCO1FBQ3RCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1YsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFFLE9BQTRCLENBQUMsUUFBUSxDQUNuRTtRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVCxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vdXRpbHMudHM/NzYzYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2MgZnJvbSBcIm9wZW4tY29sb3JcIjtcblxuaW1wb3J0IGNvbG9ycyBmcm9tIFwiLi9jb2xvcnNcIjtcbmltcG9ydCB7XG4gIENVUlNPUl9UWVBFLFxuICBERUZBVUxUX1ZFUlNJT04sXG4gIEVWRU5ULFxuICBGT05UX0ZBTUlMWSxcbiAgTUlNRV9UWVBFUyxcbiAgVEhFTUUsXG4gIFdJTkRPV1NfRU1PSklfRkFMTEJBQ0tfRk9OVCxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBGb250RmFtaWx5VmFsdWVzLCBGb250U3RyaW5nIH0gZnJvbSBcIi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgQXBwU3RhdGUsIERhdGFVUkwsIExhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyLCBab29tIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgaXNEYXJ3aW4gfSBmcm9tIFwiLi9rZXlzXCI7XG5pbXBvcnQgeyBTSEFQRVMgfSBmcm9tIFwiLi9zaGFwZXNcIjtcblxubGV0IG1vY2tEYXRlVGltZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBjb25zdCBzZXREYXRlVGltZUZvclRlc3RzID0gKGRhdGVUaW1lOiBzdHJpbmcpID0+IHtcbiAgbW9ja0RhdGVUaW1lID0gZGF0ZVRpbWU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZVRpbWUgPSAoKSA9PiB7XG4gIGlmIChtb2NrRGF0ZVRpbWUpIHtcbiAgICByZXR1cm4gbW9ja0RhdGVUaW1lO1xuICB9XG5cbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IG1vbnRoID0gYCR7ZGF0ZS5nZXRNb250aCgpICsgMX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcbiAgY29uc3QgZGF5ID0gYCR7ZGF0ZS5nZXREYXRlKCl9YC5wYWRTdGFydCgyLCBcIjBcIik7XG4gIGNvbnN0IGhyID0gYCR7ZGF0ZS5nZXRIb3VycygpfWAucGFkU3RhcnQoMiwgXCIwXCIpO1xuICBjb25zdCBtaW4gPSBgJHtkYXRlLmdldE1pbnV0ZXMoKX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblxuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9LSR7aHJ9JHttaW59YDtcbn07XG5cbmV4cG9ydCBjb25zdCBjYXBpdGFsaXplU3RyaW5nID0gKHN0cjogc3RyaW5nKSA9PlxuICBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG5cbmV4cG9ydCBjb25zdCBpc1Rvb2xJY29uID0gKFxuICB0YXJnZXQ6IEVsZW1lbnQgfCBFdmVudFRhcmdldCB8IG51bGwsXG4pOiB0YXJnZXQgaXMgSFRNTEVsZW1lbnQgPT5cbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgdGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcyhcIlRvb2xJY29uXCIpO1xuXG5leHBvcnQgY29uc3QgaXNJbnB1dExpa2UgPSAoXG4gIHRhcmdldDogRWxlbWVudCB8IEV2ZW50VGFyZ2V0IHwgbnVsbCxcbik6IHRhcmdldCBpc1xuICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gIHwgSFRNTFNlbGVjdEVsZW1lbnRcbiAgfCBIVE1MQlJFbGVtZW50XG4gIHwgSFRNTERpdkVsZW1lbnQgPT5cbiAgKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5kYXRhc2V0LnR5cGUgPT09IFwid3lzaXd5Z1wiKSB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MQlJFbGVtZW50IHx8IC8vIG5ld2xpbmUgaW4gd3lzaXd5Z1xuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQ7XG5cbmV4cG9ydCBjb25zdCBpc1dyaXRhYmxlRWxlbWVudCA9IChcbiAgdGFyZ2V0OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBudWxsLFxuKTogdGFyZ2V0IGlzXG4gIHwgSFRNTElucHV0RWxlbWVudFxuICB8IEhUTUxUZXh0QXJlYUVsZW1lbnRcbiAgfCBIVE1MQlJFbGVtZW50XG4gIHwgSFRNTERpdkVsZW1lbnQgPT5cbiAgKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5kYXRhc2V0LnR5cGUgPT09IFwid3lzaXd5Z1wiKSB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MQlJFbGVtZW50IHx8IC8vIG5ld2xpbmUgaW4gd3lzaXd5Z1xuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmXG4gICAgKHRhcmdldC50eXBlID09PSBcInRleHRcIiB8fCB0YXJnZXQudHlwZSA9PT0gXCJudW1iZXJcIikpO1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9udEZhbWlseVN0cmluZyA9ICh7XG4gIGZvbnRGYW1pbHksXG59OiB7XG4gIGZvbnRGYW1pbHk6IEZvbnRGYW1pbHlWYWx1ZXM7XG59KSA9PiB7XG4gIGZvciAoY29uc3QgW2ZvbnRGYW1pbHlTdHJpbmcsIGlkXSBvZiBPYmplY3QuZW50cmllcyhGT05UX0ZBTUlMWSkpIHtcbiAgICBpZiAoaWQgPT09IGZvbnRGYW1pbHkpIHtcbiAgICAgIHJldHVybiBgJHtmb250RmFtaWx5U3RyaW5nfSwgJHtXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlR9YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFdJTkRPV1NfRU1PSklfRkFMTEJBQ0tfRk9OVDtcbn07XG5cbi8qKiByZXR1cm5zIGZvbnRTaXplK2ZvbnRGYW1pbHkgc3RyaW5nIGZvciBhc3NpZ25tZW50IHRvIERPTSBlbGVtZW50cyAqL1xuZXhwb3J0IGNvbnN0IGdldEZvbnRTdHJpbmcgPSAoe1xuICBmb250U2l6ZSxcbiAgZm9udEZhbWlseSxcbn06IHtcbiAgZm9udFNpemU6IG51bWJlcjtcbiAgZm9udEZhbWlseTogRm9udEZhbWlseVZhbHVlcztcbn0pID0+IHtcbiAgcmV0dXJuIGAke2ZvbnRTaXplfXB4ICR7Z2V0Rm9udEZhbWlseVN0cmluZyh7IGZvbnRGYW1pbHkgfSl9YCBhcyBGb250U3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlYm91bmNlID0gPFQgZXh0ZW5kcyBhbnlbXT4oXG4gIGZuOiAoLi4uYXJnczogVCkgPT4gdm9pZCxcbiAgdGltZW91dDogbnVtYmVyLFxuKSA9PiB7XG4gIGxldCBoYW5kbGUgPSAwO1xuICBsZXQgbGFzdEFyZ3M6IFQgfCBudWxsID0gbnVsbDtcbiAgY29uc3QgcmV0ID0gKC4uLmFyZ3M6IFQpID0+IHtcbiAgICBsYXN0QXJncyA9IGFyZ3M7XG4gICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgaGFuZGxlID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgICAgZm4oLi4uYXJncyk7XG4gICAgfSwgdGltZW91dCk7XG4gIH07XG4gIHJldC5mbHVzaCA9ICgpID0+IHtcbiAgICBjbGVhclRpbWVvdXQoaGFuZGxlKTtcbiAgICBpZiAobGFzdEFyZ3MpIHtcbiAgICAgIGNvbnN0IF9sYXN0QXJncyA9IGxhc3RBcmdzO1xuICAgICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgICAgZm4oLi4uX2xhc3RBcmdzKTtcbiAgICB9XG4gIH07XG4gIHJldC5jYW5jZWwgPSAoKSA9PiB7XG4gICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgIGNsZWFyVGltZW91dChoYW5kbGUpO1xuICB9O1xuICByZXR1cm4gcmV0O1xufTtcblxuLy8gdGhyb3R0bGUgY2FsbGJhY2sgdG8gZXhlY3V0ZSBvbmNlIHBlciBhbmltYXRpb24gZnJhbWVcbmV4cG9ydCBjb25zdCB0aHJvdHRsZVJBRiA9IDxUIGV4dGVuZHMgYW55W10+KGZuOiAoLi4uYXJnczogVCkgPT4gdm9pZCkgPT4ge1xuICBsZXQgaGFuZGxlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgbGV0IGxhc3RBcmdzOiBUIHwgbnVsbCA9IG51bGw7XG4gIGxldCBjYWxsYmFjazogKCguLi5hcmdzOiBUKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBjb25zdCByZXQgPSAoLi4uYXJnczogVCkgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCIpIHtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGFyZ3M7XG4gICAgY2FsbGJhY2sgPSBmbjtcbiAgICBpZiAoaGFuZGxlID09PSBudWxsKSB7XG4gICAgICBoYW5kbGUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaGFuZGxlID0gbnVsbDtcbiAgICAgICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG4gICAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICByZXQuZmx1c2ggPSAoKSA9PiB7XG4gICAgaWYgKGhhbmRsZSAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaGFuZGxlKTtcbiAgICAgIGhhbmRsZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChsYXN0QXJncykge1xuICAgICAgY29uc3QgX2xhc3RBcmdzID0gbGFzdEFyZ3M7XG4gICAgICBjb25zdCBfY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGNhbGxiYWNrID0gbnVsbDtcbiAgICAgIGlmIChfY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgX2NhbGxiYWNrKC4uLl9sYXN0QXJncyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICByZXQuY2FuY2VsID0gKCkgPT4ge1xuICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICBjYWxsYmFjayA9IG51bGw7XG4gICAgaWYgKGhhbmRsZSAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaGFuZGxlKTtcbiAgICAgIGhhbmRsZSA9IG51bGw7XG4gICAgfVxuICB9O1xuICByZXR1cm4gcmV0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi9lcy9jaHVuay5qc1xuZXhwb3J0IGNvbnN0IGNodW5rID0gPFQgZXh0ZW5kcyBhbnk+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBzaXplOiBudW1iZXIsXG4pOiBUW11bXSA9PiB7XG4gIGlmICghYXJyYXkubGVuZ3RoIHx8IHNpemUgPCAxKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGxldCBpbmRleCA9IDA7XG4gIGxldCByZXNJbmRleCA9IDA7XG4gIGNvbnN0IHJlc3VsdCA9IEFycmF5KE1hdGguY2VpbChhcnJheS5sZW5ndGggLyBzaXplKSk7XG4gIHdoaWxlIChpbmRleCA8IGFycmF5Lmxlbmd0aCkge1xuICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGFycmF5LnNsaWNlKGluZGV4LCAoaW5kZXggKz0gc2l6ZSkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Tm9kZSA9IChub2RlOiBFbGVtZW50KSA9PiB7XG4gIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgaWYgKHNlbGVjdGlvbikge1xuICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMobm9kZSk7XG4gICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWxlY3Rpb24gPSAoKSA9PiB7XG4gIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgaWYgKHNlbGVjdGlvbikge1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGRpc3RhbmNlID0gKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiBNYXRoLmFicyh4IC0geSk7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVBY3RpdmVUb29sID0gKFxuICBhcHBTdGF0ZTogUGljazxBcHBTdGF0ZSwgXCJhY3RpdmVUb29sXCI+LFxuICBkYXRhOiAoXG4gICAgfCB7IHR5cGU6IHR5cGVvZiBTSEFQRVNbbnVtYmVyXVtcInZhbHVlXCJdIHwgXCJlcmFzZXJcIiB9XG4gICAgfCB7IHR5cGU6IFwiY3VzdG9tXCI7IGN1c3RvbVR5cGU6IHN0cmluZyB9XG4gICkgJiB7IGxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyPzogTGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXIgfSxcbik6IEFwcFN0YXRlW1wiYWN0aXZlVG9vbFwiXSA9PiB7XG4gIGlmIChkYXRhLnR5cGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYXBwU3RhdGUuYWN0aXZlVG9vbCxcbiAgICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgICBjdXN0b21UeXBlOiBkYXRhLmN1c3RvbVR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYXBwU3RhdGUuYWN0aXZlVG9vbCxcbiAgICBsYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcjpcbiAgICAgIGRhdGEubGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXIgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IGFwcFN0YXRlLmFjdGl2ZVRvb2wubGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXJcbiAgICAgICAgOiBkYXRhLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyLFxuICAgIHR5cGU6IGRhdGEudHlwZSxcbiAgICBjdXN0b21UeXBlOiBudWxsLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc2V0Q3Vyc29yID0gKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsKSA9PiB7XG4gIGlmIChjYW52YXMpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gXCJcIjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNldEN1cnNvciA9IChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCwgY3Vyc29yOiBzdHJpbmcpID0+IHtcbiAgaWYgKGNhbnZhcykge1xuICAgIGNhbnZhcy5zdHlsZS5jdXJzb3IgPSBjdXJzb3I7XG4gIH1cbn07XG5cbmxldCBlcmFzZXJDYW52YXNDYWNoZTogYW55O1xubGV0IHByZXZpZXdEYXRhVVJMOiBzdHJpbmc7XG5leHBvcnQgY29uc3Qgc2V0RXJhc2VyQ3Vyc29yID0gKFxuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCxcbiAgdGhlbWU6IEFwcFN0YXRlW1widGhlbWVcIl0sXG4pID0+IHtcbiAgY29uc3QgY3Vyc29ySW1hZ2VTaXplUHggPSAyMDtcblxuICBjb25zdCBkcmF3Q2FudmFzID0gKCkgPT4ge1xuICAgIGNvbnN0IGlzRGFya1RoZW1lID0gdGhlbWUgPT09IFRIRU1FLkRBUks7XG4gICAgZXJhc2VyQ2FudmFzQ2FjaGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLnRoZW1lID0gdGhlbWU7XG4gICAgZXJhc2VyQ2FudmFzQ2FjaGUuaGVpZ2h0ID0gY3Vyc29ySW1hZ2VTaXplUHg7XG4gICAgZXJhc2VyQ2FudmFzQ2FjaGUud2lkdGggPSBjdXJzb3JJbWFnZVNpemVQeDtcbiAgICBjb25zdCBjb250ZXh0ID0gZXJhc2VyQ2FudmFzQ2FjaGUuZ2V0Q29udGV4dChcIjJkXCIpITtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDE7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0LmFyYyhcbiAgICAgIGVyYXNlckNhbnZhc0NhY2hlLndpZHRoIC8gMixcbiAgICAgIGVyYXNlckNhbnZhc0NhY2hlLmhlaWdodCAvIDIsXG4gICAgICA1LFxuICAgICAgMCxcbiAgICAgIDIgKiBNYXRoLlBJLFxuICAgICk7XG4gICAgY29udGV4dC5maWxsU3R5bGUgPSBpc0RhcmtUaGVtZSA/IG9jLmJsYWNrIDogb2Mud2hpdGU7XG4gICAgY29udGV4dC5maWxsKCk7XG4gICAgY29udGV4dC5zdHJva2VTdHlsZSA9IGlzRGFya1RoZW1lID8gb2Mud2hpdGUgOiBvYy5ibGFjaztcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xuICAgIHByZXZpZXdEYXRhVVJMID0gZXJhc2VyQ2FudmFzQ2FjaGUudG9EYXRhVVJMKE1JTUVfVFlQRVMuc3ZnKSBhcyBEYXRhVVJMO1xuICB9O1xuICBpZiAoIWVyYXNlckNhbnZhc0NhY2hlIHx8IGVyYXNlckNhbnZhc0NhY2hlLnRoZW1lICE9PSB0aGVtZSkge1xuICAgIGRyYXdDYW52YXMoKTtcbiAgfVxuXG4gIHNldEN1cnNvcihcbiAgICBjYW52YXMsXG4gICAgYHVybCgke3ByZXZpZXdEYXRhVVJMfSkgJHtjdXJzb3JJbWFnZVNpemVQeCAvIDJ9ICR7XG4gICAgICBjdXJzb3JJbWFnZVNpemVQeCAvIDJcbiAgICB9LCBhdXRvYCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDdXJzb3JGb3JTaGFwZSA9IChcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsXG4gIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbikgPT4ge1xuICBpZiAoIWNhbnZhcykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoYXBwU3RhdGUuYWN0aXZlVG9vbC50eXBlID09PSBcInNlbGVjdGlvblwiKSB7XG4gICAgcmVzZXRDdXJzb3IoY2FudmFzKTtcbiAgfSBlbHNlIGlmIChhcHBTdGF0ZS5hY3RpdmVUb29sLnR5cGUgPT09IFwiZXJhc2VyXCIpIHtcbiAgICBzZXRFcmFzZXJDdXJzb3IoY2FudmFzLCBhcHBTdGF0ZS50aGVtZSk7XG4gICAgLy8gZG8gbm90aGluZyBpZiBpbWFnZSB0b29sIGlzIHNlbGVjdGVkIHdoaWNoIHN1Z2dlc3RzIHRoZXJlJ3NcbiAgICAvLyBhIGltYWdlLXByZXZpZXcgc2V0IGFzIHRoZSBjdXJzb3JcbiAgICAvLyBJZ25vcmUgY3VzdG9tIHR5cGUgYXMgd2VsbCBhbmQgbGV0IGhvc3QgZGVjaWRlXG4gIH0gZWxzZSBpZiAoIVtcImltYWdlXCIsIFwiY3VzdG9tXCJdLmluY2x1ZGVzKGFwcFN0YXRlLmFjdGl2ZVRvb2wudHlwZSkpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gQ1VSU09SX1RZUEUuQ1JPU1NIQUlSO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNGdWxsU2NyZWVuID0gKCkgPT5cbiAgZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQ/Lm5vZGVOYW1lID09PSBcIkhUTUxcIjtcblxuZXhwb3J0IGNvbnN0IGFsbG93RnVsbFNjcmVlbiA9ICgpID0+XG4gIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZXF1ZXN0RnVsbHNjcmVlbigpO1xuXG5leHBvcnQgY29uc3QgZXhpdEZ1bGxTY3JlZW4gPSAoKSA9PiBkb2N1bWVudC5leGl0RnVsbHNjcmVlbigpO1xuXG5leHBvcnQgY29uc3QgZ2V0U2hvcnRjdXRLZXkgPSAoc2hvcnRjdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHNob3J0Y3V0ID0gc2hvcnRjdXRcbiAgICAucmVwbGFjZSgvXFxiQWx0XFxiL2ksIFwiQWx0XCIpXG4gICAgLnJlcGxhY2UoL1xcYlNoaWZ0XFxiL2ksIFwiU2hpZnRcIilcbiAgICAucmVwbGFjZSgvXFxiKEVudGVyfFJldHVybilcXGIvaSwgXCJFbnRlclwiKVxuICAgIC5yZXBsYWNlKC9cXGJEZWxcXGIvaSwgXCJEZWxldGVcIik7XG5cbiAgaWYgKGlzRGFyd2luKSB7XG4gICAgcmV0dXJuIHNob3J0Y3V0XG4gICAgICAucmVwbGFjZSgvXFxiQ3RybE9yQ21kXFxiL2ksIFwiQ21kXCIpXG4gICAgICAucmVwbGFjZSgvXFxiQWx0XFxiL2ksIFwiT3B0aW9uXCIpO1xuICB9XG4gIHJldHVybiBzaG9ydGN1dC5yZXBsYWNlKC9cXGJDdHJsT3JDbWRcXGIvaSwgXCJDdHJsXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IHZpZXdwb3J0Q29vcmRzVG9TY2VuZUNvb3JkcyA9IChcbiAgeyBjbGllbnRYLCBjbGllbnRZIH06IHsgY2xpZW50WDogbnVtYmVyOyBjbGllbnRZOiBudW1iZXIgfSxcbiAge1xuICAgIHpvb20sXG4gICAgb2Zmc2V0TGVmdCxcbiAgICBvZmZzZXRUb3AsXG4gICAgc2Nyb2xsWCxcbiAgICBzY3JvbGxZLFxuICB9OiB7XG4gICAgem9vbTogWm9vbTtcbiAgICBvZmZzZXRMZWZ0OiBudW1iZXI7XG4gICAgb2Zmc2V0VG9wOiBudW1iZXI7XG4gICAgc2Nyb2xsWDogbnVtYmVyO1xuICAgIHNjcm9sbFk6IG51bWJlcjtcbiAgfSxcbikgPT4ge1xuICBjb25zdCBpbnZTY2FsZSA9IDEgLyB6b29tLnZhbHVlO1xuICBjb25zdCB4ID0gKGNsaWVudFggLSBvZmZzZXRMZWZ0KSAqIGludlNjYWxlIC0gc2Nyb2xsWDtcbiAgY29uc3QgeSA9IChjbGllbnRZIC0gb2Zmc2V0VG9wKSAqIGludlNjYWxlIC0gc2Nyb2xsWTtcblxuICByZXR1cm4geyB4LCB5IH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2NlbmVDb29yZHNUb1ZpZXdwb3J0Q29vcmRzID0gKFxuICB7IHNjZW5lWCwgc2NlbmVZIH06IHsgc2NlbmVYOiBudW1iZXI7IHNjZW5lWTogbnVtYmVyIH0sXG4gIHtcbiAgICB6b29tLFxuICAgIG9mZnNldExlZnQsXG4gICAgb2Zmc2V0VG9wLFxuICAgIHNjcm9sbFgsXG4gICAgc2Nyb2xsWSxcbiAgfToge1xuICAgIHpvb206IFpvb207XG4gICAgb2Zmc2V0TGVmdDogbnVtYmVyO1xuICAgIG9mZnNldFRvcDogbnVtYmVyO1xuICAgIHNjcm9sbFg6IG51bWJlcjtcbiAgICBzY3JvbGxZOiBudW1iZXI7XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgeCA9IChzY2VuZVggKyBzY3JvbGxYKSAqIHpvb20udmFsdWUgKyBvZmZzZXRMZWZ0O1xuICBjb25zdCB5ID0gKHNjZW5lWSArIHNjcm9sbFkpICogem9vbS52YWx1ZSArIG9mZnNldFRvcDtcbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdsb2JhbENTU1ZhcmlhYmxlID0gKG5hbWU6IHN0cmluZykgPT5cbiAgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoYC0tJHtuYW1lfWApO1xuXG5jb25zdCBSU19MVFJfQ0hBUlMgPVxuICBcIkEtWmEtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJCOFxcdTAzMDAtXFx1MDU5MFxcdTA4MDAtXFx1MUZGRlwiICtcbiAgXCJcXHUyQzAwLVxcdUZCMUNcXHVGREZFLVxcdUZFNkZcXHVGRUZELVxcdUZGRkZcIjtcbmNvbnN0IFJTX1JUTF9DSEFSUyA9IFwiXFx1MDU5MS1cXHUwN0ZGXFx1RkIxRC1cXHVGREZEXFx1RkU3MC1cXHVGRUZDXCI7XG5jb25zdCBSRV9SVExfQ0hFQ0sgPSBuZXcgUmVnRXhwKGBeW14ke1JTX0xUUl9DSEFSU31dKlske1JTX1JUTF9DSEFSU31dYCk7XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGZpcnN0IGRpcmVjdGlvbmFsIGNoYXJhY3RlciBpcyBSVEwuIE1lYW5pbmcgd2hldGhlciBpdCBzdGFydHNcbiAqICB3aXRoIFJUTCBjaGFyYWN0ZXJzLCBvciBpbmRldGVybWluYXRlIChudW1iZXJzIGV0Yy4pIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnlcbiAqICBSVEwuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy9wdWxsLzE3MjIjZGlzY3Vzc2lvbl9yNDM2MzQwMTcxXG4gKi9cbmV4cG9ydCBjb25zdCBpc1JUTCA9ICh0ZXh0OiBzdHJpbmcpID0+IFJFX1JUTF9DSEVDSy50ZXN0KHRleHQpO1xuXG5leHBvcnQgY29uc3QgdHVwbGVUb0Nvb3JzID0gKFxuICB4eVR1cGxlOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdLFxuKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9ID0+IHtcbiAgY29uc3QgW3gsIHldID0geHlUdXBsZTtcbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuLyoqIHVzZSBhcyBhIHJlamVjdGlvbkhhbmRsZXIgdG8gbXV0ZSBmaWxlc3lzdGVtIEFib3J0IGVycm9ycyAqL1xuZXhwb3J0IGNvbnN0IG11dGVGU0Fib3J0RXJyb3IgPSAoZXJyb3I/OiBFcnJvcikgPT4ge1xuICBpZiAoZXJyb3I/Lm5hbWUgPT09IFwiQWJvcnRFcnJvclwiKSB7XG4gICAgY29uc29sZS53YXJuKGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdGhyb3cgZXJyb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEluZGV4ID0gPFQ+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBjYjogKGVsZW1lbnQ6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IGJvb2xlYW4sXG4gIGZyb21JbmRleDogbnVtYmVyID0gMCxcbikgPT4ge1xuICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgIGZyb21JbmRleCA9IGFycmF5Lmxlbmd0aCArIGZyb21JbmRleDtcbiAgfVxuICBmcm9tSW5kZXggPSBNYXRoLm1pbihhcnJheS5sZW5ndGgsIE1hdGgubWF4KGZyb21JbmRleCwgMCkpO1xuICBsZXQgaW5kZXggPSBmcm9tSW5kZXggLSAxO1xuICB3aGlsZSAoKytpbmRleCA8IGFycmF5Lmxlbmd0aCkge1xuICAgIGlmIChjYihhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRMYXN0SW5kZXggPSA8VD4oXG4gIGFycmF5OiByZWFkb25seSBUW10sXG4gIGNiOiAoZWxlbWVudDogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IHJlYWRvbmx5IFRbXSkgPT4gYm9vbGVhbixcbiAgZnJvbUluZGV4OiBudW1iZXIgPSBhcnJheS5sZW5ndGggLSAxLFxuKSA9PiB7XG4gIGlmIChmcm9tSW5kZXggPCAwKSB7XG4gICAgZnJvbUluZGV4ID0gYXJyYXkubGVuZ3RoICsgZnJvbUluZGV4O1xuICB9XG4gIGZyb21JbmRleCA9IE1hdGgubWluKGFycmF5Lmxlbmd0aCAtIDEsIE1hdGgubWF4KGZyb21JbmRleCwgMCkpO1xuICBsZXQgaW5kZXggPSBmcm9tSW5kZXggKyAxO1xuICB3aGlsZSAoLS1pbmRleCA+IC0xKSB7XG4gICAgaWYgKGNiKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUcmFuc3BhcmVudCA9IChjb2xvcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGlzUkdCVHJhbnNwYXJlbnQgPSBjb2xvci5sZW5ndGggPT09IDUgJiYgY29sb3Iuc3Vic3RyKDQsIDEpID09PSBcIjBcIjtcbiAgY29uc3QgaXNSUkdHQkJUcmFuc3BhcmVudCA9IGNvbG9yLmxlbmd0aCA9PT0gOSAmJiBjb2xvci5zdWJzdHIoNywgMikgPT09IFwiMDBcIjtcbiAgcmV0dXJuIChcbiAgICBpc1JHQlRyYW5zcGFyZW50IHx8XG4gICAgaXNSUkdHQkJUcmFuc3BhcmVudCB8fFxuICAgIGNvbG9yID09PSBjb2xvcnMuZWxlbWVudEJhY2tncm91bmRbMF1cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmFibGVQcm9taXNlPFQ+ID0gUHJvbWlzZTxUPiAmIHtcbiAgcmVzb2x2ZTogW1RdIGV4dGVuZHMgW3VuZGVmaW5lZF0gPyAodmFsdWU/OiBUKSA9PiB2b2lkIDogKHZhbHVlOiBUKSA9PiB2b2lkO1xuICByZWplY3Q6IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmFibGVQcm9taXNlID0gPFQ+KCkgPT4ge1xuICBsZXQgcmVzb2x2ZSE6IGFueTtcbiAgbGV0IHJlamVjdCE6IGFueTtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChfcmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICByZWplY3QgPSBfcmVqZWN0O1xuICB9KTtcbiAgKHByb21pc2UgYXMgYW55KS5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgKHByb21pc2UgYXMgYW55KS5yZWplY3QgPSByZWplY3Q7XG4gIHJldHVybiBwcm9taXNlIGFzIFJlc29sdmFibGVQcm9taXNlPFQ+O1xufTtcblxuLyoqXG4gKiBAcGFyYW0gZnVuYyBoYW5kbGVyIHRha2luZyBhdCBtb3N0IHNpbmdsZSBwYXJhbWV0ZXIgKGV2ZW50KS5cbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhCYXRjaGVkVXBkYXRlcyA9IDxcbiAgVEZ1bmN0aW9uIGV4dGVuZHMgKChldmVudDogYW55KSA9PiB2b2lkKSB8ICgoKSA9PiB2b2lkKSxcbj4oXG4gIGZ1bmM6IFBhcmFtZXRlcnM8VEZ1bmN0aW9uPltcImxlbmd0aFwiXSBleHRlbmRzIDAgfCAxID8gVEZ1bmN0aW9uIDogbmV2ZXIsXG4pID0+XG4gICgoZXZlbnQpID0+IHtcbiAgICB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyhmdW5jIGFzIFRGdW5jdGlvbiwgZXZlbnQpO1xuICB9KSBhcyBURnVuY3Rpb247XG5cbi8qKlxuICogYmFyY2hlcyBSZWFjdCBzdGF0ZSB1cGRhdGVzIGFuZCB0aHJvdHRsZXMgdGhlIGNhbGxzIHRvIGEgc2luZ2xlIGNhbGwgcGVyXG4gKiBhbmltYXRpb24gZnJhbWVcbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhCYXRjaGVkVXBkYXRlc1Rocm90dGxlZCA9IDxcbiAgVEZ1bmN0aW9uIGV4dGVuZHMgKChldmVudDogYW55KSA9PiB2b2lkKSB8ICgoKSA9PiB2b2lkKSxcbj4oXG4gIGZ1bmM6IFBhcmFtZXRlcnM8VEZ1bmN0aW9uPltcImxlbmd0aFwiXSBleHRlbmRzIDAgfCAxID8gVEZ1bmN0aW9uIDogbmV2ZXIsXG4pID0+IHtcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gdGhyb3R0bGVSQUY8UGFyYW1ldGVyczxURnVuY3Rpb24+PigoKGV2ZW50KSA9PiB7XG4gICAgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZnVuYywgZXZlbnQpO1xuICB9KSBhcyBURnVuY3Rpb24pO1xufTtcblxuLy9odHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvOTQ2MjM4Mi84NDE4XG5leHBvcnQgY29uc3QgbkZvcm1hdHRlciA9IChudW06IG51bWJlciwgZGlnaXRzOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzaSA9IFtcbiAgICB7IHZhbHVlOiAxLCBzeW1ib2w6IFwiYlwiIH0sXG4gICAgeyB2YWx1ZTogMWUzLCBzeW1ib2w6IFwia1wiIH0sXG4gICAgeyB2YWx1ZTogMWU2LCBzeW1ib2w6IFwiTVwiIH0sXG4gICAgeyB2YWx1ZTogMWU5LCBzeW1ib2w6IFwiR1wiIH0sXG4gIF07XG4gIGNvbnN0IHJ4ID0gL1xcLjArJHwoXFwuWzAtOV0qWzEtOV0pMCskLztcbiAgbGV0IGluZGV4O1xuICBmb3IgKGluZGV4ID0gc2kubGVuZ3RoIC0gMTsgaW5kZXggPiAwOyBpbmRleC0tKSB7XG4gICAgaWYgKG51bSA+PSBzaVtpbmRleF0udmFsdWUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gKFxuICAgIChudW0gLyBzaVtpbmRleF0udmFsdWUpLnRvRml4ZWQoZGlnaXRzKS5yZXBsYWNlKHJ4LCBcIiQxXCIpICsgc2lbaW5kZXhdLnN5bWJvbFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFZlcnNpb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MTWV0YUVsZW1lbnQ+KCdtZXRhW25hbWU9XCJ2ZXJzaW9uXCJdJyk/LmNvbnRlbnQgfHxcbiAgICBERUZBVUxUX1ZFUlNJT05cbiAgKTtcbn07XG5cbi8vIEFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9ibG9iL21hc3Rlci9mZWF0dXJlLWRldGVjdHMvZW1vamkuanNcbmV4cG9ydCBjb25zdCBzdXBwb3J0c0Vtb2ppID0gKCkgPT4ge1xuICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICBpZiAoIWN0eCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBvZmZzZXQgPSAxMjtcbiAgY3R4LmZpbGxTdHlsZSA9IFwiI2YwMFwiO1xuICBjdHgudGV4dEJhc2VsaW5lID0gXCJ0b3BcIjtcbiAgY3R4LmZvbnQgPSBcIjMycHggQXJpYWxcIjtcbiAgLy8gTW9kZXJuaXpyIHVzZWQg8J+QqCwgYnV0IGl0IGlzIHNvcnQgb2Ygc3VwcG9ydGVkIG9uIFdpbmRvd3MgNy5cbiAgLy8gTHVja2lseSDwn5iAIGlzbid0IHN1cHBvcnRlZC5cbiAgY3R4LmZpbGxUZXh0KFwi8J+YgFwiLCAwLCAwKTtcbiAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEob2Zmc2V0LCBvZmZzZXQsIDEsIDEpLmRhdGFbMF0gIT09IDA7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TmVhcmVzdFNjcm9sbGFibGVDb250YWluZXIgPSAoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuKTogSFRNTEVsZW1lbnQgfCBEb2N1bWVudCA9PiB7XG4gIGxldCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gIHdoaWxlIChwYXJlbnQpIHtcbiAgICBpZiAocGFyZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgfVxuICAgIGNvbnN0IHsgb3ZlcmZsb3dZIH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpO1xuICAgIGNvbnN0IGhhc1Njcm9sbGFibGVDb250ZW50ID0gcGFyZW50LnNjcm9sbEhlaWdodCA+IHBhcmVudC5jbGllbnRIZWlnaHQ7XG4gICAgaWYgKFxuICAgICAgaGFzU2Nyb2xsYWJsZUNvbnRlbnQgJiZcbiAgICAgIChvdmVyZmxvd1kgPT09IFwiYXV0b1wiIHx8XG4gICAgICAgIG92ZXJmbG93WSA9PT0gXCJzY3JvbGxcIiB8fFxuICAgICAgICBvdmVyZmxvd1kgPT09IFwib3ZlcmxheVwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9XG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cbiAgcmV0dXJuIGRvY3VtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvY3VzTmVhcmVzdFBhcmVudCA9IChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSA9PiB7XG4gIGxldCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gIHdoaWxlIChwYXJlbnQpIHtcbiAgICBpZiAocGFyZW50LnRhYkluZGV4ID4gLTEpIHtcbiAgICAgIHBhcmVudC5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHByZXZlbnRVbmxvYWQgPSAoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KSA9PiB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIC8vIE5PVEU6IG1vZGVybiBicm93c2VycyBubyBsb25nZXIgYWxsb3cgc2hvd2luZyBhIGN1c3RvbSBtZXNzYWdlIGhlcmVcbiAgZXZlbnQucmV0dXJuVmFsdWUgPSBcIlwiO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ5dGVzVG9IZXhTdHJpbmcgPSAoYnl0ZXM6IFVpbnQ4QXJyYXkpID0+IHtcbiAgcmV0dXJuIEFycmF5LmZyb20oYnl0ZXMpXG4gICAgLm1hcCgoYnl0ZSkgPT4gYDAke2J5dGUudG9TdHJpbmcoMTYpfWAuc2xpY2UoLTIpKVxuICAgIC5qb2luKFwiXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVwZGF0ZWRUaW1lc3RhbXAgPSAoKSA9PiAoaXNUZXN0RW52KCkgPyAxIDogRGF0ZS5ub3coKSk7XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhcnJheSBvZiBvYmplY3RzIGNvbnRhaW5pbmcgYGlkYCBhdHRyaWJ1dGUsXG4gKiBvciBhcnJheSBvZiBpZHMgKHN0cmluZ3MpLCBpbnRvIGEgTWFwLCBrZXlkIGJ5IGBpZGAuXG4gKi9cbmV4cG9ydCBjb25zdCBhcnJheVRvTWFwID0gPFQgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSB8IHN0cmluZz4oXG4gIGl0ZW1zOiByZWFkb25seSBUW10sXG4pID0+IHtcbiAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgoYWNjOiBNYXA8c3RyaW5nLCBUPiwgZWxlbWVudCkgPT4ge1xuICAgIGFjYy5zZXQodHlwZW9mIGVsZW1lbnQgPT09IFwic3RyaW5nXCIgPyBlbGVtZW50IDogZWxlbWVudC5pZCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgbmV3IE1hcCgpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1Rlc3RFbnYgPSAoKSA9PlxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudj8uTk9ERV9FTlYgPT09IFwidGVzdFwiO1xuXG5leHBvcnQgY29uc3QgaXNQcm9kRW52ID0gKCkgPT5cbiAgdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIjtcblxuZXhwb3J0IGNvbnN0IHdyYXBFdmVudCA9IDxUIGV4dGVuZHMgRXZlbnQ+KG5hbWU6IEVWRU5ULCBuYXRpdmVFdmVudDogVCkgPT4ge1xuICByZXR1cm4gbmV3IEN1c3RvbUV2ZW50KG5hbWUsIHtcbiAgICBkZXRhaWw6IHtcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgIH0sXG4gICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlT2JqZWN0ID0gPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgb2JqOiBULFxuICB1cGRhdGVzOiBQYXJ0aWFsPFQ+LFxuKTogVCA9PiB7XG4gIGxldCBkaWRDaGFuZ2UgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdXBkYXRlcykge1xuICAgIGNvbnN0IHZhbHVlID0gKHVwZGF0ZXMgYXMgYW55KVtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKG9iaiBhcyBhbnkpW2tleV0gPT09IHZhbHVlICYmXG4gICAgICAgIC8vIGlmIG9iamVjdCwgYWx3YXlzIHVwZGF0ZSBiZWNhdXNlIGl0cyBhdHRycyBjb3VsZCBoYXZlIGNoYW5nZWRcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiB8fCB2YWx1ZSA9PT0gbnVsbClcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGRpZENoYW5nZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFkaWRDaGFuZ2UpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5vYmosXG4gICAgLi4udXBkYXRlcyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1ByaW1pdGl2ZSA9ICh2YWw6IGFueSkgPT4ge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbDtcbiAgcmV0dXJuIHZhbCA9PSBudWxsIHx8ICh0eXBlICE9PSBcIm9iamVjdFwiICYmIHR5cGUgIT09IFwiZnVuY3Rpb25cIik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RnJhbWUgPSAoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5zZWxmID09PSB3aW5kb3cudG9wID8gXCJ0b3BcIiA6IFwiaWZyYW1lXCI7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFwiaWZyYW1lXCI7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc1Byb21pc2VMaWtlID0gKFxuICB2YWx1ZTogYW55LFxuKTogdmFsdWUgaXMgUHJvbWlzZTxSZXNvbHV0aW9uVHlwZTx0eXBlb2YgdmFsdWU+PiA9PiB7XG4gIHJldHVybiAoXG4gICAgISF2YWx1ZSAmJlxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIFwidGhlblwiIGluIHZhbHVlICYmXG4gICAgXCJjYXRjaFwiIGluIHZhbHVlICYmXG4gICAgXCJmaW5hbGx5XCIgaW4gdmFsdWVcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBxdWVyeUZvY3VzYWJsZUVsZW1lbnRzID0gKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gY29udGFpbmVyPy5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICBcImJ1dHRvbiwgYSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGRpdlt0YWJpbmRleF0sIGxhYmVsW3RhYmluZGV4XVwiLFxuICApO1xuXG4gIHJldHVybiBmb2N1c2FibGVFbGVtZW50c1xuICAgID8gQXJyYXkuZnJvbShmb2N1c2FibGVFbGVtZW50cykuZmlsdGVyKFxuICAgICAgICAoZWxlbWVudCkgPT5cbiAgICAgICAgICBlbGVtZW50LnRhYkluZGV4ID4gLTEgJiYgIShlbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkLFxuICAgICAgKVxuICAgIDogW107XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../utils.ts\n");
3355
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"allowFullScreen\": () => (/* binding */ allowFullScreen),\n/* harmony export */ \"arrayToMap\": () => (/* binding */ arrayToMap),\n/* harmony export */ \"bytesToHexString\": () => (/* binding */ bytesToHexString),\n/* harmony export */ \"capitalizeString\": () => (/* binding */ capitalizeString),\n/* harmony export */ \"chunk\": () => (/* binding */ chunk),\n/* harmony export */ \"debounce\": () => (/* binding */ debounce),\n/* harmony export */ \"distance\": () => (/* binding */ distance),\n/* harmony export */ \"exitFullScreen\": () => (/* binding */ exitFullScreen),\n/* harmony export */ \"findIndex\": () => (/* binding */ findIndex),\n/* harmony export */ \"findLastIndex\": () => (/* binding */ findLastIndex),\n/* harmony export */ \"focusNearestParent\": () => (/* binding */ focusNearestParent),\n/* harmony export */ \"getDateTime\": () => (/* binding */ getDateTime),\n/* harmony export */ \"getFontFamilyString\": () => (/* binding */ getFontFamilyString),\n/* harmony export */ \"getFontString\": () => (/* binding */ getFontString),\n/* harmony export */ \"getFrame\": () => (/* binding */ getFrame),\n/* harmony export */ \"getGlobalCSSVariable\": () => (/* binding */ getGlobalCSSVariable),\n/* harmony export */ \"getNearestScrollableContainer\": () => (/* binding */ getNearestScrollableContainer),\n/* harmony export */ \"getShortcutKey\": () => (/* binding */ getShortcutKey),\n/* harmony export */ \"getUpdatedTimestamp\": () => (/* binding */ getUpdatedTimestamp),\n/* harmony export */ \"getVersion\": () => (/* binding */ getVersion),\n/* harmony export */ \"isFullScreen\": () => (/* binding */ isFullScreen),\n/* harmony export */ \"isInputLike\": () => (/* binding */ isInputLike),\n/* harmony export */ \"isPrimitive\": () => (/* binding */ isPrimitive),\n/* harmony export */ \"isProdEnv\": () => (/* binding */ isProdEnv),\n/* harmony export */ \"isPromiseLike\": () => (/* binding */ isPromiseLike),\n/* harmony export */ \"isRTL\": () => (/* binding */ isRTL),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isToolIcon\": () => (/* binding */ isToolIcon),\n/* harmony export */ \"isTransparent\": () => (/* binding */ isTransparent),\n/* harmony export */ \"isWritableElement\": () => (/* binding */ isWritableElement),\n/* harmony export */ \"muteFSAbortError\": () => (/* binding */ muteFSAbortError),\n/* harmony export */ \"nFormatter\": () => (/* binding */ nFormatter),\n/* harmony export */ \"preventUnload\": () => (/* binding */ preventUnload),\n/* harmony export */ \"queryFocusableElements\": () => (/* binding */ queryFocusableElements),\n/* harmony export */ \"removeSelection\": () => (/* binding */ removeSelection),\n/* harmony export */ \"resetCursor\": () => (/* binding */ resetCursor),\n/* harmony export */ \"resolvablePromise\": () => (/* binding */ resolvablePromise),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* binding */ sceneCoordsToViewportCoords),\n/* harmony export */ \"selectNode\": () => (/* binding */ selectNode),\n/* harmony export */ \"setCursor\": () => (/* binding */ setCursor),\n/* harmony export */ \"setCursorForShape\": () => (/* binding */ setCursorForShape),\n/* harmony export */ \"setDateTimeForTests\": () => (/* binding */ setDateTimeForTests),\n/* harmony export */ \"setEraserCursor\": () => (/* binding */ setEraserCursor),\n/* harmony export */ \"supportsEmoji\": () => (/* binding */ supportsEmoji),\n/* harmony export */ \"throttleRAF\": () => (/* binding */ throttleRAF),\n/* harmony export */ \"tupleToCoors\": () => (/* binding */ tupleToCoors),\n/* harmony export */ \"updateActiveTool\": () => (/* binding */ updateActiveTool),\n/* harmony export */ \"updateObject\": () => (/* binding */ updateObject),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* binding */ viewportCoordsToSceneCoords),\n/* harmony export */ \"withBatchedUpdates\": () => (/* binding */ withBatchedUpdates),\n/* harmony export */ \"withBatchedUpdatesThrottled\": () => (/* binding */ withBatchedUpdatesThrottled),\n/* harmony export */ \"wrapEvent\": () => (/* binding */ wrapEvent)\n/* harmony export */ });\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ \"../../colors.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"../../constants.ts\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys */ \"../../keys.ts\");\n\n\n\n\n\nlet mockDateTime = null;\nconst setDateTimeForTests = (dateTime) => {\n mockDateTime = dateTime;\n};\nconst getDateTime = () => {\n if (mockDateTime) {\n return mockDateTime;\n }\n const date = new Date();\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const hr = `${date.getHours()}`.padStart(2, \"0\");\n const min = `${date.getMinutes()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}-${hr}${min}`;\n};\nconst capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nconst isToolIcon = (target) => target instanceof HTMLElement && target.className.includes(\"ToolIcon\");\nconst isInputLike = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement;\nconst isWritableElement = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLInputElement &&\n (target.type === \"text\" || target.type === \"number\"));\nconst getFontFamilyString = ({ fontFamily, }) => {\n for (const [fontFamilyString, id] of Object.entries(_constants__WEBPACK_IMPORTED_MODULE_2__.FONT_FAMILY)) {\n if (id === fontFamily) {\n return `${fontFamilyString}, ${_constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT}`;\n }\n }\n return _constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT;\n};\n/** returns fontSize+fontFamily string for assignment to DOM elements */\nconst getFontString = ({ fontSize, fontFamily, }) => {\n return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;\n};\nconst debounce = (fn, timeout) => {\n let handle = 0;\n let lastArgs = null;\n const ret = (...args) => {\n lastArgs = args;\n clearTimeout(handle);\n handle = window.setTimeout(() => {\n lastArgs = null;\n fn(...args);\n }, timeout);\n };\n ret.flush = () => {\n clearTimeout(handle);\n if (lastArgs) {\n const _lastArgs = lastArgs;\n lastArgs = null;\n fn(..._lastArgs);\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n clearTimeout(handle);\n };\n return ret;\n};\n// throttle callback to execute once per animation frame\nconst throttleRAF = (fn) => {\n let handle = null;\n let lastArgs = null;\n let callback = null;\n const ret = (...args) => {\n if (false) {}\n lastArgs = args;\n callback = fn;\n if (handle === null) {\n handle = window.requestAnimationFrame(() => {\n handle = null;\n lastArgs = null;\n callback = null;\n fn(...args);\n });\n }\n };\n ret.flush = () => {\n if (handle !== null) {\n cancelAnimationFrame(handle);\n handle = null;\n }\n if (lastArgs) {\n const _lastArgs = lastArgs;\n const _callback = callback;\n lastArgs = null;\n callback = null;\n if (_callback !== null) {\n _callback(..._lastArgs);\n }\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n callback = null;\n if (handle !== null) {\n cancelAnimationFrame(handle);\n handle = null;\n }\n };\n return ret;\n};\n// https://github.com/lodash/lodash/blob/es/chunk.js\nconst chunk = (array, size) => {\n if (!array.length || size < 1) {\n return [];\n }\n let index = 0;\n let resIndex = 0;\n const result = Array(Math.ceil(array.length / size));\n while (index < array.length) {\n result[resIndex++] = array.slice(index, (index += size));\n }\n return result;\n};\nconst selectNode = (node) => {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(node);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\nconst removeSelection = () => {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n }\n};\nconst distance = (x, y) => Math.abs(x - y);\nconst updateActiveTool = (appState, data) => {\n if (data.type === \"custom\") {\n return Object.assign(Object.assign({}, appState.activeTool), { type: \"custom\", customType: data.customType });\n }\n return Object.assign(Object.assign({}, appState.activeTool), { lastActiveToolBeforeEraser: data.lastActiveToolBeforeEraser === undefined\n ? appState.activeTool.lastActiveToolBeforeEraser\n : data.lastActiveToolBeforeEraser, type: data.type, customType: null });\n};\nconst resetCursor = (canvas) => {\n if (canvas) {\n canvas.style.cursor = \"\";\n }\n};\nconst setCursor = (canvas, cursor) => {\n if (canvas) {\n canvas.style.cursor = cursor;\n }\n};\nlet eraserCanvasCache;\nlet previewDataURL;\nconst setEraserCursor = (canvas, theme) => {\n const cursorImageSizePx = 20;\n const drawCanvas = () => {\n const isDarkTheme = theme === _constants__WEBPACK_IMPORTED_MODULE_2__.THEME.DARK;\n eraserCanvasCache = document.createElement(\"canvas\");\n eraserCanvasCache.theme = theme;\n eraserCanvasCache.height = cursorImageSizePx;\n eraserCanvasCache.width = cursorImageSizePx;\n const context = eraserCanvasCache.getContext(\"2d\");\n context.lineWidth = 1;\n context.beginPath();\n context.arc(eraserCanvasCache.width / 2, eraserCanvasCache.height / 2, 5, 0, 2 * Math.PI);\n context.fillStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.black : open_color__WEBPACK_IMPORTED_MODULE_0__.white;\n context.fill();\n context.strokeStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.white : open_color__WEBPACK_IMPORTED_MODULE_0__.black;\n context.stroke();\n previewDataURL = eraserCanvasCache.toDataURL(_constants__WEBPACK_IMPORTED_MODULE_2__.MIME_TYPES.svg);\n };\n if (!eraserCanvasCache || eraserCanvasCache.theme !== theme) {\n drawCanvas();\n }\n setCursor(canvas, `url(${previewDataURL}) ${cursorImageSizePx / 2} ${cursorImageSizePx / 2}, auto`);\n};\nconst setCursorForShape = (canvas, appState) => {\n if (!canvas) {\n return;\n }\n if (appState.activeTool.type === \"selection\") {\n resetCursor(canvas);\n }\n else if (appState.activeTool.type === \"eraser\") {\n setEraserCursor(canvas, appState.theme);\n // do nothing if image tool is selected which suggests there's\n // a image-preview set as the cursor\n // Ignore custom type as well and let host decide\n }\n else if (![\"image\", \"custom\"].includes(appState.activeTool.type)) {\n canvas.style.cursor = _constants__WEBPACK_IMPORTED_MODULE_2__.CURSOR_TYPE.CROSSHAIR;\n }\n};\nconst isFullScreen = () => { var _a; return ((_a = document.fullscreenElement) === null || _a === void 0 ? void 0 : _a.nodeName) === \"HTML\"; };\nconst allowFullScreen = () => document.documentElement.requestFullscreen();\nconst exitFullScreen = () => document.exitFullscreen();\nconst getShortcutKey = (shortcut) => {\n shortcut = shortcut\n .replace(/\\bAlt\\b/i, \"Alt\")\n .replace(/\\bShift\\b/i, \"Shift\")\n .replace(/\\b(Enter|Return)\\b/i, \"Enter\")\n .replace(/\\bDel\\b/i, \"Delete\");\n if (_keys__WEBPACK_IMPORTED_MODULE_4__.isDarwin) {\n return shortcut\n .replace(/\\bCtrlOrCmd\\b/i, \"Cmd\")\n .replace(/\\bAlt\\b/i, \"Option\");\n }\n return shortcut.replace(/\\bCtrlOrCmd\\b/i, \"Ctrl\");\n};\nconst viewportCoordsToSceneCoords = ({ clientX, clientY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const invScale = 1 / zoom.value;\n const x = (clientX - offsetLeft) * invScale - scrollX;\n const y = (clientY - offsetTop) * invScale - scrollY;\n return { x, y };\n};\nconst sceneCoordsToViewportCoords = ({ sceneX, sceneY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const x = (sceneX + scrollX) * zoom.value + offsetLeft;\n const y = (sceneY + scrollY) * zoom.value + offsetTop;\n return { x, y };\n};\nconst getGlobalCSSVariable = (name) => getComputedStyle(document.documentElement).getPropertyValue(`--${name}`);\nconst RS_LTR_CHARS = \"A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\" +\n \"\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF\";\nconst RS_RTL_CHARS = \"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\";\nconst RE_RTL_CHECK = new RegExp(`^[^${RS_LTR_CHARS}]*[${RS_RTL_CHARS}]`);\n/**\n * Checks whether first directional character is RTL. Meaning whether it starts\n * with RTL characters, or indeterminate (numbers etc.) characters followed by\n * RTL.\n * See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171\n */\nconst isRTL = (text) => RE_RTL_CHECK.test(text);\nconst tupleToCoors = (xyTuple) => {\n const [x, y] = xyTuple;\n return { x, y };\n};\n/** use as a rejectionHandler to mute filesystem Abort errors */\nconst muteFSAbortError = (error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return;\n }\n throw error;\n};\nconst findIndex = (array, cb, fromIndex = 0) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length, Math.max(fromIndex, 0));\n let index = fromIndex - 1;\n while (++index < array.length) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst findLastIndex = (array, cb, fromIndex = array.length - 1) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length - 1, Math.max(fromIndex, 0));\n let index = fromIndex + 1;\n while (--index > -1) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst isTransparent = (color) => {\n const isRGBTransparent = color.length === 5 && color.substr(4, 1) === \"0\";\n const isRRGGBBTransparent = color.length === 9 && color.substr(7, 2) === \"00\";\n return (isRGBTransparent ||\n isRRGGBBTransparent ||\n color === _colors__WEBPACK_IMPORTED_MODULE_1__[\"default\"].elementBackground[0]);\n};\nconst resolvablePromise = () => {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n};\n/**\n * @param func handler taking at most single parameter (event).\n */\nconst withBatchedUpdates = (func) => ((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n});\n/**\n * barches React state updates and throttles the calls to a single call per\n * animation frame\n */\nconst withBatchedUpdatesThrottled = (func) => {\n // @ts-ignore\n return throttleRAF(((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n }));\n};\n//https://stackoverflow.com/a/9462382/8418\nconst nFormatter = (num, digits) => {\n const si = [\n { value: 1, symbol: \"b\" },\n { value: 1e3, symbol: \"k\" },\n { value: 1e6, symbol: \"M\" },\n { value: 1e9, symbol: \"G\" },\n ];\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n let index;\n for (index = si.length - 1; index > 0; index--) {\n if (num >= si[index].value) {\n break;\n }\n }\n return ((num / si[index].value).toFixed(digits).replace(rx, \"$1\") + si[index].symbol);\n};\nconst getVersion = () => {\n var _a;\n return (((_a = document.querySelector('meta[name=\"version\"]')) === null || _a === void 0 ? void 0 : _a.content) ||\n _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_VERSION);\n};\n// Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/emoji.js\nconst supportsEmoji = () => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return false;\n }\n const offset = 12;\n ctx.fillStyle = \"#f00\";\n ctx.textBaseline = \"top\";\n ctx.font = \"32px Arial\";\n // Modernizr used 🐨, but it is sort of supported on Windows 7.\n // Luckily 😀 isn't supported.\n ctx.fillText(\"😀\", 0, 0);\n return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;\n};\nconst getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent &&\n (overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nconst focusNearestParent = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent.tabIndex > -1) {\n parent.focus();\n return;\n }\n parent = parent.parentElement;\n }\n};\nconst preventUnload = (event) => {\n event.preventDefault();\n // NOTE: modern browsers no longer allow showing a custom message here\n event.returnValue = \"\";\n};\nconst bytesToHexString = (bytes) => {\n return Array.from(bytes)\n .map((byte) => `0${byte.toString(16)}`.slice(-2))\n .join(\"\");\n};\nconst getUpdatedTimestamp = () => (isTestEnv() ? 1 : Date.now());\n/**\n * Transforms array of objects containing `id` attribute,\n * or array of ids (strings), into a Map, keyd by `id`.\n */\nconst arrayToMap = (items) => {\n return items.reduce((acc, element) => {\n acc.set(typeof element === \"string\" ? element : element.id, element);\n return acc;\n }, new Map());\n};\nconst isTestEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-76a5bb0\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"test\"; };\nconst isProdEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.11.0-76a5bb0\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"production\"; };\nconst wrapEvent = (name, nativeEvent) => {\n return new CustomEvent(name, {\n detail: {\n nativeEvent,\n },\n cancelable: true,\n });\n};\nconst updateObject = (obj, updates) => {\n let didChange = false;\n for (const key in updates) {\n const value = updates[key];\n if (typeof value !== \"undefined\") {\n if (obj[key] === value &&\n // if object, always update because its attrs could have changed\n (typeof value !== \"object\" || value === null)) {\n continue;\n }\n didChange = true;\n }\n }\n if (!didChange) {\n return obj;\n }\n return Object.assign(Object.assign({}, obj), updates);\n};\nconst isPrimitive = (val) => {\n const type = typeof val;\n return val == null || (type !== \"object\" && type !== \"function\");\n};\nconst getFrame = () => {\n try {\n return window.self === window.top ? \"top\" : \"iframe\";\n }\n catch (error) {\n return \"iframe\";\n }\n};\nconst isPromiseLike = (value) => {\n return (!!value &&\n typeof value === \"object\" &&\n \"then\" in value &&\n \"catch\" in value &&\n \"finally\" in value);\n};\nconst queryFocusableElements = (container) => {\n const focusableElements = container === null || container === void 0 ? void 0 : container.querySelectorAll(\"button, a, input, select, textarea, div[tabindex], label[tabindex]\");\n return focusableElements\n ? Array.from(focusableElements).filter((element) => element.tabIndex > -1 && !element.disabled)\n : [];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUN0RDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxRQUFRLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFFSyxNQUFNLGFBQWEsR0FBRyxDQUMzQixLQUFVLEVBQ3NDLEVBQUU7SUFDbEQsT0FBTyxDQUNMLENBQUMsQ0FBQyxLQUFLO1FBQ1AsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixNQUFNLElBQUksS0FBSztRQUNmLE9BQU8sSUFBSSxLQUFLO1FBQ2hCLFNBQVMsSUFBSSxLQUFLLENBQ25CLENBQUM7QUFDSixDQUFDLENBQUM7QUFFSyxNQUFNLHNCQUFzQixHQUFHLENBQUMsU0FBNkIsRUFBRSxFQUFFO0lBQ3RFLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLGdCQUFnQixDQUNuRCxvRUFBb0UsQ0FDckUsQ0FBQztJQUVGLE9BQU8saUJBQWlCO1FBQ3RCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1YsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFFLE9BQTRCLENBQUMsUUFBUSxDQUNuRTtRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVCxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vdXRpbHMudHM/NzYzYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2MgZnJvbSBcIm9wZW4tY29sb3JcIjtcblxuaW1wb3J0IGNvbG9ycyBmcm9tIFwiLi9jb2xvcnNcIjtcbmltcG9ydCB7XG4gIENVUlNPUl9UWVBFLFxuICBERUZBVUxUX1ZFUlNJT04sXG4gIEVWRU5ULFxuICBGT05UX0ZBTUlMWSxcbiAgTUlNRV9UWVBFUyxcbiAgVEhFTUUsXG4gIFdJTkRPV1NfRU1PSklfRkFMTEJBQ0tfRk9OVCxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBGb250RmFtaWx5VmFsdWVzLCBGb250U3RyaW5nIH0gZnJvbSBcIi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgQXBwU3RhdGUsIERhdGFVUkwsIExhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyLCBab29tIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgaXNEYXJ3aW4gfSBmcm9tIFwiLi9rZXlzXCI7XG5pbXBvcnQgeyBTSEFQRVMgfSBmcm9tIFwiLi9zaGFwZXNcIjtcblxubGV0IG1vY2tEYXRlVGltZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBjb25zdCBzZXREYXRlVGltZUZvclRlc3RzID0gKGRhdGVUaW1lOiBzdHJpbmcpID0+IHtcbiAgbW9ja0RhdGVUaW1lID0gZGF0ZVRpbWU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZVRpbWUgPSAoKSA9PiB7XG4gIGlmIChtb2NrRGF0ZVRpbWUpIHtcbiAgICByZXR1cm4gbW9ja0RhdGVUaW1lO1xuICB9XG5cbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IG1vbnRoID0gYCR7ZGF0ZS5nZXRNb250aCgpICsgMX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcbiAgY29uc3QgZGF5ID0gYCR7ZGF0ZS5nZXREYXRlKCl9YC5wYWRTdGFydCgyLCBcIjBcIik7XG4gIGNvbnN0IGhyID0gYCR7ZGF0ZS5nZXRIb3VycygpfWAucGFkU3RhcnQoMiwgXCIwXCIpO1xuICBjb25zdCBtaW4gPSBgJHtkYXRlLmdldE1pbnV0ZXMoKX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblxuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9LSR7aHJ9JHttaW59YDtcbn07XG5cbmV4cG9ydCBjb25zdCBjYXBpdGFsaXplU3RyaW5nID0gKHN0cjogc3RyaW5nKSA9PlxuICBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG5cbmV4cG9ydCBjb25zdCBpc1Rvb2xJY29uID0gKFxuICB0YXJnZXQ6IEVsZW1lbnQgfCBFdmVudFRhcmdldCB8IG51bGwsXG4pOiB0YXJnZXQgaXMgSFRNTEVsZW1lbnQgPT5cbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgdGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcyhcIlRvb2xJY29uXCIpO1xuXG5leHBvcnQgY29uc3QgaXNJbnB1dExpa2UgPSAoXG4gIHRhcmdldDogRWxlbWVudCB8IEV2ZW50VGFyZ2V0IHwgbnVsbCxcbik6IHRhcmdldCBpc1xuICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gIHwgSFRNTFNlbGVjdEVsZW1lbnRcbiAgfCBIVE1MQlJFbGVtZW50XG4gIHwgSFRNTERpdkVsZW1lbnQgPT5cbiAgKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5kYXRhc2V0LnR5cGUgPT09IFwid3lzaXd5Z1wiKSB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MQlJFbGVtZW50IHx8IC8vIG5ld2xpbmUgaW4gd3lzaXd5Z1xuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQ7XG5cbmV4cG9ydCBjb25zdCBpc1dyaXRhYmxlRWxlbWVudCA9IChcbiAgdGFyZ2V0OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBudWxsLFxuKTogdGFyZ2V0IGlzXG4gIHwgSFRNTElucHV0RWxlbWVudFxuICB8IEhUTUxUZXh0QXJlYUVsZW1lbnRcbiAgfCBIVE1MQlJFbGVtZW50XG4gIHwgSFRNTERpdkVsZW1lbnQgPT5cbiAgKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5kYXRhc2V0LnR5cGUgPT09IFwid3lzaXd5Z1wiKSB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MQlJFbGVtZW50IHx8IC8vIG5ld2xpbmUgaW4gd3lzaXd5Z1xuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmXG4gICAgKHRhcmdldC50eXBlID09PSBcInRleHRcIiB8fCB0YXJnZXQudHlwZSA9PT0gXCJudW1iZXJcIikpO1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9udEZhbWlseVN0cmluZyA9ICh7XG4gIGZvbnRGYW1pbHksXG59OiB7XG4gIGZvbnRGYW1pbHk6IEZvbnRGYW1pbHlWYWx1ZXM7XG59KSA9PiB7XG4gIGZvciAoY29uc3QgW2ZvbnRGYW1pbHlTdHJpbmcsIGlkXSBvZiBPYmplY3QuZW50cmllcyhGT05UX0ZBTUlMWSkpIHtcbiAgICBpZiAoaWQgPT09IGZvbnRGYW1pbHkpIHtcbiAgICAgIHJldHVybiBgJHtmb250RmFtaWx5U3RyaW5nfSwgJHtXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlR9YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFdJTkRPV1NfRU1PSklfRkFMTEJBQ0tfRk9OVDtcbn07XG5cbi8qKiByZXR1cm5zIGZvbnRTaXplK2ZvbnRGYW1pbHkgc3RyaW5nIGZvciBhc3NpZ25tZW50IHRvIERPTSBlbGVtZW50cyAqL1xuZXhwb3J0IGNvbnN0IGdldEZvbnRTdHJpbmcgPSAoe1xuICBmb250U2l6ZSxcbiAgZm9udEZhbWlseSxcbn06IHtcbiAgZm9udFNpemU6IG51bWJlcjtcbiAgZm9udEZhbWlseTogRm9udEZhbWlseVZhbHVlcztcbn0pID0+IHtcbiAgcmV0dXJuIGAke2ZvbnRTaXplfXB4ICR7Z2V0Rm9udEZhbWlseVN0cmluZyh7IGZvbnRGYW1pbHkgfSl9YCBhcyBGb250U3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlYm91bmNlID0gPFQgZXh0ZW5kcyBhbnlbXT4oXG4gIGZuOiAoLi4uYXJnczogVCkgPT4gdm9pZCxcbiAgdGltZW91dDogbnVtYmVyLFxuKSA9PiB7XG4gIGxldCBoYW5kbGUgPSAwO1xuICBsZXQgbGFzdEFyZ3M6IFQgfCBudWxsID0gbnVsbDtcbiAgY29uc3QgcmV0ID0gKC4uLmFyZ3M6IFQpID0+IHtcbiAgICBsYXN0QXJncyA9IGFyZ3M7XG4gICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgaGFuZGxlID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgICAgZm4oLi4uYXJncyk7XG4gICAgfSwgdGltZW91dCk7XG4gIH07XG4gIHJldC5mbHVzaCA9ICgpID0+IHtcbiAgICBjbGVhclRpbWVvdXQoaGFuZGxlKTtcbiAgICBpZiAobGFzdEFyZ3MpIHtcbiAgICAgIGNvbnN0IF9sYXN0QXJncyA9IGxhc3RBcmdzO1xuICAgICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgICAgZm4oLi4uX2xhc3RBcmdzKTtcbiAgICB9XG4gIH07XG4gIHJldC5jYW5jZWwgPSAoKSA9PiB7XG4gICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgIGNsZWFyVGltZW91dChoYW5kbGUpO1xuICB9O1xuICByZXR1cm4gcmV0O1xufTtcblxuLy8gdGhyb3R0bGUgY2FsbGJhY2sgdG8gZXhlY3V0ZSBvbmNlIHBlciBhbmltYXRpb24gZnJhbWVcbmV4cG9ydCBjb25zdCB0aHJvdHRsZVJBRiA9IDxUIGV4dGVuZHMgYW55W10+KGZuOiAoLi4uYXJnczogVCkgPT4gdm9pZCkgPT4ge1xuICBsZXQgaGFuZGxlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgbGV0IGxhc3RBcmdzOiBUIHwgbnVsbCA9IG51bGw7XG4gIGxldCBjYWxsYmFjazogKCguLi5hcmdzOiBUKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBjb25zdCByZXQgPSAoLi4uYXJnczogVCkgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCIpIHtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGFyZ3M7XG4gICAgY2FsbGJhY2sgPSBmbjtcbiAgICBpZiAoaGFuZGxlID09PSBudWxsKSB7XG4gICAgICBoYW5kbGUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaGFuZGxlID0gbnVsbDtcbiAgICAgICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG4gICAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICByZXQuZmx1c2ggPSAoKSA9PiB7XG4gICAgaWYgKGhhbmRsZSAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaGFuZGxlKTtcbiAgICAgIGhhbmRsZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChsYXN0QXJncykge1xuICAgICAgY29uc3QgX2xhc3RBcmdzID0gbGFzdEFyZ3M7XG4gICAgICBjb25zdCBfY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGNhbGxiYWNrID0gbnVsbDtcbiAgICAgIGlmIChfY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgX2NhbGxiYWNrKC4uLl9sYXN0QXJncyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICByZXQuY2FuY2VsID0gKCkgPT4ge1xuICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICBjYWxsYmFjayA9IG51bGw7XG4gICAgaWYgKGhhbmRsZSAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaGFuZGxlKTtcbiAgICAgIGhhbmRsZSA9IG51bGw7XG4gICAgfVxuICB9O1xuICByZXR1cm4gcmV0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi9lcy9jaHVuay5qc1xuZXhwb3J0IGNvbnN0IGNodW5rID0gPFQgZXh0ZW5kcyBhbnk+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBzaXplOiBudW1iZXIsXG4pOiBUW11bXSA9PiB7XG4gIGlmICghYXJyYXkubGVuZ3RoIHx8IHNpemUgPCAxKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGxldCBpbmRleCA9IDA7XG4gIGxldCByZXNJbmRleCA9IDA7XG4gIGNvbnN0IHJlc3VsdCA9IEFycmF5KE1hdGguY2VpbChhcnJheS5sZW5ndGggLyBzaXplKSk7XG4gIHdoaWxlIChpbmRleCA8IGFycmF5Lmxlbmd0aCkge1xuICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGFycmF5LnNsaWNlKGluZGV4LCAoaW5kZXggKz0gc2l6ZSkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Tm9kZSA9IChub2RlOiBFbGVtZW50KSA9PiB7XG4gIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgaWYgKHNlbGVjdGlvbikge1xuICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMobm9kZSk7XG4gICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWxlY3Rpb24gPSAoKSA9PiB7XG4gIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgaWYgKHNlbGVjdGlvbikge1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGRpc3RhbmNlID0gKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiBNYXRoLmFicyh4IC0geSk7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVBY3RpdmVUb29sID0gKFxuICBhcHBTdGF0ZTogUGljazxBcHBTdGF0ZSwgXCJhY3RpdmVUb29sXCI+LFxuICBkYXRhOiAoXG4gICAgfCB7IHR5cGU6IHR5cGVvZiBTSEFQRVNbbnVtYmVyXVtcInZhbHVlXCJdIHwgXCJlcmFzZXJcIiB9XG4gICAgfCB7IHR5cGU6IFwiY3VzdG9tXCI7IGN1c3RvbVR5cGU6IHN0cmluZyB9XG4gICkgJiB7IGxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyPzogTGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXIgfSxcbik6IEFwcFN0YXRlW1wiYWN0aXZlVG9vbFwiXSA9PiB7XG4gIGlmIChkYXRhLnR5cGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYXBwU3RhdGUuYWN0aXZlVG9vbCxcbiAgICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgICBjdXN0b21UeXBlOiBkYXRhLmN1c3RvbVR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYXBwU3RhdGUuYWN0aXZlVG9vbCxcbiAgICBsYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcjpcbiAgICAgIGRhdGEubGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXIgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IGFwcFN0YXRlLmFjdGl2ZVRvb2wubGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXJcbiAgICAgICAgOiBkYXRhLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyLFxuICAgIHR5cGU6IGRhdGEudHlwZSxcbiAgICBjdXN0b21UeXBlOiBudWxsLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc2V0Q3Vyc29yID0gKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsKSA9PiB7XG4gIGlmIChjYW52YXMpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gXCJcIjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNldEN1cnNvciA9IChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCwgY3Vyc29yOiBzdHJpbmcpID0+IHtcbiAgaWYgKGNhbnZhcykge1xuICAgIGNhbnZhcy5zdHlsZS5jdXJzb3IgPSBjdXJzb3I7XG4gIH1cbn07XG5cbmxldCBlcmFzZXJDYW52YXNDYWNoZTogYW55O1xubGV0IHByZXZpZXdEYXRhVVJMOiBzdHJpbmc7XG5leHBvcnQgY29uc3Qgc2V0RXJhc2VyQ3Vyc29yID0gKFxuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCxcbiAgdGhlbWU6IEFwcFN0YXRlW1widGhlbWVcIl0sXG4pID0+IHtcbiAgY29uc3QgY3Vyc29ySW1hZ2VTaXplUHggPSAyMDtcblxuICBjb25zdCBkcmF3Q2FudmFzID0gKCkgPT4ge1xuICAgIGNvbnN0IGlzRGFya1RoZW1lID0gdGhlbWUgPT09IFRIRU1FLkRBUks7XG4gICAgZXJhc2VyQ2FudmFzQ2FjaGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLnRoZW1lID0gdGhlbWU7XG4gICAgZXJhc2VyQ2FudmFzQ2FjaGUuaGVpZ2h0ID0gY3Vyc29ySW1hZ2VTaXplUHg7XG4gICAgZXJhc2VyQ2FudmFzQ2FjaGUud2lkdGggPSBjdXJzb3JJbWFnZVNpemVQeDtcbiAgICBjb25zdCBjb250ZXh0ID0gZXJhc2VyQ2FudmFzQ2FjaGUuZ2V0Q29udGV4dChcIjJkXCIpITtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDE7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0LmFyYyhcbiAgICAgIGVyYXNlckNhbnZhc0NhY2hlLndpZHRoIC8gMixcbiAgICAgIGVyYXNlckNhbnZhc0NhY2hlLmhlaWdodCAvIDIsXG4gICAgICA1LFxuICAgICAgMCxcbiAgICAgIDIgKiBNYXRoLlBJLFxuICAgICk7XG4gICAgY29udGV4dC5maWxsU3R5bGUgPSBpc0RhcmtUaGVtZSA/IG9jLmJsYWNrIDogb2Mud2hpdGU7XG4gICAgY29udGV4dC5maWxsKCk7XG4gICAgY29udGV4dC5zdHJva2VTdHlsZSA9IGlzRGFya1RoZW1lID8gb2Mud2hpdGUgOiBvYy5ibGFjaztcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xuICAgIHByZXZpZXdEYXRhVVJMID0gZXJhc2VyQ2FudmFzQ2FjaGUudG9EYXRhVVJMKE1JTUVfVFlQRVMuc3ZnKSBhcyBEYXRhVVJMO1xuICB9O1xuICBpZiAoIWVyYXNlckNhbnZhc0NhY2hlIHx8IGVyYXNlckNhbnZhc0NhY2hlLnRoZW1lICE9PSB0aGVtZSkge1xuICAgIGRyYXdDYW52YXMoKTtcbiAgfVxuXG4gIHNldEN1cnNvcihcbiAgICBjYW52YXMsXG4gICAgYHVybCgke3ByZXZpZXdEYXRhVVJMfSkgJHtjdXJzb3JJbWFnZVNpemVQeCAvIDJ9ICR7XG4gICAgICBjdXJzb3JJbWFnZVNpemVQeCAvIDJcbiAgICB9LCBhdXRvYCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDdXJzb3JGb3JTaGFwZSA9IChcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsXG4gIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbikgPT4ge1xuICBpZiAoIWNhbnZhcykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoYXBwU3RhdGUuYWN0aXZlVG9vbC50eXBlID09PSBcInNlbGVjdGlvblwiKSB7XG4gICAgcmVzZXRDdXJzb3IoY2FudmFzKTtcbiAgfSBlbHNlIGlmIChhcHBTdGF0ZS5hY3RpdmVUb29sLnR5cGUgPT09IFwiZXJhc2VyXCIpIHtcbiAgICBzZXRFcmFzZXJDdXJzb3IoY2FudmFzLCBhcHBTdGF0ZS50aGVtZSk7XG4gICAgLy8gZG8gbm90aGluZyBpZiBpbWFnZSB0b29sIGlzIHNlbGVjdGVkIHdoaWNoIHN1Z2dlc3RzIHRoZXJlJ3NcbiAgICAvLyBhIGltYWdlLXByZXZpZXcgc2V0IGFzIHRoZSBjdXJzb3JcbiAgICAvLyBJZ25vcmUgY3VzdG9tIHR5cGUgYXMgd2VsbCBhbmQgbGV0IGhvc3QgZGVjaWRlXG4gIH0gZWxzZSBpZiAoIVtcImltYWdlXCIsIFwiY3VzdG9tXCJdLmluY2x1ZGVzKGFwcFN0YXRlLmFjdGl2ZVRvb2wudHlwZSkpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gQ1VSU09SX1RZUEUuQ1JPU1NIQUlSO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNGdWxsU2NyZWVuID0gKCkgPT5cbiAgZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQ/Lm5vZGVOYW1lID09PSBcIkhUTUxcIjtcblxuZXhwb3J0IGNvbnN0IGFsbG93RnVsbFNjcmVlbiA9ICgpID0+XG4gIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZXF1ZXN0RnVsbHNjcmVlbigpO1xuXG5leHBvcnQgY29uc3QgZXhpdEZ1bGxTY3JlZW4gPSAoKSA9PiBkb2N1bWVudC5leGl0RnVsbHNjcmVlbigpO1xuXG5leHBvcnQgY29uc3QgZ2V0U2hvcnRjdXRLZXkgPSAoc2hvcnRjdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHNob3J0Y3V0ID0gc2hvcnRjdXRcbiAgICAucmVwbGFjZSgvXFxiQWx0XFxiL2ksIFwiQWx0XCIpXG4gICAgLnJlcGxhY2UoL1xcYlNoaWZ0XFxiL2ksIFwiU2hpZnRcIilcbiAgICAucmVwbGFjZSgvXFxiKEVudGVyfFJldHVybilcXGIvaSwgXCJFbnRlclwiKVxuICAgIC5yZXBsYWNlKC9cXGJEZWxcXGIvaSwgXCJEZWxldGVcIik7XG5cbiAgaWYgKGlzRGFyd2luKSB7XG4gICAgcmV0dXJuIHNob3J0Y3V0XG4gICAgICAucmVwbGFjZSgvXFxiQ3RybE9yQ21kXFxiL2ksIFwiQ21kXCIpXG4gICAgICAucmVwbGFjZSgvXFxiQWx0XFxiL2ksIFwiT3B0aW9uXCIpO1xuICB9XG4gIHJldHVybiBzaG9ydGN1dC5yZXBsYWNlKC9cXGJDdHJsT3JDbWRcXGIvaSwgXCJDdHJsXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IHZpZXdwb3J0Q29vcmRzVG9TY2VuZUNvb3JkcyA9IChcbiAgeyBjbGllbnRYLCBjbGllbnRZIH06IHsgY2xpZW50WDogbnVtYmVyOyBjbGllbnRZOiBudW1iZXIgfSxcbiAge1xuICAgIHpvb20sXG4gICAgb2Zmc2V0TGVmdCxcbiAgICBvZmZzZXRUb3AsXG4gICAgc2Nyb2xsWCxcbiAgICBzY3JvbGxZLFxuICB9OiB7XG4gICAgem9vbTogWm9vbTtcbiAgICBvZmZzZXRMZWZ0OiBudW1iZXI7XG4gICAgb2Zmc2V0VG9wOiBudW1iZXI7XG4gICAgc2Nyb2xsWDogbnVtYmVyO1xuICAgIHNjcm9sbFk6IG51bWJlcjtcbiAgfSxcbikgPT4ge1xuICBjb25zdCBpbnZTY2FsZSA9IDEgLyB6b29tLnZhbHVlO1xuICBjb25zdCB4ID0gKGNsaWVudFggLSBvZmZzZXRMZWZ0KSAqIGludlNjYWxlIC0gc2Nyb2xsWDtcbiAgY29uc3QgeSA9IChjbGllbnRZIC0gb2Zmc2V0VG9wKSAqIGludlNjYWxlIC0gc2Nyb2xsWTtcblxuICByZXR1cm4geyB4LCB5IH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2NlbmVDb29yZHNUb1ZpZXdwb3J0Q29vcmRzID0gKFxuICB7IHNjZW5lWCwgc2NlbmVZIH06IHsgc2NlbmVYOiBudW1iZXI7IHNjZW5lWTogbnVtYmVyIH0sXG4gIHtcbiAgICB6b29tLFxuICAgIG9mZnNldExlZnQsXG4gICAgb2Zmc2V0VG9wLFxuICAgIHNjcm9sbFgsXG4gICAgc2Nyb2xsWSxcbiAgfToge1xuICAgIHpvb206IFpvb207XG4gICAgb2Zmc2V0TGVmdDogbnVtYmVyO1xuICAgIG9mZnNldFRvcDogbnVtYmVyO1xuICAgIHNjcm9sbFg6IG51bWJlcjtcbiAgICBzY3JvbGxZOiBudW1iZXI7XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgeCA9IChzY2VuZVggKyBzY3JvbGxYKSAqIHpvb20udmFsdWUgKyBvZmZzZXRMZWZ0O1xuICBjb25zdCB5ID0gKHNjZW5lWSArIHNjcm9sbFkpICogem9vbS52YWx1ZSArIG9mZnNldFRvcDtcbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdsb2JhbENTU1ZhcmlhYmxlID0gKG5hbWU6IHN0cmluZykgPT5cbiAgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoYC0tJHtuYW1lfWApO1xuXG5jb25zdCBSU19MVFJfQ0hBUlMgPVxuICBcIkEtWmEtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJCOFxcdTAzMDAtXFx1MDU5MFxcdTA4MDAtXFx1MUZGRlwiICtcbiAgXCJcXHUyQzAwLVxcdUZCMUNcXHVGREZFLVxcdUZFNkZcXHVGRUZELVxcdUZGRkZcIjtcbmNvbnN0IFJTX1JUTF9DSEFSUyA9IFwiXFx1MDU5MS1cXHUwN0ZGXFx1RkIxRC1cXHVGREZEXFx1RkU3MC1cXHVGRUZDXCI7XG5jb25zdCBSRV9SVExfQ0hFQ0sgPSBuZXcgUmVnRXhwKGBeW14ke1JTX0xUUl9DSEFSU31dKlske1JTX1JUTF9DSEFSU31dYCk7XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGZpcnN0IGRpcmVjdGlvbmFsIGNoYXJhY3RlciBpcyBSVEwuIE1lYW5pbmcgd2hldGhlciBpdCBzdGFydHNcbiAqICB3aXRoIFJUTCBjaGFyYWN0ZXJzLCBvciBpbmRldGVybWluYXRlIChudW1iZXJzIGV0Yy4pIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnlcbiAqICBSVEwuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy9wdWxsLzE3MjIjZGlzY3Vzc2lvbl9yNDM2MzQwMTcxXG4gKi9cbmV4cG9ydCBjb25zdCBpc1JUTCA9ICh0ZXh0OiBzdHJpbmcpID0+IFJFX1JUTF9DSEVDSy50ZXN0KHRleHQpO1xuXG5leHBvcnQgY29uc3QgdHVwbGVUb0Nvb3JzID0gKFxuICB4eVR1cGxlOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdLFxuKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9ID0+IHtcbiAgY29uc3QgW3gsIHldID0geHlUdXBsZTtcbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuLyoqIHVzZSBhcyBhIHJlamVjdGlvbkhhbmRsZXIgdG8gbXV0ZSBmaWxlc3lzdGVtIEFib3J0IGVycm9ycyAqL1xuZXhwb3J0IGNvbnN0IG11dGVGU0Fib3J0RXJyb3IgPSAoZXJyb3I/OiBFcnJvcikgPT4ge1xuICBpZiAoZXJyb3I/Lm5hbWUgPT09IFwiQWJvcnRFcnJvclwiKSB7XG4gICAgY29uc29sZS53YXJuKGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdGhyb3cgZXJyb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEluZGV4ID0gPFQ+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBjYjogKGVsZW1lbnQ6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IGJvb2xlYW4sXG4gIGZyb21JbmRleDogbnVtYmVyID0gMCxcbikgPT4ge1xuICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgIGZyb21JbmRleCA9IGFycmF5Lmxlbmd0aCArIGZyb21JbmRleDtcbiAgfVxuICBmcm9tSW5kZXggPSBNYXRoLm1pbihhcnJheS5sZW5ndGgsIE1hdGgubWF4KGZyb21JbmRleCwgMCkpO1xuICBsZXQgaW5kZXggPSBmcm9tSW5kZXggLSAxO1xuICB3aGlsZSAoKytpbmRleCA8IGFycmF5Lmxlbmd0aCkge1xuICAgIGlmIChjYihhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRMYXN0SW5kZXggPSA8VD4oXG4gIGFycmF5OiByZWFkb25seSBUW10sXG4gIGNiOiAoZWxlbWVudDogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IHJlYWRvbmx5IFRbXSkgPT4gYm9vbGVhbixcbiAgZnJvbUluZGV4OiBudW1iZXIgPSBhcnJheS5sZW5ndGggLSAxLFxuKSA9PiB7XG4gIGlmIChmcm9tSW5kZXggPCAwKSB7XG4gICAgZnJvbUluZGV4ID0gYXJyYXkubGVuZ3RoICsgZnJvbUluZGV4O1xuICB9XG4gIGZyb21JbmRleCA9IE1hdGgubWluKGFycmF5Lmxlbmd0aCAtIDEsIE1hdGgubWF4KGZyb21JbmRleCwgMCkpO1xuICBsZXQgaW5kZXggPSBmcm9tSW5kZXggKyAxO1xuICB3aGlsZSAoLS1pbmRleCA+IC0xKSB7XG4gICAgaWYgKGNiKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUcmFuc3BhcmVudCA9IChjb2xvcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGlzUkdCVHJhbnNwYXJlbnQgPSBjb2xvci5sZW5ndGggPT09IDUgJiYgY29sb3Iuc3Vic3RyKDQsIDEpID09PSBcIjBcIjtcbiAgY29uc3QgaXNSUkdHQkJUcmFuc3BhcmVudCA9IGNvbG9yLmxlbmd0aCA9PT0gOSAmJiBjb2xvci5zdWJzdHIoNywgMikgPT09IFwiMDBcIjtcbiAgcmV0dXJuIChcbiAgICBpc1JHQlRyYW5zcGFyZW50IHx8XG4gICAgaXNSUkdHQkJUcmFuc3BhcmVudCB8fFxuICAgIGNvbG9yID09PSBjb2xvcnMuZWxlbWVudEJhY2tncm91bmRbMF1cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmFibGVQcm9taXNlPFQ+ID0gUHJvbWlzZTxUPiAmIHtcbiAgcmVzb2x2ZTogW1RdIGV4dGVuZHMgW3VuZGVmaW5lZF0gPyAodmFsdWU/OiBUKSA9PiB2b2lkIDogKHZhbHVlOiBUKSA9PiB2b2lkO1xuICByZWplY3Q6IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmFibGVQcm9taXNlID0gPFQ+KCkgPT4ge1xuICBsZXQgcmVzb2x2ZSE6IGFueTtcbiAgbGV0IHJlamVjdCE6IGFueTtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChfcmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICByZWplY3QgPSBfcmVqZWN0O1xuICB9KTtcbiAgKHByb21pc2UgYXMgYW55KS5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgKHByb21pc2UgYXMgYW55KS5yZWplY3QgPSByZWplY3Q7XG4gIHJldHVybiBwcm9taXNlIGFzIFJlc29sdmFibGVQcm9taXNlPFQ+O1xufTtcblxuLyoqXG4gKiBAcGFyYW0gZnVuYyBoYW5kbGVyIHRha2luZyBhdCBtb3N0IHNpbmdsZSBwYXJhbWV0ZXIgKGV2ZW50KS5cbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhCYXRjaGVkVXBkYXRlcyA9IDxcbiAgVEZ1bmN0aW9uIGV4dGVuZHMgKChldmVudDogYW55KSA9PiB2b2lkKSB8ICgoKSA9PiB2b2lkKSxcbj4oXG4gIGZ1bmM6IFBhcmFtZXRlcnM8VEZ1bmN0aW9uPltcImxlbmd0aFwiXSBleHRlbmRzIDAgfCAxID8gVEZ1bmN0aW9uIDogbmV2ZXIsXG4pID0+XG4gICgoZXZlbnQpID0+IHtcbiAgICB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyhmdW5jIGFzIFRGdW5jdGlvbiwgZXZlbnQpO1xuICB9KSBhcyBURnVuY3Rpb247XG5cbi8qKlxuICogYmFyY2hlcyBSZWFjdCBzdGF0ZSB1cGRhdGVzIGFuZCB0aHJvdHRsZXMgdGhlIGNhbGxzIHRvIGEgc2luZ2xlIGNhbGwgcGVyXG4gKiBhbmltYXRpb24gZnJhbWVcbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhCYXRjaGVkVXBkYXRlc1Rocm90dGxlZCA9IDxcbiAgVEZ1bmN0aW9uIGV4dGVuZHMgKChldmVudDogYW55KSA9PiB2b2lkKSB8ICgoKSA9PiB2b2lkKSxcbj4oXG4gIGZ1bmM6IFBhcmFtZXRlcnM8VEZ1bmN0aW9uPltcImxlbmd0aFwiXSBleHRlbmRzIDAgfCAxID8gVEZ1bmN0aW9uIDogbmV2ZXIsXG4pID0+IHtcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gdGhyb3R0bGVSQUY8UGFyYW1ldGVyczxURnVuY3Rpb24+PigoKGV2ZW50KSA9PiB7XG4gICAgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZnVuYywgZXZlbnQpO1xuICB9KSBhcyBURnVuY3Rpb24pO1xufTtcblxuLy9odHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvOTQ2MjM4Mi84NDE4XG5leHBvcnQgY29uc3QgbkZvcm1hdHRlciA9IChudW06IG51bWJlciwgZGlnaXRzOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzaSA9IFtcbiAgICB7IHZhbHVlOiAxLCBzeW1ib2w6IFwiYlwiIH0sXG4gICAgeyB2YWx1ZTogMWUzLCBzeW1ib2w6IFwia1wiIH0sXG4gICAgeyB2YWx1ZTogMWU2LCBzeW1ib2w6IFwiTVwiIH0sXG4gICAgeyB2YWx1ZTogMWU5LCBzeW1ib2w6IFwiR1wiIH0sXG4gIF07XG4gIGNvbnN0IHJ4ID0gL1xcLjArJHwoXFwuWzAtOV0qWzEtOV0pMCskLztcbiAgbGV0IGluZGV4O1xuICBmb3IgKGluZGV4ID0gc2kubGVuZ3RoIC0gMTsgaW5kZXggPiAwOyBpbmRleC0tKSB7XG4gICAgaWYgKG51bSA+PSBzaVtpbmRleF0udmFsdWUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gKFxuICAgIChudW0gLyBzaVtpbmRleF0udmFsdWUpLnRvRml4ZWQoZGlnaXRzKS5yZXBsYWNlKHJ4LCBcIiQxXCIpICsgc2lbaW5kZXhdLnN5bWJvbFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFZlcnNpb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MTWV0YUVsZW1lbnQ+KCdtZXRhW25hbWU9XCJ2ZXJzaW9uXCJdJyk/LmNvbnRlbnQgfHxcbiAgICBERUZBVUxUX1ZFUlNJT05cbiAgKTtcbn07XG5cbi8vIEFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9ibG9iL21hc3Rlci9mZWF0dXJlLWRldGVjdHMvZW1vamkuanNcbmV4cG9ydCBjb25zdCBzdXBwb3J0c0Vtb2ppID0gKCkgPT4ge1xuICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICBpZiAoIWN0eCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBvZmZzZXQgPSAxMjtcbiAgY3R4LmZpbGxTdHlsZSA9IFwiI2YwMFwiO1xuICBjdHgudGV4dEJhc2VsaW5lID0gXCJ0b3BcIjtcbiAgY3R4LmZvbnQgPSBcIjMycHggQXJpYWxcIjtcbiAgLy8gTW9kZXJuaXpyIHVzZWQg8J+QqCwgYnV0IGl0IGlzIHNvcnQgb2Ygc3VwcG9ydGVkIG9uIFdpbmRvd3MgNy5cbiAgLy8gTHVja2lseSDwn5iAIGlzbid0IHN1cHBvcnRlZC5cbiAgY3R4LmZpbGxUZXh0KFwi8J+YgFwiLCAwLCAwKTtcbiAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEob2Zmc2V0LCBvZmZzZXQsIDEsIDEpLmRhdGFbMF0gIT09IDA7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TmVhcmVzdFNjcm9sbGFibGVDb250YWluZXIgPSAoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuKTogSFRNTEVsZW1lbnQgfCBEb2N1bWVudCA9PiB7XG4gIGxldCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gIHdoaWxlIChwYXJlbnQpIHtcbiAgICBpZiAocGFyZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgfVxuICAgIGNvbnN0IHsgb3ZlcmZsb3dZIH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpO1xuICAgIGNvbnN0IGhhc1Njcm9sbGFibGVDb250ZW50ID0gcGFyZW50LnNjcm9sbEhlaWdodCA+IHBhcmVudC5jbGllbnRIZWlnaHQ7XG4gICAgaWYgKFxuICAgICAgaGFzU2Nyb2xsYWJsZUNvbnRlbnQgJiZcbiAgICAgIChvdmVyZmxvd1kgPT09IFwiYXV0b1wiIHx8XG4gICAgICAgIG92ZXJmbG93WSA9PT0gXCJzY3JvbGxcIiB8fFxuICAgICAgICBvdmVyZmxvd1kgPT09IFwib3ZlcmxheVwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9XG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cbiAgcmV0dXJuIGRvY3VtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvY3VzTmVhcmVzdFBhcmVudCA9IChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSA9PiB7XG4gIGxldCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gIHdoaWxlIChwYXJlbnQpIHtcbiAgICBpZiAocGFyZW50LnRhYkluZGV4ID4gLTEpIHtcbiAgICAgIHBhcmVudC5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHByZXZlbnRVbmxvYWQgPSAoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KSA9PiB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIC8vIE5PVEU6IG1vZGVybiBicm93c2VycyBubyBsb25nZXIgYWxsb3cgc2hvd2luZyBhIGN1c3RvbSBtZXNzYWdlIGhlcmVcbiAgZXZlbnQucmV0dXJuVmFsdWUgPSBcIlwiO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ5dGVzVG9IZXhTdHJpbmcgPSAoYnl0ZXM6IFVpbnQ4QXJyYXkpID0+IHtcbiAgcmV0dXJuIEFycmF5LmZyb20oYnl0ZXMpXG4gICAgLm1hcCgoYnl0ZSkgPT4gYDAke2J5dGUudG9TdHJpbmcoMTYpfWAuc2xpY2UoLTIpKVxuICAgIC5qb2luKFwiXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVwZGF0ZWRUaW1lc3RhbXAgPSAoKSA9PiAoaXNUZXN0RW52KCkgPyAxIDogRGF0ZS5ub3coKSk7XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhcnJheSBvZiBvYmplY3RzIGNvbnRhaW5pbmcgYGlkYCBhdHRyaWJ1dGUsXG4gKiBvciBhcnJheSBvZiBpZHMgKHN0cmluZ3MpLCBpbnRvIGEgTWFwLCBrZXlkIGJ5IGBpZGAuXG4gKi9cbmV4cG9ydCBjb25zdCBhcnJheVRvTWFwID0gPFQgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSB8IHN0cmluZz4oXG4gIGl0ZW1zOiByZWFkb25seSBUW10sXG4pID0+IHtcbiAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgoYWNjOiBNYXA8c3RyaW5nLCBUPiwgZWxlbWVudCkgPT4ge1xuICAgIGFjYy5zZXQodHlwZW9mIGVsZW1lbnQgPT09IFwic3RyaW5nXCIgPyBlbGVtZW50IDogZWxlbWVudC5pZCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgbmV3IE1hcCgpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1Rlc3RFbnYgPSAoKSA9PlxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudj8uTk9ERV9FTlYgPT09IFwidGVzdFwiO1xuXG5leHBvcnQgY29uc3QgaXNQcm9kRW52ID0gKCkgPT5cbiAgdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIjtcblxuZXhwb3J0IGNvbnN0IHdyYXBFdmVudCA9IDxUIGV4dGVuZHMgRXZlbnQ+KG5hbWU6IEVWRU5ULCBuYXRpdmVFdmVudDogVCkgPT4ge1xuICByZXR1cm4gbmV3IEN1c3RvbUV2ZW50KG5hbWUsIHtcbiAgICBkZXRhaWw6IHtcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgIH0sXG4gICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlT2JqZWN0ID0gPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgb2JqOiBULFxuICB1cGRhdGVzOiBQYXJ0aWFsPFQ+LFxuKTogVCA9PiB7XG4gIGxldCBkaWRDaGFuZ2UgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdXBkYXRlcykge1xuICAgIGNvbnN0IHZhbHVlID0gKHVwZGF0ZXMgYXMgYW55KVtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKG9iaiBhcyBhbnkpW2tleV0gPT09IHZhbHVlICYmXG4gICAgICAgIC8vIGlmIG9iamVjdCwgYWx3YXlzIHVwZGF0ZSBiZWNhdXNlIGl0cyBhdHRycyBjb3VsZCBoYXZlIGNoYW5nZWRcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiB8fCB2YWx1ZSA9PT0gbnVsbClcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGRpZENoYW5nZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFkaWRDaGFuZ2UpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5vYmosXG4gICAgLi4udXBkYXRlcyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1ByaW1pdGl2ZSA9ICh2YWw6IGFueSkgPT4ge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbDtcbiAgcmV0dXJuIHZhbCA9PSBudWxsIHx8ICh0eXBlICE9PSBcIm9iamVjdFwiICYmIHR5cGUgIT09IFwiZnVuY3Rpb25cIik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RnJhbWUgPSAoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5zZWxmID09PSB3aW5kb3cudG9wID8gXCJ0b3BcIiA6IFwiaWZyYW1lXCI7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFwiaWZyYW1lXCI7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc1Byb21pc2VMaWtlID0gKFxuICB2YWx1ZTogYW55LFxuKTogdmFsdWUgaXMgUHJvbWlzZTxSZXNvbHV0aW9uVHlwZTx0eXBlb2YgdmFsdWU+PiA9PiB7XG4gIHJldHVybiAoXG4gICAgISF2YWx1ZSAmJlxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIFwidGhlblwiIGluIHZhbHVlICYmXG4gICAgXCJjYXRjaFwiIGluIHZhbHVlICYmXG4gICAgXCJmaW5hbGx5XCIgaW4gdmFsdWVcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBxdWVyeUZvY3VzYWJsZUVsZW1lbnRzID0gKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gY29udGFpbmVyPy5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICBcImJ1dHRvbiwgYSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGRpdlt0YWJpbmRleF0sIGxhYmVsW3RhYmluZGV4XVwiLFxuICApO1xuXG4gIHJldHVybiBmb2N1c2FibGVFbGVtZW50c1xuICAgID8gQXJyYXkuZnJvbShmb2N1c2FibGVFbGVtZW50cykuZmlsdGVyKFxuICAgICAgICAoZWxlbWVudCkgPT5cbiAgICAgICAgICBlbGVtZW50LnRhYkluZGV4ID4gLTEgJiYgIShlbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkLFxuICAgICAgKVxuICAgIDogW107XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../utils.ts\n");
3356
3356
 
3357
3357
  /***/ }),
3358
3358