/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/@bpmn-io/align-to-origin/lib/align-to-origin.js": /*!**********************************************************************!*\ !*** ./node_modules/@bpmn-io/align-to-origin/lib/align-to-origin.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AlignToOrigin)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar DEFAULT_OPTIONS = {\n offset: {\n x: 150,\n y: 75\n },\n tolerance: 50,\n alignOnSave: true\n};\n\nvar HIGHER_PRIORITY = 1250;\n\n\n/**\n * Moves diagram contents to the origin + offset,\n * optionally upon diagram save.\n *\n * @param {Object} config\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {CommandStack} commandStack\n * @param {Canvas} canvas\n * @param {Modeling} modeling\n */\nfunction AlignToOrigin(config, injector, eventBus, commandStack, canvas, modeling) {\n\n /**\n * Return actual config with defaults applied.\n */\n function applyDefaults(config) {\n\n var c = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, DEFAULT_OPTIONS, config || {});\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(c.offset)) {\n c.offset = {\n x: c.offset,\n y: c.offset\n };\n }\n\n return c;\n }\n\n config = applyDefaults(config);\n\n /**\n * Compute adjustment given the specified diagram origin.\n *\n * @param {Point} origin\n *\n * @return {Point} adjustment\n */\n function computeAdjustment(origin, config) {\n\n var offset = config.offset,\n tolerance = config.tolerance;\n\n var adjustment = {};\n\n [ 'x', 'y' ].forEach(function(axis) {\n\n var delta = -origin[axis] + offset[axis];\n\n var gridSnapping = injector.get('gridSnapping', false);\n\n if (gridSnapping) {\n delta = quantize(delta, gridSnapping.getGridSpacing());\n }\n\n adjustment[axis] = Math.abs(delta) < tolerance ? 0 : delta;\n });\n\n return adjustment;\n }\n\n\n /**\n * Align the diagram content to the origin.\n *\n * @param {Object} options\n */\n function align() {\n\n var bounds = canvas.viewbox().inner;\n\n var elements = canvas.getRootElement().children;\n\n if (!elements.length) {\n return;\n }\n\n var delta = computeAdjustment(bounds, config);\n\n if (delta.x === 0 && delta.y === 0) {\n return;\n }\n\n commandStack.execute('elements.alignToOrigin', {\n elements: elements,\n delta: delta\n });\n }\n\n\n /**\n * Setup align on save functionality\n */\n function bindOnSave() {\n\n // nested editors expose _parent to access the\n // save responsible entity\n var parent = injector.get('_parent', false);\n\n var localEvents = eventBus;\n\n var parentEvents = parent && parent._eventBus;\n\n (parentEvents || localEvents).on('saveXML.start', HIGHER_PRIORITY, align);\n\n if (parentEvents) {\n\n // unregister for saveXML.start\n localEvents.on('diagram.destroy', function() {\n parentEvents.off('saveXML.start', align);\n });\n }\n }\n\n\n /**\n * Create a function that compensates the element movement\n * by moving applying the delta in the given direction.\n */\n function movementCompensator(direction) {\n\n /**\n * Handler to executed\n */\n return function(context) {\n\n // adjust canvas after the commandstack got changed\n eventBus.once('commandStack.changed', function() {\n\n var delta = context.delta;\n var scale = canvas.viewbox().scale;\n\n canvas.scroll({\n dx: direction * delta.x * scale,\n dy: direction * delta.y * scale\n });\n });\n };\n }\n\n // command registration\n\n /**\n * A command handler that compensates the element movement\n * by applying the inverse move operation on the canvas.\n */\n commandStack.register('elements.alignToOrigin', {\n\n preExecute: function(context) {\n var delta = context.delta,\n elements = context.elements;\n\n modeling.moveElements(elements, delta);\n },\n\n execute: movementCompensator(-1),\n revert: movementCompensator(1)\n });\n\n // setup\n\n if (config.alignOnSave) {\n bindOnSave();\n }\n\n // API\n\n this.align = align;\n this.computeAdjustment = computeAdjustment;\n\n // internal debugging purposes\n this._config = config;\n}\n\nAlignToOrigin.$inject = [\n 'config.alignToOrigin',\n 'injector',\n 'eventBus',\n 'commandStack',\n 'canvas',\n 'modeling'\n];\n\n\n// helpers /////////////////////////\n\nfunction quantize(value, quantum, fn) {\n if (!fn) {\n fn = 'round';\n }\n\n return Math[ fn ](value / quantum) * quantum;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vYWxpZ24tdG8tb3JpZ2luL2xpYi9hbGlnbi10by1vcmlnaW4uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHa0I7O0FBRWxCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxlQUFlO0FBQzFCLFdBQVcsVUFBVTtBQUNyQixXQUFXLGNBQWM7QUFDekIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQjtBQUNlOztBQUVmO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFlBQVksZ0RBQU0sR0FBRywrQkFBK0I7O0FBRXBELFFBQVEsa0RBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsT0FBTztBQUNwQjtBQUNBLGNBQWMsT0FBTztBQUNyQjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxHQUFHOztBQUVIOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BicG1uLWlvL2FsaWduLXRvLW9yaWdpbi9saWIvYWxpZ24tdG8tb3JpZ2luLmpzPzIwNzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXNzaWduLFxuICBpc051bWJlclxufSBmcm9tICdtaW4tZGFzaCc7XG5cbnZhciBERUZBVUxUX09QVElPTlMgPSB7XG4gIG9mZnNldDoge1xuICAgIHg6IDE1MCxcbiAgICB5OiA3NVxuICB9LFxuICB0b2xlcmFuY2U6IDUwLFxuICBhbGlnbk9uU2F2ZTogdHJ1ZVxufTtcblxudmFyIEhJR0hFUl9QUklPUklUWSA9IDEyNTA7XG5cblxuLyoqXG4gKiBNb3ZlcyBkaWFncmFtIGNvbnRlbnRzIHRvIHRoZSBvcmlnaW4gKyBvZmZzZXQsXG4gKiBvcHRpb25hbGx5IHVwb24gZGlhZ3JhbSBzYXZlLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWdcbiAqIEBwYXJhbSB7ZGlkaS5JbmplY3Rvcn0gaW5qZWN0b3JcbiAqIEBwYXJhbSB7RXZlbnRCdXN9IGV2ZW50QnVzXG4gKiBAcGFyYW0ge0NvbW1hbmRTdGFja30gY29tbWFuZFN0YWNrXG4gKiBAcGFyYW0ge0NhbnZhc30gY2FudmFzXG4gKiBAcGFyYW0ge01vZGVsaW5nfSBtb2RlbGluZ1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBbGlnblRvT3JpZ2luKGNvbmZpZywgaW5qZWN0b3IsIGV2ZW50QnVzLCBjb21tYW5kU3RhY2ssIGNhbnZhcywgbW9kZWxpbmcpIHtcblxuICAvKipcbiAgICogUmV0dXJuIGFjdHVhbCBjb25maWcgd2l0aCBkZWZhdWx0cyBhcHBsaWVkLlxuICAgKi9cbiAgZnVuY3Rpb24gYXBwbHlEZWZhdWx0cyhjb25maWcpIHtcblxuICAgIHZhciBjID0gYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMsIGNvbmZpZyB8fCB7fSk7XG5cbiAgICBpZiAoaXNOdW1iZXIoYy5vZmZzZXQpKSB7XG4gICAgICBjLm9mZnNldCA9IHtcbiAgICAgICAgeDogYy5vZmZzZXQsXG4gICAgICAgIHk6IGMub2Zmc2V0XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjO1xuICB9XG5cbiAgY29uZmlnID0gYXBwbHlEZWZhdWx0cyhjb25maWcpO1xuXG4gIC8qKlxuICAgKiBDb21wdXRlIGFkanVzdG1lbnQgZ2l2ZW4gdGhlIHNwZWNpZmllZCBkaWFncmFtIG9yaWdpbi5cbiAgICpcbiAgICogQHBhcmFtIHtQb2ludH0gb3JpZ2luXG4gICAqXG4gICAqIEByZXR1cm4ge1BvaW50fSBhZGp1c3RtZW50XG4gICAqL1xuICBmdW5jdGlvbiBjb21wdXRlQWRqdXN0bWVudChvcmlnaW4sIGNvbmZpZykge1xuXG4gICAgdmFyIG9mZnNldCA9IGNvbmZpZy5vZmZzZXQsXG4gICAgICAgIHRvbGVyYW5jZSA9IGNvbmZpZy50b2xlcmFuY2U7XG5cbiAgICB2YXIgYWRqdXN0bWVudCA9IHt9O1xuXG4gICAgWyAneCcsICd5JyBdLmZvckVhY2goZnVuY3Rpb24oYXhpcykge1xuXG4gICAgICB2YXIgZGVsdGEgPSAtb3JpZ2luW2F4aXNdICsgb2Zmc2V0W2F4aXNdO1xuXG4gICAgICB2YXIgZ3JpZFNuYXBwaW5nID0gaW5qZWN0b3IuZ2V0KCdncmlkU25hcHBpbmcnLCBmYWxzZSk7XG5cbiAgICAgIGlmIChncmlkU25hcHBpbmcpIHtcbiAgICAgICAgZGVsdGEgPSBxdWFudGl6ZShkZWx0YSwgZ3JpZFNuYXBwaW5nLmdldEdyaWRTcGFjaW5nKCkpO1xuICAgICAgfVxuXG4gICAgICBhZGp1c3RtZW50W2F4aXNdID0gTWF0aC5hYnMoZGVsdGEpIDwgdG9sZXJhbmNlID8gMCA6IGRlbHRhO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFkanVzdG1lbnQ7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBBbGlnbiB0aGUgZGlhZ3JhbSBjb250ZW50IHRvIHRoZSBvcmlnaW4uXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBmdW5jdGlvbiBhbGlnbigpIHtcblxuICAgIHZhciBib3VuZHMgPSBjYW52YXMudmlld2JveCgpLmlubmVyO1xuXG4gICAgdmFyIGVsZW1lbnRzID0gY2FudmFzLmdldFJvb3RFbGVtZW50KCkuY2hpbGRyZW47XG5cbiAgICBpZiAoIWVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBkZWx0YSA9IGNvbXB1dGVBZGp1c3RtZW50KGJvdW5kcywgY29uZmlnKTtcblxuICAgIGlmIChkZWx0YS54ID09PSAwICYmIGRlbHRhLnkgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb21tYW5kU3RhY2suZXhlY3V0ZSgnZWxlbWVudHMuYWxpZ25Ub09yaWdpbicsIHtcbiAgICAgIGVsZW1lbnRzOiBlbGVtZW50cyxcbiAgICAgIGRlbHRhOiBkZWx0YVxuICAgIH0pO1xuICB9XG5cblxuICAvKipcbiAgICogU2V0dXAgYWxpZ24gb24gc2F2ZSBmdW5jdGlvbmFsaXR5XG4gICAqL1xuICBmdW5jdGlvbiBiaW5kT25TYXZlKCkge1xuXG4gICAgLy8gbmVzdGVkIGVkaXRvcnMgZXhwb3NlIF9wYXJlbnQgdG8gYWNjZXNzIHRoZVxuICAgIC8vIHNhdmUgcmVzcG9uc2libGUgZW50aXR5XG4gICAgdmFyIHBhcmVudCA9IGluamVjdG9yLmdldCgnX3BhcmVudCcsIGZhbHNlKTtcblxuICAgIHZhciBsb2NhbEV2ZW50cyA9IGV2ZW50QnVzO1xuXG4gICAgdmFyIHBhcmVudEV2ZW50cyA9IHBhcmVudCAmJiBwYXJlbnQuX2V2ZW50QnVzO1xuXG4gICAgKHBhcmVudEV2ZW50cyB8fCBsb2NhbEV2ZW50cykub24oJ3NhdmVYTUwuc3RhcnQnLCBISUdIRVJfUFJJT1JJVFksIGFsaWduKTtcblxuICAgIGlmIChwYXJlbnRFdmVudHMpIHtcblxuICAgICAgLy8gdW5yZWdpc3RlciBmb3Igc2F2ZVhNTC5zdGFydFxuICAgICAgbG9jYWxFdmVudHMub24oJ2RpYWdyYW0uZGVzdHJveScsIGZ1bmN0aW9uKCkge1xuICAgICAgICBwYXJlbnRFdmVudHMub2ZmKCdzYXZlWE1MLnN0YXJ0JywgYWxpZ24pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZnVuY3Rpb24gdGhhdCBjb21wZW5zYXRlcyB0aGUgZWxlbWVudCBtb3ZlbWVudFxuICAgKiBieSBtb3ZpbmcgYXBwbHlpbmcgdGhlIGRlbHRhIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uXG4gICAqL1xuICBmdW5jdGlvbiBtb3ZlbWVudENvbXBlbnNhdG9yKGRpcmVjdGlvbikge1xuXG4gICAgLyoqXG4gICAgICogSGFuZGxlciB0byBleGVjdXRlZFxuICAgICAqL1xuICAgIHJldHVybiBmdW5jdGlvbihjb250ZXh0KSB7XG5cbiAgICAgIC8vIGFkanVzdCBjYW52YXMgYWZ0ZXIgdGhlIGNvbW1hbmRzdGFjayBnb3QgY2hhbmdlZFxuICAgICAgZXZlbnRCdXMub25jZSgnY29tbWFuZFN0YWNrLmNoYW5nZWQnLCBmdW5jdGlvbigpIHtcblxuICAgICAgICB2YXIgZGVsdGEgPSBjb250ZXh0LmRlbHRhO1xuICAgICAgICB2YXIgc2NhbGUgPSBjYW52YXMudmlld2JveCgpLnNjYWxlO1xuXG4gICAgICAgIGNhbnZhcy5zY3JvbGwoe1xuICAgICAgICAgIGR4OiBkaXJlY3Rpb24gKiBkZWx0YS54ICogc2NhbGUsXG4gICAgICAgICAgZHk6IGRpcmVjdGlvbiAqIGRlbHRhLnkgKiBzY2FsZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICAvLyBjb21tYW5kIHJlZ2lzdHJhdGlvblxuXG4gIC8qKlxuICAgKiBBIGNvbW1hbmQgaGFuZGxlciB0aGF0IGNvbXBlbnNhdGVzIHRoZSBlbGVtZW50IG1vdmVtZW50XG4gICAqIGJ5IGFwcGx5aW5nIHRoZSBpbnZlcnNlIG1vdmUgb3BlcmF0aW9uIG9uIHRoZSBjYW52YXMuXG4gICAqL1xuICBjb21tYW5kU3RhY2sucmVnaXN0ZXIoJ2VsZW1lbnRzLmFsaWduVG9PcmlnaW4nLCB7XG5cbiAgICBwcmVFeGVjdXRlOiBmdW5jdGlvbihjb250ZXh0KSB7XG4gICAgICB2YXIgZGVsdGEgPSBjb250ZXh0LmRlbHRhLFxuICAgICAgICAgIGVsZW1lbnRzID0gY29udGV4dC5lbGVtZW50cztcblxuICAgICAgbW9kZWxpbmcubW92ZUVsZW1lbnRzKGVsZW1lbnRzLCBkZWx0YSk7XG4gICAgfSxcblxuICAgIGV4ZWN1dGU6IG1vdmVtZW50Q29tcGVuc2F0b3IoLTEpLFxuICAgIHJldmVydDogbW92ZW1lbnRDb21wZW5zYXRvcigxKVxuICB9KTtcblxuICAvLyBzZXR1cFxuXG4gIGlmIChjb25maWcuYWxpZ25PblNhdmUpIHtcbiAgICBiaW5kT25TYXZlKCk7XG4gIH1cblxuICAvLyBBUElcblxuICB0aGlzLmFsaWduID0gYWxpZ247XG4gIHRoaXMuY29tcHV0ZUFkanVzdG1lbnQgPSBjb21wdXRlQWRqdXN0bWVudDtcblxuICAvLyBpbnRlcm5hbCBkZWJ1Z2dpbmcgcHVycG9zZXNcbiAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xufVxuXG5BbGlnblRvT3JpZ2luLiRpbmplY3QgPSBbXG4gICdjb25maWcuYWxpZ25Ub09yaWdpbicsXG4gICdpbmplY3RvcicsXG4gICdldmVudEJ1cycsXG4gICdjb21tYW5kU3RhY2snLFxuICAnY2FudmFzJyxcbiAgJ21vZGVsaW5nJ1xuXTtcblxuXG4vLyBoZWxwZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZnVuY3Rpb24gcXVhbnRpemUodmFsdWUsIHF1YW50dW0sIGZuKSB7XG4gIGlmICghZm4pIHtcbiAgICBmbiA9ICdyb3VuZCc7XG4gIH1cblxuICByZXR1cm4gTWF0aFsgZm4gXSh2YWx1ZSAvIHF1YW50dW0pICogcXVhbnR1bTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/align-to-origin/lib/align-to-origin.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/align-to-origin/lib/index.js": /*!************************************************************!*\ !*** ./node_modules/@bpmn-io/align-to-origin/lib/index.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _align_to_origin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./align-to-origin */ \"./node_modules/@bpmn-io/align-to-origin/lib/align-to-origin.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'alignToOrigin' ],\n alignToOrigin: [ 'type', _align_to_origin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vYWxpZ24tdG8tb3JpZ2luL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE4Qzs7QUFFOUMsaUVBQWU7QUFDZjtBQUNBLDJCQUEyQix3REFBYTtBQUN4QyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BicG1uLWlvL2FsaWduLXRvLW9yaWdpbi9saWIvaW5kZXguanM/N2NlOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWxpZ25Ub09yaWdpbiBmcm9tICcuL2FsaWduLXRvLW9yaWdpbic7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgX19pbml0X186IFsgJ2FsaWduVG9PcmlnaW4nIF0sXG4gIGFsaWduVG9PcmlnaW46IFsgJ3R5cGUnLCBBbGlnblRvT3JpZ2luIF1cbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/align-to-origin/lib/index.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/cm-theme/dist/index.es.js": /*!*********************************************************!*\ !*** ./node_modules/@bpmn-io/cm-theme/dist/index.es.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ darkTheme: () => (/* binding */ darkTheme),\n/* harmony export */ lightTheme: () => (/* binding */ lightTheme)\n/* harmony export */ });\n/* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @codemirror/view */ \"./node_modules/@codemirror/view/dist/index.js\");\n/* harmony import */ var _codemirror_language__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @codemirror/language */ \"./node_modules/@codemirror/language/dist/index.js\");\n/* harmony import */ var _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lezer/highlight */ \"./node_modules/@lezer/highlight/dist/index.js\");\n\n\n\n\nconst highlightStyle$2 = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_1__.syntaxHighlighting)(_codemirror_language__WEBPACK_IMPORTED_MODULE_1__.HighlightStyle.define([\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.strong, fontWeight: 'bold' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.emphasis, fontStyle: 'italic' },\r\n]));\r\n\r\nconst theme$2 = _codemirror_view__WEBPACK_IMPORTED_MODULE_2__.EditorView.theme({\r\n '& .cm-lintRange': {\r\n position: 'relative',\r\n },\r\n '& .cm-lintRange::after': {\r\n content: '\"\"',\r\n width: '100%',\r\n position: 'absolute',\r\n left: '0px',\r\n bottom: '-2px',\r\n height: '3px',\r\n backgroundRepeat: 'repeat-x',\r\n },\r\n '& .cm-lintRange.cm-lintRange-warning, & .cm-lintRange.cm-lintRange-error': {\r\n backgroundImage: 'none',\r\n },\r\n '& .cm-lintPoint::after': {\r\n bottom: '-2px'\r\n }\r\n});\r\n\r\nvar commonTheme = [\r\n theme$2,\r\n highlightStyle$2\r\n];\n\nconst _urlify = (color) => `%23${color.slice(1)}`;\r\n\r\nconst colors = {\r\n black: '#1f2b36',\r\n darkGrey: '#2f3d58',\r\n grey: '#404a5c',\r\n midGrey: '#576071',\r\n lightGrey: '#c5d1e5',\r\n offWhite: '#d9e0f5',\r\n snowWhite: '#eaf1ff',\r\n white: '#ffffff',\r\n mossGreen: '#7ab6aa',\r\n iceBlue: '#6cbfd8',\r\n waterBlue: '#065aaa',\r\n brightBlue: '#0a56b9',\r\n deepBlue: '#355472',\r\n red: '#9f1c15',\r\n orangeBrown: '#b4502f',\r\n yellow: '#debd71',\r\n lila: '#9a4890',\r\n purple: '#5b2c83'\r\n};\r\n\r\nconst colorByRole = {\r\n lightBackground: colors.white,\r\n darkBackground: colors.snowWhite,\r\n selection: colors.snowWhite,\r\n tooltipBackground: colors.offWhite,\r\n error: colors.red,\r\n warning: colors.yellow,\r\n invalid: '#b40000'\r\n};\r\n\r\nconst theme$1 = _codemirror_view__WEBPACK_IMPORTED_MODULE_2__.EditorView.theme(\r\n {\r\n '&': { color: colors.black, backgroundColor: colorByRole.lightBackground },\r\n '.cm-content': { caretColor: colors.darkGrey },\r\n '.cm-cursor, .cm-dropCursor': { borderLeftColor: colors.darkGrey },\r\n '&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection':\r\n { backgroundColor: colorByRole.selection },\r\n\r\n '.cm-panels': { backgroundColor: colorByRole.darkBackground, color: colors.grey },\r\n '.cm-panels.cm-panels-top': { borderBottom: `2px solid ${ colors.black }` },\r\n '.cm-panels.cm-panels-bottom': { borderTop: `2px solid ${ colors.black }` },\r\n\r\n '.cm-searchMatch': {\r\n backgroundColor: '#72a1ff59',\r\n outline: `1px solid ${colors.midGrey}`\r\n },\r\n '.cm-searchMatch.cm-searchMatch-selected': { backgroundColor: colors.offWhite },\r\n '.cm-activeLine': { backgroundColor: colorByRole.selection },\r\n '.cm-selectionMatch': { backgroundColor: colors.offWhite },\r\n\r\n '&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket': {\r\n outline: `1px solid ${colors.grey}`\r\n },\r\n\r\n '&.cm-focused .cm-matchingBracket': {\r\n backgroundColor: colors.snowWhite\r\n },\r\n\r\n '.cm-gutters': {\r\n backgroundColor: '#f3f7fe',\r\n color: '#52668d',\r\n border: 'none',\r\n padding: '0 5px'\r\n },\r\n\r\n '.cm-activeLineGutter': {\r\n backgroundColor: colorByRole.selection\r\n },\r\n\r\n '.cm-foldPlaceholder': {\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n color: '#ddd'\r\n },\r\n\r\n '.cm-tooltip': {\r\n border: 'none',\r\n backgroundColor: colorByRole.tooltipBackground\r\n },\r\n '.cm-tooltip .cm-tooltip-arrow:before': {\r\n borderTopColor: 'transparent',\r\n borderBottomColor: 'transparent'\r\n },\r\n '.cm-tooltip .cm-tooltip-arrow:after': {\r\n borderTopColor: colorByRole.tooltipBackground,\r\n borderBottomColor: colorByRole.tooltipBackground\r\n },\r\n '.cm-tooltip-autocomplete': {\r\n '& > ul > li[aria-selected]': {\r\n backgroundColor: colorByRole.darkBackground,\r\n color: colors.midGrey\r\n }\r\n },\r\n '& .cm-lintRange.cm-lintRange-warning::after': {\r\n backgroundImage: `url(\"data:image/svg+xml,\")`,\r\n },\r\n '& .cm-lintRange.cm-lintRange-error::after': {\r\n backgroundImage: `url(\"data:image/svg+xml,\")`,\r\n },\r\n '& .cm-diagnostic-warning': {\r\n border: `1px solid ${colorByRole.warning}`,\r\n borderLeft: `5px solid ${colorByRole.warning}`,\r\n background: colorByRole.lightBackground,\r\n },\r\n '& .cm-diagnostic-error': {\r\n border: `1px solid ${colorByRole.error}`,\r\n borderLeft: `5px solid ${colorByRole.error}`,\r\n background: colorByRole.lightBackground\r\n },\r\n '& .cm-diagnostic': {\r\n padding: '3px 8px'\r\n }\r\n },\r\n { dark: false }\r\n);\r\n\r\nconst highlightStyle$1 = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_1__.syntaxHighlighting)(_codemirror_language__WEBPACK_IMPORTED_MODULE_1__.HighlightStyle.define([\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.macroName, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.variableName ],\r\n color: colors.waterBlue\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.bracket) ],\r\n color: colors.waterBlue,\r\n fontWeight: 'bold'\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.color, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.name, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.definition(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.name), _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.constant(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.name), _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.standard(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.name), _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.propertyName, ],\r\n color: colors.deepBlue\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.definition(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.variableName), _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.function(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.variableName), _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.function(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.propertyName) ],\r\n color: colors.brightBlue,\r\n },\r\n { tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.labelName ], color: colors.orangeBrown },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.annotation ],\r\n color: colorByRole.invalid\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.number, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.changed, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.annotation, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.modifier, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.self, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.namespace, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.atom, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.bool, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.variableName) ],\r\n color: colors.red\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.typeName, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.className, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.attributeName ],\r\n color: colors.lila\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.operator, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.operatorKeyword, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.tagName, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.keyword ],\r\n color: colors.purple\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.angleBracket, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.squareBracket, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.brace, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.separator, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.punctuation ],\r\n color: colors.midGrey\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.regexp ],\r\n color: colors.deepBlue\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.quote ],\r\n color: colors.darkGrey\r\n },\r\n { tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.string, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.character, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.deleted ], color: colors.orangeBrown },\r\n {\r\n tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.link,\r\n color: colors.mossGreen,\r\n textDecoration: 'underline',\r\n textUnderlinePosition: 'under'\r\n },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.url, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.escape, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.string) ],\r\n color: colors.red\r\n },\r\n { tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.meta ], color: colors.iceBlue },\r\n { tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.comment ], color: colors.midGrey, fontStyle: 'italic' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.strong, fontWeight: 'bold', color: colors.deepBlue },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.emphasis, fontStyle: 'italic', color: colors.deepBlue },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.strikethrough, textDecoration: 'line-through' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading, fontWeight: 'bold', color: colors.midGray },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading1), fontWeight: 'bold', color: colors.darkGrey },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading1, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading2, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading3, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading4 ],\r\n fontWeight: 'bold',\r\n color: colors.midGrey\r\n },\r\n { tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading5, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading6, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.processingInstruction, _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.inserted ], color: colors.grey },\r\n {\r\n tag: [ _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.contentSeparator ],\r\n color: colors.yellow\r\n },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.invalid, color: colors.midGrey, borderBottom: `1px dotted ${colorByRole.invalid}` }\r\n]));\r\n\r\nvar bpmnioLight = [\r\n theme$1,\r\n highlightStyle$1\r\n];\n\nconst ivory = '#abb2bf',\r\n peach = '#f07178',\r\n stone = '#7d8799',\r\n invalid = '#ffffff',\r\n pastelYellow = '#fffce1',\r\n pastelOrange = '#ec9e6f',\r\n raisinBlack = '#21252b',\r\n highlightBackground = 'rgba(0, 0, 0, 0.5)',\r\n background = '#292d3e',\r\n tooltipBackground = '#353a42',\r\n selection = 'rgba(128, 203, 196, 0.2)',\r\n cursor = '#ffcc00';\r\n\r\nconst urlHash = '%23';\r\nconst warningColorHex = 'fff890';\r\nconst errorColor = 'red';\r\nconst warningBackgroundColor = '#281e16';\r\nconst errorBackgroundColor = '#281616';\r\n\r\nconst theme = _codemirror_view__WEBPACK_IMPORTED_MODULE_2__.EditorView.theme(\r\n {\r\n '&': {\r\n color: '#ffffff',\r\n backgroundColor: background\r\n },\r\n '.cm-content': {\r\n caretColor: cursor\r\n },\r\n '&.cm-focused .cm-cursor': {\r\n borderLeftColor: cursor\r\n },\r\n '&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection':\r\n { backgroundColor: selection },\r\n '.cm-panels': { backgroundColor: raisinBlack, color: '#ffffff' },\r\n '.cm-panels.cm-panels-top': { borderBottom: '2px solid black' },\r\n '.cm-panels.cm-panels-bottom': { borderTop: '2px solid black' },\r\n '.cm-searchMatch': {\r\n backgroundColor: '#72a1ff59',\r\n outline: '1px solid #457dff'\r\n },\r\n '.cm-searchMatch.cm-searchMatch-selected': {\r\n backgroundColor: '#6199ff2f'\r\n },\r\n '.cm-activeLine': { backgroundColor: highlightBackground },\r\n '.cm-selectionMatch': { backgroundColor: '#aafe661a' },\r\n '&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket': {\r\n backgroundColor: '#bad0f847',\r\n outline: '1px solid #515a6b'\r\n },\r\n '.cm-gutters': {\r\n background: '#292d3e',\r\n color: '#676e95',\r\n border: 'none',\r\n padding: '0 5px'\r\n },\r\n '.cm-activeLineGutter': {\r\n backgroundColor: highlightBackground\r\n },\r\n '.cm-foldPlaceholder': {\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n color: '#ddd'\r\n },\r\n '.cm-tooltip': {\r\n border: 'none',\r\n backgroundColor: tooltipBackground\r\n },\r\n '.cm-tooltip .cm-tooltip-arrow:before': {\r\n borderTopColor: 'transparent',\r\n borderBottomColor: 'transparent'\r\n },\r\n '.cm-tooltip .cm-tooltip-arrow:after': {\r\n borderTopColor: tooltipBackground,\r\n borderBottomColor: tooltipBackground\r\n },\r\n '.cm-tooltip-autocomplete': {\r\n '& > ul > li[aria-selected]': {\r\n backgroundColor: highlightBackground,\r\n color: ivory\r\n }\r\n },\r\n '& .cm-lintRange.cm-lintRange-warning::after': {\r\n backgroundImage: `url(\"data:image/svg+xml,\")`,\r\n },\r\n '& .cm-lintRange.cm-lintRange-error::after': {\r\n backgroundImage: `url(\"data:image/svg+xml,\")`,\r\n },\r\n '& .cm-diagnostic-warning': {\r\n borderLeft: `5px solid #${warningColorHex}`,\r\n background: warningBackgroundColor\r\n },\r\n '& .cm-diagnostic-error': {\r\n borderLeft: `5px solid ${errorColor}`,\r\n background: errorBackgroundColor\r\n },\r\n '& .cm-diagnostic': {\r\n borderRadius: '2px',\r\n padding: '3px 8px'\r\n }\r\n },\r\n { dark: true }\r\n);\r\n\r\nconst highlightStyle = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_1__.syntaxHighlighting)(_codemirror_language__WEBPACK_IMPORTED_MODULE_1__.HighlightStyle.define([\r\n\r\n // Markdown headings\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading1, color: pastelYellow },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading2, color: pastelYellow },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading3, color: pastelYellow },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading4, color: pastelYellow },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading5, color: pastelYellow },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.heading6, color: pastelYellow },\r\n\r\n // Feelers\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.bracket), color: pastelOrange, fontWeight: 'bold' },\r\n\r\n // Everything else\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.keyword, color: '#c792ea' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.operator, color: '#89ddff' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.variableName), color: '#eeffff' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.typeName, color: '#f07178' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.atom, color: '#f78c6c' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.number, color: '#ff5370' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.bool, color: '#ff5370' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.definition(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.variableName), color: '#82aaff' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.string, color: '#c3e88d' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.comment, color: stone },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.tagName, color: '#ff5370' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.bracket, color: '#a2a1a4' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.meta, color: '#ffcb6b' },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.string), color: peach },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.propertyName, color: pastelOrange },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.variableName, color: pastelOrange },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.attributeName, color: peach },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.className, color: peach },\r\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_0__.tags.invalid, color: invalid }\r\n]));\r\n\r\nvar bpmnioDark = [\r\n theme,\r\n highlightStyle\r\n];\n\nconst lightTheme = [ ...commonTheme, ...bpmnioLight ];\r\nconst darkTheme = [ ...commonTheme, ...bpmnioDark ];\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vY20tdGhlbWUvZGlzdC9pbmRleC5lcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE4QztBQUM0QjtBQUNsQzs7QUFFeEMseUJBQXlCLHdFQUFrQixDQUFDLGdFQUFjO0FBQzFELElBQUksS0FBSyxrREFBSSw2QkFBNkI7QUFDMUMsSUFBSSxLQUFLLGtEQUFJLGdDQUFnQztBQUM3QztBQUNBO0FBQ0EsZ0JBQWdCLHdEQUFVO0FBQzFCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlDQUFpQyxlQUFlO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isd0RBQVU7QUFDMUI7QUFDQSxXQUFXLG1FQUFtRTtBQUM5RSxxQkFBcUIsNkJBQTZCO0FBQ2xELG9DQUFvQyxrQ0FBa0M7QUFDdEU7QUFDQSxRQUFRLHdDQUF3QztBQUNoRDtBQUNBLG9CQUFvQixpRUFBaUU7QUFDckYsa0NBQWtDLDRCQUE0QixjQUFjLEdBQUc7QUFDL0UscUNBQXFDLHlCQUF5QixjQUFjLEdBQUc7QUFDL0U7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLGVBQWU7QUFDM0MsS0FBSztBQUNMLGlEQUFpRCxrQ0FBa0M7QUFDbkYsd0JBQXdCLHdDQUF3QztBQUNoRSw0QkFBNEIsa0NBQWtDO0FBQzlEO0FBQ0E7QUFDQSw0QkFBNEIsWUFBWTtBQUN4QyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0Es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YWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BicG1uLWlvL2NtLXRoZW1lL2Rpc3QvaW5kZXguZXMuanM/YTc1YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBzeW50YXhIaWdobGlnaHRpbmcsIEhpZ2hsaWdodFN0eWxlIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgdGFncyB9IGZyb20gJ0BsZXplci9oaWdobGlnaHQnO1xuXG5jb25zdCBoaWdobGlnaHRTdHlsZSQyID0gc3ludGF4SGlnaGxpZ2h0aW5nKEhpZ2hsaWdodFN0eWxlLmRlZmluZShbXHJcbiAgeyB0YWc6IHRhZ3Muc3Ryb25nLCBmb250V2VpZ2h0OiAnYm9sZCcgfSxcclxuICB7IHRhZzogdGFncy5lbXBoYXNpcywgZm9udFN0eWxlOiAnaXRhbGljJyB9LFxyXG5dKSk7XHJcblxyXG5jb25zdCB0aGVtZSQyID0gRWRpdG9yVmlldy50aGVtZSh7XHJcbiAgJyYgLmNtLWxpbnRSYW5nZSc6IHtcclxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxyXG4gIH0sXHJcbiAgJyYgLmNtLWxpbnRSYW5nZTo6YWZ0ZXInOiB7XHJcbiAgICBjb250ZW50OiAnXCJcIicsXHJcbiAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICBsZWZ0OiAnMHB4JyxcclxuICAgIGJvdHRvbTogJy0ycHgnLFxyXG4gICAgaGVpZ2h0OiAnM3B4JyxcclxuICAgIGJhY2tncm91bmRSZXBlYXQ6ICdyZXBlYXQteCcsXHJcbiAgfSxcclxuICAnJiAuY20tbGludFJhbmdlLmNtLWxpbnRSYW5nZS13YXJuaW5nLCAmIC5jbS1saW50UmFuZ2UuY20tbGludFJhbmdlLWVycm9yJzoge1xyXG4gICAgYmFja2dyb3VuZEltYWdlOiAnbm9uZScsXHJcbiAgfSxcclxuICAnJiAuY20tbGludFBvaW50OjphZnRlcic6IHtcclxuICAgIGJvdHRvbTogJy0ycHgnXHJcbiAgfVxyXG59KTtcclxuXHJcbnZhciBjb21tb25UaGVtZSA9IFtcclxuICB0aGVtZSQyLFxyXG4gIGhpZ2hsaWdodFN0eWxlJDJcclxuXTtcblxuY29uc3QgX3VybGlmeSA9IChjb2xvcikgPT4gYCUyMyR7Y29sb3Iuc2xpY2UoMSl9YDtcclxuXHJcbmNvbnN0IGNvbG9ycyA9IHtcclxuICBibGFjazogJyMxZjJiMzYnLFxyXG4gIGRhcmtHcmV5OiAnIzJmM2Q1OCcsXHJcbiAgZ3JleTogJyM0MDRhNWMnLFxyXG4gIG1pZEdyZXk6ICcjNTc2MDcxJyxcclxuICBsaWdodEdyZXk6ICcjYzVkMWU1JyxcclxuICBvZmZXaGl0ZTogJyNkOWUwZjUnLFxyXG4gIHNub3dXaGl0ZTogJyNlYWYxZmYnLFxyXG4gIHdoaXRlOiAnI2ZmZmZmZicsXHJcbiAgbW9zc0dyZWVuOiAnIzdhYjZhYScsXHJcbiAgaWNlQmx1ZTogJyM2Y2JmZDgnLFxyXG4gIHdhdGVyQmx1ZTogJyMwNjVhYWEnLFxyXG4gIGJyaWdodEJsdWU6ICcjMGE1NmI5JyxcclxuICBkZWVwQmx1ZTogJyMzNTU0NzInLFxyXG4gIHJlZDogJyM5ZjFjMTUnLFxyXG4gIG9yYW5nZUJyb3duOiAnI2I0NTAyZicsXHJcbiAgeWVsbG93OiAnI2RlYmQ3MScsXHJcbiAgbGlsYTogJyM5YTQ4OTAnLFxyXG4gIHB1cnBsZTogJyM1YjJjODMnXHJcbn07XHJcblxyXG5jb25zdCBjb2xvckJ5Um9sZSA9IHtcclxuICBsaWdodEJhY2tncm91bmQ6IGNvbG9ycy53aGl0ZSxcclxuICBkYXJrQmFja2dyb3VuZDogY29sb3JzLnNub3dXaGl0ZSxcclxuICBzZWxlY3Rpb246IGNvbG9ycy5zbm93V2hpdGUsXHJcbiAgdG9vbHRpcEJhY2tncm91bmQ6IGNvbG9ycy5vZmZXaGl0ZSxcclxuICBlcnJvcjogY29sb3JzLnJlZCxcclxuICB3YXJuaW5nOiBjb2xvcnMueWVsbG93LFxyXG4gIGludmFsaWQ6ICcjYjQwMDAwJ1xyXG59O1xyXG5cclxuY29uc3QgdGhlbWUkMSA9IEVkaXRvclZpZXcudGhlbWUoXHJcbiAge1xyXG4gICAgJyYnOiB7IGNvbG9yOiBjb2xvcnMuYmxhY2ssIGJhY2tncm91bmRDb2xvcjogY29sb3JCeVJvbGUubGlnaHRCYWNrZ3JvdW5kIH0sXHJcbiAgICAnLmNtLWNvbnRlbnQnOiB7IGNhcmV0Q29sb3I6IGNvbG9ycy5kYXJrR3JleSB9LFxyXG4gICAgJy5jbS1jdXJzb3IsIC5jbS1kcm9wQ3Vyc29yJzogeyBib3JkZXJMZWZ0Q29sb3I6IGNvbG9ycy5kYXJrR3JleSB9LFxyXG4gICAgJyYuY20tZm9jdXNlZCAuY20tc2VsZWN0aW9uQmFja2dyb3VuZCwgLmNtLXNlbGVjdGlvbkJhY2tncm91bmQsIC5jbS1jb250ZW50IDo6c2VsZWN0aW9uJzpcclxuICAgICAgeyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yQnlSb2xlLnNlbGVjdGlvbiB9LFxyXG5cclxuICAgICcuY20tcGFuZWxzJzogeyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yQnlSb2xlLmRhcmtCYWNrZ3JvdW5kLCBjb2xvcjogY29sb3JzLmdyZXkgfSxcclxuICAgICcuY20tcGFuZWxzLmNtLXBhbmVscy10b3AnOiB7IGJvcmRlckJvdHRvbTogYDJweCBzb2xpZCAkeyBjb2xvcnMuYmxhY2sgfWAgfSxcclxuICAgICcuY20tcGFuZWxzLmNtLXBhbmVscy1ib3R0b20nOiB7IGJvcmRlclRvcDogYDJweCBzb2xpZCAkeyBjb2xvcnMuYmxhY2sgfWAgfSxcclxuXHJcbiAgICAnLmNtLXNlYXJjaE1hdGNoJzoge1xyXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjNzJhMWZmNTknLFxyXG4gICAgICBvdXRsaW5lOiBgMXB4IHNvbGlkICR7Y29sb3JzLm1pZEdyZXl9YFxyXG4gICAgfSxcclxuICAgICcuY20tc2VhcmNoTWF0Y2guY20tc2VhcmNoTWF0Y2gtc2VsZWN0ZWQnOiB7IGJhY2tncm91bmRDb2xvcjogY29sb3JzLm9mZldoaXRlIH0sXHJcbiAgICAnLmNtLWFjdGl2ZUxpbmUnOiB7IGJhY2tncm91bmRDb2xvcjogY29sb3JCeVJvbGUuc2VsZWN0aW9uIH0sXHJcbiAgICAnLmNtLXNlbGVjdGlvbk1hdGNoJzogeyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9ycy5vZmZXaGl0ZSB9LFxyXG5cclxuICAgICcmLmNtLWZvY3VzZWQgLmNtLW1hdGNoaW5nQnJhY2tldCwgJi5jbS1mb2N1c2VkIC5jbS1ub25tYXRjaGluZ0JyYWNrZXQnOiB7XHJcbiAgICAgIG91dGxpbmU6IGAxcHggc29saWQgJHtjb2xvcnMuZ3JleX1gXHJcbiAgICB9LFxyXG5cclxuICAgICcmLmNtLWZvY3VzZWQgLmNtLW1hdGNoaW5nQnJhY2tldCc6IHtcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMuc25vd1doaXRlXHJcbiAgICB9LFxyXG5cclxuICAgICcuY20tZ3V0dGVycyc6IHtcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2YzZjdmZScsXHJcbiAgICAgIGNvbG9yOiAnIzUyNjY4ZCcsXHJcbiAgICAgIGJvcmRlcjogJ25vbmUnLFxyXG4gICAgICBwYWRkaW5nOiAnMCA1cHgnXHJcbiAgICB9LFxyXG5cclxuICAgICcuY20tYWN0aXZlTGluZUd1dHRlcic6IHtcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvckJ5Um9sZS5zZWxlY3Rpb25cclxuICAgIH0sXHJcblxyXG4gICAgJy5jbS1mb2xkUGxhY2Vob2xkZXInOiB7XHJcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgYm9yZGVyOiAnbm9uZScsXHJcbiAgICAgIGNvbG9yOiAnI2RkZCdcclxuICAgIH0sXHJcblxyXG4gICAgJy5jbS10b29sdGlwJzoge1xyXG4gICAgICBib3JkZXI6ICdub25lJyxcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvckJ5Um9sZS50b29sdGlwQmFja2dyb3VuZFxyXG4gICAgfSxcclxuICAgICcuY20tdG9vbHRpcCAuY20tdG9vbHRpcC1hcnJvdzpiZWZvcmUnOiB7XHJcbiAgICAgIGJvcmRlclRvcENvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICBib3JkZXJCb3R0b21Db2xvcjogJ3RyYW5zcGFyZW50J1xyXG4gICAgfSxcclxuICAgICcuY20tdG9vbHRpcCAuY20tdG9vbHRpcC1hcnJvdzphZnRlcic6IHtcclxuICAgICAgYm9yZGVyVG9wQ29sb3I6IGNvbG9yQnlSb2xlLnRvb2x0aXBCYWNrZ3JvdW5kLFxyXG4gICAgICBib3JkZXJCb3R0b21Db2xvcjogY29sb3JCeVJvbGUudG9vbHRpcEJhY2tncm91bmRcclxuICAgIH0sXHJcbiAgICAnLmNtLXRvb2x0aXAtYXV0b2NvbXBsZXRlJzoge1xyXG4gICAgICAnJiA+IHVsID4gbGlbYXJpYS1zZWxlY3RlZF0nOiB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvckJ5Um9sZS5kYXJrQmFja2dyb3VuZCxcclxuICAgICAgICBjb2xvcjogY29sb3JzLm1pZEdyZXlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgICcmIC5jbS1saW50UmFuZ2UuY20tbGludFJhbmdlLXdhcm5pbmc6OmFmdGVyJzoge1xyXG4gICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzMnPjxwYXRoIGQ9J20wIDIuNSBsMiAtMS41IGwxIDAgbDIgMS41IGwxIDAnIHN0cm9rZT0nJHtfdXJsaWZ5KGNvbG9yQnlSb2xlLndhcm5pbmcpfScgZmlsbD0nbm9uZScgc3Ryb2tlLXdpZHRoPScxLjInLz48L3N2Zz5cIilgLFxyXG4gICAgfSxcclxuICAgICcmIC5jbS1saW50UmFuZ2UuY20tbGludFJhbmdlLWVycm9yOjphZnRlcic6IHtcclxuICAgICAgYmFja2dyb3VuZEltYWdlOiBgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSczJz48cGF0aCBkPSdtMCAyLjUgbDIgLTEuNSBsMSAwIGwyIDEuNSBsMSAwJyBzdHJva2U9JyR7X3VybGlmeShjb2xvckJ5Um9sZS5lcnJvcil9JyBmaWxsPSdub25lJyBzdHJva2Utd2lkdGg9JzEuMicvPjwvc3ZnPlwiKWAsXHJcbiAgICB9LFxyXG4gICAgJyYgLmNtLWRpYWdub3N0aWMtd2FybmluZyc6IHtcclxuICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7Y29sb3JCeVJvbGUud2FybmluZ31gLFxyXG4gICAgICBib3JkZXJMZWZ0OiBgNXB4IHNvbGlkICR7Y29sb3JCeVJvbGUud2FybmluZ31gLFxyXG4gICAgICBiYWNrZ3JvdW5kOiBjb2xvckJ5Um9sZS5saWdodEJhY2tncm91bmQsXHJcbiAgICB9LFxyXG4gICAgJyYgLmNtLWRpYWdub3N0aWMtZXJyb3InOiB7XHJcbiAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2NvbG9yQnlSb2xlLmVycm9yfWAsXHJcbiAgICAgIGJvcmRlckxlZnQ6IGA1cHggc29saWQgJHtjb2xvckJ5Um9sZS5lcnJvcn1gLFxyXG4gICAgICBiYWNrZ3JvdW5kOiBjb2xvckJ5Um9sZS5saWdodEJhY2tncm91bmRcclxuICAgIH0sXHJcbiAgICAnJiAuY20tZGlhZ25vc3RpYyc6IHtcclxuICAgICAgcGFkZGluZzogJzNweCA4cHgnXHJcbiAgICB9XHJcbiAgfSxcclxuICB7IGRhcms6IGZhbHNlIH1cclxuKTtcclxuXHJcbmNvbnN0IGhpZ2hsaWdodFN0eWxlJDEgPSBzeW50YXhIaWdobGlnaHRpbmcoSGlnaGxpZ2h0U3R5bGUuZGVmaW5lKFtcclxuICB7XHJcbiAgICB0YWc6IFsgdGFncy5tYWNyb05hbWUsIHRhZ3MudmFyaWFibGVOYW1lIF0sXHJcbiAgICBjb2xvcjogY29sb3JzLndhdGVyQmx1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgdGFnOiBbIHRhZ3Muc3BlY2lhbCh0YWdzLmJyYWNrZXQpIF0sXHJcbiAgICBjb2xvcjogY29sb3JzLndhdGVyQmx1ZSxcclxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJ1xyXG4gIH0sXHJcbiAge1xyXG4gICAgdGFnOiBbIHRhZ3MuY29sb3IsIHRhZ3MubmFtZSwgdGFncy5kZWZpbml0aW9uKHRhZ3MubmFtZSksIHRhZ3MuY29uc3RhbnQodGFncy5uYW1lKSwgdGFncy5zdGFuZGFyZCh0YWdzLm5hbWUpLCB0YWdzLnByb3BlcnR5TmFtZSwgXSxcclxuICAgIGNvbG9yOiBjb2xvcnMuZGVlcEJsdWVcclxuICB9LFxyXG4gIHtcclxuICAgIHRhZzogWyB0YWdzLmRlZmluaXRpb24odGFncy52YXJpYWJsZU5hbWUpLCB0YWdzLmZ1bmN0aW9uKHRhZ3MudmFyaWFibGVOYW1lKSwgdGFncy5mdW5jdGlvbih0YWdzLnByb3BlcnR5TmFtZSkgXSxcclxuICAgIGNvbG9yOiBjb2xvcnMuYnJpZ2h0Qmx1ZSxcclxuICB9LFxyXG4gIHsgdGFnOiBbIHRhZ3MubGFiZWxOYW1lIF0sIGNvbG9yOiBjb2xvcnMub3JhbmdlQnJvd24gfSxcclxuICB7XHJcbiAgICB0YWc6IFsgdGFncy5hbm5vdGF0aW9uIF0sXHJcbiAgICBjb2xvcjogY29sb3JCeVJvbGUuaW52YWxpZFxyXG4gIH0sXHJcbiAge1xyXG4gICAgdGFnOiBbIHRhZ3MubnVtYmVyLCB0YWdzLmNoYW5nZWQsIHRhZ3MuYW5ub3RhdGlvbiwgdGFncy5tb2RpZmllciwgdGFncy5zZWxmLCB0YWdzLm5hbWVzcGFjZSwgdGFncy5hdG9tLCB0YWdzLmJvb2wsIHRhZ3Muc3BlY2lhbCh0YWdzLnZhcmlhYmxlTmFtZSkgXSxcclxuICAgIGNvbG9yOiBjb2xvcnMucmVkXHJcbiAgfSxcclxuICB7XHJcbiAgICB0YWc6IFsgdGFncy50eXBlTmFtZSwgdGFncy5jbGFzc05hbWUsIHRhZ3MuYXR0cmlidXRlTmFtZSBdLFxyXG4gICAgY29sb3I6IGNvbG9ycy5saWxhXHJcbiAgfSxcclxuICB7XHJcbiAgICB0YWc6IFsgdGFncy5vcGVyYXRvciwgdGFncy5vcGVyYXRvcktleXdvcmQsIHRhZ3MudGFnTmFtZSwgdGFncy5rZXl3b3JkIF0sXHJcbiAgICBjb2xvcjogY29sb3JzLnB1cnBsZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgdGFnOiBbIHRhZ3MuYW5nbGVCcmFja2V0LCB0YWdzLnNxdWFyZUJyYWNrZXQsIHRhZ3MuYnJhY2UsIHRhZ3Muc2VwYXJhdG9yLCB0YWdzLnB1bmN0dWF0aW9uIF0sXHJcbiAgICBjb2xvcjogY29sb3JzLm1pZEdyZXlcclxuICB9LFxyXG4gIHtcclxuICAgIHRhZzogWyB0YWdzLnJlZ2V4cCBdLFxyXG4gICAgY29sb3I6IGNvbG9ycy5kZWVwQmx1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgdGFnOiBbIHRhZ3MucXVvdGUgXSxcclxuICAgIGNvbG9yOiBjb2xvcnMuZGFya0dyZXlcclxuICB9LFxyXG4gIHsgdGFnOiBbIHRhZ3Muc3RyaW5nLCB0YWdzLmNoYXJhY3RlciwgdGFncy5kZWxldGVkIF0sIGNvbG9yOiBjb2xvcnMub3JhbmdlQnJvd24gfSxcclxuICB7XHJcbiAgICB0YWc6IHRhZ3MubGluayxcclxuICAgIGNvbG9yOiBjb2xvcnMubW9zc0dyZWVuLFxyXG4gICAgdGV4dERlY29yYXRpb246ICd1bmRlcmxpbmUnLFxyXG4gICAgdGV4dFVuZGVybGluZVBvc2l0aW9uOiAndW5kZXInXHJcbiAgfSxcclxuICB7XHJcbiAgICB0YWc6IFsgdGFncy51cmwsIHRhZ3MuZXNjYXBlLCB0YWdzLnNwZWNpYWwodGFncy5zdHJpbmcpIF0sXHJcbiAgICBjb2xvcjogY29sb3JzLnJlZFxyXG4gIH0sXHJcbiAgeyB0YWc6IFsgdGFncy5tZXRhIF0sIGNvbG9yOiBjb2xvcnMuaWNlQmx1ZSB9LFxyXG4gIHsgdGFnOiBbIHRhZ3MuY29tbWVudCBdLCBjb2xvcjogY29sb3JzLm1pZEdyZXksIGZvbnRTdHlsZTogJ2l0YWxpYycgfSxcclxuICB7IHRhZzogdGFncy5zdHJvbmcsIGZvbnRXZWlnaHQ6ICdib2xkJywgY29sb3I6IGNvbG9ycy5kZWVwQmx1ZSB9LFxyXG4gIHsgdGFnOiB0YWdzLmVtcGhhc2lzLCBmb250U3R5bGU6ICdpdGFsaWMnLCBjb2xvcjogY29sb3JzLmRlZXBCbHVlIH0sXHJcbiAgeyB0YWc6IHRhZ3Muc3RyaWtldGhyb3VnaCwgdGV4dERlY29yYXRpb246ICdsaW5lLXRocm91Z2gnIH0sXHJcbiAgeyB0YWc6IHRhZ3MuaGVhZGluZywgZm9udFdlaWdodDogJ2JvbGQnLCBjb2xvcjogY29sb3JzLm1pZEdyYXkgfSxcclxuICB7IHRhZzogdGFncy5zcGVjaWFsKHRhZ3MuaGVhZGluZzEpLCBmb250V2VpZ2h0OiAnYm9sZCcsIGNvbG9yOiBjb2xvcnMuZGFya0dyZXkgfSxcclxuICB7XHJcbiAgICB0YWc6IFsgdGFncy5oZWFkaW5nMSwgdGFncy5oZWFkaW5nMiwgdGFncy5oZWFkaW5nMywgdGFncy5oZWFkaW5nNCBdLFxyXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgY29sb3I6IGNvbG9ycy5taWRHcmV5XHJcbiAgfSxcclxuICB7IHRhZzogWyB0YWdzLmhlYWRpbmc1LCB0YWdzLmhlYWRpbmc2LCB0YWdzLnByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgdGFncy5pbnNlcnRlZCBdLCBjb2xvcjogY29sb3JzLmdyZXkgfSxcclxuICB7XHJcbiAgICB0YWc6IFsgdGFncy5jb250ZW50U2VwYXJhdG9yIF0sXHJcbiAgICBjb2xvcjogY29sb3JzLnllbGxvd1xyXG4gIH0sXHJcbiAgeyB0YWc6IHRhZ3MuaW52YWxpZCwgY29sb3I6IGNvbG9ycy5taWRHcmV5LCBib3JkZXJCb3R0b206IGAxcHggZG90dGVkICR7Y29sb3JCeVJvbGUuaW52YWxpZH1gIH1cclxuXSkpO1xyXG5cclxudmFyIGJwbW5pb0xpZ2h0ID0gW1xyXG4gIHRoZW1lJDEsXHJcbiAgaGlnaGxpZ2h0U3R5bGUkMVxyXG5dO1xuXG5jb25zdCBpdm9yeSA9ICcjYWJiMmJmJyxcclxuICAgICAgcGVhY2ggPSAnI2YwNzE3OCcsXHJcbiAgICAgIHN0b25lID0gJyM3ZDg3OTknLFxyXG4gICAgICBpbnZhbGlkID0gJyNmZmZmZmYnLFxyXG4gICAgICBwYXN0ZWxZZWxsb3cgPSAnI2ZmZmNlMScsXHJcbiAgICAgIHBhc3RlbE9yYW5nZSA9ICcjZWM5ZTZmJyxcclxuICAgICAgcmFpc2luQmxhY2sgPSAnIzIxMjUyYicsXHJcbiAgICAgIGhpZ2hsaWdodEJhY2tncm91bmQgPSAncmdiYSgwLCAwLCAwLCAwLjUpJyxcclxuICAgICAgYmFja2dyb3VuZCA9ICcjMjkyZDNlJyxcclxuICAgICAgdG9vbHRpcEJhY2tncm91bmQgPSAnIzM1M2E0MicsXHJcbiAgICAgIHNlbGVjdGlvbiA9ICdyZ2JhKDEyOCwgMjAzLCAxOTYsIDAuMiknLFxyXG4gICAgICBjdXJzb3IgPSAnI2ZmY2MwMCc7XHJcblxyXG5jb25zdCB1cmxIYXNoID0gJyUyMyc7XHJcbmNvbnN0IHdhcm5pbmdDb2xvckhleCA9ICdmZmY4OTAnO1xyXG5jb25zdCBlcnJvckNvbG9yID0gJ3JlZCc7XHJcbmNvbnN0IHdhcm5pbmdCYWNrZ3JvdW5kQ29sb3IgPSAnIzI4MWUxNic7XHJcbmNvbnN0IGVycm9yQmFja2dyb3VuZENvbG9yID0gJyMyODE2MTYnO1xyXG5cclxuY29uc3QgdGhlbWUgPSBFZGl0b3JWaWV3LnRoZW1lKFxyXG4gIHtcclxuICAgICcmJzoge1xyXG4gICAgICBjb2xvcjogJyNmZmZmZmYnLFxyXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmRcclxuICAgIH0sXHJcbiAgICAnLmNtLWNvbnRlbnQnOiB7XHJcbiAgICAgIGNhcmV0Q29sb3I6IGN1cnNvclxyXG4gICAgfSxcclxuICAgICcmLmNtLWZvY3VzZWQgLmNtLWN1cnNvcic6IHtcclxuICAgICAgYm9yZGVyTGVmdENvbG9yOiBjdXJzb3JcclxuICAgIH0sXHJcbiAgICAnJi5jbS1mb2N1c2VkIC5jbS1zZWxlY3Rpb25CYWNrZ3JvdW5kLCAuY20tc2VsZWN0aW9uQmFja2dyb3VuZCwgLmNtLWNvbnRlbnQgOjpzZWxlY3Rpb24nOlxyXG4gICAgICB7IGJhY2tncm91bmRDb2xvcjogc2VsZWN0aW9uIH0sXHJcbiAgICAnLmNtLXBhbmVscyc6IHsgYmFja2dyb3VuZENvbG9yOiByYWlzaW5CbGFjaywgY29sb3I6ICcjZmZmZmZmJyB9LFxyXG4gICAgJy5jbS1wYW5lbHMuY20tcGFuZWxzLXRvcCc6IHsgYm9yZGVyQm90dG9tOiAnMnB4IHNvbGlkIGJsYWNrJyB9LFxyXG4gICAgJy5jbS1wYW5lbHMuY20tcGFuZWxzLWJvdHRvbSc6IHsgYm9yZGVyVG9wOiAnMnB4IHNvbGlkIGJsYWNrJyB9LFxyXG4gICAgJy5jbS1zZWFyY2hNYXRjaCc6IHtcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzcyYTFmZjU5JyxcclxuICAgICAgb3V0bGluZTogJzFweCBzb2xpZCAjNDU3ZGZmJ1xyXG4gICAgfSxcclxuICAgICcuY20tc2VhcmNoTWF0Y2guY20tc2VhcmNoTWF0Y2gtc2VsZWN0ZWQnOiB7XHJcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJyM2MTk5ZmYyZidcclxuICAgIH0sXHJcbiAgICAnLmNtLWFjdGl2ZUxpbmUnOiB7IGJhY2tncm91bmRDb2xvcjogaGlnaGxpZ2h0QmFja2dyb3VuZCB9LFxyXG4gICAgJy5jbS1zZWxlY3Rpb25NYXRjaCc6IHsgYmFja2dyb3VuZENvbG9yOiAnI2FhZmU2NjFhJyB9LFxyXG4gICAgJyYuY20tZm9jdXNlZCAuY20tbWF0Y2hpbmdCcmFja2V0LCAmLmNtLWZvY3VzZWQgLmNtLW5vbm1hdGNoaW5nQnJhY2tldCc6IHtcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2JhZDBmODQ3JyxcclxuICAgICAgb3V0bGluZTogJzFweCBzb2xpZCAjNTE1YTZiJ1xyXG4gICAgfSxcclxuICAgICcuY20tZ3V0dGVycyc6IHtcclxuICAgICAgYmFja2dyb3VuZDogJyMyOTJkM2UnLFxyXG4gICAgICBjb2xvcjogJyM2NzZlOTUnLFxyXG4gICAgICBib3JkZXI6ICdub25lJyxcclxuICAgICAgcGFkZGluZzogJzAgNXB4J1xyXG4gICAgfSxcclxuICAgICcuY20tYWN0aXZlTGluZUd1dHRlcic6IHtcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiBoaWdobGlnaHRCYWNrZ3JvdW5kXHJcbiAgICB9LFxyXG4gICAgJy5jbS1mb2xkUGxhY2Vob2xkZXInOiB7XHJcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgYm9yZGVyOiAnbm9uZScsXHJcbiAgICAgIGNvbG9yOiAnI2RkZCdcclxuICAgIH0sXHJcbiAgICAnLmNtLXRvb2x0aXAnOiB7XHJcbiAgICAgIGJvcmRlcjogJ25vbmUnLFxyXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRvb2x0aXBCYWNrZ3JvdW5kXHJcbiAgICB9LFxyXG4gICAgJy5jbS10b29sdGlwIC5jbS10b29sdGlwLWFycm93OmJlZm9yZSc6IHtcclxuICAgICAgYm9yZGVyVG9wQ29sb3I6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIGJvcmRlckJvdHRvbUNvbG9yOiAndHJhbnNwYXJlbnQnXHJcbiAgICB9LFxyXG4gICAgJy5jbS10b29sdGlwIC5jbS10b29sdGlwLWFycm93OmFmdGVyJzoge1xyXG4gICAgICBib3JkZXJUb3BDb2xvcjogdG9vbHRpcEJhY2tncm91bmQsXHJcbiAgICAgIGJvcmRlckJvdHRvbUNvbG9yOiB0b29sdGlwQmFja2dyb3VuZFxyXG4gICAgfSxcclxuICAgICcuY20tdG9vbHRpcC1hdXRvY29tcGxldGUnOiB7XHJcbiAgICAgICcmID4gdWwgPiBsaVthcmlhLXNlbGVjdGVkXSc6IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhpZ2hsaWdodEJhY2tncm91bmQsXHJcbiAgICAgICAgY29sb3I6IGl2b3J5XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAnJiAuY20tbGludFJhbmdlLmNtLWxpbnRSYW5nZS13YXJuaW5nOjphZnRlcic6IHtcclxuICAgICAgYmFja2dyb3VuZEltYWdlOiBgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSczJz48cGF0aCBkPSdtMCAyLjUgbDIgLTEuNSBsMSAwIGwyIDEuNSBsMSAwJyBzdHJva2U9JyR7dXJsSGFzaCArIHdhcm5pbmdDb2xvckhleH0nIGZpbGw9J25vbmUnIHN0cm9rZS13aWR0aD0nMS4yJy8+PC9zdmc+XCIpYCxcclxuICAgIH0sXHJcbiAgICAnJiAuY20tbGludFJhbmdlLmNtLWxpbnRSYW5nZS1lcnJvcjo6YWZ0ZXInOiB7XHJcbiAgICAgIGJhY2tncm91bmRJbWFnZTogYHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nMyc+PHBhdGggZD0nbTAgMi41IGwyIC0xLjUgbDEgMCBsMiAxLjUgbDEgMCcgc3Ryb2tlPScke2Vycm9yQ29sb3J9JyBmaWxsPSdub25lJyBzdHJva2Utd2lkdGg9JzEuMicvPjwvc3ZnPlwiKWAsXHJcbiAgICB9LFxyXG4gICAgJyYgLmNtLWRpYWdub3N0aWMtd2FybmluZyc6IHtcclxuICAgICAgYm9yZGVyTGVmdDogYDVweCBzb2xpZCAjJHt3YXJuaW5nQ29sb3JIZXh9YCxcclxuICAgICAgYmFja2dyb3VuZDogd2FybmluZ0JhY2tncm91bmRDb2xvclxyXG4gICAgfSxcclxuICAgICcmIC5jbS1kaWFnbm9zdGljLWVycm9yJzoge1xyXG4gICAgICBib3JkZXJMZWZ0OiBgNXB4IHNvbGlkICR7ZXJyb3JDb2xvcn1gLFxyXG4gICAgICBiYWNrZ3JvdW5kOiBlcnJvckJhY2tncm91bmRDb2xvclxyXG4gICAgfSxcclxuICAgICcmIC5jbS1kaWFnbm9zdGljJzoge1xyXG4gICAgICBib3JkZXJSYWRpdXM6ICcycHgnLFxyXG4gICAgICBwYWRkaW5nOiAnM3B4IDhweCdcclxuICAgIH1cclxuICB9LFxyXG4gIHsgZGFyazogdHJ1ZSB9XHJcbik7XHJcblxyXG5jb25zdCBoaWdobGlnaHRTdHlsZSA9IHN5bnRheEhpZ2hsaWdodGluZyhIaWdobGlnaHRTdHlsZS5kZWZpbmUoW1xyXG5cclxuICAvLyBNYXJrZG93biBoZWFkaW5nc1xyXG4gIHsgdGFnOiB0YWdzLmhlYWRpbmcxLCBjb2xvcjogcGFzdGVsWWVsbG93IH0sXHJcbiAgeyB0YWc6IHRhZ3MuaGVhZGluZzIsIGNvbG9yOiBwYXN0ZWxZZWxsb3cgfSxcclxuICB7IHRhZzogdGFncy5oZWFkaW5nMywgY29sb3I6IHBhc3RlbFllbGxvdyB9LFxyXG4gIHsgdGFnOiB0YWdzLmhlYWRpbmc0LCBjb2xvcjogcGFzdGVsWWVsbG93IH0sXHJcbiAgeyB0YWc6IHRhZ3MuaGVhZGluZzUsIGNvbG9yOiBwYXN0ZWxZZWxsb3cgfSxcclxuICB7IHRhZzogdGFncy5oZWFkaW5nNiwgY29sb3I6IHBhc3RlbFllbGxvdyB9LFxyXG5cclxuICAvLyBGZWVsZXJzXHJcbiAgeyB0YWc6IHRhZ3Muc3BlY2lhbCh0YWdzLmJyYWNrZXQpLCBjb2xvcjogcGFzdGVsT3JhbmdlLCBmb250V2VpZ2h0OiAnYm9sZCcgfSxcclxuXHJcbiAgLy8gRXZlcnl0aGluZyBlbHNlXHJcbiAgeyB0YWc6IHRhZ3Mua2V5d29yZCwgY29sb3I6ICcjYzc5MmVhJyB9LFxyXG4gIHsgdGFnOiB0YWdzLm9wZXJhdG9yLCBjb2xvcjogJyM4OWRkZmYnIH0sXHJcbiAgeyB0YWc6IHRhZ3Muc3BlY2lhbCh0YWdzLnZhcmlhYmxlTmFtZSksIGNvbG9yOiAnI2VlZmZmZicgfSxcclxuICB7IHRhZzogdGFncy50eXBlTmFtZSwgY29sb3I6ICcjZjA3MTc4JyB9LFxyXG4gIHsgdGFnOiB0YWdzLmF0b20sIGNvbG9yOiAnI2Y3OGM2YycgfSxcclxuICB7IHRhZzogdGFncy5udW1iZXIsIGNvbG9yOiAnI2ZmNTM3MCcgfSxcclxuICB7IHRhZzogdGFncy5ib29sLCBjb2xvcjogJyNmZjUzNzAnIH0sXHJcbiAgeyB0YWc6IHRhZ3MuZGVmaW5pdGlvbih0YWdzLnZhcmlhYmxlTmFtZSksIGNvbG9yOiAnIzgyYWFmZicgfSxcclxuICB7IHRhZzogdGFncy5zdHJpbmcsIGNvbG9yOiAnI2MzZTg4ZCcgfSxcclxuICB7IHRhZzogdGFncy5jb21tZW50LCBjb2xvcjogc3RvbmUgfSxcclxuICB7IHRhZzogdGFncy50YWdOYW1lLCBjb2xvcjogJyNmZjUzNzAnIH0sXHJcbiAgeyB0YWc6IHRhZ3MuYnJhY2tldCwgY29sb3I6ICcjYTJhMWE0JyB9LFxyXG4gIHsgdGFnOiB0YWdzLm1ldGEsIGNvbG9yOiAnI2ZmY2I2YicgfSxcclxuICB7IHRhZzogdGFncy5zcGVjaWFsKHRhZ3Muc3RyaW5nKSwgY29sb3I6IHBlYWNoIH0sXHJcbiAgeyB0YWc6IHRhZ3MucHJvcGVydHlOYW1lLCBjb2xvcjogcGFzdGVsT3JhbmdlIH0sXHJcbiAgeyB0YWc6IHRhZ3MudmFyaWFibGVOYW1lLCBjb2xvcjogcGFzdGVsT3JhbmdlIH0sXHJcbiAgeyB0YWc6IHRhZ3MuYXR0cmlidXRlTmFtZSwgY29sb3I6IHBlYWNoIH0sXHJcbiAgeyB0YWc6IHRhZ3MuY2xhc3NOYW1lLCBjb2xvcjogcGVhY2ggfSxcclxuICB7IHRhZzogdGFncy5pbnZhbGlkLCBjb2xvcjogaW52YWxpZCB9XHJcbl0pKTtcclxuXHJcbnZhciBicG1uaW9EYXJrID0gW1xyXG4gIHRoZW1lLFxyXG4gIGhpZ2hsaWdodFN0eWxlXHJcbl07XG5cbmNvbnN0IGxpZ2h0VGhlbWUgPSBbIC4uLmNvbW1vblRoZW1lLCAuLi5icG1uaW9MaWdodCBdO1xyXG5jb25zdCBkYXJrVGhlbWUgPSBbIC4uLmNvbW1vblRoZW1lLCAuLi5icG1uaW9EYXJrIF07XG5cbmV4cG9ydCB7IGRhcmtUaGVtZSwgbGlnaHRUaGVtZSB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/cm-theme/dist/index.es.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/feel-editor/dist/index.es.js": /*!************************************************************!*\ !*** ./node_modules/@bpmn-io/feel-editor/dist/index.es.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FeelEditor)\n/* harmony export */ });\n/* harmony import */ var _codemirror_autocomplete__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @codemirror/autocomplete */ \"./node_modules/@codemirror/autocomplete/dist/index.js\");\n/* harmony import */ var _codemirror_commands__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @codemirror/commands */ \"./node_modules/@codemirror/commands/dist/index.js\");\n/* harmony import */ var _codemirror_language__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @codemirror/language */ \"./node_modules/@codemirror/language/dist/index.js\");\n/* harmony import */ var _codemirror_lint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @codemirror/lint */ \"./node_modules/@codemirror/lint/dist/index.js\");\n/* harmony import */ var _codemirror_state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @codemirror/state */ \"./node_modules/@codemirror/state/dist/index.js\");\n/* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @codemirror/view */ \"./node_modules/@codemirror/view/dist/index.js\");\n/* harmony import */ var _bpmn_io_feel_lint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @bpmn-io/feel-lint */ \"./node_modules/@bpmn-io/feel-lint/dist/index.esm.js\");\n/* harmony import */ var _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lezer/highlight */ \"./node_modules/@lezer/highlight/dist/index.js\");\n/* harmony import */ var lang_feel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lang-feel */ \"./node_modules/lang-feel/dist/index.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar linter = [ (0,_codemirror_lint__WEBPACK_IMPORTED_MODULE_2__.linter)((0,_bpmn_io_feel_lint__WEBPACK_IMPORTED_MODULE_0__.cmFeelLinter)()) ];\n\nconst baseTheme = _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView.theme({\n '& .cm-content': {\n padding: '0px',\n },\n '& .cm-line': {\n padding: '0px',\n },\n '&.cm-editor.cm-focused': {\n outline: 'none',\n },\n '& .cm-completionInfo': {\n whiteSpace: 'pre-wrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n '&.cm-editor': {\n height: '100%',\n },\n\n // Don't wrap whitespace for custom HTML\n '& .cm-completionInfo > *': {\n whiteSpace: 'normal'\n },\n '& .cm-completionInfo ul': {\n margin: 0,\n paddingLeft: '15px'\n },\n '& .cm-completionInfo pre': {\n marginBottom: 0,\n whiteSpace: 'pre-wrap'\n },\n '& .cm-completionInfo p': {\n marginTop: 0,\n },\n '& .cm-completionInfo p:not(:last-of-type)': {\n marginBottom: 0,\n }\n});\n\nconst highlightTheme = _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView.baseTheme({\n '& .variableName': {\n color: '#10f'\n },\n '& .number': {\n color: '#164'\n },\n '& .string': {\n color: '#a11'\n },\n '& .bool': {\n color: '#219'\n },\n '& .function': {\n color: '#aa3731',\n fontWeight: 'bold'\n },\n '& .control': {\n color: '#708'\n }\n});\n\nconst syntaxClasses = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_4__.syntaxHighlighting)(\n _codemirror_language__WEBPACK_IMPORTED_MODULE_4__.HighlightStyle.define([\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.variableName, class: 'variableName' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.name, class: 'variableName' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.number, class: 'number' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.string, class: 'string' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.bool, class: 'bool' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.function(_lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.variableName), class: 'function' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.function(_lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.special(_lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.variableName)), class: 'function' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.controlKeyword, class: 'control' },\n { tag: _lezer_highlight__WEBPACK_IMPORTED_MODULE_1__.tags.operatorKeyword, class: 'control' }\n ])\n);\n\nvar theme = [ baseTheme, highlightTheme, syntaxClasses ];\n\n// helpers ///////////////////////////////\n\nfunction _isEmpty(node) {\n return node && node.from === node.to;\n}\n\n/**\n * @param {any} node\n * @param {number} pos\n *\n * @return {boolean}\n */\nfunction isEmpty(node, pos) {\n\n // For the special case of empty nodes, we need to check the current node\n // as well. The previous node could be part of another token, e.g.\n // when typing functions \"abs(\".\n const nextNode = node.nextSibling;\n\n return _isEmpty(node) || (\n nextNode && nextNode.from === pos && _isEmpty(nextNode)\n );\n}\n\nfunction isVariableName(node) {\n return node && node.parent && node.parent.name === 'VariableName';\n}\n\nfunction isPathExpression(node) {\n if (!node) {\n return false;\n }\n\n if (node.name === 'PathExpression') {\n return true;\n }\n\n return isPathExpression(node.parent);\n}\n\n/**\n * @typedef { import('../core').Variable } Variable\n * @typedef { import('@codemirror/autocomplete').CompletionSource } CompletionSource\n */\n\n/**\n * @param { {\n * variables?: Variable[],\n * } } options\n *\n * @return { CompletionSource }\n */\nfunction pathExpressionCompletion({ variables }) {\n\n return (context) => {\n\n const nodeBefore = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_4__.syntaxTree)(context.state).resolve(context.pos, -1);\n\n if (!isPathExpression(nodeBefore)) {\n return;\n }\n\n const expression = findPathExpression(nodeBefore);\n\n // if the cursor is directly after the `.`, variable starts at the cursor position\n const from = nodeBefore === expression ? context.pos : nodeBefore.from;\n\n const path = getPath(expression, context);\n\n let options = variables;\n for (var i = 0; i < path.length - 1; i++) {\n var childVar = options.find(val => val.name === path[i].name);\n\n if (!childVar) {\n return null;\n }\n\n // only suggest if variable type matches\n if (\n childVar.isList !== 'optional' &&\n !!childVar.isList !== path[i].isList\n ) {\n return;\n }\n\n options = childVar.entries;\n }\n\n if (!options) return;\n\n options = options.map(v => ({\n label: v.name,\n type: 'variable',\n info: v.info,\n detail: v.detail\n }));\n\n const result = {\n from: from,\n options: options\n };\n\n return result;\n };\n}\n\n\nfunction findPathExpression(node) {\n while (node) {\n if (node.name === 'PathExpression') {\n return node;\n }\n node = node.parent;\n }\n}\n\n// parses the path expression into a list of variable names with type information\n// e.g. foo[0].bar => [ { name: 'foo', isList: true }, { name: 'bar', isList: false } ]\nfunction getPath(node, context) {\n let path = [];\n\n for (let child = node.firstChild; child; child = child.nextSibling) {\n if (child.name === 'PathExpression') {\n path.push(...getPath(child, context));\n } else if (child.name === 'FilterExpression') {\n path.push(...getFilter(child, context));\n }\n else {\n path.push({\n name: getNodeContent(child, context),\n isList: false\n });\n }\n }\n return path;\n}\n\nfunction getFilter(node, context) {\n const list = node.firstChild;\n\n if (list.name === 'PathExpression') {\n const path = getPath(list, context);\n const last = path[path.length - 1];\n last.isList = true;\n\n return path;\n }\n\n return [ {\n name: getNodeContent(list, context),\n isList: true\n } ];\n}\n\nfunction getNodeContent(node, context) {\n return context.state.sliceDoc(node.from, node.to);\n}\n\n/**\n * @typedef { import('../core').Variable } Variable\n * @typedef { import('@codemirror/autocomplete').CompletionSource } CompletionSource\n */\n\n/**\n * @param { {\n * variables?: Variable[],\n * builtins?: Variable[]\n * } } options\n *\n * @return { CompletionSource }\n */\nfunction variableCompletion({ variables = [], builtins = [] }) {\n\n const options = getVariableSuggestions(variables, builtins);\n\n if (!options.length) {\n return (context) => null;\n }\n\n return (context) => {\n\n const {\n pos,\n state\n } = context;\n\n // in most cases, use what is typed before the cursor\n const nodeBefore = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_4__.syntaxTree)(state).resolve(pos, -1);\n\n if (isEmpty(nodeBefore, pos)) {\n return context.explicit ? {\n from: pos,\n options\n } : null;\n }\n\n // only auto-complete variables\n if (!isVariableName(nodeBefore) || isPathExpression(nodeBefore)) {\n return null;\n }\n\n return {\n from: nodeBefore.from,\n options\n };\n };\n}\n\n/**\n * @param { Variable[] } variables\n * @param { Variable[] } builtins\n *\n * @returns {import('@codemirror/autocomplete').Completion[]}\n */\nfunction getVariableSuggestions(variables, builtins) {\n return [].concat(\n variables.map(v => createVariableSuggestion(v)),\n builtins.map(b => createVariableSuggestion(b))\n );\n}\n\n/**\n * @param {import('..').Variable} variable\n * @param {number} boost\n\n * @returns {import('@codemirror/autocomplete').Completion}\n */\nfunction createVariableSuggestion(variable, boost) {\n if (variable.type === 'function') {\n return createFunctionVariable(variable, boost);\n }\n\n return {\n label: variable.name,\n type: 'variable',\n info: variable.info,\n detail: variable.detail,\n boost\n };\n}\n\n/**\n * @param {import('..').Variable} variable\n * @param {number} boost\n *\n * @returns {import('@codemirror/autocomplete').Completion}\n */\nfunction createFunctionVariable(variable, boost) {\n const {\n name,\n info,\n detail,\n params = []\n } = variable;\n\n const paramsWithNames = params.map(({ name, type }, index) => ({\n name: name || `param ${index + 1}`,\n type\n }));\n\n const template = `${name}(${paramsWithNames.map(p => '${' + p.name + '}').join(', ')})`;\n\n const paramsSignature = paramsWithNames.map(({ name, type }) => (\n type ? `${name}: ${type}` : name\n )).join(', ');\n const label = `${name}(${paramsSignature})`;\n\n return (0,_codemirror_autocomplete__WEBPACK_IMPORTED_MODULE_5__.snippetCompletion)(template, {\n label,\n type: 'function',\n info,\n detail,\n boost\n });\n}\n\n/**\n * @typedef { import('../core').Variable } Variable\n * @typedef { import('@codemirror/autocomplete').CompletionSource } CompletionSource\n */\n\n/**\n * @param { {\n * variables?: Variable[],\n * builtins?: Variable[]\n * } } options\n *\n * @return { CompletionSource[] }\n */\nfunction completions({ variables = [], builtins = [] }) {\n\n return [\n pathExpressionCompletion({ variables }),\n variableCompletion({ variables, builtins }),\n (0,lang_feel__WEBPACK_IMPORTED_MODULE_6__.snippetCompletion)(lang_feel__WEBPACK_IMPORTED_MODULE_6__.snippets.map(snippet => ({ ...snippet, boost: -1 }))),\n ...lang_feel__WEBPACK_IMPORTED_MODULE_6__.keywordCompletions\n ];\n}\n\n/**\n * @typedef { 'expression' | 'unaryTests' } Dialect\n */\n\n/**\n * @param { {\n * dialect?: Dialect,\n * context?: Record,\n * completions?: import('@codemirror/autocomplete').CompletionSource[]\n * } } options\n *\n * @return { import('@codemirror/language').LanguageSupport }\n */\nfunction language(options) {\n return (0,lang_feel__WEBPACK_IMPORTED_MODULE_6__.feel)(options);\n}\n\n/**\n * @param { import('../core').Variable[] } variables\n *\n * @return {Record}\n */\nfunction createContext(variables, builtins) {\n return variables.slice().reverse().reduce((context, builtin) => {\n context[builtin.name] = () => {};\n\n return context;\n }, {});\n}\n\n/**\n * @typedef { 'expression' | 'unaryTests' } Dialect\n * @typedef { import('..').Variable } Variable\n */\n\n/**\n * @type {Facet}\n */\nconst builtinsFacet = _codemirror_state__WEBPACK_IMPORTED_MODULE_7__.Facet.define();\n\n/**\n * @type {Facet}\n */\nconst variablesFacet = _codemirror_state__WEBPACK_IMPORTED_MODULE_7__.Facet.define();\n\n/**\n * @type {Facet}\n */\nconst dialectFacet = _codemirror_state__WEBPACK_IMPORTED_MODULE_7__.Facet.define();\n\n/**\n * @typedef {object} Variable\n * @property {string} name name or key of the variable\n * @property {string} [info] short information about the variable, e.g. type\n * @property {string} [detail] longer description of the variable content\n * @property {boolean} [isList] whether the variable is a list\n * @property {Array} [schema] array of child variables if the variable is a context or list\n * @property {'function'|'variable'} [type] type of the variable\n * @property {Array<{name: string, type: string}>} [params] function parameters\n */\n\n/**\n * @typedef { {\n * dialect?: import('../language').Dialect,\n * variables?: Variable[],\n * builtins?: Variable[]\n * } } CoreConfig\n *\n * @typedef { import('@codemirror/autocomplete').CompletionSource } CompletionSource\n * @typedef { import('@codemirror/state').Extension } Extension\n */\n\n/**\n * @param { CoreConfig & { completions?: CompletionSource[] } } config\n *\n * @return { Extension }\n */\nfunction configure({\n dialect = 'expression',\n variables = [],\n builtins = [],\n completions: completions$1 = completions({ builtins, variables })\n}) {\n\n const context = createContext([ ...variables, ...builtins ]);\n\n return [\n dialectFacet.of(dialect),\n builtinsFacet.of(builtins),\n variablesFacet.of(variables),\n language({\n dialect,\n context,\n completions: completions$1\n })\n ];\n}\n\n/**\n * @param {import('@codemirror/state').EditorState } state\n *\n * @return { CoreConfig }\n */\nfunction get(state) {\n\n const builtins = state.facet(builtinsFacet)[0];\n const variables = state.facet(variablesFacet)[0];\n const dialect = state.facet(dialectFacet)[0];\n\n return {\n builtins,\n variables,\n dialect\n };\n}\n\nvar camundaTags = [\n\t{\n\t\tname: \"not(negand)\",\n\t\tdescription: \"

Returns the logical negation of the given value.

\\n

Function signature

\\n
not(negand: boolean): boolean\\n
\\n

Examples

\\n
not(true)\\n// false\\n\\nnot(null)\\n// null\\n
\\n\"\n\t},\n\t{\n\t\tname: \"is defined(value)\",\n\t\tdescription: \"

Camunda Extension

\\n

Checks if a given value is not null. If the value is null then the function returns false.\\nOtherwise, the function returns true.

\\n

Function signature

\\n
is defined(value: Any): boolean\\n
\\n

Examples

\\n
is defined(1)\\n// true\\n\\nis defined(null)\\n// false\\n\\nis defined(x)\\n// false - if no variable "x" exists\\n\\nis defined(x.y)\\n// false - if no variable "x" exists or it doesn't have a property "y"\\n
\\n

:::caution Breaking change

\\n

This function worked differently in previous versions. It returned true if the value was null.\\nSince this version, the function returns false if the value is null.

\\n

:::

\\n\"\n\t},\n\t{\n\t\tname: \"get or else(value, default)\",\n\t\tdescription: \"

Camunda Extension

\\n

Return the provided value parameter if not null, otherwise return the default parameter

\\n

Function signature

\\n
get or else(value: Any, default: Any): Any\\n
\\n

Examples

\\n
get or else("this", "default")\\n// "this"\\n\\nget or else(null, "default")\\n// "default"\\n\\nget or else(null, null)\\n// null\\n
\\n\"\n\t},\n\t{\n\t\tname: \"assert(value, condition)\",\n\t\tdescription: \"

Camunda Extension

\\n

Verify that the given condition is met. If the condition is true, the function returns the value.\\nOtherwise, the evaluation fails with an error.

\\n

Function signature

\\n
assert(value: Any, condition: Any)\\n
\\n

Examples

\\n
assert(x, x != null)\\n// "value" - if x is "value"\\n// error - if x is null or doesn't exist\\n\\nassert(x, x >= 0)\\n// 4 - if x is 4\\n// error - if x is less than zero\\n
\\n\"\n\t},\n\t{\n\t\tname: \"assert(value, condition, cause)\",\n\t\tdescription: \"

Camunda Extension

\\n

Verify that the given condition is met. If the condition is true, the function returns the value.\\nOtherwise, the evaluation fails with an error containing the given message.

\\n

Function signature

\\n
assert(value: Any, condition: Any, cause: String)\\n
\\n

Examples

\\n
assert(x, x != null, "'x' should not be null")\\n// "value" - if x is "value"\\n// error('x' should not be null) - if x is null or doesn't exist\\n\\nassert(x, x >= 0, "'x' should be positive")\\n// 4 - if x is 4\\n// error('x' should be positive) - if x is less than zero\\n
\\n\"\n\t},\n\t{\n\t\tname: \"get value(context, key)\",\n\t\tdescription: \"

Returns the value of the context entry with the given key.

\\n

Function signature

\\n
get value(context: context, key: string): Any\\n
\\n

Examples

\\n
get value({foo: 123}, "foo")\\n// 123\\n\\nget value({a: 1}, "b")\\n// null\\n
\\n\"\n\t},\n\t{\n\t\tname: \"get value(context, keys)\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns the value of the context entry for a context path defined by the given keys.

\\n

If keys contains the keys [k1, k2] then it returns the value at the nested entry k1.k2 of the context.

\\n

If keys are empty or the nested entry defined by the keys doesn't exist in the context, it returns null.

\\n

Function signature

\\n
get value(context: context, keys: list<string>): Any\\n
\\n

Examples

\\n
get value({x:1, y: {z:0}}, ["y", "z"])\\n// 0\\n\\nget value({x: {y: {z:0}}}, ["x", "y"])\\n// {z:0}\\n\\nget value({a: {b: 3}}, ["b"])\\n// null\\n
\\n\"\n\t},\n\t{\n\t\tname: \"get entries(context)\",\n\t\tdescription: \"

Returns the entries of the context as a list of key-value-pairs.

\\n

Function signature

\\n
get entries(context: context): list<context>\\n
\\n

The return value is a list of contexts. Each context contains two entries for "key" and "value".

\\n

Examples

\\n
get entries({foo: 123})\\n// [{key: "foo", value: 123}]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"context put(context, key, value)\",\n\t\tdescription: \"

Adds a new entry with the given key and value to the context. Returns a new context that includes the entry.

\\n

If an entry for the same key already exists in the context, it overrides the value.

\\n

Function signature

\\n
context put(context: context, key: string, value: Any): context\\n
\\n

Examples

\\n
context put({x:1}, "y", 2)\\n// {x:1, y:2}\\n
\\n

:::info\\nThe function context put() replaced the previous function put() (Camunda Extension). The\\nprevious function is deprecated and should not be used anymore.\\n:::

\\n\"\n\t},\n\t{\n\t\tname: \"context put(context, keys, value)\",\n\t\tdescription: \"

Adds a new entry with the given value to the context. The path of the entry is defined by the keys. Returns a new context that includes the entry.

\\n

If keys contains the keys [k1, k2] then it adds the nested entry k1.k2 = value to the context.

\\n

If an entry for the same keys already exists in the context, it overrides the value.

\\n

If keys are empty, it returns null.

\\n

Function signature

\\n
context put(context: context, keys: list<string>, value: Any): context\\n
\\n

Examples

\\n
context put({x:1}, ["y"], 2)\\n// {x:1, y:2}\\n\\ncontext put({x:1, y: {z:0}}, ["y", "z"], 2)\\n// {x:1, y: {z:2}}\\n\\ncontext put({x:1}, ["y", "z"], 2)\\n// {x:1, y: {z:2}}\\n
\\n\"\n\t},\n\t{\n\t\tname: \"context merge(contexts)\",\n\t\tdescription: \"

Union the given contexts. Returns a new context that includes all entries of the given contexts.

\\n

If an entry for the same key already exists in a context, it overrides the value. The entries are overridden in the same order as in the list of contexts.

\\n

Function signature

\\n
context merge(contexts: list<context>): context\\n
\\n

Examples

\\n
context merge([{x:1}, {y:2}])\\n// {x:1, y:2}\\n\\ncontext merge([{x:1, y: 0}, {y:2}])\\n// {x:1, y:2}\\n
\\n

:::info\\nThe function context merge() replaced the previous function put all() (Camunda Extension). The\\nprevious function is deprecated and should not be used anymore.\\n:::

\\n\"\n\t},\n\t{\n\t\tname: \"string(from)\",\n\t\tdescription: \"

Returns the given value as a string representation.

\\n

Function signature

\\n
string(from: Any): string\\n
\\n

Examples

\\n
string(1.1)\\n// "1.1"\\n\\nstring(date("2012-12-25"))\\n// "2012-12-25"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"number(from)\",\n\t\tdescription: \"

Parses the given string to a number.

\\n

Function signature

\\n
number(from: string): number\\n
\\n

Examples

\\n
number("1500.5")\\n// 1500.5\\n
\\n\"\n\t},\n\t{\n\t\tname: \"context(entries)\",\n\t\tdescription: \"

Constructs a context of the given list of key-value pairs. It is the reverse function to get entries().

\\n

Each key-value pair must be a context with two entries: key and value. The entry with name key must have a value of the type string.

\\n

It might override context entries if the keys are equal. The entries are overridden in the same order as the contexts in the given list.

\\n

Returns null if one of the entries is not a context or if a context doesn't contain the required entries.

\\n

Function signature

\\n
context(entries: list<context>): context\\n
\\n

Examples

\\n
context([{"key":"a", "value":1}, {"key":"b", "value":2}])\\n// {a:1, b:2}\\n
\\n\"\n\t},\n\t{\n\t\tname: \"date(from)\",\n\t\tdescription: \"

Returns a date from the given value.

\\n

Function signature

\\n
date(from: string): date\\n
\\n

Parses the given string into a date.

\\n
date(from: date and time): date\\n
\\n

Extracts the date component from the given date and time.

\\n

Examples

\\n
date("2018-04-29")\\n// date("2018-04-29")\\n\\ndate(date and time("2012-12-25T11:00:00"))\\n// date("2012-12-25")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"date(year, month, day)\",\n\t\tdescription: \"

Returns a date from the given components.

\\n

Function signature

\\n
date(year: number, month: number, day: number): date\\n
\\n

Examples

\\n
date(2012, 12, 25)\\n// date("2012-12-25")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"time(from)\",\n\t\tdescription: \"

Returns a time from the given value.

\\n

Function signature

\\n
time(from: string): time\\n
\\n

Parses the given string into a time.

\\n
time(from: date and time): time\\n
\\n

Extracts the time component from the given date and time.

\\n

Examples

\\n
time("12:00:00")\\n// time("12:00:00")\\n\\ntime(date and time("2012-12-25T11:00:00"))\\n// time("11:00:00")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"time(hour, minute, second)\",\n\t\tdescription: \"

Returns a time from the given components.

\\n

Function signature

\\n
time(hour: number, minute: number, second: number): time\\n
\\n

Examples

\\n
time(23, 59, 0)\\n// time("23:59:00")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"time(hour, minute, second, offset)\",\n\t\tdescription: \"

Returns a time from the given components, including a timezone offset.

\\n

Function signature

\\n
time(hour: number, minute: number, second: number, offset: days and time duration): time\\n
\\n

Examples

\\n
time(14, 30, 0, duration("PT1H"))\\n// time("14:30:00+01:00")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"date and time(from)\",\n\t\tdescription: \"

Parses the given string into a date and time.

\\n

Function signature

\\n
date and time(from: string): date and time\\n
\\n

Examples

\\n
date and time("2018-04-29T09:30:00")\\n// date and time("2018-04-29T09:30:00")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"date and time(date, time)\",\n\t\tdescription: \"

Returns a date and time from the given components.

\\n

Function signature

\\n
date and time(date: date, time: time): date and time\\n
\\n
date and time(date: date and time, time: time): date and time\\n
\\n

Returns a date and time value that consists of the date component of date combined with time.

\\n

Examples

\\n
date and time(date("2012-12-24"),time("T23:59:00"))\\n// date and time("2012-12-24T23:59:00")\\n\\ndate and time(date and time("2012-12-25T11:00:00"),time("T23:59:00"))\\n// date and time("2012-12-25T23:59:00")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"date and time(date, timezone)\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns the given date and time value at the given timezone.

\\n

If date has a different timezone than timezone then it adjusts the time to match the local time of timezone.

\\n

Function signature

\\n
date and time(date: date and time, timezone: string): date and time\\n
\\n

Examples

\\n
date and time(@"2020-07-31T14:27:30@Europe/Berlin", "America/Los_Angeles")\\n// date and time("2020-07-31T05:27:30@America/Los_Angeles")\\n\\ndate and time(@"2020-07-31T14:27:30", "Z")\\n// date and time("2020-07-31T12:27:30Z")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"duration(from)\",\n\t\tdescription: \"

Parses the given string into a duration. The duration is either a days and time duration or a years and months duration.

\\n

Function signature

\\n
duration(from: string): days and time duration\\n
\\n
duration(from: string): years and months duration\\n
\\n

Examples

\\n
duration("P5D")\\n// duration("P5D")\\n\\nduration("P32Y")\\n// duration("P32Y")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"years and months duration(from, to)\",\n\t\tdescription: \"

Returns the years and months duration between from and to.

\\n

Function signature

\\n
years and months duration(from: date, to: date): years and months duration\\n
\\n

Examples

\\n
years and months duration(date("2011-12-22"), date("2013-08-24"))\\n// duration("P1Y8M")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"list contains(list, element)\",\n\t\tdescription: \"

Returns true if the given list contains the element. Otherwise, returns false.

\\n

Function signature

\\n
list contains(list: list, element: Any): boolean\\n
\\n

Examples

\\n
list contains([1,2,3], 2)\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"count(list)\",\n\t\tdescription: \"

Returns the number of elements of the given list.

\\n

Function signature

\\n
count(list: list): number\\n
\\n

Examples

\\n
count([1,2,3])\\n// 3\\n
\\n\"\n\t},\n\t{\n\t\tname: \"min(list)\",\n\t\tdescription: \"

Returns the minimum of the given list.

\\n

Function signature

\\n
min(list: list): Any\\n
\\n

All elements in list should have the same type and be comparable.

\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
min([1,2,3])\\n// 1\\n\\nmin(1,2,3)\\n// 1\\n
\\n\"\n\t},\n\t{\n\t\tname: \"max(list)\",\n\t\tdescription: \"

Returns the maximum of the given list.

\\n

Function signature

\\n
max(list: list): Any\\n
\\n

All elements in list should have the same type and be comparable.

\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
max([1,2,3])\\n// 3\\n\\nmax(1,2,3)\\n// 3\\n
\\n\"\n\t},\n\t{\n\t\tname: \"sum(list)\",\n\t\tdescription: \"

Returns the sum of the given list of numbers.

\\n

Function signature

\\n
sum(list: list<number>): number\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
sum([1,2,3])\\n// 6\\n\\nsum(1,2,3)\\n// 6\\n
\\n\"\n\t},\n\t{\n\t\tname: \"product(list)\",\n\t\tdescription: \"

Returns the product of the given list of numbers.

\\n

Function signature

\\n
product(list: list<number>): number\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
product([2, 3, 4])\\n// 24\\n\\nproduct(2, 3, 4)\\n// 24\\n
\\n\"\n\t},\n\t{\n\t\tname: \"mean(list)\",\n\t\tdescription: \"

Returns the arithmetic mean (i.e. average) of the given list of numbers.

\\n

Function signature

\\n
mean(list: list<number>): number\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
mean([1,2,3])\\n// 2\\n\\nmean(1,2,3)\\n// 2\\n
\\n\"\n\t},\n\t{\n\t\tname: \"median(list)\",\n\t\tdescription: \"

Returns the median element of the given list of numbers.

\\n

Function signature

\\n
median(list: list<number>): number\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
median(8, 2, 5, 3, 4)\\n// 4\\n\\nmedian([6, 1, 2, 3])\\n// 2.5\\n
\\n\"\n\t},\n\t{\n\t\tname: \"stddev(list)\",\n\t\tdescription: \"

Returns the standard deviation of the given list of numbers.

\\n

Function signature

\\n
stddev(list: list<number>): number\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
stddev(2, 4, 7, 5)\\n// 2.0816659994661326\\n\\nstddev([2, 4, 7, 5])\\n// 2.0816659994661326\\n
\\n\"\n\t},\n\t{\n\t\tname: \"mode(list)\",\n\t\tdescription: \"

Returns the mode of the given list of numbers.

\\n

Function signature

\\n
mode(list: list<number>): number\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
mode(6, 3, 9, 6, 6)\\n// [6]\\n\\nmode([6, 1, 9, 6, 1])\\n// [1, 6]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"all(list)\",\n\t\tdescription: \"

Returns false if any element of the given list is false. Otherwise, returns true.

\\n

If the given list is empty, it returns true.

\\n

Function signature

\\n
all(list: list<boolean>): boolean\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
all([true,false])\\n// false\\n\\nall(false,null,true)\\n// false\\n
\\n

:::info\\nThe function all() replaced the previous function and(). The previous function is deprecated and\\nshould not be used anymore.\\n:::

\\n\"\n\t},\n\t{\n\t\tname: \"any(list)\",\n\t\tdescription: \"

Returns true if any element of the given list is true. Otherwise, returns false.

\\n

If the given list is empty, it returns false.

\\n

Function signature

\\n
any(list: list<boolean>): boolean\\n
\\n

The parameter list can be passed as a list or as a sequence of elements.

\\n

Examples

\\n
any([false,true])\\n// true\\n\\nany(false,null,true)\\n// true\\n
\\n

:::info\\nThe function any() replaced the previous function or(). The previous function is deprecated and\\nshould not be used anymore.\\n:::

\\n\"\n\t},\n\t{\n\t\tname: \"sublist(list, start position)\",\n\t\tdescription: \"

Returns a partial list of the given value starting at start position.

\\n

Function signature

\\n
sublist(list: list, start position: number): list\\n
\\n

The start position starts at the index 1. The last position is -1.

\\n

Examples

\\n
sublist([1,2,3], 2)\\n// [2,3]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"sublist(list, start position, length)\",\n\t\tdescription: \"

Returns a partial list of the given value starting at start position.

\\n

Function signature

\\n
sublist(list: list, start position: number, length: number): list\\n
\\n

The start position starts at the index 1. The last position is -1.

\\n

Examples

\\n
sublist([1,2,3], 1, 2)\\n// [1,2]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"append(list, items)\",\n\t\tdescription: \"

Returns the given list with all items appended.

\\n

Function signature

\\n
append(list: list, items: Any): list\\n
\\n

The parameter items can be a single element or a sequence of elements.

\\n

Examples

\\n
append([1], 2, 3)\\n// [1,2,3]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"concatenate(lists)\",\n\t\tdescription: \"

Returns a list that includes all elements of the given lists.

\\n

Function signature

\\n
concatenate(lists: list): list\\n
\\n

The parameter lists is a sequence of lists.

\\n

Examples

\\n
concatenate([1,2],[3])\\n// [1,2,3]\\n\\nconcatenate([1],[2],[3])\\n// [1,2,3]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"insert before(list, position, newItem)\",\n\t\tdescription: \"

Returns the given list with newItem inserted at position.

\\n

Function signature

\\n
insert before(list: list, position: number, newItem: Any): list\\n
\\n

The position starts at the index 1. The last position is -1.

\\n

Examples

\\n
insert before([1,3],1,2)\\n// [2,1,3]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"remove(list, position)\",\n\t\tdescription: \"

Returns the given list without the element at position.

\\n

Function signature

\\n
remove(list: list, position: number): list\\n
\\n

The position starts at the index 1. The last position is -1.

\\n

Examples

\\n
remove([1,2,3], 2)\\n// [1,3]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"reverse(list)\",\n\t\tdescription: \"

Returns the given list in revered order.

\\n

Function signature

\\n
reverse(list: list): list\\n
\\n

Examples

\\n
reverse([1,2,3])\\n// [3,2,1]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"index of(list, match)\",\n\t\tdescription: \"

Returns an ascending list of positions containing match.

\\n

Function signature

\\n
index of(list: list, match: Any): list<number>\\n
\\n

Examples

\\n
index of([1,2,3,2],2)\\n// [2,4]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"union(list)\",\n\t\tdescription: \"

Returns a list that includes all elements of the given lists without duplicates.

\\n

Function signature

\\n
union(list: list): list\\n
\\n

The parameter list is a sequence of lists.

\\n

Examples

\\n
union([1,2],[2,3])\\n// [1,2,3]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"distinct values(list)\",\n\t\tdescription: \"

Returns the given list without duplicates.

\\n

Function signature

\\n
distinct values(list: list): list\\n
\\n

Examples

\\n
distinct values([1,2,3,2,1])\\n// [1,2,3]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"duplicate values(list)\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns all duplicate values of the given list.

\\n

Function signature

\\n
duplicate values(list: list): list\\n
\\n

Examples

\\n
duplicate values([1,2,3,2,1])\\n// [1,2]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"flatten(list)\",\n\t\tdescription: \"

Returns a list that includes all elements of the given list without nested lists.

\\n

Function signature

\\n
flatten(list: list): list\\n
\\n

Examples

\\n
flatten([[1,2],[[3]], 4])\\n// [1,2,3,4]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"sort(list, precedes)\",\n\t\tdescription: \"

Returns the given list sorted by the precedes function.

\\n

Function signature

\\n
sort(list: list, precedes: function<(Any, Any) -> boolean>): list\\n
\\n

Examples

\\n
sort(list: [3,1,4,5,2], precedes: function(x,y) x < y)\\n// [1,2,3,4,5]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"string join(list)\",\n\t\tdescription: \"

Joins a list of strings into a single string. This is similar to\\nJava's joining\\nfunction.

\\n

If an item of the list is null, the item is ignored for the result string. If an item is\\nneither a string nor null, the function returns null instead of a string.

\\n

Function signature

\\n
string join(list: list<string>): string\\n
\\n

Examples

\\n
string join(["a","b","c"])\\n// "abc"\\n\\nstring join(["a",null,"c"])\\n// "ac"\\n\\nstring join([])\\n// ""\\n
\\n\"\n\t},\n\t{\n\t\tname: \"string join(list, delimiter)\",\n\t\tdescription: \"

Joins a list of strings into a single string. This is similar to\\nJava's joining\\nfunction.

\\n

If an item of the list is null, the item is ignored for the result string. If an item is\\nneither a string nor null, the function returns null instead of a string.

\\n

The resulting string contains a delimiter between each element.

\\n

Function signature

\\n
string join(list: list<string>, delimiter: string): string\\n
\\n

Examples

\\n
string join(["a"], "X")\\n// "a"\\n\\nstring join(["a","b","c"], ", ")\\n// "a, b, c"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"string join(list, delimiter, prefix, suffix)\",\n\t\tdescription: \"

Camunda Extension

\\n

Joins a list of strings into a single string. This is similar to\\nJava's joining\\nfunction.

\\n

If an item of the list is null, the item is ignored for the result string. If an item is\\nneither a string nor null, the function returns null instead of a string.

\\n

The resulting string starts with prefix, contains a delimiter between each element, and ends\\nwith suffix.

\\n

Function signature

\\n
string join(list: list<string>, delimiter: string, prefix: string, suffix: string): string\\n
\\n

Examples

\\n
string join(["a","b","c"], ", ", "[", "]")\\n// "[a, b, c]"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"decimal(n, scale)\",\n\t\tdescription: \"

Rounds the given value at the given scale.

\\n

Function signature

\\n
decimal(n: number, scale: number): number\\n
\\n

Examples

\\n
decimal(1/3, 2)\\n// .33\\n\\ndecimal(1.5, 0)\\n// 2\\n
\\n\"\n\t},\n\t{\n\t\tname: \"floor(n)\",\n\t\tdescription: \"

Rounds the given value with rounding mode flooring.

\\n

Function signature

\\n
floor(n: number): number\\n
\\n

Examples

\\n
floor(1.5)\\n// 1\\n\\nfloor(-1.5)\\n// -2\\n
\\n\"\n\t},\n\t{\n\t\tname: \"floor(n, scale)\",\n\t\tdescription: \"

Rounds the given value with rounding mode flooring at the given scale.

\\n

Function signature

\\n
floor(n: number, scale: number): number\\n
\\n

Examples

\\n
floor(-1.56, 1)\\n// -1.6\\n
\\n\"\n\t},\n\t{\n\t\tname: \"ceiling(n)\",\n\t\tdescription: \"

Rounds the given value with rounding mode ceiling.

\\n

Function signature

\\n
ceiling(n: number): number\\n
\\n

Examples

\\n
ceiling(1.5)\\n// 2\\n\\nceiling(-1.5)\\n// -1\\n
\\n\"\n\t},\n\t{\n\t\tname: \"ceiling(n, scale)\",\n\t\tdescription: \"

Rounds the given value with rounding mode ceiling at the given scale.

\\n

Function signature

\\n
ceiling(n: number, scale: number): number\\n
\\n

Examples

\\n
ceiling(-1.56, 1)\\n// -1.5\\n
\\n\"\n\t},\n\t{\n\t\tname: \"round up(n, scale)\",\n\t\tdescription: \"

Rounds the given value with the rounding mode round-up at the given scale.

\\n

Function signature

\\n
round up(n: number, scale: number): number\\n
\\n

Examples

\\n
round up(5.5)\\n// 6\\n\\nround up(-5.5)\\n// -6\\n\\nround up(1.121, 2)\\n// 1.13\\n\\nround up(-1.126, 2)\\n// -1.13\\n
\\n\"\n\t},\n\t{\n\t\tname: \"round down(n, scale)\",\n\t\tdescription: \"

Rounds the given value with the rounding mode round-down at the given scale.

\\n

Function signature

\\n
round down(n: number, scale: number): number\\n
\\n

Examples

\\n
round down(5.5, 0)\\n// 5\\n\\nround down (-5.5, 0)\\n// -5\\n\\nround down (1.121, 2)\\n// 1.12\\n\\nround down (-1.126, 2)\\n// -1.12\\n
\\n\"\n\t},\n\t{\n\t\tname: \"round half up(n, scale)\",\n\t\tdescription: \"

Rounds the given value with the rounding mode round-half-up at the given scale.

\\n

Function signature

\\n
round half up(n: number, scale: number): number\\n
\\n

Examples

\\n
round half up(5.5, 0)\\n// 6\\n\\nround half up(-5.5, 0)\\n// -6\\n\\nround half up(1.121, 2)\\n// 1.12\\n\\nround half up(-1.126, 2)\\n// -1.13\\n
\\n\"\n\t},\n\t{\n\t\tname: \"round half down(n, scale)\",\n\t\tdescription: \"

Rounds the given value with the rounding mode round-half-down at the given scale.

\\n

Function signature

\\n
round half down(n: number, scale: number): number\\n
\\n

Examples

\\n
round half down (5.5, 0)\\n// 5\\n\\nround half down (-5.5, 0)\\n// -5\\n\\nround half down (1.121, 2)\\n// 1.12\\n\\nround half down (-1.126, 2)\\n// -1.13\\n
\\n\"\n\t},\n\t{\n\t\tname: \"abs(number)\",\n\t\tdescription: \"

Returns the absolute value of the given numeric value.

\\n

Function signature

\\n
abs(number: number): number\\n
\\n

Examples

\\n
abs(10)\\n// 10\\n\\nabs(-10)\\n// 10\\n
\\n\"\n\t},\n\t{\n\t\tname: \"modulo(dividend, divisor)\",\n\t\tdescription: \"

Returns the remainder of the division of dividend by divisor.

\\n

Function signature

\\n
modulo(dividend: number, divisor: number): number\\n
\\n

Examples

\\n
modulo(12, 5)\\n// 2\\n
\\n\"\n\t},\n\t{\n\t\tname: \"sqrt(number)\",\n\t\tdescription: \"

Returns the square root of the given value.

\\n

Function signature

\\n
sqrt(number: number): number\\n
\\n

Examples

\\n
sqrt(16)\\n// 4\\n
\\n\"\n\t},\n\t{\n\t\tname: \"log(number)\",\n\t\tdescription: \"

Returns the natural logarithm (base e) of the given value.

\\n

Function signature

\\n
log(number: number): number\\n
\\n

Examples

\\n
log(10)\\n// 2.302585092994046\\n
\\n\"\n\t},\n\t{\n\t\tname: \"exp(number)\",\n\t\tdescription: \"

Returns the Euler’s number e raised to the power of the given number .

\\n

Function signature

\\n
exp(number: number): number\\n
\\n

Examples

\\n
exp(5)\\n// 148.4131591025766\\n
\\n\"\n\t},\n\t{\n\t\tname: \"odd(number)\",\n\t\tdescription: \"

Returns true if the given value is odd. Otherwise, returns false.

\\n

Function signature

\\n
odd(number: number): boolean\\n
\\n

Examples

\\n
odd(5)\\n// true\\n\\nodd(2)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"even(number)\",\n\t\tdescription: \"

Returns true if the given is even. Otherwise, returns false.

\\n

Function signature

\\n
even(number: number): boolean\\n
\\n

Examples

\\n
even(5)\\n// false\\n\\neven(2)\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"random number()\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns a random number between 0 and 1.

\\n

Function signature

\\n
random number(): number\\n
\\n

Examples

\\n
random number()\\n// 0.9701618132579795\\n
\\n\"\n\t},\n\t{\n\t\tname: \"before(point1, point2)\",\n\t\tdescription: \"

Function signature

\\n
before(point1: Any, point2: Any): boolean\\n
\\n

Examples

\\n
before(1, 10)\\n// true\\n\\nbefore(10, 1)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"before(range, point)\",\n\t\tdescription: \"

Function signature

\\n
before(range: range, point: Any): boolean\\n
\\n

Examples

\\n
before([1..5], 10)\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"before(point, range)\",\n\t\tdescription: \"

Function signature

\\n
before(point: Any, range: range): boolean\\n
\\n

Examples

\\n
before(1, [2..5])\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"before(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
before(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
before([1..5], [6..10])\\n// true\\n\\nbefore([1..5),[5..10])\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"after(point1, point2)\",\n\t\tdescription: \"

Function signature

\\n
after(point1: Any, point2: Any): boolean\\n
\\n

Examples

\\n
after(10, 1)\\n// true\\n\\nafter(1, 10)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"after(range, point)\",\n\t\tdescription: \"

Function signature

\\n
after(range: range, point: Any): boolean\\n
\\n

Examples

\\n
after([1..5], 10)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"after(point, range)\",\n\t\tdescription: \"

Function signature

\\n
after(point: Any, range: range): boolean\\n
\\n

Examples

\\n
after(12, [2..5])\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"after(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
after(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
after([6..10], [1..5])\\n// true\\n\\nafter([5..10], [1..5))\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"meets(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
meets(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
meets([1..5], [5..10])\\n// true\\n\\nmeets([1..3], [4..6])\\n// false\\n\\nmeets([1..3], [3..5])\\n// true\\n\\nmeets([1..5], (5..8])\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"met by(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
met by(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
met by([5..10], [1..5])\\n// true\\n\\nmet by([3..4], [1..2])\\n// false\\n\\nmet by([3..5], [1..3])\\n// true\\n\\nmet by((5..8], [1..5))\\n// false\\n\\nmet by([5..10], [1..5))\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"overlaps(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
overlaps(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
overlaps([5..10], [1..6])\\n// true\\n\\noverlaps((3..7], [1..4])\\n// true\\n\\noverlaps([1..3], (3..6])\\n// false\\n\\noverlaps((5..8], [1..5))\\n// false\\n\\noverlaps([4..10], [1..5))\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"overlaps before(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
overlaps before(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
overlaps before([1..5], [4..10])\\n// true\\n\\noverlaps before([3..4], [1..2])\\n// false\\n\\noverlaps before([1..3], (3..5])\\n// false\\n\\noverlaps before([1..5), (3..8])\\n// true\\n\\noverlaps before([1..5), [5..10])\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"overlaps after(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
overlaps after(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
overlaps after([4..10], [1..5])\\n// true\\n\\noverlaps after([3..4], [1..2])\\n// false\\n\\noverlaps after([3..5], [1..3))\\n// false\\n\\noverlaps after((5..8], [1..5))\\n// false\\n\\noverlaps after([4..10], [1..5))\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"finishes(point, range)\",\n\t\tdescription: \"

Function signature

\\n
finishes(point: Any, range: range): boolean\\n
\\n

Examples

\\n
finishes(5, [1..5])\\n// true\\n\\nfinishes(10, [1..7])\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"finishes(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
finishes(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
finishes([3..5], [1..5])\\n// true\\n\\nfinishes((1..5], [1..5))\\n// false\\n\\nfinishes([5..10], [1..10))\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"finished by(range, point)\",\n\t\tdescription: \"

Function signature

\\n
finished by(range: range, point: Any): boolean\\n
\\n

Examples

\\n
finished by([5..10], 10)\\n// true\\n\\nfinished by([3..4], 2)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"finished by(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
finished by(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
finished by([1..5], [3..5])\\n// true\\n\\nfinished by((5..8], [1..5))\\n// false\\n\\nfinished by([5..10], (1..10))\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"includes(range, point)\",\n\t\tdescription: \"

Function signature

\\n
includes(range: range, point: Any): boolean\\n
\\n

Examples

\\n
includes([5..10], 6)\\n// true\\n\\nincludes([3..4], 5)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"includes(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
includes(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
includes([1..10], [4..6])\\n// true\\n\\nincludes((5..8], [1..5))\\n// false\\n\\nincludes([1..10], [1..5))\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"during(point, range)\",\n\t\tdescription: \"

Function signature

\\n
during(point: Any, range: range): boolean\\n
\\n

Examples

\\n
during(5, [1..10])\\n// true\\n\\nduring(12, [1..10])\\n// false\\n\\nduring(1, (1..10])\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"during(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
during(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
during([4..6], [1..10))\\n// true\\n\\nduring((1..5], (1..10])\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"starts(point, range)\",\n\t\tdescription: \"

Function signature

\\n
starts(point: Any, range: range): boolean\\n
\\n

Examples

\\n
starts(1, [1..5])\\n// true\\n\\nstarts(1, (1..8])\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"starts(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
starts(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
starts((1..5], [1..5])\\n// false\\n\\nstarts([1..10], [1..5])\\n// false\\n\\nstarts((1..5), (1..10))\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"started by(range, point)\",\n\t\tdescription: \"

Function signature

\\n
started by(range: range, point: Any): boolean\\n
\\n

Examples

\\n
started by([1..10], 1)\\n// true\\n\\nstarted by((1..10], 1)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"started by(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
started by(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
started by([1..10], [1..5])\\n// true\\n\\nstarted by((1..10], [1..5))\\n// false\\n\\nstarted by([1..10], [1..10))\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"coincides(point1, point2)\",\n\t\tdescription: \"

Function signature

\\n
coincides(point1: Any, point2: Any): boolean\\n
\\n

Examples

\\n
coincides(5, 5)\\n// true\\n\\ncoincides(3, 4)\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"coincides(range1, range2)\",\n\t\tdescription: \"

Function signature

\\n
coincides(range1: range, range2: range): boolean\\n
\\n

Examples

\\n
coincides([1..5], [1..5])\\n// true\\n\\ncoincides((1..5], [1..5))\\n// false\\n\\ncoincides([1..5], [2..6])\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"substring(string, start position)\",\n\t\tdescription: \"

Returns a substring of the given value starting at start position.

\\n

Function signature

\\n
substring(string: string, start position: number): string\\n
\\n

The start position starts at the index 1. The last position is -1.

\\n

Examples

\\n
substring("foobar", 3)\\n// "obar"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"substring(string, start position, length)\",\n\t\tdescription: \"

Returns a substring of the given value starting at start position.

\\n

Function signature

\\n
substring(string: string, start position: number, length: number): string\\n
\\n

The start position starts at the index 1. The last position is -1.

\\n

Examples

\\n
substring("foobar", 3, 3)\\n// "oba"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"string length(string)\",\n\t\tdescription: \"

Returns the number of characters in the given value.

\\n

Function signature

\\n
string length(string: string): number\\n
\\n

Examples

\\n
string length("foo")\\n// 3\\n
\\n\"\n\t},\n\t{\n\t\tname: \"upper case(string)\",\n\t\tdescription: \"

Returns the given value with all characters are uppercase.

\\n

Function signature

\\n
upper case(string: string): string\\n
\\n

Examples

\\n
upper case("aBc4")\\n// "ABC4"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"lower case(string)\",\n\t\tdescription: \"

Returns the given value with all characters are lowercase.

\\n

Function signature

\\n
lower case(string: string): string\\n
\\n

Examples

\\n
lower case("aBc4")\\n// "abc4"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"substring before(string, match)\",\n\t\tdescription: \"

Returns a substring of the given value that contains all characters before match.

\\n

Function signature

\\n
substring before(string: string, match: string): string\\n
\\n

Examples

\\n
substring before("foobar", "bar")\\n// "foo"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"substring after(string, match)\",\n\t\tdescription: \"

Returns a substring of the given value that contains all characters after match.

\\n

Function signature

\\n
substring after(string: string, match: string): string\\n
\\n

Examples

\\n
substring after("foobar", "ob")\\n// "ar"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"contains(string, match)\",\n\t\tdescription: \"

Returns true if the given value contains the substring match. Otherwise, returns false.

\\n

Function signature

\\n
contains(string: string, match: string): boolean\\n
\\n

Examples

\\n
contains("foobar", "of")\\n// false\\n
\\n\"\n\t},\n\t{\n\t\tname: \"starts with(string, match)\",\n\t\tdescription: \"

Returns true if the given value starts with the substring match. Otherwise, returns false.

\\n

Function signature

\\n
starts with(string: string, match: string): boolean\\n
\\n

Examples

\\n
starts with("foobar", "fo")\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"ends with(string, match)\",\n\t\tdescription: \"

Returns true if the given value ends with the substring match. Otherwise, returns false.

\\n

Function signature

\\n
ends with(string: string, match: string): boolean\\n
\\n

Examples

\\n
ends with("foobar", "r")\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"matches(input, pattern)\",\n\t\tdescription: \"

Returns true if the given value matches the pattern. Otherwise, returns false.

\\n

Function signature

\\n
matches(input: string, pattern: string): boolean\\n
\\n

The pattern is a string that contains a regular expression.

\\n

Examples

\\n
matches("foobar", "^fo*bar")\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"matches(input, pattern, flags)\",\n\t\tdescription: \"

Returns true if the given value matches the pattern. Otherwise, returns false.

\\n

Function signature

\\n
matches(input: string, pattern: string, flags: string): boolean\\n
\\n

The pattern is a string that contains a regular expression.

\\n

The flags can contain one or more of the following characters:

\\n
    \\n
  • s (dot-all)
  • \\n
  • m (multi-line)
  • \\n
  • i (case insensitive)
  • \\n
  • x (comments)
  • \\n
\\n

Examples

\\n
matches("FooBar", "foo", "i")\\n// true\\n
\\n\"\n\t},\n\t{\n\t\tname: \"replace(input, pattern, replacement)\",\n\t\tdescription: \"

Returns the resulting string after replacing all occurrences of pattern with replacement.

\\n

Function signature

\\n
replace(input: string, pattern: string, replacement: string): string\\n
\\n

The pattern is a string that contains a regular expression.

\\n

The replacement can access the match groups by using $ and the number of the group, for example,\\n$1 to access the first group.

\\n

Examples

\\n
replace("abcd", "(ab)|(a)", "[1=$1][2=$2]")\\n// "[1=ab][2=]cd"\\n\\nreplace("0123456789", "(\\\\d{3})(\\\\d{3})(\\\\d{4})", "($1) $2-$3")\\n// "(012) 345-6789"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"replace(input, pattern, replacement, flags)\",\n\t\tdescription: \"

Returns the resulting string after replacing all occurrences of pattern with replacement.

\\n

Function signature

\\n
replace(input: string, pattern: string, replacement: string, flags: string): string\\n
\\n

The pattern is a string that contains a regular expression.

\\n

The replacement can access the match groups by using $ and the number of the group, for example,\\n$1 to access the first group.

\\n

The flags can contain one or more of the following characters:

\\n
    \\n
  • s (dot-all)
  • \\n
  • m (multi-line)
  • \\n
  • i (case insensitive)
  • \\n
  • x (comments)
  • \\n
\\n

Examples

\\n
replace("How do you feel?", "Feel", "FEEL", "i")\\n// "How do you FEEL?"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"split(string, delimiter)\",\n\t\tdescription: \"

Splits the given value into a list of substrings, breaking at each occurrence of the delimiter pattern.

\\n

Function signature

\\n
split(string: string, delimiter: string): list<string>\\n
\\n

The delimiter is a string that contains a regular expression.

\\n

Examples

\\n
split("John Doe", "\\\\s" )\\n// ["John", "Doe"]\\n\\nsplit("a;b;c;;", ";")\\n// ["a", "b", "c", "", ""]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"extract(string, pattern)\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns all matches of the pattern in the given string. Returns an empty list if the pattern doesn't\\nmatch.

\\n

Function signature

\\n
extract(string: string, pattern: string): list<string>\\n
\\n

The pattern is a string that contains a regular expression.

\\n

Examples

\\n
extract("references are 1234, 1256, 1378", "12[0-9]*")\\n// ["1234","1256"]\\n
\\n\"\n\t},\n\t{\n\t\tname: \"now()\",\n\t\tdescription: \"

Returns the current date and time including the timezone.

\\n

Function signature

\\n
now(): date and time\\n
\\n

Examples

\\n
now()\\n// date and time("2020-07-31T14:27:30@Europe/Berlin")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"today()\",\n\t\tdescription: \"

Returns the current date.

\\n

Function signature

\\n
today(): date\\n
\\n

Examples

\\n
today()\\n// date("2020-07-31")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"day of week(date)\",\n\t\tdescription: \"

Returns the day of the week according to the Gregorian calendar. Note that it always returns the English name of the day.

\\n

Function signature

\\n
day of week(date: date): string\\n
\\n
day of week(date: date and time): string\\n
\\n

Examples

\\n
day of week(date("2019-09-17"))\\n// "Tuesday"\\n\\nday of week(date and time("2019-09-17T12:00:00"))\\n// "Tuesday"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"day of year(date)\",\n\t\tdescription: \"

Returns the Gregorian number of the day within the year.

\\n

Function signature

\\n
day of year(date: date): number\\n
\\n
day of year(date: date and time): number\\n
\\n

Examples

\\n
day of year(date("2019-09-17"))\\n// 260\\n\\nday of year(date and time("2019-09-17T12:00:00"))\\n// 260\\n
\\n\"\n\t},\n\t{\n\t\tname: \"week of year(date)\",\n\t\tdescription: \"

Returns the Gregorian number of the week within the year, according to ISO 8601.

\\n

Function signature

\\n
week of year(date: date): number\\n
\\n
week of year(date: date and time): number\\n
\\n

Examples

\\n
week of year(date("2019-09-17"))\\n// 38\\n\\nweek of year(date and time("2019-09-17T12:00:00"))\\n// 38\\n
\\n\"\n\t},\n\t{\n\t\tname: \"month of year(date)\",\n\t\tdescription: \"

Returns the month of the year according to the Gregorian calendar. Note that it always returns the English name of the month.

\\n

Function signature

\\n
month of year(date: date): string\\n
\\n
month of year(date: date and time): string\\n
\\n

Examples

\\n
month of year(date("2019-09-17"))\\n// "September"\\n\\nmonth of year(date and time("2019-09-17T12:00:00"))\\n// "September"\\n
\\n\"\n\t},\n\t{\n\t\tname: \"abs(n)\",\n\t\tdescription: \"

Returns the absolute value of a given duration.

\\n

Function signature

\\n
abs(n: days and time duration): days and time duration\\n
\\n
abs(n: years and months duration): years and months duration\\n
\\n

Examples

\\n
abs(duration("-PT5H"))\\n// "duration("PT5H")"\\n\\nabs(duration("PT5H"))\\n// "duration("PT5H")"\\n\\nabs(duration("-P2M"))\\n// duration("P2M")\\n
\\n\"\n\t},\n\t{\n\t\tname: \"last day of month(date)\",\n\t\tdescription: \"

Camunda Extension

\\n

Takes the month of the given date or date-time value and returns the last day of this month.

\\n

Function signature

\\n
last day of month(date: date): date\\n
\\n
last day of month(date: date and time): date\\n
\\n

Examples

\\n
last day of month(date("2022-10-01"))\\n// date("2022-10-31"))\\n\\nlast day of month(date and time("2022-10-16T12:00:00"))\\n// date("2022-10-31"))\\n
\\n\"\n\t},\n\t{\n\t\tname: \"is empty(list)\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns true if the given list is empty. Otherwise, returns false.

\\n

Function signature

\\n
is empty(list: list): boolean
\\n

Examples

\\n
is empty([])\\n// true\\n\\nis empty([1,2,3])\\n// false\\n
\"\n\t},\n\t{\n\t\tname: \"trim(string)\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns the given string without leading and trailing spaces.

\\n

Function signature

\\n
trim(string: string): string
\\n

Examples

\\n
trim(\\\"  hello world  \\\")\\n// \\\"hello world\\\"\\n\\ntrim(\\\"hello   world \\\")\\n// \\\"hello   world\\\"\\n
\"\n\t},\n\t{\n\t\tname: \"uuid()\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns a UUID (Universally Unique Identifier) with 36 characters.

\\n

Function signature

\\n
uuid(): string
\\n

Examples

\\n
uuid()\\n// \\\"7793aab1-d761-4d38-916b-b7270e309894\\\"\\n
\"\n\t},\n\t{\n\t\tname: \"to base64(string)\",\n\t\tdescription: \"

Camunda Extension

\\n

Returns the given string encoded in Base64 format.

\\n

Function signature

\\n
to base64(value: string): string
\\n

Examples

\\n
to base64(\\\"FEEL\\\")\\n// \\\"RkVFTA==\\\"\\n
\"\n\t}\n];\n\n/**\n * @param { import('..').Builtin[] } builtins\n *\n * @returns {import('..').Variable[] } variable\n */\nfunction parseBuiltins(builtins) {\n return builtins.map(parseBuiltin);\n}\n\n/**\n * @param { import('..').Builtin } builtin\n *\n * @returns { import('..').Variable } variable\n */\nfunction parseBuiltin(builtin) {\n\n const {\n name,\n description\n } = builtin;\n\n const match = name.match(/^([\\w\\s]+)\\((.*)\\)$/);\n const functionName = match[1];\n const functionArguments = match[2];\n\n // parameterless function matches as empty string\n const params = functionArguments ? functionArguments.split(', ').map(name => ({ name })) : [];\n\n return {\n name: functionName,\n type: 'function',\n params,\n info: () => {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.domify)(`
${description}
`);\n },\n boost: 0\n };\n}\n\nconst camunda = parseBuiltins(camundaTags);\n\n/**\n * @typedef { import('./core').Variable } Variable\n */\n\n/**\n * @typedef {object} Builtin\n * @property {string} name\n * @property {string} description\n */\n\nconst coreConf = new _codemirror_state__WEBPACK_IMPORTED_MODULE_7__.Compartment();\nconst placeholderConf = new _codemirror_state__WEBPACK_IMPORTED_MODULE_7__.Compartment();\n\n\n/**\n * Creates a FEEL editor in the supplied container\n *\n * @param {Object} config\n * @param {DOMNode} config.container\n * @param {Extension[]} [config.extensions]\n * @param {Dialect} [config.dialect='expression']\n * @param {DOMNode|String} [config.tooltipContainer]\n * @param {Function} [config.onChange]\n * @param {Function} [config.onKeyDown]\n * @param {Function} [config.onLint]\n * @param {Boolean} [config.readOnly]\n * @param {String} [config.value]\n * @param {Variable[]} [config.variables]\n * @param {Variable[]} [config.builtins]\n *\n * @returns {Object} editor\n */\nfunction FeelEditor({\n extensions: editorExtensions = [],\n dialect = 'expression',\n container,\n contentAttributes = {},\n tooltipContainer,\n onChange = () => {},\n onKeyDown = () => {},\n onLint = () => {},\n placeholder: placeholder$1 = '',\n readOnly = false,\n value = '',\n builtins = camunda,\n variables = []\n}) {\n\n const changeHandler = _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n onChange(update.state.doc.toString());\n }\n });\n\n const lintHandler = _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView.updateListener.of((update) => {\n const diagnosticEffects = update.transactions\n .flatMap(t => t.effects)\n .filter(effect => effect.is(_codemirror_lint__WEBPACK_IMPORTED_MODULE_2__.setDiagnosticsEffect));\n\n if (!diagnosticEffects.length) {\n return;\n }\n\n const messages = diagnosticEffects.flatMap(effect => effect.value);\n\n onLint(messages);\n });\n\n const keyHandler = _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView.domEventHandlers(\n {\n keydown: onKeyDown\n }\n );\n\n if (typeof tooltipContainer === 'string') {\n tooltipContainer = document.querySelector(tooltipContainer);\n }\n\n const tooltipLayout = tooltipContainer ? (0,_codemirror_view__WEBPACK_IMPORTED_MODULE_3__.tooltips)({\n tooltipSpace: function() {\n return tooltipContainer.getBoundingClientRect();\n }\n }) : [];\n\n const extensions = [\n (0,_codemirror_autocomplete__WEBPACK_IMPORTED_MODULE_5__.autocompletion)(),\n coreConf.of(configure({\n dialect,\n builtins,\n variables\n })),\n (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_4__.bracketMatching)(),\n (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_4__.indentOnInput)(),\n (0,_codemirror_autocomplete__WEBPACK_IMPORTED_MODULE_5__.closeBrackets)(),\n _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView.contentAttributes.of(contentAttributes),\n changeHandler,\n keyHandler,\n _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.keymap.of([\n ..._codemirror_commands__WEBPACK_IMPORTED_MODULE_9__.defaultKeymap,\n ]),\n linter,\n lintHandler,\n tooltipLayout,\n placeholderConf.of((0,_codemirror_view__WEBPACK_IMPORTED_MODULE_3__.placeholder)(placeholder$1)),\n theme,\n ...editorExtensions\n ];\n\n if (readOnly) {\n extensions.push(_codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView.editable.of(false));\n }\n\n this._cmEditor = new _codemirror_view__WEBPACK_IMPORTED_MODULE_3__.EditorView({\n state: _codemirror_state__WEBPACK_IMPORTED_MODULE_7__.EditorState.create({\n doc: value,\n extensions\n }),\n parent: container\n });\n\n return this;\n}\n\n/**\n * Replaces the content of the Editor\n *\n * @param {String} value\n */\nFeelEditor.prototype.setValue = function(value) {\n this._cmEditor.dispatch({\n changes: {\n from: 0,\n to: this._cmEditor.state.doc.length,\n insert: value,\n }\n });\n};\n\n/**\n * Sets the focus in the editor.\n */\nFeelEditor.prototype.focus = function(position) {\n const cmEditor = this._cmEditor;\n\n // the Codemirror `focus` method always calls `focus` with `preventScroll`,\n // so we have to focus + scroll manually\n cmEditor.contentDOM.focus();\n cmEditor.focus();\n\n if (typeof position === 'number') {\n const end = cmEditor.state.doc.length;\n cmEditor.dispatch({ selection: { anchor: position <= end ? position : end } });\n }\n};\n\n/**\n * Returns the current selection ranges. If no text is selected, a single\n * range with the start and end index at the cursor position will be returned.\n *\n * @returns {Object} selection\n * @returns {Array} selection.ranges\n */\nFeelEditor.prototype.getSelection = function() {\n return this._cmEditor.state.selection;\n};\n\n/**\n * Set variables to be used for autocompletion.\n *\n * @param {Variable[]} variables\n */\nFeelEditor.prototype.setVariables = function(variables) {\n\n const {\n dialect,\n builtins\n } = get(this._cmEditor.state);\n\n this._cmEditor.dispatch({\n effects: [\n coreConf.reconfigure(configure({\n dialect,\n builtins,\n variables\n }))\n ]\n });\n};\n\n/**\n * Update placeholder text.\n *\n * @param {string} placeholder\n */\nFeelEditor.prototype.setPlaceholder = function(placeholder$1) {\n this._cmEditor.dispatch({\n effects: placeholderConf.reconfigure((0,_codemirror_view__WEBPACK_IMPORTED_MODULE_3__.placeholder)(placeholder$1))\n });\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vZmVlbC1lZGl0b3IvZGlzdC9pbmRleC5lcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE0RjtBQUN2QztBQUNpRTtBQUMxQztBQUNSO0FBQ1M7QUFDM0I7QUFDVjtBQUNpRTtBQUN4RTs7QUFFakMsZUFBZSx3REFBUSxDQUFDLGdFQUFZOztBQUVwQyxrQkFBa0Isd0RBQVU7QUFDNUI7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVELHVCQUF1Qix3REFBVTtBQUNqQztBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVELHNCQUFzQix3RUFBa0I7QUFDeEMsRUFBRSxnRUFBYztBQUNoQixNQUFNLEtBQUssa0RBQUksc0NBQXNDO0FBQ3JELE1BQU0sS0FBSyxrREFBSSw4QkFBOEI7QUFDN0MsTUFBTSxLQUFLLGtEQUFJLDBCQUEwQjtBQUN6QyxNQUFNLEtBQUssa0RBQUksMEJBQTBCO0FBQ3pDLE1BQU0sS0FBSyxrREFBSSxzQkFBc0I7QUFDckMsTUFBTSxLQUFLLGtEQUFJLFVBQVUsa0RBQUksbUNBQW1DO0FBQ2hFLE1BQU0sS0FBSyxrREFBSSxVQUFVLGtEQUFJLFNBQVMsa0RBQUksb0NBQW9DO0FBQzlFLE1BQU0sS0FBSyxrREFBSSxtQ0FBbUM7QUFDbEQsTUFB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Q0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0Esd2NBQXdjLFlBQVksZUFBZSxVQUFVO0FBQzdlLEVBQUU7QUFDRjtBQUNBO0FBQ0Esd2RBQXdkLFlBQVksa0JBQWtCLFNBQVM7QUFDL2YsRUFBRTtBQUNGO0FBQ0E7QUFDQSwyU0FBMlMsU0FBUztBQUNwVCxFQUFFO0FBQ0Y7QUFDQTtBQUNBLDJTQUEyUyxVQUFVLFlBQVksVUFBVTtBQUMzVSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLDJTQUEyUyxV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dUJBQXVCLDZEQUFXO0FBQ2xDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQix3REFBVTtBQUM5Qjs7QUFFQSx1QkFBdUIsd0RBQVU7QUFDakMsV0FBVywwREFBVztBQUN0QjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QixhQUFhLDRDQUE0QztBQUNqRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFlBQVk7QUFDdkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLDZEQUFXO0FBQ3BELEdBQUc7QUFDSDs7QUFFaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vZmVlbC1lZGl0b3IvZGlzdC9pbmRleC5lcy5qcz84ZGRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNuaXBwZXRDb21wbGV0aW9uLCBhdXRvY29tcGxldGlvbiwgY2xvc2VCcmFja2V0cyB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBkZWZhdWx0S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnO1xuaW1wb3J0IHsgc3ludGF4SGlnaGxpZ2h0aW5nLCBIaWdobGlnaHRTdHlsZSwgc3ludGF4VHJlZSwgYnJhY2tldE1hdGNoaW5nLCBpbmRlbnRPbklucHV0IH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgbGludGVyIGFzIGxpbnRlciQxLCBzZXREaWFnbm9zdGljc0VmZmVjdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xpbnQnO1xuaW1wb3J0IHsgRmFjZXQsIENvbXBhcnRtZW50LCBFZGl0b3JTdGF0ZSB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB7IEVkaXRvclZpZXcsIHRvb2x0aXBzLCBrZXltYXAsIHBsYWNlaG9sZGVyIH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBjbUZlZWxMaW50ZXIgfSBmcm9tICdAYnBtbi1pby9mZWVsLWxpbnQnO1xuaW1wb3J0IHsgdGFncyB9IGZyb20gJ0BsZXplci9oaWdobGlnaHQnO1xuaW1wb3J0IHsgc25pcHBldENvbXBsZXRpb24gYXMgc25pcHBldENvbXBsZXRpb24kMSwgc25pcHBldHMsIGtleXdvcmRDb21wbGV0aW9ucywgZmVlbCB9IGZyb20gJ2xhbmctZmVlbCc7XG5pbXBvcnQgeyBkb21pZnkgfSBmcm9tICdtaW4tZG9tJztcblxudmFyIGxpbnRlciA9IFsgbGludGVyJDEoY21GZWVsTGludGVyKCkpIF07XG5cbmNvbnN0IGJhc2VUaGVtZSA9IEVkaXRvclZpZXcudGhlbWUoe1xuICAnJiAuY20tY29udGVudCc6IHtcbiAgICBwYWRkaW5nOiAnMHB4JyxcbiAgfSxcbiAgJyYgLmNtLWxpbmUnOiB7XG4gICAgcGFkZGluZzogJzBweCcsXG4gIH0sXG4gICcmLmNtLWVkaXRvci5jbS1mb2N1c2VkJzoge1xuICAgIG91dGxpbmU6ICdub25lJyxcbiAgfSxcbiAgJyYgLmNtLWNvbXBsZXRpb25JbmZvJzoge1xuICAgIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJ1xuICB9LFxuICAnJi5jbS1lZGl0b3InOiB7XG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gIH0sXG5cbiAgLy8gRG9uJ3Qgd3JhcCB3aGl0ZXNwYWNlIGZvciBjdXN0b20gSFRNTFxuICAnJiAuY20tY29tcGxldGlvbkluZm8gPiAqJzoge1xuICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnXG4gIH0sXG4gICcmIC5jbS1jb21wbGV0aW9uSW5mbyB1bCc6IHtcbiAgICBtYXJnaW46IDAsXG4gICAgcGFkZGluZ0xlZnQ6ICcxNXB4J1xuICB9LFxuICAnJiAuY20tY29tcGxldGlvbkluZm8gcHJlJzoge1xuICAgIG1hcmdpbkJvdHRvbTogMCxcbiAgICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnXG4gIH0sXG4gICcmIC5jbS1jb21wbGV0aW9uSW5mbyBwJzoge1xuICAgIG1hcmdpblRvcDogMCxcbiAgfSxcbiAgJyYgLmNtLWNvbXBsZXRpb25JbmZvIHA6bm90KDpsYXN0LW9mLXR5cGUpJzoge1xuICAgIG1hcmdpbkJvdHRvbTogMCxcbiAgfVxufSk7XG5cbmNvbnN0IGhpZ2hsaWdodFRoZW1lID0gRWRpdG9yVmlldy5iYXNlVGhlbWUoe1xuICAnJiAudmFyaWFibGVOYW1lJzoge1xuICAgIGNvbG9yOiAnIzEwZidcbiAgfSxcbiAgJyYgLm51bWJlcic6IHtcbiAgICBjb2xvcjogJyMxNjQnXG4gIH0sXG4gICcmIC5zdHJpbmcnOiB7XG4gICAgY29sb3I6ICcjYTExJ1xuICB9LFxuICAnJiAuYm9vbCc6IHtcbiAgICBjb2xvcjogJyMyMTknXG4gIH0sXG4gICcmIC5mdW5jdGlvbic6IHtcbiAgICBjb2xvcjogJyNhYTM3MzEnLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJ1xuICB9LFxuICAnJiAuY29udHJvbCc6IHtcbiAgICBjb2xvcjogJyM3MDgnXG4gIH1cbn0pO1xuXG5jb25zdCBzeW50YXhDbGFzc2VzID0gc3ludGF4SGlnaGxpZ2h0aW5nKFxuICBIaWdobGlnaHRTdHlsZS5kZWZpbmUoW1xuICAgIHsgdGFnOiB0YWdzLnZhcmlhYmxlTmFtZSwgY2xhc3M6ICd2YXJpYWJsZU5hbWUnIH0sXG4gICAgeyB0YWc6IHRhZ3MubmFtZSwgY2xhc3M6ICd2YXJpYWJsZU5hbWUnIH0sXG4gICAgeyB0YWc6IHRhZ3MubnVtYmVyLCBjbGFzczogJ251bWJlcicgfSxcbiAgICB7IHRhZzogdGFncy5zdHJpbmcsIGNsYXNzOiAnc3RyaW5nJyB9LFxuICAgIHsgdGFnOiB0YWdzLmJvb2wsIGNsYXNzOiAnYm9vbCcgfSxcbiAgICB7IHRhZzogdGFncy5mdW5jdGlvbih0YWdzLnZhcmlhYmxlTmFtZSksIGNsYXNzOiAnZnVuY3Rpb24nIH0sXG4gICAgeyB0YWc6IHRhZ3MuZnVuY3Rpb24odGFncy5zcGVjaWFsKHRhZ3MudmFyaWFibGVOYW1lKSksIGNsYXNzOiAnZnVuY3Rpb24nIH0sXG4gICAgeyB0YWc6IHRhZ3MuY29udHJvbEtleXdvcmQsIGNsYXNzOiAnY29udHJvbCcgfSxcbiAgICB7IHRhZzogdGFncy5vcGVyYXRvcktleXdvcmQsIGNsYXNzOiAnY29udHJvbCcgfVxuICBdKVxuKTtcblxudmFyIHRoZW1lID0gWyBiYXNlVGhlbWUsIGhpZ2hsaWdodFRoZW1lLCBzeW50YXhDbGFzc2VzIF07XG5cbi8vIGhlbHBlcnMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5mdW5jdGlvbiBfaXNFbXB0eShub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUuZnJvbSA9PT0gbm9kZS50bztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gbm9kZVxuICogQHBhcmFtIHtudW1iZXJ9IHBvc1xuICpcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzRW1wdHkobm9kZSwgcG9zKSB7XG5cbiAgLy8gRm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YgZW1wdHkgbm9kZXMsIHdlIG5lZWQgdG8gY2hlY2sgdGhlIGN1cnJlbnQgbm9kZVxuICAvLyBhcyB3ZWxsLiBUaGUgcHJldmlvdXMgbm9kZSBjb3VsZCBiZSBwYXJ0IG9mIGFub3RoZXIgdG9rZW4sIGUuZy5cbiAgLy8gd2hlbiB0eXBpbmcgZnVuY3Rpb25zIFwiYWJzKFwiLlxuICBjb25zdCBuZXh0Tm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG5cbiAgcmV0dXJuIF9pc0VtcHR5KG5vZGUpIHx8IChcbiAgICBuZXh0Tm9kZSAmJiBuZXh0Tm9kZS5mcm9tID09PSBwb3MgJiYgX2lzRW1wdHkobmV4dE5vZGUpXG4gICk7XG59XG5cbmZ1bmN0aW9uIGlzVmFyaWFibGVOYW1lKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgbm9kZS5wYXJlbnQgJiYgbm9kZS5wYXJlbnQubmFtZSA9PT0gJ1ZhcmlhYmxlTmFtZSc7XG59XG5cbmZ1bmN0aW9uIGlzUGF0aEV4cHJlc3Npb24obm9kZSkge1xuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAobm9kZS5uYW1lID09PSAnUGF0aEV4cHJlc3Npb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gaXNQYXRoRXhwcmVzc2lvbihub2RlLnBhcmVudCk7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgeyBpbXBvcnQoJy4uL2NvcmUnKS5WYXJpYWJsZSB9IFZhcmlhYmxlXG4gKiBAdHlwZWRlZiB7IGltcG9ydCgnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJykuQ29tcGxldGlvblNvdXJjZSB9IENvbXBsZXRpb25Tb3VyY2VcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7IHtcbiAqICAgdmFyaWFibGVzPzogVmFyaWFibGVbXSxcbiAqIH0gfSBvcHRpb25zXG4gKlxuICogQHJldHVybiB7IENvbXBsZXRpb25Tb3VyY2UgfVxuICovXG5mdW5jdGlvbiBwYXRoRXhwcmVzc2lvbkNvbXBsZXRpb24oeyB2YXJpYWJsZXMgfSkge1xuXG4gIHJldHVybiAoY29udGV4dCkgPT4ge1xuXG4gICAgY29uc3Qgbm9kZUJlZm9yZSA9IHN5bnRheFRyZWUoY29udGV4dC5zdGF0ZSkucmVzb2x2ZShjb250ZXh0LnBvcywgLTEpO1xuXG4gICAgaWYgKCFpc1BhdGhFeHByZXNzaW9uKG5vZGVCZWZvcmUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhwcmVzc2lvbiA9IGZpbmRQYXRoRXhwcmVzc2lvbihub2RlQmVmb3JlKTtcblxuICAgIC8vIGlmIHRoZSBjdXJzb3IgaXMgZGlyZWN0bHkgYWZ0ZXIgdGhlIGAuYCwgdmFyaWFibGUgc3RhcnRzIGF0IHRoZSBjdXJzb3IgcG9zaXRpb25cbiAgICBjb25zdCBmcm9tID0gbm9kZUJlZm9yZSA9PT0gZXhwcmVzc2lvbiA/IGNvbnRleHQucG9zIDogbm9kZUJlZm9yZS5mcm9tO1xuXG4gICAgY29uc3QgcGF0aCA9IGdldFBhdGgoZXhwcmVzc2lvbiwgY29udGV4dCk7XG5cbiAgICBsZXQgb3B0aW9ucyA9IHZhcmlhYmxlcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICB2YXIgY2hpbGRWYXIgPSBvcHRpb25zLmZpbmQodmFsID0+IHZhbC5uYW1lID09PSBwYXRoW2ldLm5hbWUpO1xuXG4gICAgICBpZiAoIWNoaWxkVmFyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBvbmx5IHN1Z2dlc3QgaWYgdmFyaWFibGUgdHlwZSBtYXRjaGVzXG4gICAgICBpZiAoXG4gICAgICAgIGNoaWxkVmFyLmlzTGlzdCAhPT0gJ29wdGlvbmFsJyAmJlxuICAgICAgICAhIWNoaWxkVmFyLmlzTGlzdCAhPT0gcGF0aFtpXS5pc0xpc3RcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG9wdGlvbnMgPSBjaGlsZFZhci5lbnRyaWVzO1xuICAgIH1cblxuICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuXG4gICAgb3B0aW9ucyA9IG9wdGlvbnMubWFwKHYgPT4gKHtcbiAgICAgIGxhYmVsOiB2Lm5hbWUsXG4gICAgICB0eXBlOiAndmFyaWFibGUnLFxuICAgICAgaW5mbzogdi5pbmZvLFxuICAgICAgZGV0YWlsOiB2LmRldGFpbFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGZyb206IGZyb20sXG4gICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5cblxuZnVuY3Rpb24gZmluZFBhdGhFeHByZXNzaW9uKG5vZGUpIHtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5uYW1lID09PSAnUGF0aEV4cHJlc3Npb24nKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgbm9kZSA9IG5vZGUucGFyZW50O1xuICB9XG59XG5cbi8vIHBhcnNlcyB0aGUgcGF0aCBleHByZXNzaW9uIGludG8gYSBsaXN0IG9mIHZhcmlhYmxlIG5hbWVzIHdpdGggdHlwZSBpbmZvcm1hdGlvblxuLy8gZS5nLiBmb29bMF0uYmFyID0+IFsgeyBuYW1lOiAnZm9vJywgaXNMaXN0OiB0cnVlIH0sIHsgbmFtZTogJ2JhcicsIGlzTGlzdDogZmFsc2UgfSBdXG5mdW5jdGlvbiBnZXRQYXRoKG5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IHBhdGggPSBbXTtcblxuICBmb3IgKGxldCBjaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHtcbiAgICBpZiAoY2hpbGQubmFtZSA9PT0gJ1BhdGhFeHByZXNzaW9uJykge1xuICAgICAgcGF0aC5wdXNoKC4uLmdldFBhdGgoY2hpbGQsIGNvbnRleHQpKTtcbiAgICB9IGVsc2UgaWYgKGNoaWxkLm5hbWUgPT09ICdGaWx0ZXJFeHByZXNzaW9uJykge1xuICAgICAgcGF0aC5wdXNoKC4uLmdldEZpbHRlcihjaGlsZCwgY29udGV4dCkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHBhdGgucHVzaCh7XG4gICAgICAgIG5hbWU6IGdldE5vZGVDb250ZW50KGNoaWxkLCBjb250ZXh0KSxcbiAgICAgICAgaXNMaXN0OiBmYWxzZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXRoO1xufVxuXG5mdW5jdGlvbiBnZXRGaWx0ZXIobm9kZSwgY29udGV4dCkge1xuICBjb25zdCBsaXN0ID0gbm9kZS5maXJzdENoaWxkO1xuXG4gIGlmIChsaXN0Lm5hbWUgPT09ICdQYXRoRXhwcmVzc2lvbicpIHtcbiAgICBjb25zdCBwYXRoID0gZ2V0UGF0aChsaXN0LCBjb250ZXh0KTtcbiAgICBjb25zdCBsYXN0ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgIGxhc3QuaXNMaXN0ID0gdHJ1ZTtcblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcmV0dXJuIFsge1xuICAgIG5hbWU6IGdldE5vZGVDb250ZW50KGxpc3QsIGNvbnRleHQpLFxuICAgIGlzTGlzdDogdHJ1ZVxuICB9IF07XG59XG5cbmZ1bmN0aW9uIGdldE5vZGVDb250ZW50KG5vZGUsIGNvbnRleHQpIHtcbiAgcmV0dXJuIGNvbnRleHQuc3RhdGUuc2xpY2VEb2Mobm9kZS5mcm9tLCBub2RlLnRvKTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7IGltcG9ydCgnLi4vY29yZScpLlZhcmlhYmxlIH0gVmFyaWFibGVcbiAqIEB0eXBlZGVmIHsgaW1wb3J0KCdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnKS5Db21wbGV0aW9uU291cmNlIH0gQ29tcGxldGlvblNvdXJjZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHsge1xuICogICB2YXJpYWJsZXM/OiBWYXJpYWJsZVtdLFxuICogICBidWlsdGlucz86IFZhcmlhYmxlW11cbiAqIH0gfSBvcHRpb25zXG4gKlxuICogQHJldHVybiB7IENvbXBsZXRpb25Tb3VyY2UgfVxuICovXG5mdW5jdGlvbiB2YXJpYWJsZUNvbXBsZXRpb24oeyB2YXJpYWJsZXMgPSBbXSwgYnVpbHRpbnMgPSBbXSB9KSB7XG5cbiAgY29uc3Qgb3B0aW9ucyA9IGdldFZhcmlhYmxlU3VnZ2VzdGlvbnModmFyaWFibGVzLCBidWlsdGlucyk7XG5cbiAgaWYgKCFvcHRpb25zLmxlbmd0aCkge1xuICAgIHJldHVybiAoY29udGV4dCkgPT4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoY29udGV4dCkgPT4ge1xuXG4gICAgY29uc3Qge1xuICAgICAgcG9zLFxuICAgICAgc3RhdGVcbiAgICB9ID0gY29udGV4dDtcblxuICAgIC8vIGluIG1vc3QgY2FzZXMsIHVzZSB3aGF0IGlzIHR5cGVkIGJlZm9yZSB0aGUgY3Vyc29yXG4gICAgY29uc3Qgbm9kZUJlZm9yZSA9IHN5bnRheFRyZWUoc3RhdGUpLnJlc29sdmUocG9zLCAtMSk7XG5cbiAgICBpZiAoaXNFbXB0eShub2RlQmVmb3JlLCBwb3MpKSB7XG4gICAgICByZXR1cm4gY29udGV4dC5leHBsaWNpdCA/IHtcbiAgICAgICAgZnJvbTogcG9zLFxuICAgICAgICBvcHRpb25zXG4gICAgICB9IDogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBvbmx5IGF1dG8tY29tcGxldGUgdmFyaWFibGVzXG4gICAgaWYgKCFpc1ZhcmlhYmxlTmFtZShub2RlQmVmb3JlKSB8fCBpc1BhdGhFeHByZXNzaW9uKG5vZGVCZWZvcmUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogbm9kZUJlZm9yZS5mcm9tLFxuICAgICAgb3B0aW9uc1xuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogQHBhcmFtIHsgVmFyaWFibGVbXSB9IHZhcmlhYmxlc1xuICogQHBhcmFtIHsgVmFyaWFibGVbXSB9IGJ1aWx0aW5zXG4gKlxuICogQHJldHVybnMge2ltcG9ydCgnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJykuQ29tcGxldGlvbltdfVxuICovXG5mdW5jdGlvbiBnZXRWYXJpYWJsZVN1Z2dlc3Rpb25zKHZhcmlhYmxlcywgYnVpbHRpbnMpIHtcbiAgcmV0dXJuIFtdLmNvbmNhdChcbiAgICB2YXJpYWJsZXMubWFwKHYgPT4gY3JlYXRlVmFyaWFibGVTdWdnZXN0aW9uKHYpKSxcbiAgICBidWlsdGlucy5tYXAoYiA9PiBjcmVhdGVWYXJpYWJsZVN1Z2dlc3Rpb24oYikpXG4gICk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4uJykuVmFyaWFibGV9IHZhcmlhYmxlXG4gKiBAcGFyYW0ge251bWJlcn0gYm9vc3RcblxuICogQHJldHVybnMge2ltcG9ydCgnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJykuQ29tcGxldGlvbn1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlVmFyaWFibGVTdWdnZXN0aW9uKHZhcmlhYmxlLCBib29zdCkge1xuICBpZiAodmFyaWFibGUudHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBjcmVhdGVGdW5jdGlvblZhcmlhYmxlKHZhcmlhYmxlLCBib29zdCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxhYmVsOiB2YXJpYWJsZS5uYW1lLFxuICAgIHR5cGU6ICd2YXJpYWJsZScsXG4gICAgaW5mbzogdmFyaWFibGUuaW5mbyxcbiAgICBkZXRhaWw6IHZhcmlhYmxlLmRldGFpbCxcbiAgICBib29zdFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuLicpLlZhcmlhYmxlfSB2YXJpYWJsZVxuICogQHBhcmFtIHtudW1iZXJ9IGJvb3N0XG4gKlxuICogQHJldHVybnMge2ltcG9ydCgnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJykuQ29tcGxldGlvbn1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRnVuY3Rpb25WYXJpYWJsZSh2YXJpYWJsZSwgYm9vc3QpIHtcbiAgY29uc3Qge1xuICAgIG5hbWUsXG4gICAgaW5mbyxcbiAgICBkZXRhaWwsXG4gICAgcGFyYW1zID0gW11cbiAgfSA9IHZhcmlhYmxlO1xuXG4gIGNvbnN0IHBhcmFtc1dpdGhOYW1lcyA9IHBhcmFtcy5tYXAoKHsgbmFtZSwgdHlwZSB9LCBpbmRleCkgPT4gKHtcbiAgICBuYW1lOiBuYW1lIHx8IGBwYXJhbSAke2luZGV4ICsgMX1gLFxuICAgIHR5cGVcbiAgfSkpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gYCR7bmFtZX0oJHtwYXJhbXNXaXRoTmFtZXMubWFwKHAgPT4gJyR7JyArIHAubmFtZSArICd9Jykuam9pbignLCAnKX0pYDtcblxuICBjb25zdCBwYXJhbXNTaWduYXR1cmUgPSBwYXJhbXNXaXRoTmFtZXMubWFwKCh7IG5hbWUsIHR5cGUgfSkgPT4gKFxuICAgIHR5cGUgPyBgJHtuYW1lfTogJHt0eXBlfWAgOiBuYW1lXG4gICkpLmpvaW4oJywgJyk7XG4gIGNvbnN0IGxhYmVsID0gYCR7bmFtZX0oJHtwYXJhbXNTaWduYXR1cmV9KWA7XG5cbiAgcmV0dXJuIHNuaXBwZXRDb21wbGV0aW9uKHRlbXBsYXRlLCB7XG4gICAgbGFiZWwsXG4gICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBpbmZvLFxuICAgIGRldGFpbCxcbiAgICBib29zdFxuICB9KTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7IGltcG9ydCgnLi4vY29yZScpLlZhcmlhYmxlIH0gVmFyaWFibGVcbiAqIEB0eXBlZGVmIHsgaW1wb3J0KCdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnKS5Db21wbGV0aW9uU291cmNlIH0gQ29tcGxldGlvblNvdXJjZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHsge1xuICogICB2YXJpYWJsZXM/OiBWYXJpYWJsZVtdLFxuICogICBidWlsdGlucz86IFZhcmlhYmxlW11cbiAqIH0gfSBvcHRpb25zXG4gKlxuICogQHJldHVybiB7IENvbXBsZXRpb25Tb3VyY2VbXSB9XG4gKi9cbmZ1bmN0aW9uIGNvbXBsZXRpb25zKHsgdmFyaWFibGVzID0gW10sIGJ1aWx0aW5zID0gW10gfSkge1xuXG4gIHJldHVybiBbXG4gICAgcGF0aEV4cHJlc3Npb25Db21wbGV0aW9uKHsgdmFyaWFibGVzIH0pLFxuICAgIHZhcmlhYmxlQ29tcGxldGlvbih7IHZhcmlhYmxlcywgYnVpbHRpbnMgfSksXG4gICAgc25pcHBldENvbXBsZXRpb24kMShzbmlwcGV0cy5tYXAoc25pcHBldCA9PiAoeyAuLi5zbmlwcGV0LCBib29zdDogLTEgfSkpKSxcbiAgICAuLi5rZXl3b3JkQ29tcGxldGlvbnNcbiAgXTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7ICdleHByZXNzaW9uJyB8ICd1bmFyeVRlc3RzJyB9IERpYWxlY3RcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7IHtcbiAqICAgZGlhbGVjdD86IERpYWxlY3QsXG4gKiAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICogICBjb21wbGV0aW9ucz86IGltcG9ydCgnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJykuQ29tcGxldGlvblNvdXJjZVtdXG4gKiB9IH0gb3B0aW9uc1xuICpcbiAqIEByZXR1cm4geyBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmd1YWdlJykuTGFuZ3VhZ2VTdXBwb3J0IH1cbiAqL1xuZnVuY3Rpb24gbGFuZ3VhZ2Uob3B0aW9ucykge1xuICByZXR1cm4gZmVlbChvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geyBpbXBvcnQoJy4uL2NvcmUnKS5WYXJpYWJsZVtdIH0gdmFyaWFibGVzXG4gKlxuICogQHJldHVybiB7UmVjb3JkPHN0cmluZywgYW55Pn1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ29udGV4dCh2YXJpYWJsZXMsIGJ1aWx0aW5zKSB7XG4gIHJldHVybiB2YXJpYWJsZXMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKChjb250ZXh0LCBidWlsdGluKSA9PiB7XG4gICAgY29udGV4dFtidWlsdGluLm5hbWVdID0gKCkgPT4ge307XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSwge30pO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHsgJ2V4cHJlc3Npb24nIHwgJ3VuYXJ5VGVzdHMnIH0gRGlhbGVjdFxuICogQHR5cGVkZWYgeyBpbXBvcnQoJy4uJykuVmFyaWFibGUgfSBWYXJpYWJsZVxuICovXG5cbi8qKlxuICogQHR5cGUge0ZhY2V0PFZhcmlhYmxlW10+fVxuICovXG5jb25zdCBidWlsdGluc0ZhY2V0ID0gRmFjZXQuZGVmaW5lKCk7XG5cbi8qKlxuICogQHR5cGUge0ZhY2V0PFZhcmlhYmxlW10+fVxuICovXG5jb25zdCB2YXJpYWJsZXNGYWNldCA9IEZhY2V0LmRlZmluZSgpO1xuXG4vKipcbiAqIEB0eXBlIHtGYWNldDxkaWFsZWN0Pn1cbiAqL1xuY29uc3QgZGlhbGVjdEZhY2V0ID0gRmFjZXQuZGVmaW5lKCk7XG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gVmFyaWFibGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIG5hbWUgb3Iga2V5IG9mIHRoZSB2YXJpYWJsZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtpbmZvXSBzaG9ydCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFyaWFibGUsIGUuZy4gdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtkZXRhaWxdIGxvbmdlciBkZXNjcmlwdGlvbiBvZiB0aGUgdmFyaWFibGUgY29udGVudFxuICogQHByb3BlcnR5IHtib29sZWFufSBbaXNMaXN0XSB3aGV0aGVyIHRoZSB2YXJpYWJsZSBpcyBhIGxpc3RcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8VmFyaWFibGU+fSBbc2NoZW1hXSBhcnJheSBvZiBjaGlsZCB2YXJpYWJsZXMgaWYgdGhlIHZhcmlhYmxlIGlzIGEgY29udGV4dCBvciBsaXN0XG4gKiBAcHJvcGVydHkgeydmdW5jdGlvbid8J3ZhcmlhYmxlJ30gW3R5cGVdIHR5cGUgb2YgdGhlIHZhcmlhYmxlXG4gKiBAcHJvcGVydHkge0FycmF5PHtuYW1lOiBzdHJpbmcsIHR5cGU6IHN0cmluZ30+fSBbcGFyYW1zXSBmdW5jdGlvbiBwYXJhbWV0ZXJzXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7IHtcbiAqICAgZGlhbGVjdD86IGltcG9ydCgnLi4vbGFuZ3VhZ2UnKS5EaWFsZWN0LFxuICogICB2YXJpYWJsZXM/OiBWYXJpYWJsZVtdLFxuICogICBidWlsdGlucz86IFZhcmlhYmxlW11cbiAqIH0gfSBDb3JlQ29uZmlnXG4gKlxuICogQHR5cGVkZWYgeyBpbXBvcnQoJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZScpLkNvbXBsZXRpb25Tb3VyY2UgfSBDb21wbGV0aW9uU291cmNlXG4gKiBAdHlwZWRlZiB7IGltcG9ydCgnQGNvZGVtaXJyb3Ivc3RhdGUnKS5FeHRlbnNpb24gfSBFeHRlbnNpb25cbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7IENvcmVDb25maWcgJiB7IGNvbXBsZXRpb25zPzogQ29tcGxldGlvblNvdXJjZVtdIH0gfSBjb25maWdcbiAqXG4gKiBAcmV0dXJuIHsgRXh0ZW5zaW9uICB9XG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZSh7XG4gIGRpYWxlY3QgPSAnZXhwcmVzc2lvbicsXG4gIHZhcmlhYmxlcyA9IFtdLFxuICBidWlsdGlucyA9IFtdLFxuICBjb21wbGV0aW9uczogY29tcGxldGlvbnMkMSA9IGNvbXBsZXRpb25zKHsgYnVpbHRpbnMsIHZhcmlhYmxlcyB9KVxufSkge1xuXG4gIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVDb250ZXh0KFsgLi4udmFyaWFibGVzLCAuLi5idWlsdGlucyBdKTtcblxuICByZXR1cm4gW1xuICAgIGRpYWxlY3RGYWNldC5vZihkaWFsZWN0KSxcbiAgICBidWlsdGluc0ZhY2V0Lm9mKGJ1aWx0aW5zKSxcbiAgICB2YXJpYWJsZXNGYWNldC5vZih2YXJpYWJsZXMpLFxuICAgIGxhbmd1YWdlKHtcbiAgICAgIGRpYWxlY3QsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29tcGxldGlvbnM6IGNvbXBsZXRpb25zJDFcbiAgICB9KVxuICBdO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCdAY29kZW1pcnJvci9zdGF0ZScpLkVkaXRvclN0YXRlIH0gc3RhdGVcbiAqXG4gKiBAcmV0dXJuIHsgQ29yZUNvbmZpZyB9XG4gKi9cbmZ1bmN0aW9uIGdldChzdGF0ZSkge1xuXG4gIGNvbnN0IGJ1aWx0aW5zID0gc3RhdGUuZmFjZXQoYnVpbHRpbnNGYWNldClbMF07XG4gIGNvbnN0IHZhcmlhYmxlcyA9IHN0YXRlLmZhY2V0KHZhcmlhYmxlc0ZhY2V0KVswXTtcbiAgY29uc3QgZGlhbGVjdCA9IHN0YXRlLmZhY2V0KGRpYWxlY3RGYWNldClbMF07XG5cbiAgcmV0dXJuIHtcbiAgICBidWlsdGlucyxcbiAgICB2YXJpYWJsZXMsXG4gICAgZGlhbGVjdFxuICB9O1xufVxuXG52YXIgY2FtdW5kYVRhZ3MgPSBbXG5cdHtcblx0XHRuYW1lOiBcIm5vdChuZWdhbmQpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgbG9naWNhbCBuZWdhdGlvbiBvZiB0aGUgZ2l2ZW4gdmFsdWUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm5vdChuZWdhbmQ6IGJvb2xlYW4pOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bm90KHRydWUpXFxuLy8gZmFsc2VcXG5cXG5ub3QobnVsbClcXG4vLyBudWxsXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImlzIGRlZmluZWQodmFsdWUpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PGVtPkNhbXVuZGEgRXh0ZW5zaW9uPC9lbT48L3A+XFxuPHA+Q2hlY2tzIGlmIGEgZ2l2ZW4gdmFsdWUgaXMgbm90IDxjb2RlPm51bGw8L2NvZGU+LiBJZiB0aGUgdmFsdWUgaXMgPGNvZGU+bnVsbDwvY29kZT4gdGhlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4uXFxuT3RoZXJ3aXNlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+aXMgZGVmaW5lZCh2YWx1ZTogQW55KTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmlzIGRlZmluZWQoMSlcXG4vLyB0cnVlXFxuXFxuaXMgZGVmaW5lZChudWxsKVxcbi8vIGZhbHNlXFxuXFxuaXMgZGVmaW5lZCh4KVxcbi8vIGZhbHNlIC0gaWYgbm8gdmFyaWFibGUgJnF1b3Q7eCZxdW90OyBleGlzdHNcXG5cXG5pcyBkZWZpbmVkKHgueSlcXG4vLyBmYWxzZSAtIGlmIG5vIHZhcmlhYmxlICZxdW90O3gmcXVvdDsgZXhpc3RzIG9yIGl0IGRvZXNuJiMzOTt0IGhhdmUgYSBwcm9wZXJ0eSAmcXVvdDt5JnF1b3Q7XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjo6OmNhdXRpb24gQnJlYWtpbmcgY2hhbmdlPC9wPlxcbjxwPlRoaXMgZnVuY3Rpb24gd29ya2VkIGRpZmZlcmVudGx5IGluIHByZXZpb3VzIHZlcnNpb25zLiBJdCByZXR1cm5lZCA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgdmFsdWUgd2FzIDxjb2RlPm51bGw8L2NvZGU+LlxcblNpbmNlIHRoaXMgdmVyc2lvbiwgdGhlIGZ1bmN0aW9uIHJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHRoZSB2YWx1ZSBpcyA8Y29kZT5udWxsPC9jb2RlPi48L3A+XFxuPHA+Ojo6PC9wPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImdldCBvciBlbHNlKHZhbHVlLCBkZWZhdWx0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxlbT5DYW11bmRhIEV4dGVuc2lvbjwvZW0+PC9wPlxcbjxwPlJldHVybiB0aGUgcHJvdmlkZWQgdmFsdWUgcGFyYW1ldGVyIGlmIG5vdCA8Y29kZT5udWxsPC9jb2RlPiwgb3RoZXJ3aXNlIHJldHVybiB0aGUgZGVmYXVsdCBwYXJhbWV0ZXI8L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Z2V0IG9yIGVsc2UodmFsdWU6IEFueSwgZGVmYXVsdDogQW55KTogQW55XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Z2V0IG9yIGVsc2UoJnF1b3Q7dGhpcyZxdW90OywgJnF1b3Q7ZGVmYXVsdCZxdW90OylcXG4vLyAmcXVvdDt0aGlzJnF1b3Q7XFxuXFxuZ2V0IG9yIGVsc2UobnVsbCwgJnF1b3Q7ZGVmYXVsdCZxdW90OylcXG4vLyAmcXVvdDtkZWZhdWx0JnF1b3Q7XFxuXFxuZ2V0IG9yIGVsc2UobnVsbCwgbnVsbClcXG4vLyBudWxsXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImFzc2VydCh2YWx1ZSwgY29uZGl0aW9uKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxlbT5DYW11bmRhIEV4dGVuc2lvbjwvZW0+PC9wPlxcbjxwPlZlcmlmeSB0aGF0IHRoZSBnaXZlbiBjb25kaXRpb24gaXMgbWV0LiBJZiB0aGUgY29uZGl0aW9uIGlzIDxjb2RlPnRydWU8L2NvZGU+LCB0aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUuXFxuT3RoZXJ3aXNlLCB0aGUgZXZhbHVhdGlvbiBmYWlscyB3aXRoIGFuIGVycm9yLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hc3NlcnQodmFsdWU6IEFueSwgY29uZGl0aW9uOiBBbnkpXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YXNzZXJ0KHgsIHggIT0gbnVsbClcXG4vLyAmcXVvdDt2YWx1ZSZxdW90OyAtIGlmIHggaXMgJnF1b3Q7dmFsdWUmcXVvdDtcXG4vLyBlcnJvciAtIGlmIHggaXMgbnVsbCBvciBkb2VzbiYjMzk7dCBleGlzdFxcblxcbmFzc2VydCh4LCB4ICZndDs9IDApXFxuLy8gNCAtIGlmIHggaXMgNFxcbi8vIGVycm9yIC0gaWYgeCBpcyBsZXNzIHRoYW4gemVyb1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJhc3NlcnQodmFsdWUsIGNvbmRpdGlvbiwgY2F1c2UpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PGVtPkNhbXVuZGEgRXh0ZW5zaW9uPC9lbT48L3A+XFxuPHA+VmVyaWZ5IHRoYXQgdGhlIGdpdmVuIGNvbmRpdGlvbiBpcyBtZXQuIElmIHRoZSBjb25kaXRpb24gaXMgPGNvZGU+dHJ1ZTwvY29kZT4sIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSB2YWx1ZS5cXG5PdGhlcndpc2UsIHRoZSBldmFsdWF0aW9uIGZhaWxzIHdpdGggYW4gZXJyb3IgY29udGFpbmluZyB0aGUgZ2l2ZW4gbWVzc2FnZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YXNzZXJ0KHZhbHVlOiBBbnksIGNvbmRpdGlvbjogQW55LCBjYXVzZTogU3RyaW5nKVxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmFzc2VydCh4LCB4ICE9IG51bGwsICZxdW90OyYjMzk7eCYjMzk7IHNob3VsZCBub3QgYmUgbnVsbCZxdW90OylcXG4vLyAmcXVvdDt2YWx1ZSZxdW90OyAtIGlmIHggaXMgJnF1b3Q7dmFsdWUmcXVvdDtcXG4vLyBlcnJvcigmIzM5O3gmIzM5OyBzaG91bGQgbm90IGJlIG51bGwpIC0gaWYgeCBpcyBudWxsIG9yIGRvZXNuJiMzOTt0IGV4aXN0XFxuXFxuYXNzZXJ0KHgsIHggJmd0Oz0gMCwgJnF1b3Q7JiMzOTt4JiMzOTsgc2hvdWxkIGJlIHBvc2l0aXZlJnF1b3Q7KVxcbi8vIDQgLSBpZiB4IGlzIDRcXG4vLyBlcnJvcigmIzM5O3gmIzM5OyBzaG91bGQgYmUgcG9zaXRpdmUpIC0gaWYgeCBpcyBsZXNzIHRoYW4gemVyb1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJnZXQgdmFsdWUoY29udGV4dCwga2V5KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBjb250ZXh0IGVudHJ5IHdpdGggdGhlIGdpdmVuIGtleS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Z2V0IHZhbHVlKGNvbnRleHQ6IGNvbnRleHQsIGtleTogc3RyaW5nKTogQW55XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Z2V0IHZhbHVlKHtmb286IDEyM30sICZxdW90O2ZvbyZxdW90OylcXG4vLyAxMjNcXG5cXG5nZXQgdmFsdWUoe2E6IDF9LCAmcXVvdDtiJnF1b3Q7KVxcbi8vIG51bGxcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZ2V0IHZhbHVlKGNvbnRleHQsIGtleXMpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PGVtPkNhbXVuZGEgRXh0ZW5zaW9uPC9lbT48L3A+XFxuPHA+UmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGNvbnRleHQgZW50cnkgZm9yIGEgY29udGV4dCBwYXRoIGRlZmluZWQgYnkgdGhlIGdpdmVuIGtleXMuPC9wPlxcbjxwPklmIDxjb2RlPmtleXM8L2NvZGU+IGNvbnRhaW5zIHRoZSBrZXlzIDxjb2RlPltrMSwgazJdPC9jb2RlPiB0aGVuIGl0IHJldHVybnMgdGhlIHZhbHVlIGF0IHRoZSBuZXN0ZWQgZW50cnkgPGNvZGU+azEuazI8L2NvZGU+IG9mIHRoZSBjb250ZXh0LjwvcD5cXG48cD5JZiA8Y29kZT5rZXlzPC9jb2RlPiBhcmUgZW1wdHkgb3IgdGhlIG5lc3RlZCBlbnRyeSBkZWZpbmVkIGJ5IHRoZSBrZXlzIGRvZXNuJiMzOTt0IGV4aXN0IGluIHRoZSBjb250ZXh0LCBpdCByZXR1cm5zIDxjb2RlPm51bGw8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5nZXQgdmFsdWUoY29udGV4dDogY29udGV4dCwga2V5czogbGlzdCZsdDtzdHJpbmcmZ3Q7KTogQW55XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Z2V0IHZhbHVlKHt4OjEsIHk6IHt6OjB9fSwgWyZxdW90O3kmcXVvdDssICZxdW90O3omcXVvdDtdKVxcbi8vIDBcXG5cXG5nZXQgdmFsdWUoe3g6IHt5OiB7ejowfX19LCBbJnF1b3Q7eCZxdW90OywgJnF1b3Q7eSZxdW90O10pXFxuLy8ge3o6MH1cXG5cXG5nZXQgdmFsdWUoe2E6IHtiOiAzfX0sIFsmcXVvdDtiJnF1b3Q7XSlcXG4vLyBudWxsXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImdldCBlbnRyaWVzKGNvbnRleHQpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgZW50cmllcyBvZiB0aGUgY29udGV4dCBhcyBhIGxpc3Qgb2Yga2V5LXZhbHVlLXBhaXJzLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5nZXQgZW50cmllcyhjb250ZXh0OiBjb250ZXh0KTogbGlzdCZsdDtjb250ZXh0Jmd0O1xcbjwvY29kZT48L3ByZT5cXG48cD5UaGUgcmV0dXJuIHZhbHVlIGlzIGEgbGlzdCBvZiBjb250ZXh0cy4gRWFjaCBjb250ZXh0IGNvbnRhaW5zIHR3byBlbnRyaWVzIGZvciAmcXVvdDtrZXkmcXVvdDsgYW5kICZxdW90O3ZhbHVlJnF1b3Q7LjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmdldCBlbnRyaWVzKHtmb286IDEyM30pXFxuLy8gW3trZXk6ICZxdW90O2ZvbyZxdW90OywgdmFsdWU6IDEyM31dXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImNvbnRleHQgcHV0KGNvbnRleHQsIGtleSwgdmFsdWUpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+QWRkcyBhIG5ldyBlbnRyeSB3aXRoIHRoZSBnaXZlbiBrZXkgYW5kIHZhbHVlIHRvIHRoZSBjb250ZXh0LiBSZXR1cm5zIGEgbmV3IGNvbnRleHQgdGhhdCBpbmNsdWRlcyB0aGUgZW50cnkuPC9wPlxcbjxwPklmIGFuIGVudHJ5IGZvciB0aGUgc2FtZSBrZXkgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGNvbnRleHQsIGl0IG92ZXJyaWRlcyB0aGUgdmFsdWUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmNvbnRleHQgcHV0KGNvbnRleHQ6IGNvbnRleHQsIGtleTogc3RyaW5nLCB2YWx1ZTogQW55KTogY29udGV4dFxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmNvbnRleHQgcHV0KHt4OjF9LCAmcXVvdDt5JnF1b3Q7LCAyKVxcbi8vIHt4OjEsIHk6Mn1cXG48L2NvZGU+PC9wcmU+XFxuPHA+Ojo6aW5mb1xcblRoZSBmdW5jdGlvbiA8Y29kZT5jb250ZXh0IHB1dCgpPC9jb2RlPiByZXBsYWNlZCB0aGUgcHJldmlvdXMgZnVuY3Rpb24gPGNvZGU+cHV0KCk8L2NvZGU+IChDYW11bmRhIEV4dGVuc2lvbikuIFRoZVxcbnByZXZpb3VzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlLlxcbjo6OjwvcD5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJjb250ZXh0IHB1dChjb250ZXh0LCBrZXlzLCB2YWx1ZSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5BZGRzIGEgbmV3IGVudHJ5IHdpdGggdGhlIGdpdmVuIHZhbHVlIHRvIHRoZSBjb250ZXh0LiBUaGUgcGF0aCBvZiB0aGUgZW50cnkgaXMgZGVmaW5lZCBieSB0aGUga2V5cy4gUmV0dXJucyBhIG5ldyBjb250ZXh0IHRoYXQgaW5jbHVkZXMgdGhlIGVudHJ5LjwvcD5cXG48cD5JZiA8Y29kZT5rZXlzPC9jb2RlPiBjb250YWlucyB0aGUga2V5cyA8Y29kZT5bazEsIGsyXTwvY29kZT4gdGhlbiBpdCBhZGRzIHRoZSBuZXN0ZWQgZW50cnkgPGNvZGU+azEuazIgPSB2YWx1ZTwvY29kZT4gdG8gdGhlIGNvbnRleHQuPC9wPlxcbjxwPklmIGFuIGVudHJ5IGZvciB0aGUgc2FtZSBrZXlzIGFscmVhZHkgZXhpc3RzIGluIHRoZSBjb250ZXh0LCBpdCBvdmVycmlkZXMgdGhlIHZhbHVlLjwvcD5cXG48cD5JZiA8Y29kZT5rZXlzPC9jb2RlPiBhcmUgZW1wdHksIGl0IHJldHVybnMgPGNvZGU+bnVsbDwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmNvbnRleHQgcHV0KGNvbnRleHQ6IGNvbnRleHQsIGtleXM6IGxpc3QmbHQ7c3RyaW5nJmd0OywgdmFsdWU6IEFueSk6IGNvbnRleHRcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb250ZXh0IHB1dCh7eDoxfSwgWyZxdW90O3kmcXVvdDtdLCAyKVxcbi8vIHt4OjEsIHk6Mn1cXG5cXG5jb250ZXh0IHB1dCh7eDoxLCB5OiB7ejowfX0sIFsmcXVvdDt5JnF1b3Q7LCAmcXVvdDt6JnF1b3Q7XSwgMilcXG4vLyB7eDoxLCB5OiB7ejoyfX1cXG5cXG5jb250ZXh0IHB1dCh7eDoxfSwgWyZxdW90O3kmcXVvdDssICZxdW90O3omcXVvdDtdLCAyKVxcbi8vIHt4OjEsIHk6IHt6OjJ9fVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJjb250ZXh0IG1lcmdlKGNvbnRleHRzKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlVuaW9uIHRoZSBnaXZlbiBjb250ZXh0cy4gUmV0dXJucyBhIG5ldyBjb250ZXh0IHRoYXQgaW5jbHVkZXMgYWxsIGVudHJpZXMgb2YgdGhlIGdpdmVuIGNvbnRleHRzLjwvcD5cXG48cD5JZiBhbiBlbnRyeSBmb3IgdGhlIHNhbWUga2V5IGFscmVhZHkgZXhpc3RzIGluIGEgY29udGV4dCwgaXQgb3ZlcnJpZGVzIHRoZSB2YWx1ZS4gVGhlIGVudHJpZXMgYXJlIG92ZXJyaWRkZW4gaW4gdGhlIHNhbWUgb3JkZXIgYXMgaW4gdGhlIGxpc3Qgb2YgY29udGV4dHMuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmNvbnRleHQgbWVyZ2UoY29udGV4dHM6IGxpc3QmbHQ7Y29udGV4dCZndDspOiBjb250ZXh0XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Y29udGV4dCBtZXJnZShbe3g6MX0sIHt5OjJ9XSlcXG4vLyB7eDoxLCB5OjJ9XFxuXFxuY29udGV4dCBtZXJnZShbe3g6MSwgeTogMH0sIHt5OjJ9XSlcXG4vLyB7eDoxLCB5OjJ9XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjo6OmluZm9cXG5UaGUgZnVuY3Rpb24gPGNvZGU+Y29udGV4dCBtZXJnZSgpPC9jb2RlPiByZXBsYWNlZCB0aGUgcHJldmlvdXMgZnVuY3Rpb24gPGNvZGU+cHV0IGFsbCgpPC9jb2RlPiAoQ2FtdW5kYSBFeHRlbnNpb24pLiBUaGVcXG5wcmV2aW91cyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS5cXG46Ojo8L3A+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwic3RyaW5nKGZyb20pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgYXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0cmluZyhmcm9tOiBBbnkpOiBzdHJpbmdcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdHJpbmcoMS4xKVxcbi8vICZxdW90OzEuMSZxdW90O1xcblxcbnN0cmluZyhkYXRlKCZxdW90OzIwMTItMTItMjUmcXVvdDspKVxcbi8vICZxdW90OzIwMTItMTItMjUmcXVvdDtcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibnVtYmVyKGZyb20pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UGFyc2VzIHRoZSBnaXZlbiBzdHJpbmcgdG8gYSBudW1iZXIuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm51bWJlcihmcm9tOiBzdHJpbmcpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5udW1iZXIoJnF1b3Q7MTUwMC41JnF1b3Q7KVxcbi8vIDE1MDAuNVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJjb250ZXh0KGVudHJpZXMpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+Q29uc3RydWN0cyBhIGNvbnRleHQgb2YgdGhlIGdpdmVuIGxpc3Qgb2Yga2V5LXZhbHVlIHBhaXJzLiBJdCBpcyB0aGUgcmV2ZXJzZSBmdW5jdGlvbiB0byA8YSBocmVmPVxcXCJmZWVsLWJ1aWx0LWluLWZ1bmN0aW9ucy1jb250ZXh0Lm1kI2dldC1lbnRyaWVzY29udGV4dFxcXCI+Z2V0IGVudHJpZXMoKTwvYT4uPC9wPlxcbjxwPkVhY2gga2V5LXZhbHVlIHBhaXIgbXVzdCBiZSBhIGNvbnRleHQgd2l0aCB0d28gZW50cmllczogPGNvZGU+a2V5PC9jb2RlPiBhbmQgPGNvZGU+dmFsdWU8L2NvZGU+LiBUaGUgZW50cnkgd2l0aCBuYW1lIDxjb2RlPmtleTwvY29kZT4gbXVzdCBoYXZlIGEgdmFsdWUgb2YgdGhlIHR5cGUgPGNvZGU+c3RyaW5nPC9jb2RlPi48L3A+XFxuPHA+SXQgbWlnaHQgb3ZlcnJpZGUgY29udGV4dCBlbnRyaWVzIGlmIHRoZSBrZXlzIGFyZSBlcXVhbC4gVGhlIGVudHJpZXMgYXJlIG92ZXJyaWRkZW4gaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIGNvbnRleHRzIGluIHRoZSBnaXZlbiBsaXN0LjwvcD5cXG48cD5SZXR1cm5zIDxjb2RlPm51bGw8L2NvZGU+IGlmIG9uZSBvZiB0aGUgZW50cmllcyBpcyBub3QgYSBjb250ZXh0IG9yIGlmIGEgY29udGV4dCBkb2VzbiYjMzk7dCBjb250YWluIHRoZSByZXF1aXJlZCBlbnRyaWVzLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb250ZXh0KGVudHJpZXM6IGxpc3QmbHQ7Y29udGV4dCZndDspOiBjb250ZXh0XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Y29udGV4dChbeyZxdW90O2tleSZxdW90OzomcXVvdDthJnF1b3Q7LCAmcXVvdDt2YWx1ZSZxdW90OzoxfSwgeyZxdW90O2tleSZxdW90OzomcXVvdDtiJnF1b3Q7LCAmcXVvdDt2YWx1ZSZxdW90OzoyfV0pXFxuLy8ge2E6MSwgYjoyfVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJkYXRlKGZyb20pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIGRhdGUgZnJvbSB0aGUgZ2l2ZW4gdmFsdWUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRhdGUoZnJvbTogc3RyaW5nKTogZGF0ZVxcbjwvY29kZT48L3ByZT5cXG48cD5QYXJzZXMgdGhlIGdpdmVuIHN0cmluZyBpbnRvIGEgZGF0ZS48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF0ZShmcm9tOiBkYXRlIGFuZCB0aW1lKTogZGF0ZVxcbjwvY29kZT48L3ByZT5cXG48cD5FeHRyYWN0cyB0aGUgZGF0ZSBjb21wb25lbnQgZnJvbSB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZS48L3A+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5kYXRlKCZxdW90OzIwMTgtMDQtMjkmcXVvdDspXFxuLy8gZGF0ZSgmcXVvdDsyMDE4LTA0LTI5JnF1b3Q7KVxcblxcbmRhdGUoZGF0ZSBhbmQgdGltZSgmcXVvdDsyMDEyLTEyLTI1VDExOjAwOjAwJnF1b3Q7KSlcXG4vLyBkYXRlKCZxdW90OzIwMTItMTItMjUmcXVvdDspXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImRhdGUoeWVhciwgbW9udGgsIGRheSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIGEgZGF0ZSBmcm9tIHRoZSBnaXZlbiBjb21wb25lbnRzLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5kYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF5OiBudW1iZXIpOiBkYXRlXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF0ZSgyMDEyLCAxMiwgMjUpXFxuLy8gZGF0ZSgmcXVvdDsyMDEyLTEyLTI1JnF1b3Q7KVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJ0aW1lKGZyb20pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIHRpbWUgZnJvbSB0aGUgZ2l2ZW4gdmFsdWUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnRpbWUoZnJvbTogc3RyaW5nKTogdGltZVxcbjwvY29kZT48L3ByZT5cXG48cD5QYXJzZXMgdGhlIGdpdmVuIHN0cmluZyBpbnRvIGEgdGltZS48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+dGltZShmcm9tOiBkYXRlIGFuZCB0aW1lKTogdGltZVxcbjwvY29kZT48L3ByZT5cXG48cD5FeHRyYWN0cyB0aGUgdGltZSBjb21wb25lbnQgZnJvbSB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZS48L3A+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj50aW1lKCZxdW90OzEyOjAwOjAwJnF1b3Q7KVxcbi8vIHRpbWUoJnF1b3Q7MTI6MDA6MDAmcXVvdDspXFxuXFxudGltZShkYXRlIGFuZCB0aW1lKCZxdW90OzIwMTItMTItMjVUMTE6MDA6MDAmcXVvdDspKVxcbi8vIHRpbWUoJnF1b3Q7MTE6MDA6MDAmcXVvdDspXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInRpbWUoaG91ciwgbWludXRlLCBzZWNvbmQpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIHRpbWUgZnJvbSB0aGUgZ2l2ZW4gY29tcG9uZW50cy48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+dGltZShob3VyOiBudW1iZXIsIG1pbnV0ZTogbnVtYmVyLCBzZWNvbmQ6IG51bWJlcik6IHRpbWVcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj50aW1lKDIzLCA1OSwgMClcXG4vLyB0aW1lKCZxdW90OzIzOjU5OjAwJnF1b3Q7KVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJ0aW1lKGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBvZmZzZXQpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIHRpbWUgZnJvbSB0aGUgZ2l2ZW4gY29tcG9uZW50cywgaW5jbHVkaW5nIGEgdGltZXpvbmUgb2Zmc2V0LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj50aW1lKGhvdXI6IG51bWJlciwgbWludXRlOiBudW1iZXIsIHNlY29uZDogbnVtYmVyLCBvZmZzZXQ6IGRheXMgYW5kIHRpbWUgZHVyYXRpb24pOiB0aW1lXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+dGltZSgxNCwgMzAsIDAsIGR1cmF0aW9uKCZxdW90O1BUMUgmcXVvdDspKVxcbi8vIHRpbWUoJnF1b3Q7MTQ6MzA6MDArMDE6MDAmcXVvdDspXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImRhdGUgYW5kIHRpbWUoZnJvbSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5QYXJzZXMgdGhlIGdpdmVuIHN0cmluZyBpbnRvIGEgZGF0ZSBhbmQgdGltZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF0ZSBhbmQgdGltZShmcm9tOiBzdHJpbmcpOiBkYXRlIGFuZCB0aW1lXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF0ZSBhbmQgdGltZSgmcXVvdDsyMDE4LTA0LTI5VDA5OjMwOjAwJnF1b3Q7KVxcbi8vIGRhdGUgYW5kIHRpbWUoJnF1b3Q7MjAxOC0wNC0yOVQwOTozMDowMCZxdW90OylcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZGF0ZSBhbmQgdGltZShkYXRlLCB0aW1lKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgYSBkYXRlIGFuZCB0aW1lIGZyb20gdGhlIGdpdmVuIGNvbXBvbmVudHMuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRhdGUgYW5kIHRpbWUoZGF0ZTogZGF0ZSwgdGltZTogdGltZSk6IGRhdGUgYW5kIHRpbWVcXG48L2NvZGU+PC9wcmU+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF0ZSBhbmQgdGltZShkYXRlOiBkYXRlIGFuZCB0aW1lLCB0aW1lOiB0aW1lKTogZGF0ZSBhbmQgdGltZVxcbjwvY29kZT48L3ByZT5cXG48cD5SZXR1cm5zIGEgZGF0ZSBhbmQgdGltZSB2YWx1ZSB0aGF0IGNvbnNpc3RzIG9mIHRoZSBkYXRlIGNvbXBvbmVudCBvZiA8Y29kZT5kYXRlPC9jb2RlPiBjb21iaW5lZCB3aXRoIDxjb2RlPnRpbWU8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRhdGUgYW5kIHRpbWUoZGF0ZSgmcXVvdDsyMDEyLTEyLTI0JnF1b3Q7KSx0aW1lKCZxdW90O1QyMzo1OTowMCZxdW90OykpXFxuLy8gZGF0ZSBhbmQgdGltZSgmcXVvdDsyMDEyLTEyLTI0VDIzOjU5OjAwJnF1b3Q7KVxcblxcbmRhdGUgYW5kIHRpbWUoZGF0ZSBhbmQgdGltZSgmcXVvdDsyMDEyLTEyLTI1VDExOjAwOjAwJnF1b3Q7KSx0aW1lKCZxdW90O1QyMzo1OTowMCZxdW90OykpXFxuLy8gZGF0ZSBhbmQgdGltZSgmcXVvdDsyMDEyLTEyLTI1VDIzOjU5OjAwJnF1b3Q7KVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJkYXRlIGFuZCB0aW1lKGRhdGUsIHRpbWV6b25lKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxlbT5DYW11bmRhIEV4dGVuc2lvbjwvZW0+PC9wPlxcbjxwPlJldHVybnMgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgdmFsdWUgYXQgdGhlIGdpdmVuIHRpbWV6b25lLjwvcD5cXG48cD5JZiA8Y29kZT5kYXRlPC9jb2RlPiBoYXMgYSBkaWZmZXJlbnQgdGltZXpvbmUgdGhhbiA8Y29kZT50aW1lem9uZTwvY29kZT4gdGhlbiBpdCBhZGp1c3RzIHRoZSB0aW1lIHRvIG1hdGNoIHRoZSBsb2NhbCB0aW1lIG9mIDxjb2RlPnRpbWV6b25lPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF0ZSBhbmQgdGltZShkYXRlOiBkYXRlIGFuZCB0aW1lLCB0aW1lem9uZTogc3RyaW5nKTogZGF0ZSBhbmQgdGltZVxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRhdGUgYW5kIHRpbWUoQCZxdW90OzIwMjAtMDctMzFUMTQ6Mjc6MzBARXVyb3BlL0JlcmxpbiZxdW90OywgJnF1b3Q7QW1lcmljYS9Mb3NfQW5nZWxlcyZxdW90OylcXG4vLyBkYXRlIGFuZCB0aW1lKCZxdW90OzIwMjAtMDctMzFUMDU6Mjc6MzBAQW1lcmljYS9Mb3NfQW5nZWxlcyZxdW90OylcXG5cXG5kYXRlIGFuZCB0aW1lKEAmcXVvdDsyMDIwLTA3LTMxVDE0OjI3OjMwJnF1b3Q7LCAmcXVvdDtaJnF1b3Q7KVxcbi8vIGRhdGUgYW5kIHRpbWUoJnF1b3Q7MjAyMC0wNy0zMVQxMjoyNzozMFomcXVvdDspXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImR1cmF0aW9uKGZyb20pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UGFyc2VzIHRoZSBnaXZlbiBzdHJpbmcgaW50byBhIGR1cmF0aW9uLiBUaGUgZHVyYXRpb24gaXMgZWl0aGVyIGEgZGF5cyBhbmQgdGltZSBkdXJhdGlvbiBvciBhIHllYXJzIGFuZCBtb250aHMgZHVyYXRpb24uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmR1cmF0aW9uKGZyb206IHN0cmluZyk6IGRheXMgYW5kIHRpbWUgZHVyYXRpb25cXG48L2NvZGU+PC9wcmU+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZHVyYXRpb24oZnJvbTogc3RyaW5nKTogeWVhcnMgYW5kIG1vbnRocyBkdXJhdGlvblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmR1cmF0aW9uKCZxdW90O1A1RCZxdW90OylcXG4vLyBkdXJhdGlvbigmcXVvdDtQNUQmcXVvdDspXFxuXFxuZHVyYXRpb24oJnF1b3Q7UDMyWSZxdW90OylcXG4vLyBkdXJhdGlvbigmcXVvdDtQMzJZJnF1b3Q7KVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJ5ZWFycyBhbmQgbW9udGhzIGR1cmF0aW9uKGZyb20sIHRvKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIHllYXJzIGFuZCBtb250aHMgZHVyYXRpb24gYmV0d2VlbiA8Y29kZT5mcm9tPC9jb2RlPiBhbmQgPGNvZGU+dG88L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj55ZWFycyBhbmQgbW9udGhzIGR1cmF0aW9uKGZyb206IGRhdGUsIHRvOiBkYXRlKTogeWVhcnMgYW5kIG1vbnRocyBkdXJhdGlvblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnllYXJzIGFuZCBtb250aHMgZHVyYXRpb24oZGF0ZSgmcXVvdDsyMDExLTEyLTIyJnF1b3Q7KSwgZGF0ZSgmcXVvdDsyMDEzLTA4LTI0JnF1b3Q7KSlcXG4vLyBkdXJhdGlvbigmcXVvdDtQMVk4TSZxdW90OylcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibGlzdCBjb250YWlucyhsaXN0LCBlbGVtZW50KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIGdpdmVuIGxpc3QgY29udGFpbnMgdGhlIGVsZW1lbnQuIE90aGVyd2lzZSwgcmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmxpc3QgY29udGFpbnMobGlzdDogbGlzdCwgZWxlbWVudDogQW55KTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmxpc3QgY29udGFpbnMoWzEsMiwzXSwgMilcXG4vLyB0cnVlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImNvdW50KGxpc3QpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIG9mIHRoZSBnaXZlbiBsaXN0LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb3VudChsaXN0OiBsaXN0KTogbnVtYmVyXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Y291bnQoWzEsMiwzXSlcXG4vLyAzXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIm1pbihsaXN0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIG1pbmltdW0gb2YgdGhlIGdpdmVuIGxpc3QuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1pbihsaXN0OiBsaXN0KTogQW55XFxuPC9jb2RlPjwvcHJlPlxcbjxwPkFsbCBlbGVtZW50cyBpbiA8Y29kZT5saXN0PC9jb2RlPiBzaG91bGQgaGF2ZSB0aGUgc2FtZSB0eXBlIGFuZCBiZSBjb21wYXJhYmxlLjwvcD5cXG48cD5UaGUgcGFyYW1ldGVyIDxjb2RlPmxpc3Q8L2NvZGU+IGNhbiBiZSBwYXNzZWQgYXMgYSBsaXN0IG9yIGFzIGEgc2VxdWVuY2Ugb2YgZWxlbWVudHMuPC9wPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bWluKFsxLDIsM10pXFxuLy8gMVxcblxcbm1pbigxLDIsMylcXG4vLyAxXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIm1heChsaXN0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIG1heGltdW0gb2YgdGhlIGdpdmVuIGxpc3QuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1heChsaXN0OiBsaXN0KTogQW55XFxuPC9jb2RlPjwvcHJlPlxcbjxwPkFsbCBlbGVtZW50cyBpbiA8Y29kZT5saXN0PC9jb2RlPiBzaG91bGQgaGF2ZSB0aGUgc2FtZSB0eXBlIGFuZCBiZSBjb21wYXJhYmxlLjwvcD5cXG48cD5UaGUgcGFyYW1ldGVyIDxjb2RlPmxpc3Q8L2NvZGU+IGNhbiBiZSBwYXNzZWQgYXMgYSBsaXN0IG9yIGFzIGEgc2VxdWVuY2Ugb2YgZWxlbWVudHMuPC9wPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bWF4KFsxLDIsM10pXFxuLy8gM1xcblxcbm1heCgxLDIsMylcXG4vLyAzXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN1bShsaXN0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIHN1bSBvZiB0aGUgZ2l2ZW4gbGlzdCBvZiBudW1iZXJzLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdW0obGlzdDogbGlzdCZsdDtudW1iZXImZ3Q7KTogbnVtYmVyXFxuPC9jb2RlPjwvcHJlPlxcbjxwPlRoZSBwYXJhbWV0ZXIgPGNvZGU+bGlzdDwvY29kZT4gY2FuIGJlIHBhc3NlZCBhcyBhIGxpc3Qgb3IgYXMgYSBzZXF1ZW5jZSBvZiBlbGVtZW50cy48L3A+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdW0oWzEsMiwzXSlcXG4vLyA2XFxuXFxuc3VtKDEsMiwzKVxcbi8vIDZcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwicHJvZHVjdChsaXN0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIHByb2R1Y3Qgb2YgdGhlIGdpdmVuIGxpc3Qgb2YgbnVtYmVycy48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+cHJvZHVjdChsaXN0OiBsaXN0Jmx0O251bWJlciZndDspOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5saXN0PC9jb2RlPiBjYW4gYmUgcGFzc2VkIGFzIGEgbGlzdCBvciBhcyBhIHNlcXVlbmNlIG9mIGVsZW1lbnRzLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnByb2R1Y3QoWzIsIDMsIDRdKVxcbi8vIDI0XFxuXFxucHJvZHVjdCgyLCAzLCA0KVxcbi8vIDI0XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIm1lYW4obGlzdClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBhcml0aG1ldGljIG1lYW4gKGkuZS4gYXZlcmFnZSkgb2YgdGhlIGdpdmVuIGxpc3Qgb2YgbnVtYmVycy48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bWVhbihsaXN0OiBsaXN0Jmx0O251bWJlciZndDspOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5saXN0PC9jb2RlPiBjYW4gYmUgcGFzc2VkIGFzIGEgbGlzdCBvciBhcyBhIHNlcXVlbmNlIG9mIGVsZW1lbnRzLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1lYW4oWzEsMiwzXSlcXG4vLyAyXFxuXFxubWVhbigxLDIsMylcXG4vLyAyXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIm1lZGlhbihsaXN0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIG1lZGlhbiBlbGVtZW50IG9mIHRoZSBnaXZlbiBsaXN0IG9mIG51bWJlcnMuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1lZGlhbihsaXN0OiBsaXN0Jmx0O251bWJlciZndDspOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5saXN0PC9jb2RlPiBjYW4gYmUgcGFzc2VkIGFzIGEgbGlzdCBvciBhcyBhIHNlcXVlbmNlIG9mIGVsZW1lbnRzLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1lZGlhbig4LCAyLCA1LCAzLCA0KVxcbi8vIDRcXG5cXG5tZWRpYW4oWzYsIDEsIDIsIDNdKVxcbi8vIDIuNVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJzdGRkZXYobGlzdClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIGdpdmVuIGxpc3Qgb2YgbnVtYmVycy48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RkZGV2KGxpc3Q6IGxpc3QmbHQ7bnVtYmVyJmd0Oyk6IG51bWJlclxcbjwvY29kZT48L3ByZT5cXG48cD5UaGUgcGFyYW1ldGVyIDxjb2RlPmxpc3Q8L2NvZGU+IGNhbiBiZSBwYXNzZWQgYXMgYSBsaXN0IG9yIGFzIGEgc2VxdWVuY2Ugb2YgZWxlbWVudHMuPC9wPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RkZGV2KDIsIDQsIDcsIDUpXFxuLy8gMi4wODE2NjU5OTk0NjYxMzI2XFxuXFxuc3RkZGV2KFsyLCA0LCA3LCA1XSlcXG4vLyAyLjA4MTY2NTk5OTQ2NjEzMjZcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibW9kZShsaXN0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIG1vZGUgb2YgdGhlIGdpdmVuIGxpc3Qgb2YgbnVtYmVycy48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bW9kZShsaXN0OiBsaXN0Jmx0O251bWJlciZndDspOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5saXN0PC9jb2RlPiBjYW4gYmUgcGFzc2VkIGFzIGEgbGlzdCBvciBhcyBhIHNlcXVlbmNlIG9mIGVsZW1lbnRzLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1vZGUoNiwgMywgOSwgNiwgNilcXG4vLyBbNl1cXG5cXG5tb2RlKFs2LCAxLCA5LCA2LCAxXSlcXG4vLyBbMSwgNl1cXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiYWxsKGxpc3QpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4gaWYgYW55IGVsZW1lbnQgb2YgdGhlIGdpdmVuIGxpc3QgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LiBPdGhlcndpc2UsIHJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4uPC9wPlxcbjxwPklmIHRoZSBnaXZlbiBsaXN0IGlzIGVtcHR5LCBpdCByZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hbGwobGlzdDogbGlzdCZsdDtib29sZWFuJmd0Oyk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5saXN0PC9jb2RlPiBjYW4gYmUgcGFzc2VkIGFzIGEgbGlzdCBvciBhcyBhIHNlcXVlbmNlIG9mIGVsZW1lbnRzLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmFsbChbdHJ1ZSxmYWxzZV0pXFxuLy8gZmFsc2VcXG5cXG5hbGwoZmFsc2UsbnVsbCx0cnVlKVxcbi8vIGZhbHNlXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjo6OmluZm9cXG5UaGUgZnVuY3Rpb24gPGNvZGU+YWxsKCk8L2NvZGU+IHJlcGxhY2VkIHRoZSBwcmV2aW91cyBmdW5jdGlvbiA8Y29kZT5hbmQoKTwvY29kZT4uIFRoZSBwcmV2aW91cyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZFxcbnNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlLlxcbjo6OjwvcD5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJhbnkobGlzdClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIGFueSBlbGVtZW50IG9mIHRoZSBnaXZlbiBsaXN0IGlzIDxjb2RlPnRydWU8L2NvZGU+LiBPdGhlcndpc2UsIHJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+LjwvcD5cXG48cD5JZiB0aGUgZ2l2ZW4gbGlzdCBpcyBlbXB0eSwgaXQgcmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmFueShsaXN0OiBsaXN0Jmx0O2Jvb2xlYW4mZ3Q7KTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD5UaGUgcGFyYW1ldGVyIDxjb2RlPmxpc3Q8L2NvZGU+IGNhbiBiZSBwYXNzZWQgYXMgYSBsaXN0IG9yIGFzIGEgc2VxdWVuY2Ugb2YgZWxlbWVudHMuPC9wPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YW55KFtmYWxzZSx0cnVlXSlcXG4vLyB0cnVlXFxuXFxuYW55KGZhbHNlLG51bGwsdHJ1ZSlcXG4vLyB0cnVlXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjo6OmluZm9cXG5UaGUgZnVuY3Rpb24gPGNvZGU+YW55KCk8L2NvZGU+IHJlcGxhY2VkIHRoZSBwcmV2aW91cyBmdW5jdGlvbiA8Y29kZT5vcigpPC9jb2RlPi4gVGhlIHByZXZpb3VzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kXFxuc2hvdWxkIG5vdCBiZSB1c2VkIGFueW1vcmUuXFxuOjo6PC9wPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN1Ymxpc3QobGlzdCwgc3RhcnQgcG9zaXRpb24pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIHBhcnRpYWwgbGlzdCBvZiB0aGUgZ2l2ZW4gdmFsdWUgc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQgcG9zaXRpb248L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdWJsaXN0KGxpc3Q6IGxpc3QsIHN0YXJ0IHBvc2l0aW9uOiBudW1iZXIpOiBsaXN0XFxuPC9jb2RlPjwvcHJlPlxcbjxwPlRoZSA8Y29kZT5zdGFydCBwb3NpdGlvbjwvY29kZT4gc3RhcnRzIGF0IHRoZSBpbmRleCA8Y29kZT4xPC9jb2RlPi4gVGhlIGxhc3QgcG9zaXRpb24gaXMgPGNvZGU+LTE8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN1Ymxpc3QoWzEsMiwzXSwgMilcXG4vLyBbMiwzXVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJzdWJsaXN0KGxpc3QsIHN0YXJ0IHBvc2l0aW9uLCBsZW5ndGgpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIHBhcnRpYWwgbGlzdCBvZiB0aGUgZ2l2ZW4gdmFsdWUgc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQgcG9zaXRpb248L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdWJsaXN0KGxpc3Q6IGxpc3QsIHN0YXJ0IHBvc2l0aW9uOiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogbGlzdFxcbjwvY29kZT48L3ByZT5cXG48cD5UaGUgPGNvZGU+c3RhcnQgcG9zaXRpb248L2NvZGU+IHN0YXJ0cyBhdCB0aGUgaW5kZXggPGNvZGU+MTwvY29kZT4uIFRoZSBsYXN0IHBvc2l0aW9uIGlzIDxjb2RlPi0xPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdWJsaXN0KFsxLDIsM10sIDEsIDIpXFxuLy8gWzEsMl1cXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiYXBwZW5kKGxpc3QsIGl0ZW1zKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIGdpdmVuIGxpc3Qgd2l0aCBhbGwgPGNvZGU+aXRlbXM8L2NvZGU+IGFwcGVuZGVkLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hcHBlbmQobGlzdDogbGlzdCwgaXRlbXM6IEFueSk6IGxpc3RcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5pdGVtczwvY29kZT4gY2FuIGJlIGEgc2luZ2xlIGVsZW1lbnQgb3IgYSBzZXF1ZW5jZSBvZiBlbGVtZW50cy48L3A+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hcHBlbmQoWzFdLCAyLCAzKVxcbi8vIFsxLDIsM11cXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiY29uY2F0ZW5hdGUobGlzdHMpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIGxpc3QgdGhhdCBpbmNsdWRlcyBhbGwgZWxlbWVudHMgb2YgdGhlIGdpdmVuIGxpc3RzLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb25jYXRlbmF0ZShsaXN0czogbGlzdCk6IGxpc3RcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5saXN0czwvY29kZT4gaXMgYSBzZXF1ZW5jZSBvZiBsaXN0cy48L3A+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb25jYXRlbmF0ZShbMSwyXSxbM10pXFxuLy8gWzEsMiwzXVxcblxcbmNvbmNhdGVuYXRlKFsxXSxbMl0sWzNdKVxcbi8vIFsxLDIsM11cXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiaW5zZXJ0IGJlZm9yZShsaXN0LCBwb3NpdGlvbiwgbmV3SXRlbSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBnaXZlbiBsaXN0IHdpdGggPGNvZGU+bmV3SXRlbTwvY29kZT4gaW5zZXJ0ZWQgYXQgPGNvZGU+cG9zaXRpb248L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5pbnNlcnQgYmVmb3JlKGxpc3Q6IGxpc3QsIHBvc2l0aW9uOiBudW1iZXIsIG5ld0l0ZW06IEFueSk6IGxpc3RcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIDxjb2RlPnBvc2l0aW9uPC9jb2RlPiBzdGFydHMgYXQgdGhlIGluZGV4IDxjb2RlPjE8L2NvZGU+LiBUaGUgbGFzdCBwb3NpdGlvbiBpcyA8Y29kZT4tMTwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+aW5zZXJ0IGJlZm9yZShbMSwzXSwxLDIpXFxuLy8gWzIsMSwzXVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJyZW1vdmUobGlzdCwgcG9zaXRpb24pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgZ2l2ZW4gbGlzdCB3aXRob3V0IHRoZSBlbGVtZW50IGF0IDxjb2RlPnBvc2l0aW9uPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+cmVtb3ZlKGxpc3Q6IGxpc3QsIHBvc2l0aW9uOiBudW1iZXIpOiBsaXN0XFxuPC9jb2RlPjwvcHJlPlxcbjxwPlRoZSA8Y29kZT5wb3NpdGlvbjwvY29kZT4gc3RhcnRzIGF0IHRoZSBpbmRleCA8Y29kZT4xPC9jb2RlPi4gVGhlIGxhc3QgcG9zaXRpb24gaXMgPGNvZGU+LTE8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJlbW92ZShbMSwyLDNdLCAyKVxcbi8vIFsxLDNdXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInJldmVyc2UobGlzdClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBnaXZlbiBsaXN0IGluIHJldmVyZWQgb3JkZXIuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJldmVyc2UobGlzdDogbGlzdCk6IGxpc3RcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5yZXZlcnNlKFsxLDIsM10pXFxuLy8gWzMsMiwxXVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJpbmRleCBvZihsaXN0LCBtYXRjaClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIGFuIGFzY2VuZGluZyBsaXN0IG9mIHBvc2l0aW9ucyBjb250YWluaW5nIDxjb2RlPm1hdGNoPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+aW5kZXggb2YobGlzdDogbGlzdCwgbWF0Y2g6IEFueSk6IGxpc3QmbHQ7bnVtYmVyJmd0O1xcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmluZGV4IG9mKFsxLDIsMywyXSwyKVxcbi8vIFsyLDRdXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInVuaW9uKGxpc3QpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIGxpc3QgdGhhdCBpbmNsdWRlcyBhbGwgZWxlbWVudHMgb2YgdGhlIGdpdmVuIGxpc3RzIHdpdGhvdXQgZHVwbGljYXRlcy48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+dW5pb24obGlzdDogbGlzdCk6IGxpc3RcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIHBhcmFtZXRlciA8Y29kZT5saXN0PC9jb2RlPiBpcyBhIHNlcXVlbmNlIG9mIGxpc3RzLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnVuaW9uKFsxLDJdLFsyLDNdKVxcbi8vIFsxLDIsM11cXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZGlzdGluY3QgdmFsdWVzKGxpc3QpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgZ2l2ZW4gbGlzdCB3aXRob3V0IGR1cGxpY2F0ZXMuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRpc3RpbmN0IHZhbHVlcyhsaXN0OiBsaXN0KTogbGlzdFxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRpc3RpbmN0IHZhbHVlcyhbMSwyLDMsMiwxXSlcXG4vLyBbMSwyLDNdXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImR1cGxpY2F0ZSB2YWx1ZXMobGlzdClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48ZW0+Q2FtdW5kYSBFeHRlbnNpb248L2VtPjwvcD5cXG48cD5SZXR1cm5zIGFsbCBkdXBsaWNhdGUgdmFsdWVzIG9mIHRoZSBnaXZlbiBsaXN0LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5kdXBsaWNhdGUgdmFsdWVzKGxpc3Q6IGxpc3QpOiBsaXN0XFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZHVwbGljYXRlIHZhbHVlcyhbMSwyLDMsMiwxXSlcXG4vLyBbMSwyXVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJmbGF0dGVuKGxpc3QpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIGxpc3QgdGhhdCBpbmNsdWRlcyBhbGwgZWxlbWVudHMgb2YgdGhlIGdpdmVuIGxpc3Qgd2l0aG91dCBuZXN0ZWQgbGlzdHMuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmZsYXR0ZW4obGlzdDogbGlzdCk6IGxpc3RcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5mbGF0dGVuKFtbMSwyXSxbWzNdXSwgNF0pXFxuLy8gWzEsMiwzLDRdXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInNvcnQobGlzdCwgcHJlY2VkZXMpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgZ2l2ZW4gbGlzdCBzb3J0ZWQgYnkgdGhlIDxjb2RlPnByZWNlZGVzPC9jb2RlPiBmdW5jdGlvbi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c29ydChsaXN0OiBsaXN0LCBwcmVjZWRlczogZnVuY3Rpb24mbHQ7KEFueSwgQW55KSAtJmd0OyBib29sZWFuJmd0Oyk6IGxpc3RcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zb3J0KGxpc3Q6IFszLDEsNCw1LDJdLCBwcmVjZWRlczogZnVuY3Rpb24oeCx5KSB4ICZsdDsgeSlcXG4vLyBbMSwyLDMsNCw1XVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJzdHJpbmcgam9pbihsaXN0KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPkpvaW5zIGEgbGlzdCBvZiBzdHJpbmdzIGludG8gYSBzaW5nbGUgc3RyaW5nLiBUaGlzIGlzIHNpbWlsYXIgdG9cXG5KYXZhJiMzOTtzIDxhIGhyZWY9XFxcImh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2VuL2phdmEvamF2YXNlLzExL2RvY3MvYXBpL2phdmEuYmFzZS9qYXZhL3V0aWwvc3RyZWFtL0NvbGxlY3RvcnMuaHRtbCNqb2luaW5nKGphdmEubGFuZy5DaGFyU2VxdWVuY2UsamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSxqYXZhLmxhbmcuQ2hhclNlcXVlbmNlKVxcXCI+am9pbmluZzwvYT5cXG5mdW5jdGlvbi48L3A+XFxuPHA+SWYgYW4gaXRlbSBvZiB0aGUgbGlzdCBpcyA8Y29kZT5udWxsPC9jb2RlPiwgdGhlIGl0ZW0gaXMgaWdub3JlZCBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIElmIGFuIGl0ZW0gaXNcXG5uZWl0aGVyIGEgc3RyaW5nIG5vciA8Y29kZT5udWxsPC9jb2RlPiwgdGhlIGZ1bmN0aW9uIHJldHVybnMgPGNvZGU+bnVsbDwvY29kZT4gaW5zdGVhZCBvZiBhIHN0cmluZy48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RyaW5nIGpvaW4obGlzdDogbGlzdCZsdDtzdHJpbmcmZ3Q7KTogc3RyaW5nXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RyaW5nIGpvaW4oWyZxdW90O2EmcXVvdDssJnF1b3Q7YiZxdW90OywmcXVvdDtjJnF1b3Q7XSlcXG4vLyAmcXVvdDthYmMmcXVvdDtcXG5cXG5zdHJpbmcgam9pbihbJnF1b3Q7YSZxdW90OyxudWxsLCZxdW90O2MmcXVvdDtdKVxcbi8vICZxdW90O2FjJnF1b3Q7XFxuXFxuc3RyaW5nIGpvaW4oW10pXFxuLy8gJnF1b3Q7JnF1b3Q7XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN0cmluZyBqb2luKGxpc3QsIGRlbGltaXRlcilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5Kb2lucyBhIGxpc3Qgb2Ygc3RyaW5ncyBpbnRvIGEgc2luZ2xlIHN0cmluZy4gVGhpcyBpcyBzaW1pbGFyIHRvXFxuSmF2YSYjMzk7cyA8YSBocmVmPVxcXCJodHRwczovL2RvY3Mub3JhY2xlLmNvbS9lbi9qYXZhL2phdmFzZS8xMS9kb2NzL2FwaS9qYXZhLmJhc2UvamF2YS91dGlsL3N0cmVhbS9Db2xsZWN0b3JzLmh0bWwjam9pbmluZyhqYXZhLmxhbmcuQ2hhclNlcXVlbmNlLGphdmEubGFuZy5DaGFyU2VxdWVuY2UsamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSlcXFwiPmpvaW5pbmc8L2E+XFxuZnVuY3Rpb24uPC9wPlxcbjxwPklmIGFuIGl0ZW0gb2YgdGhlIGxpc3QgaXMgPGNvZGU+bnVsbDwvY29kZT4sIHRoZSBpdGVtIGlzIGlnbm9yZWQgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBJZiBhbiBpdGVtIGlzXFxubmVpdGhlciBhIHN0cmluZyBub3IgPGNvZGU+bnVsbDwvY29kZT4sIHRoZSBmdW5jdGlvbiByZXR1cm5zIDxjb2RlPm51bGw8L2NvZGU+IGluc3RlYWQgb2YgYSBzdHJpbmcuPC9wPlxcbjxwPlRoZSByZXN1bHRpbmcgc3RyaW5nIGNvbnRhaW5zIGEgPGNvZGU+ZGVsaW1pdGVyPC9jb2RlPiBiZXR3ZWVuIGVhY2ggZWxlbWVudC48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RyaW5nIGpvaW4obGlzdDogbGlzdCZsdDtzdHJpbmcmZ3Q7LCBkZWxpbWl0ZXI6IHN0cmluZyk6IHN0cmluZ1xcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0cmluZyBqb2luKFsmcXVvdDthJnF1b3Q7XSwgJnF1b3Q7WCZxdW90OylcXG4vLyAmcXVvdDthJnF1b3Q7XFxuXFxuc3RyaW5nIGpvaW4oWyZxdW90O2EmcXVvdDssJnF1b3Q7YiZxdW90OywmcXVvdDtjJnF1b3Q7XSwgJnF1b3Q7LCAmcXVvdDspXFxuLy8gJnF1b3Q7YSwgYiwgYyZxdW90O1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJzdHJpbmcgam9pbihsaXN0LCBkZWxpbWl0ZXIsIHByZWZpeCwgc3VmZml4KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxlbT5DYW11bmRhIEV4dGVuc2lvbjwvZW0+PC9wPlxcbjxwPkpvaW5zIGEgbGlzdCBvZiBzdHJpbmdzIGludG8gYSBzaW5nbGUgc3RyaW5nLiBUaGlzIGlzIHNpbWlsYXIgdG9cXG5KYXZhJiMzOTtzIDxhIGhyZWY9XFxcImh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2VuL2phdmEvamF2YXNlLzExL2RvY3MvYXBpL2phdmEuYmFzZS9qYXZhL3V0aWwvc3RyZWFtL0NvbGxlY3RvcnMuaHRtbCNqb2luaW5nKGphdmEubGFuZy5DaGFyU2VxdWVuY2UsamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSxqYXZhLmxhbmcuQ2hhclNlcXVlbmNlKVxcXCI+am9pbmluZzwvYT5cXG5mdW5jdGlvbi48L3A+XFxuPHA+SWYgYW4gaXRlbSBvZiB0aGUgbGlzdCBpcyA8Y29kZT5udWxsPC9jb2RlPiwgdGhlIGl0ZW0gaXMgaWdub3JlZCBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIElmIGFuIGl0ZW0gaXNcXG5uZWl0aGVyIGEgc3RyaW5nIG5vciA8Y29kZT5udWxsPC9jb2RlPiwgdGhlIGZ1bmN0aW9uIHJldHVybnMgPGNvZGU+bnVsbDwvY29kZT4gaW5zdGVhZCBvZiBhIHN0cmluZy48L3A+XFxuPHA+VGhlIHJlc3VsdGluZyBzdHJpbmcgc3RhcnRzIHdpdGggPGNvZGU+cHJlZml4PC9jb2RlPiwgY29udGFpbnMgYSA8Y29kZT5kZWxpbWl0ZXI8L2NvZGU+IGJldHdlZW4gZWFjaCBlbGVtZW50LCBhbmQgZW5kc1xcbndpdGggPGNvZGU+c3VmZml4PC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RyaW5nIGpvaW4obGlzdDogbGlzdCZsdDtzdHJpbmcmZ3Q7LCBkZWxpbWl0ZXI6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIHN1ZmZpeDogc3RyaW5nKTogc3RyaW5nXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RyaW5nIGpvaW4oWyZxdW90O2EmcXVvdDssJnF1b3Q7YiZxdW90OywmcXVvdDtjJnF1b3Q7XSwgJnF1b3Q7LCAmcXVvdDssICZxdW90O1smcXVvdDssICZxdW90O10mcXVvdDspXFxuLy8gJnF1b3Q7W2EsIGIsIGNdJnF1b3Q7XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImRlY2ltYWwobiwgc2NhbGUpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+Um91bmRzIHRoZSBnaXZlbiB2YWx1ZSBhdCB0aGUgZ2l2ZW4gc2NhbGUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRlY2ltYWwobjogbnVtYmVyLCBzY2FsZTogbnVtYmVyKTogbnVtYmVyXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGVjaW1hbCgxLzMsIDIpXFxuLy8gLjMzXFxuXFxuZGVjaW1hbCgxLjUsIDApXFxuLy8gMlxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJmbG9vcihuKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJvdW5kcyB0aGUgZ2l2ZW4gdmFsdWUgd2l0aCByb3VuZGluZyBtb2RlIGZsb29yaW5nLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5mbG9vcihuOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5mbG9vcigxLjUpXFxuLy8gMVxcblxcbmZsb29yKC0xLjUpXFxuLy8gLTJcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZmxvb3Iobiwgc2NhbGUpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+Um91bmRzIHRoZSBnaXZlbiB2YWx1ZSB3aXRoIHJvdW5kaW5nIG1vZGUgZmxvb3JpbmcgYXQgdGhlIGdpdmVuIHNjYWxlLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5mbG9vcihuOiBudW1iZXIsIHNjYWxlOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5mbG9vcigtMS41NiwgMSlcXG4vLyAtMS42XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImNlaWxpbmcobilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5Sb3VuZHMgdGhlIGdpdmVuIHZhbHVlIHdpdGggcm91bmRpbmcgbW9kZSBjZWlsaW5nLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jZWlsaW5nKG46IG51bWJlcik6IG51bWJlclxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmNlaWxpbmcoMS41KVxcbi8vIDJcXG5cXG5jZWlsaW5nKC0xLjUpXFxuLy8gLTFcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiY2VpbGluZyhuLCBzY2FsZSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5Sb3VuZHMgdGhlIGdpdmVuIHZhbHVlIHdpdGggcm91bmRpbmcgbW9kZSBjZWlsaW5nIGF0IHRoZSBnaXZlbiBzY2FsZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Y2VpbGluZyhuOiBudW1iZXIsIHNjYWxlOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jZWlsaW5nKC0xLjU2LCAxKVxcbi8vIC0xLjVcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwicm91bmQgdXAobiwgc2NhbGUpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+Um91bmRzIHRoZSBnaXZlbiB2YWx1ZSB3aXRoIHRoZSByb3VuZGluZyBtb2RlIHJvdW5kLXVwIGF0IHRoZSBnaXZlbiBzY2FsZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+cm91bmQgdXAobjogbnVtYmVyLCBzY2FsZTogbnVtYmVyKTogbnVtYmVyXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+cm91bmQgdXAoNS41KVxcbi8vIDZcXG5cXG5yb3VuZCB1cCgtNS41KVxcbi8vIC02XFxuXFxucm91bmQgdXAoMS4xMjEsIDIpXFxuLy8gMS4xM1xcblxcbnJvdW5kIHVwKC0xLjEyNiwgMilcXG4vLyAtMS4xM1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJyb3VuZCBkb3duKG4sIHNjYWxlKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJvdW5kcyB0aGUgZ2l2ZW4gdmFsdWUgd2l0aCB0aGUgcm91bmRpbmcgbW9kZSByb3VuZC1kb3duIGF0IHRoZSBnaXZlbiBzY2FsZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+cm91bmQgZG93bihuOiBudW1iZXIsIHNjYWxlOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5yb3VuZCBkb3duKDUuNSwgMClcXG4vLyA1XFxuXFxucm91bmQgZG93biAoLTUuNSwgMClcXG4vLyAtNVxcblxcbnJvdW5kIGRvd24gKDEuMTIxLCAyKVxcbi8vIDEuMTJcXG5cXG5yb3VuZCBkb3duICgtMS4xMjYsIDIpXFxuLy8gLTEuMTJcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwicm91bmQgaGFsZiB1cChuLCBzY2FsZSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5Sb3VuZHMgdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIHJvdW5kaW5nIG1vZGUgcm91bmQtaGFsZi11cCBhdCB0aGUgZ2l2ZW4gc2NhbGUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJvdW5kIGhhbGYgdXAobjogbnVtYmVyLCBzY2FsZTogbnVtYmVyKTogbnVtYmVyXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+cm91bmQgaGFsZiB1cCg1LjUsIDApXFxuLy8gNlxcblxcbnJvdW5kIGhhbGYgdXAoLTUuNSwgMClcXG4vLyAtNlxcblxcbnJvdW5kIGhhbGYgdXAoMS4xMjEsIDIpXFxuLy8gMS4xMlxcblxcbnJvdW5kIGhhbGYgdXAoLTEuMTI2LCAyKVxcbi8vIC0xLjEzXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInJvdW5kIGhhbGYgZG93bihuLCBzY2FsZSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5Sb3VuZHMgdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIHJvdW5kaW5nIG1vZGUgcm91bmQtaGFsZi1kb3duIGF0IHRoZSBnaXZlbiBzY2FsZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+cm91bmQgaGFsZiBkb3duKG46IG51bWJlciwgc2NhbGU6IG51bWJlcik6IG51bWJlclxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJvdW5kIGhhbGYgZG93biAoNS41LCAwKVxcbi8vIDVcXG5cXG5yb3VuZCBoYWxmIGRvd24gKC01LjUsIDApXFxuLy8gLTVcXG5cXG5yb3VuZCBoYWxmIGRvd24gKDEuMTIxLCAyKVxcbi8vIDEuMTJcXG5cXG5yb3VuZCBoYWxmIGRvd24gKC0xLjEyNiwgMilcXG4vLyAtMS4xM1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJhYnMobnVtYmVyKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBnaXZlbiBudW1lcmljIHZhbHVlLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hYnMobnVtYmVyOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hYnMoMTApXFxuLy8gMTBcXG5cXG5hYnMoLTEwKVxcbi8vIDEwXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIm1vZHVsbyhkaXZpZGVuZCwgZGl2aXNvcilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSByZW1haW5kZXIgb2YgdGhlIGRpdmlzaW9uIG9mIGRpdmlkZW5kIGJ5IGRpdmlzb3IuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1vZHVsbyhkaXZpZGVuZDogbnVtYmVyLCBkaXZpc29yOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5tb2R1bG8oMTIsIDUpXFxuLy8gMlxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJzcXJ0KG51bWJlcilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBzcXVhcmUgcm9vdCBvZiB0aGUgZ2l2ZW4gdmFsdWUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnNxcnQobnVtYmVyOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zcXJ0KDE2KVxcbi8vIDRcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibG9nKG51bWJlcilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSAoYmFzZSBlKSBvZiB0aGUgZ2l2ZW4gdmFsdWUuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmxvZyhudW1iZXI6IG51bWJlcik6IG51bWJlclxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmxvZygxMClcXG4vLyAyLjMwMjU4NTA5Mjk5NDA0NlxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJleHAobnVtYmVyKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIEV1bGVy4oCZcyBudW1iZXIgZSByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIHRoZSBnaXZlbiBudW1iZXIgLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5leHAobnVtYmVyOiBudW1iZXIpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5leHAoNSlcXG4vLyAxNDguNDEzMTU5MTAyNTc2NlxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJvZGQobnVtYmVyKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIGdpdmVuIHZhbHVlIGlzIG9kZC4gT3RoZXJ3aXNlLCByZXR1cm5zIDxjb2RlPmZhbHNlPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+b2RkKG51bWJlcjogbnVtYmVyKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm9kZCg1KVxcbi8vIHRydWVcXG5cXG5vZGQoMilcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJldmVuKG51bWJlcilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBnaXZlbiBpcyBldmVuLiBPdGhlcndpc2UsIHJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5ldmVuKG51bWJlcjogbnVtYmVyKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmV2ZW4oNSlcXG4vLyBmYWxzZVxcblxcbmV2ZW4oMilcXG4vLyB0cnVlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInJhbmRvbSBudW1iZXIoKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxlbT5DYW11bmRhIEV4dGVuc2lvbjwvZW0+PC9wPlxcbjxwPlJldHVybnMgYSByYW5kb20gbnVtYmVyIGJldHdlZW4gPGNvZGU+MDwvY29kZT4gYW5kIDxjb2RlPjE8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5yYW5kb20gbnVtYmVyKCk6IG51bWJlclxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJhbmRvbSBudW1iZXIoKVxcbi8vIDAuOTcwMTYxODEzMjU3OTc5NVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJiZWZvcmUocG9pbnQxLCBwb2ludDIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YmVmb3JlKHBvaW50MTogQW55LCBwb2ludDI6IEFueSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5iZWZvcmUoMSwgMTApXFxuLy8gdHJ1ZVxcblxcbmJlZm9yZSgxMCwgMSlcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJiZWZvcmUocmFuZ2UsIHBvaW50KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmJlZm9yZShyYW5nZTogcmFuZ2UsIHBvaW50OiBBbnkpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YmVmb3JlKFsxLi41XSwgMTApXFxuLy8gdHJ1ZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJiZWZvcmUocG9pbnQsIHJhbmdlKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmJlZm9yZShwb2ludDogQW55LCByYW5nZTogcmFuZ2UpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YmVmb3JlKDEsIFsyLi41XSlcXG4vLyB0cnVlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImJlZm9yZShyYW5nZTEsIHJhbmdlMilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5iZWZvcmUocmFuZ2UxOiByYW5nZSwgcmFuZ2UyOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5iZWZvcmUoWzEuLjVdLCBbNi4uMTBdKVxcbi8vIHRydWVcXG5cXG5iZWZvcmUoWzEuLjUpLFs1Li4xMF0pXFxuLy8gdHJ1ZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJhZnRlcihwb2ludDEsIHBvaW50MilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hZnRlcihwb2ludDE6IEFueSwgcG9pbnQyOiBBbnkpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YWZ0ZXIoMTAsIDEpXFxuLy8gdHJ1ZVxcblxcbmFmdGVyKDEsIDEwKVxcbi8vIGZhbHNlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImFmdGVyKHJhbmdlLCBwb2ludClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hZnRlcihyYW5nZTogcmFuZ2UsIHBvaW50OiBBbnkpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YWZ0ZXIoWzEuLjVdLCAxMClcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJhZnRlcihwb2ludCwgcmFuZ2UpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YWZ0ZXIocG9pbnQ6IEFueSwgcmFuZ2U6IHJhbmdlKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmFmdGVyKDEyLCBbMi4uNV0pXFxuLy8gdHJ1ZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJhZnRlcihyYW5nZTEsIHJhbmdlMilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5hZnRlcihyYW5nZTE6IHJhbmdlLCByYW5nZTI6IHJhbmdlKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmFmdGVyKFs2Li4xMF0sIFsxLi41XSlcXG4vLyB0cnVlXFxuXFxuYWZ0ZXIoWzUuLjEwXSwgWzEuLjUpKVxcbi8vIHRydWVcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibWVldHMocmFuZ2UxLCByYW5nZTIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bWVldHMocmFuZ2UxOiByYW5nZSwgcmFuZ2UyOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5tZWV0cyhbMS4uNV0sIFs1Li4xMF0pXFxuLy8gdHJ1ZVxcblxcbm1lZXRzKFsxLi4zXSwgWzQuLjZdKVxcbi8vIGZhbHNlXFxuXFxubWVldHMoWzEuLjNdLCBbMy4uNV0pXFxuLy8gdHJ1ZVxcblxcbm1lZXRzKFsxLi41XSwgKDUuLjhdKVxcbi8vIGZhbHNlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIm1ldCBieShyYW5nZTEsIHJhbmdlMilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5tZXQgYnkocmFuZ2UxOiByYW5nZSwgcmFuZ2UyOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5tZXQgYnkoWzUuLjEwXSwgWzEuLjVdKVxcbi8vIHRydWVcXG5cXG5tZXQgYnkoWzMuLjRdLCBbMS4uMl0pXFxuLy8gZmFsc2VcXG5cXG5tZXQgYnkoWzMuLjVdLCBbMS4uM10pXFxuLy8gdHJ1ZVxcblxcbm1ldCBieSgoNS4uOF0sIFsxLi41KSlcXG4vLyBmYWxzZVxcblxcbm1ldCBieShbNS4uMTBdLCBbMS4uNSkpXFxuLy8gZmFsc2VcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwib3ZlcmxhcHMocmFuZ2UxLCByYW5nZTIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+b3ZlcmxhcHMocmFuZ2UxOiByYW5nZSwgcmFuZ2UyOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5vdmVybGFwcyhbNS4uMTBdLCBbMS4uNl0pXFxuLy8gdHJ1ZVxcblxcbm92ZXJsYXBzKCgzLi43XSwgWzEuLjRdKVxcbi8vIHRydWVcXG5cXG5vdmVybGFwcyhbMS4uM10sICgzLi42XSlcXG4vLyBmYWxzZVxcblxcbm92ZXJsYXBzKCg1Li44XSwgWzEuLjUpKVxcbi8vIGZhbHNlXFxuXFxub3ZlcmxhcHMoWzQuLjEwXSwgWzEuLjUpKVxcbi8vIHRydWVcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwib3ZlcmxhcHMgYmVmb3JlKHJhbmdlMSwgcmFuZ2UyKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm92ZXJsYXBzIGJlZm9yZShyYW5nZTE6IHJhbmdlLCByYW5nZTI6IHJhbmdlKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm92ZXJsYXBzIGJlZm9yZShbMS4uNV0sIFs0Li4xMF0pXFxuLy8gdHJ1ZVxcblxcbm92ZXJsYXBzIGJlZm9yZShbMy4uNF0sIFsxLi4yXSlcXG4vLyBmYWxzZVxcblxcbm92ZXJsYXBzIGJlZm9yZShbMS4uM10sICgzLi41XSlcXG4vLyBmYWxzZVxcblxcbm92ZXJsYXBzIGJlZm9yZShbMS4uNSksICgzLi44XSlcXG4vLyB0cnVlXFxuXFxub3ZlcmxhcHMgYmVmb3JlKFsxLi41KSwgWzUuLjEwXSlcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJvdmVybGFwcyBhZnRlcihyYW5nZTEsIHJhbmdlMilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5vdmVybGFwcyBhZnRlcihyYW5nZTE6IHJhbmdlLCByYW5nZTI6IHJhbmdlKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm92ZXJsYXBzIGFmdGVyKFs0Li4xMF0sIFsxLi41XSlcXG4vLyB0cnVlXFxuXFxub3ZlcmxhcHMgYWZ0ZXIoWzMuLjRdLCBbMS4uMl0pXFxuLy8gZmFsc2VcXG5cXG5vdmVybGFwcyBhZnRlcihbMy4uNV0sIFsxLi4zKSlcXG4vLyBmYWxzZVxcblxcbm92ZXJsYXBzIGFmdGVyKCg1Li44XSwgWzEuLjUpKVxcbi8vIGZhbHNlXFxuXFxub3ZlcmxhcHMgYWZ0ZXIoWzQuLjEwXSwgWzEuLjUpKVxcbi8vIHRydWVcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZmluaXNoZXMocG9pbnQsIHJhbmdlKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmZpbmlzaGVzKHBvaW50OiBBbnksIHJhbmdlOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5maW5pc2hlcyg1LCBbMS4uNV0pXFxuLy8gdHJ1ZVxcblxcbmZpbmlzaGVzKDEwLCBbMS4uN10pXFxuLy8gZmFsc2VcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZmluaXNoZXMocmFuZ2UxLCByYW5nZTIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZmluaXNoZXMocmFuZ2UxOiByYW5nZSwgcmFuZ2UyOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5maW5pc2hlcyhbMy4uNV0sIFsxLi41XSlcXG4vLyB0cnVlXFxuXFxuZmluaXNoZXMoKDEuLjVdLCBbMS4uNSkpXFxuLy8gZmFsc2VcXG5cXG5maW5pc2hlcyhbNS4uMTBdLCBbMS4uMTApKVxcbi8vIGZhbHNlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImZpbmlzaGVkIGJ5KHJhbmdlLCBwb2ludClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5maW5pc2hlZCBieShyYW5nZTogcmFuZ2UsIHBvaW50OiBBbnkpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZmluaXNoZWQgYnkoWzUuLjEwXSwgMTApXFxuLy8gdHJ1ZVxcblxcbmZpbmlzaGVkIGJ5KFszLi40XSwgMilcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJmaW5pc2hlZCBieShyYW5nZTEsIHJhbmdlMilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5maW5pc2hlZCBieShyYW5nZTE6IHJhbmdlLCByYW5nZTI6IHJhbmdlKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmZpbmlzaGVkIGJ5KFsxLi41XSwgWzMuLjVdKVxcbi8vIHRydWVcXG5cXG5maW5pc2hlZCBieSgoNS4uOF0sIFsxLi41KSlcXG4vLyBmYWxzZVxcblxcbmZpbmlzaGVkIGJ5KFs1Li4xMF0sICgxLi4xMCkpXFxuLy8gZmFsc2VcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiaW5jbHVkZXMocmFuZ2UsIHBvaW50KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmluY2x1ZGVzKHJhbmdlOiByYW5nZSwgcG9pbnQ6IEFueSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5pbmNsdWRlcyhbNS4uMTBdLCA2KVxcbi8vIHRydWVcXG5cXG5pbmNsdWRlcyhbMy4uNF0sIDUpXFxuLy8gZmFsc2VcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiaW5jbHVkZXMocmFuZ2UxLCByYW5nZTIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+aW5jbHVkZXMocmFuZ2UxOiByYW5nZSwgcmFuZ2UyOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5pbmNsdWRlcyhbMS4uMTBdLCBbNC4uNl0pXFxuLy8gdHJ1ZVxcblxcbmluY2x1ZGVzKCg1Li44XSwgWzEuLjUpKVxcbi8vIGZhbHNlXFxuXFxuaW5jbHVkZXMoWzEuLjEwXSwgWzEuLjUpKVxcbi8vIHRydWVcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZHVyaW5nKHBvaW50LCByYW5nZSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5kdXJpbmcocG9pbnQ6IEFueSwgcmFuZ2U6IHJhbmdlKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmR1cmluZyg1LCBbMS4uMTBdKVxcbi8vIHRydWVcXG5cXG5kdXJpbmcoMTIsIFsxLi4xMF0pXFxuLy8gZmFsc2VcXG5cXG5kdXJpbmcoMSwgKDEuLjEwXSlcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJkdXJpbmcocmFuZ2UxLCByYW5nZTIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZHVyaW5nKHJhbmdlMTogcmFuZ2UsIHJhbmdlMjogcmFuZ2UpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZHVyaW5nKFs0Li42XSwgWzEuLjEwKSlcXG4vLyB0cnVlXFxuXFxuZHVyaW5nKCgxLi41XSwgKDEuLjEwXSlcXG4vLyB0cnVlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN0YXJ0cyhwb2ludCwgcmFuZ2UpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RhcnRzKHBvaW50OiBBbnksIHJhbmdlOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdGFydHMoMSwgWzEuLjVdKVxcbi8vIHRydWVcXG5cXG5zdGFydHMoMSwgKDEuLjhdKVxcbi8vIGZhbHNlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN0YXJ0cyhyYW5nZTEsIHJhbmdlMilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdGFydHMocmFuZ2UxOiByYW5nZSwgcmFuZ2UyOiByYW5nZSk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdGFydHMoKDEuLjVdLCBbMS4uNV0pXFxuLy8gZmFsc2VcXG5cXG5zdGFydHMoWzEuLjEwXSwgWzEuLjVdKVxcbi8vIGZhbHNlXFxuXFxuc3RhcnRzKCgxLi41KSwgKDEuLjEwKSlcXG4vLyB0cnVlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN0YXJ0ZWQgYnkocmFuZ2UsIHBvaW50KVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0YXJ0ZWQgYnkocmFuZ2U6IHJhbmdlLCBwb2ludDogQW55KTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0YXJ0ZWQgYnkoWzEuLjEwXSwgMSlcXG4vLyB0cnVlXFxuXFxuc3RhcnRlZCBieSgoMS4uMTBdLCAxKVxcbi8vIGZhbHNlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN0YXJ0ZWQgYnkocmFuZ2UxLCByYW5nZTIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RhcnRlZCBieShyYW5nZTE6IHJhbmdlLCByYW5nZTI6IHJhbmdlKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0YXJ0ZWQgYnkoWzEuLjEwXSwgWzEuLjVdKVxcbi8vIHRydWVcXG5cXG5zdGFydGVkIGJ5KCgxLi4xMF0sIFsxLi41KSlcXG4vLyBmYWxzZVxcblxcbnN0YXJ0ZWQgYnkoWzEuLjEwXSwgWzEuLjEwKSlcXG4vLyB0cnVlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcImNvaW5jaWRlcyhwb2ludDEsIHBvaW50MilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb2luY2lkZXMocG9pbnQxOiBBbnksIHBvaW50MjogQW55KTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmNvaW5jaWRlcyg1LCA1KVxcbi8vIHRydWVcXG5cXG5jb2luY2lkZXMoMywgNClcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJjb2luY2lkZXMocmFuZ2UxLCByYW5nZTIpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Y29pbmNpZGVzKHJhbmdlMTogcmFuZ2UsIHJhbmdlMjogcmFuZ2UpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+Y29pbmNpZGVzKFsxLi41XSwgWzEuLjVdKVxcbi8vIHRydWVcXG5cXG5jb2luY2lkZXMoKDEuLjVdLCBbMS4uNSkpXFxuLy8gZmFsc2VcXG5cXG5jb2luY2lkZXMoWzEuLjVdLCBbMi4uNl0pXFxuLy8gZmFsc2VcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwic3Vic3RyaW5nKHN0cmluZywgc3RhcnQgcG9zaXRpb24pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIHN1YnN0cmluZyBvZiB0aGUgZ2l2ZW4gdmFsdWUgc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQgcG9zaXRpb248L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdWJzdHJpbmcoc3RyaW5nOiBzdHJpbmcsIHN0YXJ0IHBvc2l0aW9uOiBudW1iZXIpOiBzdHJpbmdcXG48L2NvZGU+PC9wcmU+XFxuPHA+VGhlIDxjb2RlPnN0YXJ0IHBvc2l0aW9uPC9jb2RlPiBzdGFydHMgYXQgdGhlIGluZGV4IDxjb2RlPjE8L2NvZGU+LiBUaGUgbGFzdCBwb3NpdGlvbiBpcyA8Y29kZT4tMTwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3Vic3RyaW5nKCZxdW90O2Zvb2JhciZxdW90OywgMylcXG4vLyAmcXVvdDtvYmFyJnF1b3Q7XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN1YnN0cmluZyhzdHJpbmcsIHN0YXJ0IHBvc2l0aW9uLCBsZW5ndGgpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyBhIHN1YnN0cmluZyBvZiB0aGUgZ2l2ZW4gdmFsdWUgc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQgcG9zaXRpb248L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdWJzdHJpbmcoc3RyaW5nOiBzdHJpbmcsIHN0YXJ0IHBvc2l0aW9uOiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nXFxuPC9jb2RlPjwvcHJlPlxcbjxwPlRoZSA8Y29kZT5zdGFydCBwb3NpdGlvbjwvY29kZT4gc3RhcnRzIGF0IHRoZSBpbmRleCA8Y29kZT4xPC9jb2RlPi4gVGhlIGxhc3QgcG9zaXRpb24gaXMgPGNvZGU+LTE8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN1YnN0cmluZygmcXVvdDtmb29iYXImcXVvdDssIDMsIDMpXFxuLy8gJnF1b3Q7b2JhJnF1b3Q7XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN0cmluZyBsZW5ndGgoc3RyaW5nKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSBnaXZlbiB2YWx1ZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3RyaW5nIGxlbmd0aChzdHJpbmc6IHN0cmluZyk6IG51bWJlclxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0cmluZyBsZW5ndGgoJnF1b3Q7Zm9vJnF1b3Q7KVxcbi8vIDNcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwidXBwZXIgY2FzZShzdHJpbmcpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgd2l0aCBhbGwgY2hhcmFjdGVycyBhcmUgdXBwZXJjYXNlLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj51cHBlciBjYXNlKHN0cmluZzogc3RyaW5nKTogc3RyaW5nXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+dXBwZXIgY2FzZSgmcXVvdDthQmM0JnF1b3Q7KVxcbi8vICZxdW90O0FCQzQmcXVvdDtcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibG93ZXIgY2FzZShzdHJpbmcpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgd2l0aCBhbGwgY2hhcmFjdGVycyBhcmUgbG93ZXJjYXNlLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5sb3dlciBjYXNlKHN0cmluZzogc3RyaW5nKTogc3RyaW5nXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bG93ZXIgY2FzZSgmcXVvdDthQmM0JnF1b3Q7KVxcbi8vICZxdW90O2FiYzQmcXVvdDtcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwic3Vic3RyaW5nIGJlZm9yZShzdHJpbmcsIG1hdGNoKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgYSBzdWJzdHJpbmcgb2YgdGhlIGdpdmVuIHZhbHVlIHRoYXQgY29udGFpbnMgYWxsIGNoYXJhY3RlcnMgYmVmb3JlIDxjb2RlPm1hdGNoPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+c3Vic3RyaW5nIGJlZm9yZShzdHJpbmc6IHN0cmluZywgbWF0Y2g6IHN0cmluZyk6IHN0cmluZ1xcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN1YnN0cmluZyBiZWZvcmUoJnF1b3Q7Zm9vYmFyJnF1b3Q7LCAmcXVvdDtiYXImcXVvdDspXFxuLy8gJnF1b3Q7Zm9vJnF1b3Q7XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN1YnN0cmluZyBhZnRlcihzdHJpbmcsIG1hdGNoKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgYSBzdWJzdHJpbmcgb2YgdGhlIGdpdmVuIHZhbHVlIHRoYXQgY29udGFpbnMgYWxsIGNoYXJhY3RlcnMgYWZ0ZXIgPGNvZGU+bWF0Y2g8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdWJzdHJpbmcgYWZ0ZXIoc3RyaW5nOiBzdHJpbmcsIG1hdGNoOiBzdHJpbmcpOiBzdHJpbmdcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5zdWJzdHJpbmcgYWZ0ZXIoJnF1b3Q7Zm9vYmFyJnF1b3Q7LCAmcXVvdDtvYiZxdW90OylcXG4vLyAmcXVvdDthciZxdW90O1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJjb250YWlucyhzdHJpbmcsIG1hdGNoKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIGdpdmVuIHZhbHVlIGNvbnRhaW5zIHRoZSBzdWJzdHJpbmcgPGNvZGU+bWF0Y2g8L2NvZGU+LiBPdGhlcndpc2UsIHJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb250YWlucyhzdHJpbmc6IHN0cmluZywgbWF0Y2g6IHN0cmluZyk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5jb250YWlucygmcXVvdDtmb29iYXImcXVvdDssICZxdW90O29mJnF1b3Q7KVxcbi8vIGZhbHNlXFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInN0YXJ0cyB3aXRoKHN0cmluZywgbWF0Y2gpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgZ2l2ZW4gdmFsdWUgc3RhcnRzIHdpdGggdGhlIHN1YnN0cmluZyA8Y29kZT5tYXRjaDwvY29kZT4uIE90aGVyd2lzZSwgcmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0YXJ0cyB3aXRoKHN0cmluZzogc3RyaW5nLCBtYXRjaDogc3RyaW5nKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnN0YXJ0cyB3aXRoKCZxdW90O2Zvb2JhciZxdW90OywgJnF1b3Q7Zm8mcXVvdDspXFxuLy8gdHJ1ZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJlbmRzIHdpdGgoc3RyaW5nLCBtYXRjaClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBnaXZlbiB2YWx1ZSBlbmRzIHdpdGggdGhlIHN1YnN0cmluZyA8Y29kZT5tYXRjaDwvY29kZT4uIE90aGVyd2lzZSwgcmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmVuZHMgd2l0aChzdHJpbmc6IHN0cmluZywgbWF0Y2g6IHN0cmluZyk6IGJvb2xlYW5cXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5lbmRzIHdpdGgoJnF1b3Q7Zm9vYmFyJnF1b3Q7LCAmcXVvdDtyJnF1b3Q7KVxcbi8vIHRydWVcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibWF0Y2hlcyhpbnB1dCwgcGF0dGVybilcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBnaXZlbiB2YWx1ZSBtYXRjaGVzIHRoZSA8Y29kZT5wYXR0ZXJuPC9jb2RlPi4gT3RoZXJ3aXNlLCByZXR1cm5zIDxjb2RlPmZhbHNlPC9jb2RlPi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bWF0Y2hlcyhpbnB1dDogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuXFxuPC9jb2RlPjwvcHJlPlxcbjxwPlRoZSA8Y29kZT5wYXR0ZXJuPC9jb2RlPiBpcyBhIHN0cmluZyB0aGF0IGNvbnRhaW5zIGEgcmVndWxhciBleHByZXNzaW9uLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1hdGNoZXMoJnF1b3Q7Zm9vYmFyJnF1b3Q7LCAmcXVvdDteZm8qYmFyJnF1b3Q7KVxcbi8vIHRydWVcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibWF0Y2hlcyhpbnB1dCwgcGF0dGVybiwgZmxhZ3MpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2hlcyB0aGUgPGNvZGU+cGF0dGVybjwvY29kZT4uIE90aGVyd2lzZSwgcmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1hdGNoZXMoaW5wdXQ6IHN0cmluZywgcGF0dGVybjogc3RyaW5nLCBmbGFnczogc3RyaW5nKTogYm9vbGVhblxcbjwvY29kZT48L3ByZT5cXG48cD5UaGUgPGNvZGU+cGF0dGVybjwvY29kZT4gaXMgYSBzdHJpbmcgdGhhdCBjb250YWlucyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi48L3A+XFxuPHA+VGhlIDxjb2RlPmZsYWdzPC9jb2RlPiBjYW4gY29udGFpbiBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6PC9wPlxcbjx1bD5cXG48bGk+PGNvZGU+czwvY29kZT4gKGRvdC1hbGwpPC9saT5cXG48bGk+PGNvZGU+bTwvY29kZT4gKG11bHRpLWxpbmUpPC9saT5cXG48bGk+PGNvZGU+aTwvY29kZT4gKGNhc2UgaW5zZW5zaXRpdmUpPC9saT5cXG48bGk+PGNvZGU+eDwvY29kZT4gKGNvbW1lbnRzKTwvbGk+XFxuPC91bD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPm1hdGNoZXMoJnF1b3Q7Rm9vQmFyJnF1b3Q7LCAmcXVvdDtmb28mcXVvdDssICZxdW90O2kmcXVvdDspXFxuLy8gdHJ1ZVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJyZXBsYWNlKGlucHV0LCBwYXR0ZXJuLCByZXBsYWNlbWVudClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSByZXN1bHRpbmcgc3RyaW5nIGFmdGVyIHJlcGxhY2luZyBhbGwgb2NjdXJyZW5jZXMgb2YgPGNvZGU+cGF0dGVybjwvY29kZT4gd2l0aCA8Y29kZT5yZXBsYWNlbWVudDwvY29kZT4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJlcGxhY2UoaW5wdXQ6IHN0cmluZywgcGF0dGVybjogc3RyaW5nLCByZXBsYWNlbWVudDogc3RyaW5nKTogc3RyaW5nXFxuPC9jb2RlPjwvcHJlPlxcbjxwPlRoZSA8Y29kZT5wYXR0ZXJuPC9jb2RlPiBpcyBhIHN0cmluZyB0aGF0IGNvbnRhaW5zIGEgcmVndWxhciBleHByZXNzaW9uLjwvcD5cXG48cD5UaGUgPGNvZGU+cmVwbGFjZW1lbnQ8L2NvZGU+IGNhbiBhY2Nlc3MgdGhlIG1hdGNoIGdyb3VwcyBieSB1c2luZyA8Y29kZT4kPC9jb2RlPiBhbmQgdGhlIG51bWJlciBvZiB0aGUgZ3JvdXAsIGZvciBleGFtcGxlLFxcbjxjb2RlPiQxPC9jb2RlPiB0byBhY2Nlc3MgdGhlIGZpcnN0IGdyb3VwLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJlcGxhY2UoJnF1b3Q7YWJjZCZxdW90OywgJnF1b3Q7KGFiKXwoYSkmcXVvdDssICZxdW90O1sxPSQxXVsyPSQyXSZxdW90OylcXG4vLyAmcXVvdDtbMT1hYl1bMj1dY2QmcXVvdDtcXG5cXG5yZXBsYWNlKCZxdW90OzAxMjM0NTY3ODkmcXVvdDssICZxdW90OyhcXFxcZHszfSkoXFxcXGR7M30pKFxcXFxkezR9KSZxdW90OywgJnF1b3Q7KCQxKSAkMi0kMyZxdW90OylcXG4vLyAmcXVvdDsoMDEyKSAzNDUtNjc4OSZxdW90O1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJyZXBsYWNlKGlucHV0LCBwYXR0ZXJuLCByZXBsYWNlbWVudCwgZmxhZ3MpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgcmVzdWx0aW5nIHN0cmluZyBhZnRlciByZXBsYWNpbmcgYWxsIG9jY3VycmVuY2VzIG9mIDxjb2RlPnBhdHRlcm48L2NvZGU+IHdpdGggPGNvZGU+cmVwbGFjZW1lbnQ8L2NvZGU+LjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5yZXBsYWNlKGlucHV0OiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZywgcmVwbGFjZW1lbnQ6IHN0cmluZywgZmxhZ3M6IHN0cmluZyk6IHN0cmluZ1xcbjwvY29kZT48L3ByZT5cXG48cD5UaGUgPGNvZGU+cGF0dGVybjwvY29kZT4gaXMgYSBzdHJpbmcgdGhhdCBjb250YWlucyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi48L3A+XFxuPHA+VGhlIDxjb2RlPnJlcGxhY2VtZW50PC9jb2RlPiBjYW4gYWNjZXNzIHRoZSBtYXRjaCBncm91cHMgYnkgdXNpbmcgPGNvZGU+JDwvY29kZT4gYW5kIHRoZSBudW1iZXIgb2YgdGhlIGdyb3VwLCBmb3IgZXhhbXBsZSxcXG48Y29kZT4kMTwvY29kZT4gdG8gYWNjZXNzIHRoZSBmaXJzdCBncm91cC48L3A+XFxuPHA+VGhlIDxjb2RlPmZsYWdzPC9jb2RlPiBjYW4gY29udGFpbiBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6PC9wPlxcbjx1bD5cXG48bGk+PGNvZGU+czwvY29kZT4gKGRvdC1hbGwpPC9saT5cXG48bGk+PGNvZGU+bTwvY29kZT4gKG11bHRpLWxpbmUpPC9saT5cXG48bGk+PGNvZGU+aTwvY29kZT4gKGNhc2UgaW5zZW5zaXRpdmUpPC9saT5cXG48bGk+PGNvZGU+eDwvY29kZT4gKGNvbW1lbnRzKTwvbGk+XFxuPC91bD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnJlcGxhY2UoJnF1b3Q7SG93IGRvIHlvdSBmZWVsPyZxdW90OywgJnF1b3Q7RmVlbCZxdW90OywgJnF1b3Q7RkVFTCZxdW90OywgJnF1b3Q7aSZxdW90OylcXG4vLyAmcXVvdDtIb3cgZG8geW91IEZFRUw/JnF1b3Q7XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInNwbGl0KHN0cmluZywgZGVsaW1pdGVyKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlNwbGl0cyB0aGUgZ2l2ZW4gdmFsdWUgaW50byBhIGxpc3Qgb2Ygc3Vic3RyaW5ncywgYnJlYWtpbmcgYXQgZWFjaCBvY2N1cnJlbmNlIG9mIHRoZSA8Y29kZT5kZWxpbWl0ZXI8L2NvZGU+IHBhdHRlcm4uPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnNwbGl0KHN0cmluZzogc3RyaW5nLCBkZWxpbWl0ZXI6IHN0cmluZyk6IGxpc3QmbHQ7c3RyaW5nJmd0O1xcbjwvY29kZT48L3ByZT5cXG48cD5UaGUgPGNvZGU+ZGVsaW1pdGVyPC9jb2RlPiBpcyBhIHN0cmluZyB0aGF0IGNvbnRhaW5zIGEgcmVndWxhciBleHByZXNzaW9uLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnNwbGl0KCZxdW90O0pvaG4gRG9lJnF1b3Q7LCAmcXVvdDtcXFxccyZxdW90OyApXFxuLy8gWyZxdW90O0pvaG4mcXVvdDssICZxdW90O0RvZSZxdW90O11cXG5cXG5zcGxpdCgmcXVvdDthO2I7Yzs7JnF1b3Q7LCAmcXVvdDs7JnF1b3Q7KVxcbi8vIFsmcXVvdDthJnF1b3Q7LCAmcXVvdDtiJnF1b3Q7LCAmcXVvdDtjJnF1b3Q7LCAmcXVvdDsmcXVvdDssICZxdW90OyZxdW90O11cXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZXh0cmFjdChzdHJpbmcsIHBhdHRlcm4pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PGVtPkNhbXVuZGEgRXh0ZW5zaW9uPC9lbT48L3A+XFxuPHA+UmV0dXJucyBhbGwgbWF0Y2hlcyBvZiB0aGUgcGF0dGVybiBpbiB0aGUgZ2l2ZW4gc3RyaW5nLiBSZXR1cm5zIGFuIGVtcHR5IGxpc3QgaWYgdGhlIHBhdHRlcm4gZG9lc24mIzM5O3RcXG5tYXRjaC48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZXh0cmFjdChzdHJpbmc6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKTogbGlzdCZsdDtzdHJpbmcmZ3Q7XFxuPC9jb2RlPjwvcHJlPlxcbjxwPlRoZSA8Y29kZT5wYXR0ZXJuPC9jb2RlPiBpcyBhIHN0cmluZyB0aGF0IGNvbnRhaW5zIGEgcmVndWxhciBleHByZXNzaW9uLjwvcD5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmV4dHJhY3QoJnF1b3Q7cmVmZXJlbmNlcyBhcmUgMTIzNCwgMTI1NiwgMTM3OCZxdW90OywgJnF1b3Q7MTJbMC05XSomcXVvdDspXFxuLy8gWyZxdW90OzEyMzQmcXVvdDssJnF1b3Q7MTI1NiZxdW90O11cXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwibm93KClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaW5jbHVkaW5nIHRoZSB0aW1lem9uZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bm93KCk6IGRhdGUgYW5kIHRpbWVcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5ub3coKVxcbi8vIGRhdGUgYW5kIHRpbWUoJnF1b3Q7MjAyMC0wNy0zMVQxNDoyNzozMEBFdXJvcGUvQmVybGluJnF1b3Q7KVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJ0b2RheSgpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgY3VycmVudCBkYXRlLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj50b2RheSgpOiBkYXRlXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+dG9kYXkoKVxcbi8vIGRhdGUoJnF1b3Q7MjAyMC0wNy0zMSZxdW90OylcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiZGF5IG9mIHdlZWsoZGF0ZSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBkYXkgb2YgdGhlIHdlZWsgYWNjb3JkaW5nIHRvIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuIE5vdGUgdGhhdCBpdCBhbHdheXMgcmV0dXJucyB0aGUgRW5nbGlzaCBuYW1lIG9mIHRoZSBkYXkuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRheSBvZiB3ZWVrKGRhdGU6IGRhdGUpOiBzdHJpbmdcXG48L2NvZGU+PC9wcmU+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF5IG9mIHdlZWsoZGF0ZTogZGF0ZSBhbmQgdGltZSk6IHN0cmluZ1xcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRheSBvZiB3ZWVrKGRhdGUoJnF1b3Q7MjAxOS0wOS0xNyZxdW90OykpXFxuLy8gJnF1b3Q7VHVlc2RheSZxdW90O1xcblxcbmRheSBvZiB3ZWVrKGRhdGUgYW5kIHRpbWUoJnF1b3Q7MjAxOS0wOS0xN1QxMjowMDowMCZxdW90OykpXFxuLy8gJnF1b3Q7VHVlc2RheSZxdW90O1xcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJkYXkgb2YgeWVhcihkYXRlKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPlJldHVybnMgdGhlIEdyZWdvcmlhbiBudW1iZXIgb2YgdGhlIGRheSB3aXRoaW4gdGhlIHllYXIuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRheSBvZiB5ZWFyKGRhdGU6IGRhdGUpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+ZGF5IG9mIHllYXIoZGF0ZTogZGF0ZSBhbmQgdGltZSk6IG51bWJlclxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmRheSBvZiB5ZWFyKGRhdGUoJnF1b3Q7MjAxOS0wOS0xNyZxdW90OykpXFxuLy8gMjYwXFxuXFxuZGF5IG9mIHllYXIoZGF0ZSBhbmQgdGltZSgmcXVvdDsyMDE5LTA5LTE3VDEyOjAwOjAwJnF1b3Q7KSlcXG4vLyAyNjBcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwid2VlayBvZiB5ZWFyKGRhdGUpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgR3JlZ29yaWFuIG51bWJlciBvZiB0aGUgd2VlayB3aXRoaW4gdGhlIHllYXIsIGFjY29yZGluZyB0byBJU08gODYwMS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+d2VlayBvZiB5ZWFyKGRhdGU6IGRhdGUpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+d2VlayBvZiB5ZWFyKGRhdGU6IGRhdGUgYW5kIHRpbWUpOiBudW1iZXJcXG48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj53ZWVrIG9mIHllYXIoZGF0ZSgmcXVvdDsyMDE5LTA5LTE3JnF1b3Q7KSlcXG4vLyAzOFxcblxcbndlZWsgb2YgeWVhcihkYXRlIGFuZCB0aW1lKCZxdW90OzIwMTktMDktMTdUMTI6MDA6MDAmcXVvdDspKVxcbi8vIDM4XFxuPC9jb2RlPjwvcHJlPlxcblwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIm1vbnRoIG9mIHllYXIoZGF0ZSlcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD5SZXR1cm5zIHRoZSBtb250aCBvZiB0aGUgeWVhciBhY2NvcmRpbmcgdG8gdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4gTm90ZSB0aGF0IGl0IGFsd2F5cyByZXR1cm5zIHRoZSBFbmdsaXNoIG5hbWUgb2YgdGhlIG1vbnRoLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5tb250aCBvZiB5ZWFyKGRhdGU6IGRhdGUpOiBzdHJpbmdcXG48L2NvZGU+PC9wcmU+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bW9udGggb2YgeWVhcihkYXRlOiBkYXRlIGFuZCB0aW1lKTogc3RyaW5nXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bW9udGggb2YgeWVhcihkYXRlKCZxdW90OzIwMTktMDktMTcmcXVvdDspKVxcbi8vICZxdW90O1NlcHRlbWJlciZxdW90O1xcblxcbm1vbnRoIG9mIHllYXIoZGF0ZSBhbmQgdGltZSgmcXVvdDsyMDE5LTA5LTE3VDEyOjAwOjAwJnF1b3Q7KSlcXG4vLyAmcXVvdDtTZXB0ZW1iZXImcXVvdDtcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiYWJzKG4pXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+UmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgYSBnaXZlbiBkdXJhdGlvbi48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+YWJzKG46IGRheXMgYW5kIHRpbWUgZHVyYXRpb24pOiBkYXlzIGFuZCB0aW1lIGR1cmF0aW9uXFxuPC9jb2RlPjwvcHJlPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmFicyhuOiB5ZWFycyBhbmQgbW9udGhzIGR1cmF0aW9uKTogeWVhcnMgYW5kIG1vbnRocyBkdXJhdGlvblxcbjwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmFicyhkdXJhdGlvbigmcXVvdDstUFQ1SCZxdW90OykpXFxuLy8gJnF1b3Q7ZHVyYXRpb24oJnF1b3Q7UFQ1SCZxdW90OykmcXVvdDtcXG5cXG5hYnMoZHVyYXRpb24oJnF1b3Q7UFQ1SCZxdW90OykpXFxuLy8gJnF1b3Q7ZHVyYXRpb24oJnF1b3Q7UFQ1SCZxdW90OykmcXVvdDtcXG5cXG5hYnMoZHVyYXRpb24oJnF1b3Q7LVAyTSZxdW90OykpXFxuLy8gZHVyYXRpb24oJnF1b3Q7UDJNJnF1b3Q7KVxcbjwvY29kZT48L3ByZT5cXG5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJsYXN0IGRheSBvZiBtb250aChkYXRlKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxlbT5DYW11bmRhIEV4dGVuc2lvbjwvZW0+PC9wPlxcbjxwPlRha2VzIHRoZSBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZSBvciBkYXRlLXRpbWUgdmFsdWUgYW5kIHJldHVybnMgdGhlIGxhc3QgZGF5IG9mIHRoaXMgbW9udGguPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmxhc3QgZGF5IG9mIG1vbnRoKGRhdGU6IGRhdGUpOiBkYXRlXFxuPC9jb2RlPjwvcHJlPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPmxhc3QgZGF5IG9mIG1vbnRoKGRhdGU6IGRhdGUgYW5kIHRpbWUpOiBkYXRlXFxuPC9jb2RlPjwvcHJlPlxcbjxwPjxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+bGFzdCBkYXkgb2YgbW9udGgoZGF0ZSgmcXVvdDsyMDIyLTEwLTAxJnF1b3Q7KSlcXG4vLyBkYXRlKCZxdW90OzIwMjItMTAtMzEmcXVvdDspKVxcblxcbmxhc3QgZGF5IG9mIG1vbnRoKGRhdGUgYW5kIHRpbWUoJnF1b3Q7MjAyMi0xMC0xNlQxMjowMDowMCZxdW90OykpXFxuLy8gZGF0ZSgmcXVvdDsyMDIyLTEwLTMxJnF1b3Q7KSlcXG48L2NvZGU+PC9wcmU+XFxuXCJcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiaXMgZW1wdHkobGlzdClcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48ZW0+Q2FtdW5kYSBFeHRlbnNpb248L2VtPjwvcD5cXG48cD5SZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGxpc3QgaXMgZW1wdHkuIE90aGVyd2lzZSwgcmV0dXJucyBmYWxzZS48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+aXMgZW1wdHkobGlzdDogbGlzdCk6IGJvb2xlYW48L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj5pcyBlbXB0eShbXSlcXG4vLyB0cnVlXFxuXFxuaXMgZW1wdHkoWzEsMiwzXSlcXG4vLyBmYWxzZVxcbjwvY29kZT48L3ByZT5cIlxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCJ0cmltKHN0cmluZylcIixcblx0XHRkZXNjcmlwdGlvbjogXCI8cD48ZW0+Q2FtdW5kYSBFeHRlbnNpb248L2VtPjwvcD5cXG48cD5SZXR1cm5zIHRoZSBnaXZlbiBzdHJpbmcgd2l0aG91dCBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMuPC9wPlxcbjxwPjxzdHJvbmc+RnVuY3Rpb24gc2lnbmF0dXJlPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnRyaW0oc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmc8L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj50cmltKFxcXCIgIGhlbGxvIHdvcmxkICBcXFwiKVxcbi8vIFxcXCJoZWxsbyB3b3JsZFxcXCJcXG5cXG50cmltKFxcXCJoZWxsbyAgIHdvcmxkIFxcXCIpXFxuLy8gXFxcImhlbGxvICAgd29ybGRcXFwiXFxuPC9jb2RlPjwvcHJlPlwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInV1aWQoKVwiLFxuXHRcdGRlc2NyaXB0aW9uOiBcIjxwPjxlbT5DYW11bmRhIEV4dGVuc2lvbjwvZW0+PC9wPlxcbjxwPlJldHVybnMgYSBVVUlEIChVbml2ZXJzYWxseSBVbmlxdWUgSWRlbnRpZmllcikgd2l0aCAzNiBjaGFyYWN0ZXJzLjwvcD5cXG48cD48c3Ryb25nPkZ1bmN0aW9uIHNpZ25hdHVyZTwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj51dWlkKCk6IHN0cmluZzwvY29kZT48L3ByZT5cXG48cD48c3Ryb25nPkV4YW1wbGVzPC9zdHJvbmc+PC9wPlxcbjxwcmU+PGNvZGUgY2xhc3M9XFxcImxhbmd1YWdlLWZlZWxcXFwiPnV1aWQoKVxcbi8vIFxcXCI3NzkzYWFiMS1kNzYxLTRkMzgtOTE2Yi1iNzI3MGUzMDk4OTRcXFwiXFxuPC9jb2RlPjwvcHJlPlwiXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcInRvIGJhc2U2NChzdHJpbmcpXCIsXG5cdFx0ZGVzY3JpcHRpb246IFwiPHA+PGVtPkNhbXVuZGEgRXh0ZW5zaW9uPC9lbT48L3A+XFxuPHA+UmV0dXJucyB0aGUgZ2l2ZW4gc3RyaW5nIGVuY29kZWQgaW4gQmFzZTY0IGZvcm1hdC48L3A+XFxuPHA+PHN0cm9uZz5GdW5jdGlvbiBzaWduYXR1cmU8L3N0cm9uZz48L3A+XFxuPHByZT48Y29kZSBjbGFzcz1cXFwibGFuZ3VhZ2UtZmVlbFxcXCI+dG8gYmFzZTY0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmc8L2NvZGU+PC9wcmU+XFxuPHA+PHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjwvcD5cXG48cHJlPjxjb2RlIGNsYXNzPVxcXCJsYW5ndWFnZS1mZWVsXFxcIj50byBiYXNlNjQoXFxcIkZFRUxcXFwiKVxcbi8vIFxcXCJSa1ZGVEE9PVxcXCJcXG48L2NvZGU+PC9wcmU+XCJcblx0fVxuXTtcblxuLyoqXG4gKiBAcGFyYW0geyBpbXBvcnQoJy4uJykuQnVpbHRpbltdIH0gYnVpbHRpbnNcbiAqXG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuLicpLlZhcmlhYmxlW10gfSB2YXJpYWJsZVxuICovXG5mdW5jdGlvbiBwYXJzZUJ1aWx0aW5zKGJ1aWx0aW5zKSB7XG4gIHJldHVybiBidWlsdGlucy5tYXAocGFyc2VCdWlsdGluKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geyBpbXBvcnQoJy4uJykuQnVpbHRpbiB9IGJ1aWx0aW5cbiAqXG4gKiBAcmV0dXJucyB7IGltcG9ydCgnLi4nKS5WYXJpYWJsZSB9IHZhcmlhYmxlXG4gKi9cbmZ1bmN0aW9uIHBhcnNlQnVpbHRpbihidWlsdGluKSB7XG5cbiAgY29uc3Qge1xuICAgIG5hbWUsXG4gICAgZGVzY3JpcHRpb25cbiAgfSA9IGJ1aWx0aW47XG5cbiAgY29uc3QgbWF0Y2ggPSBuYW1lLm1hdGNoKC9eKFtcXHdcXHNdKylcXCgoLiopXFwpJC8pO1xuICBjb25zdCBmdW5jdGlvbk5hbWUgPSBtYXRjaFsxXTtcbiAgY29uc3QgZnVuY3Rpb25Bcmd1bWVudHMgPSBtYXRjaFsyXTtcblxuICAvLyBwYXJhbWV0ZXJsZXNzIGZ1bmN0aW9uIG1hdGNoZXMgYXMgZW1wdHkgc3RyaW5nXG4gIGNvbnN0IHBhcmFtcyA9IGZ1bmN0aW9uQXJndW1lbnRzID8gZnVuY3Rpb25Bcmd1bWVudHMuc3BsaXQoJywgJykubWFwKG5hbWUgPT4gKHsgbmFtZSB9KSkgOiBbXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgIHBhcmFtcyxcbiAgICBpbmZvOiAoKSA9PiB7XG4gICAgICByZXR1cm4gZG9taWZ5KGA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj4ke2Rlc2NyaXB0aW9ufTxkaXY+YCk7XG4gICAgfSxcbiAgICBib29zdDogMFxuICB9O1xufVxuXG5jb25zdCBjYW11bmRhID0gcGFyc2VCdWlsdGlucyhjYW11bmRhVGFncyk7XG5cbi8qKlxuICogQHR5cGVkZWYgeyBpbXBvcnQoJy4vY29yZScpLlZhcmlhYmxlIH0gVmFyaWFibGVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJ1aWx0aW5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZGVzY3JpcHRpb25cbiAqL1xuXG5jb25zdCBjb3JlQ29uZiA9IG5ldyBDb21wYXJ0bWVudCgpO1xuY29uc3QgcGxhY2Vob2xkZXJDb25mID0gbmV3IENvbXBhcnRtZW50KCk7XG5cblxuLyoqXG4gKiBDcmVhdGVzIGEgRkVFTCBlZGl0b3IgaW4gdGhlIHN1cHBsaWVkIGNvbnRhaW5lclxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWdcbiAqIEBwYXJhbSB7RE9NTm9kZX0gY29uZmlnLmNvbnRhaW5lclxuICogQHBhcmFtIHtFeHRlbnNpb25bXX0gW2NvbmZpZy5leHRlbnNpb25zXVxuICogQHBhcmFtIHtEaWFsZWN0fSBbY29uZmlnLmRpYWxlY3Q9J2V4cHJlc3Npb24nXVxuICogQHBhcmFtIHtET01Ob2RlfFN0cmluZ30gW2NvbmZpZy50b29sdGlwQ29udGFpbmVyXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbmZpZy5vbkNoYW5nZV1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb25maWcub25LZXlEb3duXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbmZpZy5vbkxpbnRdXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtjb25maWcucmVhZE9ubHldXG4gKiBAcGFyYW0ge1N0cmluZ30gW2NvbmZpZy52YWx1ZV1cbiAqIEBwYXJhbSB7VmFyaWFibGVbXX0gW2NvbmZpZy52YXJpYWJsZXNdXG4gKiBAcGFyYW0ge1ZhcmlhYmxlW119IFtjb25maWcuYnVpbHRpbnNdXG4gKlxuICogQHJldHVybnMge09iamVjdH0gZWRpdG9yXG4gKi9cbmZ1bmN0aW9uIEZlZWxFZGl0b3Ioe1xuICBleHRlbnNpb25zOiBlZGl0b3JFeHRlbnNpb25zID0gW10sXG4gIGRpYWxlY3QgPSAnZXhwcmVzc2lvbicsXG4gIGNvbnRhaW5lcixcbiAgY29udGVudEF0dHJpYnV0ZXMgPSB7fSxcbiAgdG9vbHRpcENvbnRhaW5lcixcbiAgb25DaGFuZ2UgPSAoKSA9PiB7fSxcbiAgb25LZXlEb3duID0gKCkgPT4ge30sXG4gIG9uTGludCA9ICgpID0+IHt9LFxuICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIkMSA9ICcnLFxuICByZWFkT25seSA9IGZhbHNlLFxuICB2YWx1ZSA9ICcnLFxuICBidWlsdGlucyA9IGNhbXVuZGEsXG4gIHZhcmlhYmxlcyA9IFtdXG59KSB7XG5cbiAgY29uc3QgY2hhbmdlSGFuZGxlciA9IEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZSkgPT4ge1xuICAgIGlmICh1cGRhdGUuZG9jQ2hhbmdlZCkge1xuICAgICAgb25DaGFuZ2UodXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGxpbnRIYW5kbGVyID0gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlKSA9PiB7XG4gICAgY29uc3QgZGlhZ25vc3RpY0VmZmVjdHMgPSB1cGRhdGUudHJhbnNhY3Rpb25zXG4gICAgICAuZmxhdE1hcCh0ID0+IHQuZWZmZWN0cylcbiAgICAgIC5maWx0ZXIoZWZmZWN0ID0+IGVmZmVjdC5pcyhzZXREaWFnbm9zdGljc0VmZmVjdCkpO1xuXG4gICAgaWYgKCFkaWFnbm9zdGljRWZmZWN0cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlcyA9IGRpYWdub3N0aWNFZmZlY3RzLmZsYXRNYXAoZWZmZWN0ID0+IGVmZmVjdC52YWx1ZSk7XG5cbiAgICBvbkxpbnQobWVzc2FnZXMpO1xuICB9KTtcblxuICBjb25zdCBrZXlIYW5kbGVyID0gRWRpdG9yVmlldy5kb21FdmVudEhhbmRsZXJzKFxuICAgIHtcbiAgICAgIGtleWRvd246IG9uS2V5RG93blxuICAgIH1cbiAgKTtcblxuICBpZiAodHlwZW9mIHRvb2x0aXBDb250YWluZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgdG9vbHRpcENvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodG9vbHRpcENvbnRhaW5lcik7XG4gIH1cblxuICBjb25zdCB0b29sdGlwTGF5b3V0ID0gdG9vbHRpcENvbnRhaW5lciA/IHRvb2x0aXBzKHtcbiAgICB0b29sdGlwU3BhY2U6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRvb2x0aXBDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuICB9KSA6IFtdO1xuXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBbXG4gICAgYXV0b2NvbXBsZXRpb24oKSxcbiAgICBjb3JlQ29uZi5vZihjb25maWd1cmUoe1xuICAgICAgZGlhbGVjdCxcbiAgICAgIGJ1aWx0aW5zLFxuICAgICAgdmFyaWFibGVzXG4gICAgfSkpLFxuICAgIGJyYWNrZXRNYXRjaGluZygpLFxuICAgIGluZGVudE9uSW5wdXQoKSxcbiAgICBjbG9zZUJyYWNrZXRzKCksXG4gICAgRWRpdG9yVmlldy5jb250ZW50QXR0cmlidXRlcy5vZihjb250ZW50QXR0cmlidXRlcyksXG4gICAgY2hhbmdlSGFuZGxlcixcbiAgICBrZXlIYW5kbGVyLFxuICAgIGtleW1hcC5vZihbXG4gICAgICAuLi5kZWZhdWx0S2V5bWFwLFxuICAgIF0pLFxuICAgIGxpbnRlcixcbiAgICBsaW50SGFuZGxlcixcbiAgICB0b29sdGlwTGF5b3V0LFxuICAgIHBsYWNlaG9sZGVyQ29uZi5vZihwbGFjZWhvbGRlcihwbGFjZWhvbGRlciQxKSksXG4gICAgdGhlbWUsXG4gICAgLi4uZWRpdG9yRXh0ZW5zaW9uc1xuICBdO1xuXG4gIGlmIChyZWFkT25seSkge1xuICAgIGV4dGVuc2lvbnMucHVzaChFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGZhbHNlKSk7XG4gIH1cblxuICB0aGlzLl9jbUVkaXRvciA9IG5ldyBFZGl0b3JWaWV3KHtcbiAgICBzdGF0ZTogRWRpdG9yU3RhdGUuY3JlYXRlKHtcbiAgICAgIGRvYzogdmFsdWUsXG4gICAgICBleHRlbnNpb25zXG4gICAgfSksXG4gICAgcGFyZW50OiBjb250YWluZXJcbiAgfSk7XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIGNvbnRlbnQgb2YgdGhlIEVkaXRvclxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZVxuICovXG5GZWVsRWRpdG9yLnByb3RvdHlwZS5zZXRWYWx1ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHRoaXMuX2NtRWRpdG9yLmRpc3BhdGNoKHtcbiAgICBjaGFuZ2VzOiB7XG4gICAgICBmcm9tOiAwLFxuICAgICAgdG86IHRoaXMuX2NtRWRpdG9yLnN0YXRlLmRvYy5sZW5ndGgsXG4gICAgICBpbnNlcnQ6IHZhbHVlLFxuICAgIH1cbiAgfSk7XG59O1xuXG4vKipcbiAqIFNldHMgdGhlIGZvY3VzIGluIHRoZSBlZGl0b3IuXG4gKi9cbkZlZWxFZGl0b3IucHJvdG90eXBlLmZvY3VzID0gZnVuY3Rpb24ocG9zaXRpb24pIHtcbiAgY29uc3QgY21FZGl0b3IgPSB0aGlzLl9jbUVkaXRvcjtcblxuICAvLyB0aGUgQ29kZW1pcnJvciBgZm9jdXNgIG1ldGhvZCBhbHdheXMgY2FsbHMgYGZvY3VzYCB3aXRoIGBwcmV2ZW50U2Nyb2xsYCxcbiAgLy8gc28gd2UgaGF2ZSB0byBmb2N1cyArIHNjcm9sbCBtYW51YWxseVxuICBjbUVkaXRvci5jb250ZW50RE9NLmZvY3VzKCk7XG4gIGNtRWRpdG9yLmZvY3VzKCk7XG5cbiAgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICBjb25zdCBlbmQgPSBjbUVkaXRvci5zdGF0ZS5kb2MubGVuZ3RoO1xuICAgIGNtRWRpdG9yLmRpc3BhdGNoKHsgc2VsZWN0aW9uOiB7IGFuY2hvcjogcG9zaXRpb24gPD0gZW5kID8gcG9zaXRpb24gOiBlbmQgfSB9KTtcbiAgfVxufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNlbGVjdGlvbiByYW5nZXMuIElmIG5vIHRleHQgaXMgc2VsZWN0ZWQsIGEgc2luZ2xlXG4gKiByYW5nZSB3aXRoIHRoZSBzdGFydCBhbmQgZW5kIGluZGV4IGF0IHRoZSBjdXJzb3IgcG9zaXRpb24gd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBzZWxlY3Rpb25cbiAqIEByZXR1cm5zIHtBcnJheX0gc2VsZWN0aW9uLnJhbmdlc1xuICovXG5GZWVsRWRpdG9yLnByb3RvdHlwZS5nZXRTZWxlY3Rpb24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuX2NtRWRpdG9yLnN0YXRlLnNlbGVjdGlvbjtcbn07XG5cbi8qKlxuICogU2V0IHZhcmlhYmxlcyB0byBiZSB1c2VkIGZvciBhdXRvY29tcGxldGlvbi5cbiAqXG4gKiBAcGFyYW0ge1ZhcmlhYmxlW119IHZhcmlhYmxlc1xuICovXG5GZWVsRWRpdG9yLnByb3RvdHlwZS5zZXRWYXJpYWJsZXMgPSBmdW5jdGlvbih2YXJpYWJsZXMpIHtcblxuICBjb25zdCB7XG4gICAgZGlhbGVjdCxcbiAgICBidWlsdGluc1xuICB9ID0gZ2V0KHRoaXMuX2NtRWRpdG9yLnN0YXRlKTtcblxuICB0aGlzLl9jbUVkaXRvci5kaXNwYXRjaCh7XG4gICAgZWZmZWN0czogW1xuICAgICAgY29yZUNvbmYucmVjb25maWd1cmUoY29uZmlndXJlKHtcbiAgICAgICAgZGlhbGVjdCxcbiAgICAgICAgYnVpbHRpbnMsXG4gICAgICAgIHZhcmlhYmxlc1xuICAgICAgfSkpXG4gICAgXVxuICB9KTtcbn07XG5cbi8qKlxuICogVXBkYXRlIHBsYWNlaG9sZGVyIHRleHQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBsYWNlaG9sZGVyXG4gKi9cbkZlZWxFZGl0b3IucHJvdG90eXBlLnNldFBsYWNlaG9sZGVyID0gZnVuY3Rpb24ocGxhY2Vob2xkZXIkMSkge1xuICB0aGlzLl9jbUVkaXRvci5kaXNwYXRjaCh7XG4gICAgZWZmZWN0czogcGxhY2Vob2xkZXJDb25mLnJlY29uZmlndXJlKHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyJDEpKVxuICB9KTtcbn07XG5cbmV4cG9ydCB7IEZlZWxFZGl0b3IgYXMgZGVmYXVsdCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/feel-editor/dist/index.es.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/feel-lint/dist/index.esm.js": /*!***********************************************************!*\ !*** ./node_modules/@bpmn-io/feel-lint/dist/index.esm.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cmFeelLinter: () => (/* binding */ cmFeelLinter),\n/* harmony export */ lintExpression: () => (/* binding */ lintExpression)\n/* harmony export */ });\n/* harmony import */ var lezer_feel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lezer-feel */ \"./node_modules/lezer-feel/dist/index.js\");\n/* harmony import */ var _codemirror_language__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @codemirror/language */ \"./node_modules/@codemirror/language/dist/index.js\");\n\n\n\n/**\n * @typedef {import('@lezer/common').Tree} Tree\n * @typedef {import('@codemirror/lint').Diagnostic} LintMessage\n */\n\n/**\n * Create an array of syntax errors in the given tree.\n *\n * @param {Tree} syntaxTree\n * @returns {LintMessage[]} array of syntax errors\n */\nfunction lintSyntax(syntaxTree) {\n\n const lintMessages = [];\n\n syntaxTree.iterate({\n enter: ref => {\n const node = ref.node;\n\n if (!node.type.isError) {\n return;\n }\n\n const parent = node.parent;\n const next = getNextNode(node);\n\n const message = {\n from: node.from,\n to: node.to,\n severity: 'error',\n type: 'Syntax Error'\n };\n\n if (node.from !== node.to) {\n message.message = `Unrecognized token in <${parent.name}>`;\n } else if (next) {\n message.message = `Unrecognized token <${next.name}> in <${parent.name}>`;\n message.to = next.to;\n } else {\n const before = parent.enterUnfinishedNodesBefore(node.to);\n message.message = `Incomplete <${ (before || parent).name }>`;\n }\n\n lintMessages.push(message);\n }\n });\n\n return lintMessages;\n}\n\nfunction getNextNode(node) {\n if (!node) {\n return null;\n }\n\n return node.nextSibling || getNextNode(node.parent);\n}\n\n/**\n * @typedef {object} Context\n * @property {function} report\n * @property {(from: number, to: number) => string} readContent\n * @property {(from: number, to: number, content: string) => void} updateContent\n */\n\nconst RULE_NAME = 'first-item';\n\nvar firstItem = {\n create(/** @type {Context} */ context) {\n return {\n enter(node) {\n if (node.name !== 'FilterExpression') {\n return;\n }\n\n const content = context.readContent(node.from, node.to);\n\n if (zeroIndexPattern().test(content)) {\n const {\n from,\n to\n } = node;\n\n context.report({\n from,\n to,\n message: 'First item is accessed via [1]',\n severity: 'warning',\n type: RULE_NAME,\n actions: [\n {\n name: 'fix',\n apply(_, start = from, end = to) {\n context.updateContent(start, end, content.replace(zeroIndexPattern(), '[1]'));\n }\n }\n ]\n });\n }\n }\n };\n }\n};\n\nfunction zeroIndexPattern() {\n return /\\[\\s*0\\s*\\]$/;\n}\n\n/**\n * @typedef {import('@lezer/common').Tree} Tree\n * @typedef {import('@codemirror/lint').Diagnostic} LintMessage\n * @typedef {import('./index').LintAllContext} LintAllContext\n */\n\nconst RULES = [\n firstItem\n];\n\n/**\n * Create an array of messages reported from rules in the given tree.\n *\n * @param {LintAllContext} context\n * @returns {LintMessage[]} array of syntax errors\n */\nfunction lintRules(context) {\n const {\n readContent,\n syntaxTree,\n updateContent\n } = context;\n\n const lintMessages = [];\n\n const ruleContext = {\n readContent,\n report: message => {\n lintMessages.push(message);\n },\n updateContent\n };\n\n const rules = RULES.map(rule => rule.create(ruleContext));\n\n syntaxTree.iterate({\n enter: ref => {\n for (const rule of rules) {\n rule.enter && rule.enter(ref);\n }\n },\n leave: ref => {\n for (const rule of rules) {\n rule.leave && rule.leave(ref);\n }\n }\n });\n\n return lintMessages;\n}\n\n/**\n * @typedef {import('@lezer/common').Tree} Tree\n * @typedef {import('@codemirror/lint').Diagnostic} LintMessage\n */\n\n/**\n * @typedef {object} LintAllContext\n * @property {Tree} syntaxTree\n * @property {(from: number, to: number) => string} readContent\n * @property {(from: number, to: number, content: string) => void} updateContent\n */\n\n/**\n * Generates lint messages for the given context.\n *\n * @param {LintAllContext} context\n * @returns {LintMessage[]} array of all lint messages\n */\nfunction lintAll(context) {\n\n const lintMessages = [\n ...lintSyntax(context.syntaxTree),\n ...lintRules(context)\n ];\n\n return lintMessages;\n}\n\n/**\n * Create an array of syntax errors for the given expression.\n *\n * @param {String} expression\n * @returns {LintMessage[]} array of syntax errors\n */\nfunction lintExpression(expression) {\n\n const syntaxTree = lezer_feel__WEBPACK_IMPORTED_MODULE_0__.parser.parse(expression);\n\n const lintMessages = lintAll({\n syntaxTree,\n readContent: (from, to) => expression.slice(from, to),\n updateContent: (from, to, content) => {\n\n // not implemented\n }\n });\n\n return lintMessages;\n}\n\n/**\n * CodeMirror extension that provides linting for FEEL expressions.\n *\n * @returns {import('@codemirror/lint').LintSource} CodeMirror linting source\n */\nconst cmFeelLinter = () => editorView => {\n\n // don't lint if the Editor is empty\n if (editorView.state.doc.length === 0) {\n return [];\n }\n\n const tree = (0,_codemirror_language__WEBPACK_IMPORTED_MODULE_1__.syntaxTree)(editorView.state);\n\n const messages = lintAll({\n syntaxTree: tree,\n readContent: (from, to) => editorView.state.sliceDoc(from, to),\n updateContent: (from, to, content) => editorView.dispatch({\n changes: { from, to, insert: content }\n })\n });\n\n return messages.map(message => ({\n ...message,\n source: message.type\n }));\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vZmVlbC1saW50L2Rpc3QvaW5kZXguZXNtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0M7QUFDYzs7QUFFbEQ7QUFDQSxhQUFhLDhCQUE4QjtBQUMzQyxhQUFhLHVDQUF1QztBQUNwRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE1BQU07QUFDakIsYUFBYSxlQUFlO0FBQzVCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9EQUFvRCxZQUFZO0FBQ2hFLFFBQVE7QUFDUixpREFBaUQsVUFBVSxRQUFRLFlBQVk7QUFDL0U7QUFDQSxRQUFRO0FBQ1I7QUFDQSwwQ0FBMEMseUJBQXlCO0FBQ25FOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFVBQVU7QUFDeEIsY0FBYyxzQ0FBc0M7QUFDcEQsY0FBYyxxREFBcUQ7QUFDbkU7O0FBRUE7O0FBRUE7QUFDQSxvQkFBb0IsU0FBUztBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsYUFBYSw4QkFBOEI7QUFDM0MsYUFBYSx1Q0FBdUM7QUFDcEQsYUFBYSxrQ0FBa0M7QUFDL0M7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsZ0JBQWdCO0FBQzNCLGFBQWEsZUFBZTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0EsYUFBYSw4QkFBOEI7QUFDM0MsYUFBYSx1Q0FBdUM7QUFDcEQ7O0FBRUE7QUFDQSxhQUFhLFFBQVE7QUFDckIsY0FBYyxNQUFNO0FBQ3BCLGNBQWMsc0NBQXNDO0FBQ3BELGNBQWMscURBQXFEO0FBQ25FOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsZ0JBQWdCO0FBQzNCLGFBQWEsZUFBZTtBQUM1QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsZUFBZTtBQUM1QjtBQUNBOztBQUVBLHFCQUFxQiw4Q0FBTTs7QUFFM0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHVDQUF1QztBQUNwRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGVBQWUsZ0VBQVU7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vZmVlbC1saW50L2Rpc3QvaW5kZXguZXNtLmpzP2Y5MmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VyIH0gZnJvbSAnbGV6ZXItZmVlbCc7XG5pbXBvcnQgeyBzeW50YXhUcmVlIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BsZXplci9jb21tb24nKS5UcmVlfSBUcmVlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAY29kZW1pcnJvci9saW50JykuRGlhZ25vc3RpY30gTGludE1lc3NhZ2VcbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBhcnJheSBvZiBzeW50YXggZXJyb3JzIGluIHRoZSBnaXZlbiB0cmVlLlxuICpcbiAqIEBwYXJhbSB7VHJlZX0gc3ludGF4VHJlZVxuICogQHJldHVybnMge0xpbnRNZXNzYWdlW119IGFycmF5IG9mIHN5bnRheCBlcnJvcnNcbiAqL1xuZnVuY3Rpb24gbGludFN5bnRheChzeW50YXhUcmVlKSB7XG5cbiAgY29uc3QgbGludE1lc3NhZ2VzID0gW107XG5cbiAgc3ludGF4VHJlZS5pdGVyYXRlKHtcbiAgICBlbnRlcjogcmVmID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSByZWYubm9kZTtcblxuICAgICAgaWYgKCFub2RlLnR5cGUuaXNFcnJvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudCA9IG5vZGUucGFyZW50O1xuICAgICAgY29uc3QgbmV4dCA9IGdldE5leHROb2RlKG5vZGUpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBmcm9tOiBub2RlLmZyb20sXG4gICAgICAgIHRvOiBub2RlLnRvLFxuICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgdHlwZTogJ1N5bnRheCBFcnJvcidcbiAgICAgIH07XG5cbiAgICAgIGlmIChub2RlLmZyb20gIT09IG5vZGUudG8pIHtcbiAgICAgICAgbWVzc2FnZS5tZXNzYWdlID0gYFVucmVjb2duaXplZCB0b2tlbiBpbiA8JHtwYXJlbnQubmFtZX0+YDtcbiAgICAgIH0gZWxzZSBpZiAobmV4dCkge1xuICAgICAgICBtZXNzYWdlLm1lc3NhZ2UgPSBgVW5yZWNvZ25pemVkIHRva2VuIDwke25leHQubmFtZX0+IGluIDwke3BhcmVudC5uYW1lfT5gO1xuICAgICAgICBtZXNzYWdlLnRvID0gbmV4dC50bztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGJlZm9yZSA9IHBhcmVudC5lbnRlclVuZmluaXNoZWROb2Rlc0JlZm9yZShub2RlLnRvKTtcbiAgICAgICAgbWVzc2FnZS5tZXNzYWdlID0gYEluY29tcGxldGUgPCR7IChiZWZvcmUgfHwgcGFyZW50KS5uYW1lIH0+YDtcbiAgICAgIH1cblxuICAgICAgbGludE1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbGludE1lc3NhZ2VzO1xufVxuXG5mdW5jdGlvbiBnZXROZXh0Tm9kZShub2RlKSB7XG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5vZGUubmV4dFNpYmxpbmcgfHwgZ2V0TmV4dE5vZGUobm9kZS5wYXJlbnQpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IENvbnRleHRcbiAqIEBwcm9wZXJ0eSB7ZnVuY3Rpb259IHJlcG9ydFxuICogQHByb3BlcnR5IHsoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKSA9PiBzdHJpbmd9IHJlYWRDb250ZW50XG4gKiBAcHJvcGVydHkgeyhmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZH0gdXBkYXRlQ29udGVudFxuICovXG5cbmNvbnN0IFJVTEVfTkFNRSA9ICdmaXJzdC1pdGVtJztcblxudmFyIGZpcnN0SXRlbSA9IHtcbiAgY3JlYXRlKC8qKiBAdHlwZSB7Q29udGV4dH0gKi8gY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBlbnRlcihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLm5hbWUgIT09ICdGaWx0ZXJFeHByZXNzaW9uJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZXh0LnJlYWRDb250ZW50KG5vZGUuZnJvbSwgbm9kZS50byk7XG5cbiAgICAgICAgaWYgKHplcm9JbmRleFBhdHRlcm4oKS50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgZnJvbSxcbiAgICAgICAgICAgIHRvXG4gICAgICAgICAgfSA9IG5vZGU7XG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBmcm9tLFxuICAgICAgICAgICAgdG8sXG4gICAgICAgICAgICBtZXNzYWdlOiAnRmlyc3QgaXRlbSBpcyBhY2Nlc3NlZCB2aWEgWzFdJyxcbiAgICAgICAgICAgIHNldmVyaXR5OiAnd2FybmluZycsXG4gICAgICAgICAgICB0eXBlOiBSVUxFX05BTUUsXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZml4JyxcbiAgICAgICAgICAgICAgICBhcHBseShfLCBzdGFydCA9IGZyb20sIGVuZCA9IHRvKSB7XG4gICAgICAgICAgICAgICAgICBjb250ZXh0LnVwZGF0ZUNvbnRlbnQoc3RhcnQsIGVuZCwgY29udGVudC5yZXBsYWNlKHplcm9JbmRleFBhdHRlcm4oKSwgJ1sxXScpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHplcm9JbmRleFBhdHRlcm4oKSB7XG4gIHJldHVybiAvXFxbXFxzKjBcXHMqXFxdJC87XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGxlemVyL2NvbW1vbicpLlRyZWV9IFRyZWVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0Bjb2RlbWlycm9yL2xpbnQnKS5EaWFnbm9zdGljfSBMaW50TWVzc2FnZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9pbmRleCcpLkxpbnRBbGxDb250ZXh0fSBMaW50QWxsQ29udGV4dFxuICovXG5cbmNvbnN0IFJVTEVTID0gW1xuICBmaXJzdEl0ZW1cbl07XG5cbi8qKlxuICogQ3JlYXRlIGFuIGFycmF5IG9mIG1lc3NhZ2VzIHJlcG9ydGVkIGZyb20gcnVsZXMgaW4gdGhlIGdpdmVuIHRyZWUuXG4gKlxuICogQHBhcmFtIHtMaW50QWxsQ29udGV4dH0gY29udGV4dFxuICogQHJldHVybnMge0xpbnRNZXNzYWdlW119IGFycmF5IG9mIHN5bnRheCBlcnJvcnNcbiAqL1xuZnVuY3Rpb24gbGludFJ1bGVzKGNvbnRleHQpIHtcbiAgY29uc3Qge1xuICAgIHJlYWRDb250ZW50LFxuICAgIHN5bnRheFRyZWUsXG4gICAgdXBkYXRlQ29udGVudFxuICB9ID0gY29udGV4dDtcblxuICBjb25zdCBsaW50TWVzc2FnZXMgPSBbXTtcblxuICBjb25zdCBydWxlQ29udGV4dCA9IHtcbiAgICByZWFkQ29udGVudCxcbiAgICByZXBvcnQ6IG1lc3NhZ2UgPT4ge1xuICAgICAgbGludE1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XG4gICAgfSxcbiAgICB1cGRhdGVDb250ZW50XG4gIH07XG5cbiAgY29uc3QgcnVsZXMgPSBSVUxFUy5tYXAocnVsZSA9PiBydWxlLmNyZWF0ZShydWxlQ29udGV4dCkpO1xuXG4gIHN5bnRheFRyZWUuaXRlcmF0ZSh7XG4gICAgZW50ZXI6IHJlZiA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpIHtcbiAgICAgICAgcnVsZS5lbnRlciAmJiBydWxlLmVudGVyKHJlZik7XG4gICAgICB9XG4gICAgfSxcbiAgICBsZWF2ZTogcmVmID0+IHtcbiAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykge1xuICAgICAgICBydWxlLmxlYXZlICYmIHJ1bGUubGVhdmUocmVmKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBsaW50TWVzc2FnZXM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGxlemVyL2NvbW1vbicpLlRyZWV9IFRyZWVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0Bjb2RlbWlycm9yL2xpbnQnKS5EaWFnbm9zdGljfSBMaW50TWVzc2FnZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gTGludEFsbENvbnRleHRcbiAqIEBwcm9wZXJ0eSB7VHJlZX0gc3ludGF4VHJlZVxuICogQHByb3BlcnR5IHsoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKSA9PiBzdHJpbmd9IHJlYWRDb250ZW50XG4gKiBAcHJvcGVydHkgeyhmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZH0gdXBkYXRlQ29udGVudFxuICovXG5cbi8qKlxuICogR2VuZXJhdGVzIGxpbnQgbWVzc2FnZXMgZm9yIHRoZSBnaXZlbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSB7TGludEFsbENvbnRleHR9IGNvbnRleHRcbiAqIEByZXR1cm5zIHtMaW50TWVzc2FnZVtdfSBhcnJheSBvZiBhbGwgbGludCBtZXNzYWdlc1xuICovXG5mdW5jdGlvbiBsaW50QWxsKGNvbnRleHQpIHtcblxuICBjb25zdCBsaW50TWVzc2FnZXMgPSBbXG4gICAgLi4ubGludFN5bnRheChjb250ZXh0LnN5bnRheFRyZWUpLFxuICAgIC4uLmxpbnRSdWxlcyhjb250ZXh0KVxuICBdO1xuXG4gIHJldHVybiBsaW50TWVzc2FnZXM7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGFycmF5IG9mIHN5bnRheCBlcnJvcnMgZm9yIHRoZSBnaXZlbiBleHByZXNzaW9uLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBleHByZXNzaW9uXG4gKiBAcmV0dXJucyB7TGludE1lc3NhZ2VbXX0gYXJyYXkgb2Ygc3ludGF4IGVycm9yc1xuICovXG5mdW5jdGlvbiBsaW50RXhwcmVzc2lvbihleHByZXNzaW9uKSB7XG5cbiAgY29uc3Qgc3ludGF4VHJlZSA9IHBhcnNlci5wYXJzZShleHByZXNzaW9uKTtcblxuICBjb25zdCBsaW50TWVzc2FnZXMgPSBsaW50QWxsKHtcbiAgICBzeW50YXhUcmVlLFxuICAgIHJlYWRDb250ZW50OiAoZnJvbSwgdG8pID0+IGV4cHJlc3Npb24uc2xpY2UoZnJvbSwgdG8pLFxuICAgIHVwZGF0ZUNvbnRlbnQ6IChmcm9tLCB0bywgY29udGVudCkgPT4ge1xuXG4gICAgICAvLyBub3QgaW1wbGVtZW50ZWRcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBsaW50TWVzc2FnZXM7XG59XG5cbi8qKlxuICogQ29kZU1pcnJvciBleHRlbnNpb24gdGhhdCBwcm92aWRlcyBsaW50aW5nIGZvciBGRUVMIGV4cHJlc3Npb25zLlxuICpcbiAqIEByZXR1cm5zIHtpbXBvcnQoJ0Bjb2RlbWlycm9yL2xpbnQnKS5MaW50U291cmNlfSBDb2RlTWlycm9yIGxpbnRpbmcgc291cmNlXG4gKi9cbmNvbnN0IGNtRmVlbExpbnRlciA9ICgpID0+IGVkaXRvclZpZXcgPT4ge1xuXG4gIC8vIGRvbid0IGxpbnQgaWYgdGhlIEVkaXRvciBpcyBlbXB0eVxuICBpZiAoZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgdHJlZSA9IHN5bnRheFRyZWUoZWRpdG9yVmlldy5zdGF0ZSk7XG5cbiAgY29uc3QgbWVzc2FnZXMgPSBsaW50QWxsKHtcbiAgICBzeW50YXhUcmVlOiB0cmVlLFxuICAgIHJlYWRDb250ZW50OiAoZnJvbSwgdG8pID0+IGVkaXRvclZpZXcuc3RhdGUuc2xpY2VEb2MoZnJvbSwgdG8pLFxuICAgIHVwZGF0ZUNvbnRlbnQ6IChmcm9tLCB0bywgY29udGVudCkgPT4gZWRpdG9yVmlldy5kaXNwYXRjaCh7XG4gICAgICBjaGFuZ2VzOiB7IGZyb20sIHRvLCBpbnNlcnQ6IGNvbnRlbnQgfVxuICAgIH0pXG4gIH0pO1xuXG4gIHJldHVybiBtZXNzYWdlcy5tYXAobWVzc2FnZSA9PiAoe1xuICAgIC4uLm1lc3NhZ2UsXG4gICAgc291cmNlOiBtZXNzYWdlLnR5cGVcbiAgfSkpO1xufTtcblxuZXhwb3J0IHsgY21GZWVsTGludGVyLCBsaW50RXhwcmVzc2lvbiB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/feel-lint/dist/index.esm.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/properties-panel/dist/index.esm.js": /*!******************************************************************!*\ !*** ./node_modules/@bpmn-io/properties-panel/dist/index.esm.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ArrowIcon: () => (/* binding */ ArrowIcon),\n/* harmony export */ CheckboxEntry: () => (/* binding */ CheckboxEntry),\n/* harmony export */ CloseIcon: () => (/* binding */ CloseIcon),\n/* harmony export */ CollapsibleEntry: () => (/* binding */ CollapsibleEntry),\n/* harmony export */ CreateIcon: () => (/* binding */ CreateIcon),\n/* harmony export */ DebounceInputModule: () => (/* binding */ index$1),\n/* harmony export */ DeleteIcon: () => (/* binding */ DeleteIcon),\n/* harmony export */ DescriptionContext: () => (/* binding */ DescriptionContext),\n/* harmony export */ DescriptionEntry: () => (/* binding */ Description),\n/* harmony export */ DragIcon: () => (/* binding */ DragIcon),\n/* harmony export */ DropdownButton: () => (/* binding */ DropdownButton),\n/* harmony export */ ErrorsContext: () => (/* binding */ ErrorsContext),\n/* harmony export */ EventContext: () => (/* binding */ EventContext),\n/* harmony export */ ExternalLinkIcon: () => (/* binding */ ExternalLinkIcon),\n/* harmony export */ FeelCheckboxEntry: () => (/* binding */ FeelCheckboxEntry),\n/* harmony export */ FeelEntry: () => (/* binding */ FeelEntry),\n/* harmony export */ FeelIcon: () => (/* binding */ FeelIcon$1),\n/* harmony export */ FeelNumberEntry: () => (/* binding */ FeelNumberEntry),\n/* harmony export */ FeelPopupModule: () => (/* binding */ index),\n/* harmony export */ FeelTemplatingEntry: () => (/* binding */ FeelTemplatingEntry),\n/* harmony export */ FeelTextAreaEntry: () => (/* binding */ FeelTextAreaEntry),\n/* harmony export */ FeelToggleSwitchEntry: () => (/* binding */ FeelToggleSwitchEntry),\n/* harmony export */ Group: () => (/* binding */ Group),\n/* harmony export */ Header: () => (/* binding */ Header),\n/* harmony export */ HeaderButton: () => (/* binding */ HeaderButton),\n/* harmony export */ LaunchIcon: () => (/* binding */ LaunchIcon),\n/* harmony export */ LayoutContext: () => (/* binding */ LayoutContext),\n/* harmony export */ ListEntry: () => (/* binding */ List),\n/* harmony export */ ListGroup: () => (/* binding */ ListGroup),\n/* harmony export */ ListItem: () => (/* binding */ ListItem),\n/* harmony export */ NumberFieldEntry: () => (/* binding */ NumberFieldEntry),\n/* harmony export */ Placeholder: () => (/* binding */ Placeholder),\n/* harmony export */ Popup: () => (/* binding */ Popup),\n/* harmony export */ PopupIcon: () => (/* binding */ PopupIcon),\n/* harmony export */ PropertiesPanel: () => (/* binding */ PropertiesPanel),\n/* harmony export */ PropertiesPanelContext: () => (/* binding */ LayoutContext),\n/* harmony export */ SelectEntry: () => (/* binding */ SelectEntry),\n/* harmony export */ SimpleEntry: () => (/* binding */ Simple),\n/* harmony export */ TemplatingEntry: () => (/* binding */ TemplatingEntry),\n/* harmony export */ TextAreaEntry: () => (/* binding */ TextAreaEntry),\n/* harmony export */ TextFieldEntry: () => (/* binding */ TextfieldEntry),\n/* harmony export */ ToggleSwitchEntry: () => (/* binding */ ToggleSwitchEntry),\n/* harmony export */ TooltipContext: () => (/* binding */ TooltipContext),\n/* harmony export */ TooltipEntry: () => (/* binding */ TooltipWrapper),\n/* harmony export */ isCheckboxEntryEdited: () => (/* binding */ isEdited$5),\n/* harmony export */ isFeelEntryEdited: () => (/* binding */ isEdited$6),\n/* harmony export */ isNumberFieldEntryEdited: () => (/* binding */ isEdited$7),\n/* harmony export */ isSelectEntryEdited: () => (/* binding */ isEdited$3),\n/* harmony export */ isSimpleEntryEdited: () => (/* binding */ isEdited$2),\n/* harmony export */ isTemplatingEntryEdited: () => (/* binding */ isEdited$4),\n/* harmony export */ isTextAreaEntryEdited: () => (/* binding */ isEdited$1),\n/* harmony export */ isTextFieldEntryEdited: () => (/* binding */ isEdited),\n/* harmony export */ isToggleSwitchEntryEdited: () => (/* binding */ isEdited$8),\n/* harmony export */ useDescriptionContext: () => (/* binding */ useDescriptionContext),\n/* harmony export */ useElementVisible: () => (/* binding */ useElementVisible),\n/* harmony export */ useError: () => (/* binding */ useError),\n/* harmony export */ useErrors: () => (/* binding */ useErrors),\n/* harmony export */ useEvent: () => (/* binding */ useEvent),\n/* harmony export */ useKeyFactory: () => (/* binding */ useKeyFactory),\n/* harmony export */ useLayoutState: () => (/* binding */ useLayoutState),\n/* harmony export */ usePrevious: () => (/* binding */ usePrevious),\n/* harmony export */ useShowEntryEvent: () => (/* binding */ useShowEntryEvent),\n/* harmony export */ useStaticCallback: () => (/* binding */ useStaticCallback),\n/* harmony export */ useStickyIntersectionObserver: () => (/* binding */ useStickyIntersectionObserver),\n/* harmony export */ useTooltipContext: () => (/* binding */ useTooltipContext)\n/* harmony export */ });\n/* harmony import */ var _preact_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../preact/hooks */ \"./node_modules/@bpmn-io/properties-panel/preact/hooks/dist/hooks.module.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _preact_compat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../preact/compat */ \"./node_modules/@bpmn-io/properties-panel/preact/compat/dist/compat.module.js\");\n/* harmony import */ var _preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../preact/jsx-runtime */ \"./node_modules/@bpmn-io/properties-panel/preact/jsx-runtime/dist/jsxRuntime.module.js\");\n/* harmony import */ var _preact__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../preact */ \"./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var feelers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! feelers */ \"./node_modules/feelers/dist/index.mjs\");\n/* harmony import */ var _bpmn_io_feel_editor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bpmn-io/feel-editor */ \"./node_modules/@bpmn-io/feel-editor/dist/index.es.js\");\n/* harmony import */ var _codemirror_view__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @codemirror/view */ \"./node_modules/@codemirror/view/dist/index.js\");\n/* harmony import */ var focus_trap__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! focus-trap */ \"./node_modules/focus-trap/dist/focus-trap.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar ArrowIcon = function ArrowIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"svg\", {\n ...props,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fillRule: \"evenodd\",\n d: \"m11.657 8-4.95 4.95a1 1 0 0 1-1.414-1.414L8.828 8 5.293 4.464A1 1 0 1 1 6.707 3.05L11.657 8Z\"\n })\n });\n};\nArrowIcon.defaultProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\"\n};\nvar CloseIcon = function CloseIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"svg\", {\n ...props,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fillRule: \"evenodd\",\n d: \"m12 4.7-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8 12 4.7Z\",\n fill: \"currentColor\"\n })\n });\n};\nCloseIcon.defaultProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\"\n};\nvar CreateIcon = function CreateIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"svg\", {\n ...props,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9 13V9h4a1 1 0 0 0 0-2H9V3a1 1 0 1 0-2 0v4H3a1 1 0 1 0 0 2h4v4a1 1 0 0 0 2 0Z\"\n })\n });\n};\nCreateIcon.defaultProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\"\n};\nvar DeleteIcon = function DeleteIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"svg\", {\n ...props,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fillRule: \"evenodd\",\n d: \"M12 6v7c0 1.1-.4 1.55-1.5 1.55h-5C4.4 14.55 4 14.1 4 13V6h8Zm-1.5 1.5h-5v4.3c0 .66.5 1.2 1.111 1.2H9.39c.611 0 1.111-.54 1.111-1.2V7.5ZM13 3h-2l-1-1H6L5 3H3v1.5h10V3Z\"\n })\n });\n};\nDeleteIcon.defaultProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\"\n};\nvar DragIcon = function DragIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"svg\", {\n ...props,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fill: \"#fff\",\n style: {\n mixBlendMode: \"multiply\"\n },\n d: \"M0 0h16v16H0z\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fill: \"#fff\",\n style: {\n mixBlendMode: \"multiply\"\n },\n d: \"M0 0h16v16H0z\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n d: \"M7 3H5v2h2V3zm4 0H9v2h2V3zM7 7H5v2h2V7zm4 0H9v2h2V7zm-4 4H5v2h2v-2zm4 0H9v2h2v-2z\",\n fill: \"#161616\"\n })]\n });\n};\nDragIcon.defaultProps = {\n width: \"16\",\n height: \"16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nvar ExternalLinkIcon = function ExternalLinkIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"svg\", {\n ...props,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.637 12.637v-4.72h1.362v4.721c0 .36-.137.676-.411.95-.275.275-.591.412-.95.412H3.362c-.38 0-.703-.132-.967-.396A1.315 1.315 0 0 1 2 12.638V3.362c0-.38.132-.703.396-.967S2.982 2 3.363 2h4.553v1.363H3.363v9.274h9.274ZM14 2H9.28l-.001 1.362h2.408L5.065 9.984l.95.95 6.622-6.622v2.409H14V2Z\",\n fill: \"currentcolor\"\n })\n });\n};\nExternalLinkIcon.defaultProps = {\n width: \"16\",\n height: \"16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nvar FeelIcon$1 = function FeelIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"svg\", {\n ...props,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n d: \"M3.617 11.99c-.137.684-.392 1.19-.765 1.518-.362.328-.882.492-1.558.492H0l.309-1.579h1.264l1.515-7.64h-.912l.309-1.579h.911l.236-1.191c.137-.685.387-1.192.75-1.52C4.753.164 5.277 0 5.953 0h1.294L6.94 1.579H5.675l-.323 1.623h1.264l-.309 1.579H5.043l-1.426 7.208ZM5.605 11.021l3.029-4.155L7.28 3.202h2.073l.706 2.547h.176l1.691-2.547H14l-3.014 4.051 1.338 3.768H10.25l-.706-2.606H9.37L7.678 11.02H5.605Z\",\n fill: \"currentcolor\"\n })\n });\n};\nFeelIcon$1.defaultProps = {\n width: \"14\",\n height: \"14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nvar LaunchIcon = function LaunchIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"svg\", {\n ...props,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n d: \"M26 28H6a2.003 2.003 0 0 1-2-2V6a2.003 2.003 0 0 1 2-2h10v2H6v20h20V16h2v10a2.003 2.003 0 0 1-2 2Z\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n d: \"M20 2v2h6.586L18 12.586 19.414 14 28 5.414V12h2V2H20z\"\n })]\n });\n};\nLaunchIcon.defaultProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\"\n};\nvar PopupIcon = function PopupIcon(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"svg\", {\n ...props,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fill: \"currentColor\",\n d: \"M28 4H10a2.006 2.006 0 0 0-2 2v14a2.006 2.006 0 0 0 2 2h18a2.006 2.006 0 0 0 2-2V6a2.006 2.006 0 0 0-2-2Zm0 16H10V6h18Z\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n fill: \"currentColor\",\n d: \"M18 26H4V16h2v-2H4a2.006 2.006 0 0 0-2 2v10a2.006 2.006 0 0 0 2 2h14a2.006 2.006 0 0 0 2-2v-2h-2Z\"\n })]\n });\n};\nPopupIcon.defaultProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 32 32\"\n};\n\nfunction Header(props) {\n const {\n element,\n headerProvider\n } = props;\n const {\n getElementIcon,\n getDocumentationRef,\n getElementLabel,\n getTypeLabel\n } = headerProvider;\n const label = getElementLabel(element);\n const type = getTypeLabel(element);\n const documentationRef = getDocumentationRef && getDocumentationRef(element);\n const ElementIcon = getElementIcon(element);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-header\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-header-icon\",\n children: ElementIcon && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ElementIcon, {\n width: \"32\",\n height: \"32\",\n viewBox: \"0 0 32 32\"\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-header-labels\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: type,\n class: \"bio-properties-panel-header-type\",\n children: type\n }), label ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: label,\n class: \"bio-properties-panel-header-label\",\n children: label\n }) : null]\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-header-actions\",\n children: documentationRef ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"a\", {\n rel: \"noreferrer\",\n class: \"bio-properties-panel-header-link\",\n href: documentationRef,\n title: \"Open documentation\",\n target: \"_blank\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ExternalLinkIcon, {})\n }) : null\n })]\n });\n}\n\nconst DescriptionContext = (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createContext)({\n description: {},\n getDescriptionForId: () => {}\n});\n\nconst ErrorsContext = (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createContext)({\n errors: {}\n});\n\n/**\r\n * @typedef {Function} callback\r\n *\r\n * @example\r\n *\r\n * useEvent('propertiesPanel.showEntry', ({ focus = false, ...rest }) => {\r\n * // ...\r\n * });\r\n *\r\n * @param {Object} context\r\n * @param {boolean} [context.focus]\r\n *\r\n * @returns void\r\n */\n\nconst EventContext = (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createContext)({\n eventBus: null\n});\n\nconst LayoutContext = (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createContext)({\n layout: {},\n setLayout: () => {},\n getLayoutForKey: () => {},\n setLayoutForKey: () => {}\n});\n\nconst TooltipContext = (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createContext)({\n tooltip: {},\n getTooltipForId: () => {}\n});\n\n/**\r\n * Accesses the global TooltipContext and returns a tooltip for a given id and element.\r\n *\r\n * @example\r\n * ```jsx\r\n * function TextField(props) {\r\n * const tooltip = useTooltipContext('input1', element);\r\n * }\r\n * ```\r\n *\r\n * @param {string} id\r\n * @param {object} element\r\n *\r\n * @returns {string}\r\n */\nfunction useTooltipContext(id, element) {\n const {\n getTooltipForId\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(TooltipContext);\n return getTooltipForId(id, element);\n}\n\nfunction TooltipWrapper(props) {\n const {\n forId,\n element\n } = props;\n const contextDescription = useTooltipContext(forId, element);\n const value = props.value || contextDescription;\n if (!value) {\n return props.children;\n }\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Tooltip, {\n ...props,\n value: value,\n forId: prefixId$9(forId)\n });\n}\nfunction Tooltip(props) {\n const {\n forId,\n value,\n parent,\n direction = 'right',\n position\n } = props;\n const [visible, setShow] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const [focusedViaKeyboard, setFocusedViaKeyboard] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n let timeout = null;\n const wrapperRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const tooltipRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const showTooltip = async event => {\n const show = () => setShow(true);\n if (!visible && !timeout) {\n if (event instanceof MouseEvent) {\n timeout = setTimeout(show, 200);\n } else {\n show();\n setFocusedViaKeyboard(true);\n }\n }\n };\n const hideTooltip = () => {\n setShow(false);\n setFocusedViaKeyboard(false);\n };\n const hideTooltipViaEscape = e => {\n e.code === 'Escape' && hideTooltip();\n };\n const isTooltipHovered = ({\n x,\n y\n }) => {\n const tooltip = tooltipRef.current;\n const wrapper = wrapperRef.current;\n return tooltip && (inBounds(x, y, wrapper.getBoundingClientRect()) || inBounds(x, y, tooltip.getBoundingClientRect()));\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const {\n current\n } = wrapperRef;\n if (!current) {\n return;\n }\n const hideHoveredTooltip = e => {\n const isFocused = document.activeElement === wrapperRef.current || document.activeElement.closest('.bio-properties-panel-tooltip');\n if (visible && !isTooltipHovered({\n x: e.x,\n y: e.y\n }) && !(isFocused && focusedViaKeyboard)) {\n hideTooltip();\n }\n };\n const hideFocusedTooltip = e => {\n const {\n relatedTarget\n } = e;\n const isTooltipChild = el => !!el.closest('.bio-properties-panel-tooltip');\n if (visible && !isHovered(wrapperRef.current) && relatedTarget && !isTooltipChild(relatedTarget)) {\n hideTooltip();\n }\n };\n document.addEventListener('wheel', hideHoveredTooltip);\n document.addEventListener('focusout', hideFocusedTooltip);\n document.addEventListener('mousemove', hideHoveredTooltip);\n return () => {\n document.removeEventListener('wheel', hideHoveredTooltip);\n document.removeEventListener('mousemove', hideHoveredTooltip);\n document.removeEventListener('focusout', hideFocusedTooltip);\n };\n }, [wrapperRef.current, visible, focusedViaKeyboard]);\n const renderTooltip = () => {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: `bio-properties-panel-tooltip ${direction}`,\n role: \"tooltip\",\n id: \"bio-properties-panel-tooltip\",\n \"aria-labelledby\": forId,\n style: position || getTooltipPosition(wrapperRef.current),\n ref: tooltipRef,\n onClick: e => e.stopPropagation(),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-tooltip-content\",\n children: value\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-tooltip-arrow\"\n })]\n });\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-tooltip-wrapper\",\n tabIndex: \"0\",\n ref: wrapperRef,\n onMouseEnter: showTooltip,\n onMouseLeave: () => {\n clearTimeout(timeout);\n timeout = null;\n },\n onFocus: showTooltip,\n onKeyDown: hideTooltipViaEscape,\n children: [props.children, visible ? parent ? (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.createPortal)(renderTooltip(), parent.current) : renderTooltip() : null]\n });\n}\n\n// helper\nfunction inBounds(x, y, bounds) {\n const {\n top,\n right,\n bottom,\n left\n } = bounds;\n return x >= left && x <= right && y >= top && y <= bottom;\n}\nfunction getTooltipPosition(refElement) {\n const refPosition = refElement.getBoundingClientRect();\n const right = `calc(100% - ${refPosition.x}px)`;\n const top = `${refPosition.top - 10}px`;\n return `right: ${right}; top: ${top};`;\n}\nfunction isHovered(element) {\n return element.matches(':hover');\n}\nfunction prefixId$9(id) {\n return `bio-properties-panel-${id}`;\n}\n\n/**\r\n * Accesses the global DescriptionContext and returns a description for a given id and element.\r\n *\r\n * @example\r\n * ```jsx\r\n * function TextField(props) {\r\n * const description = useDescriptionContext('input1', element);\r\n * }\r\n * ```\r\n *\r\n * @param {string} id\r\n * @param {object} element\r\n *\r\n * @returns {string}\r\n */\nfunction useDescriptionContext(id, element) {\n const {\n getDescriptionForId\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(DescriptionContext);\n return getDescriptionForId(id, element);\n}\n\nfunction useError(id) {\n const {\n errors\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(ErrorsContext);\n return errors[id];\n}\nfunction useErrors() {\n const {\n errors\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(ErrorsContext);\n return errors;\n}\n\n/**\r\n * Subscribe to an event immediately. Update subscription after inputs changed.\r\n *\r\n * @param {string} event\r\n * @param {Function} callback\r\n */\nfunction useEvent(event, callback, eventBus) {\n const eventContext = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(EventContext);\n if (!eventBus) {\n ({\n eventBus\n } = eventContext);\n }\n const didMount = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n\n // (1) subscribe immediately\n if (eventBus && !didMount.current) {\n eventBus.on(event, callback);\n }\n\n // (2) update subscription after inputs changed\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (eventBus && didMount.current) {\n eventBus.on(event, callback);\n }\n didMount.current = true;\n return () => {\n if (eventBus) {\n eventBus.off(event, callback);\n }\n };\n }, [callback, event, eventBus]);\n}\n\nconst KEY_LENGTH = 6;\n\n/**\r\n * Create a persistent key factory for plain objects without id.\r\n *\r\n * @example\r\n * ```jsx\r\n * function List({ objects }) {\r\n * const getKey = useKeyFactory();\r\n * return (
    {\r\n * objects.map(obj => {\r\n * const key = getKey(obj);\r\n * return
  1. obj.name
  2. \r\n * })\r\n * }
);\r\n * }\r\n * ```\r\n *\r\n * @param {any[]} dependencies\r\n * @returns {(element: object) => string}\r\n */\nfunction useKeyFactory(dependencies = []) {\n const map = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => new Map(), dependencies);\n const getKey = el => {\n let key = map.get(el);\n if (!key) {\n key = Math.random().toString().slice(-KEY_LENGTH);\n map.set(el, key);\n }\n return key;\n };\n return getKey;\n}\n\n/**\r\n * Creates a state that persists in the global LayoutContext.\r\n *\r\n * @example\r\n * ```jsx\r\n * function Group(props) {\r\n * const [ open, setOpen ] = useLayoutState([ 'groups', 'foo', 'open' ], false);\r\n * }\r\n * ```\r\n *\r\n * @param {(string|number)[]} path\r\n * @param {any} [defaultValue]\r\n *\r\n * @returns {[ any, Function ]}\r\n */\nfunction useLayoutState(path, defaultValue) {\n const {\n getLayoutForKey,\n setLayoutForKey\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(LayoutContext);\n const layoutForKey = getLayoutForKey(path, defaultValue);\n const setState = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(newValue => {\n setLayoutForKey(path, newValue);\n }, [setLayoutForKey]);\n return [layoutForKey, setState];\n}\n\n/**\r\n * @pinussilvestrus: we need to introduce our own hook to persist the previous\r\n * state on updates.\r\n *\r\n * cf. https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\r\n */\n\nfunction usePrevious(value) {\n const ref = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\n/**\r\n * Subscribe to `propertiesPanel.showEntry`.\r\n *\r\n * @param {string} id\r\n *\r\n * @returns {import('preact').Ref}\r\n */\nfunction useShowEntryEvent(id) {\n const {\n onShow\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(LayoutContext);\n const ref = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const focus = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n const onShowEntry = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(event => {\n if (event.id === id) {\n onShow();\n if (!focus.current) {\n focus.current = true;\n }\n }\n }, [id]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (focus.current && ref.current) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(ref.current.focus)) {\n ref.current.focus();\n }\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(ref.current.select)) {\n ref.current.select();\n }\n focus.current = false;\n }\n });\n useEvent('propertiesPanel.showEntry', onShowEntry);\n return ref;\n}\n\n/**\r\n * @callback setSticky\r\n * @param {boolean} value\r\n */\n\n/**\r\n * Use IntersectionObserver to identify when DOM element is in sticky mode.\r\n * If sticky is observered setSticky(true) will be called.\r\n * If sticky mode is left, setSticky(false) will be called.\r\n *\r\n *\r\n * @param {Object} ref\r\n * @param {string} scrollContainerSelector\r\n * @param {setSticky} setSticky\r\n */\nfunction useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {\n const [scrollContainer, setScrollContainer] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)((0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)(scrollContainerSelector));\n const updateScrollContainer = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n const newScrollContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)(scrollContainerSelector);\n if (newScrollContainer !== scrollContainer) {\n setScrollContainer(newScrollContainer);\n }\n }, [scrollContainerSelector, scrollContainer]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n updateScrollContainer();\n }, [updateScrollContainer]);\n useEvent('propertiesPanel.attach', updateScrollContainer);\n useEvent('propertiesPanel.detach', updateScrollContainer);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const Observer = IntersectionObserver;\n\n // return early if IntersectionObserver is not available\n if (!Observer) {\n return;\n }\n\n // TODO(@barmac): test this\n if (!ref.current || !scrollContainer) {\n return;\n }\n const observer = new Observer(entries => {\n // scroll container is unmounted, do not update sticky state\n if (scrollContainer.scrollHeight === 0) {\n return;\n }\n entries.forEach(entry => {\n if (entry.intersectionRatio < 1) {\n setSticky(true);\n } else if (entry.intersectionRatio === 1) {\n setSticky(false);\n }\n });\n }, {\n root: scrollContainer,\n rootMargin: '0px 0px 999999% 0px',\n // Use bottom margin to avoid stickyness when scrolling out to bottom\n threshold: [1]\n });\n observer.observe(ref.current);\n\n // Unobserve if unmounted\n return () => {\n observer.unobserve(ref.current);\n };\n }, [ref.current, scrollContainer, setSticky]);\n}\n\n/**\r\n * Creates a static function reference with changing body.\r\n * This is necessary when external libraries require a callback function\r\n * that has references to state variables.\r\n *\r\n * Usage:\r\n * const callback = useStaticCallback((val) => {val === currentState});\r\n *\r\n * The `callback` reference is static and can be safely used in external\r\n * libraries or as a prop that does not cause rerendering of children.\r\n *\r\n * @param {Function} callback function with changing reference\r\n * @returns {Function} static function reference\r\n */\nfunction useStaticCallback(callback) {\n const callbackRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(callback);\n callbackRef.current = callback;\n return (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)((...args) => callbackRef.current(...args), []);\n}\n\nfunction useElementVisible(element) {\n const [visible, setVisible] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(!!element && !!element.clientHeight);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(() => {\n if (!element) return;\n const resizeObserver = new ResizeObserver(([entry]) => {\n requestAnimationFrame(() => {\n const newVisible = !!entry.contentRect.height;\n if (newVisible !== visible) {\n setVisible(newVisible);\n }\n });\n });\n resizeObserver.observe(element);\n return () => resizeObserver.disconnect();\n }, [element, visible]);\n return visible;\n}\n\nfunction Group(props) {\n const {\n element,\n entries = [],\n id,\n label,\n shouldOpen = false\n } = props;\n const groupRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const [open, setOpen] = useLayoutState(['groups', id, 'open'], shouldOpen);\n const onShow = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setOpen(true), [setOpen]);\n const toggleOpen = () => setOpen(!open);\n const [edited, setEdited] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const [sticky, setSticky] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n // set edited state depending on all entries\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n // TODO(@barmac): replace with CSS when `:has()` is supported in all major browsers, or rewrite as in https://github.com/camunda/camunda-modeler/issues/3815#issuecomment-1733038161\n const scheduled = requestAnimationFrame(() => {\n const hasOneEditedEntry = entries.find(entry => {\n const {\n id,\n isEdited\n } = entry;\n const entryNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)(`[data-entry-id=\"${id}\"]`);\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(isEdited) || !entryNode) {\n return false;\n }\n const inputNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)('.bio-properties-panel-input', entryNode);\n return isEdited(inputNode);\n });\n setEdited(hasOneEditedEntry);\n });\n return () => cancelAnimationFrame(scheduled);\n }, [entries, setEdited]);\n\n // set error state depending on all entries\n const allErrors = useErrors();\n const hasErrors = entries.some(entry => allErrors[entry.id]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n const propertiesPanelContext = {\n ...(0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(LayoutContext),\n onShow\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-group\",\n \"data-group-id\": 'group-' + id,\n ref: groupRef,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-group-header', edited ? '' : 'empty', open ? 'open' : '', sticky && open ? 'sticky' : ''),\n onClick: toggleOpen,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: props.tooltip ? null : label,\n \"data-title\": label,\n class: \"bio-properties-panel-group-header-title\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: props.tooltip,\n forId: 'group-' + id,\n element: element,\n parent: groupRef,\n children: label\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-group-header-buttons\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(DataMarker, {\n edited: edited,\n hasErrors: hasErrors\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: \"Toggle section\",\n class: \"bio-properties-panel-group-header-button bio-properties-panel-arrow\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ArrowIcon, {\n class: open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right'\n })\n })]\n })]\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-group-entries', open ? 'open' : ''),\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(LayoutContext.Provider, {\n value: propertiesPanelContext,\n children: entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n return (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createElement)(Component, {\n ...entry,\n element: element,\n key: id\n });\n })\n })\n })]\n });\n}\nfunction DataMarker(props) {\n const {\n edited,\n hasErrors\n } = props;\n if (hasErrors) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: \"Section contains an error\",\n class: \"bio-properties-panel-dot bio-properties-panel-dot--error\"\n });\n }\n if (edited) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: \"Section contains data\",\n class: \"bio-properties-panel-dot\"\n });\n }\n return null;\n}\n\n/**\r\n * @typedef { {\r\n * text: (element: object) => string,\r\n * icon?: (element: Object) => import('preact').Component\r\n * } } PlaceholderDefinition\r\n *\r\n * @param { PlaceholderDefinition } props\r\n */\nfunction Placeholder(props) {\n const {\n text,\n icon: Icon\n } = props;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel open\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"section\", {\n class: \"bio-properties-panel-placeholder\",\n children: [Icon && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Icon, {\n class: \"bio-properties-panel-placeholder-icon\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"p\", {\n class: \"bio-properties-panel-placeholder-text\",\n children: text\n })]\n })\n });\n}\n\nfunction Description(props) {\n const {\n element,\n forId,\n value\n } = props;\n const contextDescription = useDescriptionContext(forId, element);\n const description = value || contextDescription;\n if (description) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-description\",\n children: description\n });\n }\n}\n\nconst noop$6 = () => {};\n\n/**\r\n * Buffer `.focus()` calls while the editor is not initialized.\r\n * Set Focus inside when the editor is ready.\r\n */\nconst useBufferedFocus$1 = function (editor, ref) {\n const [buffer, setBuffer] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(undefined);\n ref.current = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n focus: offset => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [editor]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [editor, buffer]);\n};\nconst CodeEditor$1 = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => {\n const {\n onInput,\n disabled,\n tooltipContainer,\n enableGutters,\n value,\n onLint = noop$6,\n onPopupOpen = noop$6,\n popupOpen,\n contentAttributes = {},\n hostLanguage = null,\n singleLine = false\n } = props;\n const inputRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const [editor, setEditor] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)();\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value || '');\n useBufferedFocus$1(editor, ref);\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n let editor;\n editor = new feelers__WEBPACK_IMPORTED_MODULE_5__.FeelersEditor({\n container: inputRef.current,\n onChange: handleInput,\n value: localValue,\n onLint,\n contentAttributes,\n tooltipContainer,\n enableGutters,\n hostLanguage,\n singleLine,\n lineWrap: true\n });\n setEditor(editor);\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!editor) {\n return;\n }\n if (value === localValue) {\n return;\n }\n editor.setValue(value);\n setLocalValue(value);\n }, [value]);\n const handleClick = () => {\n ref.current.focus();\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-feelers-editor-container', popupOpen ? 'popupOpen' : null),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-feelers-editor__open-popup-placeholder\",\n children: \"Opened in editor\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n name: props.name,\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-feelers-editor bio-properties-panel-input', localValue ? 'edited' : null, disabled ? 'disabled' : null),\n ref: inputRef,\n onClick: handleClick\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: \"Open pop-up editor\",\n class: \"bio-properties-panel-open-feel-popup\",\n onClick: () => onPopupOpen('feelers'),\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(PopupIcon, {})\n })]\n });\n});\n\nconst noop$5 = () => {};\n\n/**\r\n * Buffer `.focus()` calls while the editor is not initialized.\r\n * Set Focus inside when the editor is ready.\r\n */\nconst useBufferedFocus = function (editor, ref) {\n const [buffer, setBuffer] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(undefined);\n ref.current = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n focus: offset => {\n if (editor) {\n editor.focus(offset);\n } else {\n if (typeof offset === 'undefined') {\n offset = Infinity;\n }\n setBuffer(offset);\n }\n }\n }), [editor]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (typeof buffer !== 'undefined' && editor) {\n editor.focus(buffer);\n setBuffer(false);\n }\n }, [editor, buffer]);\n};\nconst CodeEditor = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => {\n const {\n contentAttributes,\n enableGutters,\n value,\n onInput,\n onFeelToggle = noop$5,\n onLint = noop$5,\n onPopupOpen = noop$5,\n placeholder,\n popupOpen,\n disabled,\n tooltipContainer,\n variables\n } = props;\n const inputRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const [editor, setEditor] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)();\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value || '');\n useBufferedFocus(editor, ref);\n const handleInput = useStaticCallback(newValue => {\n onInput(newValue);\n setLocalValue(newValue);\n });\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n let editor;\n\n /* Trigger FEEL toggle when\r\n *\r\n * - `backspace` is pressed\r\n * - AND the cursor is at the beginning of the input\r\n */\n const onKeyDown = e => {\n if (e.key !== 'Backspace' || !editor) {\n return;\n }\n const selection = editor.getSelection();\n const range = selection.ranges[selection.mainIndex];\n if (range.from === 0 && range.to === 0) {\n onFeelToggle();\n }\n };\n editor = new _bpmn_io_feel_editor__WEBPACK_IMPORTED_MODULE_6__[\"default\"]({\n container: inputRef.current,\n onChange: handleInput,\n onKeyDown: onKeyDown,\n onLint: onLint,\n placeholder: placeholder,\n tooltipContainer: tooltipContainer,\n value: localValue,\n variables: variables,\n extensions: [...(enableGutters ? [(0,_codemirror_view__WEBPACK_IMPORTED_MODULE_9__.lineNumbers)()] : []), _codemirror_view__WEBPACK_IMPORTED_MODULE_9__.EditorView.lineWrapping],\n contentAttributes\n });\n setEditor(editor);\n return () => {\n onLint([]);\n inputRef.current.innerHTML = '';\n setEditor(null);\n };\n }, []);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!editor) {\n return;\n }\n if (value === localValue) {\n return;\n }\n editor.setValue(value);\n setLocalValue(value);\n }, [value]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!editor) {\n return;\n }\n editor.setVariables(variables);\n }, [variables]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!editor) {\n return;\n }\n editor.setPlaceholder(placeholder);\n }, [placeholder]);\n const handleClick = () => {\n ref.current.focus();\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-feel-editor-container', disabled ? 'disabled' : null, popupOpen ? 'popupOpen' : null),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-feel-editor__open-popup-placeholder\",\n children: \"Opened in editor\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n name: props.name,\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-input', localValue ? 'edited' : null),\n ref: inputRef,\n onClick: handleClick\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: \"Open pop-up editor\",\n class: \"bio-properties-panel-open-feel-popup\",\n onClick: () => onPopupOpen(),\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(PopupIcon, {})\n })]\n });\n});\n\nfunction FeelIndicator(props) {\n const {\n active\n } = props;\n if (!active) {\n return null;\n }\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n class: \"bio-properties-panel-feel-indicator\",\n children: \"=\"\n });\n}\n\nconst noop$4 = () => {};\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.label\r\n * @param {String} props.feel\r\n */\nfunction FeelIcon(props) {\n const {\n feel = false,\n active,\n disabled = false,\n onClick = noop$4\n } = props;\n const feelRequiredLabel = 'FEEL expression is mandatory';\n const feelOptionalLabel = `Click to ${active ? 'remove' : 'set a'} dynamic value with FEEL expression`;\n const handleClick = e => {\n onClick(e);\n\n // when pointer event was created from keyboard, keep focus on button\n if (!e.pointerType) {\n e.stopPropagation();\n }\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-feel-icon', active ? 'active' : null, feel === 'required' ? 'required' : 'optional'),\n onClick: handleClick,\n disabled: feel === 'required' || disabled,\n title: feel === 'required' ? feelRequiredLabel : feelOptionalLabel,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelIcon$1, {})\n });\n}\n\nconst FeelPopupContext = (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createContext)({\n open: () => {},\n close: () => {},\n source: null\n});\n\n/**\r\n * Add a dragger that calls back the passed function with\r\n * { event, delta } on drag.\r\n *\r\n * @example\r\n *\r\n * function dragMove(event, delta) {\r\n * // we are dragging (!!)\r\n * }\r\n *\r\n * domElement.addEventListener('dragstart', dragger(dragMove));\r\n *\r\n * @param {Function} fn\r\n * @param {Element} [dragPreview]\r\n *\r\n * @return {Function} drag start callback function\r\n */\nfunction createDragger(fn, dragPreview) {\n let self;\n let startX, startY;\n\n /** drag start */\n function onDragStart(event) {\n self = this;\n startX = event.clientX;\n startY = event.clientY;\n\n // (1) prevent preview image\n if (event.dataTransfer) {\n event.dataTransfer.setDragImage(dragPreview || emptyCanvas(), 0, 0);\n }\n\n // (2) setup drag listeners\n\n // attach drag + cleanup event\n // we need to do this to make sure we track cursor\n // movements before we reach other drag event handlers,\n // e.g. in child containers.\n document.addEventListener('dragover', onDrag, true);\n document.addEventListener('dragenter', preventDefault, true);\n document.addEventListener('dragend', onEnd);\n document.addEventListener('drop', preventDefault);\n }\n function onDrag(event) {\n const delta = {\n x: event.clientX - startX,\n y: event.clientY - startY\n };\n\n // call provided fn with event, delta\n return fn.call(self, event, delta);\n }\n function onEnd() {\n document.removeEventListener('dragover', onDrag, true);\n document.removeEventListener('dragenter', preventDefault, true);\n document.removeEventListener('dragend', onEnd);\n document.removeEventListener('drop', preventDefault);\n }\n return onDragStart;\n}\nfunction preventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction emptyCanvas() {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.domify)('');\n}\n\nconst noop$3 = () => {};\n\n/**\r\n * A generic popup component.\r\n *\r\n * @param {Object} props\r\n * @param {HTMLElement} [props.container]\r\n * @param {string} [props.className]\r\n * @param {boolean} [props.delayInitialFocus]\r\n * @param {{x: number, y: number}} [props.position]\r\n * @param {number} [props.width]\r\n * @param {number} [props.height]\r\n * @param {Function} props.onClose\r\n * @param {Function} [props.onPostActivate]\r\n * @param {Function} [props.onPostDeactivate]\r\n * @param {boolean} [props.returnFocus]\r\n * @param {boolean} [props.closeOnEscape]\r\n * @param {string} props.title\r\n * @param {Ref} [ref]\r\n */\nfunction PopupComponent(props, globalRef) {\n const {\n container,\n className,\n delayInitialFocus,\n position,\n width,\n height,\n onClose,\n onPostActivate = noop$3,\n onPostDeactivate = noop$3,\n returnFocus = true,\n closeOnEscape = true,\n title\n } = props;\n const focusTrapRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const localRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const popupRef = globalRef || localRef;\n const containerNode = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => getContainerNode(container), [container]);\n const handleKeydown = event => {\n // do not allow keyboard events to bubble\n event.stopPropagation();\n if (closeOnEscape && event.key === 'Escape') {\n onClose();\n }\n };\n\n // re-activate focus trap on focus\n const handleFocus = () => {\n if (focusTrapRef.current) {\n focusTrapRef.current.activate();\n }\n };\n let style = {};\n if (position) {\n style = {\n ...style,\n top: position.top + 'px',\n left: position.left + 'px'\n };\n }\n if (width) {\n style.width = width + 'px';\n }\n if (height) {\n style.height = height + 'px';\n }\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (popupRef.current) {\n popupRef.current.addEventListener('focusin', handleFocus);\n }\n return () => {\n popupRef.current.removeEventListener('focusin', handleFocus);\n };\n }, [popupRef]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (popupRef.current) {\n focusTrapRef.current = focus_trap__WEBPACK_IMPORTED_MODULE_10__.createFocusTrap(popupRef.current, {\n clickOutsideDeactivates: true,\n delayInitialFocus,\n fallbackFocus: popupRef.current,\n onPostActivate,\n onPostDeactivate,\n returnFocusOnDeactivate: returnFocus\n });\n focusTrapRef.current.activate();\n }\n return () => focusTrapRef.current && focusTrapRef.current.deactivate();\n }, [popupRef]);\n useEvent('propertiesPanel.detach', onClose);\n return (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.createPortal)((0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n \"aria-label\": title,\n tabIndex: -1,\n ref: popupRef,\n onKeyDown: handleKeydown,\n role: \"dialog\",\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-popup', className),\n style: style,\n children: props.children\n }), containerNode || document.body);\n}\nconst Popup = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(PopupComponent);\nPopup.Title = Title;\nPopup.Body = Body;\nPopup.Footer = Footer;\nfunction Title(props) {\n const {\n children,\n className,\n draggable,\n emit = () => {},\n title,\n showCloseButton = false,\n closeButtonTooltip = 'Close popup',\n onClose,\n ...rest\n } = props;\n\n // we can't use state as we need to\n // manipulate this inside dragging events\n const context = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)({\n startPosition: null,\n newPosition: null\n });\n const dragPreviewRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const titleRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const onMove = (event, delta) => {\n cancel(event);\n const {\n x: dx,\n y: dy\n } = delta;\n const newPosition = {\n x: context.current.startPosition.x + dx,\n y: context.current.startPosition.y + dy\n };\n const popupParent = getPopupParent(titleRef.current);\n popupParent.style.top = newPosition.y + 'px';\n popupParent.style.left = newPosition.x + 'px';\n\n // notify interested parties\n emit('dragover', {\n newPosition,\n delta\n });\n };\n const onMoveStart = event => {\n // initialize drag handler\n const onDragStart = createDragger(onMove, dragPreviewRef.current);\n onDragStart(event);\n event.stopPropagation();\n const popupParent = getPopupParent(titleRef.current);\n const bounds = popupParent.getBoundingClientRect();\n context.current.startPosition = {\n x: bounds.left,\n y: bounds.top\n };\n\n // notify interested parties\n emit('dragstart');\n };\n const onMoveEnd = () => {\n context.current.newPosition = null;\n\n // notify interested parties\n emit('dragend');\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-popup__header', draggable && 'draggable', className),\n ref: titleRef,\n draggable: draggable,\n onDragStart: onMoveStart,\n onDragEnd: onMoveEnd,\n ...rest,\n children: [draggable && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n ref: dragPreviewRef,\n class: \"bio-properties-panel-popup__drag-preview\"\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-popup__drag-handle\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(DragIcon, {})\n })]\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-popup__title\",\n children: title\n }), children, showCloseButton && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n title: closeButtonTooltip,\n class: \"bio-properties-panel-popup__close\",\n onClick: onClose,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CloseIcon, {})\n })]\n });\n}\nfunction Body(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-popup__body', className),\n ...rest,\n children: children\n });\n}\nfunction Footer(props) {\n const {\n children,\n className,\n ...rest\n } = props;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-popup__footer', className),\n ...rest,\n children: props.children\n });\n}\n\n// helpers //////////////////////\n\nfunction getPopupParent(node) {\n return node.closest('.bio-properties-panel-popup');\n}\nfunction cancel(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction getContainerNode(node) {\n if (typeof node === 'string') {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)(node);\n }\n return node;\n}\n\nconst FEEL_POPUP_WIDTH = 700;\nconst FEEL_POPUP_HEIGHT = 250;\n\n/**\r\n * FEEL popup component, built as a singleton. Emits lifecycle events as follows:\r\n * - `feelPopup.open` - fired before the popup is mounted\r\n * - `feelPopup.opened` - fired after the popup is mounted. Event context contains the DOM node of the popup\r\n * - `feelPopup.close` - fired before the popup is unmounted. Event context contains the DOM node of the popup\r\n * - `feelPopup.closed` - fired after the popup is unmounted\r\n */\nfunction FEELPopupRoot(props) {\n const {\n element,\n eventBus = {\n fire() {},\n on() {},\n off() {}\n },\n popupContainer,\n getPopupLinks = () => []\n } = props;\n const prevElement = usePrevious(element);\n const [popupConfig, setPopupConfig] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)({});\n const [open, setOpen] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const [source, setSource] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [sourceElement, setSourceElement] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const emit = (type, context) => {\n eventBus.fire('feelPopup.' + type, context);\n };\n const isOpen = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n return !!open;\n }, [open]);\n useUpdateEffect(() => {\n if (!open) {\n emit('closed');\n }\n }, [open]);\n const handleOpen = (entryId, config, _sourceElement) => {\n setSource(entryId);\n setPopupConfig(config);\n setOpen(true);\n setSourceElement(_sourceElement);\n emit('open');\n };\n const handleClose = (event = {}) => {\n const {\n id\n } = event;\n if (id && id !== source) {\n return;\n }\n setOpen(false);\n setSource(null);\n };\n const feelPopupContext = {\n open: handleOpen,\n close: handleClose,\n source\n };\n\n // close popup on element change, cf. https://github.com/bpmn-io/properties-panel/issues/270\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (element && prevElement && element !== prevElement) {\n handleClose();\n }\n }, [element]);\n\n // allow close and open via events\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const handlePopupOpen = context => {\n const {\n entryId,\n popupConfig,\n sourceElement\n } = context;\n handleOpen(entryId, popupConfig, sourceElement);\n };\n const handleIsOpen = () => {\n return isOpen();\n };\n eventBus.on('feelPopup._close', handleClose);\n eventBus.on('feelPopup._open', handlePopupOpen);\n eventBus.on('feelPopup._isOpen', handleIsOpen);\n return () => {\n eventBus.off('feelPopup._close', handleClose);\n eventBus.off('feelPopup._open', handleOpen);\n eventBus.off('feelPopup._isOpen', handleIsOpen);\n };\n }, [eventBus, isOpen]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(FeelPopupContext.Provider, {\n value: feelPopupContext,\n children: [open && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelPopupComponent, {\n onClose: handleClose,\n container: popupContainer,\n getLinks: getPopupLinks,\n sourceElement: sourceElement,\n emit: emit,\n ...popupConfig\n }), props.children]\n });\n}\nfunction FeelPopupComponent(props) {\n const {\n container,\n getLinks,\n id,\n hostLanguage,\n onInput,\n onClose,\n position,\n singleLine,\n sourceElement,\n title,\n tooltipContainer,\n type,\n value,\n variables,\n emit\n } = props;\n const editorRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const popupRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const isAutoCompletionOpen = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n const handleSetReturnFocus = () => {\n sourceElement && sourceElement.focus();\n };\n const onKeyDownCapture = event => {\n // we use capture here to make sure we handle the event before the editor does\n if (event.key === 'Escape') {\n isAutoCompletionOpen.current = autoCompletionOpen(event.target);\n }\n };\n const onKeyDown = event => {\n if (event.key === 'Escape') {\n // close popup only if auto completion is not open\n // we need to do check this because the editor is not\n // stop propagating the keydown event\n // cf. https://discuss.codemirror.net/t/how-can-i-replace-the-default-autocompletion-keymap-v6/3322/5\n if (!isAutoCompletionOpen.current) {\n onClose();\n isAutoCompletionOpen.current = false;\n }\n }\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n emit('opened', {\n domNode: popupRef.current\n });\n return () => emit('close', {\n domNode: popupRef.current\n });\n }, []);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n // Set focus on editor when popup is opened\n if (editorRef.current) {\n editorRef.current.focus();\n }\n }, [editorRef]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(Popup, {\n container: container,\n className: \"bio-properties-panel-feel-popup\",\n emit: emit,\n position: position,\n title: title,\n onClose: onClose\n\n // handle focus manually on deactivate\n ,\n returnFocus: false,\n closeOnEscape: false,\n delayInitialFocus: false,\n onPostDeactivate: handleSetReturnFocus,\n height: FEEL_POPUP_HEIGHT,\n width: FEEL_POPUP_WIDTH,\n ref: popupRef,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Popup.Title, {\n title: title,\n emit: emit,\n showCloseButton: true,\n closeButtonTooltip: \"Save and close\",\n onClose: onClose,\n draggable: true,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: getLinks(type).map((link, index) => {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"a\", {\n rel: \"noreferrer\",\n href: link.href,\n target: \"_blank\",\n class: \"bio-properties-panel-feel-popup__title-link\",\n children: [link.title, (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(LaunchIcon, {})]\n }, index);\n })\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Popup.Body, {\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n onKeyDownCapture: onKeyDownCapture,\n onKeyDown: onKeyDown,\n class: \"bio-properties-panel-feel-popup__body\",\n children: [type === 'feel' && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CodeEditor, {\n enableGutters: true,\n id: prefixId$8(id),\n name: id,\n onInput: onInput,\n value: value,\n variables: variables,\n ref: editorRef,\n tooltipContainer: tooltipContainer\n }), type === 'feelers' && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CodeEditor$1, {\n id: prefixId$8(id),\n contentAttributes: {\n 'aria-label': title\n },\n enableGutters: true,\n hostLanguage: hostLanguage,\n name: id,\n onInput: onInput,\n value: value,\n ref: editorRef,\n singleLine: singleLine,\n tooltipContainer: tooltipContainer\n })]\n })\n })]\n });\n}\n\n// helpers /////////////////\n\nfunction prefixId$8(id) {\n return `bio-properties-panel-${id}`;\n}\nfunction autoCompletionOpen(element) {\n return element.closest('.cm-editor').querySelector('.cm-tooltip-autocomplete');\n}\n\n/**\r\n * This hook behaves like useEffect, but does not trigger on the first render.\r\n *\r\n * @param {Function} effect\r\n * @param {Array} deps\r\n */\nfunction useUpdateEffect(effect, deps) {\n const isMounted = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}\n\nfunction ToggleSwitch(props) {\n const {\n id,\n label,\n onInput,\n value,\n switcherLabel,\n inline,\n onFocus,\n onBlur,\n inputRef,\n tooltip\n } = props;\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const handleInputCallback = async () => {\n onInput(!value);\n };\n const handleInput = e => {\n handleInputCallback();\n setLocalValue(e.target.value);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value);\n }, [value]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-toggle-switch', {\n inline\n }),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"label\", {\n class: \"bio-properties-panel-label\",\n for: prefixId$7(id),\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: tooltip,\n forId: id,\n element: props.element,\n children: label\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-field-wrapper\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"label\", {\n class: \"bio-properties-panel-toggle-switch__switcher\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", {\n ref: inputRef,\n id: prefixId$7(id),\n class: \"bio-properties-panel-input\",\n type: \"checkbox\",\n onFocus: onFocus,\n onBlur: onBlur,\n name: id,\n onInput: handleInput,\n checked: !!localValue\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n class: \"bio-properties-panel-toggle-switch__slider\"\n })]\n }), switcherLabel && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"p\", {\n class: \"bio-properties-panel-toggle-switch__label\",\n children: switcherLabel\n })]\n })]\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {String} props.label\r\n * @param {String} props.switcherLabel\r\n * @param {Boolean} props.inline\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string|import('preact').Component} props.tooltip\r\n */\nfunction ToggleSwitchEntry(props) {\n const {\n element,\n id,\n description,\n label,\n switcherLabel,\n inline,\n getValue,\n setValue,\n onFocus,\n onBlur,\n tooltip\n } = props;\n const value = getValue(element);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-entry bio-properties-panel-toggle-switch-entry\",\n \"data-entry-id\": id,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ToggleSwitch, {\n id: id,\n label: label,\n value: value,\n onInput: setValue,\n onFocus: onFocus,\n onBlur: onBlur,\n switcherLabel: switcherLabel,\n inline: inline,\n tooltip: tooltip,\n element: element\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\nfunction isEdited$8(node) {\n return node && !!node.checked;\n}\n\n// helpers /////////////////\n\nfunction prefixId$7(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction NumberField(props) {\n const {\n debounce,\n disabled,\n displayLabel = true,\n id,\n inputRef,\n label,\n max,\n min,\n onInput,\n step,\n value = '',\n onFocus,\n onBlur\n } = props;\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const handleInputCallback = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return debounce(target => {\n if (target.validity.valid) {\n onInput(target.value ? parseFloat(target.value) : undefined);\n }\n });\n }, [onInput, debounce]);\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value);\n }, [value]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-numberfield\",\n children: [displayLabel && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"label\", {\n for: prefixId$6(id),\n class: \"bio-properties-panel-label\",\n children: label\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", {\n id: prefixId$6(id),\n ref: inputRef,\n type: \"number\",\n name: id,\n spellCheck: \"false\",\n autoComplete: \"off\",\n disabled: disabled,\n class: \"bio-properties-panel-input\",\n max: max,\n min: min,\n onInput: handleInput,\n onFocus: onFocus,\n onBlur: onBlur,\n step: step,\n value: localValue\n })]\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Boolean} props.debounce\r\n * @param {String} props.description\r\n * @param {Boolean} props.disabled\r\n * @param {Object} props.element\r\n * @param {Function} props.getValue\r\n * @param {String} props.id\r\n * @param {String} props.label\r\n * @param {String} props.max\r\n * @param {String} props.min\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {String} props.step\r\n * @param {Function} props.validate\r\n */\nfunction NumberFieldEntry(props) {\n const {\n debounce,\n description,\n disabled,\n element,\n getValue,\n id,\n label,\n max,\n min,\n setValue,\n step,\n onFocus,\n onBlur,\n validate\n } = props;\n const globalError = useError(id);\n const [localError, setLocalError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n let value = getValue(element);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n const newValidationError = validate(value) || null;\n setLocalError(newValidationError);\n }\n }, [value, validate]);\n const onInput = newValue => {\n let newValidationError = null;\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n newValidationError = validate(newValue) || null;\n }\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n const error = globalError || localError;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-entry', error ? 'has-error' : ''),\n \"data-entry-id\": id,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(NumberField, {\n debounce: debounce,\n disabled: disabled,\n id: id,\n label: label,\n onFocus: onFocus,\n onBlur: onBlur,\n onInput: onInput,\n max: max,\n min: min,\n step: step,\n value: value\n }, element), error && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-error\",\n children: error\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\nfunction isEdited$7(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId$6(id) {\n return `bio-properties-panel-${id}`;\n}\n\nconst noop$2 = () => {};\nfunction FeelTextfieldComponent(props) {\n const {\n debounce,\n id,\n element,\n label,\n hostLanguage,\n onInput,\n onError,\n placeholder,\n feel,\n value = '',\n disabled = false,\n variables,\n singleLine,\n tooltipContainer,\n OptionalComponent = OptionalFeelInput,\n tooltip\n } = props;\n const [localValue, _setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const editorRef = useShowEntryEvent(id);\n const containerRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const feelActive = (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isString)(localValue) && localValue.startsWith('=') || feel === 'required';\n const feelOnlyValue = (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isString)(localValue) && localValue.startsWith('=') ? localValue.substring(1) : localValue;\n const [focus, _setFocus] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(undefined);\n const {\n open: openPopup,\n source: popupSource\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(FeelPopupContext);\n const popuOpen = popupSource === id;\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n _setFocus(position + offset);\n };\n const handleInputCallback = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return debounce(newValue => {\n onInput(newValue);\n });\n }, [onInput, debounce]);\n const setLocalValue = newValue => {\n _setLocalValue(newValue);\n if (typeof newValue === 'undefined' || newValue === '' || newValue === '=') {\n handleInputCallback(undefined);\n } else {\n handleInputCallback(newValue);\n }\n };\n const handleFeelToggle = useStaticCallback(() => {\n if (feel === 'required') {\n return;\n }\n if (!feelActive) {\n setLocalValue('=' + localValue);\n } else {\n setLocalValue(feelOnlyValue);\n }\n });\n const handleLocalInput = newValue => {\n if (feelActive) {\n newValue = '=' + newValue;\n }\n if (newValue === localValue) {\n return;\n }\n setLocalValue(newValue);\n if (!feelActive && (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isString)(newValue) && newValue.startsWith('=')) {\n // focus is behind `=` sign that will be removed\n setFocus(-1);\n }\n };\n const handleLint = useStaticCallback((lint = []) => {\n const syntaxError = lint.some(report => report.type === 'Syntax Error');\n if (syntaxError) {\n onError('Unparsable FEEL expression.');\n } else {\n onError(undefined);\n }\n });\n const handlePopupOpen = (type = 'feel') => {\n const popupOptions = {\n id,\n hostLanguage,\n onInput: handleLocalInput,\n position: calculatePopupPosition(containerRef.current),\n singleLine,\n title: getPopupTitle(element, label),\n tooltipContainer,\n type,\n value: feelOnlyValue,\n variables\n };\n openPopup(id, popupOptions, editorRef.current);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [focus]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n\n // External value change removed content => keep FEEL configuration\n if (!value) {\n setLocalValue(feelActive ? '=' : '');\n return;\n }\n setLocalValue(value);\n }, [value]);\n\n // copy-paste integration\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const copyHandler = event => {\n if (!feelActive) {\n return;\n }\n event.clipboardData.setData('application/FEEL', event.clipboardData.getData('text'));\n };\n const pasteHandler = event => {\n if (feelActive || popuOpen) {\n return;\n }\n const data = event.clipboardData.getData('application/FEEL');\n if (data) {\n setTimeout(() => {\n handleFeelToggle();\n setFocus();\n });\n }\n };\n containerRef.current.addEventListener('copy', copyHandler);\n containerRef.current.addEventListener('cut', copyHandler);\n containerRef.current.addEventListener('paste', pasteHandler);\n return () => {\n containerRef.current.removeEventListener('copy', copyHandler);\n containerRef.current.removeEventListener('cut', copyHandler);\n containerRef.current.removeEventListener('paste', pasteHandler);\n };\n }, [containerRef, feelActive, handleFeelToggle, setFocus]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-feel-entry', {\n 'feel-active': feelActive\n }),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"label\", {\n for: prefixId$5(id),\n class: \"bio-properties-panel-label\",\n onClick: () => setFocus(),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: tooltip,\n forId: id,\n element: props.element,\n children: label\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelIcon, {\n label: label,\n feel: feel,\n onClick: handleFeelToggle,\n active: feelActive\n })]\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-feel-container\",\n ref: containerRef,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelIndicator, {\n active: feelActive,\n disabled: feel !== 'optional' || disabled,\n onClick: handleFeelToggle\n }), feelActive ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CodeEditor, {\n name: id,\n onInput: handleLocalInput,\n contentAttributes: {\n 'id': prefixId$5(id),\n 'aria-label': label\n },\n disabled: disabled,\n popupOpen: popuOpen,\n onFeelToggle: () => {\n handleFeelToggle();\n setFocus(true);\n },\n onLint: handleLint,\n onPopupOpen: handlePopupOpen,\n placeholder: placeholder,\n value: feelOnlyValue,\n variables: variables,\n ref: editorRef,\n tooltipContainer: tooltipContainer\n }) : (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(OptionalComponent, {\n ...props,\n popupOpen: popuOpen,\n onInput: handleLocalInput,\n contentAttributes: {\n 'id': prefixId$5(id),\n 'aria-label': label\n },\n value: localValue,\n ref: editorRef,\n onPopupOpen: handlePopupOpen,\n containerRef: containerRef\n })]\n })]\n });\n}\nconst FeelTextfield = withAutoClosePopup(FeelTextfieldComponent);\nconst OptionalFeelInput = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n const inputRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: position => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n input.focus();\n if (typeof position === 'number') {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n }\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", {\n id: prefixId$5(id),\n type: \"text\",\n ref: inputRef,\n name: id,\n spellCheck: \"false\",\n autoComplete: \"off\",\n disabled: disabled,\n class: \"bio-properties-panel-input\",\n onInput: e => onInput(e.target.value),\n onFocus: onFocus,\n onBlur: onBlur,\n placeholder: placeholder,\n value: value || ''\n });\n});\nconst OptionalFeelNumberField = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => {\n const {\n id,\n debounce,\n disabled,\n onInput,\n value,\n min,\n max,\n step,\n onFocus,\n onBlur\n } = props;\n const inputRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: position => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n input.focus();\n if (typeof position === 'number' && position !== Infinity) {\n if (position > value.length) {\n position = value.length;\n }\n input.setSelectionRange(position, position);\n }\n }\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(NumberField, {\n id: id,\n debounce: debounce,\n disabled: disabled,\n displayLabel: false,\n inputRef: inputRef,\n max: max,\n min: min,\n onInput: onInput,\n step: step,\n value: value,\n onFocus: onFocus,\n onBlur: onBlur\n });\n});\nconst OptionalFeelTextArea = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur,\n placeholder\n } = props;\n const inputRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n input.focus();\n input.setSelectionRange(0, 0);\n }\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"textarea\", {\n id: prefixId$5(id),\n type: \"text\",\n ref: inputRef,\n name: id,\n spellCheck: \"false\",\n autoComplete: \"off\",\n disabled: disabled,\n class: \"bio-properties-panel-input\",\n onInput: e => onInput(e.target.value),\n onFocus: onFocus,\n onBlur: onBlur,\n placeholder: placeholder,\n value: value || '',\n \"data-gramm\": \"false\"\n });\n});\nconst OptionalFeelToggleSwitch = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => {\n const {\n id,\n onInput,\n value,\n onFocus,\n onBlur,\n switcherLabel\n } = props;\n const inputRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n input.focus();\n }\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ToggleSwitch, {\n id: id,\n value: value,\n inputRef: inputRef,\n onInput: onInput,\n onFocus: onFocus,\n onBlur: onBlur,\n switcherLabel: switcherLabel\n });\n});\nconst OptionalFeelCheckbox = (0,_preact_compat__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => {\n const {\n id,\n disabled,\n onInput,\n value,\n onFocus,\n onBlur\n } = props;\n const inputRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const handleChange = ({\n target\n }) => {\n onInput(target.checked);\n };\n\n // To be consistent with the FEEL editor, set focus at start of input\n // this ensures clean editing experience when switching with the keyboard\n ref.current = {\n focus: () => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n input.focus();\n }\n };\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", {\n ref: inputRef,\n id: prefixId$5(id),\n name: id,\n onFocus: onFocus,\n onBlur: onBlur,\n type: \"checkbox\",\n class: \"bio-properties-panel-input\",\n onChange: handleChange,\n checked: value,\n disabled: disabled\n });\n});\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string} [props.placeholder]\r\n * @param {string|import('preact').Component} props.tooltip\r\n */\nfunction FeelEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n feel,\n label,\n getValue,\n setValue,\n tooltipContainer,\n hostLanguage,\n singleLine,\n validate,\n show = noop$2,\n example,\n variables,\n onFocus,\n onBlur,\n placeholder,\n tooltip\n } = props;\n const [validationError, setValidationError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [localError, setLocalError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n let value = getValue(element);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n const newValidationError = validate(value) || null;\n setValidationError(newValidationError);\n }\n }, [value, validate]);\n const onInput = useStaticCallback(newValue => {\n let newValidationError = null;\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n setValidationError(newValidationError);\n });\n const onError = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(err => {\n setLocalError(err);\n }, []);\n const temporaryError = useError(id);\n const error = temporaryError || localError || validationError;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()(props.class, 'bio-properties-panel-entry', error ? 'has-error' : ''),\n \"data-entry-id\": id,\n children: [(0,_preact__WEBPACK_IMPORTED_MODULE_3__.createElement)(FeelTextfield, {\n ...props,\n debounce: debounce,\n disabled: disabled,\n feel: feel,\n id: id,\n key: element,\n label: label,\n onInput: onInput,\n onError: onError,\n onFocus: onFocus,\n onBlur: onBlur,\n placeholder: placeholder,\n example: example,\n hostLanguage: hostLanguage,\n singleLine: singleLine,\n show: show,\n value: value,\n variables: variables,\n tooltipContainer: tooltipContainer,\n OptionalComponent: props.OptionalComponent,\n tooltip: tooltip\n }), error && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-error\",\n children: error\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {String} props.max\r\n * @param {String} props.min\r\n * @param {String} props.step\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\nfunction FeelNumberEntry(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelEntry, {\n class: \"bio-properties-panel-feel-number\",\n OptionalComponent: OptionalFeelNumberField,\n ...props\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string} [props.placeholder]\r\n */\nfunction FeelTextAreaEntry(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelEntry, {\n class: \"bio-properties-panel-feel-textarea\",\n OptionalComponent: OptionalFeelTextArea,\n ...props\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\nfunction FeelToggleSwitchEntry(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelEntry, {\n class: \"bio-properties-panel-feel-toggle-switch\",\n OptionalComponent: OptionalFeelToggleSwitch,\n ...props\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\nfunction FeelCheckboxEntry(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelEntry, {\n class: \"bio-properties-panel-feel-checkbox\",\n OptionalComponent: OptionalFeelCheckbox,\n ...props\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {String} props.hostLanguage\r\n * @param {Boolean} props.singleLine\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {Boolean} props.feel\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n * @param {Function} props.example\r\n * @param {Function} props.variables\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n */\nfunction FeelTemplatingEntry(props) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FeelEntry, {\n class: \"bio-properties-panel-feel-templating\",\n OptionalComponent: CodeEditor$1,\n ...props\n });\n}\nfunction isEdited$6(node) {\n if (!node) {\n return false;\n }\n if (node.type === 'checkbox') {\n return !!node.checked || node.classList.contains('edited');\n }\n return !!node.value || node.classList.contains('edited');\n}\n\n// helpers /////////////////\n\nfunction prefixId$5(id) {\n return `bio-properties-panel-${id}`;\n}\nfunction calculatePopupPosition(element) {\n const {\n top,\n left\n } = element.getBoundingClientRect();\n return {\n left: left - FEEL_POPUP_WIDTH - 20,\n top: top\n };\n}\n\n// todo(pinussilvestrus): make this configurable in the future\nfunction getPopupTitle(element, label) {\n let popupTitle = '';\n if (element && element.type) {\n popupTitle = `${element.type} / `;\n }\n return `${popupTitle}${label}`;\n}\nfunction withAutoClosePopup(Component) {\n return function (props) {\n const {\n id\n } = props;\n const {\n close\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(FeelPopupContext);\n const closePopup = useStaticCallback(close);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n return () => {\n closePopup({\n id\n });\n };\n }, []);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Component, {\n ...props\n });\n };\n}\n\nconst DEFAULT_LAYOUT = {};\nconst DEFAULT_DESCRIPTION = {};\nconst DEFAULT_TOOLTIP = {};\n\n/**\r\n * @typedef { {\r\n * component: import('preact').Component,\r\n * id: String,\r\n * isEdited?: Function\r\n * } } EntryDefinition\r\n *\r\n * @typedef { {\r\n * autoFocusEntry: String,\r\n * autoOpen?: Boolean,\r\n * entries: Array,\r\n * id: String,\r\n * label: String,\r\n * remove: (event: MouseEvent) => void\r\n * } } ListItemDefinition\r\n *\r\n * @typedef { {\r\n * add: (event: MouseEvent) => void,\r\n * component: import('preact').Component,\r\n * element: Object,\r\n * id: String,\r\n * items: Array,\r\n * label: String,\r\n * shouldOpen?: Boolean\r\n * } } ListGroupDefinition\r\n *\r\n * @typedef { {\r\n * component?: import('preact').Component,\r\n * entries: Array,\r\n * id: String,\r\n * label: String,\r\n * shouldOpen?: Boolean\r\n * } } GroupDefinition\r\n *\r\n * @typedef { {\r\n * [id: String]: GetDescriptionFunction\r\n * } } DescriptionConfig\r\n *\r\n * @typedef { {\r\n * [id: String]: GetTooltipFunction\r\n * } } TooltipConfig\r\n *\r\n * @callback { {\r\n * @param {string} id\r\n * @param {Object} element\r\n * @returns {string}\r\n * } } GetDescriptionFunction\r\n *\r\n * @callback { {\r\n * @param {string} id\r\n * @param {Object} element\r\n * @returns {string}\r\n * } } GetTooltipFunction\r\n *\r\n * @typedef { {\r\n * getEmpty: (element: object) => import('./components/Placeholder').PlaceholderDefinition,\r\n * getMultiple: (element: Object) => import('./components/Placeholder').PlaceholderDefinition\r\n * } } PlaceholderProvider\r\n *\r\n */\n\n/**\r\n * A basic properties panel component. Describes *how* content will be rendered, accepts\r\n * data from implementor to describe *what* will be rendered.\r\n *\r\n * @param {Object} props\r\n * @param {Object|Array} props.element\r\n * @param {import('./components/Header').HeaderProvider} props.headerProvider\r\n * @param {PlaceholderProvider} [props.placeholderProvider]\r\n * @param {Array} props.groups\r\n * @param {Object} [props.layoutConfig]\r\n * @param {Function} [props.layoutChanged]\r\n * @param {DescriptionConfig} [props.descriptionConfig]\r\n * @param {Function} [props.descriptionLoaded]\r\n * @param {TooltipConfig} [props.tooltipConfig]\r\n * @param {Function} [props.tooltipLoaded]\r\n * @param {HTMLElement} [props.feelPopupContainer]\r\n * @param {Function} [props.getFeelPopupLinks]\r\n * @param {Object} [props.eventBus]\r\n */\nfunction PropertiesPanel(props) {\n const {\n element,\n headerProvider,\n placeholderProvider,\n groups,\n layoutConfig,\n layoutChanged,\n descriptionConfig,\n descriptionLoaded,\n tooltipConfig,\n tooltipLoaded,\n feelPopupContainer,\n getFeelPopupLinks,\n eventBus\n } = props;\n\n // set-up layout context\n const [layout, setLayout] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(createLayout(layoutConfig));\n\n // react to external changes in the layout config\n useUpdateLayoutEffect(() => {\n const newLayout = createLayout(layoutConfig);\n setLayout(newLayout);\n }, [layoutConfig]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (typeof layoutChanged === 'function') {\n layoutChanged(layout);\n }\n }, [layout, layoutChanged]);\n const getLayoutForKey = (key, defaultValue) => {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.get)(layout, key, defaultValue);\n };\n const setLayoutForKey = (key, config) => {\n const newLayout = (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.assign)({}, layout);\n (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.set)(newLayout, key, config);\n setLayout(newLayout);\n };\n const layoutContext = {\n layout,\n setLayout,\n getLayoutForKey,\n setLayoutForKey\n };\n\n // set-up description context\n const description = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => createDescriptionContext(descriptionConfig), [descriptionConfig]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (typeof descriptionLoaded === 'function') {\n descriptionLoaded(description);\n }\n }, [description, descriptionLoaded]);\n const getDescriptionForId = (id, element) => {\n return description[id] && description[id](element);\n };\n const descriptionContext = {\n description,\n getDescriptionForId\n };\n\n // set-up tooltip context\n const tooltip = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => createTooltipContext(tooltipConfig), [tooltipConfig]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (typeof tooltipLoaded === 'function') {\n tooltipLoaded(tooltip);\n }\n }, [tooltip, tooltipLoaded]);\n const getTooltipForId = (id, element) => {\n return tooltip[id] && tooltip[id](element);\n };\n const tooltipContext = {\n tooltip,\n getTooltipForId\n };\n const [errors, setErrors] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)({});\n const onSetErrors = ({\n errors\n }) => setErrors(errors);\n useEvent('propertiesPanel.setErrors', onSetErrors, eventBus);\n const errorsContext = {\n errors\n };\n const eventContext = {\n eventBus\n };\n const propertiesPanelContext = {\n element\n };\n\n // empty state\n if (placeholderProvider && !element) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Placeholder, {\n ...placeholderProvider.getEmpty()\n });\n }\n\n // multiple state\n if (placeholderProvider && (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isArray)(element)) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Placeholder, {\n ...placeholderProvider.getMultiple()\n });\n }\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(LayoutContext.Provider, {\n value: propertiesPanelContext,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ErrorsContext.Provider, {\n value: errorsContext,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(DescriptionContext.Provider, {\n value: descriptionContext,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipContext.Provider, {\n value: tooltipContext,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(LayoutContext.Provider, {\n value: layoutContext,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(EventContext.Provider, {\n value: eventContext,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(FEELPopupRoot, {\n element: element,\n eventBus: eventBus,\n popupContainer: feelPopupContainer,\n getPopupLinks: getFeelPopupLinks,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Header, {\n element: element,\n headerProvider: headerProvider\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-scroll-container\",\n children: groups.map(group => {\n const {\n component: Component = Group,\n id\n } = group;\n return (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createElement)(Component, {\n ...group,\n key: id,\n element: element\n });\n })\n })]\n })\n })\n })\n })\n })\n })\n })\n });\n}\n\n// helpers //////////////////\n\nfunction createLayout(overrides = {}, defaults = DEFAULT_LAYOUT) {\n return {\n ...defaults,\n ...overrides\n };\n}\nfunction createDescriptionContext(overrides = {}) {\n return {\n ...DEFAULT_DESCRIPTION,\n ...overrides\n };\n}\nfunction createTooltipContext(overrides = {}) {\n return {\n ...DEFAULT_TOOLTIP,\n ...overrides\n };\n}\n\n// hooks //////////////////\n\n/**\r\n * This hook behaves like useLayoutEffect, but does not trigger on the first render.\r\n *\r\n * @param {Function} effect\r\n * @param {Array} deps\r\n */\nfunction useUpdateLayoutEffect(effect, deps) {\n const isMounted = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(() => {\n if (isMounted.current) {\n return effect();\n } else {\n isMounted.current = true;\n }\n }, deps);\n}\n\nfunction DropdownButton(props) {\n const {\n class: className,\n children,\n menuItems = []\n } = props;\n const dropdownRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const menuRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const [open, setOpen] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const close = () => setOpen(false);\n function onDropdownToggle(event) {\n if (menuRef.current && menuRef.current.contains(event.target)) {\n return;\n }\n event.stopPropagation();\n setOpen(open => !open);\n }\n function onActionClick(event, action) {\n event.stopPropagation();\n close();\n action();\n }\n useGlobalClick([dropdownRef.current], () => close());\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-dropdown-button', {\n open\n }, className),\n onClick: onDropdownToggle,\n ref: dropdownRef,\n children: [children, (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-dropdown-button__menu\",\n ref: menuRef,\n children: menuItems.map((item, index) => (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(MenuItem, {\n onClick: onActionClick,\n item: item\n }, index))\n })]\n });\n}\nfunction MenuItem({\n item,\n onClick\n}) {\n if (item.separator) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--separator\"\n });\n }\n if (item.action) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n class: \"bio-properties-panel-dropdown-button__menu-item bio-properties-panel-dropdown-button__menu-item--actionable\",\n onClick: event => onClick(event, item.action),\n children: item.entry\n });\n }\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-dropdown-button__menu-item\",\n children: item.entry\n });\n}\n\n/**\r\n *\r\n * @param {Array} ignoredElements\r\n * @param {Function} callback\r\n */\nfunction useGlobalClick(ignoredElements, callback) {\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n /**\r\n * @param {MouseEvent} event\r\n */\n function listener(event) {\n if (ignoredElements.some(element => element && element.contains(event.target))) {\n return;\n }\n callback();\n }\n document.addEventListener('click', listener, {\n capture: true\n });\n return () => document.removeEventListener('click', listener, {\n capture: true\n });\n }, [...ignoredElements, callback]);\n}\n\nfunction HeaderButton(props) {\n const {\n children = null,\n class: classname,\n onClick = () => {},\n ...otherProps\n } = props;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n ...otherProps,\n onClick: onClick,\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-group-header-button', classname),\n children: children\n });\n}\n\n/**\r\n * @typedef { {\r\n * [key: string]: string;\r\n * } } TranslateReplacements\r\n */\n\n/**\r\n * A simple translation stub to be used for multi-language support.\r\n * Can be easily replaced with a more sophisticated solution.\r\n *\r\n * @param {string} template to interpolate\r\n * @param {TranslateReplacements} [replacements] a map with substitutes\r\n *\r\n * @return {string} the translated string\r\n */\nfunction translateFallback(template, replacements) {\n replacements = replacements || {};\n return template.replace(/{([^}]+)}/g, function (_, key) {\n return replacements[key] || '{' + key + '}';\n });\n}\n\nfunction CollapsibleEntry(props) {\n const {\n element,\n entries = [],\n id,\n label,\n open: shouldOpen,\n remove,\n translate = translateFallback\n } = props;\n const [open, setOpen] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(shouldOpen);\n const toggleOpen = () => setOpen(!open);\n const {\n onShow\n } = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(LayoutContext);\n const propertiesPanelContext = {\n ...(0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(LayoutContext),\n onShow: (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setOpen(true);\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(onShow)) {\n onShow();\n }\n }, [onShow, setOpen])\n };\n const placeholderLabel = translate('');\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n \"data-entry-id\": id,\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-collapsible-entry', open ? 'open' : ''),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-collapsible-entry-header\",\n onClick: toggleOpen,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: label || placeholderLabel,\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-collapsible-entry-header-title', !label && 'empty'),\n children: label || placeholderLabel\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: translate('Toggle list item'),\n class: \"bio-properties-panel-arrow bio-properties-panel-collapsible-entry-arrow\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ArrowIcon, {\n class: open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right'\n })\n }), remove ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: translate('Delete item'),\n class: \"bio-properties-panel-remove-entry\",\n onClick: remove,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(DeleteIcon, {})\n }) : null]\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-collapsible-entry-entries', open ? 'open' : ''),\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(LayoutContext.Provider, {\n value: propertiesPanelContext,\n children: entries.map(entry => {\n const {\n component: Component,\n id\n } = entry;\n return (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createElement)(Component, {\n ...entry,\n element: element,\n key: id\n });\n })\n })\n })]\n });\n}\n\nfunction ListItem(props) {\n const {\n autoFocusEntry,\n autoOpen,\n translate = translateFallback\n } = props;\n\n // focus specified entry on auto open\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (autoOpen && autoFocusEntry) {\n const entry = (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)(`[data-entry-id=\"${autoFocusEntry}\"]`);\n const focusableInput = (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)('.bio-properties-panel-input', entry);\n if (focusableInput) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(focusableInput.select)) {\n focusableInput.select();\n } else if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(focusableInput.focus)) {\n focusableInput.focus();\n }\n focusableInput.scrollIntoView();\n }\n }\n }, [autoOpen, autoFocusEntry]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-list-item\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CollapsibleEntry, {\n ...props,\n open: autoOpen,\n translate: translate\n })\n });\n}\n\nconst noop$1 = () => {};\n\n/**\r\n * @param {import('../PropertiesPanel').ListGroupDefinition} props\r\n */\nfunction ListGroup(props) {\n const {\n add,\n element,\n id,\n items,\n label,\n shouldOpen = false,\n translate = translateFallback\n } = props;\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (props.shouldSort != undefined) {\n console.warn('the property \\'shouldSort\\' is no longer supported');\n }\n }, [props.shouldSort]);\n const groupRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const [open, setOpen] = useLayoutState(['groups', id, 'open'], shouldOpen);\n const [sticky, setSticky] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const onShow = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setOpen(true), [setOpen]);\n const [localItems, setLocalItems] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n // Flag to mark that add button was clicked in the last render cycle\n const [addTriggered, setAddTriggered] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const prevElement = usePrevious(element);\n const toggleOpen = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setOpen(!open), [open]);\n const openItemIds = element === prevElement && open && addTriggered ? getNewItemIds(items, localItems) : [];\n\n // reset local state after items changed\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setLocalItems(items);\n setAddTriggered(false);\n }, [items]);\n\n // set css class when group is sticky to top\n useStickyIntersectionObserver(groupRef, 'div.bio-properties-panel-scroll-container', setSticky);\n const hasItems = !!items.length;\n const propertiesPanelContext = {\n ...(0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useContext)(LayoutContext),\n onShow\n };\n const handleAddClick = e => {\n setAddTriggered(true);\n setOpen(true);\n add(e);\n };\n const allErrors = useErrors();\n const hasError = items.some(item => {\n if (allErrors[item.id]) {\n return true;\n }\n if (!item.entries) {\n return;\n }\n\n // also check if the error is nested, e.g. for name-value entries\n return item.entries.some(entry => allErrors[entry.id]);\n });\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-group\",\n \"data-group-id\": 'group-' + id,\n ref: groupRef,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-group-header', hasItems ? '' : 'empty', hasItems && open ? 'open' : '', sticky && open ? 'sticky' : ''),\n onClick: hasItems ? toggleOpen : noop$1,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: props.tooltip ? null : label,\n \"data-title\": label,\n class: \"bio-properties-panel-group-header-title\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: props.tooltip,\n forId: 'group-' + id,\n element: element,\n parent: groupRef,\n children: label\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-group-header-buttons\",\n children: [add ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"button\", {\n type: \"button\",\n title: translate('Create new list item'),\n class: \"bio-properties-panel-group-header-button bio-properties-panel-add-entry\",\n onClick: handleAddClick,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CreateIcon, {}), !hasItems ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n class: \"bio-properties-panel-add-entry-label\",\n children: translate('Create')\n }) : null]\n }) : null, hasItems ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: translate(`List contains {numOfItems} item${items.length != 1 ? 's' : ''}`, {\n numOfItems: items.length\n }),\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-list-badge', hasError ? 'bio-properties-panel-list-badge--error' : ''),\n children: items.length\n }) : null, hasItems ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: translate('Toggle section'),\n class: \"bio-properties-panel-group-header-button bio-properties-panel-arrow\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ArrowIcon, {\n class: open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right'\n })\n }) : null]\n })]\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-list', open && hasItems ? 'open' : ''),\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(LayoutContext.Provider, {\n value: propertiesPanelContext,\n children: items.map((item, index) => {\n if (!item) {\n return;\n }\n const {\n id\n } = item;\n\n // if item was added, open it\n // existing items will not be affected as autoOpen\n // is only applied on first render\n const autoOpen = openItemIds.includes(item.id);\n return (0,_preact__WEBPACK_IMPORTED_MODULE_3__.createElement)(ListItem, {\n ...item,\n autoOpen: autoOpen,\n element: element,\n index: index,\n key: id,\n translate: translate\n });\n })\n })\n })]\n });\n}\nfunction getNewItemIds(newItems, oldItems) {\n const newIds = newItems.map(item => item.id);\n const oldIds = oldItems.map(item => item.id);\n return newIds.filter(itemId => !oldIds.includes(itemId));\n}\n\nfunction Checkbox(props) {\n const {\n id,\n label,\n onChange,\n disabled,\n value = false,\n onFocus,\n onBlur,\n tooltip\n } = props;\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const handleChangeCallback = ({\n target\n }) => {\n onChange(target.checked);\n };\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value);\n }, [value]);\n const ref = useShowEntryEvent(id);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-checkbox\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", {\n ref: ref,\n id: prefixId$4(id),\n name: id,\n onFocus: onFocus,\n onBlur: onBlur,\n type: \"checkbox\",\n class: \"bio-properties-panel-input\",\n onChange: handleChange,\n checked: localValue,\n disabled: disabled\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"label\", {\n for: prefixId$4(id),\n class: \"bio-properties-panel-label\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: tooltip,\n forId: id,\n element: props.element,\n children: label\n })\n })]\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string|import('preact').Component} props.tooltip\r\n * @param {boolean} [props.disabled]\r\n */\nfunction CheckboxEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n const value = getValue(element);\n const error = useError(id);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-entry bio-properties-panel-checkbox-entry\",\n \"data-entry-id\": id,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Checkbox, {\n disabled: disabled,\n id: id,\n label: label,\n onChange: setValue,\n onFocus: onFocus,\n onBlur: onBlur,\n value: value,\n tooltip: tooltip,\n element: element\n }, element), error && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-error\",\n children: error\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\nfunction isEdited$5(node) {\n return node && !!node.checked;\n}\n\n// helpers /////////////////\n\nfunction prefixId$4(id) {\n return `bio-properties-panel-${id}`;\n}\n\nconst noop = () => {};\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.tooltipContainer\r\n * @param {Function} props.validate\r\n * @param {Function} props.show\r\n */\nfunction TemplatingEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n tooltipContainer,\n validate,\n show = noop\n } = props;\n const [validationError, setValidationError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [localError, setLocalError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n let value = getValue(element);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n const newValidationError = validate(value) || null;\n setValidationError(newValidationError);\n }\n }, [value, validate]);\n const onInput = useStaticCallback(newValue => {\n let newValidationError = null;\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n newValidationError = validate(newValue) || null;\n }\n\n // don't create multiple commandStack entries for the same value\n if (newValue !== value) {\n setValue(newValue, newValidationError);\n }\n setValidationError(newValidationError);\n });\n const onError = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useCallback)(err => {\n setLocalError(err);\n }, []);\n const temporaryError = useError(id);\n const error = localError || temporaryError || validationError;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-entry', error ? 'has-error' : ''),\n \"data-entry-id\": id,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Templating, {\n debounce: debounce,\n disabled: disabled,\n id: id,\n label: label,\n onInput: onInput,\n onError: onError,\n show: show,\n value: value,\n tooltipContainer: tooltipContainer\n }, element), error && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-error\",\n children: error\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\nfunction Templating(props) {\n const {\n debounce,\n id,\n label,\n onInput,\n onError,\n value = '',\n disabled = false,\n tooltipContainer\n } = props;\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const editorRef = useShowEntryEvent(id);\n const containerRef = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const [focus, _setFocus] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(undefined);\n const setFocus = (offset = 0) => {\n const hasFocus = containerRef.current.contains(document.activeElement);\n\n // Keep caret position if it is already focused, otherwise focus at the end\n const position = hasFocus ? document.activeElement.selectionStart : Infinity;\n _setFocus(position + offset);\n };\n const handleInputCallback = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return debounce(newValue => onInput(newValue.length ? newValue : undefined));\n }, [onInput, debounce]);\n const handleInput = newValue => {\n handleInputCallback(newValue);\n setLocalValue(newValue);\n };\n const handleLint = useStaticCallback(lint => {\n const errors = lint && lint.length && lint.filter(e => e.severity === 'error') || [];\n if (!errors.length) {\n onError(undefined);\n return;\n }\n const error = lint[0];\n const message = `${error.source}: ${error.message}`;\n onError(message);\n });\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (typeof focus !== 'undefined') {\n editorRef.current.focus(focus);\n _setFocus(undefined);\n }\n }, [focus]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value ? value : '');\n }, [value]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-feelers\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"label\", {\n id: prefixIdLabel(id),\n class: \"bio-properties-panel-label\",\n onClick: () => setFocus(),\n children: label\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-feelers-input\",\n ref: containerRef,\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CodeEditor$1, {\n name: id,\n onInput: handleInput,\n contentAttributes: {\n 'aria-labelledby': prefixIdLabel(id)\n },\n disabled: disabled,\n onLint: handleLint,\n value: localValue,\n ref: editorRef,\n tooltipContainer: tooltipContainer\n })\n })]\n });\n}\nfunction isEdited$4(node) {\n return node && (!!node.value || node.classList.contains('edited'));\n}\n\n// helpers /////////////////\n\nfunction prefixIdLabel(id) {\n return `bio-properties-panel-feelers-${id}-label`;\n}\n\nfunction List(props) {\n const {\n id,\n element,\n items = [],\n component,\n label = '',\n open: shouldOpen,\n onAdd,\n onRemove,\n autoFocusEntry,\n ...restProps\n } = props;\n const [open, setOpen] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(!!shouldOpen);\n const hasItems = !!items.length;\n const toggleOpen = () => hasItems && setOpen(!open);\n const elementChanged = usePrevious(element) !== element;\n const newItems = useNewItems(items, elementChanged);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (open && !hasItems) {\n setOpen(false);\n }\n }, [open, hasItems]);\n\n /**\r\n * @param {MouseEvent} event\r\n */\n function addItem(event) {\n event.stopPropagation();\n onAdd();\n if (!open) {\n setOpen(true);\n }\n }\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n \"data-entry-id\": id,\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-entry', 'bio-properties-panel-list-entry', hasItems ? '' : 'empty', open ? 'open' : ''),\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-list-entry-header\",\n onClick: toggleOpen,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: label,\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-list-entry-header-title', open && 'open'),\n children: label\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-list-entry-header-buttons\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"button\", {\n type: \"button\",\n title: \"Create new list item\",\n onClick: addItem,\n class: \"bio-properties-panel-add-entry\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CreateIcon, {}), !hasItems ? (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n class: \"bio-properties-panel-add-entry-label\",\n children: \"Create\"\n }) : null]\n }), hasItems && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n title: `List contains ${items.length} item${items.length != 1 ? 's' : ''}`,\n class: \"bio-properties-panel-list-badge\",\n children: items.length\n }), hasItems && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: \"Toggle list item\",\n class: \"bio-properties-panel-arrow\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ArrowIcon, {\n class: open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right'\n })\n })]\n })]\n }), hasItems && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ItemsList, {\n ...restProps,\n autoFocusEntry: autoFocusEntry,\n component: component,\n element: element,\n id: id,\n items: items,\n newItems: newItems,\n onRemove: onRemove,\n open: open\n })]\n });\n}\nfunction ItemsList(props) {\n const {\n autoFocusEntry,\n component: Component,\n element,\n id,\n items,\n newItems,\n onRemove,\n open,\n ...restProps\n } = props;\n const getKey = useKeyFactory();\n const newItem = newItems[0];\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (newItem && autoFocusEntry) {\n // (0) select the parent entry (containing all list items)\n const entry = (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)(`[data-entry-id=\"${id}\"]`);\n\n // (1) select the first input or a custom element to be focussed\n const selector = typeof autoFocusEntry === 'boolean' ? '.bio-properties-panel-input' : autoFocusEntry;\n const focusableInput = (0,min_dom__WEBPACK_IMPORTED_MODULE_8__.query)(selector, entry);\n\n // (2) set focus\n if (focusableInput) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(focusableInput.select)) {\n focusableInput.select();\n } else if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(focusableInput.focus)) {\n focusableInput.focus();\n }\n }\n }\n }, [newItem, autoFocusEntry, id]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"ol\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-list-entry-items', open ? 'open' : ''),\n children: items.map((item, index) => {\n const key = getKey(item);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"li\", {\n class: \"bio-properties-panel-list-entry-item\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Component, {\n ...restProps,\n element: element,\n id: id,\n index: index,\n item: item,\n open: item === newItem\n }), onRemove && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"button\", {\n type: \"button\",\n title: \"Delete item\",\n class: \"bio-properties-panel-remove-entry bio-properties-panel-remove-list-entry\",\n onClick: () => onRemove && onRemove(item),\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(DeleteIcon, {})\n })]\n }, key);\n })\n });\n}\nfunction useNewItems(items = [], shouldReset) {\n const previousItems = usePrevious(items.slice()) || [];\n if (shouldReset) {\n return [];\n }\n return previousItems ? items.filter(item => !previousItems.includes(item)) : [];\n}\n\nfunction Select(props) {\n const {\n id,\n label,\n onChange,\n options = [],\n value = '',\n disabled,\n onFocus,\n onBlur,\n tooltip\n } = props;\n const ref = useShowEntryEvent(id);\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const handleChangeCallback = ({\n target\n }) => {\n onChange(target.value);\n };\n const handleChange = e => {\n handleChangeCallback(e);\n setLocalValue(e.target.value);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value);\n }, [value]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-select\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"label\", {\n for: prefixId$3(id),\n class: \"bio-properties-panel-label\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: tooltip,\n forId: id,\n element: props.element,\n children: label\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"select\", {\n ref: ref,\n id: prefixId$3(id),\n name: id,\n class: \"bio-properties-panel-input\",\n onInput: handleChange,\n onFocus: onFocus,\n onBlur: onBlur,\n value: localValue,\n disabled: disabled,\n children: options.map((option, idx) => {\n if (option.children) {\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"optgroup\", {\n label: option.label,\n children: option.children.map((child, idx) => (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"option\", {\n value: child.value,\n disabled: child.disabled,\n children: child.label\n }, idx))\n }, idx);\n }\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"option\", {\n value: option.value,\n disabled: option.disabled,\n children: option.label\n }, idx);\n })\n })]\n });\n}\n\n/**\r\n * @param {object} props\r\n * @param {object} props.element\r\n * @param {string} props.id\r\n * @param {string} [props.description]\r\n * @param {string} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {Function} props.getOptions\r\n * @param {boolean} [props.disabled]\r\n * @param {Function} [props.validate]\r\n * @param {string|import('preact').Component} props.tooltip\r\n */\nfunction SelectEntry(props) {\n const {\n element,\n id,\n description,\n label,\n getValue,\n setValue,\n getOptions,\n disabled,\n onFocus,\n onBlur,\n validate,\n tooltip\n } = props;\n const options = getOptions(element);\n const globalError = useError(id);\n const [localError, setLocalError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n let value = getValue(element);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n const newValidationError = validate(value) || null;\n setLocalError(newValidationError);\n }\n }, [value, validate]);\n const onChange = newValue => {\n let newValidationError = null;\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n newValidationError = validate(newValue) || null;\n }\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n const error = globalError || localError;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-entry', error ? 'has-error' : ''),\n \"data-entry-id\": id,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Select, {\n id: id,\n label: label,\n value: value,\n onChange: onChange,\n onFocus: onFocus,\n onBlur: onBlur,\n options: options,\n disabled: disabled,\n tooltip: tooltip,\n element: element\n }, element), error && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-error\",\n children: error\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\nfunction isEdited$3(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId$3(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction Simple(props) {\n const {\n debounce,\n disabled,\n element,\n getValue,\n id,\n onBlur,\n onFocus,\n setValue\n } = props;\n const value = getValue(element);\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const handleInputCallback = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return debounce(target => setValue(target.value.length ? target.value : undefined));\n }, [setValue, debounce]);\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value);\n }, [value]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-simple\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", {\n id: prefixId$2(id),\n type: \"text\",\n name: id,\n spellCheck: \"false\",\n autoComplete: \"off\",\n disabled: disabled,\n class: \"bio-properties-panel-input\",\n onInput: handleInput,\n \"aria-label\": localValue || '',\n onFocus: onFocus,\n onBlur: onBlur,\n value: localValue\n }, element)\n });\n}\nfunction isEdited$2(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId$2(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction resizeToContents(element) {\n element.style.height = 'auto';\n\n // a 2px pixel offset is required to prevent scrollbar from\n // appearing on OS with a full length scroll bar (Windows/Linux)\n element.style.height = `${element.scrollHeight + 2}px`;\n}\nfunction TextArea(props) {\n const {\n id,\n label,\n debounce,\n onInput,\n value = '',\n disabled,\n monospace,\n onFocus,\n onBlur,\n autoResize = true,\n placeholder,\n rows = autoResize ? 1 : 2,\n tooltip\n } = props;\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value);\n const ref = useShowEntryEvent(id);\n const visible = useElementVisible(ref.current);\n const handleInputCallback = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return debounce(target => onInput(target.value.length ? target.value : undefined));\n }, [onInput, debounce]);\n const handleInput = e => {\n handleInputCallback(e.target);\n autoResize && resizeToContents(e.target);\n setLocalValue(e.target.value);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(() => {\n autoResize && resizeToContents(ref.current);\n }, []);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(() => {\n visible && autoResize && resizeToContents(ref.current);\n }, [visible]);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value);\n }, [value]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-textarea\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"label\", {\n for: prefixId$1(id),\n class: \"bio-properties-panel-label\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: tooltip,\n forId: id,\n element: props.element,\n children: label\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"textarea\", {\n ref: ref,\n id: prefixId$1(id),\n name: id,\n spellCheck: \"false\",\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-input', monospace ? 'bio-properties-panel-input-monospace' : '', autoResize ? 'auto-resize' : ''),\n onInput: handleInput,\n onFocus: onFocus,\n onBlur: onBlur,\n placeholder: placeholder,\n rows: rows,\n value: localValue,\n disabled: disabled,\n \"data-gramm\": \"false\"\n })]\n });\n}\n\n/**\n * @param {object} props\n * @param {object} props.element\n * @param {string} props.id\n * @param {string} props.description\n * @param {boolean} props.debounce\n * @param {string} props.label\n * @param {Function} props.getValue\n * @param {Function} props.setValue\n * @param {Function} props.onFocus\n * @param {Function} props.onBlur\n * @param {number} props.rows\n * @param {boolean} props.monospace\n * @param {Function} [props.validate]\n * @param {boolean} [props.disabled]\n */\nfunction TextAreaEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n label,\n getValue,\n setValue,\n rows,\n monospace,\n disabled,\n validate,\n onFocus,\n onBlur,\n placeholder,\n autoResize,\n tooltip\n } = props;\n const globalError = useError(id);\n const [localError, setLocalError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n let value = getValue(element);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n const newValidationError = validate(value) || null;\n setLocalError(newValidationError);\n }\n }, [value, validate]);\n const onInput = newValue => {\n let newValidationError = null;\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n newValidationError = validate(newValue) || null;\n }\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n const error = globalError || localError;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-entry', error ? 'has-error' : ''),\n \"data-entry-id\": id,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TextArea, {\n id: id,\n label: label,\n value: value,\n onInput: onInput,\n onFocus: onFocus,\n onBlur: onBlur,\n rows: rows,\n debounce: debounce,\n monospace: monospace,\n disabled: disabled,\n placeholder: placeholder,\n autoResize: autoResize,\n tooltip: tooltip,\n element: element\n }, element), error && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-error\",\n children: error\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\nfunction isEdited$1(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId$1(id) {\n return `bio-properties-panel-${id}`;\n}\n\nfunction Textfield(props) {\n const {\n debounce,\n disabled = false,\n id,\n label,\n onInput,\n onFocus,\n onBlur,\n placeholder,\n value = '',\n tooltip\n } = props;\n const [localValue, setLocalValue] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(value || '');\n const ref = useShowEntryEvent(id);\n const handleInputCallback = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return debounce(target => onInput(target.value.length ? target.value : undefined));\n }, [onInput, debounce]);\n const handleInput = e => {\n handleInputCallback(e.target);\n setLocalValue(e.target.value);\n };\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (value === localValue) {\n return;\n }\n setLocalValue(value);\n }, [value]);\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: \"bio-properties-panel-textfield\",\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"label\", {\n for: prefixId(id),\n class: \"bio-properties-panel-label\",\n children: (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TooltipWrapper, {\n value: tooltip,\n forId: id,\n element: props.element,\n children: label\n })\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", {\n ref: ref,\n id: prefixId(id),\n type: \"text\",\n name: id,\n spellCheck: \"false\",\n autoComplete: \"off\",\n disabled: disabled,\n class: \"bio-properties-panel-input\",\n onInput: handleInput,\n onFocus: onFocus,\n onBlur: onBlur,\n placeholder: placeholder,\n value: localValue\n })]\n });\n}\n\n/**\r\n * @param {Object} props\r\n * @param {Object} props.element\r\n * @param {String} props.id\r\n * @param {String} props.description\r\n * @param {Boolean} props.debounce\r\n * @param {Boolean} props.disabled\r\n * @param {String} props.label\r\n * @param {Function} props.getValue\r\n * @param {Function} props.setValue\r\n * @param {Function} props.onFocus\r\n * @param {Function} props.onBlur\r\n * @param {string|import('preact').Component} props.tooltip\r\n * @param {Function} props.validate\r\n */\nfunction TextfieldEntry(props) {\n const {\n element,\n id,\n description,\n debounce,\n disabled,\n label,\n getValue,\n setValue,\n validate,\n onFocus,\n onBlur,\n placeholder,\n tooltip\n } = props;\n const globalError = useError(id);\n const [localError, setLocalError] = (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n let value = getValue(element);\n (0,_preact_hooks__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n const newValidationError = validate(value) || null;\n setLocalError(newValidationError);\n }\n }, [value, validate]);\n const onInput = newValue => {\n let newValidationError = null;\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isFunction)(validate)) {\n newValidationError = validate(newValue) || null;\n }\n setValue(newValue, newValidationError);\n setLocalError(newValidationError);\n };\n const error = globalError || localError;\n return (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n class: classnames__WEBPACK_IMPORTED_MODULE_4___default()('bio-properties-panel-entry', error ? 'has-error' : ''),\n \"data-entry-id\": id,\n children: [(0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Textfield, {\n debounce: debounce,\n disabled: disabled,\n id: id,\n label: label,\n onInput: onInput,\n onFocus: onFocus,\n onBlur: onBlur,\n placeholder: placeholder,\n value: value,\n tooltip: tooltip,\n element: element\n }, element), error && (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n class: \"bio-properties-panel-error\",\n children: error\n }), (0,_preact_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Description, {\n forId: id,\n element: element,\n value: description\n })]\n });\n}\nfunction isEdited(node) {\n return node && !!node.value;\n}\n\n// helpers /////////////////\n\nfunction prefixId(id) {\n return `bio-properties-panel-${id}`;\n}\n\nconst DEFAULT_DEBOUNCE_TIME = 300;\nfunction debounceInput(debounceDelay) {\n return function _debounceInput(fn) {\n if (debounceDelay !== false) {\n var debounceTime = (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.isNumber)(debounceDelay) ? debounceDelay : DEFAULT_DEBOUNCE_TIME;\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.debounce)(fn, debounceTime);\n } else {\n return fn;\n }\n };\n}\ndebounceInput.$inject = ['config.debounceInput'];\n\nvar index$1 = {\n debounceInput: ['factory', debounceInput]\n};\n\nclass FeelPopupModule {\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\r\n * Check if the FEEL popup is open.\r\n * @return {Boolean}\r\n */\n isOpen() {\n return this._eventBus.fire('feelPopup._isOpen');\n }\n\n /**\r\n * Open the FEEL popup.\r\n *\r\n * @param {String} entryId\r\n * @param {Object} popupConfig\r\n * @param {HTMLElement} sourceElement\r\n */\n open(entryId, popupConfig, sourceElement) {\n return this._eventBus.fire('feelPopup._open', {\n entryId,\n popupConfig,\n sourceElement\n });\n }\n\n /**\r\n * Close the FEEL popup.\r\n */\n close() {\n return this._eventBus.fire('feelPopup._close');\n }\n}\nFeelPopupModule.$inject = ['eventBus'];\n\nvar index = {\n feelPopup: ['type', FeelPopupModule]\n};\n\n\n//# sourceMappingURL=index.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vcHJvcGVydGllcy1wYW5lbC9kaXN0L2luZGV4LmVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFpSDtBQUNsQjtBQUNuQztBQUNBO0FBQ0g7QUFDckI7QUFDSTtBQUNBO0FBQ007QUFDYTtBQUNuQjs7QUFFeEM7QUFDQSxTQUFTLHdEQUFHO0FBQ1o7QUFDQSxjQUFjLHdEQUFHO0FBQ2pCO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx3REFBRztBQUNaO0FBQ0EsY0FBYyx3REFBRztBQUNqQjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx3REFBRztBQUNaO0FBQ0EsY0FBYyx3REFBRztBQUNqQjtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsd0RBQUc7QUFDWjtBQUNBLGNBQWMsd0RBQUc7QUFDakI7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHlEQUFJO0FBQ2I7QUFDQSxlQUFlLHdEQUFHO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUssR0FBRyx3REFBRztBQUNYO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUssR0FBRyx3REFBRztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHdEQUFHO0FBQ1o7QUFDQSxjQUFjLHdE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O0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFcXlDO0FBQ3J5QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby9wcm9wZXJ0aWVzLXBhbmVsL2Rpc3QvaW5kZXguZXNtLmpzPzlmOGQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAnLi4vcHJlYWN0L2hvb2tzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzU3RyaW5nLCBpc0FycmF5LCBnZXQsIGFzc2lnbiwgc2V0LCBpc051bWJlciwgZGVib3VuY2UgfSBmcm9tICdtaW4tZGFzaCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwsIGZvcndhcmRSZWYgfSBmcm9tICcuLi9wcmVhY3QvY29tcGF0JztcbmltcG9ydCB7IGpzeCwganN4cywgRnJhZ21lbnQgfSBmcm9tICcuLi9wcmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgY3JlYXRlRWxlbWVudCB9IGZyb20gJy4uL3ByZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHF1ZXJ5LCBkb21pZnkgfSBmcm9tICdtaW4tZG9tJztcbmltcG9ydCB7IEZlZWxlcnNFZGl0b3IgfSBmcm9tICdmZWVsZXJzJztcbmltcG9ydCBGZWVsRWRpdG9yIGZyb20gJ0BicG1uLWlvL2ZlZWwtZWRpdG9yJztcbmltcG9ydCB7IGxpbmVOdW1iZXJzLCBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgKiBhcyBmb2N1c1RyYXAgZnJvbSAnZm9jdXMtdHJhcCc7XG5cbnZhciBBcnJvd0ljb24gPSBmdW5jdGlvbiBBcnJvd0ljb24ocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChcInN2Z1wiLCB7XG4gICAgLi4ucHJvcHMsXG4gICAgY2hpbGRyZW46IGpzeChcInBhdGhcIiwge1xuICAgICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgICAgZDogXCJtMTEuNjU3IDgtNC45NSA0Ljk1YTEgMSAwIDAgMS0xLjQxNC0xLjQxNEw4LjgyOCA4IDUuMjkzIDQuNDY0QTEgMSAwIDEgMSA2LjcwNyAzLjA1TDExLjY1NyA4WlwiXG4gICAgfSlcbiAgfSk7XG59O1xuQXJyb3dJY29uLmRlZmF1bHRQcm9wcyA9IHtcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgd2lkdGg6IFwiMTZcIixcbiAgaGVpZ2h0OiBcIjE2XCJcbn07XG52YXIgQ2xvc2VJY29uID0gZnVuY3Rpb24gQ2xvc2VJY29uKHByb3BzKSB7XG4gIHJldHVybiBqc3goXCJzdmdcIiwge1xuICAgIC4uLnByb3BzLFxuICAgIGNoaWxkcmVuOiBqc3goXCJwYXRoXCIsIHtcbiAgICAgIGZpbGxSdWxlOiBcImV2ZW5vZGRcIixcbiAgICAgIGQ6IFwibTEyIDQuNy0uNy0uN0w4IDcuMyA0LjcgNGwtLjcuN0w3LjMgOCA0IDExLjNsLjcuN0w4IDguN2wzLjMgMy4zLjctLjdMOC43IDggMTIgNC43WlwiLFxuICAgICAgZmlsbDogXCJjdXJyZW50Q29sb3JcIlxuICAgIH0pXG4gIH0pO1xufTtcbkNsb3NlSWNvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHdpZHRoOiBcIjE2XCIsXG4gIGhlaWdodDogXCIxNlwiXG59O1xudmFyIENyZWF0ZUljb24gPSBmdW5jdGlvbiBDcmVhdGVJY29uKHByb3BzKSB7XG4gIHJldHVybiBqc3goXCJzdmdcIiwge1xuICAgIC4uLnByb3BzLFxuICAgIGNoaWxkcmVuOiBqc3goXCJwYXRoXCIsIHtcbiAgICAgIGZpbGxSdWxlOiBcImV2ZW5vZGRcIixcbiAgICAgIGQ6IFwiTTkgMTNWOWg0YTEgMSAwIDAgMCAwLTJIOVYzYTEgMSAwIDEgMC0yIDB2NEgzYTEgMSAwIDEgMCAwIDJoNHY0YTEgMSAwIDAgMCAyIDBaXCJcbiAgICB9KVxuICB9KTtcbn07XG5DcmVhdGVJY29uLmRlZmF1bHRQcm9wcyA9IHtcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgd2lkdGg6IFwiMTZcIixcbiAgaGVpZ2h0OiBcIjE2XCJcbn07XG52YXIgRGVsZXRlSWNvbiA9IGZ1bmN0aW9uIERlbGV0ZUljb24ocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChcInN2Z1wiLCB7XG4gICAgLi4ucHJvcHMsXG4gICAgY2hpbGRyZW46IGpzeChcInBhdGhcIiwge1xuICAgICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgICAgZDogXCJNMTIgNnY3YzAgMS4xLS40IDEuNTUtMS41IDEuNTVoLTVDNC40IDE0LjU1IDQgMTQuMSA0IDEzVjZoOFptLTEuNSAxLjVoLTV2NC4zYzAgLjY2LjUgMS4yIDEuMTExIDEuMkg5LjM5Yy42MTEgMCAxLjExMS0uNTQgMS4xMTEtMS4yVjcuNVpNMTMgM2gtMmwtMS0xSDZMNSAzSDN2MS41aDEwVjNaXCJcbiAgICB9KVxuICB9KTtcbn07XG5EZWxldGVJY29uLmRlZmF1bHRQcm9wcyA9IHtcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgd2lkdGg6IFwiMTZcIixcbiAgaGVpZ2h0OiBcIjE2XCJcbn07XG52YXIgRHJhZ0ljb24gPSBmdW5jdGlvbiBEcmFnSWNvbihwcm9wcykge1xuICByZXR1cm4ganN4cyhcInN2Z1wiLCB7XG4gICAgLi4ucHJvcHMsXG4gICAgY2hpbGRyZW46IFtqc3goXCJwYXRoXCIsIHtcbiAgICAgIGZpbGw6IFwiI2ZmZlwiLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgbWl4QmxlbmRNb2RlOiBcIm11bHRpcGx5XCJcbiAgICAgIH0sXG4gICAgICBkOiBcIk0wIDBoMTZ2MTZIMHpcIlxuICAgIH0pLCBqc3goXCJwYXRoXCIsIHtcbiAgICAgIGZpbGw6IFwiI2ZmZlwiLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgbWl4QmxlbmRNb2RlOiBcIm11bHRpcGx5XCJcbiAgICAgIH0sXG4gICAgICBkOiBcIk0wIDBoMTZ2MTZIMHpcIlxuICAgIH0pLCBqc3goXCJwYXRoXCIsIHtcbiAgICAgIGQ6IFwiTTcgM0g1djJoMlYzem00IDBIOXYyaDJWM3pNNyA3SDV2MmgyVjd6bTQgMEg5djJoMlY3em0tNCA0SDV2Mmgydi0yem00IDBIOXYyaDJ2LTJ6XCIsXG4gICAgICBmaWxsOiBcIiMxNjE2MTZcIlxuICAgIH0pXVxuICB9KTtcbn07XG5EcmFnSWNvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHdpZHRoOiBcIjE2XCIsXG4gIGhlaWdodDogXCIxNlwiLFxuICBmaWxsOiBcIm5vbmVcIixcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxufTtcbnZhciBFeHRlcm5hbExpbmtJY29uID0gZnVuY3Rpb24gRXh0ZXJuYWxMaW5rSWNvbihwcm9wcykge1xuICByZXR1cm4ganN4KFwic3ZnXCIsIHtcbiAgICAuLi5wcm9wcyxcbiAgICBjaGlsZHJlbjoganN4KFwicGF0aFwiLCB7XG4gICAgICBmaWxsUnVsZTogXCJldmVub2RkXCIsXG4gICAgICBjbGlwUnVsZTogXCJldmVub2RkXCIsXG4gICAgICBkOiBcIk0xMi42MzcgMTIuNjM3di00LjcyaDEuMzYydjQuNzIxYzAgLjM2LS4xMzcuNjc2LS40MTEuOTUtLjI3NS4yNzUtLjU5MS40MTItLjk1LjQxMkgzLjM2MmMtLjM4IDAtLjcwMy0uMTMyLS45NjctLjM5NkExLjMxNSAxLjMxNSAwIDAgMSAyIDEyLjYzOFYzLjM2MmMwLS4zOC4xMzItLjcwMy4zOTYtLjk2N1MyLjk4MiAyIDMuMzYzIDJoNC41NTN2MS4zNjNIMy4zNjN2OS4yNzRoOS4yNzRaTTE0IDJIOS4yOGwtLjAwMSAxLjM2MmgyLjQwOEw1LjA2NSA5Ljk4NGwuOTUuOTUgNi42MjItNi42MjJ2Mi40MDlIMTRWMlpcIixcbiAgICAgIGZpbGw6IFwiY3VycmVudGNvbG9yXCJcbiAgICB9KVxuICB9KTtcbn07XG5FeHRlcm5hbExpbmtJY29uLmRlZmF1bHRQcm9wcyA9IHtcbiAgd2lkdGg6IFwiMTZcIixcbiAgaGVpZ2h0OiBcIjE2XCIsXG4gIGZpbGw6IFwibm9uZVwiLFxuICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG59O1xudmFyIEZlZWxJY29uJDEgPSBmdW5jdGlvbiBGZWVsSWNvbihwcm9wcykge1xuICByZXR1cm4ganN4KFwic3ZnXCIsIHtcbiAgICAuLi5wcm9wcyxcbiAgICBjaGlsZHJlbjoganN4KFwicGF0aFwiLCB7XG4gICAgICBkOiBcIk0zLjYxNyAxMS45OWMtLjEzNy42ODQtLjM5MiAxLjE5LS43NjUgMS41MTgtLjM2Mi4zMjgtLjg4Mi40OTItMS41NTguNDkySDBsLjMwOS0xLjU3OWgxLjI2NGwxLjUxNS03LjY0aC0uOTEybC4zMDktMS41NzloLjkxMWwuMjM2LTEuMTkxYy4xMzctLjY4NS4zODctMS4xOTIuNzUtMS41MkM0Ljc1My4xNjQgNS4yNzcgMCA1Ljk1MyAwaDEuMjk0TDYuOTQgMS41NzlINS42NzVsLS4zMjMgMS42MjNoMS4yNjRsLS4zMDkgMS41NzlINS4wNDNsLTEuNDI2IDcuMjA4Wk01LjYwNSAxMS4wMjFsMy4wMjktNC4xNTVMNy4yOCAzLjIwMmgyLjA3M2wuNzA2IDIuNTQ3aC4xNzZsMS42OTEtMi41NDdIMTRsLTMuMDE0IDQuMDUxIDEuMzM4IDMuNzY4SDEwLjI1bC0uNzA2LTIuNjA2SDkuMzdMNy42NzggMTEuMDJINS42MDVaXCIsXG4gICAgICBmaWxsOiBcImN1cnJlbnRjb2xvclwiXG4gICAgfSlcbiAgfSk7XG59O1xuRmVlbEljb24kMS5kZWZhdWx0UHJvcHMgPSB7XG4gIHdpZHRoOiBcIjE0XCIsXG4gIGhlaWdodDogXCIxNFwiLFxuICBmaWxsOiBcIm5vbmVcIixcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxufTtcbnZhciBMYXVuY2hJY29uID0gZnVuY3Rpb24gTGF1bmNoSWNvbihwcm9wcykge1xuICByZXR1cm4ganN4cyhcInN2Z1wiLCB7XG4gICAgLi4ucHJvcHMsXG4gICAgY2hpbGRyZW46IFtqc3goXCJwYXRoXCIsIHtcbiAgICAgIGQ6IFwiTTI2IDI4SDZhMi4wMDMgMi4wMDMgMCAwIDEtMi0yVjZhMi4wMDMgMi4wMDMgMCAwIDEgMi0yaDEwdjJINnYyMGgyMFYxNmgydjEwYTIuMDAzIDIuMDAzIDAgMCAxLTIgMlpcIlxuICAgIH0pLCBqc3goXCJwYXRoXCIsIHtcbiAgICAgIGQ6IFwiTTIwIDJ2Mmg2LjU4NkwxOCAxMi41ODYgMTkuNDE0IDE0IDI4IDUuNDE0VjEyaDJWMkgyMHpcIlxuICAgIH0pXVxuICB9KTtcbn07XG5MYXVuY2hJY29uLmRlZmF1bHRQcm9wcyA9IHtcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgdmlld0JveDogXCIwIDAgMzIgMzJcIlxufTtcbnZhciBQb3B1cEljb24gPSBmdW5jdGlvbiBQb3B1cEljb24ocHJvcHMpIHtcbiAgcmV0dXJuIGpzeHMoXCJzdmdcIiwge1xuICAgIC4uLnByb3BzLFxuICAgIGNoaWxkcmVuOiBbanN4KFwicGF0aFwiLCB7XG4gICAgICBmaWxsOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgZDogXCJNMjggNEgxMGEyLjAwNiAyLjAwNiAwIDAgMC0yIDJ2MTRhMi4wMDYgMi4wMDYgMCAwIDAgMiAyaDE4YTIuMDA2IDIuMDA2IDAgMCAwIDItMlY2YTIuMDA2IDIuMDA2IDAgMCAwLTItMlptMCAxNkgxMFY2aDE4WlwiXG4gICAgfSksIGpzeChcInBhdGhcIiwge1xuICAgICAgZmlsbDogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgIGQ6IFwiTTE4IDI2SDRWMTZoMnYtMkg0YTIuMDA2IDIuMDA2IDAgMCAwLTIgMnYxMGEyLjAwNiAyLjAwNiAwIDAgMCAyIDJoMTRhMi4wMDYgMi4wMDYgMCAwIDAgMi0ydi0yaC0yWlwiXG4gICAgfSldXG4gIH0pO1xufTtcblBvcHVwSWNvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHdpZHRoOiBcIjE2XCIsXG4gIGhlaWdodDogXCIxNlwiLFxuICB2aWV3Qm94OiBcIjAgMCAzMiAzMlwiXG59O1xuXG5mdW5jdGlvbiBIZWFkZXIocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgaGVhZGVyUHJvdmlkZXJcbiAgfSA9IHByb3BzO1xuICBjb25zdCB7XG4gICAgZ2V0RWxlbWVudEljb24sXG4gICAgZ2V0RG9jdW1lbnRhdGlvblJlZixcbiAgICBnZXRFbGVtZW50TGFiZWwsXG4gICAgZ2V0VHlwZUxhYmVsXG4gIH0gPSBoZWFkZXJQcm92aWRlcjtcbiAgY29uc3QgbGFiZWwgPSBnZXRFbGVtZW50TGFiZWwoZWxlbWVudCk7XG4gIGNvbnN0IHR5cGUgPSBnZXRUeXBlTGFiZWwoZWxlbWVudCk7XG4gIGNvbnN0IGRvY3VtZW50YXRpb25SZWYgPSBnZXREb2N1bWVudGF0aW9uUmVmICYmIGdldERvY3VtZW50YXRpb25SZWYoZWxlbWVudCk7XG4gIGNvbnN0IEVsZW1lbnRJY29uID0gZ2V0RWxlbWVudEljb24oZWxlbWVudCk7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1oZWFkZXJcIixcbiAgICBjaGlsZHJlbjogW2pzeChcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1oZWFkZXItaWNvblwiLFxuICAgICAgY2hpbGRyZW46IEVsZW1lbnRJY29uICYmIGpzeChFbGVtZW50SWNvbiwge1xuICAgICAgICB3aWR0aDogXCIzMlwiLFxuICAgICAgICBoZWlnaHQ6IFwiMzJcIixcbiAgICAgICAgdmlld0JveDogXCIwIDAgMzIgMzJcIlxuICAgICAgfSlcbiAgICB9KSwganN4cyhcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1oZWFkZXItbGFiZWxzXCIsXG4gICAgICBjaGlsZHJlbjogW2pzeChcImRpdlwiLCB7XG4gICAgICAgIHRpdGxlOiB0eXBlLFxuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1oZWFkZXItdHlwZVwiLFxuICAgICAgICBjaGlsZHJlbjogdHlwZVxuICAgICAgfSksIGxhYmVsID8ganN4KFwiZGl2XCIsIHtcbiAgICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1oZWFkZXItbGFiZWxcIixcbiAgICAgICAgY2hpbGRyZW46IGxhYmVsXG4gICAgICB9KSA6IG51bGxdXG4gICAgfSksIGpzeChcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1oZWFkZXItYWN0aW9uc1wiLFxuICAgICAgY2hpbGRyZW46IGRvY3VtZW50YXRpb25SZWYgPyBqc3goXCJhXCIsIHtcbiAgICAgICAgcmVsOiBcIm5vcmVmZXJyZXJcIixcbiAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtaGVhZGVyLWxpbmtcIixcbiAgICAgICAgaHJlZjogZG9jdW1lbnRhdGlvblJlZixcbiAgICAgICAgdGl0bGU6IFwiT3BlbiBkb2N1bWVudGF0aW9uXCIsXG4gICAgICAgIHRhcmdldDogXCJfYmxhbmtcIixcbiAgICAgICAgY2hpbGRyZW46IGpzeChFeHRlcm5hbExpbmtJY29uLCB7fSlcbiAgICAgIH0pIDogbnVsbFxuICAgIH0pXVxuICB9KTtcbn1cblxuY29uc3QgRGVzY3JpcHRpb25Db250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gIGRlc2NyaXB0aW9uOiB7fSxcbiAgZ2V0RGVzY3JpcHRpb25Gb3JJZDogKCkgPT4ge31cbn0pO1xuXG5jb25zdCBFcnJvcnNDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gIGVycm9yczoge31cbn0pO1xuXG4vKipcclxuICogQHR5cGVkZWYge0Z1bmN0aW9ufSA8cHJvcGVydGllc1BhbmVsLnNob3dFbnRyeT4gY2FsbGJhY2tcclxuICpcclxuICogQGV4YW1wbGVcclxuICpcclxuICogdXNlRXZlbnQoJ3Byb3BlcnRpZXNQYW5lbC5zaG93RW50cnknLCAoeyBmb2N1cyA9IGZhbHNlLCAuLi5yZXN0IH0pID0+IHtcclxuICogICAvLyAuLi5cclxuICogfSk7XHJcbiAqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0XHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NvbnRleHQuZm9jdXNdXHJcbiAqXHJcbiAqIEByZXR1cm5zIHZvaWRcclxuICovXG5cbmNvbnN0IEV2ZW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICBldmVudEJ1czogbnVsbFxufSk7XG5cbmNvbnN0IExheW91dENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgbGF5b3V0OiB7fSxcbiAgc2V0TGF5b3V0OiAoKSA9PiB7fSxcbiAgZ2V0TGF5b3V0Rm9yS2V5OiAoKSA9PiB7fSxcbiAgc2V0TGF5b3V0Rm9yS2V5OiAoKSA9PiB7fVxufSk7XG5cbmNvbnN0IFRvb2x0aXBDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gIHRvb2x0aXA6IHt9LFxuICBnZXRUb29sdGlwRm9ySWQ6ICgpID0+IHt9XG59KTtcblxuLyoqXHJcbiAqIEFjY2Vzc2VzIHRoZSBnbG9iYWwgVG9vbHRpcENvbnRleHQgYW5kIHJldHVybnMgYSB0b29sdGlwIGZvciBhIGdpdmVuIGlkIGFuZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBqc3hcclxuICogZnVuY3Rpb24gVGV4dEZpZWxkKHByb3BzKSB7XHJcbiAqICAgY29uc3QgdG9vbHRpcCA9IHVzZVRvb2x0aXBDb250ZXh0KCdpbnB1dDEnLCBlbGVtZW50KTtcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGlkXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XHJcbiAqXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9XHJcbiAqL1xuZnVuY3Rpb24gdXNlVG9vbHRpcENvbnRleHQoaWQsIGVsZW1lbnQpIHtcbiAgY29uc3Qge1xuICAgIGdldFRvb2x0aXBGb3JJZFxuICB9ID0gdXNlQ29udGV4dChUb29sdGlwQ29udGV4dCk7XG4gIHJldHVybiBnZXRUb29sdGlwRm9ySWQoaWQsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBUb29sdGlwV3JhcHBlcihwcm9wcykge1xuICBjb25zdCB7XG4gICAgZm9ySWQsXG4gICAgZWxlbWVudFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHREZXNjcmlwdGlvbiA9IHVzZVRvb2x0aXBDb250ZXh0KGZvcklkLCBlbGVtZW50KTtcbiAgY29uc3QgdmFsdWUgPSBwcm9wcy52YWx1ZSB8fCBjb250ZXh0RGVzY3JpcHRpb247XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gcHJvcHMuY2hpbGRyZW47XG4gIH1cbiAgcmV0dXJuIGpzeChUb29sdGlwLCB7XG4gICAgLi4ucHJvcHMsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGZvcklkOiBwcmVmaXhJZCQ5KGZvcklkKVxuICB9KTtcbn1cbmZ1bmN0aW9uIFRvb2x0aXAocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGZvcklkLFxuICAgIHZhbHVlLFxuICAgIHBhcmVudCxcbiAgICBkaXJlY3Rpb24gPSAncmlnaHQnLFxuICAgIHBvc2l0aW9uXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW3Zpc2libGUsIHNldFNob3ddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZm9jdXNlZFZpYUtleWJvYXJkLCBzZXRGb2N1c2VkVmlhS2V5Ym9hcmRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBsZXQgdGltZW91dCA9IG51bGw7XG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHRvb2x0aXBSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHNob3dUb29sdGlwID0gYXN5bmMgZXZlbnQgPT4ge1xuICAgIGNvbnN0IHNob3cgPSAoKSA9PiBzZXRTaG93KHRydWUpO1xuICAgIGlmICghdmlzaWJsZSAmJiAhdGltZW91dCkge1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChzaG93LCAyMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hvdygpO1xuICAgICAgICBzZXRGb2N1c2VkVmlhS2V5Ym9hcmQodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBoaWRlVG9vbHRpcCA9ICgpID0+IHtcbiAgICBzZXRTaG93KGZhbHNlKTtcbiAgICBzZXRGb2N1c2VkVmlhS2V5Ym9hcmQoZmFsc2UpO1xuICB9O1xuICBjb25zdCBoaWRlVG9vbHRpcFZpYUVzY2FwZSA9IGUgPT4ge1xuICAgIGUuY29kZSA9PT0gJ0VzY2FwZScgJiYgaGlkZVRvb2x0aXAoKTtcbiAgfTtcbiAgY29uc3QgaXNUb29sdGlwSG92ZXJlZCA9ICh7XG4gICAgeCxcbiAgICB5XG4gIH0pID0+IHtcbiAgICBjb25zdCB0b29sdGlwID0gdG9vbHRpcFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IHdyYXBwZXIgPSB3cmFwcGVyUmVmLmN1cnJlbnQ7XG4gICAgcmV0dXJuIHRvb2x0aXAgJiYgKGluQm91bmRzKHgsIHksIHdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpIHx8IGluQm91bmRzKHgsIHksIHRvb2x0aXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpKTtcbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBjdXJyZW50XG4gICAgfSA9IHdyYXBwZXJSZWY7XG4gICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhpZGVIb3ZlcmVkVG9vbHRpcCA9IGUgPT4ge1xuICAgICAgY29uc3QgaXNGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gd3JhcHBlclJlZi5jdXJyZW50IHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2xvc2VzdCgnLmJpby1wcm9wZXJ0aWVzLXBhbmVsLXRvb2x0aXAnKTtcbiAgICAgIGlmICh2aXNpYmxlICYmICFpc1Rvb2x0aXBIb3ZlcmVkKHtcbiAgICAgICAgeDogZS54LFxuICAgICAgICB5OiBlLnlcbiAgICAgIH0pICYmICEoaXNGb2N1c2VkICYmIGZvY3VzZWRWaWFLZXlib2FyZCkpIHtcbiAgICAgICAgaGlkZVRvb2x0aXAoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGhpZGVGb2N1c2VkVG9vbHRpcCA9IGUgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICByZWxhdGVkVGFyZ2V0XG4gICAgICB9ID0gZTtcbiAgICAgIGNvbnN0IGlzVG9vbHRpcENoaWxkID0gZWwgPT4gISFlbC5jbG9zZXN0KCcuYmlvLXByb3BlcnRpZXMtcGFuZWwtdG9vbHRpcCcpO1xuICAgICAgaWYgKHZpc2libGUgJiYgIWlzSG92ZXJlZCh3cmFwcGVyUmVmLmN1cnJlbnQpICYmIHJlbGF0ZWRUYXJnZXQgJiYgIWlzVG9vbHRpcENoaWxkKHJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgIGhpZGVUb29sdGlwKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIGhpZGVIb3ZlcmVkVG9vbHRpcCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoaWRlRm9jdXNlZFRvb2x0aXApO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhpZGVIb3ZlcmVkVG9vbHRpcCk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgaGlkZUhvdmVyZWRUb29sdGlwKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhpZGVIb3ZlcmVkVG9vbHRpcCk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGhpZGVGb2N1c2VkVG9vbHRpcCk7XG4gICAgfTtcbiAgfSwgW3dyYXBwZXJSZWYuY3VycmVudCwgdmlzaWJsZSwgZm9jdXNlZFZpYUtleWJvYXJkXSk7XG4gIGNvbnN0IHJlbmRlclRvb2x0aXAgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IGBiaW8tcHJvcGVydGllcy1wYW5lbC10b29sdGlwICR7ZGlyZWN0aW9ufWAsXG4gICAgICByb2xlOiBcInRvb2x0aXBcIixcbiAgICAgIGlkOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXRvb2x0aXBcIixcbiAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGZvcklkLFxuICAgICAgc3R5bGU6IHBvc2l0aW9uIHx8IGdldFRvb2x0aXBQb3NpdGlvbih3cmFwcGVyUmVmLmN1cnJlbnQpLFxuICAgICAgcmVmOiB0b29sdGlwUmVmLFxuICAgICAgb25DbGljazogZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpLFxuICAgICAgY2hpbGRyZW46IFtqc3goXCJkaXZcIiwge1xuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC10b29sdGlwLWNvbnRlbnRcIixcbiAgICAgICAgY2hpbGRyZW46IHZhbHVlXG4gICAgICB9KSwganN4KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtdG9vbHRpcC1hcnJvd1wiXG4gICAgICB9KV1cbiAgICB9KTtcbiAgfTtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXRvb2x0aXAtd3JhcHBlclwiLFxuICAgIHRhYkluZGV4OiBcIjBcIixcbiAgICByZWY6IHdyYXBwZXJSZWYsXG4gICAgb25Nb3VzZUVudGVyOiBzaG93VG9vbHRpcCxcbiAgICBvbk1vdXNlTGVhdmU6ICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgIHRpbWVvdXQgPSBudWxsO1xuICAgIH0sXG4gICAgb25Gb2N1czogc2hvd1Rvb2x0aXAsXG4gICAgb25LZXlEb3duOiBoaWRlVG9vbHRpcFZpYUVzY2FwZSxcbiAgICBjaGlsZHJlbjogW3Byb3BzLmNoaWxkcmVuLCB2aXNpYmxlID8gcGFyZW50ID8gY3JlYXRlUG9ydGFsKHJlbmRlclRvb2x0aXAoKSwgcGFyZW50LmN1cnJlbnQpIDogcmVuZGVyVG9vbHRpcCgpIDogbnVsbF1cbiAgfSk7XG59XG5cbi8vIGhlbHBlclxuZnVuY3Rpb24gaW5Cb3VuZHMoeCwgeSwgYm91bmRzKSB7XG4gIGNvbnN0IHtcbiAgICB0b3AsXG4gICAgcmlnaHQsXG4gICAgYm90dG9tLFxuICAgIGxlZnRcbiAgfSA9IGJvdW5kcztcbiAgcmV0dXJuIHggPj0gbGVmdCAmJiB4IDw9IHJpZ2h0ICYmIHkgPj0gdG9wICYmIHkgPD0gYm90dG9tO1xufVxuZnVuY3Rpb24gZ2V0VG9vbHRpcFBvc2l0aW9uKHJlZkVsZW1lbnQpIHtcbiAgY29uc3QgcmVmUG9zaXRpb24gPSByZWZFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCByaWdodCA9IGBjYWxjKDEwMCUgLSAke3JlZlBvc2l0aW9uLnh9cHgpYDtcbiAgY29uc3QgdG9wID0gYCR7cmVmUG9zaXRpb24udG9wIC0gMTB9cHhgO1xuICByZXR1cm4gYHJpZ2h0OiAke3JpZ2h0fTsgdG9wOiAke3RvcH07YDtcbn1cbmZ1bmN0aW9uIGlzSG92ZXJlZChlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoJzpob3ZlcicpO1xufVxuZnVuY3Rpb24gcHJlZml4SWQkOShpZCkge1xuICByZXR1cm4gYGJpby1wcm9wZXJ0aWVzLXBhbmVsLSR7aWR9YDtcbn1cblxuLyoqXHJcbiAqIEFjY2Vzc2VzIHRoZSBnbG9iYWwgRGVzY3JpcHRpb25Db250ZXh0IGFuZCByZXR1cm5zIGEgZGVzY3JpcHRpb24gZm9yIGEgZ2l2ZW4gaWQgYW5kIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGpzeFxyXG4gKiBmdW5jdGlvbiBUZXh0RmllbGQocHJvcHMpIHtcclxuICogICBjb25zdCBkZXNjcmlwdGlvbiA9IHVzZURlc2NyaXB0aW9uQ29udGV4dCgnaW5wdXQxJywgZWxlbWVudCk7XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudFxyXG4gKlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxyXG4gKi9cbmZ1bmN0aW9uIHVzZURlc2NyaXB0aW9uQ29udGV4dChpZCwgZWxlbWVudCkge1xuICBjb25zdCB7XG4gICAgZ2V0RGVzY3JpcHRpb25Gb3JJZFxuICB9ID0gdXNlQ29udGV4dChEZXNjcmlwdGlvbkNvbnRleHQpO1xuICByZXR1cm4gZ2V0RGVzY3JpcHRpb25Gb3JJZChpZCwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIHVzZUVycm9yKGlkKSB7XG4gIGNvbnN0IHtcbiAgICBlcnJvcnNcbiAgfSA9IHVzZUNvbnRleHQoRXJyb3JzQ29udGV4dCk7XG4gIHJldHVybiBlcnJvcnNbaWRdO1xufVxuZnVuY3Rpb24gdXNlRXJyb3JzKCkge1xuICBjb25zdCB7XG4gICAgZXJyb3JzXG4gIH0gPSB1c2VDb250ZXh0KEVycm9yc0NvbnRleHQpO1xuICByZXR1cm4gZXJyb3JzO1xufVxuXG4vKipcclxuICogU3Vic2NyaWJlIHRvIGFuIGV2ZW50IGltbWVkaWF0ZWx5LiBVcGRhdGUgc3Vic2NyaXB0aW9uIGFmdGVyIGlucHV0cyBjaGFuZ2VkLlxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcclxuICovXG5mdW5jdGlvbiB1c2VFdmVudChldmVudCwgY2FsbGJhY2ssIGV2ZW50QnVzKSB7XG4gIGNvbnN0IGV2ZW50Q29udGV4dCA9IHVzZUNvbnRleHQoRXZlbnRDb250ZXh0KTtcbiAgaWYgKCFldmVudEJ1cykge1xuICAgICh7XG4gICAgICBldmVudEJ1c1xuICAgIH0gPSBldmVudENvbnRleHQpO1xuICB9XG4gIGNvbnN0IGRpZE1vdW50ID0gdXNlUmVmKGZhbHNlKTtcblxuICAvLyAoMSkgc3Vic2NyaWJlIGltbWVkaWF0ZWx5XG4gIGlmIChldmVudEJ1cyAmJiAhZGlkTW91bnQuY3VycmVudCkge1xuICAgIGV2ZW50QnVzLm9uKGV2ZW50LCBjYWxsYmFjayk7XG4gIH1cblxuICAvLyAoMikgdXBkYXRlIHN1YnNjcmlwdGlvbiBhZnRlciBpbnB1dHMgY2hhbmdlZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChldmVudEJ1cyAmJiBkaWRNb3VudC5jdXJyZW50KSB7XG4gICAgICBldmVudEJ1cy5vbihldmVudCwgY2FsbGJhY2spO1xuICAgIH1cbiAgICBkaWRNb3VudC5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGV2ZW50QnVzKSB7XG4gICAgICAgIGV2ZW50QnVzLm9mZihldmVudCwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtjYWxsYmFjaywgZXZlbnQsIGV2ZW50QnVzXSk7XG59XG5cbmNvbnN0IEtFWV9MRU5HVEggPSA2O1xuXG4vKipcclxuICogQ3JlYXRlIGEgcGVyc2lzdGVudCBrZXkgZmFjdG9yeSBmb3IgcGxhaW4gb2JqZWN0cyB3aXRob3V0IGlkLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBqc3hcclxuICogZnVuY3Rpb24gTGlzdCh7IG9iamVjdHMgfSkge1xyXG4gKiAgIGNvbnN0IGdldEtleSA9IHVzZUtleUZhY3RvcnkoKTtcclxuICogICByZXR1cm4gKDxvbD57XHJcbiAqICAgICBvYmplY3RzLm1hcChvYmogPT4ge1xyXG4gKiAgICAgICBjb25zdCBrZXkgPSBnZXRLZXkob2JqKTtcclxuICogICAgICAgcmV0dXJuIDxsaSBrZXk9e2tleX0+b2JqLm5hbWU8L2xpPlxyXG4gKiAgICAgfSlcclxuICogICB9PC9vbD4pO1xyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAcGFyYW0ge2FueVtdfSBkZXBlbmRlbmNpZXNcclxuICogQHJldHVybnMgeyhlbGVtZW50OiBvYmplY3QpID0+IHN0cmluZ31cclxuICovXG5mdW5jdGlvbiB1c2VLZXlGYWN0b3J5KGRlcGVuZGVuY2llcyA9IFtdKSB7XG4gIGNvbnN0IG1hcCA9IHVzZU1lbW8oKCkgPT4gbmV3IE1hcCgpLCBkZXBlbmRlbmNpZXMpO1xuICBjb25zdCBnZXRLZXkgPSBlbCA9PiB7XG4gICAgbGV0IGtleSA9IG1hcC5nZXQoZWwpO1xuICAgIGlmICgha2V5KSB7XG4gICAgICBrZXkgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkuc2xpY2UoLUtFWV9MRU5HVEgpO1xuICAgICAgbWFwLnNldChlbCwga2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfTtcbiAgcmV0dXJuIGdldEtleTtcbn1cblxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzdGF0ZSB0aGF0IHBlcnNpc3RzIGluIHRoZSBnbG9iYWwgTGF5b3V0Q29udGV4dC5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBganN4XHJcbiAqIGZ1bmN0aW9uIEdyb3VwKHByb3BzKSB7XHJcbiAqICAgY29uc3QgWyBvcGVuLCBzZXRPcGVuIF0gPSB1c2VMYXlvdXRTdGF0ZShbICdncm91cHMnLCAnZm9vJywgJ29wZW4nIF0sIGZhbHNlKTtcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQHBhcmFtIHsoc3RyaW5nfG51bWJlcilbXX0gcGF0aFxyXG4gKiBAcGFyYW0ge2FueX0gW2RlZmF1bHRWYWx1ZV1cclxuICpcclxuICogQHJldHVybnMge1sgYW55LCBGdW5jdGlvbiBdfVxyXG4gKi9cbmZ1bmN0aW9uIHVzZUxheW91dFN0YXRlKHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICBjb25zdCB7XG4gICAgZ2V0TGF5b3V0Rm9yS2V5LFxuICAgIHNldExheW91dEZvcktleVxuICB9ID0gdXNlQ29udGV4dChMYXlvdXRDb250ZXh0KTtcbiAgY29uc3QgbGF5b3V0Rm9yS2V5ID0gZ2V0TGF5b3V0Rm9yS2V5KHBhdGgsIGRlZmF1bHRWYWx1ZSk7XG4gIGNvbnN0IHNldFN0YXRlID0gdXNlQ2FsbGJhY2sobmV3VmFsdWUgPT4ge1xuICAgIHNldExheW91dEZvcktleShwYXRoLCBuZXdWYWx1ZSk7XG4gIH0sIFtzZXRMYXlvdXRGb3JLZXldKTtcbiAgcmV0dXJuIFtsYXlvdXRGb3JLZXksIHNldFN0YXRlXTtcbn1cblxuLyoqXHJcbiAqIEBwaW51c3NpbHZlc3RydXM6IHdlIG5lZWQgdG8gaW50cm9kdWNlIG91ciBvd24gaG9vayB0byBwZXJzaXN0IHRoZSBwcmV2aW91c1xyXG4gKiBzdGF0ZSBvbiB1cGRhdGVzLlxyXG4gKlxyXG4gKiBjZi4gaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2hvb2tzLWZhcS5odG1sI2hvdy10by1nZXQtdGhlLXByZXZpb3VzLXByb3BzLW9yLXN0YXRlXHJcbiAqL1xuXG5mdW5jdGlvbiB1c2VQcmV2aW91cyh2YWx1ZSkge1xuICBjb25zdCByZWYgPSB1c2VSZWYoKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlZi5jdXJyZW50O1xufVxuXG4vKipcclxuICogU3Vic2NyaWJlIHRvIGBwcm9wZXJ0aWVzUGFuZWwuc2hvd0VudHJ5YC5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGlkXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtpbXBvcnQoJ3ByZWFjdCcpLlJlZn1cclxuICovXG5mdW5jdGlvbiB1c2VTaG93RW50cnlFdmVudChpZCkge1xuICBjb25zdCB7XG4gICAgb25TaG93XG4gIH0gPSB1c2VDb250ZXh0KExheW91dENvbnRleHQpO1xuICBjb25zdCByZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgZm9jdXMgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBvblNob3dFbnRyeSA9IHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICBpZiAoZXZlbnQuaWQgPT09IGlkKSB7XG4gICAgICBvblNob3coKTtcbiAgICAgIGlmICghZm9jdXMuY3VycmVudCkge1xuICAgICAgICBmb2N1cy5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpZF0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmb2N1cy5jdXJyZW50ICYmIHJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAoaXNGdW5jdGlvbihyZWYuY3VycmVudC5mb2N1cykpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0Z1bmN0aW9uKHJlZi5jdXJyZW50LnNlbGVjdCkpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQuc2VsZWN0KCk7XG4gICAgICB9XG4gICAgICBmb2N1cy5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAgdXNlRXZlbnQoJ3Byb3BlcnRpZXNQYW5lbC5zaG93RW50cnknLCBvblNob3dFbnRyeSk7XG4gIHJldHVybiByZWY7XG59XG5cbi8qKlxyXG4gKiBAY2FsbGJhY2sgc2V0U3RpY2t5XHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWVcclxuICovXG5cbi8qKlxyXG4gKiBVc2UgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgdG8gaWRlbnRpZnkgd2hlbiBET00gZWxlbWVudCBpcyBpbiBzdGlja3kgbW9kZS5cclxuICogSWYgc3RpY2t5IGlzIG9ic2VydmVyZWQgc2V0U3RpY2t5KHRydWUpIHdpbGwgYmUgY2FsbGVkLlxyXG4gKiBJZiBzdGlja3kgbW9kZSBpcyBsZWZ0LCBzZXRTdGlja3koZmFsc2UpIHdpbGwgYmUgY2FsbGVkLlxyXG4gKlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcmVmXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzY3JvbGxDb250YWluZXJTZWxlY3RvclxyXG4gKiBAcGFyYW0ge3NldFN0aWNreX0gc2V0U3RpY2t5XHJcbiAqL1xuZnVuY3Rpb24gdXNlU3RpY2t5SW50ZXJzZWN0aW9uT2JzZXJ2ZXIocmVmLCBzY3JvbGxDb250YWluZXJTZWxlY3Rvciwgc2V0U3RpY2t5KSB7XG4gIGNvbnN0IFtzY3JvbGxDb250YWluZXIsIHNldFNjcm9sbENvbnRhaW5lcl0gPSB1c2VTdGF0ZShxdWVyeShzY3JvbGxDb250YWluZXJTZWxlY3RvcikpO1xuICBjb25zdCB1cGRhdGVTY3JvbGxDb250YWluZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgbmV3U2Nyb2xsQ29udGFpbmVyID0gcXVlcnkoc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IpO1xuICAgIGlmIChuZXdTY3JvbGxDb250YWluZXIgIT09IHNjcm9sbENvbnRhaW5lcikge1xuICAgICAgc2V0U2Nyb2xsQ29udGFpbmVyKG5ld1Njcm9sbENvbnRhaW5lcik7XG4gICAgfVxuICB9LCBbc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IsIHNjcm9sbENvbnRhaW5lcl0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVwZGF0ZVNjcm9sbENvbnRhaW5lcigpO1xuICB9LCBbdXBkYXRlU2Nyb2xsQ29udGFpbmVyXSk7XG4gIHVzZUV2ZW50KCdwcm9wZXJ0aWVzUGFuZWwuYXR0YWNoJywgdXBkYXRlU2Nyb2xsQ29udGFpbmVyKTtcbiAgdXNlRXZlbnQoJ3Byb3BlcnRpZXNQYW5lbC5kZXRhY2gnLCB1cGRhdGVTY3JvbGxDb250YWluZXIpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IE9ic2VydmVyID0gSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICAvLyByZXR1cm4gZWFybHkgaWYgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgbm90IGF2YWlsYWJsZVxuICAgIGlmICghT2JzZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBUT0RPKEBiYXJtYWMpOiB0ZXN0IHRoaXNcbiAgICBpZiAoIXJlZi5jdXJyZW50IHx8ICFzY3JvbGxDb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgT2JzZXJ2ZXIoZW50cmllcyA9PiB7XG4gICAgICAvLyBzY3JvbGwgY29udGFpbmVyIGlzIHVubW91bnRlZCwgZG8gbm90IHVwZGF0ZSBzdGlja3kgc3RhdGVcbiAgICAgIGlmIChzY3JvbGxDb250YWluZXIuc2Nyb2xsSGVpZ2h0ID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA8IDEpIHtcbiAgICAgICAgICBzZXRTdGlja3kodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPT09IDEpIHtcbiAgICAgICAgICBzZXRTdGlja3koZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCB7XG4gICAgICByb290OiBzY3JvbGxDb250YWluZXIsXG4gICAgICByb290TWFyZ2luOiAnMHB4IDBweCA5OTk5OTklIDBweCcsXG4gICAgICAvLyBVc2UgYm90dG9tIG1hcmdpbiB0byBhdm9pZCBzdGlja3luZXNzIHdoZW4gc2Nyb2xsaW5nIG91dCB0byBib3R0b21cbiAgICAgIHRocmVzaG9sZDogWzFdXG4gICAgfSk7XG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShyZWYuY3VycmVudCk7XG5cbiAgICAvLyBVbm9ic2VydmUgaWYgdW5tb3VudGVkXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShyZWYuY3VycmVudCk7XG4gICAgfTtcbiAgfSwgW3JlZi5jdXJyZW50LCBzY3JvbGxDb250YWluZXIsIHNldFN0aWNreV0pO1xufVxuXG4vKipcclxuICogQ3JlYXRlcyBhIHN0YXRpYyBmdW5jdGlvbiByZWZlcmVuY2Ugd2l0aCBjaGFuZ2luZyBib2R5LlxyXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSB3aGVuIGV4dGVybmFsIGxpYnJhcmllcyByZXF1aXJlIGEgY2FsbGJhY2sgZnVuY3Rpb25cclxuICogdGhhdCBoYXMgcmVmZXJlbmNlcyB0byBzdGF0ZSB2YXJpYWJsZXMuXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKiBjb25zdCBjYWxsYmFjayA9IHVzZVN0YXRpY0NhbGxiYWNrKCh2YWwpID0+IHt2YWwgPT09IGN1cnJlbnRTdGF0ZX0pO1xyXG4gKlxyXG4gKiBUaGUgYGNhbGxiYWNrYCByZWZlcmVuY2UgaXMgc3RhdGljIGFuZCBjYW4gYmUgc2FmZWx5IHVzZWQgaW4gZXh0ZXJuYWxcclxuICogbGlicmFyaWVzIG9yIGFzIGEgcHJvcCB0aGF0IGRvZXMgbm90IGNhdXNlIHJlcmVuZGVyaW5nIG9mIGNoaWxkcmVuLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbiB3aXRoIGNoYW5naW5nIHJlZmVyZW5jZVxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IHN0YXRpYyBmdW5jdGlvbiByZWZlcmVuY2VcclxuICovXG5mdW5jdGlvbiB1c2VTdGF0aWNDYWxsYmFjayhjYWxsYmFjaykge1xuICBjb25zdCBjYWxsYmFja1JlZiA9IHVzZVJlZihjYWxsYmFjayk7XG4gIGNhbGxiYWNrUmVmLmN1cnJlbnQgPSBjYWxsYmFjaztcbiAgcmV0dXJuIHVzZUNhbGxiYWNrKCguLi5hcmdzKSA9PiBjYWxsYmFja1JlZi5jdXJyZW50KC4uLmFyZ3MpLCBbXSk7XG59XG5cbmZ1bmN0aW9uIHVzZUVsZW1lbnRWaXNpYmxlKGVsZW1lbnQpIHtcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoISFlbGVtZW50ICYmICEhZWxlbWVudC5jbGllbnRIZWlnaHQpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWxlbWVudCkgcmV0dXJuO1xuICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChbZW50cnldKSA9PiB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdWaXNpYmxlID0gISFlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQ7XG4gICAgICAgIGlmIChuZXdWaXNpYmxlICE9PSB2aXNpYmxlKSB7XG4gICAgICAgICAgc2V0VmlzaWJsZShuZXdWaXNpYmxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICByZXR1cm4gKCkgPT4gcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9LCBbZWxlbWVudCwgdmlzaWJsZV0pO1xuICByZXR1cm4gdmlzaWJsZTtcbn1cblxuZnVuY3Rpb24gR3JvdXAocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgZW50cmllcyA9IFtdLFxuICAgIGlkLFxuICAgIGxhYmVsLFxuICAgIHNob3VsZE9wZW4gPSBmYWxzZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGdyb3VwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VMYXlvdXRTdGF0ZShbJ2dyb3VwcycsIGlkLCAnb3BlbiddLCBzaG91bGRPcGVuKTtcbiAgY29uc3Qgb25TaG93ID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0T3Blbih0cnVlKSwgW3NldE9wZW5dKTtcbiAgY29uc3QgdG9nZ2xlT3BlbiA9ICgpID0+IHNldE9wZW4oIW9wZW4pO1xuICBjb25zdCBbZWRpdGVkLCBzZXRFZGl0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc3RpY2t5LCBzZXRTdGlja3ldID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIHNldCBlZGl0ZWQgc3RhdGUgZGVwZW5kaW5nIG9uIGFsbCBlbnRyaWVzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVE9ETyhAYmFybWFjKTogcmVwbGFjZSB3aXRoIENTUyB3aGVuIGA6aGFzKClgIGlzIHN1cHBvcnRlZCBpbiBhbGwgbWFqb3IgYnJvd3NlcnMsIG9yIHJld3JpdGUgYXMgaW4gaHR0cHM6Ly9naXRodWIuY29tL2NhbXVuZGEvY2FtdW5kYS1tb2RlbGVyL2lzc3Vlcy8zODE1I2lzc3VlY29tbWVudC0xNzMzMDM4MTYxXG4gICAgY29uc3Qgc2NoZWR1bGVkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGNvbnN0IGhhc09uZUVkaXRlZEVudHJ5ID0gZW50cmllcy5maW5kKGVudHJ5ID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGlzRWRpdGVkXG4gICAgICAgIH0gPSBlbnRyeTtcbiAgICAgICAgY29uc3QgZW50cnlOb2RlID0gcXVlcnkoYFtkYXRhLWVudHJ5LWlkPVwiJHtpZH1cIl1gKTtcbiAgICAgICAgaWYgKCFpc0Z1bmN0aW9uKGlzRWRpdGVkKSB8fCAhZW50cnlOb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlucHV0Tm9kZSA9IHF1ZXJ5KCcuYmlvLXByb3BlcnRpZXMtcGFuZWwtaW5wdXQnLCBlbnRyeU5vZGUpO1xuICAgICAgICByZXR1cm4gaXNFZGl0ZWQoaW5wdXROb2RlKTtcbiAgICAgIH0pO1xuICAgICAgc2V0RWRpdGVkKGhhc09uZUVkaXRlZEVudHJ5KTtcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUoc2NoZWR1bGVkKTtcbiAgfSwgW2VudHJpZXMsIHNldEVkaXRlZF0pO1xuXG4gIC8vIHNldCBlcnJvciBzdGF0ZSBkZXBlbmRpbmcgb24gYWxsIGVudHJpZXNcbiAgY29uc3QgYWxsRXJyb3JzID0gdXNlRXJyb3JzKCk7XG4gIGNvbnN0IGhhc0Vycm9ycyA9IGVudHJpZXMuc29tZShlbnRyeSA9PiBhbGxFcnJvcnNbZW50cnkuaWRdKTtcblxuICAvLyBzZXQgY3NzIGNsYXNzIHdoZW4gZ3JvdXAgaXMgc3RpY2t5IHRvIHRvcFxuICB1c2VTdGlja3lJbnRlcnNlY3Rpb25PYnNlcnZlcihncm91cFJlZiwgJ2Rpdi5iaW8tcHJvcGVydGllcy1wYW5lbC1zY3JvbGwtY29udGFpbmVyJywgc2V0U3RpY2t5KTtcbiAgY29uc3QgcHJvcGVydGllc1BhbmVsQ29udGV4dCA9IHtcbiAgICAuLi51c2VDb250ZXh0KExheW91dENvbnRleHQpLFxuICAgIG9uU2hvd1xuICB9O1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZ3JvdXBcIixcbiAgICBcImRhdGEtZ3JvdXAtaWRcIjogJ2dyb3VwLScgKyBpZCxcbiAgICByZWY6IGdyb3VwUmVmLFxuICAgIGNoaWxkcmVuOiBbanN4cyhcImRpdlwiLCB7XG4gICAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtZ3JvdXAtaGVhZGVyJywgZWRpdGVkID8gJycgOiAnZW1wdHknLCBvcGVuID8gJ29wZW4nIDogJycsIHN0aWNreSAmJiBvcGVuID8gJ3N0aWNreScgOiAnJyksXG4gICAgICBvbkNsaWNrOiB0b2dnbGVPcGVuLFxuICAgICAgY2hpbGRyZW46IFtqc3goXCJkaXZcIiwge1xuICAgICAgICB0aXRsZTogcHJvcHMudG9vbHRpcCA/IG51bGwgOiBsYWJlbCxcbiAgICAgICAgXCJkYXRhLXRpdGxlXCI6IGxhYmVsLFxuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1ncm91cC1oZWFkZXItdGl0bGVcIixcbiAgICAgICAgY2hpbGRyZW46IGpzeChUb29sdGlwV3JhcHBlciwge1xuICAgICAgICAgIHZhbHVlOiBwcm9wcy50b29sdGlwLFxuICAgICAgICAgIGZvcklkOiAnZ3JvdXAtJyArIGlkLFxuICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgICAgcGFyZW50OiBncm91cFJlZixcbiAgICAgICAgICBjaGlsZHJlbjogbGFiZWxcbiAgICAgICAgfSlcbiAgICAgIH0pLCBqc3hzKFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZ3JvdXAtaGVhZGVyLWJ1dHRvbnNcIixcbiAgICAgICAgY2hpbGRyZW46IFtqc3goRGF0YU1hcmtlciwge1xuICAgICAgICAgIGVkaXRlZDogZWRpdGVkLFxuICAgICAgICAgIGhhc0Vycm9yczogaGFzRXJyb3JzXG4gICAgICAgIH0pLCBqc3goXCJidXR0b25cIiwge1xuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgdGl0bGU6IFwiVG9nZ2xlIHNlY3Rpb25cIixcbiAgICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1ncm91cC1oZWFkZXItYnV0dG9uIGJpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93XCIsXG4gICAgICAgICAgY2hpbGRyZW46IGpzeChBcnJvd0ljb24sIHtcbiAgICAgICAgICAgIGNsYXNzOiBvcGVuID8gJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LWRvd24nIDogJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LXJpZ2h0J1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pXVxuICAgICAgfSldXG4gICAgfSksIGpzeChcImRpdlwiLCB7XG4gICAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtZ3JvdXAtZW50cmllcycsIG9wZW4gPyAnb3BlbicgOiAnJyksXG4gICAgICBjaGlsZHJlbjoganN4KExheW91dENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHByb3BlcnRpZXNQYW5lbENvbnRleHQsXG4gICAgICAgIGNoaWxkcmVuOiBlbnRyaWVzLm1hcChlbnRyeSA9PiB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnQsXG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH0gPSBlbnRyeTtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHtcbiAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgICAgICAgIGtleTogaWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSldXG4gIH0pO1xufVxuZnVuY3Rpb24gRGF0YU1hcmtlcihwcm9wcykge1xuICBjb25zdCB7XG4gICAgZWRpdGVkLFxuICAgIGhhc0Vycm9yc1xuICB9ID0gcHJvcHM7XG4gIGlmIChoYXNFcnJvcnMpIHtcbiAgICByZXR1cm4ganN4KFwiZGl2XCIsIHtcbiAgICAgIHRpdGxlOiBcIlNlY3Rpb24gY29udGFpbnMgYW4gZXJyb3JcIixcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWRvdCBiaW8tcHJvcGVydGllcy1wYW5lbC1kb3QtLWVycm9yXCJcbiAgICB9KTtcbiAgfVxuICBpZiAoZWRpdGVkKSB7XG4gICAgcmV0dXJuIGpzeChcImRpdlwiLCB7XG4gICAgICB0aXRsZTogXCJTZWN0aW9uIGNvbnRhaW5zIGRhdGFcIixcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWRvdFwiXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxyXG4gKiBAdHlwZWRlZiB7IHtcclxuICogIHRleHQ6IChlbGVtZW50OiBvYmplY3QpID0+IHN0cmluZyxcclxuICogIGljb24/OiAoZWxlbWVudDogT2JqZWN0KSA9PiBpbXBvcnQoJ3ByZWFjdCcpLkNvbXBvbmVudFxyXG4gKiB9IH0gUGxhY2Vob2xkZXJEZWZpbml0aW9uXHJcbiAqXHJcbiAqIEBwYXJhbSB7IFBsYWNlaG9sZGVyRGVmaW5pdGlvbiB9IHByb3BzXHJcbiAqL1xuZnVuY3Rpb24gUGxhY2Vob2xkZXIocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIHRleHQsXG4gICAgaWNvbjogSWNvblxuICB9ID0gcHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsIG9wZW5cIixcbiAgICBjaGlsZHJlbjoganN4cyhcInNlY3Rpb25cIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtcGxhY2Vob2xkZXJcIixcbiAgICAgIGNoaWxkcmVuOiBbSWNvbiAmJiBqc3goSWNvbiwge1xuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1wbGFjZWhvbGRlci1pY29uXCJcbiAgICAgIH0pLCBqc3goXCJwXCIsIHtcbiAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtcGxhY2Vob2xkZXItdGV4dFwiLFxuICAgICAgICBjaGlsZHJlbjogdGV4dFxuICAgICAgfSldXG4gICAgfSlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIERlc2NyaXB0aW9uKHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBlbGVtZW50LFxuICAgIGZvcklkLFxuICAgIHZhbHVlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dERlc2NyaXB0aW9uID0gdXNlRGVzY3JpcHRpb25Db250ZXh0KGZvcklkLCBlbGVtZW50KTtcbiAgY29uc3QgZGVzY3JpcHRpb24gPSB2YWx1ZSB8fCBjb250ZXh0RGVzY3JpcHRpb247XG4gIGlmIChkZXNjcmlwdGlvbikge1xuICAgIHJldHVybiBqc3goXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZGVzY3JpcHRpb25cIixcbiAgICAgIGNoaWxkcmVuOiBkZXNjcmlwdGlvblxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IG5vb3AkNiA9ICgpID0+IHt9O1xuXG4vKipcclxuICogQnVmZmVyIGAuZm9jdXMoKWAgY2FsbHMgd2hpbGUgdGhlIGVkaXRvciBpcyBub3QgaW5pdGlhbGl6ZWQuXHJcbiAqIFNldCBGb2N1cyBpbnNpZGUgd2hlbiB0aGUgZWRpdG9yIGlzIHJlYWR5LlxyXG4gKi9cbmNvbnN0IHVzZUJ1ZmZlcmVkRm9jdXMkMSA9IGZ1bmN0aW9uIChlZGl0b3IsIHJlZikge1xuICBjb25zdCBbYnVmZmVyLCBzZXRCdWZmZXJdID0gdXNlU3RhdGUodW5kZWZpbmVkKTtcbiAgcmVmLmN1cnJlbnQgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgZm9jdXM6IG9mZnNldCA9PiB7XG4gICAgICBpZiAoZWRpdG9yKSB7XG4gICAgICAgIGVkaXRvci5mb2N1cyhvZmZzZXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgb2Zmc2V0ID0gSW5maW5pdHk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0QnVmZmVyKG9mZnNldCk7XG4gICAgICB9XG4gICAgfVxuICB9KSwgW2VkaXRvcl0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgYnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBlZGl0b3IpIHtcbiAgICAgIGVkaXRvci5mb2N1cyhidWZmZXIpO1xuICAgICAgc2V0QnVmZmVyKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtlZGl0b3IsIGJ1ZmZlcl0pO1xufTtcbmNvbnN0IENvZGVFZGl0b3IkMSA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIG9uSW5wdXQsXG4gICAgZGlzYWJsZWQsXG4gICAgdG9vbHRpcENvbnRhaW5lcixcbiAgICBlbmFibGVHdXR0ZXJzLFxuICAgIHZhbHVlLFxuICAgIG9uTGludCA9IG5vb3AkNixcbiAgICBvblBvcHVwT3BlbiA9IG5vb3AkNixcbiAgICBwb3B1cE9wZW4sXG4gICAgY29udGVudEF0dHJpYnV0ZXMgPSB7fSxcbiAgICBob3N0TGFuZ3VhZ2UgPSBudWxsLFxuICAgIHNpbmdsZUxpbmUgPSBmYWxzZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IFtlZGl0b3IsIHNldEVkaXRvcl0gPSB1c2VTdGF0ZSgpO1xuICBjb25zdCBbbG9jYWxWYWx1ZSwgc2V0TG9jYWxWYWx1ZV0gPSB1c2VTdGF0ZSh2YWx1ZSB8fCAnJyk7XG4gIHVzZUJ1ZmZlcmVkRm9jdXMkMShlZGl0b3IsIHJlZik7XG4gIGNvbnN0IGhhbmRsZUlucHV0ID0gdXNlU3RhdGljQ2FsbGJhY2sobmV3VmFsdWUgPT4ge1xuICAgIG9uSW5wdXQobmV3VmFsdWUpO1xuICAgIHNldExvY2FsVmFsdWUobmV3VmFsdWUpO1xuICB9KTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgZWRpdG9yO1xuICAgIGVkaXRvciA9IG5ldyBGZWVsZXJzRWRpdG9yKHtcbiAgICAgIGNvbnRhaW5lcjogaW5wdXRSZWYuY3VycmVudCxcbiAgICAgIG9uQ2hhbmdlOiBoYW5kbGVJbnB1dCxcbiAgICAgIHZhbHVlOiBsb2NhbFZhbHVlLFxuICAgICAgb25MaW50LFxuICAgICAgY29udGVudEF0dHJpYnV0ZXMsXG4gICAgICB0b29sdGlwQ29udGFpbmVyLFxuICAgICAgZW5hYmxlR3V0dGVycyxcbiAgICAgIGhvc3RMYW5ndWFnZSxcbiAgICAgIHNpbmdsZUxpbmUsXG4gICAgICBsaW5lV3JhcDogdHJ1ZVxuICAgIH0pO1xuICAgIHNldEVkaXRvcihlZGl0b3IpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBvbkxpbnQoW10pO1xuICAgICAgaW5wdXRSZWYuY3VycmVudC5pbm5lckhUTUwgPSAnJztcbiAgICAgIHNldEVkaXRvcihudWxsKTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSBsb2NhbFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVkaXRvci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgc2V0TG9jYWxWYWx1ZSh2YWx1ZSk7XG4gIH0sIFt2YWx1ZV0pO1xuICBjb25zdCBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICByZWYuY3VycmVudC5mb2N1cygpO1xuICB9O1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWZlZWxlcnMtZWRpdG9yLWNvbnRhaW5lcicsIHBvcHVwT3BlbiA/ICdwb3B1cE9wZW4nIDogbnVsbCksXG4gICAgY2hpbGRyZW46IFtqc3goXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZmVlbGVycy1lZGl0b3JfX29wZW4tcG9wdXAtcGxhY2Vob2xkZXJcIixcbiAgICAgIGNoaWxkcmVuOiBcIk9wZW5lZCBpbiBlZGl0b3JcIlxuICAgIH0pLCBqc3goXCJkaXZcIiwge1xuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1mZWVsZXJzLWVkaXRvciBiaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dCcsIGxvY2FsVmFsdWUgPyAnZWRpdGVkJyA6IG51bGwsIGRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGwpLFxuICAgICAgcmVmOiBpbnB1dFJlZixcbiAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrXG4gICAgfSksIGpzeChcImJ1dHRvblwiLCB7XG4gICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgdGl0bGU6IFwiT3BlbiBwb3AtdXAgZWRpdG9yXCIsXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1vcGVuLWZlZWwtcG9wdXBcIixcbiAgICAgIG9uQ2xpY2s6ICgpID0+IG9uUG9wdXBPcGVuKCdmZWVsZXJzJyksXG4gICAgICBjaGlsZHJlbjoganN4KFBvcHVwSWNvbiwge30pXG4gICAgfSldXG4gIH0pO1xufSk7XG5cbmNvbnN0IG5vb3AkNSA9ICgpID0+IHt9O1xuXG4vKipcclxuICogQnVmZmVyIGAuZm9jdXMoKWAgY2FsbHMgd2hpbGUgdGhlIGVkaXRvciBpcyBub3QgaW5pdGlhbGl6ZWQuXHJcbiAqIFNldCBGb2N1cyBpbnNpZGUgd2hlbiB0aGUgZWRpdG9yIGlzIHJlYWR5LlxyXG4gKi9cbmNvbnN0IHVzZUJ1ZmZlcmVkRm9jdXMgPSBmdW5jdGlvbiAoZWRpdG9yLCByZWYpIHtcbiAgY29uc3QgW2J1ZmZlciwgc2V0QnVmZmVyXSA9IHVzZVN0YXRlKHVuZGVmaW5lZCk7XG4gIHJlZi5jdXJyZW50ID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIGZvY3VzOiBvZmZzZXQgPT4ge1xuICAgICAgaWYgKGVkaXRvcikge1xuICAgICAgICBlZGl0b3IuZm9jdXMob2Zmc2V0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2Zmc2V0ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIG9mZnNldCA9IEluZmluaXR5O1xuICAgICAgICB9XG4gICAgICAgIHNldEJ1ZmZlcihvZmZzZXQpO1xuICAgICAgfVxuICAgIH1cbiAgfSksIFtlZGl0b3JdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgZWRpdG9yKSB7XG4gICAgICBlZGl0b3IuZm9jdXMoYnVmZmVyKTtcbiAgICAgIHNldEJ1ZmZlcihmYWxzZSk7XG4gICAgfVxuICB9LCBbZWRpdG9yLCBidWZmZXJdKTtcbn07XG5jb25zdCBDb2RlRWRpdG9yID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgY29udGVudEF0dHJpYnV0ZXMsXG4gICAgZW5hYmxlR3V0dGVycyxcbiAgICB2YWx1ZSxcbiAgICBvbklucHV0LFxuICAgIG9uRmVlbFRvZ2dsZSA9IG5vb3AkNSxcbiAgICBvbkxpbnQgPSBub29wJDUsXG4gICAgb25Qb3B1cE9wZW4gPSBub29wJDUsXG4gICAgcGxhY2Vob2xkZXIsXG4gICAgcG9wdXBPcGVuLFxuICAgIGRpc2FibGVkLFxuICAgIHRvb2x0aXBDb250YWluZXIsXG4gICAgdmFyaWFibGVzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgW2VkaXRvciwgc2V0RWRpdG9yXSA9IHVzZVN0YXRlKCk7XG4gIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKHZhbHVlIHx8ICcnKTtcbiAgdXNlQnVmZmVyZWRGb2N1cyhlZGl0b3IsIHJlZik7XG4gIGNvbnN0IGhhbmRsZUlucHV0ID0gdXNlU3RhdGljQ2FsbGJhY2sobmV3VmFsdWUgPT4ge1xuICAgIG9uSW5wdXQobmV3VmFsdWUpO1xuICAgIHNldExvY2FsVmFsdWUobmV3VmFsdWUpO1xuICB9KTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgZWRpdG9yO1xuXG4gICAgLyogVHJpZ2dlciBGRUVMIHRvZ2dsZSB3aGVuXHJcbiAgICAgKlxyXG4gICAgICogLSBgYmFja3NwYWNlYCBpcyBwcmVzc2VkXHJcbiAgICAgKiAtIEFORCB0aGUgY3Vyc29yIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0XHJcbiAgICAgKi9cbiAgICBjb25zdCBvbktleURvd24gPSBlID0+IHtcbiAgICAgIGlmIChlLmtleSAhPT0gJ0JhY2tzcGFjZScgfHwgIWVkaXRvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSBlZGl0b3IuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZXNbc2VsZWN0aW9uLm1haW5JbmRleF07XG4gICAgICBpZiAocmFuZ2UuZnJvbSA9PT0gMCAmJiByYW5nZS50byA9PT0gMCkge1xuICAgICAgICBvbkZlZWxUb2dnbGUoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGVkaXRvciA9IG5ldyBGZWVsRWRpdG9yKHtcbiAgICAgIGNvbnRhaW5lcjogaW5wdXRSZWYuY3VycmVudCxcbiAgICAgIG9uQ2hhbmdlOiBoYW5kbGVJbnB1dCxcbiAgICAgIG9uS2V5RG93bjogb25LZXlEb3duLFxuICAgICAgb25MaW50OiBvbkxpbnQsXG4gICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXG4gICAgICB0b29sdGlwQ29udGFpbmVyOiB0b29sdGlwQ29udGFpbmVyLFxuICAgICAgdmFsdWU6IGxvY2FsVmFsdWUsXG4gICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgIGV4dGVuc2lvbnM6IFsuLi4oZW5hYmxlR3V0dGVycyA/IFtsaW5lTnVtYmVycygpXSA6IFtdKSwgRWRpdG9yVmlldy5saW5lV3JhcHBpbmddLFxuICAgICAgY29udGVudEF0dHJpYnV0ZXNcbiAgICB9KTtcbiAgICBzZXRFZGl0b3IoZWRpdG9yKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgb25MaW50KFtdKTtcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgICBzZXRFZGl0b3IobnVsbCk7XG4gICAgfTtcbiAgfSwgW10pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gbG9jYWxWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlZGl0b3Iuc2V0VmFsdWUodmFsdWUpO1xuICAgIHNldExvY2FsVmFsdWUodmFsdWUpO1xuICB9LCBbdmFsdWVdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVkaXRvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlZGl0b3Iuc2V0VmFyaWFibGVzKHZhcmlhYmxlcyk7XG4gIH0sIFt2YXJpYWJsZXNdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVkaXRvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlZGl0b3Iuc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpO1xuICB9LCBbcGxhY2Vob2xkZXJdKTtcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgcmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgfTtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1mZWVsLWVkaXRvci1jb250YWluZXInLCBkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsLCBwb3B1cE9wZW4gPyAncG9wdXBPcGVuJyA6IG51bGwpLFxuICAgIGNoaWxkcmVuOiBbanN4KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWZlZWwtZWRpdG9yX19vcGVuLXBvcHVwLXBsYWNlaG9sZGVyXCIsXG4gICAgICBjaGlsZHJlbjogXCJPcGVuZWQgaW4gZWRpdG9yXCJcbiAgICB9KSwganN4KFwiZGl2XCIsIHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtaW5wdXQnLCBsb2NhbFZhbHVlID8gJ2VkaXRlZCcgOiBudWxsKSxcbiAgICAgIHJlZjogaW5wdXRSZWYsXG4gICAgICBvbkNsaWNrOiBoYW5kbGVDbGlja1xuICAgIH0pLCBqc3goXCJidXR0b25cIiwge1xuICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgIHRpdGxlOiBcIk9wZW4gcG9wLXVwIGVkaXRvclwiLFxuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtb3Blbi1mZWVsLXBvcHVwXCIsXG4gICAgICBvbkNsaWNrOiAoKSA9PiBvblBvcHVwT3BlbigpLFxuICAgICAgY2hpbGRyZW46IGpzeChQb3B1cEljb24sIHt9KVxuICAgIH0pXVxuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiBGZWVsSW5kaWNhdG9yKHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVcbiAgfSA9IHByb3BzO1xuICBpZiAoIWFjdGl2ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBqc3goXCJzcGFuXCIsIHtcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1mZWVsLWluZGljYXRvclwiLFxuICAgIGNoaWxkcmVuOiBcIj1cIlxuICB9KTtcbn1cblxuY29uc3Qgbm9vcCQ0ID0gKCkgPT4ge307XG5cbi8qKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzLmxhYmVsXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5mZWVsXHJcbiAqL1xuZnVuY3Rpb24gRmVlbEljb24ocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGZlZWwgPSBmYWxzZSxcbiAgICBhY3RpdmUsXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBvbkNsaWNrID0gbm9vcCQ0XG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZmVlbFJlcXVpcmVkTGFiZWwgPSAnRkVFTCBleHByZXNzaW9uIGlzIG1hbmRhdG9yeSc7XG4gIGNvbnN0IGZlZWxPcHRpb25hbExhYmVsID0gYENsaWNrIHRvICR7YWN0aXZlID8gJ3JlbW92ZScgOiAnc2V0IGEnfSBkeW5hbWljIHZhbHVlIHdpdGggRkVFTCBleHByZXNzaW9uYDtcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSBlID0+IHtcbiAgICBvbkNsaWNrKGUpO1xuXG4gICAgLy8gd2hlbiBwb2ludGVyIGV2ZW50IHdhcyBjcmVhdGVkIGZyb20ga2V5Ym9hcmQsIGtlZXAgZm9jdXMgb24gYnV0dG9uXG4gICAgaWYgKCFlLnBvaW50ZXJUeXBlKSB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGpzeChcImJ1dHRvblwiLCB7XG4gICAgdHlwZTogXCJidXR0b25cIixcbiAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtZmVlbC1pY29uJywgYWN0aXZlID8gJ2FjdGl2ZScgOiBudWxsLCBmZWVsID09PSAncmVxdWlyZWQnID8gJ3JlcXVpcmVkJyA6ICdvcHRpb25hbCcpLFxuICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgIGRpc2FibGVkOiBmZWVsID09PSAncmVxdWlyZWQnIHx8IGRpc2FibGVkLFxuICAgIHRpdGxlOiBmZWVsID09PSAncmVxdWlyZWQnID8gZmVlbFJlcXVpcmVkTGFiZWwgOiBmZWVsT3B0aW9uYWxMYWJlbCxcbiAgICBjaGlsZHJlbjoganN4KEZlZWxJY29uJDEsIHt9KVxuICB9KTtcbn1cblxuY29uc3QgRmVlbFBvcHVwQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICBvcGVuOiAoKSA9PiB7fSxcbiAgY2xvc2U6ICgpID0+IHt9LFxuICBzb3VyY2U6IG51bGxcbn0pO1xuXG4vKipcclxuICogQWRkIGEgZHJhZ2dlciB0aGF0IGNhbGxzIGJhY2sgdGhlIHBhc3NlZCBmdW5jdGlvbiB3aXRoXHJcbiAqIHsgZXZlbnQsIGRlbHRhIH0gb24gZHJhZy5cclxuICpcclxuICogQGV4YW1wbGVcclxuICpcclxuICogZnVuY3Rpb24gZHJhZ01vdmUoZXZlbnQsIGRlbHRhKSB7XHJcbiAqICAgLy8gd2UgYXJlIGRyYWdnaW5nICghISlcclxuICogfVxyXG4gKlxyXG4gKiBkb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdzdGFydCcsIGRyYWdnZXIoZHJhZ01vdmUpKTtcclxuICpcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cclxuICogQHBhcmFtIHtFbGVtZW50fSBbZHJhZ1ByZXZpZXddXHJcbiAqXHJcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBkcmFnIHN0YXJ0IGNhbGxiYWNrIGZ1bmN0aW9uXHJcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRHJhZ2dlcihmbiwgZHJhZ1ByZXZpZXcpIHtcbiAgbGV0IHNlbGY7XG4gIGxldCBzdGFydFgsIHN0YXJ0WTtcblxuICAvKiogZHJhZyBzdGFydCAqL1xuICBmdW5jdGlvbiBvbkRyYWdTdGFydChldmVudCkge1xuICAgIHNlbGYgPSB0aGlzO1xuICAgIHN0YXJ0WCA9IGV2ZW50LmNsaWVudFg7XG4gICAgc3RhcnRZID0gZXZlbnQuY2xpZW50WTtcblxuICAgIC8vICgxKSBwcmV2ZW50IHByZXZpZXcgaW1hZ2VcbiAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGRyYWdQcmV2aWV3IHx8IGVtcHR5Q2FudmFzKCksIDAsIDApO1xuICAgIH1cblxuICAgIC8vICgyKSBzZXR1cCBkcmFnIGxpc3RlbmVyc1xuXG4gICAgLy8gYXR0YWNoIGRyYWcgKyBjbGVhbnVwIGV2ZW50XG4gICAgLy8gd2UgbmVlZCB0byBkbyB0aGlzIHRvIG1ha2Ugc3VyZSB3ZSB0cmFjayBjdXJzb3JcbiAgICAvLyBtb3ZlbWVudHMgYmVmb3JlIHdlIHJlYWNoIG90aGVyIGRyYWcgZXZlbnQgaGFuZGxlcnMsXG4gICAgLy8gZS5nLiBpbiBjaGlsZCBjb250YWluZXJzLlxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgb25EcmFnLCB0cnVlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCBwcmV2ZW50RGVmYXVsdCwgdHJ1ZSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VuZCcsIG9uRW5kKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgcHJldmVudERlZmF1bHQpO1xuICB9XG4gIGZ1bmN0aW9uIG9uRHJhZyhldmVudCkge1xuICAgIGNvbnN0IGRlbHRhID0ge1xuICAgICAgeDogZXZlbnQuY2xpZW50WCAtIHN0YXJ0WCxcbiAgICAgIHk6IGV2ZW50LmNsaWVudFkgLSBzdGFydFlcbiAgICB9O1xuXG4gICAgLy8gY2FsbCBwcm92aWRlZCBmbiB3aXRoIGV2ZW50LCBkZWx0YVxuICAgIHJldHVybiBmbi5jYWxsKHNlbGYsIGV2ZW50LCBkZWx0YSk7XG4gIH1cbiAgZnVuY3Rpb24gb25FbmQoKSB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBvbkRyYWcsIHRydWUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdlbnRlcicsIHByZXZlbnREZWZhdWx0LCB0cnVlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnZW5kJywgb25FbmQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBwcmV2ZW50RGVmYXVsdCk7XG4gIH1cbiAgcmV0dXJuIG9uRHJhZ1N0YXJ0O1xufVxuZnVuY3Rpb24gcHJldmVudERlZmF1bHQoZXZlbnQpIHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5mdW5jdGlvbiBlbXB0eUNhbnZhcygpIHtcbiAgcmV0dXJuIGRvbWlmeSgnPGNhbnZhcyB3aWR0aD1cIjBcIiBoZWlnaHQ9XCIwXCIgLz4nKTtcbn1cblxuY29uc3Qgbm9vcCQzID0gKCkgPT4ge307XG5cbi8qKlxyXG4gKiBBIGdlbmVyaWMgcG9wdXAgY29tcG9uZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gW3Byb3BzLmNvbnRhaW5lcl1cclxuICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wcy5jbGFzc05hbWVdXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLmRlbGF5SW5pdGlhbEZvY3VzXVxyXG4gKiBAcGFyYW0ge3t4OiBudW1iZXIsIHk6IG51bWJlcn19IFtwcm9wcy5wb3NpdGlvbl1cclxuICogQHBhcmFtIHtudW1iZXJ9IFtwcm9wcy53aWR0aF1cclxuICogQHBhcmFtIHtudW1iZXJ9IFtwcm9wcy5oZWlnaHRdXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uQ2xvc2VcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3Byb3BzLm9uUG9zdEFjdGl2YXRlXVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJvcHMub25Qb3N0RGVhY3RpdmF0ZV1cclxuICogQHBhcmFtIHtib29sZWFufSBbcHJvcHMucmV0dXJuRm9jdXNdXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLmNsb3NlT25Fc2NhcGVdXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy50aXRsZVxyXG4gKiBAcGFyYW0ge1JlZn0gW3JlZl1cclxuICovXG5mdW5jdGlvbiBQb3B1cENvbXBvbmVudChwcm9wcywgZ2xvYmFsUmVmKSB7XG4gIGNvbnN0IHtcbiAgICBjb250YWluZXIsXG4gICAgY2xhc3NOYW1lLFxuICAgIGRlbGF5SW5pdGlhbEZvY3VzLFxuICAgIHBvc2l0aW9uLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBvbkNsb3NlLFxuICAgIG9uUG9zdEFjdGl2YXRlID0gbm9vcCQzLFxuICAgIG9uUG9zdERlYWN0aXZhdGUgPSBub29wJDMsXG4gICAgcmV0dXJuRm9jdXMgPSB0cnVlLFxuICAgIGNsb3NlT25Fc2NhcGUgPSB0cnVlLFxuICAgIHRpdGxlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZm9jdXNUcmFwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBsb2NhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcG9wdXBSZWYgPSBnbG9iYWxSZWYgfHwgbG9jYWxSZWY7XG4gIGNvbnN0IGNvbnRhaW5lck5vZGUgPSB1c2VNZW1vKCgpID0+IGdldENvbnRhaW5lck5vZGUoY29udGFpbmVyKSwgW2NvbnRhaW5lcl0pO1xuICBjb25zdCBoYW5kbGVLZXlkb3duID0gZXZlbnQgPT4ge1xuICAgIC8vIGRvIG5vdCBhbGxvdyBrZXlib2FyZCBldmVudHMgdG8gYnViYmxlXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGNsb3NlT25Fc2NhcGUgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgb25DbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICAvLyByZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGZvY3VzXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgIGlmIChmb2N1c1RyYXBSZWYuY3VycmVudCkge1xuICAgICAgZm9jdXNUcmFwUmVmLmN1cnJlbnQuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH07XG4gIGxldCBzdHlsZSA9IHt9O1xuICBpZiAocG9zaXRpb24pIHtcbiAgICBzdHlsZSA9IHtcbiAgICAgIC4uLnN0eWxlLFxuICAgICAgdG9wOiBwb3NpdGlvbi50b3AgKyAncHgnLFxuICAgICAgbGVmdDogcG9zaXRpb24ubGVmdCArICdweCdcbiAgICB9O1xuICB9XG4gIGlmICh3aWR0aCkge1xuICAgIHN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICB9XG4gIGlmIChoZWlnaHQpIHtcbiAgICBzdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuICB9XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHBvcHVwUmVmLmN1cnJlbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzKTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHBvcHVwUmVmLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzKTtcbiAgICB9O1xuICB9LCBbcG9wdXBSZWZdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgZm9jdXNUcmFwUmVmLmN1cnJlbnQgPSBmb2N1c1RyYXAuY3JlYXRlRm9jdXNUcmFwKHBvcHVwUmVmLmN1cnJlbnQsIHtcbiAgICAgICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM6IHRydWUsXG4gICAgICAgIGRlbGF5SW5pdGlhbEZvY3VzLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBwb3B1cFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3RBY3RpdmF0ZSxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgICAgcmV0dXJuRm9jdXNPbkRlYWN0aXZhdGU6IHJldHVybkZvY3VzXG4gICAgICB9KTtcbiAgICAgIGZvY3VzVHJhcFJlZi5jdXJyZW50LmFjdGl2YXRlKCk7XG4gICAgfVxuICAgIHJldHVybiAoKSA9PiBmb2N1c1RyYXBSZWYuY3VycmVudCAmJiBmb2N1c1RyYXBSZWYuY3VycmVudC5kZWFjdGl2YXRlKCk7XG4gIH0sIFtwb3B1cFJlZl0pO1xuICB1c2VFdmVudCgncHJvcGVydGllc1BhbmVsLmRldGFjaCcsIG9uQ2xvc2UpO1xuICByZXR1cm4gY3JlYXRlUG9ydGFsKGpzeChcImRpdlwiLCB7XG4gICAgXCJhcmlhLWxhYmVsXCI6IHRpdGxlLFxuICAgIHRhYkluZGV4OiAtMSxcbiAgICByZWY6IHBvcHVwUmVmLFxuICAgIG9uS2V5RG93bjogaGFuZGxlS2V5ZG93bixcbiAgICByb2xlOiBcImRpYWxvZ1wiLFxuICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1wb3B1cCcsIGNsYXNzTmFtZSksXG4gICAgc3R5bGU6IHN0eWxlLFxuICAgIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlblxuICB9KSwgY29udGFpbmVyTm9kZSB8fCBkb2N1bWVudC5ib2R5KTtcbn1cbmNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihQb3B1cENvbXBvbmVudCk7XG5Qb3B1cC5UaXRsZSA9IFRpdGxlO1xuUG9wdXAuQm9keSA9IEJvZHk7XG5Qb3B1cC5Gb290ZXIgPSBGb290ZXI7XG5mdW5jdGlvbiBUaXRsZShwcm9wcykge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGRyYWdnYWJsZSxcbiAgICBlbWl0ID0gKCkgPT4ge30sXG4gICAgdGl0bGUsXG4gICAgc2hvd0Nsb3NlQnV0dG9uID0gZmFsc2UsXG4gICAgY2xvc2VCdXR0b25Ub29sdGlwID0gJ0Nsb3NlIHBvcHVwJyxcbiAgICBvbkNsb3NlLFxuICAgIC4uLnJlc3RcbiAgfSA9IHByb3BzO1xuXG4gIC8vIHdlIGNhbid0IHVzZSBzdGF0ZSBhcyB3ZSBuZWVkIHRvXG4gIC8vIG1hbmlwdWxhdGUgdGhpcyBpbnNpZGUgZHJhZ2dpbmcgZXZlbnRzXG4gIGNvbnN0IGNvbnRleHQgPSB1c2VSZWYoe1xuICAgIHN0YXJ0UG9zaXRpb246IG51bGwsXG4gICAgbmV3UG9zaXRpb246IG51bGxcbiAgfSk7XG4gIGNvbnN0IGRyYWdQcmV2aWV3UmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IHRpdGxlUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IG9uTW92ZSA9IChldmVudCwgZGVsdGEpID0+IHtcbiAgICBjYW5jZWwoZXZlbnQpO1xuICAgIGNvbnN0IHtcbiAgICAgIHg6IGR4LFxuICAgICAgeTogZHlcbiAgICB9ID0gZGVsdGE7XG4gICAgY29uc3QgbmV3UG9zaXRpb24gPSB7XG4gICAgICB4OiBjb250ZXh0LmN1cnJlbnQuc3RhcnRQb3NpdGlvbi54ICsgZHgsXG4gICAgICB5OiBjb250ZXh0LmN1cnJlbnQuc3RhcnRQb3NpdGlvbi55ICsgZHlcbiAgICB9O1xuICAgIGNvbnN0IHBvcHVwUGFyZW50ID0gZ2V0UG9wdXBQYXJlbnQodGl0bGVSZWYuY3VycmVudCk7XG4gICAgcG9wdXBQYXJlbnQuc3R5bGUudG9wID0gbmV3UG9zaXRpb24ueSArICdweCc7XG4gICAgcG9wdXBQYXJlbnQuc3R5bGUubGVmdCA9IG5ld1Bvc2l0aW9uLnggKyAncHgnO1xuXG4gICAgLy8gbm90aWZ5IGludGVyZXN0ZWQgcGFydGllc1xuICAgIGVtaXQoJ2RyYWdvdmVyJywge1xuICAgICAgbmV3UG9zaXRpb24sXG4gICAgICBkZWx0YVxuICAgIH0pO1xuICB9O1xuICBjb25zdCBvbk1vdmVTdGFydCA9IGV2ZW50ID0+IHtcbiAgICAvLyBpbml0aWFsaXplIGRyYWcgaGFuZGxlclxuICAgIGNvbnN0IG9uRHJhZ1N0YXJ0ID0gY3JlYXRlRHJhZ2dlcihvbk1vdmUsIGRyYWdQcmV2aWV3UmVmLmN1cnJlbnQpO1xuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBwb3B1cFBhcmVudCA9IGdldFBvcHVwUGFyZW50KHRpdGxlUmVmLmN1cnJlbnQpO1xuICAgIGNvbnN0IGJvdW5kcyA9IHBvcHVwUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnRleHQuY3VycmVudC5zdGFydFBvc2l0aW9uID0ge1xuICAgICAgeDogYm91bmRzLmxlZnQsXG4gICAgICB5OiBib3VuZHMudG9wXG4gICAgfTtcblxuICAgIC8vIG5vdGlmeSBpbnRlcmVzdGVkIHBhcnRpZXNcbiAgICBlbWl0KCdkcmFnc3RhcnQnKTtcbiAgfTtcbiAgY29uc3Qgb25Nb3ZlRW5kID0gKCkgPT4ge1xuICAgIGNvbnRleHQuY3VycmVudC5uZXdQb3NpdGlvbiA9IG51bGw7XG5cbiAgICAvLyBub3RpZnkgaW50ZXJlc3RlZCBwYXJ0aWVzXG4gICAgZW1pdCgnZHJhZ2VuZCcpO1xuICB9O1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLXBvcHVwX19oZWFkZXInLCBkcmFnZ2FibGUgJiYgJ2RyYWdnYWJsZScsIGNsYXNzTmFtZSksXG4gICAgcmVmOiB0aXRsZVJlZixcbiAgICBkcmFnZ2FibGU6IGRyYWdnYWJsZSxcbiAgICBvbkRyYWdTdGFydDogb25Nb3ZlU3RhcnQsXG4gICAgb25EcmFnRW5kOiBvbk1vdmVFbmQsXG4gICAgLi4ucmVzdCxcbiAgICBjaGlsZHJlbjogW2RyYWdnYWJsZSAmJiBqc3hzKEZyYWdtZW50LCB7XG4gICAgICBjaGlsZHJlbjogW2pzeChcImRpdlwiLCB7XG4gICAgICAgIHJlZjogZHJhZ1ByZXZpZXdSZWYsXG4gICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXBvcHVwX19kcmFnLXByZXZpZXdcIlxuICAgICAgfSksIGpzeChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXBvcHVwX19kcmFnLWhhbmRsZVwiLFxuICAgICAgICBjaGlsZHJlbjoganN4KERyYWdJY29uLCB7fSlcbiAgICAgIH0pXVxuICAgIH0pLCBqc3goXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtcG9wdXBfX3RpdGxlXCIsXG4gICAgICBjaGlsZHJlbjogdGl0bGVcbiAgICB9KSwgY2hpbGRyZW4sIHNob3dDbG9zZUJ1dHRvbiAmJiBqc3goXCJidXR0b25cIiwge1xuICAgICAgdGl0bGU6IGNsb3NlQnV0dG9uVG9vbHRpcCxcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXBvcHVwX19jbG9zZVwiLFxuICAgICAgb25DbGljazogb25DbG9zZSxcbiAgICAgIGNoaWxkcmVuOiBqc3goQ2xvc2VJY29uLCB7fSlcbiAgICB9KV1cbiAgfSk7XG59XG5mdW5jdGlvbiBCb2R5KHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgLi4ucmVzdFxuICB9ID0gcHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwge1xuICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1wb3B1cF9fYm9keScsIGNsYXNzTmFtZSksXG4gICAgLi4ucmVzdCxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgfSk7XG59XG5mdW5jdGlvbiBGb290ZXIocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICAuLi5yZXN0XG4gIH0gPSBwcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCB7XG4gICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLXBvcHVwX19mb290ZXInLCBjbGFzc05hbWUpLFxuICAgIC4uLnJlc3QsXG4gICAgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuXG4gIH0pO1xufVxuXG4vLyBoZWxwZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZnVuY3Rpb24gZ2V0UG9wdXBQYXJlbnQobm9kZSkge1xuICByZXR1cm4gbm9kZS5jbG9zZXN0KCcuYmlvLXByb3BlcnRpZXMtcGFuZWwtcG9wdXAnKTtcbn1cbmZ1bmN0aW9uIGNhbmNlbChldmVudCkge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5lck5vZGUobm9kZSkge1xuICBpZiAodHlwZW9mIG5vZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHF1ZXJ5KG5vZGUpO1xuICB9XG4gIHJldHVybiBub2RlO1xufVxuXG5jb25zdCBGRUVMX1BPUFVQX1dJRFRIID0gNzAwO1xuY29uc3QgRkVFTF9QT1BVUF9IRUlHSFQgPSAyNTA7XG5cbi8qKlxyXG4gKiBGRUVMIHBvcHVwIGNvbXBvbmVudCwgYnVpbHQgYXMgYSBzaW5nbGV0b24uIEVtaXRzIGxpZmVjeWNsZSBldmVudHMgYXMgZm9sbG93czpcclxuICogIC0gYGZlZWxQb3B1cC5vcGVuYCAtIGZpcmVkIGJlZm9yZSB0aGUgcG9wdXAgaXMgbW91bnRlZFxyXG4gKiAgLSBgZmVlbFBvcHVwLm9wZW5lZGAgLSBmaXJlZCBhZnRlciB0aGUgcG9wdXAgaXMgbW91bnRlZC4gRXZlbnQgY29udGV4dCBjb250YWlucyB0aGUgRE9NIG5vZGUgb2YgdGhlIHBvcHVwXHJcbiAqICAtIGBmZWVsUG9wdXAuY2xvc2VgIC0gZmlyZWQgYmVmb3JlIHRoZSBwb3B1cCBpcyB1bm1vdW50ZWQuIEV2ZW50IGNvbnRleHQgY29udGFpbnMgdGhlIERPTSBub2RlIG9mIHRoZSBwb3B1cFxyXG4gKiAgLSBgZmVlbFBvcHVwLmNsb3NlZGAgLSBmaXJlZCBhZnRlciB0aGUgcG9wdXAgaXMgdW5tb3VudGVkXHJcbiAqL1xuZnVuY3Rpb24gRkVFTFBvcHVwUm9vdChwcm9wcykge1xuICBjb25zdCB7XG4gICAgZWxlbWVudCxcbiAgICBldmVudEJ1cyA9IHtcbiAgICAgIGZpcmUoKSB7fSxcbiAgICAgIG9uKCkge30sXG4gICAgICBvZmYoKSB7fVxuICAgIH0sXG4gICAgcG9wdXBDb250YWluZXIsXG4gICAgZ2V0UG9wdXBMaW5rcyA9ICgpID0+IFtdXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcHJldkVsZW1lbnQgPSB1c2VQcmV2aW91cyhlbGVtZW50KTtcbiAgY29uc3QgW3BvcHVwQ29uZmlnLCBzZXRQb3B1cENvbmZpZ10gPSB1c2VTdGF0ZSh7fSk7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3NvdXJjZSwgc2V0U291cmNlXSA9IHVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbc291cmNlRWxlbWVudCwgc2V0U291cmNlRWxlbWVudF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgZW1pdCA9ICh0eXBlLCBjb250ZXh0KSA9PiB7XG4gICAgZXZlbnRCdXMuZmlyZSgnZmVlbFBvcHVwLicgKyB0eXBlLCBjb250ZXh0KTtcbiAgfTtcbiAgY29uc3QgaXNPcGVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHJldHVybiAhIW9wZW47XG4gIH0sIFtvcGVuXSk7XG4gIHVzZVVwZGF0ZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFvcGVuKSB7XG4gICAgICBlbWl0KCdjbG9zZWQnKTtcbiAgICB9XG4gIH0sIFtvcGVuXSk7XG4gIGNvbnN0IGhhbmRsZU9wZW4gPSAoZW50cnlJZCwgY29uZmlnLCBfc291cmNlRWxlbWVudCkgPT4ge1xuICAgIHNldFNvdXJjZShlbnRyeUlkKTtcbiAgICBzZXRQb3B1cENvbmZpZyhjb25maWcpO1xuICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgc2V0U291cmNlRWxlbWVudChfc291cmNlRWxlbWVudCk7XG4gICAgZW1pdCgnb3BlbicpO1xuICB9O1xuICBjb25zdCBoYW5kbGVDbG9zZSA9IChldmVudCA9IHt9KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgaWRcbiAgICB9ID0gZXZlbnQ7XG4gICAgaWYgKGlkICYmIGlkICE9PSBzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgc2V0U291cmNlKG51bGwpO1xuICB9O1xuICBjb25zdCBmZWVsUG9wdXBDb250ZXh0ID0ge1xuICAgIG9wZW46IGhhbmRsZU9wZW4sXG4gICAgY2xvc2U6IGhhbmRsZUNsb3NlLFxuICAgIHNvdXJjZVxuICB9O1xuXG4gIC8vIGNsb3NlIHBvcHVwIG9uIGVsZW1lbnQgY2hhbmdlLCBjZi4gaHR0cHM6Ly9naXRodWIuY29tL2JwbW4taW8vcHJvcGVydGllcy1wYW5lbC9pc3N1ZXMvMjcwXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGVsZW1lbnQgJiYgcHJldkVsZW1lbnQgJiYgZWxlbWVudCAhPT0gcHJldkVsZW1lbnQpIHtcbiAgICAgIGhhbmRsZUNsb3NlKCk7XG4gICAgfVxuICB9LCBbZWxlbWVudF0pO1xuXG4gIC8vIGFsbG93IGNsb3NlIGFuZCBvcGVuIHZpYSBldmVudHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVQb3B1cE9wZW4gPSBjb250ZXh0ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZW50cnlJZCxcbiAgICAgICAgcG9wdXBDb25maWcsXG4gICAgICAgIHNvdXJjZUVsZW1lbnRcbiAgICAgIH0gPSBjb250ZXh0O1xuICAgICAgaGFuZGxlT3BlbihlbnRyeUlkLCBwb3B1cENvbmZpZywgc291cmNlRWxlbWVudCk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVJc09wZW4gPSAoKSA9PiB7XG4gICAgICByZXR1cm4gaXNPcGVuKCk7XG4gICAgfTtcbiAgICBldmVudEJ1cy5vbignZmVlbFBvcHVwLl9jbG9zZScsIGhhbmRsZUNsb3NlKTtcbiAgICBldmVudEJ1cy5vbignZmVlbFBvcHVwLl9vcGVuJywgaGFuZGxlUG9wdXBPcGVuKTtcbiAgICBldmVudEJ1cy5vbignZmVlbFBvcHVwLl9pc09wZW4nLCBoYW5kbGVJc09wZW4pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBldmVudEJ1cy5vZmYoJ2ZlZWxQb3B1cC5fY2xvc2UnLCBoYW5kbGVDbG9zZSk7XG4gICAgICBldmVudEJ1cy5vZmYoJ2ZlZWxQb3B1cC5fb3BlbicsIGhhbmRsZU9wZW4pO1xuICAgICAgZXZlbnRCdXMub2ZmKCdmZWVsUG9wdXAuX2lzT3BlbicsIGhhbmRsZUlzT3Blbik7XG4gICAgfTtcbiAgfSwgW2V2ZW50QnVzLCBpc09wZW5dKTtcbiAgcmV0dXJuIGpzeHMoRmVlbFBvcHVwQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBmZWVsUG9wdXBDb250ZXh0LFxuICAgIGNoaWxkcmVuOiBbb3BlbiAmJiBqc3goRmVlbFBvcHVwQ29tcG9uZW50LCB7XG4gICAgICBvbkNsb3NlOiBoYW5kbGVDbG9zZSxcbiAgICAgIGNvbnRhaW5lcjogcG9wdXBDb250YWluZXIsXG4gICAgICBnZXRMaW5rczogZ2V0UG9wdXBMaW5rcyxcbiAgICAgIHNvdXJjZUVsZW1lbnQ6IHNvdXJjZUVsZW1lbnQsXG4gICAgICBlbWl0OiBlbWl0LFxuICAgICAgLi4ucG9wdXBDb25maWdcbiAgICB9KSwgcHJvcHMuY2hpbGRyZW5dXG4gIH0pO1xufVxuZnVuY3Rpb24gRmVlbFBvcHVwQ29tcG9uZW50KHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBjb250YWluZXIsXG4gICAgZ2V0TGlua3MsXG4gICAgaWQsXG4gICAgaG9zdExhbmd1YWdlLFxuICAgIG9uSW5wdXQsXG4gICAgb25DbG9zZSxcbiAgICBwb3NpdGlvbixcbiAgICBzaW5nbGVMaW5lLFxuICAgIHNvdXJjZUVsZW1lbnQsXG4gICAgdGl0bGUsXG4gICAgdG9vbHRpcENvbnRhaW5lcixcbiAgICB0eXBlLFxuICAgIHZhbHVlLFxuICAgIHZhcmlhYmxlcyxcbiAgICBlbWl0XG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IHBvcHVwUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGlzQXV0b0NvbXBsZXRpb25PcGVuID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgaGFuZGxlU2V0UmV0dXJuRm9jdXMgPSAoKSA9PiB7XG4gICAgc291cmNlRWxlbWVudCAmJiBzb3VyY2VFbGVtZW50LmZvY3VzKCk7XG4gIH07XG4gIGNvbnN0IG9uS2V5RG93bkNhcHR1cmUgPSBldmVudCA9PiB7XG4gICAgLy8gd2UgdXNlIGNhcHR1cmUgaGVyZSB0byBtYWtlIHN1cmUgd2UgaGFuZGxlIHRoZSBldmVudCBiZWZvcmUgdGhlIGVkaXRvciBkb2VzXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIGlzQXV0b0NvbXBsZXRpb25PcGVuLmN1cnJlbnQgPSBhdXRvQ29tcGxldGlvbk9wZW4oZXZlbnQudGFyZ2V0KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IG9uS2V5RG93biA9IGV2ZW50ID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgLy8gY2xvc2UgcG9wdXAgb25seSBpZiBhdXRvIGNvbXBsZXRpb24gaXMgbm90IG9wZW5cbiAgICAgIC8vIHdlIG5lZWQgdG8gZG8gY2hlY2sgdGhpcyBiZWNhdXNlIHRoZSBlZGl0b3IgaXMgbm90XG4gICAgICAvLyBzdG9wIHByb3BhZ2F0aW5nIHRoZSBrZXlkb3duIGV2ZW50XG4gICAgICAvLyBjZi4gaHR0cHM6Ly9kaXNjdXNzLmNvZGVtaXJyb3IubmV0L3QvaG93LWNhbi1pLXJlcGxhY2UtdGhlLWRlZmF1bHQtYXV0b2NvbXBsZXRpb24ta2V5bWFwLXY2LzMzMjIvNVxuICAgICAgaWYgKCFpc0F1dG9Db21wbGV0aW9uT3Blbi5jdXJyZW50KSB7XG4gICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgaXNBdXRvQ29tcGxldGlvbk9wZW4uY3VycmVudCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlbWl0KCdvcGVuZWQnLCB7XG4gICAgICBkb21Ob2RlOiBwb3B1cFJlZi5jdXJyZW50XG4gICAgfSk7XG4gICAgcmV0dXJuICgpID0+IGVtaXQoJ2Nsb3NlJywge1xuICAgICAgZG9tTm9kZTogcG9wdXBSZWYuY3VycmVudFxuICAgIH0pO1xuICB9LCBbXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2V0IGZvY3VzIG9uIGVkaXRvciB3aGVuIHBvcHVwIGlzIG9wZW5lZFxuICAgIGlmIChlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtlZGl0b3JSZWZdKTtcbiAgcmV0dXJuIGpzeHMoUG9wdXAsIHtcbiAgICBjb250YWluZXI6IGNvbnRhaW5lcixcbiAgICBjbGFzc05hbWU6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZmVlbC1wb3B1cFwiLFxuICAgIGVtaXQ6IGVtaXQsXG4gICAgcG9zaXRpb246IHBvc2l0aW9uLFxuICAgIHRpdGxlOiB0aXRsZSxcbiAgICBvbkNsb3NlOiBvbkNsb3NlXG5cbiAgICAvLyBoYW5kbGUgZm9jdXMgbWFudWFsbHkgb24gZGVhY3RpdmF0ZVxuICAgICxcbiAgICByZXR1cm5Gb2N1czogZmFsc2UsXG4gICAgY2xvc2VPbkVzY2FwZTogZmFsc2UsXG4gICAgZGVsYXlJbml0aWFsRm9jdXM6IGZhbHNlLFxuICAgIG9uUG9zdERlYWN0aXZhdGU6IGhhbmRsZVNldFJldHVybkZvY3VzLFxuICAgIGhlaWdodDogRkVFTF9QT1BVUF9IRUlHSFQsXG4gICAgd2lkdGg6IEZFRUxfUE9QVVBfV0lEVEgsXG4gICAgcmVmOiBwb3B1cFJlZixcbiAgICBjaGlsZHJlbjogW2pzeChQb3B1cC5UaXRsZSwge1xuICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgZW1pdDogZW1pdCxcbiAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIGNsb3NlQnV0dG9uVG9vbHRpcDogXCJTYXZlIGFuZCBjbG9zZVwiLFxuICAgICAgb25DbG9zZTogb25DbG9zZSxcbiAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgIGNoaWxkcmVuOiBqc3goRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGdldExpbmtzKHR5cGUpLm1hcCgobGluaywgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4ganN4cyhcImFcIiwge1xuICAgICAgICAgICAgcmVsOiBcIm5vcmVmZXJyZXJcIixcbiAgICAgICAgICAgIGhyZWY6IGxpbmsuaHJlZixcbiAgICAgICAgICAgIHRhcmdldDogXCJfYmxhbmtcIixcbiAgICAgICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWZlZWwtcG9wdXBfX3RpdGxlLWxpbmtcIixcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbbGluay50aXRsZSwganN4KExhdW5jaEljb24sIHt9KV1cbiAgICAgICAgICB9LCBpbmRleCk7XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pLCBqc3goUG9wdXAuQm9keSwge1xuICAgICAgY2hpbGRyZW46IGpzeHMoXCJkaXZcIiwge1xuICAgICAgICBvbktleURvd25DYXB0dXJlOiBvbktleURvd25DYXB0dXJlLFxuICAgICAgICBvbktleURvd246IG9uS2V5RG93bixcbiAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZmVlbC1wb3B1cF9fYm9keVwiLFxuICAgICAgICBjaGlsZHJlbjogW3R5cGUgPT09ICdmZWVsJyAmJiBqc3goQ29kZUVkaXRvciwge1xuICAgICAgICAgIGVuYWJsZUd1dHRlcnM6IHRydWUsXG4gICAgICAgICAgaWQ6IHByZWZpeElkJDgoaWQpLFxuICAgICAgICAgIG5hbWU6IGlkLFxuICAgICAgICAgIG9uSW5wdXQ6IG9uSW5wdXQsXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgIHJlZjogZWRpdG9yUmVmLFxuICAgICAgICAgIHRvb2x0aXBDb250YWluZXI6IHRvb2x0aXBDb250YWluZXJcbiAgICAgICAgfSksIHR5cGUgPT09ICdmZWVsZXJzJyAmJiBqc3goQ29kZUVkaXRvciQxLCB7XG4gICAgICAgICAgaWQ6IHByZWZpeElkJDgoaWQpLFxuICAgICAgICAgIGNvbnRlbnRBdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAnYXJpYS1sYWJlbCc6IHRpdGxlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmFibGVHdXR0ZXJzOiB0cnVlLFxuICAgICAgICAgIGhvc3RMYW5ndWFnZTogaG9zdExhbmd1YWdlLFxuICAgICAgICAgIG5hbWU6IGlkLFxuICAgICAgICAgIG9uSW5wdXQ6IG9uSW5wdXQsXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIHJlZjogZWRpdG9yUmVmLFxuICAgICAgICAgIHNpbmdsZUxpbmU6IHNpbmdsZUxpbmUsXG4gICAgICAgICAgdG9vbHRpcENvbnRhaW5lcjogdG9vbHRpcENvbnRhaW5lclxuICAgICAgICB9KV1cbiAgICAgIH0pXG4gICAgfSldXG4gIH0pO1xufVxuXG4vLyBoZWxwZXJzIC8vLy8vLy8vLy8vLy8vLy8vXG5cbmZ1bmN0aW9uIHByZWZpeElkJDgoaWQpIHtcbiAgcmV0dXJuIGBiaW8tcHJvcGVydGllcy1wYW5lbC0ke2lkfWA7XG59XG5mdW5jdGlvbiBhdXRvQ29tcGxldGlvbk9wZW4oZWxlbWVudCkge1xuICByZXR1cm4gZWxlbWVudC5jbG9zZXN0KCcuY20tZWRpdG9yJykucXVlcnlTZWxlY3RvcignLmNtLXRvb2x0aXAtYXV0b2NvbXBsZXRlJyk7XG59XG5cbi8qKlxyXG4gKiBUaGlzIGhvb2sgYmVoYXZlcyBsaWtlIHVzZUVmZmVjdCwgYnV0IGRvZXMgbm90IHRyaWdnZXIgb24gdGhlIGZpcnN0IHJlbmRlci5cclxuICpcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZWZmZWN0XHJcbiAqIEBwYXJhbSB7QXJyYXl9IGRlcHNcclxuICovXG5mdW5jdGlvbiB1c2VVcGRhdGVFZmZlY3QoZWZmZWN0LCBkZXBzKSB7XG4gIGNvbnN0IGlzTW91bnRlZCA9IHVzZVJlZihmYWxzZSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gZWZmZWN0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlzTW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH0sIGRlcHMpO1xufVxuXG5mdW5jdGlvbiBUb2dnbGVTd2l0Y2gocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGlkLFxuICAgIGxhYmVsLFxuICAgIG9uSW5wdXQsXG4gICAgdmFsdWUsXG4gICAgc3dpdGNoZXJMYWJlbCxcbiAgICBpbmxpbmUsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXIsXG4gICAgaW5wdXRSZWYsXG4gICAgdG9vbHRpcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKHZhbHVlKTtcbiAgY29uc3QgaGFuZGxlSW5wdXRDYWxsYmFjayA9IGFzeW5jICgpID0+IHtcbiAgICBvbklucHV0KCF2YWx1ZSk7XG4gIH07XG4gIGNvbnN0IGhhbmRsZUlucHV0ID0gZSA9PiB7XG4gICAgaGFuZGxlSW5wdXRDYWxsYmFjaygpO1xuICAgIHNldExvY2FsVmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICB9O1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbG9jYWxWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRMb2NhbFZhbHVlKHZhbHVlKTtcbiAgfSwgW3ZhbHVlXSk7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtdG9nZ2xlLXN3aXRjaCcsIHtcbiAgICAgIGlubGluZVxuICAgIH0pLFxuICAgIGNoaWxkcmVuOiBbanN4KFwibGFiZWxcIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtbGFiZWxcIixcbiAgICAgIGZvcjogcHJlZml4SWQkNyhpZCksXG4gICAgICBjaGlsZHJlbjoganN4KFRvb2x0aXBXcmFwcGVyLCB7XG4gICAgICAgIHZhbHVlOiB0b29sdGlwLFxuICAgICAgICBmb3JJZDogaWQsXG4gICAgICAgIGVsZW1lbnQ6IHByb3BzLmVsZW1lbnQsXG4gICAgICAgIGNoaWxkcmVuOiBsYWJlbFxuICAgICAgfSlcbiAgICB9KSwganN4cyhcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1maWVsZC13cmFwcGVyXCIsXG4gICAgICBjaGlsZHJlbjogW2pzeHMoXCJsYWJlbFwiLCB7XG4gICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXRvZ2dsZS1zd2l0Y2hfX3N3aXRjaGVyXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbanN4KFwiaW5wdXRcIiwge1xuICAgICAgICAgIHJlZjogaW5wdXRSZWYsXG4gICAgICAgICAgaWQ6IHByZWZpeElkJDcoaWQpLFxuICAgICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWlucHV0XCIsXG4gICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgIG9uRm9jdXM6IG9uRm9jdXMsXG4gICAgICAgICAgb25CbHVyOiBvbkJsdXIsXG4gICAgICAgICAgbmFtZTogaWQsXG4gICAgICAgICAgb25JbnB1dDogaGFuZGxlSW5wdXQsXG4gICAgICAgICAgY2hlY2tlZDogISFsb2NhbFZhbHVlXG4gICAgICAgIH0pLCBqc3goXCJzcGFuXCIsIHtcbiAgICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC10b2dnbGUtc3dpdGNoX19zbGlkZXJcIlxuICAgICAgICB9KV1cbiAgICAgIH0pLCBzd2l0Y2hlckxhYmVsICYmIGpzeChcInBcIiwge1xuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC10b2dnbGUtc3dpdGNoX19sYWJlbFwiLFxuICAgICAgICBjaGlsZHJlbjogc3dpdGNoZXJMYWJlbFxuICAgICAgfSldXG4gICAgfSldXG4gIH0pO1xufVxuXG4vKipcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcy5lbGVtZW50XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5pZFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuZGVzY3JpcHRpb25cclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmxhYmVsXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5zd2l0Y2hlckxhYmVsXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuaW5saW5lXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLmdldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uRm9jdXNcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25CbHVyXHJcbiAqIEBwYXJhbSB7c3RyaW5nfGltcG9ydCgncHJlYWN0JykuQ29tcG9uZW50fSBwcm9wcy50b29sdGlwXHJcbiAqL1xuZnVuY3Rpb24gVG9nZ2xlU3dpdGNoRW50cnkocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgaWQsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgbGFiZWwsXG4gICAgc3dpdGNoZXJMYWJlbCxcbiAgICBpbmxpbmUsXG4gICAgZ2V0VmFsdWUsXG4gICAgc2V0VmFsdWUsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXIsXG4gICAgdG9vbHRpcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHZhbHVlID0gZ2V0VmFsdWUoZWxlbWVudCk7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1lbnRyeSBiaW8tcHJvcGVydGllcy1wYW5lbC10b2dnbGUtc3dpdGNoLWVudHJ5XCIsXG4gICAgXCJkYXRhLWVudHJ5LWlkXCI6IGlkLFxuICAgIGNoaWxkcmVuOiBbanN4KFRvZ2dsZVN3aXRjaCwge1xuICAgICAgaWQ6IGlkLFxuICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgb25JbnB1dDogc2V0VmFsdWUsXG4gICAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgICAgb25CbHVyOiBvbkJsdXIsXG4gICAgICBzd2l0Y2hlckxhYmVsOiBzd2l0Y2hlckxhYmVsLFxuICAgICAgaW5saW5lOiBpbmxpbmUsXG4gICAgICB0b29sdGlwOiB0b29sdGlwLFxuICAgICAgZWxlbWVudDogZWxlbWVudFxuICAgIH0pLCBqc3goRGVzY3JpcHRpb24sIHtcbiAgICAgIGZvcklkOiBpZCxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICB2YWx1ZTogZGVzY3JpcHRpb25cbiAgICB9KV1cbiAgfSk7XG59XG5mdW5jdGlvbiBpc0VkaXRlZCQ4KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgISFub2RlLmNoZWNrZWQ7XG59XG5cbi8vIGhlbHBlcnMgLy8vLy8vLy8vLy8vLy8vLy9cblxuZnVuY3Rpb24gcHJlZml4SWQkNyhpZCkge1xuICByZXR1cm4gYGJpby1wcm9wZXJ0aWVzLXBhbmVsLSR7aWR9YDtcbn1cblxuZnVuY3Rpb24gTnVtYmVyRmllbGQocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGRlYm91bmNlLFxuICAgIGRpc2FibGVkLFxuICAgIGRpc3BsYXlMYWJlbCA9IHRydWUsXG4gICAgaWQsXG4gICAgaW5wdXRSZWYsXG4gICAgbGFiZWwsXG4gICAgbWF4LFxuICAgIG1pbixcbiAgICBvbklucHV0LFxuICAgIHN0ZXAsXG4gICAgdmFsdWUgPSAnJyxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1clxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKHZhbHVlKTtcbiAgY29uc3QgaGFuZGxlSW5wdXRDYWxsYmFjayA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBkZWJvdW5jZSh0YXJnZXQgPT4ge1xuICAgICAgaWYgKHRhcmdldC52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICBvbklucHV0KHRhcmdldC52YWx1ZSA/IHBhcnNlRmxvYXQodGFyZ2V0LnZhbHVlKSA6IHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtvbklucHV0LCBkZWJvdW5jZV0pO1xuICBjb25zdCBoYW5kbGVJbnB1dCA9IGUgPT4ge1xuICAgIGhhbmRsZUlucHV0Q2FsbGJhY2soZS50YXJnZXQpO1xuICAgIHNldExvY2FsVmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICB9O1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbG9jYWxWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRMb2NhbFZhbHVlKHZhbHVlKTtcbiAgfSwgW3ZhbHVlXSk7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1udW1iZXJmaWVsZFwiLFxuICAgIGNoaWxkcmVuOiBbZGlzcGxheUxhYmVsICYmIGpzeChcImxhYmVsXCIsIHtcbiAgICAgIGZvcjogcHJlZml4SWQkNihpZCksXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1sYWJlbFwiLFxuICAgICAgY2hpbGRyZW46IGxhYmVsXG4gICAgfSksIGpzeChcImlucHV0XCIsIHtcbiAgICAgIGlkOiBwcmVmaXhJZCQ2KGlkKSxcbiAgICAgIHJlZjogaW5wdXRSZWYsXG4gICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgbmFtZTogaWQsXG4gICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICBhdXRvQ29tcGxldGU6IFwib2ZmXCIsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dFwiLFxuICAgICAgbWF4OiBtYXgsXG4gICAgICBtaW46IG1pbixcbiAgICAgIG9uSW5wdXQ6IGhhbmRsZUlucHV0LFxuICAgICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICAgIG9uQmx1cjogb25CbHVyLFxuICAgICAgc3RlcDogc3RlcCxcbiAgICAgIHZhbHVlOiBsb2NhbFZhbHVlXG4gICAgfSldXG4gIH0pO1xufVxuXG4vKipcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGVib3VuY2VcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmRlc2NyaXB0aW9uXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGlzYWJsZWRcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzLmVsZW1lbnRcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuZ2V0VmFsdWVcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmlkXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5sYWJlbFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMubWF4XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5taW5cclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuc2V0VmFsdWVcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25Gb2N1c1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkJsdXJcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLnN0ZXBcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMudmFsaWRhdGVcclxuICovXG5mdW5jdGlvbiBOdW1iZXJGaWVsZEVudHJ5KHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBkZWJvdW5jZSxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBkaXNhYmxlZCxcbiAgICBlbGVtZW50LFxuICAgIGdldFZhbHVlLFxuICAgIGlkLFxuICAgIGxhYmVsLFxuICAgIG1heCxcbiAgICBtaW4sXG4gICAgc2V0VmFsdWUsXG4gICAgc3RlcCxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICB2YWxpZGF0ZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGdsb2JhbEVycm9yID0gdXNlRXJyb3IoaWQpO1xuICBjb25zdCBbbG9jYWxFcnJvciwgc2V0TG9jYWxFcnJvcl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgbGV0IHZhbHVlID0gZ2V0VmFsdWUoZWxlbWVudCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzRnVuY3Rpb24odmFsaWRhdGUpKSB7XG4gICAgICBjb25zdCBuZXdWYWxpZGF0aW9uRXJyb3IgPSB2YWxpZGF0ZSh2YWx1ZSkgfHwgbnVsbDtcbiAgICAgIHNldExvY2FsRXJyb3IobmV3VmFsaWRhdGlvbkVycm9yKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgdmFsaWRhdGVdKTtcbiAgY29uc3Qgb25JbnB1dCA9IG5ld1ZhbHVlID0+IHtcbiAgICBsZXQgbmV3VmFsaWRhdGlvbkVycm9yID0gbnVsbDtcbiAgICBpZiAoaXNGdW5jdGlvbih2YWxpZGF0ZSkpIHtcbiAgICAgIG5ld1ZhbGlkYXRpb25FcnJvciA9IHZhbGlkYXRlKG5ld1ZhbHVlKSB8fCBudWxsO1xuICAgIH1cbiAgICBzZXRWYWx1ZShuZXdWYWx1ZSwgbmV3VmFsaWRhdGlvbkVycm9yKTtcbiAgICBzZXRMb2NhbEVycm9yKG5ld1ZhbGlkYXRpb25FcnJvcik7XG4gIH07XG4gIGNvbnN0IGVycm9yID0gZ2xvYmFsRXJyb3IgfHwgbG9jYWxFcnJvcjtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1lbnRyeScsIGVycm9yID8gJ2hhcy1lcnJvcicgOiAnJyksXG4gICAgXCJkYXRhLWVudHJ5LWlkXCI6IGlkLFxuICAgIGNoaWxkcmVuOiBbanN4KE51bWJlckZpZWxkLCB7XG4gICAgICBkZWJvdW5jZTogZGVib3VuY2UsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICBpZDogaWQsXG4gICAgICBsYWJlbDogbGFiZWwsXG4gICAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgICAgb25CbHVyOiBvbkJsdXIsXG4gICAgICBvbklucHV0OiBvbklucHV0LFxuICAgICAgbWF4OiBtYXgsXG4gICAgICBtaW46IG1pbixcbiAgICAgIHN0ZXA6IHN0ZXAsXG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICB9LCBlbGVtZW50KSwgZXJyb3IgJiYganN4KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWVycm9yXCIsXG4gICAgICBjaGlsZHJlbjogZXJyb3JcbiAgICB9KSwganN4KERlc2NyaXB0aW9uLCB7XG4gICAgICBmb3JJZDogaWQsXG4gICAgICBlbGVtZW50OiBlbGVtZW50LFxuICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uXG4gICAgfSldXG4gIH0pO1xufVxuZnVuY3Rpb24gaXNFZGl0ZWQkNyhub2RlKSB7XG4gIHJldHVybiBub2RlICYmICEhbm9kZS52YWx1ZTtcbn1cblxuLy8gaGVscGVycyAvLy8vLy8vLy8vLy8vLy8vL1xuXG5mdW5jdGlvbiBwcmVmaXhJZCQ2KGlkKSB7XG4gIHJldHVybiBgYmlvLXByb3BlcnRpZXMtcGFuZWwtJHtpZH1gO1xufVxuXG5jb25zdCBub29wJDIgPSAoKSA9PiB7fTtcbmZ1bmN0aW9uIEZlZWxUZXh0ZmllbGRDb21wb25lbnQocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGRlYm91bmNlLFxuICAgIGlkLFxuICAgIGVsZW1lbnQsXG4gICAgbGFiZWwsXG4gICAgaG9zdExhbmd1YWdlLFxuICAgIG9uSW5wdXQsXG4gICAgb25FcnJvcixcbiAgICBwbGFjZWhvbGRlcixcbiAgICBmZWVsLFxuICAgIHZhbHVlID0gJycsXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICB2YXJpYWJsZXMsXG4gICAgc2luZ2xlTGluZSxcbiAgICB0b29sdGlwQ29udGFpbmVyLFxuICAgIE9wdGlvbmFsQ29tcG9uZW50ID0gT3B0aW9uYWxGZWVsSW5wdXQsXG4gICAgdG9vbHRpcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtsb2NhbFZhbHVlLCBfc2V0TG9jYWxWYWx1ZV0gPSB1c2VTdGF0ZSh2YWx1ZSk7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVNob3dFbnRyeUV2ZW50KGlkKTtcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGZlZWxBY3RpdmUgPSBpc1N0cmluZyhsb2NhbFZhbHVlKSAmJiBsb2NhbFZhbHVlLnN0YXJ0c1dpdGgoJz0nKSB8fCBmZWVsID09PSAncmVxdWlyZWQnO1xuICBjb25zdCBmZWVsT25seVZhbHVlID0gaXNTdHJpbmcobG9jYWxWYWx1ZSkgJiYgbG9jYWxWYWx1ZS5zdGFydHNXaXRoKCc9JykgPyBsb2NhbFZhbHVlLnN1YnN0cmluZygxKSA6IGxvY2FsVmFsdWU7XG4gIGNvbnN0IFtmb2N1cywgX3NldEZvY3VzXSA9IHVzZVN0YXRlKHVuZGVmaW5lZCk7XG4gIGNvbnN0IHtcbiAgICBvcGVuOiBvcGVuUG9wdXAsXG4gICAgc291cmNlOiBwb3B1cFNvdXJjZVxuICB9ID0gdXNlQ29udGV4dChGZWVsUG9wdXBDb250ZXh0KTtcbiAgY29uc3QgcG9wdU9wZW4gPSBwb3B1cFNvdXJjZSA9PT0gaWQ7XG4gIGNvbnN0IHNldEZvY3VzID0gKG9mZnNldCA9IDApID0+IHtcbiAgICBjb25zdCBoYXNGb2N1cyA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuXG4gICAgLy8gS2VlcCBjYXJldCBwb3NpdGlvbiBpZiBpdCBpcyBhbHJlYWR5IGZvY3VzZWQsIG90aGVyd2lzZSBmb2N1cyBhdCB0aGUgZW5kXG4gICAgY29uc3QgcG9zaXRpb24gPSBoYXNGb2N1cyA/IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgOiBJbmZpbml0eTtcbiAgICBfc2V0Rm9jdXMocG9zaXRpb24gKyBvZmZzZXQpO1xuICB9O1xuICBjb25zdCBoYW5kbGVJbnB1dENhbGxiYWNrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGRlYm91bmNlKG5ld1ZhbHVlID0+IHtcbiAgICAgIG9uSW5wdXQobmV3VmFsdWUpO1xuICAgIH0pO1xuICB9LCBbb25JbnB1dCwgZGVib3VuY2VdKTtcbiAgY29uc3Qgc2V0TG9jYWxWYWx1ZSA9IG5ld1ZhbHVlID0+IHtcbiAgICBfc2V0TG9jYWxWYWx1ZShuZXdWYWx1ZSk7XG4gICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmV3VmFsdWUgPT09ICcnIHx8IG5ld1ZhbHVlID09PSAnPScpIHtcbiAgICAgIGhhbmRsZUlucHV0Q2FsbGJhY2sodW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlSW5wdXRDYWxsYmFjayhuZXdWYWx1ZSk7XG4gICAgfVxuICB9O1xuICBjb25zdCBoYW5kbGVGZWVsVG9nZ2xlID0gdXNlU3RhdGljQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChmZWVsID09PSAncmVxdWlyZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghZmVlbEFjdGl2ZSkge1xuICAgICAgc2V0TG9jYWxWYWx1ZSgnPScgKyBsb2NhbFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TG9jYWxWYWx1ZShmZWVsT25seVZhbHVlKTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBoYW5kbGVMb2NhbElucHV0ID0gbmV3VmFsdWUgPT4ge1xuICAgIGlmIChmZWVsQWN0aXZlKSB7XG4gICAgICBuZXdWYWx1ZSA9ICc9JyArIG5ld1ZhbHVlO1xuICAgIH1cbiAgICBpZiAobmV3VmFsdWUgPT09IGxvY2FsVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0TG9jYWxWYWx1ZShuZXdWYWx1ZSk7XG4gICAgaWYgKCFmZWVsQWN0aXZlICYmIGlzU3RyaW5nKG5ld1ZhbHVlKSAmJiBuZXdWYWx1ZS5zdGFydHNXaXRoKCc9JykpIHtcbiAgICAgIC8vIGZvY3VzIGlzIGJlaGluZCBgPWAgc2lnbiB0aGF0IHdpbGwgYmUgcmVtb3ZlZFxuICAgICAgc2V0Rm9jdXMoLTEpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgaGFuZGxlTGludCA9IHVzZVN0YXRpY0NhbGxiYWNrKChsaW50ID0gW10pID0+IHtcbiAgICBjb25zdCBzeW50YXhFcnJvciA9IGxpbnQuc29tZShyZXBvcnQgPT4gcmVwb3J0LnR5cGUgPT09ICdTeW50YXggRXJyb3InKTtcbiAgICBpZiAoc3ludGF4RXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoJ1VucGFyc2FibGUgRkVFTCBleHByZXNzaW9uLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkVycm9yKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9KTtcbiAgY29uc3QgaGFuZGxlUG9wdXBPcGVuID0gKHR5cGUgPSAnZmVlbCcpID0+IHtcbiAgICBjb25zdCBwb3B1cE9wdGlvbnMgPSB7XG4gICAgICBpZCxcbiAgICAgIGhvc3RMYW5ndWFnZSxcbiAgICAgIG9uSW5wdXQ6IGhhbmRsZUxvY2FsSW5wdXQsXG4gICAgICBwb3NpdGlvbjogY2FsY3VsYXRlUG9wdXBQb3NpdGlvbihjb250YWluZXJSZWYuY3VycmVudCksXG4gICAgICBzaW5nbGVMaW5lLFxuICAgICAgdGl0bGU6IGdldFBvcHVwVGl0bGUoZWxlbWVudCwgbGFiZWwpLFxuICAgICAgdG9vbHRpcENvbnRhaW5lcixcbiAgICAgIHR5cGUsXG4gICAgICB2YWx1ZTogZmVlbE9ubHlWYWx1ZSxcbiAgICAgIHZhcmlhYmxlc1xuICAgIH07XG4gICAgb3BlblBvcHVwKGlkLCBwb3B1cE9wdGlvbnMsIGVkaXRvclJlZi5jdXJyZW50KTtcbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGZvY3VzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoZm9jdXMpO1xuICAgICAgX3NldEZvY3VzKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbZm9jdXNdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGxvY2FsVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRlcm5hbCB2YWx1ZSBjaGFuZ2UgcmVtb3ZlZCBjb250ZW50ID0+IGtlZXAgRkVFTCBjb25maWd1cmF0aW9uXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgc2V0TG9jYWxWYWx1ZShmZWVsQWN0aXZlID8gJz0nIDogJycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRMb2NhbFZhbHVlKHZhbHVlKTtcbiAgfSwgW3ZhbHVlXSk7XG5cbiAgLy8gY29weS1wYXN0ZSBpbnRlZ3JhdGlvblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvcHlIYW5kbGVyID0gZXZlbnQgPT4ge1xuICAgICAgaWYgKCFmZWVsQWN0aXZlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LmNsaXBib2FyZERhdGEuc2V0RGF0YSgnYXBwbGljYXRpb24vRkVFTCcsIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpKTtcbiAgICB9O1xuICAgIGNvbnN0IHBhc3RlSGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgICAgIGlmIChmZWVsQWN0aXZlIHx8IHBvcHVPcGVuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ2FwcGxpY2F0aW9uL0ZFRUwnKTtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUZlZWxUb2dnbGUoKTtcbiAgICAgICAgICBzZXRGb2N1cygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvcHknLCBjb3B5SGFuZGxlcik7XG4gICAgY29udGFpbmVyUmVmLmN1cnJlbnQuYWRkRXZlbnRMaXN0ZW5lcignY3V0JywgY29weUhhbmRsZXIpO1xuICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgcGFzdGVIYW5kbGVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29weScsIGNvcHlIYW5kbGVyKTtcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2N1dCcsIGNvcHlIYW5kbGVyKTtcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgcGFzdGVIYW5kbGVyKTtcbiAgICB9O1xuICB9LCBbY29udGFpbmVyUmVmLCBmZWVsQWN0aXZlLCBoYW5kbGVGZWVsVG9nZ2xlLCBzZXRGb2N1c10pO1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWZlZWwtZW50cnknLCB7XG4gICAgICAnZmVlbC1hY3RpdmUnOiBmZWVsQWN0aXZlXG4gICAgfSksXG4gICAgY2hpbGRyZW46IFtqc3hzKFwibGFiZWxcIiwge1xuICAgICAgZm9yOiBwcmVmaXhJZCQ1KGlkKSxcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWxhYmVsXCIsXG4gICAgICBvbkNsaWNrOiAoKSA9PiBzZXRGb2N1cygpLFxuICAgICAgY2hpbGRyZW46IFtqc3goVG9vbHRpcFdyYXBwZXIsIHtcbiAgICAgICAgdmFsdWU6IHRvb2x0aXAsXG4gICAgICAgIGZvcklkOiBpZCxcbiAgICAgICAgZWxlbWVudDogcHJvcHMuZWxlbWVudCxcbiAgICAgICAgY2hpbGRyZW46IGxhYmVsXG4gICAgICB9KSwganN4KEZlZWxJY29uLCB7XG4gICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgZmVlbDogZmVlbCxcbiAgICAgICAgb25DbGljazogaGFuZGxlRmVlbFRvZ2dsZSxcbiAgICAgICAgYWN0aXZlOiBmZWVsQWN0aXZlXG4gICAgICB9KV1cbiAgICB9KSwganN4cyhcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1mZWVsLWNvbnRhaW5lclwiLFxuICAgICAgcmVmOiBjb250YWluZXJSZWYsXG4gICAgICBjaGlsZHJlbjogW2pzeChGZWVsSW5kaWNhdG9yLCB7XG4gICAgICAgIGFjdGl2ZTogZmVlbEFjdGl2ZSxcbiAgICAgICAgZGlzYWJsZWQ6IGZlZWwgIT09ICdvcHRpb25hbCcgfHwgZGlzYWJsZWQsXG4gICAgICAgIG9uQ2xpY2s6IGhhbmRsZUZlZWxUb2dnbGVcbiAgICAgIH0pLCBmZWVsQWN0aXZlID8ganN4KENvZGVFZGl0b3IsIHtcbiAgICAgICAgbmFtZTogaWQsXG4gICAgICAgIG9uSW5wdXQ6IGhhbmRsZUxvY2FsSW5wdXQsXG4gICAgICAgIGNvbnRlbnRBdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgJ2lkJzogcHJlZml4SWQkNShpZCksXG4gICAgICAgICAgJ2FyaWEtbGFiZWwnOiBsYWJlbFxuICAgICAgICB9LFxuICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICAgIHBvcHVwT3BlbjogcG9wdU9wZW4sXG4gICAgICAgIG9uRmVlbFRvZ2dsZTogKCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUZlZWxUb2dnbGUoKTtcbiAgICAgICAgICBzZXRGb2N1cyh0cnVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25MaW50OiBoYW5kbGVMaW50LFxuICAgICAgICBvblBvcHVwT3BlbjogaGFuZGxlUG9wdXBPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXG4gICAgICAgIHZhbHVlOiBmZWVsT25seVZhbHVlLFxuICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgICAgcmVmOiBlZGl0b3JSZWYsXG4gICAgICAgIHRvb2x0aXBDb250YWluZXI6IHRvb2x0aXBDb250YWluZXJcbiAgICAgIH0pIDoganN4KE9wdGlvbmFsQ29tcG9uZW50LCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBwb3B1cE9wZW46IHBvcHVPcGVuLFxuICAgICAgICBvbklucHV0OiBoYW5kbGVMb2NhbElucHV0LFxuICAgICAgICBjb250ZW50QXR0cmlidXRlczoge1xuICAgICAgICAgICdpZCc6IHByZWZpeElkJDUoaWQpLFxuICAgICAgICAgICdhcmlhLWxhYmVsJzogbGFiZWxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsdWU6IGxvY2FsVmFsdWUsXG4gICAgICAgIHJlZjogZWRpdG9yUmVmLFxuICAgICAgICBvblBvcHVwT3BlbjogaGFuZGxlUG9wdXBPcGVuLFxuICAgICAgICBjb250YWluZXJSZWY6IGNvbnRhaW5lclJlZlxuICAgICAgfSldXG4gICAgfSldXG4gIH0pO1xufVxuY29uc3QgRmVlbFRleHRmaWVsZCA9IHdpdGhBdXRvQ2xvc2VQb3B1cChGZWVsVGV4dGZpZWxkQ29tcG9uZW50KTtcbmNvbnN0IE9wdGlvbmFsRmVlbElucHV0ID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgZGlzYWJsZWQsXG4gICAgb25JbnB1dCxcbiAgICB2YWx1ZSxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICBwbGFjZWhvbGRlclxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKCk7XG5cbiAgLy8gVG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBGRUVMIGVkaXRvciwgc2V0IGZvY3VzIGF0IHN0YXJ0IG9mIGlucHV0XG4gIC8vIHRoaXMgZW5zdXJlcyBjbGVhbiBlZGl0aW5nIGV4cGVyaWVuY2Ugd2hlbiBzd2l0Y2hpbmcgd2l0aCB0aGUga2V5Ym9hcmRcbiAgcmVmLmN1cnJlbnQgPSB7XG4gICAgZm9jdXM6IHBvc2l0aW9uID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChwb3NpdGlvbiA+IHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgIHBvc2l0aW9uID0gdmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHBvc2l0aW9uLCBwb3NpdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICByZXR1cm4ganN4KFwiaW5wdXRcIiwge1xuICAgIGlkOiBwcmVmaXhJZCQ1KGlkKSxcbiAgICB0eXBlOiBcInRleHRcIixcbiAgICByZWY6IGlucHV0UmVmLFxuICAgIG5hbWU6IGlkLFxuICAgIHNwZWxsQ2hlY2s6IFwiZmFsc2VcIixcbiAgICBhdXRvQ29tcGxldGU6IFwib2ZmXCIsXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWlucHV0XCIsXG4gICAgb25JbnB1dDogZSA9PiBvbklucHV0KGUudGFyZ2V0LnZhbHVlKSxcbiAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgIG9uQmx1cjogb25CbHVyLFxuICAgIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlcixcbiAgICB2YWx1ZTogdmFsdWUgfHwgJydcbiAgfSk7XG59KTtcbmNvbnN0IE9wdGlvbmFsRmVlbE51bWJlckZpZWxkID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgZGVib3VuY2UsXG4gICAgZGlzYWJsZWQsXG4gICAgb25JbnB1dCxcbiAgICB2YWx1ZSxcbiAgICBtaW4sXG4gICAgbWF4LFxuICAgIHN0ZXAsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXJcbiAgfSA9IHByb3BzO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZigpO1xuXG4gIC8vIFRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgRkVFTCBlZGl0b3IsIHNldCBmb2N1cyBhdCBzdGFydCBvZiBpbnB1dFxuICAvLyB0aGlzIGVuc3VyZXMgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlIHdoZW4gc3dpdGNoaW5nIHdpdGggdGhlIGtleWJvYXJkXG4gIHJlZi5jdXJyZW50ID0ge1xuICAgIGZvY3VzOiBwb3NpdGlvbiA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoIWlucHV0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICBpZiAodHlwZW9mIHBvc2l0aW9uID09PSAnbnVtYmVyJyAmJiBwb3NpdGlvbiAhPT0gSW5maW5pdHkpIHtcbiAgICAgICAgaWYgKHBvc2l0aW9uID4gdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgcG9zaXRpb24gPSB2YWx1ZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zaXRpb24sIHBvc2l0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHJldHVybiBqc3goTnVtYmVyRmllbGQsIHtcbiAgICBpZDogaWQsXG4gICAgZGVib3VuY2U6IGRlYm91bmNlLFxuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBkaXNwbGF5TGFiZWw6IGZhbHNlLFxuICAgIGlucHV0UmVmOiBpbnB1dFJlZixcbiAgICBtYXg6IG1heCxcbiAgICBtaW46IG1pbixcbiAgICBvbklucHV0OiBvbklucHV0LFxuICAgIHN0ZXA6IHN0ZXAsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIG9uRm9jdXM6IG9uRm9jdXMsXG4gICAgb25CbHVyOiBvbkJsdXJcbiAgfSk7XG59KTtcbmNvbnN0IE9wdGlvbmFsRmVlbFRleHRBcmVhID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgZGlzYWJsZWQsXG4gICAgb25JbnB1dCxcbiAgICB2YWx1ZSxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICBwbGFjZWhvbGRlclxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKCk7XG5cbiAgLy8gVG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBGRUVMIGVkaXRvciwgc2V0IGZvY3VzIGF0IHN0YXJ0IG9mIGlucHV0XG4gIC8vIHRoaXMgZW5zdXJlcyBjbGVhbiBlZGl0aW5nIGV4cGVyaWVuY2Ugd2hlbiBzd2l0Y2hpbmcgd2l0aCB0aGUga2V5Ym9hcmRcbiAgcmVmLmN1cnJlbnQgPSB7XG4gICAgZm9jdXM6ICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKDAsIDApO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGpzeChcInRleHRhcmVhXCIsIHtcbiAgICBpZDogcHJlZml4SWQkNShpZCksXG4gICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgcmVmOiBpbnB1dFJlZixcbiAgICBuYW1lOiBpZCxcbiAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgYXV0b0NvbXBsZXRlOiBcIm9mZlwiLFxuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dFwiLFxuICAgIG9uSW5wdXQ6IGUgPT4gb25JbnB1dChlLnRhcmdldC52YWx1ZSksXG4gICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICBvbkJsdXI6IG9uQmx1cixcbiAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXG4gICAgdmFsdWU6IHZhbHVlIHx8ICcnLFxuICAgIFwiZGF0YS1ncmFtbVwiOiBcImZhbHNlXCJcbiAgfSk7XG59KTtcbmNvbnN0IE9wdGlvbmFsRmVlbFRvZ2dsZVN3aXRjaCA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIGlkLFxuICAgIG9uSW5wdXQsXG4gICAgdmFsdWUsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXIsXG4gICAgc3dpdGNoZXJMYWJlbFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKCk7XG5cbiAgLy8gVG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBGRUVMIGVkaXRvciwgc2V0IGZvY3VzIGF0IHN0YXJ0IG9mIGlucHV0XG4gIC8vIHRoaXMgZW5zdXJlcyBjbGVhbiBlZGl0aW5nIGV4cGVyaWVuY2Ugd2hlbiBzd2l0Y2hpbmcgd2l0aCB0aGUga2V5Ym9hcmRcbiAgcmVmLmN1cnJlbnQgPSB7XG4gICAgZm9jdXM6ICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBqc3goVG9nZ2xlU3dpdGNoLCB7XG4gICAgaWQ6IGlkLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBpbnB1dFJlZjogaW5wdXRSZWYsXG4gICAgb25JbnB1dDogb25JbnB1dCxcbiAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgIG9uQmx1cjogb25CbHVyLFxuICAgIHN3aXRjaGVyTGFiZWw6IHN3aXRjaGVyTGFiZWxcbiAgfSk7XG59KTtcbmNvbnN0IE9wdGlvbmFsRmVlbENoZWNrYm94ID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgZGlzYWJsZWQsXG4gICAgb25JbnB1dCxcbiAgICB2YWx1ZSxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1clxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9ICh7XG4gICAgdGFyZ2V0XG4gIH0pID0+IHtcbiAgICBvbklucHV0KHRhcmdldC5jaGVja2VkKTtcbiAgfTtcblxuICAvLyBUbyBiZSBjb25zaXN0ZW50IHdpdGggdGhlIEZFRUwgZWRpdG9yLCBzZXQgZm9jdXMgYXQgc3RhcnQgb2YgaW5wdXRcbiAgLy8gdGhpcyBlbnN1cmVzIGNsZWFuIGVkaXRpbmcgZXhwZXJpZW5jZSB3aGVuIHN3aXRjaGluZyB3aXRoIHRoZSBrZXlib2FyZFxuICByZWYuY3VycmVudCA9IHtcbiAgICBmb2N1czogKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGpzeChcImlucHV0XCIsIHtcbiAgICByZWY6IGlucHV0UmVmLFxuICAgIGlkOiBwcmVmaXhJZCQ1KGlkKSxcbiAgICBuYW1lOiBpZCxcbiAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgIG9uQmx1cjogb25CbHVyLFxuICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dFwiLFxuICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgY2hlY2tlZDogdmFsdWUsXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkXG4gIH0pO1xufSk7XG5cbi8qKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzLmVsZW1lbnRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmlkXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5kZXNjcmlwdGlvblxyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHByb3BzLmRlYm91bmNlXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGlzYWJsZWRcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5mZWVsXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5sYWJlbFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5nZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5zZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy50b29sdGlwQ29udGFpbmVyXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnZhbGlkYXRlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNob3dcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuZXhhbXBsZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy52YXJpYWJsZXNcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25Gb2N1c1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkJsdXJcclxuICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wcy5wbGFjZWhvbGRlcl1cclxuICogQHBhcmFtIHtzdHJpbmd8aW1wb3J0KCdwcmVhY3QnKS5Db21wb25lbnR9IHByb3BzLnRvb2x0aXBcclxuICovXG5mdW5jdGlvbiBGZWVsRW50cnkocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgaWQsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgZGVib3VuY2UsXG4gICAgZGlzYWJsZWQsXG4gICAgZmVlbCxcbiAgICBsYWJlbCxcbiAgICBnZXRWYWx1ZSxcbiAgICBzZXRWYWx1ZSxcbiAgICB0b29sdGlwQ29udGFpbmVyLFxuICAgIGhvc3RMYW5ndWFnZSxcbiAgICBzaW5nbGVMaW5lLFxuICAgIHZhbGlkYXRlLFxuICAgIHNob3cgPSBub29wJDIsXG4gICAgZXhhbXBsZSxcbiAgICB2YXJpYWJsZXMsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXIsXG4gICAgcGxhY2Vob2xkZXIsXG4gICAgdG9vbHRpcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFt2YWxpZGF0aW9uRXJyb3IsIHNldFZhbGlkYXRpb25FcnJvcl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW2xvY2FsRXJyb3IsIHNldExvY2FsRXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gIGxldCB2YWx1ZSA9IGdldFZhbHVlKGVsZW1lbnQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0Z1bmN0aW9uKHZhbGlkYXRlKSkge1xuICAgICAgY29uc3QgbmV3VmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGUodmFsdWUpIHx8IG51bGw7XG4gICAgICBzZXRWYWxpZGF0aW9uRXJyb3IobmV3VmFsaWRhdGlvbkVycm9yKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgdmFsaWRhdGVdKTtcbiAgY29uc3Qgb25JbnB1dCA9IHVzZVN0YXRpY0NhbGxiYWNrKG5ld1ZhbHVlID0+IHtcbiAgICBsZXQgbmV3VmFsaWRhdGlvbkVycm9yID0gbnVsbDtcbiAgICBpZiAoaXNGdW5jdGlvbih2YWxpZGF0ZSkpIHtcbiAgICAgIG5ld1ZhbGlkYXRpb25FcnJvciA9IHZhbGlkYXRlKG5ld1ZhbHVlKSB8fCBudWxsO1xuICAgIH1cblxuICAgIC8vIGRvbid0IGNyZWF0ZSBtdWx0aXBsZSBjb21tYW5kU3RhY2sgZW50cmllcyBmb3IgdGhlIHNhbWUgdmFsdWVcbiAgICBpZiAobmV3VmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICBzZXRWYWx1ZShuZXdWYWx1ZSwgbmV3VmFsaWRhdGlvbkVycm9yKTtcbiAgICB9XG4gICAgc2V0VmFsaWRhdGlvbkVycm9yKG5ld1ZhbGlkYXRpb25FcnJvcik7XG4gIH0pO1xuICBjb25zdCBvbkVycm9yID0gdXNlQ2FsbGJhY2soZXJyID0+IHtcbiAgICBzZXRMb2NhbEVycm9yKGVycik7XG4gIH0sIFtdKTtcbiAgY29uc3QgdGVtcG9yYXJ5RXJyb3IgPSB1c2VFcnJvcihpZCk7XG4gIGNvbnN0IGVycm9yID0gdGVtcG9yYXJ5RXJyb3IgfHwgbG9jYWxFcnJvciB8fCB2YWxpZGF0aW9uRXJyb3I7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogY2xhc3NuYW1lcyhwcm9wcy5jbGFzcywgJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWVudHJ5JywgZXJyb3IgPyAnaGFzLWVycm9yJyA6ICcnKSxcbiAgICBcImRhdGEtZW50cnktaWRcIjogaWQsXG4gICAgY2hpbGRyZW46IFtjcmVhdGVFbGVtZW50KEZlZWxUZXh0ZmllbGQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVib3VuY2U6IGRlYm91bmNlLFxuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgZmVlbDogZmVlbCxcbiAgICAgIGlkOiBpZCxcbiAgICAgIGtleTogZWxlbWVudCxcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIG9uSW5wdXQ6IG9uSW5wdXQsXG4gICAgICBvbkVycm9yOiBvbkVycm9yLFxuICAgICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICAgIG9uQmx1cjogb25CbHVyLFxuICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLFxuICAgICAgZXhhbXBsZTogZXhhbXBsZSxcbiAgICAgIGhvc3RMYW5ndWFnZTogaG9zdExhbmd1YWdlLFxuICAgICAgc2luZ2xlTGluZTogc2luZ2xlTGluZSxcbiAgICAgIHNob3c6IHNob3csXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgIHRvb2x0aXBDb250YWluZXI6IHRvb2x0aXBDb250YWluZXIsXG4gICAgICBPcHRpb25hbENvbXBvbmVudDogcHJvcHMuT3B0aW9uYWxDb21wb25lbnQsXG4gICAgICB0b29sdGlwOiB0b29sdGlwXG4gICAgfSksIGVycm9yICYmIGpzeChcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1lcnJvclwiLFxuICAgICAgY2hpbGRyZW46IGVycm9yXG4gICAgfSksIGpzeChEZXNjcmlwdGlvbiwge1xuICAgICAgZm9ySWQ6IGlkLFxuICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgIHZhbHVlOiBkZXNjcmlwdGlvblxuICAgIH0pXVxuICB9KTtcbn1cblxuLyoqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wc1xyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMuZWxlbWVudFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuaWRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmRlc2NyaXB0aW9uXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGVib3VuY2VcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5kaXNhYmxlZFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMubWF4XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5taW5cclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLnN0ZXBcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5mZWVsXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5sYWJlbFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5nZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5zZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy50b29sdGlwQ29udGFpbmVyXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnZhbGlkYXRlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNob3dcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuZXhhbXBsZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy52YXJpYWJsZXNcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25Gb2N1c1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkJsdXJcclxuICovXG5mdW5jdGlvbiBGZWVsTnVtYmVyRW50cnkocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChGZWVsRW50cnksIHtcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1mZWVsLW51bWJlclwiLFxuICAgIE9wdGlvbmFsQ29tcG9uZW50OiBPcHRpb25hbEZlZWxOdW1iZXJGaWVsZCxcbiAgICAuLi5wcm9wc1xuICB9KTtcbn1cblxuLyoqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wc1xyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMuZWxlbWVudFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuaWRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmRlc2NyaXB0aW9uXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGVib3VuY2VcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5kaXNhYmxlZFxyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHByb3BzLmZlZWxcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmxhYmVsXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLmdldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnRvb2x0aXBDb250YWluZXJcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMudmFsaWRhdGVcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuc2hvd1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5leGFtcGxlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnZhcmlhYmxlc1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkZvY3VzXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uQmx1clxyXG4gKiBAcGFyYW0ge3N0cmluZ30gW3Byb3BzLnBsYWNlaG9sZGVyXVxyXG4gKi9cbmZ1bmN0aW9uIEZlZWxUZXh0QXJlYUVudHJ5KHByb3BzKSB7XG4gIHJldHVybiBqc3goRmVlbEVudHJ5LCB7XG4gICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZmVlbC10ZXh0YXJlYVwiLFxuICAgIE9wdGlvbmFsQ29tcG9uZW50OiBPcHRpb25hbEZlZWxUZXh0QXJlYSxcbiAgICAuLi5wcm9wc1xuICB9KTtcbn1cblxuLyoqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wc1xyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMuZWxlbWVudFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuaWRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmRlc2NyaXB0aW9uXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGVib3VuY2VcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5kaXNhYmxlZFxyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHByb3BzLmZlZWxcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmxhYmVsXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLmdldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnRvb2x0aXBDb250YWluZXJcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMudmFsaWRhdGVcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuc2hvd1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5leGFtcGxlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnZhcmlhYmxlc1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkZvY3VzXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uQmx1clxyXG4gKi9cbmZ1bmN0aW9uIEZlZWxUb2dnbGVTd2l0Y2hFbnRyeShwcm9wcykge1xuICByZXR1cm4ganN4KEZlZWxFbnRyeSwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWZlZWwtdG9nZ2xlLXN3aXRjaFwiLFxuICAgIE9wdGlvbmFsQ29tcG9uZW50OiBPcHRpb25hbEZlZWxUb2dnbGVTd2l0Y2gsXG4gICAgLi4ucHJvcHNcbiAgfSk7XG59XG5cbi8qKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzLmVsZW1lbnRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmlkXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5kZXNjcmlwdGlvblxyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHByb3BzLmRlYm91bmNlXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGlzYWJsZWRcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5mZWVsXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5sYWJlbFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5nZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5zZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy50b29sdGlwQ29udGFpbmVyXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnZhbGlkYXRlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNob3dcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuZXhhbXBsZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy52YXJpYWJsZXNcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25Gb2N1c1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkJsdXJcclxuICovXG5mdW5jdGlvbiBGZWVsQ2hlY2tib3hFbnRyeShwcm9wcykge1xuICByZXR1cm4ganN4KEZlZWxFbnRyeSwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWZlZWwtY2hlY2tib3hcIixcbiAgICBPcHRpb25hbENvbXBvbmVudDogT3B0aW9uYWxGZWVsQ2hlY2tib3gsXG4gICAgLi4ucHJvcHNcbiAgfSk7XG59XG5cbi8qKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzLmVsZW1lbnRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmlkXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5kZXNjcmlwdGlvblxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuaG9zdExhbmd1YWdlXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuc2luZ2xlTGluZVxyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHByb3BzLmRlYm91bmNlXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGlzYWJsZWRcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5mZWVsXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5sYWJlbFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5nZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5zZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy50b29sdGlwQ29udGFpbmVyXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnZhbGlkYXRlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNob3dcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuZXhhbXBsZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy52YXJpYWJsZXNcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25Gb2N1c1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkJsdXJcclxuICovXG5mdW5jdGlvbiBGZWVsVGVtcGxhdGluZ0VudHJ5KHByb3BzKSB7XG4gIHJldHVybiBqc3goRmVlbEVudHJ5LCB7XG4gICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZmVlbC10ZW1wbGF0aW5nXCIsXG4gICAgT3B0aW9uYWxDb21wb25lbnQ6IENvZGVFZGl0b3IkMSxcbiAgICAuLi5wcm9wc1xuICB9KTtcbn1cbmZ1bmN0aW9uIGlzRWRpdGVkJDYobm9kZSkge1xuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgIHJldHVybiAhIW5vZGUuY2hlY2tlZCB8fCBub2RlLmNsYXNzTGlzdC5jb250YWlucygnZWRpdGVkJyk7XG4gIH1cbiAgcmV0dXJuICEhbm9kZS52YWx1ZSB8fCBub2RlLmNsYXNzTGlzdC5jb250YWlucygnZWRpdGVkJyk7XG59XG5cbi8vIGhlbHBlcnMgLy8vLy8vLy8vLy8vLy8vLy9cblxuZnVuY3Rpb24gcHJlZml4SWQkNShpZCkge1xuICByZXR1cm4gYGJpby1wcm9wZXJ0aWVzLXBhbmVsLSR7aWR9YDtcbn1cbmZ1bmN0aW9uIGNhbGN1bGF0ZVBvcHVwUG9zaXRpb24oZWxlbWVudCkge1xuICBjb25zdCB7XG4gICAgdG9wLFxuICAgIGxlZnRcbiAgfSA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiB7XG4gICAgbGVmdDogbGVmdCAtIEZFRUxfUE9QVVBfV0lEVEggLSAyMCxcbiAgICB0b3A6IHRvcFxuICB9O1xufVxuXG4vLyB0b2RvKHBpbnVzc2lsdmVzdHJ1cyk6IG1ha2UgdGhpcyBjb25maWd1cmFibGUgaW4gdGhlIGZ1dHVyZVxuZnVuY3Rpb24gZ2V0UG9wdXBUaXRsZShlbGVtZW50LCBsYWJlbCkge1xuICBsZXQgcG9wdXBUaXRsZSA9ICcnO1xuICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LnR5cGUpIHtcbiAgICBwb3B1cFRpdGxlID0gYCR7ZWxlbWVudC50eXBlfSAvIGA7XG4gIH1cbiAgcmV0dXJuIGAke3BvcHVwVGl0bGV9JHtsYWJlbH1gO1xufVxuZnVuY3Rpb24gd2l0aEF1dG9DbG9zZVBvcHVwKENvbXBvbmVudCkge1xuICByZXR1cm4gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgY29uc3Qge1xuICAgICAgaWRcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3Qge1xuICAgICAgY2xvc2VcbiAgICB9ID0gdXNlQ29udGV4dChGZWVsUG9wdXBDb250ZXh0KTtcbiAgICBjb25zdCBjbG9zZVBvcHVwID0gdXNlU3RhdGljQ2FsbGJhY2soY2xvc2UpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjbG9zZVBvcHVwKHtcbiAgICAgICAgICBpZFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBqc3goQ29tcG9uZW50LCB7XG4gICAgICAuLi5wcm9wc1xuICAgIH0pO1xuICB9O1xufVxuXG5jb25zdCBERUZBVUxUX0xBWU9VVCA9IHt9O1xuY29uc3QgREVGQVVMVF9ERVNDUklQVElPTiA9IHt9O1xuY29uc3QgREVGQVVMVF9UT09MVElQID0ge307XG5cbi8qKlxyXG4gKiBAdHlwZWRlZiB7IHtcclxuICogICAgY29tcG9uZW50OiBpbXBvcnQoJ3ByZWFjdCcpLkNvbXBvbmVudCxcclxuICogICAgaWQ6IFN0cmluZyxcclxuICogICAgaXNFZGl0ZWQ/OiBGdW5jdGlvblxyXG4gKiB9IH0gRW50cnlEZWZpbml0aW9uXHJcbiAqXHJcbiAqIEB0eXBlZGVmIHsge1xyXG4gKiAgICBhdXRvRm9jdXNFbnRyeTogU3RyaW5nLFxyXG4gKiAgICBhdXRvT3Blbj86IEJvb2xlYW4sXHJcbiAqICAgIGVudHJpZXM6IEFycmF5PEVudHJ5RGVmaW5pdGlvbj4sXHJcbiAqICAgIGlkOiBTdHJpbmcsXHJcbiAqICAgIGxhYmVsOiBTdHJpbmcsXHJcbiAqICAgIHJlbW92ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkXHJcbiAqIH0gfSBMaXN0SXRlbURlZmluaXRpb25cclxuICpcclxuICogQHR5cGVkZWYgeyB7XHJcbiAqICAgIGFkZDogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkLFxyXG4gKiAgICBjb21wb25lbnQ6IGltcG9ydCgncHJlYWN0JykuQ29tcG9uZW50LFxyXG4gKiAgICBlbGVtZW50OiBPYmplY3QsXHJcbiAqICAgIGlkOiBTdHJpbmcsXHJcbiAqICAgIGl0ZW1zOiBBcnJheTxMaXN0SXRlbURlZmluaXRpb24+LFxyXG4gKiAgICBsYWJlbDogU3RyaW5nLFxyXG4gKiAgICBzaG91bGRPcGVuPzogQm9vbGVhblxyXG4gKiB9IH0gTGlzdEdyb3VwRGVmaW5pdGlvblxyXG4gKlxyXG4gKiBAdHlwZWRlZiB7IHtcclxuICogICAgY29tcG9uZW50PzogaW1wb3J0KCdwcmVhY3QnKS5Db21wb25lbnQsXHJcbiAqICAgIGVudHJpZXM6IEFycmF5PEVudHJ5RGVmaW5pdGlvbj4sXHJcbiAqICAgIGlkOiBTdHJpbmcsXHJcbiAqICAgIGxhYmVsOiBTdHJpbmcsXHJcbiAqICAgIHNob3VsZE9wZW4/OiBCb29sZWFuXHJcbiAqIH0gfSBHcm91cERlZmluaXRpb25cclxuICpcclxuICogIEB0eXBlZGVmIHsge1xyXG4gKiAgICBbaWQ6IFN0cmluZ106IEdldERlc2NyaXB0aW9uRnVuY3Rpb25cclxuICogfSB9IERlc2NyaXB0aW9uQ29uZmlnXHJcbiAqXHJcbiAqICBAdHlwZWRlZiB7IHtcclxuICogICAgW2lkOiBTdHJpbmddOiBHZXRUb29sdGlwRnVuY3Rpb25cclxuICogfSB9IFRvb2x0aXBDb25maWdcclxuICpcclxuICogQGNhbGxiYWNrIHsge1xyXG4gKiBAcGFyYW0ge3N0cmluZ30gaWRcclxuICogQHBhcmFtIHtPYmplY3R9IGVsZW1lbnRcclxuICogQHJldHVybnMge3N0cmluZ31cclxuICogfSB9IEdldERlc2NyaXB0aW9uRnVuY3Rpb25cclxuICpcclxuICogQGNhbGxiYWNrIHsge1xyXG4gKiBAcGFyYW0ge3N0cmluZ30gaWRcclxuICogQHBhcmFtIHtPYmplY3R9IGVsZW1lbnRcclxuICogQHJldHVybnMge3N0cmluZ31cclxuICogfSB9IEdldFRvb2x0aXBGdW5jdGlvblxyXG4gKlxyXG4gKiBAdHlwZWRlZiB7IHtcclxuICogIGdldEVtcHR5OiAoZWxlbWVudDogb2JqZWN0KSA9PiBpbXBvcnQoJy4vY29tcG9uZW50cy9QbGFjZWhvbGRlcicpLlBsYWNlaG9sZGVyRGVmaW5pdGlvbixcclxuICogIGdldE11bHRpcGxlOiAoZWxlbWVudDogT2JqZWN0KSA9PiBpbXBvcnQoJy4vY29tcG9uZW50cy9QbGFjZWhvbGRlcicpLlBsYWNlaG9sZGVyRGVmaW5pdGlvblxyXG4gKiB9IH0gUGxhY2Vob2xkZXJQcm92aWRlclxyXG4gKlxyXG4gKi9cblxuLyoqXHJcbiAqIEEgYmFzaWMgcHJvcGVydGllcyBwYW5lbCBjb21wb25lbnQuIERlc2NyaWJlcyAqaG93KiBjb250ZW50IHdpbGwgYmUgcmVuZGVyZWQsIGFjY2VwdHNcclxuICogZGF0YSBmcm9tIGltcGxlbWVudG9yIHRvIGRlc2NyaWJlICp3aGF0KiB3aWxsIGJlIHJlbmRlcmVkLlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IHByb3BzLmVsZW1lbnRcclxuICogQHBhcmFtIHtpbXBvcnQoJy4vY29tcG9uZW50cy9IZWFkZXInKS5IZWFkZXJQcm92aWRlcn0gcHJvcHMuaGVhZGVyUHJvdmlkZXJcclxuICogQHBhcmFtIHtQbGFjZWhvbGRlclByb3ZpZGVyfSBbcHJvcHMucGxhY2Vob2xkZXJQcm92aWRlcl1cclxuICogQHBhcmFtIHtBcnJheTxHcm91cERlZmluaXRpb258TGlzdEdyb3VwRGVmaW5pdGlvbj59IHByb3BzLmdyb3Vwc1xyXG4gKiBAcGFyYW0ge09iamVjdH0gW3Byb3BzLmxheW91dENvbmZpZ11cclxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3Byb3BzLmxheW91dENoYW5nZWRdXHJcbiAqIEBwYXJhbSB7RGVzY3JpcHRpb25Db25maWd9IFtwcm9wcy5kZXNjcmlwdGlvbkNvbmZpZ11cclxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3Byb3BzLmRlc2NyaXB0aW9uTG9hZGVkXVxyXG4gKiBAcGFyYW0ge1Rvb2x0aXBDb25maWd9IFtwcm9wcy50b29sdGlwQ29uZmlnXVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJvcHMudG9vbHRpcExvYWRlZF1cclxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gW3Byb3BzLmZlZWxQb3B1cENvbnRhaW5lcl1cclxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3Byb3BzLmdldEZlZWxQb3B1cExpbmtzXVxyXG4gKiBAcGFyYW0ge09iamVjdH0gW3Byb3BzLmV2ZW50QnVzXVxyXG4gKi9cbmZ1bmN0aW9uIFByb3BlcnRpZXNQYW5lbChwcm9wcykge1xuICBjb25zdCB7XG4gICAgZWxlbWVudCxcbiAgICBoZWFkZXJQcm92aWRlcixcbiAgICBwbGFjZWhvbGRlclByb3ZpZGVyLFxuICAgIGdyb3VwcyxcbiAgICBsYXlvdXRDb25maWcsXG4gICAgbGF5b3V0Q2hhbmdlZCxcbiAgICBkZXNjcmlwdGlvbkNvbmZpZyxcbiAgICBkZXNjcmlwdGlvbkxvYWRlZCxcbiAgICB0b29sdGlwQ29uZmlnLFxuICAgIHRvb2x0aXBMb2FkZWQsXG4gICAgZmVlbFBvcHVwQ29udGFpbmVyLFxuICAgIGdldEZlZWxQb3B1cExpbmtzLFxuICAgIGV2ZW50QnVzXG4gIH0gPSBwcm9wcztcblxuICAvLyBzZXQtdXAgbGF5b3V0IGNvbnRleHRcbiAgY29uc3QgW2xheW91dCwgc2V0TGF5b3V0XSA9IHVzZVN0YXRlKGNyZWF0ZUxheW91dChsYXlvdXRDb25maWcpKTtcblxuICAvLyByZWFjdCB0byBleHRlcm5hbCBjaGFuZ2VzIGluIHRoZSBsYXlvdXQgY29uZmlnXG4gIHVzZVVwZGF0ZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV3TGF5b3V0ID0gY3JlYXRlTGF5b3V0KGxheW91dENvbmZpZyk7XG4gICAgc2V0TGF5b3V0KG5ld0xheW91dCk7XG4gIH0sIFtsYXlvdXRDb25maWddKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGxheW91dENoYW5nZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGxheW91dENoYW5nZWQobGF5b3V0KTtcbiAgICB9XG4gIH0sIFtsYXlvdXQsIGxheW91dENoYW5nZWRdKTtcbiAgY29uc3QgZ2V0TGF5b3V0Rm9yS2V5ID0gKGtleSwgZGVmYXVsdFZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIGdldChsYXlvdXQsIGtleSwgZGVmYXVsdFZhbHVlKTtcbiAgfTtcbiAgY29uc3Qgc2V0TGF5b3V0Rm9yS2V5ID0gKGtleSwgY29uZmlnKSA9PiB7XG4gICAgY29uc3QgbmV3TGF5b3V0ID0gYXNzaWduKHt9LCBsYXlvdXQpO1xuICAgIHNldChuZXdMYXlvdXQsIGtleSwgY29uZmlnKTtcbiAgICBzZXRMYXlvdXQobmV3TGF5b3V0KTtcbiAgfTtcbiAgY29uc3QgbGF5b3V0Q29udGV4dCA9IHtcbiAgICBsYXlvdXQsXG4gICAgc2V0TGF5b3V0LFxuICAgIGdldExheW91dEZvcktleSxcbiAgICBzZXRMYXlvdXRGb3JLZXlcbiAgfTtcblxuICAvLyBzZXQtdXAgZGVzY3JpcHRpb24gY29udGV4dFxuICBjb25zdCBkZXNjcmlwdGlvbiA9IHVzZU1lbW8oKCkgPT4gY3JlYXRlRGVzY3JpcHRpb25Db250ZXh0KGRlc2NyaXB0aW9uQ29uZmlnKSwgW2Rlc2NyaXB0aW9uQ29uZmlnXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkZXNjcmlwdGlvbkxvYWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZGVzY3JpcHRpb25Mb2FkZWQoZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfSwgW2Rlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbkxvYWRlZF0pO1xuICBjb25zdCBnZXREZXNjcmlwdGlvbkZvcklkID0gKGlkLCBlbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uW2lkXSAmJiBkZXNjcmlwdGlvbltpZF0oZWxlbWVudCk7XG4gIH07XG4gIGNvbnN0IGRlc2NyaXB0aW9uQ29udGV4dCA9IHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBnZXREZXNjcmlwdGlvbkZvcklkXG4gIH07XG5cbiAgLy8gc2V0LXVwIHRvb2x0aXAgY29udGV4dFxuICBjb25zdCB0b29sdGlwID0gdXNlTWVtbygoKSA9PiBjcmVhdGVUb29sdGlwQ29udGV4dCh0b29sdGlwQ29uZmlnKSwgW3Rvb2x0aXBDb25maWddKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHRvb2x0aXBMb2FkZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRvb2x0aXBMb2FkZWQodG9vbHRpcCk7XG4gICAgfVxuICB9LCBbdG9vbHRpcCwgdG9vbHRpcExvYWRlZF0pO1xuICBjb25zdCBnZXRUb29sdGlwRm9ySWQgPSAoaWQsIGVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gdG9vbHRpcFtpZF0gJiYgdG9vbHRpcFtpZF0oZWxlbWVudCk7XG4gIH07XG4gIGNvbnN0IHRvb2x0aXBDb250ZXh0ID0ge1xuICAgIHRvb2x0aXAsXG4gICAgZ2V0VG9vbHRpcEZvcklkXG4gIH07XG4gIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZSh7fSk7XG4gIGNvbnN0IG9uU2V0RXJyb3JzID0gKHtcbiAgICBlcnJvcnNcbiAgfSkgPT4gc2V0RXJyb3JzKGVycm9ycyk7XG4gIHVzZUV2ZW50KCdwcm9wZXJ0aWVzUGFuZWwuc2V0RXJyb3JzJywgb25TZXRFcnJvcnMsIGV2ZW50QnVzKTtcbiAgY29uc3QgZXJyb3JzQ29udGV4dCA9IHtcbiAgICBlcnJvcnNcbiAgfTtcbiAgY29uc3QgZXZlbnRDb250ZXh0ID0ge1xuICAgIGV2ZW50QnVzXG4gIH07XG4gIGNvbnN0IHByb3BlcnRpZXNQYW5lbENvbnRleHQgPSB7XG4gICAgZWxlbWVudFxuICB9O1xuXG4gIC8vIGVtcHR5IHN0YXRlXG4gIGlmIChwbGFjZWhvbGRlclByb3ZpZGVyICYmICFlbGVtZW50KSB7XG4gICAgcmV0dXJuIGpzeChQbGFjZWhvbGRlciwge1xuICAgICAgLi4ucGxhY2Vob2xkZXJQcm92aWRlci5nZXRFbXB0eSgpXG4gICAgfSk7XG4gIH1cblxuICAvLyBtdWx0aXBsZSBzdGF0ZVxuICBpZiAocGxhY2Vob2xkZXJQcm92aWRlciAmJiBpc0FycmF5KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGpzeChQbGFjZWhvbGRlciwge1xuICAgICAgLi4ucGxhY2Vob2xkZXJQcm92aWRlci5nZXRNdWx0aXBsZSgpXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGpzeChMYXlvdXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IHByb3BlcnRpZXNQYW5lbENvbnRleHQsXG4gICAgY2hpbGRyZW46IGpzeChFcnJvcnNDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZTogZXJyb3JzQ29udGV4dCxcbiAgICAgIGNoaWxkcmVuOiBqc3goRGVzY3JpcHRpb25Db250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBkZXNjcmlwdGlvbkNvbnRleHQsXG4gICAgICAgIGNoaWxkcmVuOiBqc3goVG9vbHRpcENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICB2YWx1ZTogdG9vbHRpcENvbnRleHQsXG4gICAgICAgICAgY2hpbGRyZW46IGpzeChMYXlvdXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICB2YWx1ZTogbGF5b3V0Q29udGV4dCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBqc3goRXZlbnRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiBldmVudENvbnRleHQsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBqc3goRkVFTFBvcHVwUm9vdCwge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgICAgICAgICAgZXZlbnRCdXM6IGV2ZW50QnVzLFxuICAgICAgICAgICAgICAgIHBvcHVwQ29udGFpbmVyOiBmZWVsUG9wdXBDb250YWluZXIsXG4gICAgICAgICAgICAgICAgZ2V0UG9wdXBMaW5rczogZ2V0RmVlbFBvcHVwTGlua3MsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGpzeHMoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWxcIixcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbanN4KEhlYWRlciwge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJQcm92aWRlcjogaGVhZGVyUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIH0pLCBqc3goXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1zY3JvbGwtY29udGFpbmVyXCIsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBncm91cHMubWFwKGdyb3VwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbXBvbmVudCA9IEdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgICB9ID0gZ3JvdXA7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5ncm91cCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9KV1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuICB9KTtcbn1cblxuLy8gaGVscGVycyAvLy8vLy8vLy8vLy8vLy8vLy9cblxuZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG92ZXJyaWRlcyA9IHt9LCBkZWZhdWx0cyA9IERFRkFVTFRfTEFZT1VUKSB7XG4gIHJldHVybiB7XG4gICAgLi4uZGVmYXVsdHMsXG4gICAgLi4ub3ZlcnJpZGVzXG4gIH07XG59XG5mdW5jdGlvbiBjcmVhdGVEZXNjcmlwdGlvbkNvbnRleHQob3ZlcnJpZGVzID0ge30pIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5ERUZBVUxUX0RFU0NSSVBUSU9OLFxuICAgIC4uLm92ZXJyaWRlc1xuICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlVG9vbHRpcENvbnRleHQob3ZlcnJpZGVzID0ge30pIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5ERUZBVUxUX1RPT0xUSVAsXG4gICAgLi4ub3ZlcnJpZGVzXG4gIH07XG59XG5cbi8vIGhvb2tzIC8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcclxuICogVGhpcyBob29rIGJlaGF2ZXMgbGlrZSB1c2VMYXlvdXRFZmZlY3QsIGJ1dCBkb2VzIG5vdCB0cmlnZ2VyIG9uIHRoZSBmaXJzdCByZW5kZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVmZmVjdFxyXG4gKiBAcGFyYW0ge0FycmF5fSBkZXBzXHJcbiAqL1xuZnVuY3Rpb24gdXNlVXBkYXRlTGF5b3V0RWZmZWN0KGVmZmVjdCwgZGVwcykge1xuICBjb25zdCBpc01vdW50ZWQgPSB1c2VSZWYoZmFsc2UpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc01vdW50ZWQuY3VycmVudCkge1xuICAgICAgcmV0dXJuIGVmZmVjdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpc01vdW50ZWQuY3VycmVudCA9IHRydWU7XG4gICAgfVxuICB9LCBkZXBzKTtcbn1cblxuZnVuY3Rpb24gRHJvcGRvd25CdXR0b24ocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGNsYXNzOiBjbGFzc05hbWUsXG4gICAgY2hpbGRyZW4sXG4gICAgbWVudUl0ZW1zID0gW11cbiAgfSA9IHByb3BzO1xuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjbG9zZSA9ICgpID0+IHNldE9wZW4oZmFsc2UpO1xuICBmdW5jdGlvbiBvbkRyb3Bkb3duVG9nZ2xlKGV2ZW50KSB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBtZW51UmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBzZXRPcGVuKG9wZW4gPT4gIW9wZW4pO1xuICB9XG4gIGZ1bmN0aW9uIG9uQWN0aW9uQ2xpY2soZXZlbnQsIGFjdGlvbikge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNsb3NlKCk7XG4gICAgYWN0aW9uKCk7XG4gIH1cbiAgdXNlR2xvYmFsQ2xpY2soW2Ryb3Bkb3duUmVmLmN1cnJlbnRdLCAoKSA9PiBjbG9zZSgpKTtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1kcm9wZG93bi1idXR0b24nLCB7XG4gICAgICBvcGVuXG4gICAgfSwgY2xhc3NOYW1lKSxcbiAgICBvbkNsaWNrOiBvbkRyb3Bkb3duVG9nZ2xlLFxuICAgIHJlZjogZHJvcGRvd25SZWYsXG4gICAgY2hpbGRyZW46IFtjaGlsZHJlbiwganN4KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWRyb3Bkb3duLWJ1dHRvbl9fbWVudVwiLFxuICAgICAgcmVmOiBtZW51UmVmLFxuICAgICAgY2hpbGRyZW46IG1lbnVJdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiBqc3goTWVudUl0ZW0sIHtcbiAgICAgICAgb25DbGljazogb25BY3Rpb25DbGljayxcbiAgICAgICAgaXRlbTogaXRlbVxuICAgICAgfSwgaW5kZXgpKVxuICAgIH0pXVxuICB9KTtcbn1cbmZ1bmN0aW9uIE1lbnVJdGVtKHtcbiAgaXRlbSxcbiAgb25DbGlja1xufSkge1xuICBpZiAoaXRlbS5zZXBhcmF0b3IpIHtcbiAgICByZXR1cm4ganN4KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWRyb3Bkb3duLWJ1dHRvbl9fbWVudS1pdGVtIGJpby1wcm9wZXJ0aWVzLXBhbmVsLWRyb3Bkb3duLWJ1dHRvbl9fbWVudS1pdGVtLS1zZXBhcmF0b3JcIlxuICAgIH0pO1xuICB9XG4gIGlmIChpdGVtLmFjdGlvbikge1xuICAgIHJldHVybiBqc3goXCJidXR0b25cIiwge1xuICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWRyb3Bkb3duLWJ1dHRvbl9fbWVudS1pdGVtIGJpby1wcm9wZXJ0aWVzLXBhbmVsLWRyb3Bkb3duLWJ1dHRvbl9fbWVudS1pdGVtLS1hY3Rpb25hYmxlXCIsXG4gICAgICBvbkNsaWNrOiBldmVudCA9PiBvbkNsaWNrKGV2ZW50LCBpdGVtLmFjdGlvbiksXG4gICAgICBjaGlsZHJlbjogaXRlbS5lbnRyeVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBqc3goXCJkaXZcIiwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWRyb3Bkb3duLWJ1dHRvbl9fbWVudS1pdGVtXCIsXG4gICAgY2hpbGRyZW46IGl0ZW0uZW50cnlcbiAgfSk7XG59XG5cbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0ge0FycmF5PG51bGwgfCBFbGVtZW50Pn0gaWdub3JlZEVsZW1lbnRzXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAqL1xuZnVuY3Rpb24gdXNlR2xvYmFsQ2xpY2soaWdub3JlZEVsZW1lbnRzLCBjYWxsYmFjaykge1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudFxyXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgIGlmIChpZ25vcmVkRWxlbWVudHMuc29tZShlbGVtZW50ID0+IGVsZW1lbnQgJiYgZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGxpc3RlbmVyLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbGlzdGVuZXIsIHtcbiAgICAgIGNhcHR1cmU6IHRydWVcbiAgICB9KTtcbiAgfSwgWy4uLmlnbm9yZWRFbGVtZW50cywgY2FsbGJhY2tdKTtcbn1cblxuZnVuY3Rpb24gSGVhZGVyQnV0dG9uKHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbiA9IG51bGwsXG4gICAgY2xhc3M6IGNsYXNzbmFtZSxcbiAgICBvbkNsaWNrID0gKCkgPT4ge30sXG4gICAgLi4ub3RoZXJQcm9wc1xuICB9ID0gcHJvcHM7XG4gIHJldHVybiBqc3goXCJidXR0b25cIiwge1xuICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgLi4ub3RoZXJQcm9wcyxcbiAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1ncm91cC1oZWFkZXItYnV0dG9uJywgY2xhc3NuYW1lKSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgfSk7XG59XG5cbi8qKlxyXG4gKiBAdHlwZWRlZiB7IHtcclxuICogICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XHJcbiAqIH0gfSBUcmFuc2xhdGVSZXBsYWNlbWVudHNcclxuICovXG5cbi8qKlxyXG4gKiBBIHNpbXBsZSB0cmFuc2xhdGlvbiBzdHViIHRvIGJlIHVzZWQgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnQuXHJcbiAqIENhbiBiZSBlYXNpbHkgcmVwbGFjZWQgd2l0aCBhIG1vcmUgc29waGlzdGljYXRlZCBzb2x1dGlvbi5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IHRlbXBsYXRlIHRvIGludGVycG9sYXRlXHJcbiAqIEBwYXJhbSB7VHJhbnNsYXRlUmVwbGFjZW1lbnRzfSBbcmVwbGFjZW1lbnRzXSBhIG1hcCB3aXRoIHN1YnN0aXR1dGVzXHJcbiAqXHJcbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIHRyYW5zbGF0ZWQgc3RyaW5nXHJcbiAqL1xuZnVuY3Rpb24gdHJhbnNsYXRlRmFsbGJhY2sodGVtcGxhdGUsIHJlcGxhY2VtZW50cykge1xuICByZXBsYWNlbWVudHMgPSByZXBsYWNlbWVudHMgfHwge307XG4gIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC97KFtefV0rKX0vZywgZnVuY3Rpb24gKF8sIGtleSkge1xuICAgIHJldHVybiByZXBsYWNlbWVudHNba2V5XSB8fCAneycgKyBrZXkgKyAnfSc7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBDb2xsYXBzaWJsZUVudHJ5KHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBlbGVtZW50LFxuICAgIGVudHJpZXMgPSBbXSxcbiAgICBpZCxcbiAgICBsYWJlbCxcbiAgICBvcGVuOiBzaG91bGRPcGVuLFxuICAgIHJlbW92ZSxcbiAgICB0cmFuc2xhdGUgPSB0cmFuc2xhdGVGYWxsYmFja1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKHNob3VsZE9wZW4pO1xuICBjb25zdCB0b2dnbGVPcGVuID0gKCkgPT4gc2V0T3Blbighb3Blbik7XG4gIGNvbnN0IHtcbiAgICBvblNob3dcbiAgfSA9IHVzZUNvbnRleHQoTGF5b3V0Q29udGV4dCk7XG4gIGNvbnN0IHByb3BlcnRpZXNQYW5lbENvbnRleHQgPSB7XG4gICAgLi4udXNlQ29udGV4dChMYXlvdXRDb250ZXh0KSxcbiAgICBvblNob3c6IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICBpZiAoaXNGdW5jdGlvbihvblNob3cpKSB7XG4gICAgICAgIG9uU2hvdygpO1xuICAgICAgfVxuICAgIH0sIFtvblNob3csIHNldE9wZW5dKVxuICB9O1xuICBjb25zdCBwbGFjZWhvbGRlckxhYmVsID0gdHJhbnNsYXRlKCc8ZW1wdHk+Jyk7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBcImRhdGEtZW50cnktaWRcIjogaWQsXG4gICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWNvbGxhcHNpYmxlLWVudHJ5Jywgb3BlbiA/ICdvcGVuJyA6ICcnKSxcbiAgICBjaGlsZHJlbjogW2pzeHMoXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtY29sbGFwc2libGUtZW50cnktaGVhZGVyXCIsXG4gICAgICBvbkNsaWNrOiB0b2dnbGVPcGVuLFxuICAgICAgY2hpbGRyZW46IFtqc3goXCJkaXZcIiwge1xuICAgICAgICB0aXRsZTogbGFiZWwgfHwgcGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWNvbGxhcHNpYmxlLWVudHJ5LWhlYWRlci10aXRsZScsICFsYWJlbCAmJiAnZW1wdHknKSxcbiAgICAgICAgY2hpbGRyZW46IGxhYmVsIHx8IHBsYWNlaG9sZGVyTGFiZWxcbiAgICAgIH0pLCBqc3goXCJidXR0b25cIiwge1xuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICB0aXRsZTogdHJhbnNsYXRlKCdUb2dnbGUgbGlzdCBpdGVtJyksXG4gICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93ICBiaW8tcHJvcGVydGllcy1wYW5lbC1jb2xsYXBzaWJsZS1lbnRyeS1hcnJvd1wiLFxuICAgICAgICBjaGlsZHJlbjoganN4KEFycm93SWNvbiwge1xuICAgICAgICAgIGNsYXNzOiBvcGVuID8gJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LWRvd24nIDogJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LXJpZ2h0J1xuICAgICAgICB9KVxuICAgICAgfSksIHJlbW92ZSA/IGpzeChcImJ1dHRvblwiLCB7XG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgIHRpdGxlOiB0cmFuc2xhdGUoJ0RlbGV0ZSBpdGVtJyksXG4gICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXJlbW92ZS1lbnRyeVwiLFxuICAgICAgICBvbkNsaWNrOiByZW1vdmUsXG4gICAgICAgIGNoaWxkcmVuOiBqc3goRGVsZXRlSWNvbiwge30pXG4gICAgICB9KSA6IG51bGxdXG4gICAgfSksIGpzeChcImRpdlwiLCB7XG4gICAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtY29sbGFwc2libGUtZW50cnktZW50cmllcycsIG9wZW4gPyAnb3BlbicgOiAnJyksXG4gICAgICBjaGlsZHJlbjoganN4KExheW91dENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHByb3BlcnRpZXNQYW5lbENvbnRleHQsXG4gICAgICAgIGNoaWxkcmVuOiBlbnRyaWVzLm1hcChlbnRyeSA9PiB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnQsXG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH0gPSBlbnRyeTtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHtcbiAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgICAgICAgIGtleTogaWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSldXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBMaXN0SXRlbShwcm9wcykge1xuICBjb25zdCB7XG4gICAgYXV0b0ZvY3VzRW50cnksXG4gICAgYXV0b09wZW4sXG4gICAgdHJhbnNsYXRlID0gdHJhbnNsYXRlRmFsbGJhY2tcbiAgfSA9IHByb3BzO1xuXG4gIC8vIGZvY3VzIHNwZWNpZmllZCBlbnRyeSBvbiBhdXRvIG9wZW5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYXV0b09wZW4gJiYgYXV0b0ZvY3VzRW50cnkpIHtcbiAgICAgIGNvbnN0IGVudHJ5ID0gcXVlcnkoYFtkYXRhLWVudHJ5LWlkPVwiJHthdXRvRm9jdXNFbnRyeX1cIl1gKTtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUlucHV0ID0gcXVlcnkoJy5iaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dCcsIGVudHJ5KTtcbiAgICAgIGlmIChmb2N1c2FibGVJbnB1dCkge1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihmb2N1c2FibGVJbnB1dC5zZWxlY3QpKSB7XG4gICAgICAgICAgZm9jdXNhYmxlSW5wdXQuc2VsZWN0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbihmb2N1c2FibGVJbnB1dC5mb2N1cykpIHtcbiAgICAgICAgICBmb2N1c2FibGVJbnB1dC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGZvY3VzYWJsZUlucHV0LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbYXV0b09wZW4sIGF1dG9Gb2N1c0VudHJ5XSk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWxpc3QtaXRlbVwiLFxuICAgIGNoaWxkcmVuOiBqc3goQ29sbGFwc2libGVFbnRyeSwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBvcGVuOiBhdXRvT3BlbixcbiAgICAgIHRyYW5zbGF0ZTogdHJhbnNsYXRlXG4gICAgfSlcbiAgfSk7XG59XG5cbmNvbnN0IG5vb3AkMSA9ICgpID0+IHt9O1xuXG4vKipcclxuICogQHBhcmFtIHtpbXBvcnQoJy4uL1Byb3BlcnRpZXNQYW5lbCcpLkxpc3RHcm91cERlZmluaXRpb259IHByb3BzXHJcbiAqL1xuZnVuY3Rpb24gTGlzdEdyb3VwKHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBhZGQsXG4gICAgZWxlbWVudCxcbiAgICBpZCxcbiAgICBpdGVtcyxcbiAgICBsYWJlbCxcbiAgICBzaG91bGRPcGVuID0gZmFsc2UsXG4gICAgdHJhbnNsYXRlID0gdHJhbnNsYXRlRmFsbGJhY2tcbiAgfSA9IHByb3BzO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcm9wcy5zaG91bGRTb3J0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS53YXJuKCd0aGUgcHJvcGVydHkgXFwnc2hvdWxkU29ydFxcJyBpcyBubyBsb25nZXIgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9LCBbcHJvcHMuc2hvdWxkU29ydF0pO1xuICBjb25zdCBncm91cFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlTGF5b3V0U3RhdGUoWydncm91cHMnLCBpZCwgJ29wZW4nXSwgc2hvdWxkT3Blbik7XG4gIGNvbnN0IFtzdGlja3ksIHNldFN0aWNreV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG9uU2hvdyA9IHVzZUNhbGxiYWNrKCgpID0+IHNldE9wZW4odHJ1ZSksIFtzZXRPcGVuXSk7XG4gIGNvbnN0IFtsb2NhbEl0ZW1zLCBzZXRMb2NhbEl0ZW1zXSA9IHVzZVN0YXRlKFtdKTtcblxuICAvLyBGbGFnIHRvIG1hcmsgdGhhdCBhZGQgYnV0dG9uIHdhcyBjbGlja2VkIGluIHRoZSBsYXN0IHJlbmRlciBjeWNsZVxuICBjb25zdCBbYWRkVHJpZ2dlcmVkLCBzZXRBZGRUcmlnZ2VyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBwcmV2RWxlbWVudCA9IHVzZVByZXZpb3VzKGVsZW1lbnQpO1xuICBjb25zdCB0b2dnbGVPcGVuID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0T3Blbighb3BlbiksIFtvcGVuXSk7XG4gIGNvbnN0IG9wZW5JdGVtSWRzID0gZWxlbWVudCA9PT0gcHJldkVsZW1lbnQgJiYgb3BlbiAmJiBhZGRUcmlnZ2VyZWQgPyBnZXROZXdJdGVtSWRzKGl0ZW1zLCBsb2NhbEl0ZW1zKSA6IFtdO1xuXG4gIC8vIHJlc2V0IGxvY2FsIHN0YXRlIGFmdGVyIGl0ZW1zIGNoYW5nZWRcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbEl0ZW1zKGl0ZW1zKTtcbiAgICBzZXRBZGRUcmlnZ2VyZWQoZmFsc2UpO1xuICB9LCBbaXRlbXNdKTtcblxuICAvLyBzZXQgY3NzIGNsYXNzIHdoZW4gZ3JvdXAgaXMgc3RpY2t5IHRvIHRvcFxuICB1c2VTdGlja3lJbnRlcnNlY3Rpb25PYnNlcnZlcihncm91cFJlZiwgJ2Rpdi5iaW8tcHJvcGVydGllcy1wYW5lbC1zY3JvbGwtY29udGFpbmVyJywgc2V0U3RpY2t5KTtcbiAgY29uc3QgaGFzSXRlbXMgPSAhIWl0ZW1zLmxlbmd0aDtcbiAgY29uc3QgcHJvcGVydGllc1BhbmVsQ29udGV4dCA9IHtcbiAgICAuLi51c2VDb250ZXh0KExheW91dENvbnRleHQpLFxuICAgIG9uU2hvd1xuICB9O1xuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IGUgPT4ge1xuICAgIHNldEFkZFRyaWdnZXJlZCh0cnVlKTtcbiAgICBzZXRPcGVuKHRydWUpO1xuICAgIGFkZChlKTtcbiAgfTtcbiAgY29uc3QgYWxsRXJyb3JzID0gdXNlRXJyb3JzKCk7XG4gIGNvbnN0IGhhc0Vycm9yID0gaXRlbXMuc29tZShpdGVtID0+IHtcbiAgICBpZiAoYWxsRXJyb3JzW2l0ZW0uaWRdKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFpdGVtLmVudHJpZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhbHNvIGNoZWNrIGlmIHRoZSBlcnJvciBpcyBuZXN0ZWQsIGUuZy4gZm9yIG5hbWUtdmFsdWUgZW50cmllc1xuICAgIHJldHVybiBpdGVtLmVudHJpZXMuc29tZShlbnRyeSA9PiBhbGxFcnJvcnNbZW50cnkuaWRdKTtcbiAgfSk7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1ncm91cFwiLFxuICAgIFwiZGF0YS1ncm91cC1pZFwiOiAnZ3JvdXAtJyArIGlkLFxuICAgIHJlZjogZ3JvdXBSZWYsXG4gICAgY2hpbGRyZW46IFtqc3hzKFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1ncm91cC1oZWFkZXInLCBoYXNJdGVtcyA/ICcnIDogJ2VtcHR5JywgaGFzSXRlbXMgJiYgb3BlbiA/ICdvcGVuJyA6ICcnLCBzdGlja3kgJiYgb3BlbiA/ICdzdGlja3knIDogJycpLFxuICAgICAgb25DbGljazogaGFzSXRlbXMgPyB0b2dnbGVPcGVuIDogbm9vcCQxLFxuICAgICAgY2hpbGRyZW46IFtqc3goXCJkaXZcIiwge1xuICAgICAgICB0aXRsZTogcHJvcHMudG9vbHRpcCA/IG51bGwgOiBsYWJlbCxcbiAgICAgICAgXCJkYXRhLXRpdGxlXCI6IGxhYmVsLFxuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1ncm91cC1oZWFkZXItdGl0bGVcIixcbiAgICAgICAgY2hpbGRyZW46IGpzeChUb29sdGlwV3JhcHBlciwge1xuICAgICAgICAgIHZhbHVlOiBwcm9wcy50b29sdGlwLFxuICAgICAgICAgIGZvcklkOiAnZ3JvdXAtJyArIGlkLFxuICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgICAgcGFyZW50OiBncm91cFJlZixcbiAgICAgICAgICBjaGlsZHJlbjogbGFiZWxcbiAgICAgICAgfSlcbiAgICAgIH0pLCBqc3hzKFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZ3JvdXAtaGVhZGVyLWJ1dHRvbnNcIixcbiAgICAgICAgY2hpbGRyZW46IFthZGQgPyBqc3hzKFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGUoJ0NyZWF0ZSBuZXcgbGlzdCBpdGVtJyksXG4gICAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZ3JvdXAtaGVhZGVyLWJ1dHRvbiBiaW8tcHJvcGVydGllcy1wYW5lbC1hZGQtZW50cnlcIixcbiAgICAgICAgICBvbkNsaWNrOiBoYW5kbGVBZGRDbGljayxcbiAgICAgICAgICBjaGlsZHJlbjogW2pzeChDcmVhdGVJY29uLCB7fSksICFoYXNJdGVtcyA/IGpzeChcInNwYW5cIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtYWRkLWVudHJ5LWxhYmVsXCIsXG4gICAgICAgICAgICBjaGlsZHJlbjogdHJhbnNsYXRlKCdDcmVhdGUnKVxuICAgICAgICAgIH0pIDogbnVsbF1cbiAgICAgICAgfSkgOiBudWxsLCBoYXNJdGVtcyA/IGpzeChcImRpdlwiLCB7XG4gICAgICAgICAgdGl0bGU6IHRyYW5zbGF0ZShgTGlzdCBjb250YWlucyB7bnVtT2ZJdGVtc30gaXRlbSR7aXRlbXMubGVuZ3RoICE9IDEgPyAncycgOiAnJ31gLCB7XG4gICAgICAgICAgICBudW1PZkl0ZW1zOiBpdGVtcy5sZW5ndGhcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtbGlzdC1iYWRnZScsIGhhc0Vycm9yID8gJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWxpc3QtYmFkZ2UtLWVycm9yJyA6ICcnKSxcbiAgICAgICAgICBjaGlsZHJlbjogaXRlbXMubGVuZ3RoXG4gICAgICAgIH0pIDogbnVsbCwgaGFzSXRlbXMgPyBqc3goXCJidXR0b25cIiwge1xuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgdGl0bGU6IHRyYW5zbGF0ZSgnVG9nZ2xlIHNlY3Rpb24nKSxcbiAgICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1ncm91cC1oZWFkZXItYnV0dG9uIGJpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93XCIsXG4gICAgICAgICAgY2hpbGRyZW46IGpzeChBcnJvd0ljb24sIHtcbiAgICAgICAgICAgIGNsYXNzOiBvcGVuID8gJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LWRvd24nIDogJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LXJpZ2h0J1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pIDogbnVsbF1cbiAgICAgIH0pXVxuICAgIH0pLCBqc3goXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWxpc3QnLCBvcGVuICYmIGhhc0l0ZW1zID8gJ29wZW4nIDogJycpLFxuICAgICAgY2hpbGRyZW46IGpzeChMYXlvdXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzUGFuZWxDb250ZXh0LFxuICAgICAgICBjaGlsZHJlbjogaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH0gPSBpdGVtO1xuXG4gICAgICAgICAgLy8gaWYgaXRlbSB3YXMgYWRkZWQsIG9wZW4gaXRcbiAgICAgICAgICAvLyBleGlzdGluZyBpdGVtcyB3aWxsIG5vdCBiZSBhZmZlY3RlZCBhcyBhdXRvT3BlblxuICAgICAgICAgIC8vIGlzIG9ubHkgYXBwbGllZCBvbiBmaXJzdCByZW5kZXJcbiAgICAgICAgICBjb25zdCBhdXRvT3BlbiA9IG9wZW5JdGVtSWRzLmluY2x1ZGVzKGl0ZW0uaWQpO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KExpc3RJdGVtLCB7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgYXV0b09wZW46IGF1dG9PcGVuLFxuICAgICAgICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGtleTogaWQsXG4gICAgICAgICAgICB0cmFuc2xhdGU6IHRyYW5zbGF0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KV1cbiAgfSk7XG59XG5mdW5jdGlvbiBnZXROZXdJdGVtSWRzKG5ld0l0ZW1zLCBvbGRJdGVtcykge1xuICBjb25zdCBuZXdJZHMgPSBuZXdJdGVtcy5tYXAoaXRlbSA9PiBpdGVtLmlkKTtcbiAgY29uc3Qgb2xkSWRzID0gb2xkSXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5pZCk7XG4gIHJldHVybiBuZXdJZHMuZmlsdGVyKGl0ZW1JZCA9PiAhb2xkSWRzLmluY2x1ZGVzKGl0ZW1JZCkpO1xufVxuXG5mdW5jdGlvbiBDaGVja2JveChwcm9wcykge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgbGFiZWwsXG4gICAgb25DaGFuZ2UsXG4gICAgZGlzYWJsZWQsXG4gICAgdmFsdWUgPSBmYWxzZSxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICB0b29sdGlwXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2xvY2FsVmFsdWUsIHNldExvY2FsVmFsdWVdID0gdXNlU3RhdGUodmFsdWUpO1xuICBjb25zdCBoYW5kbGVDaGFuZ2VDYWxsYmFjayA9ICh7XG4gICAgdGFyZ2V0XG4gIH0pID0+IHtcbiAgICBvbkNoYW5nZSh0YXJnZXQuY2hlY2tlZCk7XG4gIH07XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgIGhhbmRsZUNoYW5nZUNhbGxiYWNrKGUpO1xuICAgIHNldExvY2FsVmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICB9O1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbG9jYWxWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRMb2NhbFZhbHVlKHZhbHVlKTtcbiAgfSwgW3ZhbHVlXSk7XG4gIGNvbnN0IHJlZiA9IHVzZVNob3dFbnRyeUV2ZW50KGlkKTtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWNoZWNrYm94XCIsXG4gICAgY2hpbGRyZW46IFtqc3goXCJpbnB1dFwiLCB7XG4gICAgICByZWY6IHJlZixcbiAgICAgIGlkOiBwcmVmaXhJZCQ0KGlkKSxcbiAgICAgIG5hbWU6IGlkLFxuICAgICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICAgIG9uQmx1cjogb25CbHVyLFxuICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtaW5wdXRcIixcbiAgICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgICBjaGVja2VkOiBsb2NhbFZhbHVlLFxuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkXG4gICAgfSksIGpzeChcImxhYmVsXCIsIHtcbiAgICAgIGZvcjogcHJlZml4SWQkNChpZCksXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1sYWJlbFwiLFxuICAgICAgY2hpbGRyZW46IGpzeChUb29sdGlwV3JhcHBlciwge1xuICAgICAgICB2YWx1ZTogdG9vbHRpcCxcbiAgICAgICAgZm9ySWQ6IGlkLFxuICAgICAgICBlbGVtZW50OiBwcm9wcy5lbGVtZW50LFxuICAgICAgICBjaGlsZHJlbjogbGFiZWxcbiAgICAgIH0pXG4gICAgfSldXG4gIH0pO1xufVxuXG4vKipcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcy5lbGVtZW50XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5pZFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuZGVzY3JpcHRpb25cclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmxhYmVsXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLmdldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uRm9jdXNcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25CbHVyXHJcbiAqIEBwYXJhbSB7c3RyaW5nfGltcG9ydCgncHJlYWN0JykuQ29tcG9uZW50fSBwcm9wcy50b29sdGlwXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLmRpc2FibGVkXVxyXG4gKi9cbmZ1bmN0aW9uIENoZWNrYm94RW50cnkocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgaWQsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgbGFiZWwsXG4gICAgZ2V0VmFsdWUsXG4gICAgc2V0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXIsXG4gICAgdG9vbHRpcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHZhbHVlID0gZ2V0VmFsdWUoZWxlbWVudCk7XG4gIGNvbnN0IGVycm9yID0gdXNlRXJyb3IoaWQpO1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZW50cnkgYmlvLXByb3BlcnRpZXMtcGFuZWwtY2hlY2tib3gtZW50cnlcIixcbiAgICBcImRhdGEtZW50cnktaWRcIjogaWQsXG4gICAgY2hpbGRyZW46IFtqc3goQ2hlY2tib3gsIHtcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgIGlkOiBpZCxcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIG9uQ2hhbmdlOiBzZXRWYWx1ZSxcbiAgICAgIG9uRm9jdXM6IG9uRm9jdXMsXG4gICAgICBvbkJsdXI6IG9uQmx1cixcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHRvb2x0aXA6IHRvb2x0aXAsXG4gICAgICBlbGVtZW50OiBlbGVtZW50XG4gICAgfSwgZWxlbWVudCksIGVycm9yICYmIGpzeChcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1lcnJvclwiLFxuICAgICAgY2hpbGRyZW46IGVycm9yXG4gICAgfSksIGpzeChEZXNjcmlwdGlvbiwge1xuICAgICAgZm9ySWQ6IGlkLFxuICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgIHZhbHVlOiBkZXNjcmlwdGlvblxuICAgIH0pXVxuICB9KTtcbn1cbmZ1bmN0aW9uIGlzRWRpdGVkJDUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJiAhIW5vZGUuY2hlY2tlZDtcbn1cblxuLy8gaGVscGVycyAvLy8vLy8vLy8vLy8vLy8vL1xuXG5mdW5jdGlvbiBwcmVmaXhJZCQ0KGlkKSB7XG4gIHJldHVybiBgYmlvLXByb3BlcnRpZXMtcGFuZWwtJHtpZH1gO1xufVxuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbi8qKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzLmVsZW1lbnRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmlkXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wcy5kZXNjcmlwdGlvblxyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHByb3BzLmRlYm91bmNlXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGlzYWJsZWRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmxhYmVsXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLmdldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnNldFZhbHVlXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLnRvb2x0aXBDb250YWluZXJcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMudmFsaWRhdGVcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuc2hvd1xyXG4gKi9cbmZ1bmN0aW9uIFRlbXBsYXRpbmdFbnRyeShwcm9wcykge1xuICBjb25zdCB7XG4gICAgZWxlbWVudCxcbiAgICBpZCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBkZWJvdW5jZSxcbiAgICBkaXNhYmxlZCxcbiAgICBsYWJlbCxcbiAgICBnZXRWYWx1ZSxcbiAgICBzZXRWYWx1ZSxcbiAgICB0b29sdGlwQ29udGFpbmVyLFxuICAgIHZhbGlkYXRlLFxuICAgIHNob3cgPSBub29wXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW3ZhbGlkYXRpb25FcnJvciwgc2V0VmFsaWRhdGlvbkVycm9yXSA9IHVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbbG9jYWxFcnJvciwgc2V0TG9jYWxFcnJvcl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgbGV0IHZhbHVlID0gZ2V0VmFsdWUoZWxlbWVudCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzRnVuY3Rpb24odmFsaWRhdGUpKSB7XG4gICAgICBjb25zdCBuZXdWYWxpZGF0aW9uRXJyb3IgPSB2YWxpZGF0ZSh2YWx1ZSkgfHwgbnVsbDtcbiAgICAgIHNldFZhbGlkYXRpb25FcnJvcihuZXdWYWxpZGF0aW9uRXJyb3IpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCB2YWxpZGF0ZV0pO1xuICBjb25zdCBvbklucHV0ID0gdXNlU3RhdGljQ2FsbGJhY2sobmV3VmFsdWUgPT4ge1xuICAgIGxldCBuZXdWYWxpZGF0aW9uRXJyb3IgPSBudWxsO1xuICAgIGlmIChpc0Z1bmN0aW9uKHZhbGlkYXRlKSkge1xuICAgICAgbmV3VmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGUobmV3VmFsdWUpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgLy8gZG9uJ3QgY3JlYXRlIG11bHRpcGxlIGNvbW1hbmRTdGFjayBlbnRyaWVzIGZvciB0aGUgc2FtZSB2YWx1ZVxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHNldFZhbHVlKG5ld1ZhbHVlLCBuZXdWYWxpZGF0aW9uRXJyb3IpO1xuICAgIH1cbiAgICBzZXRWYWxpZGF0aW9uRXJyb3IobmV3VmFsaWRhdGlvbkVycm9yKTtcbiAgfSk7XG4gIGNvbnN0IG9uRXJyb3IgPSB1c2VDYWxsYmFjayhlcnIgPT4ge1xuICAgIHNldExvY2FsRXJyb3IoZXJyKTtcbiAgfSwgW10pO1xuICBjb25zdCB0ZW1wb3JhcnlFcnJvciA9IHVzZUVycm9yKGlkKTtcbiAgY29uc3QgZXJyb3IgPSBsb2NhbEVycm9yIHx8IHRlbXBvcmFyeUVycm9yIHx8IHZhbGlkYXRpb25FcnJvcjtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBjbGFzc25hbWVzKCdiaW8tcHJvcGVydGllcy1wYW5lbC1lbnRyeScsIGVycm9yID8gJ2hhcy1lcnJvcicgOiAnJyksXG4gICAgXCJkYXRhLWVudHJ5LWlkXCI6IGlkLFxuICAgIGNoaWxkcmVuOiBbanN4KFRlbXBsYXRpbmcsIHtcbiAgICAgIGRlYm91bmNlOiBkZWJvdW5jZSxcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgIGlkOiBpZCxcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIG9uSW5wdXQ6IG9uSW5wdXQsXG4gICAgICBvbkVycm9yOiBvbkVycm9yLFxuICAgICAgc2hvdzogc2hvdyxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHRvb2x0aXBDb250YWluZXI6IHRvb2x0aXBDb250YWluZXJcbiAgICB9LCBlbGVtZW50KSwgZXJyb3IgJiYganN4KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWVycm9yXCIsXG4gICAgICBjaGlsZHJlbjogZXJyb3JcbiAgICB9KSwganN4KERlc2NyaXB0aW9uLCB7XG4gICAgICBmb3JJZDogaWQsXG4gICAgICBlbGVtZW50OiBlbGVtZW50LFxuICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uXG4gICAgfSldXG4gIH0pO1xufVxuZnVuY3Rpb24gVGVtcGxhdGluZyhwcm9wcykge1xuICBjb25zdCB7XG4gICAgZGVib3VuY2UsXG4gICAgaWQsXG4gICAgbGFiZWwsXG4gICAgb25JbnB1dCxcbiAgICBvbkVycm9yLFxuICAgIHZhbHVlID0gJycsXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICB0b29sdGlwQ29udGFpbmVyXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2xvY2FsVmFsdWUsIHNldExvY2FsVmFsdWVdID0gdXNlU3RhdGUodmFsdWUpO1xuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VTaG93RW50cnlFdmVudChpZCk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZigpO1xuICBjb25zdCBbZm9jdXMsIF9zZXRGb2N1c10gPSB1c2VTdGF0ZSh1bmRlZmluZWQpO1xuICBjb25zdCBzZXRGb2N1cyA9IChvZmZzZXQgPSAwKSA9PiB7XG4gICAgY29uc3QgaGFzRm9jdXMgPSBjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcblxuICAgIC8vIEtlZXAgY2FyZXQgcG9zaXRpb24gaWYgaXQgaXMgYWxyZWFkeSBmb2N1c2VkLCBvdGhlcndpc2UgZm9jdXMgYXQgdGhlIGVuZFxuICAgIGNvbnN0IHBvc2l0aW9uID0gaGFzRm9jdXMgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IDogSW5maW5pdHk7XG4gICAgX3NldEZvY3VzKHBvc2l0aW9uICsgb2Zmc2V0KTtcbiAgfTtcbiAgY29uc3QgaGFuZGxlSW5wdXRDYWxsYmFjayA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBkZWJvdW5jZShuZXdWYWx1ZSA9PiBvbklucHV0KG5ld1ZhbHVlLmxlbmd0aCA/IG5ld1ZhbHVlIDogdW5kZWZpbmVkKSk7XG4gIH0sIFtvbklucHV0LCBkZWJvdW5jZV0pO1xuICBjb25zdCBoYW5kbGVJbnB1dCA9IG5ld1ZhbHVlID0+IHtcbiAgICBoYW5kbGVJbnB1dENhbGxiYWNrKG5ld1ZhbHVlKTtcbiAgICBzZXRMb2NhbFZhbHVlKG5ld1ZhbHVlKTtcbiAgfTtcbiAgY29uc3QgaGFuZGxlTGludCA9IHVzZVN0YXRpY0NhbGxiYWNrKGxpbnQgPT4ge1xuICAgIGNvbnN0IGVycm9ycyA9IGxpbnQgJiYgbGludC5sZW5ndGggJiYgbGludC5maWx0ZXIoZSA9PiBlLnNldmVyaXR5ID09PSAnZXJyb3InKSB8fCBbXTtcbiAgICBpZiAoIWVycm9ycy5sZW5ndGgpIHtcbiAgICAgIG9uRXJyb3IodW5kZWZpbmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXJyb3IgPSBsaW50WzBdO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHtlcnJvci5zb3VyY2V9OiAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICBvbkVycm9yKG1lc3NhZ2UpO1xuICB9KTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGZvY3VzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoZm9jdXMpO1xuICAgICAgX3NldEZvY3VzKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbZm9jdXNdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGxvY2FsVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0TG9jYWxWYWx1ZSh2YWx1ZSA/IHZhbHVlIDogJycpO1xuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWZlZWxlcnNcIixcbiAgICBjaGlsZHJlbjogW2pzeChcImxhYmVsXCIsIHtcbiAgICAgIGlkOiBwcmVmaXhJZExhYmVsKGlkKSxcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWxhYmVsXCIsXG4gICAgICBvbkNsaWNrOiAoKSA9PiBzZXRGb2N1cygpLFxuICAgICAgY2hpbGRyZW46IGxhYmVsXG4gICAgfSksIGpzeChcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1mZWVsZXJzLWlucHV0XCIsXG4gICAgICByZWY6IGNvbnRhaW5lclJlZixcbiAgICAgIGNoaWxkcmVuOiBqc3goQ29kZUVkaXRvciQxLCB7XG4gICAgICAgIG5hbWU6IGlkLFxuICAgICAgICBvbklucHV0OiBoYW5kbGVJbnB1dCxcbiAgICAgICAgY29udGVudEF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogcHJlZml4SWRMYWJlbChpZClcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgICBvbkxpbnQ6IGhhbmRsZUxpbnQsXG4gICAgICAgIHZhbHVlOiBsb2NhbFZhbHVlLFxuICAgICAgICByZWY6IGVkaXRvclJlZixcbiAgICAgICAgdG9vbHRpcENvbnRhaW5lcjogdG9vbHRpcENvbnRhaW5lclxuICAgICAgfSlcbiAgICB9KV1cbiAgfSk7XG59XG5mdW5jdGlvbiBpc0VkaXRlZCQ0KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgKCEhbm9kZS52YWx1ZSB8fCBub2RlLmNsYXNzTGlzdC5jb250YWlucygnZWRpdGVkJykpO1xufVxuXG4vLyBoZWxwZXJzIC8vLy8vLy8vLy8vLy8vLy8vXG5cbmZ1bmN0aW9uIHByZWZpeElkTGFiZWwoaWQpIHtcbiAgcmV0dXJuIGBiaW8tcHJvcGVydGllcy1wYW5lbC1mZWVsZXJzLSR7aWR9LWxhYmVsYDtcbn1cblxuZnVuY3Rpb24gTGlzdChwcm9wcykge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgZWxlbWVudCxcbiAgICBpdGVtcyA9IFtdLFxuICAgIGNvbXBvbmVudCxcbiAgICBsYWJlbCA9ICc8ZW1wdHk+JyxcbiAgICBvcGVuOiBzaG91bGRPcGVuLFxuICAgIG9uQWRkLFxuICAgIG9uUmVtb3ZlLFxuICAgIGF1dG9Gb2N1c0VudHJ5LFxuICAgIC4uLnJlc3RQcm9wc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKCEhc2hvdWxkT3Blbik7XG4gIGNvbnN0IGhhc0l0ZW1zID0gISFpdGVtcy5sZW5ndGg7XG4gIGNvbnN0IHRvZ2dsZU9wZW4gPSAoKSA9PiBoYXNJdGVtcyAmJiBzZXRPcGVuKCFvcGVuKTtcbiAgY29uc3QgZWxlbWVudENoYW5nZWQgPSB1c2VQcmV2aW91cyhlbGVtZW50KSAhPT0gZWxlbWVudDtcbiAgY29uc3QgbmV3SXRlbXMgPSB1c2VOZXdJdGVtcyhpdGVtcywgZWxlbWVudENoYW5nZWQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChvcGVuICYmICFoYXNJdGVtcykge1xuICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfVxuICB9LCBbb3BlbiwgaGFzSXRlbXNdKTtcblxuICAvKipcclxuICAgKiBAcGFyYW0ge01vdXNlRXZlbnR9IGV2ZW50XHJcbiAgICovXG4gIGZ1bmN0aW9uIGFkZEl0ZW0oZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBvbkFkZCgpO1xuICAgIGlmICghb3Blbikge1xuICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIFwiZGF0YS1lbnRyeS1pZFwiOiBpZCxcbiAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtZW50cnknLCAnYmlvLXByb3BlcnRpZXMtcGFuZWwtbGlzdC1lbnRyeScsIGhhc0l0ZW1zID8gJycgOiAnZW1wdHknLCBvcGVuID8gJ29wZW4nIDogJycpLFxuICAgIGNoaWxkcmVuOiBbanN4cyhcImRpdlwiLCB7XG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1saXN0LWVudHJ5LWhlYWRlclwiLFxuICAgICAgb25DbGljazogdG9nZ2xlT3BlbixcbiAgICAgIGNoaWxkcmVuOiBbanN4KFwiZGl2XCIsIHtcbiAgICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtbGlzdC1lbnRyeS1oZWFkZXItdGl0bGUnLCBvcGVuICYmICdvcGVuJyksXG4gICAgICAgIGNoaWxkcmVuOiBsYWJlbFxuICAgICAgfSksIGpzeHMoXCJkaXZcIiwge1xuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1saXN0LWVudHJ5LWhlYWRlci1idXR0b25zXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbanN4cyhcImJ1dHRvblwiLCB7XG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICB0aXRsZTogXCJDcmVhdGUgbmV3IGxpc3QgaXRlbVwiLFxuICAgICAgICAgIG9uQ2xpY2s6IGFkZEl0ZW0sXG4gICAgICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtYWRkLWVudHJ5XCIsXG4gICAgICAgICAgY2hpbGRyZW46IFtqc3goQ3JlYXRlSWNvbiwge30pLCAhaGFzSXRlbXMgPyBqc3goXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWFkZC1lbnRyeS1sYWJlbFwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IFwiQ3JlYXRlXCJcbiAgICAgICAgICB9KSA6IG51bGxdXG4gICAgICAgIH0pLCBoYXNJdGVtcyAmJiBqc3goXCJkaXZcIiwge1xuICAgICAgICAgIHRpdGxlOiBgTGlzdCBjb250YWlucyAke2l0ZW1zLmxlbmd0aH0gaXRlbSR7aXRlbXMubGVuZ3RoICE9IDEgPyAncycgOiAnJ31gLFxuICAgICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWxpc3QtYmFkZ2VcIixcbiAgICAgICAgICBjaGlsZHJlbjogaXRlbXMubGVuZ3RoXG4gICAgICAgIH0pLCBoYXNJdGVtcyAmJiBqc3goXCJidXR0b25cIiwge1xuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgdGl0bGU6IFwiVG9nZ2xlIGxpc3QgaXRlbVwiLFxuICAgICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93XCIsXG4gICAgICAgICAgY2hpbGRyZW46IGpzeChBcnJvd0ljb24sIHtcbiAgICAgICAgICAgIGNsYXNzOiBvcGVuID8gJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LWRvd24nIDogJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWFycm93LXJpZ2h0J1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pXVxuICAgICAgfSldXG4gICAgfSksIGhhc0l0ZW1zICYmIGpzeChJdGVtc0xpc3QsIHtcbiAgICAgIC4uLnJlc3RQcm9wcyxcbiAgICAgIGF1dG9Gb2N1c0VudHJ5OiBhdXRvRm9jdXNFbnRyeSxcbiAgICAgIGNvbXBvbmVudDogY29tcG9uZW50LFxuICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgIGlkOiBpZCxcbiAgICAgIGl0ZW1zOiBpdGVtcyxcbiAgICAgIG5ld0l0ZW1zOiBuZXdJdGVtcyxcbiAgICAgIG9uUmVtb3ZlOiBvblJlbW92ZSxcbiAgICAgIG9wZW46IG9wZW5cbiAgICB9KV1cbiAgfSk7XG59XG5mdW5jdGlvbiBJdGVtc0xpc3QocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGF1dG9Gb2N1c0VudHJ5LFxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50LFxuICAgIGVsZW1lbnQsXG4gICAgaWQsXG4gICAgaXRlbXMsXG4gICAgbmV3SXRlbXMsXG4gICAgb25SZW1vdmUsXG4gICAgb3BlbixcbiAgICAuLi5yZXN0UHJvcHNcbiAgfSA9IHByb3BzO1xuICBjb25zdCBnZXRLZXkgPSB1c2VLZXlGYWN0b3J5KCk7XG4gIGNvbnN0IG5ld0l0ZW0gPSBuZXdJdGVtc1swXTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobmV3SXRlbSAmJiBhdXRvRm9jdXNFbnRyeSkge1xuICAgICAgLy8gKDApIHNlbGVjdCB0aGUgcGFyZW50IGVudHJ5IChjb250YWluaW5nIGFsbCBsaXN0IGl0ZW1zKVxuICAgICAgY29uc3QgZW50cnkgPSBxdWVyeShgW2RhdGEtZW50cnktaWQ9XCIke2lkfVwiXWApO1xuXG4gICAgICAvLyAoMSkgc2VsZWN0IHRoZSBmaXJzdCBpbnB1dCBvciBhIGN1c3RvbSBlbGVtZW50IHRvIGJlIGZvY3Vzc2VkXG4gICAgICBjb25zdCBzZWxlY3RvciA9IHR5cGVvZiBhdXRvRm9jdXNFbnRyeSA9PT0gJ2Jvb2xlYW4nID8gJy5iaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dCcgOiBhdXRvRm9jdXNFbnRyeTtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUlucHV0ID0gcXVlcnkoc2VsZWN0b3IsIGVudHJ5KTtcblxuICAgICAgLy8gKDIpIHNldCBmb2N1c1xuICAgICAgaWYgKGZvY3VzYWJsZUlucHV0KSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKGZvY3VzYWJsZUlucHV0LnNlbGVjdCkpIHtcbiAgICAgICAgICBmb2N1c2FibGVJbnB1dC5zZWxlY3QoKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0Z1bmN0aW9uKGZvY3VzYWJsZUlucHV0LmZvY3VzKSkge1xuICAgICAgICAgIGZvY3VzYWJsZUlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIFtuZXdJdGVtLCBhdXRvRm9jdXNFbnRyeSwgaWRdKTtcbiAgcmV0dXJuIGpzeChcIm9sXCIsIHtcbiAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtbGlzdC1lbnRyeS1pdGVtcycsIG9wZW4gPyAnb3BlbicgOiAnJyksXG4gICAgY2hpbGRyZW46IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGdldEtleShpdGVtKTtcbiAgICAgIHJldHVybiBqc3hzKFwibGlcIiwge1xuICAgICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1saXN0LWVudHJ5LWl0ZW1cIixcbiAgICAgICAgY2hpbGRyZW46IFtqc3goQ29tcG9uZW50LCB7XG4gICAgICAgICAgLi4ucmVzdFByb3BzLFxuICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgIG9wZW46IGl0ZW0gPT09IG5ld0l0ZW1cbiAgICAgICAgfSksIG9uUmVtb3ZlICYmIGpzeChcImJ1dHRvblwiLCB7XG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICB0aXRsZTogXCJEZWxldGUgaXRlbVwiLFxuICAgICAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXJlbW92ZS1lbnRyeSBiaW8tcHJvcGVydGllcy1wYW5lbC1yZW1vdmUtbGlzdC1lbnRyeVwiLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IG9uUmVtb3ZlICYmIG9uUmVtb3ZlKGl0ZW0pLFxuICAgICAgICAgIGNoaWxkcmVuOiBqc3goRGVsZXRlSWNvbiwge30pXG4gICAgICAgIH0pXVxuICAgICAgfSwga2V5KTtcbiAgICB9KVxuICB9KTtcbn1cbmZ1bmN0aW9uIHVzZU5ld0l0ZW1zKGl0ZW1zID0gW10sIHNob3VsZFJlc2V0KSB7XG4gIGNvbnN0IHByZXZpb3VzSXRlbXMgPSB1c2VQcmV2aW91cyhpdGVtcy5zbGljZSgpKSB8fCBbXTtcbiAgaWYgKHNob3VsZFJlc2V0KSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBwcmV2aW91c0l0ZW1zID8gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gIXByZXZpb3VzSXRlbXMuaW5jbHVkZXMoaXRlbSkpIDogW107XG59XG5cbmZ1bmN0aW9uIFNlbGVjdChwcm9wcykge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgbGFiZWwsXG4gICAgb25DaGFuZ2UsXG4gICAgb3B0aW9ucyA9IFtdLFxuICAgIHZhbHVlID0gJycsXG4gICAgZGlzYWJsZWQsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXIsXG4gICAgdG9vbHRpcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHJlZiA9IHVzZVNob3dFbnRyeUV2ZW50KGlkKTtcbiAgY29uc3QgW2xvY2FsVmFsdWUsIHNldExvY2FsVmFsdWVdID0gdXNlU3RhdGUodmFsdWUpO1xuICBjb25zdCBoYW5kbGVDaGFuZ2VDYWxsYmFjayA9ICh7XG4gICAgdGFyZ2V0XG4gIH0pID0+IHtcbiAgICBvbkNoYW5nZSh0YXJnZXQudmFsdWUpO1xuICB9O1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICBoYW5kbGVDaGFuZ2VDYWxsYmFjayhlKTtcbiAgICBzZXRMb2NhbFZhbHVlKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGxvY2FsVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0TG9jYWxWYWx1ZSh2YWx1ZSk7XG4gIH0sIFt2YWx1ZV0pO1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtc2VsZWN0XCIsXG4gICAgY2hpbGRyZW46IFtqc3goXCJsYWJlbFwiLCB7XG4gICAgICBmb3I6IHByZWZpeElkJDMoaWQpLFxuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtbGFiZWxcIixcbiAgICAgIGNoaWxkcmVuOiBqc3goVG9vbHRpcFdyYXBwZXIsIHtcbiAgICAgICAgdmFsdWU6IHRvb2x0aXAsXG4gICAgICAgIGZvcklkOiBpZCxcbiAgICAgICAgZWxlbWVudDogcHJvcHMuZWxlbWVudCxcbiAgICAgICAgY2hpbGRyZW46IGxhYmVsXG4gICAgICB9KVxuICAgIH0pLCBqc3goXCJzZWxlY3RcIiwge1xuICAgICAgcmVmOiByZWYsXG4gICAgICBpZDogcHJlZml4SWQkMyhpZCksXG4gICAgICBuYW1lOiBpZCxcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWlucHV0XCIsXG4gICAgICBvbklucHV0OiBoYW5kbGVDaGFuZ2UsXG4gICAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgICAgb25CbHVyOiBvbkJsdXIsXG4gICAgICB2YWx1ZTogbG9jYWxWYWx1ZSxcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgIGNoaWxkcmVuOiBvcHRpb25zLm1hcCgob3B0aW9uLCBpZHgpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybiBqc3goXCJvcHRncm91cFwiLCB7XG4gICAgICAgICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgICAgICAgY2hpbGRyZW46IG9wdGlvbi5jaGlsZHJlbi5tYXAoKGNoaWxkLCBpZHgpID0+IGpzeChcIm9wdGlvblwiLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiBjaGlsZC52YWx1ZSxcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IGNoaWxkLmRpc2FibGVkLFxuICAgICAgICAgICAgICBjaGlsZHJlbjogY2hpbGQubGFiZWxcbiAgICAgICAgICAgIH0sIGlkeCkpXG4gICAgICAgICAgfSwgaWR4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ganN4KFwib3B0aW9uXCIsIHtcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgY2hpbGRyZW46IG9wdGlvbi5sYWJlbFxuICAgICAgICB9LCBpZHgpO1xuICAgICAgfSlcbiAgICB9KV1cbiAgfSk7XG59XG5cbi8qKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcclxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzLmVsZW1lbnRcclxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmlkXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvcHMuZGVzY3JpcHRpb25dXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5sYWJlbFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5nZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5zZXRWYWx1ZVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkZvY3VzXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uQmx1clxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5nZXRPcHRpb25zXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLmRpc2FibGVkXVxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJvcHMudmFsaWRhdGVdXHJcbiAqIEBwYXJhbSB7c3RyaW5nfGltcG9ydCgncHJlYWN0JykuQ29tcG9uZW50fSBwcm9wcy50b29sdGlwXHJcbiAqL1xuZnVuY3Rpb24gU2VsZWN0RW50cnkocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgaWQsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgbGFiZWwsXG4gICAgZ2V0VmFsdWUsXG4gICAgc2V0VmFsdWUsXG4gICAgZ2V0T3B0aW9ucyxcbiAgICBkaXNhYmxlZCxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICB2YWxpZGF0ZSxcbiAgICB0b29sdGlwXG4gIH0gPSBwcm9wcztcbiAgY29uc3Qgb3B0aW9ucyA9IGdldE9wdGlvbnMoZWxlbWVudCk7XG4gIGNvbnN0IGdsb2JhbEVycm9yID0gdXNlRXJyb3IoaWQpO1xuICBjb25zdCBbbG9jYWxFcnJvciwgc2V0TG9jYWxFcnJvcl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgbGV0IHZhbHVlID0gZ2V0VmFsdWUoZWxlbWVudCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzRnVuY3Rpb24odmFsaWRhdGUpKSB7XG4gICAgICBjb25zdCBuZXdWYWxpZGF0aW9uRXJyb3IgPSB2YWxpZGF0ZSh2YWx1ZSkgfHwgbnVsbDtcbiAgICAgIHNldExvY2FsRXJyb3IobmV3VmFsaWRhdGlvbkVycm9yKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgdmFsaWRhdGVdKTtcbiAgY29uc3Qgb25DaGFuZ2UgPSBuZXdWYWx1ZSA9PiB7XG4gICAgbGV0IG5ld1ZhbGlkYXRpb25FcnJvciA9IG51bGw7XG4gICAgaWYgKGlzRnVuY3Rpb24odmFsaWRhdGUpKSB7XG4gICAgICBuZXdWYWxpZGF0aW9uRXJyb3IgPSB2YWxpZGF0ZShuZXdWYWx1ZSkgfHwgbnVsbDtcbiAgICB9XG4gICAgc2V0VmFsdWUobmV3VmFsdWUsIG5ld1ZhbGlkYXRpb25FcnJvcik7XG4gICAgc2V0TG9jYWxFcnJvcihuZXdWYWxpZGF0aW9uRXJyb3IpO1xuICB9O1xuICBjb25zdCBlcnJvciA9IGdsb2JhbEVycm9yIHx8IGxvY2FsRXJyb3I7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtZW50cnknLCBlcnJvciA/ICdoYXMtZXJyb3InIDogJycpLFxuICAgIFwiZGF0YS1lbnRyeS1pZFwiOiBpZCxcbiAgICBjaGlsZHJlbjogW2pzeChTZWxlY3QsIHtcbiAgICAgIGlkOiBpZCxcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIG9uQ2hhbmdlOiBvbkNoYW5nZSxcbiAgICAgIG9uRm9jdXM6IG9uRm9jdXMsXG4gICAgICBvbkJsdXI6IG9uQmx1cixcbiAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICB0b29sdGlwOiB0b29sdGlwLFxuICAgICAgZWxlbWVudDogZWxlbWVudFxuICAgIH0sIGVsZW1lbnQpLCBlcnJvciAmJiBqc3goXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZXJyb3JcIixcbiAgICAgIGNoaWxkcmVuOiBlcnJvclxuICAgIH0pLCBqc3goRGVzY3JpcHRpb24sIHtcbiAgICAgIGZvcklkOiBpZCxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICB2YWx1ZTogZGVzY3JpcHRpb25cbiAgICB9KV1cbiAgfSk7XG59XG5mdW5jdGlvbiBpc0VkaXRlZCQzKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgISFub2RlLnZhbHVlO1xufVxuXG4vLyBoZWxwZXJzIC8vLy8vLy8vLy8vLy8vLy8vXG5cbmZ1bmN0aW9uIHByZWZpeElkJDMoaWQpIHtcbiAgcmV0dXJuIGBiaW8tcHJvcGVydGllcy1wYW5lbC0ke2lkfWA7XG59XG5cbmZ1bmN0aW9uIFNpbXBsZShwcm9wcykge1xuICBjb25zdCB7XG4gICAgZGVib3VuY2UsXG4gICAgZGlzYWJsZWQsXG4gICAgZWxlbWVudCxcbiAgICBnZXRWYWx1ZSxcbiAgICBpZCxcbiAgICBvbkJsdXIsXG4gICAgb25Gb2N1cyxcbiAgICBzZXRWYWx1ZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHZhbHVlID0gZ2V0VmFsdWUoZWxlbWVudCk7XG4gIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKHZhbHVlKTtcbiAgY29uc3QgaGFuZGxlSW5wdXRDYWxsYmFjayA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBkZWJvdW5jZSh0YXJnZXQgPT4gc2V0VmFsdWUodGFyZ2V0LnZhbHVlLmxlbmd0aCA/IHRhcmdldC52YWx1ZSA6IHVuZGVmaW5lZCkpO1xuICB9LCBbc2V0VmFsdWUsIGRlYm91bmNlXSk7XG4gIGNvbnN0IGhhbmRsZUlucHV0ID0gZSA9PiB7XG4gICAgaGFuZGxlSW5wdXRDYWxsYmFjayhlLnRhcmdldCk7XG4gICAgc2V0TG9jYWxWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSBsb2NhbFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldExvY2FsVmFsdWUodmFsdWUpO1xuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCB7XG4gICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtc2ltcGxlXCIsXG4gICAgY2hpbGRyZW46IGpzeChcImlucHV0XCIsIHtcbiAgICAgIGlkOiBwcmVmaXhJZCQyKGlkKSxcbiAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgbmFtZTogaWQsXG4gICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICBhdXRvQ29tcGxldGU6IFwib2ZmXCIsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dFwiLFxuICAgICAgb25JbnB1dDogaGFuZGxlSW5wdXQsXG4gICAgICBcImFyaWEtbGFiZWxcIjogbG9jYWxWYWx1ZSB8fCAnPGVtcHR5PicsXG4gICAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgICAgb25CbHVyOiBvbkJsdXIsXG4gICAgICB2YWx1ZTogbG9jYWxWYWx1ZVxuICAgIH0sIGVsZW1lbnQpXG4gIH0pO1xufVxuZnVuY3Rpb24gaXNFZGl0ZWQkMihub2RlKSB7XG4gIHJldHVybiBub2RlICYmICEhbm9kZS52YWx1ZTtcbn1cblxuLy8gaGVscGVycyAvLy8vLy8vLy8vLy8vLy8vL1xuXG5mdW5jdGlvbiBwcmVmaXhJZCQyKGlkKSB7XG4gIHJldHVybiBgYmlvLXByb3BlcnRpZXMtcGFuZWwtJHtpZH1gO1xufVxuXG5mdW5jdGlvbiByZXNpemVUb0NvbnRlbnRzKGVsZW1lbnQpIHtcbiAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG5cbiAgLy8gYSAycHggcGl4ZWwgb2Zmc2V0IGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgc2Nyb2xsYmFyIGZyb21cbiAgLy8gYXBwZWFyaW5nIG9uIE9TIHdpdGggYSBmdWxsIGxlbmd0aCBzY3JvbGwgYmFyIChXaW5kb3dzL0xpbnV4KVxuICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke2VsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgMn1weGA7XG59XG5mdW5jdGlvbiBUZXh0QXJlYShwcm9wcykge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgbGFiZWwsXG4gICAgZGVib3VuY2UsXG4gICAgb25JbnB1dCxcbiAgICB2YWx1ZSA9ICcnLFxuICAgIGRpc2FibGVkLFxuICAgIG1vbm9zcGFjZSxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICBhdXRvUmVzaXplID0gdHJ1ZSxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByb3dzID0gYXV0b1Jlc2l6ZSA/IDEgOiAyLFxuICAgIHRvb2x0aXBcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbbG9jYWxWYWx1ZSwgc2V0TG9jYWxWYWx1ZV0gPSB1c2VTdGF0ZSh2YWx1ZSk7XG4gIGNvbnN0IHJlZiA9IHVzZVNob3dFbnRyeUV2ZW50KGlkKTtcbiAgY29uc3QgdmlzaWJsZSA9IHVzZUVsZW1lbnRWaXNpYmxlKHJlZi5jdXJyZW50KTtcbiAgY29uc3QgaGFuZGxlSW5wdXRDYWxsYmFjayA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBkZWJvdW5jZSh0YXJnZXQgPT4gb25JbnB1dCh0YXJnZXQudmFsdWUubGVuZ3RoID8gdGFyZ2V0LnZhbHVlIDogdW5kZWZpbmVkKSk7XG4gIH0sIFtvbklucHV0LCBkZWJvdW5jZV0pO1xuICBjb25zdCBoYW5kbGVJbnB1dCA9IGUgPT4ge1xuICAgIGhhbmRsZUlucHV0Q2FsbGJhY2soZS50YXJnZXQpO1xuICAgIGF1dG9SZXNpemUgJiYgcmVzaXplVG9Db250ZW50cyhlLnRhcmdldCk7XG4gICAgc2V0TG9jYWxWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgYXV0b1Jlc2l6ZSAmJiByZXNpemVUb0NvbnRlbnRzKHJlZi5jdXJyZW50KTtcbiAgfSwgW10pO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIHZpc2libGUgJiYgYXV0b1Jlc2l6ZSAmJiByZXNpemVUb0NvbnRlbnRzKHJlZi5jdXJyZW50KTtcbiAgfSwgW3Zpc2libGVdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGxvY2FsVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0TG9jYWxWYWx1ZSh2YWx1ZSk7XG4gIH0sIFt2YWx1ZV0pO1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtdGV4dGFyZWFcIixcbiAgICBjaGlsZHJlbjogW2pzeChcImxhYmVsXCIsIHtcbiAgICAgIGZvcjogcHJlZml4SWQkMShpZCksXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1sYWJlbFwiLFxuICAgICAgY2hpbGRyZW46IGpzeChUb29sdGlwV3JhcHBlciwge1xuICAgICAgICB2YWx1ZTogdG9vbHRpcCxcbiAgICAgICAgZm9ySWQ6IGlkLFxuICAgICAgICBlbGVtZW50OiBwcm9wcy5lbGVtZW50LFxuICAgICAgICBjaGlsZHJlbjogbGFiZWxcbiAgICAgIH0pXG4gICAgfSksIGpzeChcInRleHRhcmVhXCIsIHtcbiAgICAgIHJlZjogcmVmLFxuICAgICAgaWQ6IHByZWZpeElkJDEoaWQpLFxuICAgICAgbmFtZTogaWQsXG4gICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtaW5wdXQnLCBtb25vc3BhY2UgPyAnYmlvLXByb3BlcnRpZXMtcGFuZWwtaW5wdXQtbW9ub3NwYWNlJyA6ICcnLCBhdXRvUmVzaXplID8gJ2F1dG8tcmVzaXplJyA6ICcnKSxcbiAgICAgIG9uSW5wdXQ6IGhhbmRsZUlucHV0LFxuICAgICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICAgIG9uQmx1cjogb25CbHVyLFxuICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLFxuICAgICAgcm93czogcm93cyxcbiAgICAgIHZhbHVlOiBsb2NhbFZhbHVlLFxuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgXCJkYXRhLWdyYW1tXCI6IFwiZmFsc2VcIlxuICAgIH0pXVxuICB9KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcy5lbGVtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcHMuaWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5kZXNjcmlwdGlvblxuICogQHBhcmFtIHtib29sZWFufSBwcm9wcy5kZWJvdW5jZVxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmxhYmVsXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5nZXRWYWx1ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuc2V0VmFsdWVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uRm9jdXNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb3BzLm9uQmx1clxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnJvd3NcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvcHMubW9ub3NwYWNlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJvcHMudmFsaWRhdGVdXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtwcm9wcy5kaXNhYmxlZF1cbiAqL1xuZnVuY3Rpb24gVGV4dEFyZWFFbnRyeShwcm9wcykge1xuICBjb25zdCB7XG4gICAgZWxlbWVudCxcbiAgICBpZCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBkZWJvdW5jZSxcbiAgICBsYWJlbCxcbiAgICBnZXRWYWx1ZSxcbiAgICBzZXRWYWx1ZSxcbiAgICByb3dzLFxuICAgIG1vbm9zcGFjZSxcbiAgICBkaXNhYmxlZCxcbiAgICB2YWxpZGF0ZSxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICBwbGFjZWhvbGRlcixcbiAgICBhdXRvUmVzaXplLFxuICAgIHRvb2x0aXBcbiAgfSA9IHByb3BzO1xuICBjb25zdCBnbG9iYWxFcnJvciA9IHVzZUVycm9yKGlkKTtcbiAgY29uc3QgW2xvY2FsRXJyb3IsIHNldExvY2FsRXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gIGxldCB2YWx1ZSA9IGdldFZhbHVlKGVsZW1lbnQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0Z1bmN0aW9uKHZhbGlkYXRlKSkge1xuICAgICAgY29uc3QgbmV3VmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGUodmFsdWUpIHx8IG51bGw7XG4gICAgICBzZXRMb2NhbEVycm9yKG5ld1ZhbGlkYXRpb25FcnJvcik7XG4gICAgfVxuICB9LCBbdmFsdWUsIHZhbGlkYXRlXSk7XG4gIGNvbnN0IG9uSW5wdXQgPSBuZXdWYWx1ZSA9PiB7XG4gICAgbGV0IG5ld1ZhbGlkYXRpb25FcnJvciA9IG51bGw7XG4gICAgaWYgKGlzRnVuY3Rpb24odmFsaWRhdGUpKSB7XG4gICAgICBuZXdWYWxpZGF0aW9uRXJyb3IgPSB2YWxpZGF0ZShuZXdWYWx1ZSkgfHwgbnVsbDtcbiAgICB9XG4gICAgc2V0VmFsdWUobmV3VmFsdWUsIG5ld1ZhbGlkYXRpb25FcnJvcik7XG4gICAgc2V0TG9jYWxFcnJvcihuZXdWYWxpZGF0aW9uRXJyb3IpO1xuICB9O1xuICBjb25zdCBlcnJvciA9IGdsb2JhbEVycm9yIHx8IGxvY2FsRXJyb3I7XG4gIHJldHVybiBqc3hzKFwiZGl2XCIsIHtcbiAgICBjbGFzczogY2xhc3NuYW1lcygnYmlvLXByb3BlcnRpZXMtcGFuZWwtZW50cnknLCBlcnJvciA/ICdoYXMtZXJyb3InIDogJycpLFxuICAgIFwiZGF0YS1lbnRyeS1pZFwiOiBpZCxcbiAgICBjaGlsZHJlbjogW2pzeChUZXh0QXJlYSwge1xuICAgICAgaWQ6IGlkLFxuICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgb25JbnB1dDogb25JbnB1dCxcbiAgICAgIG9uRm9jdXM6IG9uRm9jdXMsXG4gICAgICBvbkJsdXI6IG9uQmx1cixcbiAgICAgIHJvd3M6IHJvd3MsXG4gICAgICBkZWJvdW5jZTogZGVib3VuY2UsXG4gICAgICBtb25vc3BhY2U6IG1vbm9zcGFjZSxcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlcixcbiAgICAgIGF1dG9SZXNpemU6IGF1dG9SZXNpemUsXG4gICAgICB0b29sdGlwOiB0b29sdGlwLFxuICAgICAgZWxlbWVudDogZWxlbWVudFxuICAgIH0sIGVsZW1lbnQpLCBlcnJvciAmJiBqc3goXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IFwiYmlvLXByb3BlcnRpZXMtcGFuZWwtZXJyb3JcIixcbiAgICAgIGNoaWxkcmVuOiBlcnJvclxuICAgIH0pLCBqc3goRGVzY3JpcHRpb24sIHtcbiAgICAgIGZvcklkOiBpZCxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICB2YWx1ZTogZGVzY3JpcHRpb25cbiAgICB9KV1cbiAgfSk7XG59XG5mdW5jdGlvbiBpc0VkaXRlZCQxKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgISFub2RlLnZhbHVlO1xufVxuXG4vLyBoZWxwZXJzIC8vLy8vLy8vLy8vLy8vLy8vXG5cbmZ1bmN0aW9uIHByZWZpeElkJDEoaWQpIHtcbiAgcmV0dXJuIGBiaW8tcHJvcGVydGllcy1wYW5lbC0ke2lkfWA7XG59XG5cbmZ1bmN0aW9uIFRleHRmaWVsZChwcm9wcykge1xuICBjb25zdCB7XG4gICAgZGVib3VuY2UsXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBpZCxcbiAgICBsYWJlbCxcbiAgICBvbklucHV0LFxuICAgIG9uRm9jdXMsXG4gICAgb25CbHVyLFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIHZhbHVlID0gJycsXG4gICAgdG9vbHRpcFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKHZhbHVlIHx8ICcnKTtcbiAgY29uc3QgcmVmID0gdXNlU2hvd0VudHJ5RXZlbnQoaWQpO1xuICBjb25zdCBoYW5kbGVJbnB1dENhbGxiYWNrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGRlYm91bmNlKHRhcmdldCA9PiBvbklucHV0KHRhcmdldC52YWx1ZS5sZW5ndGggPyB0YXJnZXQudmFsdWUgOiB1bmRlZmluZWQpKTtcbiAgfSwgW29uSW5wdXQsIGRlYm91bmNlXSk7XG4gIGNvbnN0IGhhbmRsZUlucHV0ID0gZSA9PiB7XG4gICAgaGFuZGxlSW5wdXRDYWxsYmFjayhlLnRhcmdldCk7XG4gICAgc2V0TG9jYWxWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSBsb2NhbFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldExvY2FsVmFsdWUodmFsdWUpO1xuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIGpzeHMoXCJkaXZcIiwge1xuICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLXRleHRmaWVsZFwiLFxuICAgIGNoaWxkcmVuOiBbanN4KFwibGFiZWxcIiwge1xuICAgICAgZm9yOiBwcmVmaXhJZChpZCksXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1sYWJlbFwiLFxuICAgICAgY2hpbGRyZW46IGpzeChUb29sdGlwV3JhcHBlciwge1xuICAgICAgICB2YWx1ZTogdG9vbHRpcCxcbiAgICAgICAgZm9ySWQ6IGlkLFxuICAgICAgICBlbGVtZW50OiBwcm9wcy5lbGVtZW50LFxuICAgICAgICBjaGlsZHJlbjogbGFiZWxcbiAgICAgIH0pXG4gICAgfSksIGpzeChcImlucHV0XCIsIHtcbiAgICAgIHJlZjogcmVmLFxuICAgICAgaWQ6IHByZWZpeElkKGlkKSxcbiAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgbmFtZTogaWQsXG4gICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICBhdXRvQ29tcGxldGU6IFwib2ZmXCIsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICBjbGFzczogXCJiaW8tcHJvcGVydGllcy1wYW5lbC1pbnB1dFwiLFxuICAgICAgb25JbnB1dDogaGFuZGxlSW5wdXQsXG4gICAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgICAgb25CbHVyOiBvbkJsdXIsXG4gICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXG4gICAgICB2YWx1ZTogbG9jYWxWYWx1ZVxuICAgIH0pXVxuICB9KTtcbn1cblxuLyoqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wc1xyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMuZWxlbWVudFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMuaWRcclxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BzLmRlc2NyaXB0aW9uXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMuZGVib3VuY2VcclxuICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5kaXNhYmxlZFxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcHMubGFiZWxcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuZ2V0VmFsdWVcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMuc2V0VmFsdWVcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMub25Gb2N1c1xyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcm9wcy5vbkJsdXJcclxuICogQHBhcmFtIHtzdHJpbmd8aW1wb3J0KCdwcmVhY3QnKS5Db21wb25lbnR9IHByb3BzLnRvb2x0aXBcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvcHMudmFsaWRhdGVcclxuICovXG5mdW5jdGlvbiBUZXh0ZmllbGRFbnRyeShwcm9wcykge1xuICBjb25zdCB7XG4gICAgZWxlbWVudCxcbiAgICBpZCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBkZWJvdW5jZSxcbiAgICBkaXNhYmxlZCxcbiAgICBsYWJlbCxcbiAgICBnZXRWYWx1ZSxcbiAgICBzZXRWYWx1ZSxcbiAgICB2YWxpZGF0ZSxcbiAgICBvbkZvY3VzLFxuICAgIG9uQmx1cixcbiAgICBwbGFjZWhvbGRlcixcbiAgICB0b29sdGlwXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZ2xvYmFsRXJyb3IgPSB1c2VFcnJvcihpZCk7XG4gIGNvbnN0IFtsb2NhbEVycm9yLCBzZXRMb2NhbEVycm9yXSA9IHVzZVN0YXRlKG51bGwpO1xuICBsZXQgdmFsdWUgPSBnZXRWYWx1ZShlbGVtZW50KTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNGdW5jdGlvbih2YWxpZGF0ZSkpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbGlkYXRpb25FcnJvciA9IHZhbGlkYXRlKHZhbHVlKSB8fCBudWxsO1xuICAgICAgc2V0TG9jYWxFcnJvcihuZXdWYWxpZGF0aW9uRXJyb3IpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCB2YWxpZGF0ZV0pO1xuICBjb25zdCBvbklucHV0ID0gbmV3VmFsdWUgPT4ge1xuICAgIGxldCBuZXdWYWxpZGF0aW9uRXJyb3IgPSBudWxsO1xuICAgIGlmIChpc0Z1bmN0aW9uKHZhbGlkYXRlKSkge1xuICAgICAgbmV3VmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGUobmV3VmFsdWUpIHx8IG51bGw7XG4gICAgfVxuICAgIHNldFZhbHVlKG5ld1ZhbHVlLCBuZXdWYWxpZGF0aW9uRXJyb3IpO1xuICAgIHNldExvY2FsRXJyb3IobmV3VmFsaWRhdGlvbkVycm9yKTtcbiAgfTtcbiAgY29uc3QgZXJyb3IgPSBnbG9iYWxFcnJvciB8fCBsb2NhbEVycm9yO1xuICByZXR1cm4ganN4cyhcImRpdlwiLCB7XG4gICAgY2xhc3M6IGNsYXNzbmFtZXMoJ2Jpby1wcm9wZXJ0aWVzLXBhbmVsLWVudHJ5JywgZXJyb3IgPyAnaGFzLWVycm9yJyA6ICcnKSxcbiAgICBcImRhdGEtZW50cnktaWRcIjogaWQsXG4gICAgY2hpbGRyZW46IFtqc3goVGV4dGZpZWxkLCB7XG4gICAgICBkZWJvdW5jZTogZGVib3VuY2UsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICBpZDogaWQsXG4gICAgICBsYWJlbDogbGFiZWwsXG4gICAgICBvbklucHV0OiBvbklucHV0LFxuICAgICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICAgIG9uQmx1cjogb25CbHVyLFxuICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdG9vbHRpcDogdG9vbHRpcCxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnRcbiAgICB9LCBlbGVtZW50KSwgZXJyb3IgJiYganN4KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzOiBcImJpby1wcm9wZXJ0aWVzLXBhbmVsLWVycm9yXCIsXG4gICAgICBjaGlsZHJlbjogZXJyb3JcbiAgICB9KSwganN4KERlc2NyaXB0aW9uLCB7XG4gICAgICBmb3JJZDogaWQsXG4gICAgICBlbGVtZW50OiBlbGVtZW50LFxuICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uXG4gICAgfSldXG4gIH0pO1xufVxuZnVuY3Rpb24gaXNFZGl0ZWQobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJiAhIW5vZGUudmFsdWU7XG59XG5cbi8vIGhlbHBlcnMgLy8vLy8vLy8vLy8vLy8vLy9cblxuZnVuY3Rpb24gcHJlZml4SWQoaWQpIHtcbiAgcmV0dXJuIGBiaW8tcHJvcGVydGllcy1wYW5lbC0ke2lkfWA7XG59XG5cbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfVElNRSA9IDMwMDtcbmZ1bmN0aW9uIGRlYm91bmNlSW5wdXQoZGVib3VuY2VEZWxheSkge1xuICByZXR1cm4gZnVuY3Rpb24gX2RlYm91bmNlSW5wdXQoZm4pIHtcbiAgICBpZiAoZGVib3VuY2VEZWxheSAhPT0gZmFsc2UpIHtcbiAgICAgIHZhciBkZWJvdW5jZVRpbWUgPSBpc051bWJlcihkZWJvdW5jZURlbGF5KSA/IGRlYm91bmNlRGVsYXkgOiBERUZBVUxUX0RFQk9VTkNFX1RJTUU7XG4gICAgICByZXR1cm4gZGVib3VuY2UoZm4sIGRlYm91bmNlVGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmbjtcbiAgICB9XG4gIH07XG59XG5kZWJvdW5jZUlucHV0LiRpbmplY3QgPSBbJ2NvbmZpZy5kZWJvdW5jZUlucHV0J107XG5cbnZhciBpbmRleCQxID0ge1xuICBkZWJvdW5jZUlucHV0OiBbJ2ZhY3RvcnknLCBkZWJvdW5jZUlucHV0XVxufTtcblxuY2xhc3MgRmVlbFBvcHVwTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoZXZlbnRCdXMpIHtcbiAgICB0aGlzLl9ldmVudEJ1cyA9IGV2ZW50QnVzO1xuICB9XG5cbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIEZFRUwgcG9wdXAgaXMgb3Blbi5cclxuICAgKiBAcmV0dXJuIHtCb29sZWFufVxyXG4gICAqL1xuICBpc09wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50QnVzLmZpcmUoJ2ZlZWxQb3B1cC5faXNPcGVuJyk7XG4gIH1cblxuICAvKipcclxuICAgKiBPcGVuIHRoZSBGRUVMIHBvcHVwLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGVudHJ5SWRcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcG9wdXBDb25maWdcclxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBzb3VyY2VFbGVtZW50XHJcbiAgICovXG4gIG9wZW4oZW50cnlJZCwgcG9wdXBDb25maWcsIHNvdXJjZUVsZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRCdXMuZmlyZSgnZmVlbFBvcHVwLl9vcGVuJywge1xuICAgICAgZW50cnlJZCxcbiAgICAgIHBvcHVwQ29uZmlnLFxuICAgICAgc291cmNlRWxlbWVudFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXHJcbiAgICogQ2xvc2UgdGhlIEZFRUwgcG9wdXAuXHJcbiAgICovXG4gIGNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLl9ldmVudEJ1cy5maXJlKCdmZWVsUG9wdXAuX2Nsb3NlJyk7XG4gIH1cbn1cbkZlZWxQb3B1cE1vZHVsZS4kaW5qZWN0ID0gWydldmVudEJ1cyddO1xuXG52YXIgaW5kZXggPSB7XG4gIGZlZWxQb3B1cDogWyd0eXBlJywgRmVlbFBvcHVwTW9kdWxlXVxufTtcblxuZXhwb3J0IHsgQXJyb3dJY29uLCBDaGVja2JveEVudHJ5LCBDbG9zZUljb24sIENvbGxhcHNpYmxlRW50cnksIENyZWF0ZUljb24sIGluZGV4JDEgYXMgRGVib3VuY2VJbnB1dE1vZHVsZSwgRGVsZXRlSWNvbiwgRGVzY3JpcHRpb25Db250ZXh0LCBEZXNjcmlwdGlvbiBhcyBEZXNjcmlwdGlvbkVudHJ5LCBEcmFnSWNvbiwgRHJvcGRvd25CdXR0b24sIEVycm9yc0NvbnRleHQsIEV2ZW50Q29udGV4dCwgRXh0ZXJuYWxMaW5rSWNvbiwgRmVlbENoZWNrYm94RW50cnksIEZlZWxFbnRyeSwgRmVlbEljb24kMSBhcyBGZWVsSWNvbiwgRmVlbE51bWJlckVudHJ5LCBpbmRleCBhcyBGZWVsUG9wdXBNb2R1bGUsIEZlZWxUZW1wbGF0aW5nRW50cnksIEZlZWxUZXh0QXJlYUVudHJ5LCBGZWVsVG9nZ2xlU3dpdGNoRW50cnksIEdyb3VwLCBIZWFkZXIsIEhlYWRlckJ1dHRvbiwgTGF1bmNoSWNvbiwgTGF5b3V0Q29udGV4dCwgTGlzdCBhcyBMaXN0RW50cnksIExpc3RHcm91cCwgTGlzdEl0ZW0sIE51bWJlckZpZWxkRW50cnksIFBsYWNlaG9sZGVyLCBQb3B1cCwgUG9wdXBJY29uLCBQcm9wZXJ0aWVzUGFuZWwsIExheW91dENvbnRleHQgYXMgUHJvcGVydGllc1BhbmVsQ29udGV4dCwgU2VsZWN0RW50cnksIFNpbXBsZSBhcyBTaW1wbGVFbnRyeSwgVGVtcGxhdGluZ0VudHJ5LCBUZXh0QXJlYUVudHJ5LCBUZXh0ZmllbGRFbnRyeSBhcyBUZXh0RmllbGRFbnRyeSwgVG9nZ2xlU3dpdGNoRW50cnksIFRvb2x0aXBDb250ZXh0LCBUb29sdGlwV3JhcHBlciBhcyBUb29sdGlwRW50cnksIGlzRWRpdGVkJDUgYXMgaXNDaGVja2JveEVudHJ5RWRpdGVkLCBpc0VkaXRlZCQ2IGFzIGlzRmVlbEVudHJ5RWRpdGVkLCBpc0VkaXRlZCQ3IGFzIGlzTnVtYmVyRmllbGRFbnRyeUVkaXRlZCwgaXNFZGl0ZWQkMyBhcyBpc1NlbGVjdEVudHJ5RWRpdGVkLCBpc0VkaXRlZCQyIGFzIGlzU2ltcGxlRW50cnlFZGl0ZWQsIGlzRWRpdGVkJDQgYXMgaXNUZW1wbGF0aW5nRW50cnlFZGl0ZWQsIGlzRWRpdGVkJDEgYXMgaXNUZXh0QXJlYUVudHJ5RWRpdGVkLCBpc0VkaXRlZCBhcyBpc1RleHRGaWVsZEVudHJ5RWRpdGVkLCBpc0VkaXRlZCQ4IGFzIGlzVG9nZ2xlU3dpdGNoRW50cnlFZGl0ZWQsIHVzZURlc2NyaXB0aW9uQ29udGV4dCwgdXNlRWxlbWVudFZpc2libGUsIHVzZUVycm9yLCB1c2VFcnJvcnMsIHVzZUV2ZW50LCB1c2VLZXlGYWN0b3J5LCB1c2VMYXlvdXRTdGF0ZSwgdXNlUHJldmlvdXMsIHVzZVNob3dFbnRyeUV2ZW50LCB1c2VTdGF0aWNDYWxsYmFjaywgdXNlU3RpY2t5SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsIHVzZVRvb2x0aXBDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5lc20uanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/properties-panel/dist/index.esm.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/properties-panel/preact/compat/dist/compat.module.js": /*!************************************************************************************!*\ !*** ./node_modules/@bpmn-io/properties-panel/preact/compat/dist/compat.module.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Children: () => (/* binding */ A),\n/* harmony export */ Component: () => (/* reexport safe */ ___WEBPACK_IMPORTED_MODULE_0__.Component),\n/* harmony export */ Fragment: () => (/* reexport safe */ ___WEBPACK_IMPORTED_MODULE_0__.Fragment),\n/* harmony export */ PureComponent: () => (/* binding */ E),\n/* harmony export */ StrictMode: () => (/* binding */ mn),\n/* harmony export */ Suspense: () => (/* binding */ L),\n/* harmony export */ SuspenseList: () => (/* binding */ M),\n/* harmony export */ __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => (/* binding */ on),\n/* harmony export */ cloneElement: () => (/* binding */ sn),\n/* harmony export */ createContext: () => (/* reexport safe */ ___WEBPACK_IMPORTED_MODULE_0__.createContext),\n/* harmony export */ createElement: () => (/* reexport safe */ ___WEBPACK_IMPORTED_MODULE_0__.createElement),\n/* harmony export */ createFactory: () => (/* binding */ cn),\n/* harmony export */ createPortal: () => (/* binding */ j),\n/* harmony export */ createRef: () => (/* reexport safe */ ___WEBPACK_IMPORTED_MODULE_0__.createRef),\n/* harmony export */ \"default\": () => (/* binding */ wn),\n/* harmony export */ findDOMNode: () => (/* binding */ vn),\n/* harmony export */ flushSync: () => (/* binding */ pn),\n/* harmony export */ forwardRef: () => (/* binding */ N),\n/* harmony export */ hydrate: () => (/* binding */ G),\n/* harmony export */ isElement: () => (/* binding */ gn),\n/* harmony export */ isFragment: () => (/* binding */ an),\n/* harmony export */ isValidElement: () => (/* binding */ fn),\n/* harmony export */ lazy: () => (/* binding */ D),\n/* harmony export */ memo: () => (/* binding */ w),\n/* harmony export */ render: () => (/* binding */ q),\n/* harmony export */ startTransition: () => (/* binding */ yn),\n/* harmony export */ unmountComponentAtNode: () => (/* binding */ hn),\n/* harmony export */ unstable_batchedUpdates: () => (/* binding */ dn),\n/* harmony export */ useCallback: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback),\n/* harmony export */ useContext: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useContext),\n/* harmony export */ useDebugValue: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue),\n/* harmony export */ useDeferredValue: () => (/* binding */ _n),\n/* harmony export */ useEffect: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect),\n/* harmony export */ useErrorBoundary: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useErrorBoundary),\n/* harmony export */ useId: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useId),\n/* harmony export */ useImperativeHandle: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle),\n/* harmony export */ useInsertionEffect: () => (/* binding */ Sn),\n/* harmony export */ useLayoutEffect: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect),\n/* harmony export */ useMemo: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo),\n/* harmony export */ useReducer: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer),\n/* harmony export */ useRef: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useRef),\n/* harmony export */ useState: () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_1__.useState),\n/* harmony export */ useSyncExternalStore: () => (/* binding */ Cn),\n/* harmony export */ useTransition: () => (/* binding */ bn),\n/* harmony export */ version: () => (/* binding */ ln)\n/* harmony export */ });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../.. */ \"./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../hooks */ \"./node_modules/@bpmn-io/properties-panel/preact/hooks/dist/hooks.module.js\");\nfunction g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function w(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,(0,___WEBPACK_IMPORTED_MODULE_0__.createElement)(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(E.prototype=new ___WEBPACK_IMPORTED_MODULE_0__.Component).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=___WEBPACK_IMPORTED_MODULE_0__.options.__b;___WEBPACK_IMPORTED_MODULE_0__.options.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function N(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var k=function(n,t){return null==n?null:(0,___WEBPACK_IMPORTED_MODULE_0__.toChildArray)((0,___WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).map(t))},A={map:k,forEach:k,count:function(n){return n?(0,___WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).length:0},only:function(n){var t=(0,___WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:___WEBPACK_IMPORTED_MODULE_0__.toChildArray},O=___WEBPACK_IMPORTED_MODULE_0__.options.__e;___WEBPACK_IMPORTED_MODULE_0__.options.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);O(n,t,e,r)};var T=___WEBPACK_IMPORTED_MODULE_0__.options.unmount;function F(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return F(n,t,e)})),n}function I(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return I(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function D(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return (0,___WEBPACK_IMPORTED_MODULE_0__.createElement)(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function M(){this.u=null,this.o=null}___WEBPACK_IMPORTED_MODULE_0__.options.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),T&&T(n)},(L.prototype=new ___WEBPACK_IMPORTED_MODULE_0__.Component).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=I(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=F(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&(0,___WEBPACK_IMPORTED_MODULE_0__.createElement)(___WEBPACK_IMPORTED_MODULE_0__.Fragment,null,n.fallback);return i&&(i.__u&=-33),[(0,___WEBPACK_IMPORTED_MODULE_0__.createElement)(___WEBPACK_IMPORTED_MODULE_0__.Fragment,null,e.__a?null:n.children),i]};var V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),e.i.removeChild(n)}}),(0,___WEBPACK_IMPORTED_MODULE_0__.render)((0,___WEBPACK_IMPORTED_MODULE_0__.createElement)(W,{context:e.context},n.__v),e.l)}function j(n,e){var r=(0,___WEBPACK_IMPORTED_MODULE_0__.createElement)(P,{__v:n,i:e});return r.containerInfo=e,r}(M.prototype=new ___WEBPACK_IMPORTED_MODULE_0__.Component).__a=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),V(t,n,r)):u()};e?e(o):o()}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=(0,___WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){V(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y=\"undefined\"!=typeof document,$=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function q(n,t,e){return null==t.__k&&(t.textContent=\"\"),(0,___WEBPACK_IMPORTED_MODULE_0__.render)(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function G(n,t,e){return (0,___WEBPACK_IMPORTED_MODULE_0__.hydrate)(n,t),\"function\"==typeof e&&e(),n?n.__c:null}___WEBPACK_IMPORTED_MODULE_0__.Component.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(___WEBPACK_IMPORTED_MODULE_0__.Component.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=___WEBPACK_IMPORTED_MODULE_0__.options.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}___WEBPACK_IMPORTED_MODULE_0__.options.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=___WEBPACK_IMPORTED_MODULE_0__.options.vnode;___WEBPACK_IMPORTED_MODULE_0__.options.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={};for(var o in t){var i=t[o];if(!(\"value\"===o&&\"defaultValue\"in t&&null==i||Y&&\"children\"===o&&\"noscript\"===e||\"class\"===o||\"className\"===o)){var l=o.toLowerCase();\"defaultValue\"===o&&\"value\"in t&&null==t.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":\"ondoubleclick\"===l?o=\"ondblclick\":\"onchange\"!==l||\"input\"!==e&&\"textarea\"!==e||$(t.type)?\"onfocus\"===l?o=\"onfocusin\":\"onblur\"===l?o=\"onfocusout\":H.test(o)?o=l:-1===e.indexOf(\"-\")&&B.test(o)?o=o.replace(Z,\"-$&\").toLowerCase():null===i&&(i=void 0):l=o=\"oninput\",\"oninput\"===l&&u[o=l]&&(o=\"oninputCapture\"),u[o]=i}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=(0,___WEBPACK_IMPORTED_MODULE_0__.toChildArray)(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=(0,___WEBPACK_IMPORTED_MODULE_0__.toChildArray)(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=z,en&&en(n)};var rn=___WEBPACK_IMPORTED_MODULE_0__.options.__r;___WEBPACK_IMPORTED_MODULE_0__.options.__r=function(n){rn&&rn(n),nn=n.__c};var un=___WEBPACK_IMPORTED_MODULE_0__.options.diffed;___WEBPACK_IMPORTED_MODULE_0__.options.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value}}}},ln=\"17.0.2\";function cn(n){return ___WEBPACK_IMPORTED_MODULE_0__.createElement.bind(null,n)}function fn(n){return!!n&&n.$$typeof===z}function an(n){return fn(n)&&n.type===___WEBPACK_IMPORTED_MODULE_0__.Fragment}function sn(n){return fn(n)?___WEBPACK_IMPORTED_MODULE_0__.cloneElement.apply(null,arguments):n}function hn(n){return!!n.__k&&((0,___WEBPACK_IMPORTED_MODULE_0__.render)(null,n),!0)}function vn(n){return n&&(n.base||1===n.nodeType&&n)||null}var dn=function(n,t){return n(t)},pn=function(n,t){return n(t)},mn=___WEBPACK_IMPORTED_MODULE_0__.Fragment;function yn(n){n()}function _n(n){return n}function bn(){return[!1,yn]}var Sn=_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect,gn=fn;function Cn(n,t){var e=t(),r=(0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useState)({h:{__:e,v:t}}),u=r[0].h,o=r[1];return (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(function(){u.__=e,u.v=t,En(u)&&o({h:u})},[n,e,t]),(0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function(){return En(u)&&o({h:u}),n(function(){En(u)&&o({h:u})})},[n]),e}function En(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var wn={useState:_hooks__WEBPACK_IMPORTED_MODULE_1__.useState,useId:_hooks__WEBPACK_IMPORTED_MODULE_1__.useId,useReducer:_hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer,useEffect:_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect,useLayoutEffect:_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect,useInsertionEffect:Sn,useTransition:bn,useDeferredValue:_n,useSyncExternalStore:Cn,startTransition:yn,useRef:_hooks__WEBPACK_IMPORTED_MODULE_1__.useRef,useImperativeHandle:_hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle,useMemo:_hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo,useCallback:_hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback,useContext:_hooks__WEBPACK_IMPORTED_MODULE_1__.useContext,useDebugValue:_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue,version:\"17.0.2\",Children:A,render:q,hydrate:G,unmountComponentAtNode:hn,createPortal:j,createElement:___WEBPACK_IMPORTED_MODULE_0__.createElement,createContext:___WEBPACK_IMPORTED_MODULE_0__.createContext,createFactory:cn,cloneElement:sn,createRef:___WEBPACK_IMPORTED_MODULE_0__.createRef,Fragment:___WEBPACK_IMPORTED_MODULE_0__.Fragment,isValidElement:fn,isElement:gn,isFragment:an,findDOMNode:vn,Component:___WEBPACK_IMPORTED_MODULE_0__.Component,PureComponent:E,memo:w,forwardRef:N,flushSync:pn,unstable_batchedUpdates:dn,StrictMode:mn,Suspense:L,SuspenseList:M,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};\n//# sourceMappingURL=compat.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vcHJvcGVydGllcy1wYW5lbC9wcmVhY3QvY29tcGF0L2Rpc3QvY29tcGF0Lm1vZHVsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFnZSxnQkFBZ0IseUJBQXlCLFNBQVMsZ0JBQWdCLHFEQUFxRCx1REFBdUQsU0FBUyxjQUFjLGFBQWEsZ0JBQWdCLGNBQWMsZ0NBQWdDLG9GQUFvRixjQUFjLG9DQUFvQyxnREFBQyxNQUFNLG9HQUFvRyxpQkFBaUIsd0NBQUMsMEVBQTBFLHlDQUF5QyxNQUFNLHNDQUFDLEtBQUssc0NBQUMsaUJBQWlCLG1FQUFtRSxvRkFBb0YsY0FBYyxjQUFjLFVBQVUsSUFBSSxxQ0FBcUMsK0hBQStILG9CQUFvQixvQkFBb0IsK0NBQUMsQ0FBQywrQ0FBQyxZQUFZLElBQUksa0NBQWtDLFNBQVMsK0NBQUMsYUFBYSxrQkFBa0IsTUFBTSwrQ0FBQyxJQUFJLHFDQUFxQyxZQUFZLFNBQVMsMkNBQUMsQ0FBQyxHQUFHLHNDQUFDLEtBQUssc0NBQUMsdUJBQXVCLHdCQUF3QixPQUFPLDhFQUE4RSxZQUFZLE1BQU0sc0NBQUMsU0FBUyxrQkFBa0IsK0RBQStELGtDQUFrQywrQkFBK0IsdUZBQXVGLGdCQUFnQixLQUFLLGtCQUFrQiw0REFBNEQsZ0JBQWdCLGtGQUFrRixhQUFhLHFDQUFxQyxjQUFjLGVBQWUsMEJBQTBCLGNBQWMsVUFBVSxjQUFjLCtCQUErQixlQUFlLGFBQWEsSUFBSSxZQUFZLGNBQWMsT0FBTyxnREFBQyxNQUFNLHVDQUF1QyxhQUFhLHdCQUF3QixzQ0FBQyxxQkFBcUIsWUFBWSxxREFBcUQsa0JBQWtCLHdDQUFDLG9CQUFvQixtQkFBbUIsZ0NBQWdDLGlDQUFpQyxpQ0FBaUMsUUFBUSxpQkFBaUIsYUFBYSxnQkFBZ0Isa0JBQWtCLHNDQUFzQyxNQUFNLGdCQUFnQixlQUFlLEVBQUUsWUFBWSxtQkFBbUIsK0JBQStCLHVCQUF1QixjQUFjLDZDQUE2QyxVQUFVLGtDQUFrQyxhQUFhLGlCQUFpQiwwREFBMEQsMENBQTBDLGNBQWMsYUFBYSxnREFBQyxDQUFDLHVDQUFDLGtCQUFrQix3QkFBd0IsZ0RBQUMsQ0FBQyx1Q0FBQyxpQ0FBaUMsc0JBQXNCLHlHQUF5RyxFQUFFLEVBQUUsS0FBSyxXQUFXLFdBQVcsbUJBQW1CLGFBQWEsY0FBYyx1Q0FBdUMsaUJBQWlCLFlBQVksY0FBYyxpQkFBaUIsa0NBQWtDLHlDQUFDLDZCQUE2Qix5REFBeUQsOERBQThELDJDQUEyQyw0QkFBNEIsMkNBQTJDLHlCQUF5Qiw2RUFBNkUsRUFBRSx5Q0FBQyxDQUFDLGdEQUFDLElBQUksa0JBQWtCLGFBQWEsZ0JBQWdCLE1BQU0sZ0RBQUMsSUFBSSxVQUFVLEVBQUUsMkJBQTJCLGlCQUFpQix3Q0FBQyxrQkFBa0IsbUNBQW1DLDBCQUEwQixpQkFBaUIsOENBQThDLFlBQVksZ0NBQWdDLDJCQUEyQixNQUFNLCtDQUFDLGFBQWEsbURBQW1ELG1CQUFtQixJQUFJLHNDQUFzQyxrQkFBa0IseUVBQXlFLFdBQVcsNkJBQTZCLFNBQVMsR0FBRyxpZEFBaWQsa0dBQWtHLGtCQUFrQix1Q0FBdUMseUNBQUMsNkNBQTZDLGtCQUFrQixPQUFPLDBDQUFDLDZDQUE2Qyx3Q0FBQyw4QkFBOEIsOEZBQThGLHNCQUFzQix3Q0FBQyxjQUFjLCtCQUErQix5QkFBeUIsaUJBQWlCLDhCQUE4QixvQ0FBb0MsR0FBRyxFQUFFLEVBQUUsTUFBTSxzQ0FBQyxPQUFPLGNBQWMsYUFBYSx5QkFBeUIsYUFBYSw2QkFBNkIsc0NBQUMsbUJBQW1CLGdHQUFnRyxXQUFXLDZDQUE2QyxtQkFBbUIsSUFBSSxzQ0FBQyxPQUFPLHNDQUFDLG1CQUFtQixxQ0FBcUMsNEJBQTRCLGdCQUFnQixXQUFXLGlIQUFpSCxzQkFBc0IsOFlBQThZLDBEQUEwRCwrQ0FBQyxpQ0FBaUMsb0RBQW9ELCtDQUErQywrQ0FBQyxpQ0FBaUMsb0dBQW9HLDhLQUE4Syw0QkFBNEIsT0FBTyxzQ0FBQyxLQUFLLHNDQUFDLGlCQUFpQixvQkFBb0IsT0FBTyxzQ0FBQyxRQUFRLHNDQUFDLG9CQUFvQixVQUFVLHNCQUFzQiwwR0FBMEcsUUFBUSx3QkFBd0IsU0FBUyx3QkFBd0Isb0NBQW9DLGFBQWEsZUFBZSxPQUFPLDRDQUFDLGNBQWMsZUFBZSwwQkFBMEIsZUFBZSx1QkFBdUIsdUNBQUMsQ0FBQyxlQUFlLGFBQWEsMkNBQUMseUJBQXlCLGVBQWUsZ0JBQWdCLHlDQUFDLGFBQWEsZUFBZSw0Q0FBNEMscUJBQXFCLFlBQVksa0JBQWtCLFlBQVksSUFBSSx1Q0FBQyxDQUFDLGVBQWUsSUFBSSxlQUFlLFNBQVMsY0FBYyxjQUFjLE9BQU8sbURBQUMsT0FBTyxpQkFBaUIsWUFBWSxnREFBQyxFQUFFLEdBQUcsVUFBVSxrQkFBa0IsT0FBTyx1REFBQyxZQUFZLHVCQUF1QixJQUFJLEVBQUUsVUFBVSxpREFBQyxZQUFZLGlCQUFpQixJQUFJLGVBQWUsVUFBVSxJQUFJLEVBQUUsRUFBRSxRQUFRLGVBQWUscUJBQXFCLElBQUksVUFBVSxzREFBc0QsU0FBUyxVQUFVLFFBQVEsU0FBUyw0Q0FBQyxPQUFPLHlDQUFDLFlBQVksOENBQUMsV0FBVyw2Q0FBQyxpQkFBaUIsbURBQUMsOEdBQThHLDBDQUFDLHFCQUFxQix1REFBQyxTQUFTLDJDQUFDLGFBQWEsK0NBQUMsWUFBWSw4Q0FBQyxlQUFlLGlEQUFDLHVHQUF1Ryw0Q0FBQyxlQUFlLDRDQUFDLDRDQUE0Qyx3Q0FBQyxVQUFVLHVDQUFDLHVFQUF1RSx3Q0FBQyxtTEFBZ3VCO0FBQzk1UyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby9wcm9wZXJ0aWVzLXBhbmVsL3ByZWFjdC9jb21wYXQvZGlzdC9jb21wYXQubW9kdWxlLmpzPzBjZGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0e0NvbXBvbmVudCBhcyBuLGNyZWF0ZUVsZW1lbnQgYXMgdCxvcHRpb25zIGFzIGUsdG9DaGlsZEFycmF5IGFzIHIsRnJhZ21lbnQgYXMgdSxyZW5kZXIgYXMgbyxoeWRyYXRlIGFzIGksY3JlYXRlQ29udGV4dCBhcyBsLGNyZWF0ZVJlZiBhcyBjLGNsb25lRWxlbWVudCBhcyBmfWZyb21cIi4uLy4uXCI7ZXhwb3J0e0NvbXBvbmVudCxGcmFnbWVudCxjcmVhdGVDb250ZXh0LGNyZWF0ZUVsZW1lbnQsY3JlYXRlUmVmfWZyb21cIi4uLy4uXCI7aW1wb3J0e3VzZVN0YXRlIGFzIGEsdXNlSWQgYXMgcyx1c2VSZWR1Y2VyIGFzIGgsdXNlRWZmZWN0IGFzIHYsdXNlTGF5b3V0RWZmZWN0IGFzIGQsdXNlUmVmIGFzIHAsdXNlSW1wZXJhdGl2ZUhhbmRsZSBhcyBtLHVzZU1lbW8gYXMgeSx1c2VDYWxsYmFjayBhcyBfLHVzZUNvbnRleHQgYXMgYix1c2VEZWJ1Z1ZhbHVlIGFzIFN9ZnJvbVwiLi4vLi4vaG9va3NcIjtleHBvcnQqZnJvbVwiLi4vLi4vaG9va3NcIjtmdW5jdGlvbiBnKG4sdCl7Zm9yKHZhciBlIGluIHQpbltlXT10W2VdO3JldHVybiBufWZ1bmN0aW9uIEMobix0KXtmb3IodmFyIGUgaW4gbilpZihcIl9fc291cmNlXCIhPT1lJiYhKGUgaW4gdCkpcmV0dXJuITA7Zm9yKHZhciByIGluIHQpaWYoXCJfX3NvdXJjZVwiIT09ciYmbltyXSE9PXRbcl0pcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRShuKXt0aGlzLnByb3BzPW59ZnVuY3Rpb24gdyhuLGUpe2Z1bmN0aW9uIHIobil7dmFyIHQ9dGhpcy5wcm9wcy5yZWYscj10PT1uLnJlZjtyZXR1cm4hciYmdCYmKHQuY2FsbD90KG51bGwpOnQuY3VycmVudD1udWxsKSxlPyFlKHRoaXMucHJvcHMsbil8fCFyOkModGhpcy5wcm9wcyxuKX1mdW5jdGlvbiB1KGUpe3JldHVybiB0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1yLHQobixlKX1yZXR1cm4gdS5kaXNwbGF5TmFtZT1cIk1lbW8oXCIrKG4uZGlzcGxheU5hbWV8fG4ubmFtZSkrXCIpXCIsdS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD0hMCx1Ll9fZj0hMCx1fShFLnByb3RvdHlwZT1uZXcgbikuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITAsRS5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEModGhpcy5wcm9wcyxuKXx8Qyh0aGlzLnN0YXRlLHQpfTt2YXIgeD1lLl9fYjtlLl9fYj1mdW5jdGlvbihuKXtuLnR5cGUmJm4udHlwZS5fX2YmJm4ucmVmJiYobi5wcm9wcy5yZWY9bi5yZWYsbi5yZWY9bnVsbCkseCYmeChuKX07dmFyIFI9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpfHwzOTExO2Z1bmN0aW9uIE4obil7ZnVuY3Rpb24gdCh0KXt2YXIgZT1nKHt9LHQpO3JldHVybiBkZWxldGUgZS5yZWYsbihlLHQucmVmfHxudWxsKX1yZXR1cm4gdC4kJHR5cGVvZj1SLHQucmVuZGVyPXQsdC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD10Ll9fZj0hMCx0LmRpc3BsYXlOYW1lPVwiRm9yd2FyZFJlZihcIisobi5kaXNwbGF5TmFtZXx8bi5uYW1lKStcIilcIix0fXZhciBrPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGw9PW4/bnVsbDpyKHIobikubWFwKHQpKX0sQT17bWFwOmssZm9yRWFjaDprLGNvdW50OmZ1bmN0aW9uKG4pe3JldHVybiBuP3IobikubGVuZ3RoOjB9LG9ubHk6ZnVuY3Rpb24obil7dmFyIHQ9cihuKTtpZigxIT09dC5sZW5ndGgpdGhyb3dcIkNoaWxkcmVuLm9ubHlcIjtyZXR1cm4gdFswXX0sdG9BcnJheTpyfSxPPWUuX19lO2UuX19lPWZ1bmN0aW9uKG4sdCxlLHIpe2lmKG4udGhlbilmb3IodmFyIHUsbz10O289by5fXzspaWYoKHU9by5fX2MpJiZ1Ll9fYylyZXR1cm4gbnVsbD09dC5fX2UmJih0Ll9fZT1lLl9fZSx0Ll9faz1lLl9fayksdS5fX2Mobix0KTtPKG4sdCxlLHIpfTt2YXIgVD1lLnVubW91bnQ7ZnVuY3Rpb24gRihuLHQsZSl7cmV0dXJuIG4mJihuLl9fYyYmbi5fX2MuX19IJiYobi5fX2MuX19ILl9fLmZvckVhY2goZnVuY3Rpb24obil7XCJmdW5jdGlvblwiPT10eXBlb2Ygbi5fX2MmJm4uX19jKCl9KSxuLl9fYy5fX0g9bnVsbCksbnVsbCE9KG49Zyh7fSxuKSkuX19jJiYobi5fX2MuX19QPT09ZSYmKG4uX19jLl9fUD10KSxuLl9fYz1udWxsKSxuLl9faz1uLl9fayYmbi5fX2subWFwKGZ1bmN0aW9uKG4pe3JldHVybiBGKG4sdCxlKX0pKSxufWZ1bmN0aW9uIEkobix0LGUpe3JldHVybiBuJiZlJiYobi5fX3Y9bnVsbCxuLl9faz1uLl9fayYmbi5fX2subWFwKGZ1bmN0aW9uKG4pe3JldHVybiBJKG4sdCxlKX0pLG4uX19jJiZuLl9fYy5fX1A9PT10JiYobi5fX2UmJmUuYXBwZW5kQ2hpbGQobi5fX2UpLG4uX19jLl9fZT0hMCxuLl9fYy5fX1A9ZSkpLG59ZnVuY3Rpb24gTCgpe3RoaXMuX191PTAsdGhpcy50PW51bGwsdGhpcy5fX2I9bnVsbH1mdW5jdGlvbiBVKG4pe3ZhciB0PW4uX18uX19jO3JldHVybiB0JiZ0Ll9fYSYmdC5fX2Eobil9ZnVuY3Rpb24gRChuKXt2YXIgZSxyLHU7ZnVuY3Rpb24gbyhvKXtpZihlfHwoZT1uKCkpLnRoZW4oZnVuY3Rpb24obil7cj1uLmRlZmF1bHR8fG59LGZ1bmN0aW9uKG4pe3U9bn0pLHUpdGhyb3cgdTtpZighcil0aHJvdyBlO3JldHVybiB0KHIsbyl9cmV0dXJuIG8uZGlzcGxheU5hbWU9XCJMYXp5XCIsby5fX2Y9ITAsb31mdW5jdGlvbiBNKCl7dGhpcy51PW51bGwsdGhpcy5vPW51bGx9ZS51bm1vdW50PWZ1bmN0aW9uKG4pe3ZhciB0PW4uX19jO3QmJnQuX19SJiZ0Ll9fUigpLHQmJjMyJm4uX191JiYobi50eXBlPW51bGwpLFQmJlQobil9LChMLnByb3RvdHlwZT1uZXcgbikuX19jPWZ1bmN0aW9uKG4sdCl7dmFyIGU9dC5fX2Mscj10aGlzO251bGw9PXIudCYmKHIudD1bXSksci50LnB1c2goZSk7dmFyIHU9VShyLl9fdiksbz0hMSxpPWZ1bmN0aW9uKCl7b3x8KG89ITAsZS5fX1I9bnVsbCx1P3UobCk6bCgpKX07ZS5fX1I9aTt2YXIgbD1mdW5jdGlvbigpe2lmKCEtLXIuX191KXtpZihyLnN0YXRlLl9fYSl7dmFyIG49ci5zdGF0ZS5fX2E7ci5fX3YuX19rWzBdPUkobixuLl9fYy5fX1Asbi5fX2MuX19PKX12YXIgdDtmb3Ioci5zZXRTdGF0ZSh7X19hOnIuX19iPW51bGx9KTt0PXIudC5wb3AoKTspdC5mb3JjZVVwZGF0ZSgpfX07ci5fX3UrK3x8MzImdC5fX3V8fHIuc2V0U3RhdGUoe19fYTpyLl9fYj1yLl9fdi5fX2tbMF19KSxuLnRoZW4oaSxpKX0sTC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt0aGlzLnQ9W119LEwucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuLGUpe2lmKHRoaXMuX19iKXtpZih0aGlzLl9fdi5fX2spe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksbz10aGlzLl9fdi5fX2tbMF0uX19jO3RoaXMuX192Ll9fa1swXT1GKHRoaXMuX19iLHIsby5fX089by5fX1ApfXRoaXMuX19iPW51bGx9dmFyIGk9ZS5fX2EmJnQodSxudWxsLG4uZmFsbGJhY2spO3JldHVybiBpJiYoaS5fX3UmPS0zMyksW3QodSxudWxsLGUuX19hP251bGw6bi5jaGlsZHJlbiksaV19O3ZhciBWPWZ1bmN0aW9uKG4sdCxlKXtpZigrK2VbMV09PT1lWzBdJiZuLm8uZGVsZXRlKHQpLG4ucHJvcHMucmV2ZWFsT3JkZXImJihcInRcIiE9PW4ucHJvcHMucmV2ZWFsT3JkZXJbMF18fCFuLm8uc2l6ZSkpZm9yKGU9bi51O2U7KXtmb3IoO2UubGVuZ3RoPjM7KWUucG9wKCkoKTtpZihlWzFdPGVbMF0pYnJlYWs7bi51PWU9ZVsyXX19O2Z1bmN0aW9uIFcobil7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uY29udGV4dH0sbi5jaGlsZHJlbn1mdW5jdGlvbiBQKG4pe3ZhciBlPXRoaXMscj1uLmk7ZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe28obnVsbCxlLmwpLGUubD1udWxsLGUuaT1udWxsfSxlLmkmJmUuaSE9PXImJmUuY29tcG9uZW50V2lsbFVubW91bnQoKSxlLmx8fChlLmk9cixlLmw9e25vZGVUeXBlOjEscGFyZW50Tm9kZTpyLGNoaWxkTm9kZXM6W10sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24obil7dGhpcy5jaGlsZE5vZGVzLnB1c2gobiksZS5pLmFwcGVuZENoaWxkKG4pfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24obix0KXt0aGlzLmNoaWxkTm9kZXMucHVzaChuKSxlLmkuYXBwZW5kQ2hpbGQobil9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKG4pe3RoaXMuY2hpbGROb2Rlcy5zcGxpY2UodGhpcy5jaGlsZE5vZGVzLmluZGV4T2Yobik+Pj4xLDEpLGUuaS5yZW1vdmVDaGlsZChuKX19KSxvKHQoVyx7Y29udGV4dDplLmNvbnRleHR9LG4uX192KSxlLmwpfWZ1bmN0aW9uIGoobixlKXt2YXIgcj10KFAse19fdjpuLGk6ZX0pO3JldHVybiByLmNvbnRhaW5lckluZm89ZSxyfShNLnByb3RvdHlwZT1uZXcgbikuX19hPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMsZT1VKHQuX192KSxyPXQuby5nZXQobik7cmV0dXJuIHJbMF0rKyxmdW5jdGlvbih1KXt2YXIgbz1mdW5jdGlvbigpe3QucHJvcHMucmV2ZWFsT3JkZXI/KHIucHVzaCh1KSxWKHQsbixyKSk6dSgpfTtlP2Uobyk6bygpfX0sTS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4pe3RoaXMudT1udWxsLHRoaXMubz1uZXcgTWFwO3ZhciB0PXIobi5jaGlsZHJlbik7bi5yZXZlYWxPcmRlciYmXCJiXCI9PT1uLnJldmVhbE9yZGVyWzBdJiZ0LnJldmVyc2UoKTtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tOyl0aGlzLm8uc2V0KHRbZV0sdGhpcy51PVsxLDAsdGhpcy51XSk7cmV0dXJuIG4uY2hpbGRyZW59LE0ucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZT1NLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5vLmZvckVhY2goZnVuY3Rpb24odCxlKXtWKG4sZSx0KX0pfTt2YXIgej1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yJiZTeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKXx8NjAxMDMsQj0vXig/OmFjY2VudHxhbGlnbm1lbnR8YXJhYmljfGJhc2VsaW5lfGNhcHxjbGlwKD8hUGF0aFUpfGNvbG9yfGRvbWluYW50fGZpbGx8Zmxvb2R8Zm9udHxnbHlwaCg/IVIpfGhvcml6fGltYWdlKCFTKXxsZXR0ZXJ8bGlnaHRpbmd8bWFya2VyKD8hSHxXfFUpfG92ZXJsaW5lfHBhaW50fHBvaW50ZXJ8c2hhcGV8c3RvcHxzdHJpa2V0aHJvdWdofHN0cm9rZXx0ZXh0KD8hTCl8dHJhbnNmb3JtfHVuZGVybGluZXx1bmljb2RlfHVuaXRzfHZ8dmVjdG9yfHZlcnR8d29yZHx3cml0aW5nfHgoPyFDKSlbQS1aXS8sSD0vXm9uKEFuaXxUcmF8VG91fEJlZm9yZUlucHxDb21wbykvLFo9L1tBLVowLTldL2csWT1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQsJD1mdW5jdGlvbihuKXtyZXR1cm4oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbCgpPy9maWx8Y2hlfHJhZC86L2ZpbHxjaGV8cmEvKS50ZXN0KG4pfTtmdW5jdGlvbiBxKG4sdCxlKXtyZXR1cm4gbnVsbD09dC5fX2smJih0LnRleHRDb250ZW50PVwiXCIpLG8obix0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlKCksbj9uLl9fYzpudWxsfWZ1bmN0aW9uIEcobix0LGUpe3JldHVybiBpKG4sdCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSgpLG4/bi5fX2M6bnVsbH1uLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LFtcImNvbXBvbmVudFdpbGxNb3VudFwiLFwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiLFwiY29tcG9uZW50V2lsbFVwZGF0ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbXCJVTlNBRkVfXCIrdF19LHNldDpmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfX0pfSk7dmFyIEo9ZS5ldmVudDtmdW5jdGlvbiBLKCl7fWZ1bmN0aW9uIFEoKXtyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGV9ZnVuY3Rpb24gWCgpe3JldHVybiB0aGlzLmRlZmF1bHRQcmV2ZW50ZWR9ZS5ldmVudD1mdW5jdGlvbihuKXtyZXR1cm4gSiYmKG49SihuKSksbi5wZXJzaXN0PUssbi5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1RLG4uaXNEZWZhdWx0UHJldmVudGVkPVgsbi5uYXRpdmVFdmVudD1ufTt2YXIgbm4sdG49e2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsYXNzfX0sZW49ZS52bm9kZTtlLnZub2RlPWZ1bmN0aW9uKG4pe1wic3RyaW5nXCI9PXR5cGVvZiBuLnR5cGUmJmZ1bmN0aW9uKG4pe3ZhciB0PW4ucHJvcHMsZT1uLnR5cGUsdT17fTtmb3IodmFyIG8gaW4gdCl7dmFyIGk9dFtvXTtpZighKFwidmFsdWVcIj09PW8mJlwiZGVmYXVsdFZhbHVlXCJpbiB0JiZudWxsPT1pfHxZJiZcImNoaWxkcmVuXCI9PT1vJiZcIm5vc2NyaXB0XCI9PT1lfHxcImNsYXNzXCI9PT1vfHxcImNsYXNzTmFtZVwiPT09bykpe3ZhciBsPW8udG9Mb3dlckNhc2UoKTtcImRlZmF1bHRWYWx1ZVwiPT09byYmXCJ2YWx1ZVwiaW4gdCYmbnVsbD09dC52YWx1ZT9vPVwidmFsdWVcIjpcImRvd25sb2FkXCI9PT1vJiYhMD09PWk/aT1cIlwiOlwib25kb3VibGVjbGlja1wiPT09bD9vPVwib25kYmxjbGlja1wiOlwib25jaGFuZ2VcIiE9PWx8fFwiaW5wdXRcIiE9PWUmJlwidGV4dGFyZWFcIiE9PWV8fCQodC50eXBlKT9cIm9uZm9jdXNcIj09PWw/bz1cIm9uZm9jdXNpblwiOlwib25ibHVyXCI9PT1sP289XCJvbmZvY3Vzb3V0XCI6SC50ZXN0KG8pP289bDotMT09PWUuaW5kZXhPZihcIi1cIikmJkIudGVzdChvKT9vPW8ucmVwbGFjZShaLFwiLSQmXCIpLnRvTG93ZXJDYXNlKCk6bnVsbD09PWkmJihpPXZvaWQgMCk6bD1vPVwib25pbnB1dFwiLFwib25pbnB1dFwiPT09bCYmdVtvPWxdJiYobz1cIm9uaW5wdXRDYXB0dXJlXCIpLHVbb109aX19XCJzZWxlY3RcIj09ZSYmdS5tdWx0aXBsZSYmQXJyYXkuaXNBcnJheSh1LnZhbHVlKSYmKHUudmFsdWU9cih0LmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24ucHJvcHMuc2VsZWN0ZWQ9LTEhPXUudmFsdWUuaW5kZXhPZihuLnByb3BzLnZhbHVlKX0pKSxcInNlbGVjdFwiPT1lJiZudWxsIT11LmRlZmF1bHRWYWx1ZSYmKHUudmFsdWU9cih0LmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24ucHJvcHMuc2VsZWN0ZWQ9dS5tdWx0aXBsZT8tMSE9dS5kZWZhdWx0VmFsdWUuaW5kZXhPZihuLnByb3BzLnZhbHVlKTp1LmRlZmF1bHRWYWx1ZT09bi5wcm9wcy52YWx1ZX0pKSx0LmNsYXNzJiYhdC5jbGFzc05hbWU/KHUuY2xhc3M9dC5jbGFzcyxPYmplY3QuZGVmaW5lUHJvcGVydHkodSxcImNsYXNzTmFtZVwiLHRuKSk6KHQuY2xhc3NOYW1lJiYhdC5jbGFzc3x8dC5jbGFzcyYmdC5jbGFzc05hbWUpJiYodS5jbGFzcz11LmNsYXNzTmFtZT10LmNsYXNzTmFtZSksbi5wcm9wcz11fShuKSxuLiQkdHlwZW9mPXosZW4mJmVuKG4pfTt2YXIgcm49ZS5fX3I7ZS5fX3I9ZnVuY3Rpb24obil7cm4mJnJuKG4pLG5uPW4uX19jfTt2YXIgdW49ZS5kaWZmZWQ7ZS5kaWZmZWQ9ZnVuY3Rpb24obil7dW4mJnVuKG4pO3ZhciB0PW4ucHJvcHMsZT1uLl9fZTtudWxsIT1lJiZcInRleHRhcmVhXCI9PT1uLnR5cGUmJlwidmFsdWVcImluIHQmJnQudmFsdWUhPT1lLnZhbHVlJiYoZS52YWx1ZT1udWxsPT10LnZhbHVlP1wiXCI6dC52YWx1ZSksbm49bnVsbH07dmFyIG9uPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOntjdXJyZW50OntyZWFkQ29udGV4dDpmdW5jdGlvbihuKXtyZXR1cm4gbm4uX19uW24uX19jXS5wcm9wcy52YWx1ZX19fX0sbG49XCIxNy4wLjJcIjtmdW5jdGlvbiBjbihuKXtyZXR1cm4gdC5iaW5kKG51bGwsbil9ZnVuY3Rpb24gZm4obil7cmV0dXJuISFuJiZuLiQkdHlwZW9mPT09en1mdW5jdGlvbiBhbihuKXtyZXR1cm4gZm4obikmJm4udHlwZT09PXV9ZnVuY3Rpb24gc24obil7cmV0dXJuIGZuKG4pP2YuYXBwbHkobnVsbCxhcmd1bWVudHMpOm59ZnVuY3Rpb24gaG4obil7cmV0dXJuISFuLl9fayYmKG8obnVsbCxuKSwhMCl9ZnVuY3Rpb24gdm4obil7cmV0dXJuIG4mJihuLmJhc2V8fDE9PT1uLm5vZGVUeXBlJiZuKXx8bnVsbH12YXIgZG49ZnVuY3Rpb24obix0KXtyZXR1cm4gbih0KX0scG49ZnVuY3Rpb24obix0KXtyZXR1cm4gbih0KX0sbW49dTtmdW5jdGlvbiB5bihuKXtuKCl9ZnVuY3Rpb24gX24obil7cmV0dXJuIG59ZnVuY3Rpb24gYm4oKXtyZXR1cm5bITEseW5dfXZhciBTbj1kLGduPWZuO2Z1bmN0aW9uIENuKG4sdCl7dmFyIGU9dCgpLHI9YSh7aDp7X186ZSx2OnR9fSksdT1yWzBdLmgsbz1yWzFdO3JldHVybiBkKGZ1bmN0aW9uKCl7dS5fXz1lLHUudj10LEVuKHUpJiZvKHtoOnV9KX0sW24sZSx0XSksdihmdW5jdGlvbigpe3JldHVybiBFbih1KSYmbyh7aDp1fSksbihmdW5jdGlvbigpe0VuKHUpJiZvKHtoOnV9KX0pfSxbbl0pLGV9ZnVuY3Rpb24gRW4obil7dmFyIHQsZSxyPW4udix1PW4uX187dHJ5e3ZhciBvPXIoKTtyZXR1cm4hKCh0PXUpPT09KGU9bykmJigwIT09dHx8MS90PT0xL2UpfHx0IT10JiZlIT1lKX1jYXRjaChuKXtyZXR1cm4hMH19dmFyIHduPXt1c2VTdGF0ZTphLHVzZUlkOnMsdXNlUmVkdWNlcjpoLHVzZUVmZmVjdDp2LHVzZUxheW91dEVmZmVjdDpkLHVzZUluc2VydGlvbkVmZmVjdDpTbix1c2VUcmFuc2l0aW9uOmJuLHVzZURlZmVycmVkVmFsdWU6X24sdXNlU3luY0V4dGVybmFsU3RvcmU6Q24sc3RhcnRUcmFuc2l0aW9uOnluLHVzZVJlZjpwLHVzZUltcGVyYXRpdmVIYW5kbGU6bSx1c2VNZW1vOnksdXNlQ2FsbGJhY2s6Xyx1c2VDb250ZXh0OmIsdXNlRGVidWdWYWx1ZTpTLHZlcnNpb246XCIxNy4wLjJcIixDaGlsZHJlbjpBLHJlbmRlcjpxLGh5ZHJhdGU6Ryx1bm1vdW50Q29tcG9uZW50QXROb2RlOmhuLGNyZWF0ZVBvcnRhbDpqLGNyZWF0ZUVsZW1lbnQ6dCxjcmVhdGVDb250ZXh0OmwsY3JlYXRlRmFjdG9yeTpjbixjbG9uZUVsZW1lbnQ6c24sY3JlYXRlUmVmOmMsRnJhZ21lbnQ6dSxpc1ZhbGlkRWxlbWVudDpmbixpc0VsZW1lbnQ6Z24saXNGcmFnbWVudDphbixmaW5kRE9NTm9kZTp2bixDb21wb25lbnQ6bixQdXJlQ29tcG9uZW50OkUsbWVtbzp3LGZvcndhcmRSZWY6TixmbHVzaFN5bmM6cG4sdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM6ZG4sU3RyaWN0TW9kZTptbixTdXNwZW5zZTpMLFN1c3BlbnNlTGlzdDpNLGxhenk6RCxfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDpvbn07ZXhwb3J0e0EgYXMgQ2hpbGRyZW4sRSBhcyBQdXJlQ29tcG9uZW50LG1uIGFzIFN0cmljdE1vZGUsTCBhcyBTdXNwZW5zZSxNIGFzIFN1c3BlbnNlTGlzdCxvbiBhcyBfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxzbiBhcyBjbG9uZUVsZW1lbnQsY24gYXMgY3JlYXRlRmFjdG9yeSxqIGFzIGNyZWF0ZVBvcnRhbCx3biBhcyBkZWZhdWx0LHZuIGFzIGZpbmRET01Ob2RlLHBuIGFzIGZsdXNoU3luYyxOIGFzIGZvcndhcmRSZWYsRyBhcyBoeWRyYXRlLGduIGFzIGlzRWxlbWVudCxhbiBhcyBpc0ZyYWdtZW50LGZuIGFzIGlzVmFsaWRFbGVtZW50LEQgYXMgbGF6eSx3IGFzIG1lbW8scSBhcyByZW5kZXIseW4gYXMgc3RhcnRUcmFuc2l0aW9uLGhuIGFzIHVubW91bnRDb21wb25lbnRBdE5vZGUsZG4gYXMgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsX24gYXMgdXNlRGVmZXJyZWRWYWx1ZSxTbiBhcyB1c2VJbnNlcnRpb25FZmZlY3QsQ24gYXMgdXNlU3luY0V4dGVybmFsU3RvcmUsYm4gYXMgdXNlVHJhbnNpdGlvbixsbiBhcyB2ZXJzaW9ufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBhdC5tb2R1bGUuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/properties-panel/preact/compat/dist/compat.module.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js": /*!*****************************************************************************!*\ !*** ./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Component: () => (/* binding */ b),\n/* harmony export */ Fragment: () => (/* binding */ g),\n/* harmony export */ cloneElement: () => (/* binding */ E),\n/* harmony export */ createContext: () => (/* binding */ F),\n/* harmony export */ createElement: () => (/* binding */ y),\n/* harmony export */ createRef: () => (/* binding */ _),\n/* harmony export */ h: () => (/* binding */ y),\n/* harmony export */ hydrate: () => (/* binding */ B),\n/* harmony export */ isValidElement: () => (/* binding */ t),\n/* harmony export */ options: () => (/* binding */ l),\n/* harmony export */ render: () => (/* binding */ q),\n/* harmony export */ toChildArray: () => (/* binding */ $)\n/* harmony export */ });\nvar n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,h=Array.isArray;function v(n,l){for(var u in l)n[u]=l[u];return n}function p(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return d(l,f,i,o,null)}function d(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function _(){return{current:null}}function g(n){return n.children}function b(n,l){this.props=n,this.context=l}function m(n,l){if(null==l)return n.__?m(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));x.__r=0}function C(n,l,u,t,i,o,r,f,e,a,h){var v,p,y,d,_,g=t&&t.__k||s,b=l.length;for(u.__d=e,P(u,l,g),e=u.__d,v=0;v0?d(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=H(i,u,r=t+a,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:a=f(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),d(l.type,e,i||l.key,o||l.ref,null)}function F(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,w(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),\"function\"==typeof n&&(n=n(v({},u),this.props)),n&&v(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),w(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),w(this))},b.prototype.render=g,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},x.__r=0,e=0;\n//# sourceMappingURL=preact.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vcHJvcGVydGllcy1wYW5lbC9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQUEwQiw0RkFBNEYsZ0JBQWdCLHlCQUF5QixTQUFTLGNBQWMsbUJBQW1CLG9CQUFvQixrQkFBa0IsZUFBZSxxREFBcUQsd0xBQXdMLHVCQUF1QixzQkFBc0IsT0FBTyxrSUFBa0ksNENBQTRDLGFBQWEsT0FBTyxjQUFjLGNBQWMsa0JBQWtCLGdCQUFnQiw0QkFBNEIsZ0JBQWdCLDRDQUE0QyxVQUFVLGVBQWUsb0RBQW9ELDBDQUEwQyxjQUFjLFFBQVEsZ0NBQWdDLDhCQUE4QixlQUFlLHdDQUF3Qyx1QkFBdUIsTUFBTSxhQUFhLGNBQWMsb0dBQW9HLGFBQWEsc0JBQXNCLGNBQWMsWUFBWSw4RUFBOEUsbU1BQW1NLFFBQVEsa0NBQWtDLHVDQUF1QyxpQ0FBaUMsSUFBSSwrV0FBK1csZ0JBQWdCLGtCQUFrQiw0Q0FBNEMsaUJBQWlCLElBQUksdU1BQXVNLFdBQVcsd2JBQXdiLGFBQWEsSUFBSSwyRUFBMkUsa0JBQWtCLFFBQVEsOEJBQThCLGdCQUFnQixjQUFjLG9DQUFvQyxTQUFTLDBFQUEwRSxnQkFBZ0Isc0VBQXNFLE9BQU8sZUFBZSxvQkFBb0Isd0NBQXdDLDhDQUE4QywyQ0FBMkMsaUJBQWlCLEVBQUUsU0FBUyw4REFBOEQsSUFBSSxlQUFlLDhEQUE4RCxLQUFLLFNBQVMsa0JBQWtCLGdHQUFnRyxzQkFBc0IsTUFBTSx5REFBeUQsS0FBSyxzRkFBc0Ysa0RBQWtELDRKQUE0Six5R0FBeUcsS0FBSywwREFBMEQsNEpBQTRKLGtCQUFrQixRQUFRLFVBQVUsOEZBQThGLGNBQWMsd0JBQXdCLFFBQVEsbUJBQW1CLG9CQUFvQiwrQkFBK0IsY0FBYywrQ0FBK0MsZ0NBQWdDLDJDQUEyQyxzQ0FBc0MsOERBQThELDhCQUE4Qix5UEFBeVAsK0lBQStJLHFPQUFxTyxLQUFLLGlOQUFpTix3R0FBd0csWUFBWSxNQUFNLGVBQWUseUJBQXlCLGlDQUFpQyxRQUFRLGdIQUFnSCw0QkFBNEIsRUFBRSwyRkFBMkYsNkVBQTZFLGVBQWUseUJBQXlCLFNBQVMsUUFBUSxxRUFBcUUscUJBQXFCLGdEQUFnRCw2UEFBNlAsU0FBUyw0R0FBNEcscUZBQXFGLG1CQUFtQixrQkFBa0IsYUFBYSxZQUFZLFdBQVcsMEJBQTBCLHFDQUFxQyxJQUFJLG9DQUFvQyxVQUFVLEVBQUUsU0FBUyxnQkFBZ0IsRUFBRSw4QkFBOEIsK0NBQStDLHFDQUFxQyxXQUFXLDhFQUE4RSxjQUFjLE1BQU0sWUFBWSw4Q0FBOEMsMkdBQTJHLDZDQUE2QyxLQUFLLDhEQUE4RCxLQUFLLHNCQUFzQix3Q0FBd0MsdUdBQXVHLG1LQUFtSywwRkFBMEYsNkhBQTZILElBQUkscUJBQXFCLHVKQUF1SixTQUFTLGtCQUFrQixJQUFJLHNDQUFzQyxTQUFTLFlBQVksa0JBQWtCLFFBQVEsbUdBQW1HLDhCQUE4Qix5QkFBeUIsU0FBUyxXQUFXLCtCQUErQixtQkFBbUIsV0FBVyxpREFBaUQsaURBQWlELGtCQUFrQiw2QkFBNkIsa0JBQWtCLFlBQVksb1BBQW9QLGdCQUFnQixTQUFTLGtCQUFrQixrQkFBa0IsVUFBVSx5SUFBeUksb0hBQW9ILGdCQUFnQixPQUFPLDZDQUE2QyxxQkFBcUIsc0JBQXNCLFFBQVEsd0NBQXdDLDBDQUEwQyxTQUFTLHdDQUF3QywrQ0FBK0MsY0FBYyxFQUFFLHNCQUFzQixVQUFVLDZCQUE2QixrQ0FBa0MsdUNBQXVDLGVBQWUsOENBQThDLGFBQWEsc0JBQXNCLGNBQWMsT0FBTyx5QkFBeUIsbUtBQW1LLDRCQUE0QixTQUFTLElBQUksU0FBUyxtQkFBbUIsb0NBQW9DLG9DQUFvQyxNQUFNLDhEQUE4RCw0Q0FBNEMsNEVBQTRFLHFDQUFxQyxvREFBb0Qsa0lBQWtJLDJCQUEyQixhQUE0TTtBQUMxdlYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vcHJvcGVydGllcy1wYW5lbC9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzPzNlZTgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIG4sbCx1LHQsaSxvLHIsZixlLGM9e30scz1bXSxhPS9hY2l0fGV4KD86c3xnfG58cHwkKXxycGh8Z3JpZHxvd3N8bW5jfG50d3xpbmVbY2hdfHpvb3xeb3JkfGl0ZXJhL2ksaD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHYobixsKXtmb3IodmFyIHUgaW4gbCluW3VdPWxbdV07cmV0dXJuIG59ZnVuY3Rpb24gcChuKXt2YXIgbD1uLnBhcmVudE5vZGU7bCYmbC5yZW1vdmVDaGlsZChuKX1mdW5jdGlvbiB5KGwsdSx0KXt2YXIgaSxvLHIsZj17fTtmb3IociBpbiB1KVwia2V5XCI9PXI/aT11W3JdOlwicmVmXCI9PXI/bz11W3JdOmZbcl09dVtyXTtpZihhcmd1bWVudHMubGVuZ3RoPjImJihmLmNoaWxkcmVuPWFyZ3VtZW50cy5sZW5ndGg+Mz9uLmNhbGwoYXJndW1lbnRzLDIpOnQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGwmJm51bGwhPWwuZGVmYXVsdFByb3BzKWZvcihyIGluIGwuZGVmYXVsdFByb3BzKXZvaWQgMD09PWZbcl0mJihmW3JdPWwuZGVmYXVsdFByb3BzW3JdKTtyZXR1cm4gZChsLGYsaSxvLG51bGwpfWZ1bmN0aW9uIGQobix0LGksbyxyKXt2YXIgZj17dHlwZTpuLHByb3BzOnQsa2V5OmkscmVmOm8sX19rOm51bGwsX186bnVsbCxfX2I6MCxfX2U6bnVsbCxfX2Q6dm9pZCAwLF9fYzpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6bnVsbD09cj8rK3U6cixfX2k6LTEsX191OjB9O3JldHVybiBudWxsPT1yJiZudWxsIT1sLnZub2RlJiZsLnZub2RlKGYpLGZ9ZnVuY3Rpb24gXygpe3JldHVybntjdXJyZW50Om51bGx9fWZ1bmN0aW9uIGcobil7cmV0dXJuIG4uY2hpbGRyZW59ZnVuY3Rpb24gYihuLGwpe3RoaXMucHJvcHM9bix0aGlzLmNvbnRleHQ9bH1mdW5jdGlvbiBtKG4sbCl7aWYobnVsbD09bClyZXR1cm4gbi5fXz9tKG4uX18sbi5fX2krMSk6bnVsbDtmb3IodmFyIHU7bDxuLl9fay5sZW5ndGg7bCsrKWlmKG51bGwhPSh1PW4uX19rW2xdKSYmbnVsbCE9dS5fX2UpcmV0dXJuIHUuX19lO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4udHlwZT9tKG4pOm51bGx9ZnVuY3Rpb24gayhuKXt2YXIgbCx1O2lmKG51bGwhPShuPW4uX18pJiZudWxsIT1uLl9fYyl7Zm9yKG4uX19lPW4uX19jLmJhc2U9bnVsbCxsPTA7bDxuLl9fay5sZW5ndGg7bCsrKWlmKG51bGwhPSh1PW4uX19rW2xdKSYmbnVsbCE9dS5fX2Upe24uX19lPW4uX19jLmJhc2U9dS5fX2U7YnJlYWt9cmV0dXJuIGsobil9fWZ1bmN0aW9uIHcobil7KCFuLl9fZCYmKG4uX19kPSEwKSYmaS5wdXNoKG4pJiYheC5fX3IrK3x8byE9PWwuZGVib3VuY2VSZW5kZXJpbmcpJiYoKG89bC5kZWJvdW5jZVJlbmRlcmluZyl8fHIpKHgpfWZ1bmN0aW9uIHgoKXt2YXIgbix1LHQsbyxyLGUsYyxzLGE7Zm9yKGkuc29ydChmKTtuPWkuc2hpZnQoKTspbi5fX2QmJih1PWkubGVuZ3RoLG89dm9pZCAwLGU9KHI9KHQ9bikuX192KS5fX2Uscz1bXSxhPVtdLChjPXQuX19QKSYmKChvPXYoe30scikpLl9fdj1yLl9fdisxLGwudm5vZGUmJmwudm5vZGUobyksTChjLG8scix0Ll9fbix2b2lkIDAhPT1jLm93bmVyU1ZHRWxlbWVudCwzMiZyLl9fdT9bZV06bnVsbCxzLG51bGw9PWU/bShyKTplLCEhKDMyJnIuX191KSxhKSxvLl9fLl9fa1tvLl9faV09byxNKHMsbyxhKSxvLl9fZSE9ZSYmayhvKSksaS5sZW5ndGg+dSYmaS5zb3J0KGYpKTt4Ll9fcj0wfWZ1bmN0aW9uIEMobixsLHUsdCxpLG8scixmLGUsYSxoKXt2YXIgdixwLHksZCxfLGc9dCYmdC5fX2t8fHMsYj1sLmxlbmd0aDtmb3IodS5fX2Q9ZSxQKHUsbCxnKSxlPXUuX19kLHY9MDt2PGI7disrKW51bGwhPSh5PXUuX19rW3ZdKSYmXCJib29sZWFuXCIhPXR5cGVvZiB5JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB5JiYocD0tMT09PXkuX19pP2M6Z1t5Ll9faV18fGMseS5fX2k9dixMKG4seSxwLGksbyxyLGYsZSxhLGgpLGQ9eS5fX2UseS5yZWYmJnAucmVmIT15LnJlZiYmKHAucmVmJiZ6KHAucmVmLG51bGwseSksaC5wdXNoKHkucmVmLHkuX19jfHxkLHkpKSxudWxsPT1fJiZudWxsIT1kJiYoXz1kKSw2NTUzNiZ5Ll9fdXx8cC5fX2s9PT15Ll9faz9lPVMoeSxlLG4pOlwiZnVuY3Rpb25cIj09dHlwZW9mIHkudHlwZSYmdm9pZCAwIT09eS5fX2Q/ZT15Ll9fZDpkJiYoZT1kLm5leHRTaWJsaW5nKSx5Ll9fZD12b2lkIDAseS5fX3UmPS0xOTY2MDkpO3UuX19kPWUsdS5fX2U9X31mdW5jdGlvbiBQKG4sbCx1KXt2YXIgdCxpLG8scixmLGU9bC5sZW5ndGgsYz11Lmxlbmd0aCxzPWMsYT0wO2ZvcihuLl9faz1bXSx0PTA7dDxlO3QrKyludWxsIT0oaT1uLl9fa1t0XT1udWxsPT0oaT1sW3RdKXx8XCJib29sZWFuXCI9PXR5cGVvZiBpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBpP251bGw6XCJzdHJpbmdcIj09dHlwZW9mIGl8fFwibnVtYmVyXCI9PXR5cGVvZiBpfHxcImJpZ2ludFwiPT10eXBlb2YgaXx8aS5jb25zdHJ1Y3Rvcj09U3RyaW5nP2QobnVsbCxpLG51bGwsbnVsbCxpKTpoKGkpP2QoZyx7Y2hpbGRyZW46aX0sbnVsbCxudWxsLG51bGwpOnZvaWQgMD09PWkuY29uc3RydWN0b3ImJmkuX19iPjA/ZChpLnR5cGUsaS5wcm9wcyxpLmtleSxpLnJlZj9pLnJlZjpudWxsLGkuX192KTppKT8oaS5fXz1uLGkuX19iPW4uX19iKzEsZj1IKGksdSxyPXQrYSxzKSxpLl9faT1mLG89bnVsbCwtMSE9PWYmJihzLS0sKG89dVtmXSkmJihvLl9fdXw9MTMxMDcyKSksbnVsbD09b3x8bnVsbD09PW8uX192PygtMT09ZiYmYS0tLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGkudHlwZSYmKGkuX191fD02NTUzNikpOmYhPT1yJiYoZj09PXIrMT9hKys6Zj5yP3M+ZS1yP2ErPWYtcjphLS06YT1mPHImJmY9PXItMT9mLXI6MCxmIT09dCthJiYoaS5fX3V8PTY1NTM2KSkpOihvPXVbdF0pJiZudWxsPT1vLmtleSYmby5fX2UmJihvLl9fZT09bi5fX2QmJihuLl9fZD1tKG8pKSxOKG8sbywhMSksdVt0XT1udWxsLHMtLSk7aWYocylmb3IodD0wO3Q8Yzt0KyspbnVsbCE9KG89dVt0XSkmJjA9PSgxMzEwNzImby5fX3UpJiYoby5fX2U9PW4uX19kJiYobi5fX2Q9bShvKSksTihvLG8pKX1mdW5jdGlvbiBTKG4sbCx1KXt2YXIgdCxpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4udHlwZSl7Zm9yKHQ9bi5fX2ssaT0wO3QmJmk8dC5sZW5ndGg7aSsrKXRbaV0mJih0W2ldLl9fPW4sbD1TKHRbaV0sbCx1KSk7cmV0dXJuIGx9cmV0dXJuIG4uX19lIT1sJiYodS5pbnNlcnRCZWZvcmUobi5fX2UsbHx8bnVsbCksbD1uLl9fZSksbCYmbC5uZXh0U2libGluZ31mdW5jdGlvbiAkKG4sbCl7cmV0dXJuIGw9bHx8W10sbnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHwoaChuKT9uLnNvbWUoZnVuY3Rpb24obil7JChuLGwpfSk6bC5wdXNoKG4pKSxsfWZ1bmN0aW9uIEgobixsLHUsdCl7dmFyIGk9bi5rZXksbz1uLnR5cGUscj11LTEsZj11KzEsZT1sW3VdO2lmKG51bGw9PT1lfHxlJiZpPT1lLmtleSYmbz09PWUudHlwZSlyZXR1cm4gdTtpZih0PihudWxsIT1lJiYwPT0oMTMxMDcyJmUuX191KT8xOjApKWZvcig7cj49MHx8ZjxsLmxlbmd0aDspe2lmKHI+PTApe2lmKChlPWxbcl0pJiYwPT0oMTMxMDcyJmUuX191KSYmaT09ZS5rZXkmJm89PT1lLnR5cGUpcmV0dXJuIHI7ci0tfWlmKGY8bC5sZW5ndGgpe2lmKChlPWxbZl0pJiYwPT0oMTMxMDcyJmUuX191KSYmaT09ZS5rZXkmJm89PT1lLnR5cGUpcmV0dXJuIGY7ZisrfX1yZXR1cm4tMX1mdW5jdGlvbiBJKG4sbCx1KXtcIi1cIj09PWxbMF0/bi5zZXRQcm9wZXJ0eShsLG51bGw9PXU/XCJcIjp1KTpuW2xdPW51bGw9PXU/XCJcIjpcIm51bWJlclwiIT10eXBlb2YgdXx8YS50ZXN0KGwpP3U6dStcInB4XCJ9ZnVuY3Rpb24gVChuLGwsdSx0LGkpe3ZhciBvO246aWYoXCJzdHlsZVwiPT09bClpZihcInN0cmluZ1wiPT10eXBlb2YgdSluLnN0eWxlLmNzc1RleHQ9dTtlbHNle2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0JiYobi5zdHlsZS5jc3NUZXh0PXQ9XCJcIiksdClmb3IobCBpbiB0KXUmJmwgaW4gdXx8SShuLnN0eWxlLGwsXCJcIik7aWYodSlmb3IobCBpbiB1KXQmJnVbbF09PT10W2xdfHxJKG4uc3R5bGUsbCx1W2xdKX1lbHNlIGlmKFwib1wiPT09bFswXSYmXCJuXCI9PT1sWzFdKW89bCE9PShsPWwucmVwbGFjZSgvKFBvaW50ZXJDYXB0dXJlKSR8Q2FwdHVyZSQvLFwiJDFcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbj9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK29dPXUsdT90P3UudT10LnU6KHUudT1EYXRlLm5vdygpLG4uYWRkRXZlbnRMaXN0ZW5lcihsLG8/RDpBLG8pKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxvP0Q6QSxvKTtlbHNle2lmKGkpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcIndpZHRoXCIhPT1sJiZcImhlaWdodFwiIT09bCYmXCJocmVmXCIhPT1sJiZcImxpc3RcIiE9PWwmJlwiZm9ybVwiIT09bCYmXCJ0YWJJbmRleFwiIT09bCYmXCJkb3dubG9hZFwiIT09bCYmXCJyb3dTcGFuXCIhPT1sJiZcImNvbFNwYW5cIiE9PWwmJlwicm9sZVwiIT09bCYmbCBpbiBuKXRyeXtuW2xdPW51bGw9PXU/XCJcIjp1O2JyZWFrIG59Y2F0Y2gobil7fVwiZnVuY3Rpb25cIj09dHlwZW9mIHV8fChudWxsPT11fHwhMT09PXUmJlwiLVwiIT09bFs0XT9uLnJlbW92ZUF0dHJpYnV0ZShsKTpuLnNldEF0dHJpYnV0ZShsLHUpKX19ZnVuY3Rpb24gQShuKXt2YXIgdT10aGlzLmxbbi50eXBlKyExXTtpZihuLnQpe2lmKG4udDw9dS51KXJldHVybn1lbHNlIG4udD1EYXRlLm5vdygpO3JldHVybiB1KGwuZXZlbnQ/bC5ldmVudChuKTpuKX1mdW5jdGlvbiBEKG4pe3JldHVybiB0aGlzLmxbbi50eXBlKyEwXShsLmV2ZW50P2wuZXZlbnQobik6bil9ZnVuY3Rpb24gTChuLHUsdCxpLG8scixmLGUsYyxzKXt2YXIgYSxwLHksZCxfLG0sayx3LHgsUCxTLCQsSCxJLFQsQT11LnR5cGU7aWYodm9pZCAwIT09dS5jb25zdHJ1Y3RvcilyZXR1cm4gbnVsbDsxMjgmdC5fX3UmJihjPSEhKDMyJnQuX191KSxyPVtlPXUuX19lPXQuX19lXSksKGE9bC5fX2IpJiZhKHUpO246aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgQSl0cnl7aWYodz11LnByb3BzLHg9KGE9QS5jb250ZXh0VHlwZSkmJmlbYS5fX2NdLFA9YT94P3gucHJvcHMudmFsdWU6YS5fXzppLHQuX19jP2s9KHA9dS5fX2M9dC5fX2MpLl9fPXAuX19FOihcInByb3RvdHlwZVwiaW4gQSYmQS5wcm90b3R5cGUucmVuZGVyP3UuX19jPXA9bmV3IEEodyxQKToodS5fX2M9cD1uZXcgYih3LFApLHAuY29uc3RydWN0b3I9QSxwLnJlbmRlcj1PKSx4JiZ4LnN1YihwKSxwLnByb3BzPXcscC5zdGF0ZXx8KHAuc3RhdGU9e30pLHAuY29udGV4dD1QLHAuX19uPWkseT1wLl9fZD0hMCxwLl9faD1bXSxwLl9zYj1bXSksbnVsbD09cC5fX3MmJihwLl9fcz1wLnN0YXRlKSxudWxsIT1BLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmKHAuX19zPT1wLnN0YXRlJiYocC5fX3M9dih7fSxwLl9fcykpLHYocC5fX3MsQS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHModyxwLl9fcykpKSxkPXAucHJvcHMsXz1wLnN0YXRlLHAuX192PXUseSludWxsPT1BLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbnVsbCE9cC5jb21wb25lbnRXaWxsTW91bnQmJnAuY29tcG9uZW50V2lsbE1vdW50KCksbnVsbCE9cC5jb21wb25lbnREaWRNb3VudCYmcC5fX2gucHVzaChwLmNvbXBvbmVudERpZE1vdW50KTtlbHNle2lmKG51bGw9PUEuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiZ3IT09ZCYmbnVsbCE9cC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZwLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHModyxQKSwhcC5fX2UmJihudWxsIT1wLnNob3VsZENvbXBvbmVudFVwZGF0ZSYmITE9PT1wLnNob3VsZENvbXBvbmVudFVwZGF0ZSh3LHAuX19zLFApfHx1Ll9fdj09PXQuX192KSl7Zm9yKHUuX192IT09dC5fX3YmJihwLnByb3BzPXcscC5zdGF0ZT1wLl9fcyxwLl9fZD0hMSksdS5fX2U9dC5fX2UsdS5fX2s9dC5fX2ssdS5fX2suZm9yRWFjaChmdW5jdGlvbihuKXtuJiYobi5fXz11KX0pLFM9MDtTPHAuX3NiLmxlbmd0aDtTKyspcC5fX2gucHVzaChwLl9zYltTXSk7cC5fc2I9W10scC5fX2gubGVuZ3RoJiZmLnB1c2gocCk7YnJlYWsgbn1udWxsIT1wLmNvbXBvbmVudFdpbGxVcGRhdGUmJnAuY29tcG9uZW50V2lsbFVwZGF0ZSh3LHAuX19zLFApLG51bGwhPXAuY29tcG9uZW50RGlkVXBkYXRlJiZwLl9faC5wdXNoKGZ1bmN0aW9uKCl7cC5jb21wb25lbnREaWRVcGRhdGUoZCxfLG0pfSl9aWYocC5jb250ZXh0PVAscC5wcm9wcz13LHAuX19QPW4scC5fX2U9ITEsJD1sLl9fcixIPTAsXCJwcm90b3R5cGVcImluIEEmJkEucHJvdG90eXBlLnJlbmRlcil7Zm9yKHAuc3RhdGU9cC5fX3MscC5fX2Q9ITEsJCYmJCh1KSxhPXAucmVuZGVyKHAucHJvcHMscC5zdGF0ZSxwLmNvbnRleHQpLEk9MDtJPHAuX3NiLmxlbmd0aDtJKyspcC5fX2gucHVzaChwLl9zYltJXSk7cC5fc2I9W119ZWxzZSBkb3twLl9fZD0hMSwkJiYkKHUpLGE9cC5yZW5kZXIocC5wcm9wcyxwLnN0YXRlLHAuY29udGV4dCkscC5zdGF0ZT1wLl9fc313aGlsZShwLl9fZCYmKytIPDI1KTtwLnN0YXRlPXAuX19zLG51bGwhPXAuZ2V0Q2hpbGRDb250ZXh0JiYoaT12KHYoe30saSkscC5nZXRDaGlsZENvbnRleHQoKSkpLHl8fG51bGw9PXAuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fChtPXAuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoZCxfKSksQyhuLGgoVD1udWxsIT1hJiZhLnR5cGU9PT1nJiZudWxsPT1hLmtleT9hLnByb3BzLmNoaWxkcmVuOmEpP1Q6W1RdLHUsdCxpLG8scixmLGUsYyxzKSxwLmJhc2U9dS5fX2UsdS5fX3UmPS0xNjEscC5fX2gubGVuZ3RoJiZmLnB1c2gocCksayYmKHAuX19FPXAuX189bnVsbCl9Y2F0Y2gobil7dS5fX3Y9bnVsbCxjfHxudWxsIT1yPyh1Ll9fZT1lLHUuX191fD1jPzE2MDozMixyW3IuaW5kZXhPZihlKV09bnVsbCk6KHUuX19lPXQuX19lLHUuX19rPXQuX19rKSxsLl9fZShuLHUsdCl9ZWxzZSBudWxsPT1yJiZ1Ll9fdj09PXQuX192Pyh1Ll9faz10Ll9fayx1Ll9fZT10Ll9fZSk6dS5fX2U9aih0Ll9fZSx1LHQsaSxvLHIsZixjLHMpOyhhPWwuZGlmZmVkKSYmYSh1KX1mdW5jdGlvbiBNKG4sdSx0KXt1Ll9fZD12b2lkIDA7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspeih0W2ldLHRbKytpXSx0WysraV0pO2wuX19jJiZsLl9fYyh1LG4pLG4uc29tZShmdW5jdGlvbih1KXt0cnl7bj11Ll9faCx1Ll9faD1bXSxuLnNvbWUoZnVuY3Rpb24obil7bi5jYWxsKHUpfSl9Y2F0Y2gobil7bC5fX2Uobix1Ll9fdil9fSl9ZnVuY3Rpb24gaihsLHUsdCxpLG8scixmLGUscyl7dmFyIGEsdix5LGQsXyxnLGIsaz10LnByb3BzLHc9dS5wcm9wcyx4PXUudHlwZTtpZihcInN2Z1wiPT09eCYmKG89ITApLG51bGwhPXIpZm9yKGE9MDthPHIubGVuZ3RoO2ErKylpZigoXz1yW2FdKSYmXCJzZXRBdHRyaWJ1dGVcImluIF89PSEheCYmKHg/Xy5sb2NhbE5hbWU9PT14OjM9PT1fLm5vZGVUeXBlKSl7bD1fLHJbYV09bnVsbDticmVha31pZihudWxsPT1sKXtpZihudWxsPT09eClyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodyk7bD1vP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIseCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh4LHcuaXMmJncpLHI9bnVsbCxlPSExfWlmKG51bGw9PT14KWs9PT13fHxlJiZsLmRhdGE9PT13fHwobC5kYXRhPXcpO2Vsc2V7aWYocj1yJiZuLmNhbGwobC5jaGlsZE5vZGVzKSxrPXQucHJvcHN8fGMsIWUmJm51bGwhPXIpZm9yKGs9e30sYT0wO2E8bC5hdHRyaWJ1dGVzLmxlbmd0aDthKyspa1soXz1sLmF0dHJpYnV0ZXNbYV0pLm5hbWVdPV8udmFsdWU7Zm9yKGEgaW4gaylfPWtbYV0sXCJjaGlsZHJlblwiPT1hfHwoXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT1hP3k9XzpcImtleVwiPT09YXx8YSBpbiB3fHxUKGwsYSxudWxsLF8sbykpO2ZvcihhIGluIHcpXz13W2FdLFwiY2hpbGRyZW5cIj09YT9kPV86XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT1hP3Y9XzpcInZhbHVlXCI9PWE/Zz1fOlwiY2hlY2tlZFwiPT1hP2I9XzpcImtleVwiPT09YXx8ZSYmXCJmdW5jdGlvblwiIT10eXBlb2YgX3x8a1thXT09PV98fFQobCxhLF8sa1thXSxvKTtpZih2KWV8fHkmJih2Ll9faHRtbD09PXkuX19odG1sfHx2Ll9faHRtbD09PWwuaW5uZXJIVE1MKXx8KGwuaW5uZXJIVE1MPXYuX19odG1sKSx1Ll9faz1bXTtlbHNlIGlmKHkmJihsLmlubmVySFRNTD1cIlwiKSxDKGwsaChkKT9kOltkXSx1LHQsaSxvJiZcImZvcmVpZ25PYmplY3RcIiE9PXgscixmLHI/clswXTp0Ll9fayYmbSh0LDApLGUscyksbnVsbCE9cilmb3IoYT1yLmxlbmd0aDthLS07KW51bGwhPXJbYV0mJnAoclthXSk7ZXx8KGE9XCJ2YWx1ZVwiLHZvaWQgMCE9PWcmJihnIT09bFthXXx8XCJwcm9ncmVzc1wiPT09eCYmIWd8fFwib3B0aW9uXCI9PT14JiZnIT09a1thXSkmJlQobCxhLGcsa1thXSwhMSksYT1cImNoZWNrZWRcIix2b2lkIDAhPT1iJiZiIT09bFthXSYmVChsLGEsYixrW2FdLCExKSl9cmV0dXJuIGx9ZnVuY3Rpb24geihuLHUsdCl7dHJ5e1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/bih1KTpuLmN1cnJlbnQ9dX1jYXRjaChuKXtsLl9fZShuLHQpfX1mdW5jdGlvbiBOKG4sdSx0KXt2YXIgaSxvO2lmKGwudW5tb3VudCYmbC51bm1vdW50KG4pLChpPW4ucmVmKSYmKGkuY3VycmVudCYmaS5jdXJyZW50IT09bi5fX2V8fHooaSxudWxsLHUpKSxudWxsIT0oaT1uLl9fYykpe2lmKGkuY29tcG9uZW50V2lsbFVubW91bnQpdHJ5e2kuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtsLl9fZShuLHUpfWkuYmFzZT1pLl9fUD1udWxsLG4uX19jPXZvaWQgMH1pZihpPW4uX19rKWZvcihvPTA7bzxpLmxlbmd0aDtvKyspaVtvXSYmTihpW29dLHUsdHx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbi50eXBlKTt0fHxudWxsPT1uLl9fZXx8cChuLl9fZSksbi5fXz1uLl9fZT1uLl9fZD12b2lkIDB9ZnVuY3Rpb24gTyhuLGwsdSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3Iobix1KX1mdW5jdGlvbiBxKHUsdCxpKXt2YXIgbyxyLGYsZTtsLl9fJiZsLl9fKHUsdCkscj0obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBpKT9udWxsOmkmJmkuX19rfHx0Ll9fayxmPVtdLGU9W10sTCh0LHU9KCFvJiZpfHx0KS5fX2s9eShnLG51bGwsW3VdKSxyfHxjLGMsdm9pZCAwIT09dC5vd25lclNWR0VsZW1lbnQsIW8mJmk/W2ldOnI/bnVsbDp0LmZpcnN0Q2hpbGQ/bi5jYWxsKHQuY2hpbGROb2Rlcyk6bnVsbCxmLCFvJiZpP2k6cj9yLl9fZTp0LmZpcnN0Q2hpbGQsbyxlKSxNKGYsdSxlKX1mdW5jdGlvbiBCKG4sbCl7cShuLGwsQil9ZnVuY3Rpb24gRShsLHUsdCl7dmFyIGksbyxyLGYsZT12KHt9LGwucHJvcHMpO2ZvcihyIGluIGwudHlwZSYmbC50eXBlLmRlZmF1bHRQcm9wcyYmKGY9bC50eXBlLmRlZmF1bHRQcm9wcyksdSlcImtleVwiPT1yP2k9dVtyXTpcInJlZlwiPT1yP289dVtyXTplW3JdPXZvaWQgMD09PXVbcl0mJnZvaWQgMCE9PWY/ZltyXTp1W3JdO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjImJihlLmNoaWxkcmVuPWFyZ3VtZW50cy5sZW5ndGg+Mz9uLmNhbGwoYXJndW1lbnRzLDIpOnQpLGQobC50eXBlLGUsaXx8bC5rZXksb3x8bC5yZWYsbnVsbCl9ZnVuY3Rpb24gRihuLGwpe3ZhciB1PXtfX2M6bD1cIl9fY0NcIitlKyssX186bixDb25zdW1lcjpmdW5jdGlvbihuLGwpe3JldHVybiBuLmNoaWxkcmVuKGwpfSxQcm92aWRlcjpmdW5jdGlvbihuKXt2YXIgdSx0O3JldHVybiB0aGlzLmdldENoaWxkQ29udGV4dHx8KHU9W10sKHQ9e30pW2xdPXRoaXMsdGhpcy5nZXRDaGlsZENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdGhpcy5zaG91bGRDb21wb25lbnRVcGRhdGU9ZnVuY3Rpb24obil7dGhpcy5wcm9wcy52YWx1ZSE9PW4udmFsdWUmJnUuc29tZShmdW5jdGlvbihuKXtuLl9fZT0hMCx3KG4pfSl9LHRoaXMuc3ViPWZ1bmN0aW9uKG4pe3UucHVzaChuKTt2YXIgbD1uLmNvbXBvbmVudFdpbGxVbm1vdW50O24uY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt1LnNwbGljZSh1LmluZGV4T2YobiksMSksbCYmbC5jYWxsKG4pfX0pLG4uY2hpbGRyZW59fTtyZXR1cm4gdS5Qcm92aWRlci5fXz11LkNvbnN1bWVyLmNvbnRleHRUeXBlPXV9bj1zLnNsaWNlLGw9e19fZTpmdW5jdGlvbihuLGwsdSx0KXtmb3IodmFyIGksbyxyO2w9bC5fXzspaWYoKGk9bC5fX2MpJiYhaS5fXyl0cnl7aWYoKG89aS5jb25zdHJ1Y3RvcikmJm51bGwhPW8uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yJiYoaS5zZXRTdGF0ZShvLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihuKSkscj1pLl9fZCksbnVsbCE9aS5jb21wb25lbnREaWRDYXRjaCYmKGkuY29tcG9uZW50RGlkQ2F0Y2gobix0fHx7fSkscj1pLl9fZCkscilyZXR1cm4gaS5fX0U9aX1jYXRjaChsKXtuPWx9dGhyb3cgbn19LHU9MCx0PWZ1bmN0aW9uKG4pe3JldHVybiBudWxsIT1uJiZudWxsPT1uLmNvbnN0cnVjdG9yfSxiLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihuLGwpe3ZhciB1O3U9bnVsbCE9dGhpcy5fX3MmJnRoaXMuX19zIT09dGhpcy5zdGF0ZT90aGlzLl9fczp0aGlzLl9fcz12KHt9LHRoaXMuc3RhdGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4mJihuPW4odih7fSx1KSx0aGlzLnByb3BzKSksbiYmdih1LG4pLG51bGwhPW4mJnRoaXMuX192JiYobCYmdGhpcy5fc2IucHVzaChsKSx3KHRoaXMpKX0sYi5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24obil7dGhpcy5fX3YmJih0aGlzLl9fZT0hMCxuJiZ0aGlzLl9faC5wdXNoKG4pLHcodGhpcykpfSxiLnByb3RvdHlwZS5yZW5kZXI9ZyxpPVtdLHI9XCJmdW5jdGlvblwiPT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlLnByb3RvdHlwZS50aGVuLmJpbmQoUHJvbWlzZS5yZXNvbHZlKCkpOnNldFRpbWVvdXQsZj1mdW5jdGlvbihuLGwpe3JldHVybiBuLl9fdi5fX2ItbC5fX3YuX19ifSx4Ll9fcj0wLGU9MDtleHBvcnR7YiBhcyBDb21wb25lbnQsZyBhcyBGcmFnbWVudCxFIGFzIGNsb25lRWxlbWVudCxGIGFzIGNyZWF0ZUNvbnRleHQseSBhcyBjcmVhdGVFbGVtZW50LF8gYXMgY3JlYXRlUmVmLHkgYXMgaCxCIGFzIGh5ZHJhdGUsdCBhcyBpc1ZhbGlkRWxlbWVudCxsIGFzIG9wdGlvbnMscSBhcyByZW5kZXIsJCBhcyB0b0NoaWxkQXJyYXl9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlYWN0Lm1vZHVsZS5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/properties-panel/preact/hooks/dist/hooks.module.js": /*!**********************************************************************************!*\ !*** ./node_modules/@bpmn-io/properties-panel/preact/hooks/dist/hooks.module.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallback: () => (/* binding */ T),\n/* harmony export */ useContext: () => (/* binding */ q),\n/* harmony export */ useDebugValue: () => (/* binding */ x),\n/* harmony export */ useEffect: () => (/* binding */ p),\n/* harmony export */ useErrorBoundary: () => (/* binding */ P),\n/* harmony export */ useId: () => (/* binding */ V),\n/* harmony export */ useImperativeHandle: () => (/* binding */ A),\n/* harmony export */ useLayoutEffect: () => (/* binding */ y),\n/* harmony export */ useMemo: () => (/* binding */ F),\n/* harmony export */ useReducer: () => (/* binding */ s),\n/* harmony export */ useRef: () => (/* binding */ _),\n/* harmony export */ useState: () => (/* binding */ h)\n/* harmony export */ });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../.. */ \"./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js\");\nvar t,r,u,i,o=0,f=[],c=[],e=___WEBPACK_IMPORTED_MODULE_0__.options.__b,a=___WEBPACK_IMPORTED_MODULE_0__.options.__r,v=___WEBPACK_IMPORTED_MODULE_0__.options.diffed,l=___WEBPACK_IMPORTED_MODULE_0__.options.__c,m=___WEBPACK_IMPORTED_MODULE_0__.options.unmount;function d(t,u){___WEBPACK_IMPORTED_MODULE_0__.options.__h&&___WEBPACK_IMPORTED_MODULE_0__.options.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function h(n){return o=1,s(B,n)}function s(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function p(u,i){var o=d(t++,3);!___WEBPACK_IMPORTED_MODULE_0__.options.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function y(u,i){var o=d(t++,4);!___WEBPACK_IMPORTED_MODULE_0__.options.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,y(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){___WEBPACK_IMPORTED_MODULE_0__.options.useDebugValue&&___WEBPACK_IMPORTED_MODULE_0__.options.useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=h();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],___WEBPACK_IMPORTED_MODULE_0__.options.__e(r,t.__v)}}___WEBPACK_IMPORTED_MODULE_0__.options.__b=function(n){r=null,e&&e(n)},___WEBPACK_IMPORTED_MODULE_0__.options.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[],t=0)),u=r},___WEBPACK_IMPORTED_MODULE_0__.options.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===___WEBPACK_IMPORTED_MODULE_0__.options.requestAnimationFrame||((i=___WEBPACK_IMPORTED_MODULE_0__.options.requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},___WEBPACK_IMPORTED_MODULE_0__.options.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],___WEBPACK_IMPORTED_MODULE_0__.options.__e(u,t.__v)}}),l&&l(t,r)},___WEBPACK_IMPORTED_MODULE_0__.options.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&___WEBPACK_IMPORTED_MODULE_0__.options.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return\"function\"==typeof t?t(n):t}\n//# sourceMappingURL=hooks.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vcHJvcGVydGllcy1wYW5lbC9wcmVhY3QvaG9va3MvZGlzdC9ob29rcy5tb2R1bGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFnQyw0QkFBNEIsc0NBQUMsT0FBTyxzQ0FBQyxPQUFPLHNDQUFDLFVBQVUsc0NBQUMsT0FBTyxzQ0FBQyxTQUFTLGdCQUFnQixzQ0FBQyxNQUFNLHNDQUFDLG1CQUFtQixxQkFBcUIsYUFBYSxFQUFFLGtDQUFrQyxNQUFNLFVBQVUsY0FBYyxrQkFBa0Isa0JBQWtCLGVBQWUsdURBQXVELHdDQUF3QywyQ0FBMkMsR0FBRyxpQkFBaUIsc0JBQXNCLHVCQUF1QixzQ0FBc0MsYUFBYSxFQUFFLHVCQUF1QixhQUFhLCtCQUErQixTQUFTLDZCQUE2QixVQUFVLGNBQWMsNkNBQTZDLG9EQUFvRCxPQUFPLHNEQUFzRCxzQ0FBc0MsYUFBYSxRQUFRLHNCQUFzQixzQkFBc0IsMkJBQTJCLG1CQUFtQixnQkFBZ0IsZUFBZSxDQUFDLHNDQUFDLG1EQUFtRCxnQkFBZ0IsZUFBZSxDQUFDLHNDQUFDLCtDQUErQyxjQUFjLHdCQUF3QixPQUFPLFdBQVcsS0FBSyxrQkFBa0IsaUJBQWlCLDhDQUE4QyxlQUFlLDhCQUE4QixzQkFBc0IsU0FBUyx3QkFBd0IsZ0JBQWdCLGVBQWUsdURBQXVELGdCQUFnQix3QkFBd0IsU0FBUyxJQUFJLGNBQWMsa0NBQWtDLG1FQUFtRSxnQkFBZ0Isc0NBQUMsZ0JBQWdCLHNDQUFDLHlCQUF5QixjQUFjLHNCQUFzQixzRUFBc0Usd0JBQXdCLG1CQUFtQixhQUFhLEVBQUUsYUFBYSxnQkFBZ0IsVUFBVSxnQkFBZ0IsOEJBQThCLFFBQVEsMkJBQTJCLHlCQUF5QixZQUFZLGFBQWEsVUFBVSxZQUFZLHFCQUFxQix1REFBdUQsU0FBUyxhQUFhLHNDQUFDLGVBQWUsc0NBQUMsaUJBQWlCLGVBQWUsQ0FBQyxzQ0FBQyxpQkFBaUIsWUFBWSxvQkFBb0Isc0RBQXNELDZDQUE2Qyx5REFBeUQsQ0FBQyxzQ0FBQyxvQkFBb0IsUUFBUSxZQUFZLGlEQUFpRCxzQ0FBQyw0QkFBNEIsc0NBQUMsNkRBQTZELDREQUE0RCxZQUFZLENBQUMsc0NBQUMsbUJBQW1CLG1CQUFtQixJQUFJLGdEQUFnRCxrQkFBa0IsRUFBRSxTQUFTLG1CQUFtQixrQkFBa0IsT0FBTyxzQ0FBQyxlQUFlLFlBQVksQ0FBQyxzQ0FBQyxxQkFBcUIsUUFBUSxjQUFjLHdDQUF3QyxJQUFJLEtBQUssU0FBUyxLQUFLLGtCQUFrQixzQ0FBQyxnQkFBZ0IsK0NBQStDLGNBQWMsbUJBQW1CLHlEQUF5RCxxQkFBcUIsZ0NBQWdDLGNBQWMsZ0JBQWdCLDZDQUE2QyxjQUFjLFFBQVEsaUJBQWlCLGdCQUFnQixvREFBb0QsZ0JBQWdCLEVBQUUsZ0JBQWdCLGtDQUFtUDtBQUMza0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vcHJvcGVydGllcy1wYW5lbC9wcmVhY3QvaG9va3MvZGlzdC9ob29rcy5tb2R1bGUuanM/MTlkNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnR7b3B0aW9ucyBhcyBufWZyb21cIi4uLy4uXCI7dmFyIHQscix1LGksbz0wLGY9W10sYz1bXSxlPW4uX19iLGE9bi5fX3Isdj1uLmRpZmZlZCxsPW4uX19jLG09bi51bm1vdW50O2Z1bmN0aW9uIGQodCx1KXtuLl9faCYmbi5fX2gocix0LG98fHUpLG89MDt2YXIgaT1yLl9fSHx8KHIuX19IPXtfXzpbXSxfX2g6W119KTtyZXR1cm4gdD49aS5fXy5sZW5ndGgmJmkuX18ucHVzaCh7X19WOmN9KSxpLl9fW3RdfWZ1bmN0aW9uIGgobil7cmV0dXJuIG89MSxzKEIsbil9ZnVuY3Rpb24gcyhuLHUsaSl7dmFyIG89ZCh0KyssMik7aWYoby50PW4sIW8uX19jJiYoby5fXz1baT9pKHUpOkIodm9pZCAwLHUpLGZ1bmN0aW9uKG4pe3ZhciB0PW8uX19OP28uX19OWzBdOm8uX19bMF0scj1vLnQodCxuKTt0IT09ciYmKG8uX19OPVtyLG8uX19bMV1dLG8uX19jLnNldFN0YXRlKHt9KSl9XSxvLl9fYz1yLCFyLnUpKXt2YXIgZj1mdW5jdGlvbihuLHQscil7aWYoIW8uX19jLl9fSClyZXR1cm4hMDt2YXIgdT1vLl9fYy5fX0guX18uZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLl9fY30pO2lmKHUuZXZlcnkoZnVuY3Rpb24obil7cmV0dXJuIW4uX19OfSkpcmV0dXJuIWN8fGMuY2FsbCh0aGlzLG4sdCxyKTt2YXIgaT0hMTtyZXR1cm4gdS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4uX19OKXt2YXIgdD1uLl9fWzBdO24uX189bi5fX04sbi5fX049dm9pZCAwLHQhPT1uLl9fWzBdJiYoaT0hMCl9fSksISghaSYmby5fX2MucHJvcHM9PT1uKSYmKCFjfHxjLmNhbGwodGhpcyxuLHQscikpfTtyLnU9ITA7dmFyIGM9ci5zaG91bGRDb21wb25lbnRVcGRhdGUsZT1yLmNvbXBvbmVudFdpbGxVcGRhdGU7ci5jb21wb25lbnRXaWxsVXBkYXRlPWZ1bmN0aW9uKG4sdCxyKXtpZih0aGlzLl9fZSl7dmFyIHU9YztjPXZvaWQgMCxmKG4sdCxyKSxjPXV9ZSYmZS5jYWxsKHRoaXMsbix0LHIpfSxyLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mfXJldHVybiBvLl9fTnx8by5fX31mdW5jdGlvbiBwKHUsaSl7dmFyIG89ZCh0KyssMyk7IW4uX19zJiZ6KG8uX19ILGkpJiYoby5fXz11LG8uaT1pLHIuX19ILl9faC5wdXNoKG8pKX1mdW5jdGlvbiB5KHUsaSl7dmFyIG89ZCh0KyssNCk7IW4uX19zJiZ6KG8uX19ILGkpJiYoby5fXz11LG8uaT1pLHIuX19oLnB1c2gobykpfWZ1bmN0aW9uIF8obil7cmV0dXJuIG89NSxGKGZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bn19LFtdKX1mdW5jdGlvbiBBKG4sdCxyKXtvPTYseShmdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KG4odCgpKSxmdW5jdGlvbigpe3JldHVybiBuKG51bGwpfSk6bj8obi5jdXJyZW50PXQoKSxmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH0sbnVsbD09cj9yOnIuY29uY2F0KG4pKX1mdW5jdGlvbiBGKG4scil7dmFyIHU9ZCh0KyssNyk7cmV0dXJuIHoodS5fX0gscik/KHUuX19WPW4oKSx1Lmk9cix1Ll9faD1uLHUuX19WKTp1Ll9ffWZ1bmN0aW9uIFQobix0KXtyZXR1cm4gbz04LEYoZnVuY3Rpb24oKXtyZXR1cm4gbn0sdCl9ZnVuY3Rpb24gcShuKXt2YXIgdT1yLmNvbnRleHRbbi5fX2NdLGk9ZCh0KyssOSk7cmV0dXJuIGkuYz1uLHU/KG51bGw9PWkuX18mJihpLl9fPSEwLHUuc3ViKHIpKSx1LnByb3BzLnZhbHVlKTpuLl9ffWZ1bmN0aW9uIHgodCxyKXtuLnVzZURlYnVnVmFsdWUmJm4udXNlRGVidWdWYWx1ZShyP3IodCk6dCl9ZnVuY3Rpb24gUChuKXt2YXIgdT1kKHQrKywxMCksaT1oKCk7cmV0dXJuIHUuX189bixyLmNvbXBvbmVudERpZENhdGNofHwoci5jb21wb25lbnREaWRDYXRjaD1mdW5jdGlvbihuLHQpe3UuX18mJnUuX18obix0KSxpWzFdKG4pfSksW2lbMF0sZnVuY3Rpb24oKXtpWzFdKHZvaWQgMCl9XX1mdW5jdGlvbiBWKCl7dmFyIG49ZCh0KyssMTEpO2lmKCFuLl9fKXtmb3IodmFyIHU9ci5fX3Y7bnVsbCE9PXUmJiF1Ll9fbSYmbnVsbCE9PXUuX187KXU9dS5fXzt2YXIgaT11Ll9fbXx8KHUuX19tPVswLDBdKTtuLl9fPVwiUFwiK2lbMF0rXCItXCIraVsxXSsrfXJldHVybiBuLl9ffWZ1bmN0aW9uIGIoKXtmb3IodmFyIHQ7dD1mLnNoaWZ0KCk7KWlmKHQuX19QJiZ0Ll9fSCl0cnl7dC5fX0guX19oLmZvckVhY2goayksdC5fX0guX19oLmZvckVhY2godyksdC5fX0guX19oPVtdfWNhdGNoKHIpe3QuX19ILl9faD1bXSxuLl9fZShyLHQuX192KX19bi5fX2I9ZnVuY3Rpb24obil7cj1udWxsLGUmJmUobil9LG4uX19yPWZ1bmN0aW9uKG4pe2EmJmEobiksdD0wO3ZhciBpPShyPW4uX19jKS5fX0g7aSYmKHU9PT1yPyhpLl9faD1bXSxyLl9faD1bXSxpLl9fLmZvckVhY2goZnVuY3Rpb24obil7bi5fX04mJihuLl9fPW4uX19OKSxuLl9fVj1jLG4uX19OPW4uaT12b2lkIDB9KSk6KGkuX19oLmZvckVhY2goayksaS5fX2guZm9yRWFjaCh3KSxpLl9faD1bXSx0PTApKSx1PXJ9LG4uZGlmZmVkPWZ1bmN0aW9uKHQpe3YmJnYodCk7dmFyIG89dC5fX2M7byYmby5fX0gmJihvLl9fSC5fX2gubGVuZ3RoJiYoMSE9PWYucHVzaChvKSYmaT09PW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHwoKGk9bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxqKShiKSksby5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLmkmJihuLl9fSD1uLmkpLG4uX19WIT09YyYmKG4uX189bi5fX1YpLG4uaT12b2lkIDAsbi5fX1Y9Y30pKSx1PXI9bnVsbH0sbi5fX2M9ZnVuY3Rpb24odCxyKXtyLnNvbWUoZnVuY3Rpb24odCl7dHJ5e3QuX19oLmZvckVhY2goayksdC5fX2g9dC5fX2guZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFuLl9ffHx3KG4pfSl9Y2F0Y2godSl7ci5zb21lKGZ1bmN0aW9uKG4pe24uX19oJiYobi5fX2g9W10pfSkscj1bXSxuLl9fZSh1LHQuX192KX19KSxsJiZsKHQscil9LG4udW5tb3VudD1mdW5jdGlvbih0KXttJiZtKHQpO3ZhciByLHU9dC5fX2M7dSYmdS5fX0gmJih1Ll9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3RyeXtrKG4pfWNhdGNoKG4pe3I9bn19KSx1Ll9fSD12b2lkIDAsciYmbi5fX2Uocix1Ll9fdikpfTt2YXIgZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ZnVuY3Rpb24gaihuKXt2YXIgdCxyPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHUpLGcmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHQpLHNldFRpbWVvdXQobil9LHU9c2V0VGltZW91dChyLDEwMCk7ZyYmKHQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHIpKX1mdW5jdGlvbiBrKG4pe3ZhciB0PXIsdT1uLl9fYztcImZ1bmN0aW9uXCI9PXR5cGVvZiB1JiYobi5fX2M9dm9pZCAwLHUoKSkscj10fWZ1bmN0aW9uIHcobil7dmFyIHQ9cjtuLl9fYz1uLl9fKCkscj10fWZ1bmN0aW9uIHoobix0KXtyZXR1cm4hbnx8bi5sZW5ndGghPT10Lmxlbmd0aHx8dC5zb21lKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQhPT1uW3JdfSl9ZnVuY3Rpb24gQihuLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dChuKTp0fWV4cG9ydHtUIGFzIHVzZUNhbGxiYWNrLHEgYXMgdXNlQ29udGV4dCx4IGFzIHVzZURlYnVnVmFsdWUscCBhcyB1c2VFZmZlY3QsUCBhcyB1c2VFcnJvckJvdW5kYXJ5LFYgYXMgdXNlSWQsQSBhcyB1c2VJbXBlcmF0aXZlSGFuZGxlLHkgYXMgdXNlTGF5b3V0RWZmZWN0LEYgYXMgdXNlTWVtbyxzIGFzIHVzZVJlZHVjZXIsXyBhcyB1c2VSZWYsaCBhcyB1c2VTdGF0ZX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy5tb2R1bGUuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/properties-panel/preact/hooks/dist/hooks.module.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/properties-panel/preact/jsx-runtime/dist/jsxRuntime.module.js": /*!*********************************************************************************************!*\ !*** ./node_modules/@bpmn-io/properties-panel/preact/jsx-runtime/dist/jsxRuntime.module.js ***! \*********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Fragment: () => (/* reexport safe */ ___WEBPACK_IMPORTED_MODULE_0__.Fragment),\n/* harmony export */ jsx: () => (/* binding */ u),\n/* harmony export */ jsxAttr: () => (/* binding */ l),\n/* harmony export */ jsxDEV: () => (/* binding */ u),\n/* harmony export */ jsxEscape: () => (/* binding */ _),\n/* harmony export */ jsxTemplate: () => (/* binding */ a),\n/* harmony export */ jsxs: () => (/* binding */ u)\n/* harmony export */ });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../.. */ \"./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js\");\nvar t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ VariableProvider)\n/* harmony export */ });\n/**\n * @typedef Variable\n * @property {string} name The name of the variable\n * @property {string} [type] The type of the variable\n * @property {string} [info] A description of the variable displayed as a tooltip\n * @property {boolean} [isList] whether the variable is a list\n * @property {Array} [entries] If the variable is a context, this contains the entries of the context\n * @property {djs.model.Base} [scope] The scope of the variable, by default it is the container element of the element the variable is created from\n */\n\n/**\n * A basic provider that may be extended to provide variables for the variable resolver.\n *\n * Extensions should implement the method `getVariables`.\n */\nclass VariableProvider {\n constructor(variableResolver) {\n this._variableResolver = variableResolver;\n this.register();\n }\n\n /**\n * This method should implement the creation of a list of process variables.\n *\n * @param {djs.model.Base} element\n * @return {Array} a list of process variables\n *\n * The following example contains one variable\n *\n * @example\n * VariableProvider.getVariables = function(element) {\n * const variables = [\n * {\n * name: 'myVariable',\n * type: 'String',\n * info: 'This is a global variable'\n * }\n * ];\n *\n * if (is(element, 'bpmn:Process')) {\n * return variables;\n * }\n * }\n */\n getVariables(element) { }\n\n register() {\n this._variableResolver.registerProvider(this);\n }\n}\n\nVariableProvider.$inject = [ 'variableResolver' ];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL1ZhcmlhYmxlUHJvdmlkZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSxjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFNBQVM7QUFDdkIsY0FBYyxpQkFBaUI7QUFDL0IsY0FBYyxnQkFBZ0I7QUFDOUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSxnQkFBZ0I7QUFDN0IsY0FBYyxpQkFBaUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL1ZhcmlhYmxlUHJvdmlkZXIuanM/NTgyMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIFZhcmlhYmxlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgdmFyaWFibGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdHlwZV0gVGhlIHR5cGUgb2YgdGhlIHZhcmlhYmxlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2luZm9dIEEgZGVzY3JpcHRpb24gb2YgdGhlIHZhcmlhYmxlIGRpc3BsYXllZCBhcyBhIHRvb2x0aXBcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2lzTGlzdF0gd2hldGhlciB0aGUgdmFyaWFibGUgaXMgYSBsaXN0XG4gKiBAcHJvcGVydHkge0FycmF5PFZhcmlhYmxlPn0gW2VudHJpZXNdIElmIHRoZSB2YXJpYWJsZSBpcyBhIGNvbnRleHQsIHRoaXMgY29udGFpbnMgdGhlIGVudHJpZXMgb2YgdGhlIGNvbnRleHRcbiAqIEBwcm9wZXJ0eSB7ZGpzLm1vZGVsLkJhc2V9IFtzY29wZV0gVGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSwgYnkgZGVmYXVsdCBpdCBpcyB0aGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGVsZW1lbnQgdGhlIHZhcmlhYmxlIGlzIGNyZWF0ZWQgZnJvbVxuICovXG5cbi8qKlxuICogQSBiYXNpYyBwcm92aWRlciB0aGF0IG1heSBiZSBleHRlbmRlZCB0byBwcm92aWRlIHZhcmlhYmxlcyBmb3IgdGhlIHZhcmlhYmxlIHJlc29sdmVyLlxuICpcbiAqIEV4dGVuc2lvbnMgc2hvdWxkIGltcGxlbWVudCB0aGUgbWV0aG9kIGBnZXRWYXJpYWJsZXNgLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYXJpYWJsZVByb3ZpZGVyIHtcbiAgY29uc3RydWN0b3IodmFyaWFibGVSZXNvbHZlcikge1xuICAgIHRoaXMuX3ZhcmlhYmxlUmVzb2x2ZXIgPSB2YXJpYWJsZVJlc29sdmVyO1xuICAgIHRoaXMucmVnaXN0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgaW1wbGVtZW50IHRoZSBjcmVhdGlvbiBvZiBhIGxpc3Qgb2YgcHJvY2VzcyB2YXJpYWJsZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7ZGpzLm1vZGVsLkJhc2V9IGVsZW1lbnRcbiAgICogQHJldHVybiB7QXJyYXk8VmFyaWFibGU+fSBhIGxpc3Qgb2YgcHJvY2VzcyB2YXJpYWJsZXNcbiAgICpcbiAgICogVGhlIGZvbGxvd2luZyBleGFtcGxlIGNvbnRhaW5zIG9uZSB2YXJpYWJsZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBWYXJpYWJsZVByb3ZpZGVyLmdldFZhcmlhYmxlcyA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICogICBjb25zdCB2YXJpYWJsZXMgPSBbXG4gICAqICAgICB7XG4gICAqICAgICAgIG5hbWU6ICdteVZhcmlhYmxlJyxcbiAgICogICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAqICAgICAgIGluZm86ICdUaGlzIGlzIGEgZ2xvYmFsIHZhcmlhYmxlJ1xuICAgKiAgICAgfVxuICAgKiAgIF07XG4gICAqXG4gICAqICAgaWYgKGlzKGVsZW1lbnQsICdicG1uOlByb2Nlc3MnKSkge1xuICAgKiAgICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgICogICB9XG4gICAqIH1cbiAgICovXG4gIGdldFZhcmlhYmxlcyhlbGVtZW50KSB7IH1cblxuICByZWdpc3RlcigpIHtcbiAgICB0aGlzLl92YXJpYWJsZVJlc29sdmVyLnJlZ2lzdGVyUHJvdmlkZXIodGhpcyk7XG4gIH1cbn1cblxuVmFyaWFibGVQcm92aWRlci4kaW5qZWN0ID0gWyAndmFyaWFibGVSZXNvbHZlcicgXTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/VariableProvider.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/base/VariableResolver.js": /*!******************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/base/VariableResolver.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BaseVariableResolver: () => (/* binding */ BaseVariableResolver),\n/* harmony export */ mergeEntries: () => (/* binding */ mergeEntries)\n/* harmony export */ });\n/* harmony import */ var bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_CachedValue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/CachedValue */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/util/CachedValue.js\");\n/* harmony import */ var _util_scopeUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/scopeUtil */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/util/scopeUtil.js\");\n\n\n\n\n/**\n * @typedef {Object} AdditionalVariable\n * @property {string} name The name of the variable\n * @property {string} [type] The type of the variable\n * @property {string} [info] A description of the variable displayed as a tooltip\n * @property {boolean} [isList] whether the variable is a list\n * @property {Array} [entries] If the variable is a context, this contains the entries of the context\n * @property {djs.model.Base} [scope] The scope of the variable, by default it is the container element of the element the variable is created from\n */\n\n/**\n * @typedef {AdditionalVariable} ProcessVariable\n * @property {Array} origin\n * @property {ModdleElement} scope\n */\n\n/**\n * Base Class that handles additional variable extractors, variable parsing and caching.\n */\nclass BaseVariableResolver {\n constructor(eventBus, bpmnjs) {\n this.providers = [];\n this._eventBus = eventBus;\n this._bpmnjs = bpmnjs;\n\n this.rawVariables = new _util_CachedValue__WEBPACK_IMPORTED_MODULE_0__[\"default\"](this._generateRawVariables.bind(this));\n this.parsedVariables = new _util_CachedValue__WEBPACK_IMPORTED_MODULE_0__[\"default\"](async () => {\n\n const rawVariables = await this.getRawVariables();\n const context = { variables: rawVariables };\n\n eventBus.fire('variableResolver.parseVariables', context);\n\n return context.variables;\n });\n\n eventBus.on([ 'commandStack.changed', 'diagram.clear', 'import.done', 'variables.changed' ], () => {\n this.invalidateCache();\n });\n\n eventBus.on('variableResolver.parseVariables', (e, context) => {\n context.variables = this._parseVariables(context.variables);\n });\n }\n\n /**\n * To be implemented by super class. This should be an instance of `getProcessVariables` from `@bpmn-io/extract-process-variables`,\n * either C7 or C8.\n *\n * @returns {Promise>}\n */\n _baseExtractor() {\n return [];\n }\n\n\n /**\n * Returns an Object of all variables that are available in the current diagram,\n * mapped to the respective scope.\n * Variables with the same name are NOT merged together. Use this function to\n * run linting, e.g. to check for conflicting variable schemas.\n *\n * The result is cached until the diagram changes.\n *\n * @async\n * @returns {Object} rawVariables\n * @returns {Array} rawVariables.\n */\n async getRawVariables() {\n return await this.rawVariables.get();\n }\n\n /**\n * Returns an array of all variables that are available in the current diagram.\n * Variables with the same name are NOT merged together. Use this function to\n * run linting, e.g. to check for conflicting variable schemas.\n *\n * Use this function if you need all availables for all root elements. To filter for scope,\n * use `getProcessVariables` or `getVariablesForElement`\n *\n * The result is cached until the diagram changes.\n *\n * @async\n * @returns {Object} rawVariables\n * @returns {Array} rawVariables.\n */\n async getVariables() {\n return await this.parsedVariables.get();\n }\n\n /**\n * Force the cache to be invalidated an the variable extractors to be called\n * again the next time `getVariables` is called.\n */\n invalidateCache() {\n this.rawVariables.invalidate();\n this.parsedVariables.invalidate();\n }\n\n /**\n * Calls the baseExtractor and maps variables to the respective root element.\n * Cf. `getRawVariables`\n *\n * @async\n * @returns {Object} rawVariables\n * @returns {Array} rawVariables.\n */\n async _generateRawVariables() {\n const bpmnjs = this._bpmnjs;\n\n const variables = {};\n\n const workerTasks = bpmnjs.getDefinitions().get('rootElements').map(async element => {\n\n const elementVariables = await this._baseExtractor(element, [ this._extractor.bind(this) ]);\n\n // Annotate variables with extractor information\n variables[element.id] = elementVariables.map(variable => {\n if (!variable.provider) {\n variable.provider = [ this._baseExtractor ];\n }\n\n return variable;\n });\n });\n\n await Promise.all(workerTasks);\n\n return variables;\n }\n\n\n /**\n * Parses the list of all variables and checks for duplicates. If duplicates are found, the schemas are merged\n * into a single variable.\n * Also maps the attribute `variable.type` to `variable.detail` for the feel editor to display it.\n *\n * Cf. `getVariables`\n *\n * @async\n * @param {Object} rawVariables\n * @param {Array} rawVariables[scope]\n * @returns {Object} parsedVariables\n * @returns {Array} parsedVariables[scope]\n */\n _parseVariables(rawVariables) {\n const parsedVariables = {};\n for (const key in rawVariables) {\n const variables = rawVariables[key];\n\n const mergedVariables = [];\n\n variables.forEach(variable => {\n const existingVariable = mergedVariables.find(v =>\n v.name === variable.name && v.scope === variable.scope\n );\n\n if (existingVariable) {\n merge('origin', existingVariable, variable);\n merge('provider', existingVariable, variable);\n mergeEntries(existingVariable, variable);\n } else {\n mergedVariables.push(variable);\n }\n });\n\n mapToEditorFormat(mergedVariables);\n\n parsedVariables[key] = mergedVariables;\n }\n\n return parsedVariables;\n }\n\n /**\n * Callback used by `@bpmn-io/extract-process-variables`. It adds additional information from the \n * returned from the providers to the that is used by the resolver.\n *\n * It does not have a return value, the variables are added as a side effect to the `context.processVariables` array\n *\n * @async\n * @param {Object} context\n * @param {Array} context.elements\n * @param {ModdleElement} context.containerElement\n * @param {Array} context.processVariables\n */\n async _extractor(context) {\n const {\n elements,\n containerElement,\n processVariables\n } = context;\n\n const self = this;\n\n const workerTasks = elements.flatMap((element) => {\n return self.providers.map(async (provider) => {\n const newVariables = await provider.getVariables(element);\n\n if (!newVariables) {\n return;\n }\n\n // add scope and origin to variables\n newVariables.forEach(variable => {\n processVariables.push({\n ...cloneVariable(variable),\n origin: [ element ],\n scope: variable.scope || (0,_util_scopeUtil__WEBPACK_IMPORTED_MODULE_1__.getScope)(element, containerElement, variable.name),\n provider: [ provider ]\n });\n });\n });\n });\n\n await Promise.all(workerTasks);\n }\n\n /**\n * Add a new VariableProvider. This will be used the next time `getVariables` is called.\n *\n * @param {VariableProvider} provider\n */\n registerProvider(provider) {\n this.providers.push(provider);\n this.invalidateCache();\n }\n\n /**\n * Returns all variables for the given root element.\n *\n * @async\n * @param {ModdleElement} element\n * @returns {Array} variables\n */\n async getProcessVariables(element) {\n const bo = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(element);\n\n const allVariables = await this.getVariables();\n return allVariables[bo.id] || [];\n }\n\n /**\n * Returns all variables in the scope of the given element.\n *\n * @async\n * @param {ModdleElement} element\n * @returns {Array} variables\n */\n async getVariablesForElement(element) {\n const bo = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(element);\n\n const root = getRootElement(bo);\n const allVariables = await this.getProcessVariables(root);\n\n // (1) get variables for given scope\n var scopeVariables = allVariables.filter(function(variable) {\n return variable.scope.id === bo.id;\n });\n\n // (2) get variables for parent scopes\n var parents = (0,_util_scopeUtil__WEBPACK_IMPORTED_MODULE_1__.getParents)(bo);\n\n var parentsScopeVariables = allVariables.filter(function(variable) {\n return parents.find(function(parent) {\n return parent.id === variable.scope.id;\n });\n });\n\n return [ ...scopeVariables, ...parentsScopeVariables ];\n }\n}\n\nBaseVariableResolver.$inject = [ 'eventBus', 'bpmnjs' ];\n\n\n// helpers //////////////////////\n\nfunction getRootElement(element) {\n const businessObject = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(element);\n\n if ((0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(businessObject, 'bpmn:Participant')) {\n return businessObject.processRef;\n }\n\n if ((0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(businessObject, 'bpmn:Process')) {\n return businessObject;\n }\n\n let parent = businessObject;\n\n while (parent.$parent && !(0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(parent, 'bpmn:Process')) {\n parent = parent.$parent;\n }\n\n return parent;\n}\n\nfunction merge(property, target, source) {\n if (!source[property]) {\n source[property] = [];\n }\n\n if (!target[property]) {\n target[property] = [];\n }\n\n const propertiesToAdd = source[property].filter(o => !target[property].includes(o));\n\n target[property].push(...propertiesToAdd);\n}\n\nfunction mergeEntries(target, source, visited = []) {\n if (visited.includes(source) || visited.includes(target)) {\n return;\n }\n visited.push(source);\n visited.push(target);\n\n target.type = extendList(target.type, source.type, '|');\n target.info = extendList(target.info, source.info, '\\n');\n target.isList = !!target.isList === !!source.isList ? target.isList : 'optional';\n\n if (!source.entries) {\n return;\n }\n\n if (!target.entries) {\n target.entries = [];\n }\n\n source.entries.forEach(variable => {\n const existingEntry = target.entries.find(e => e.name === variable.name);\n\n if (existingEntry) {\n mergeEntries(existingEntry, variable, visited);\n } else {\n target.entries.push(variable);\n }\n });\n}\n\nconst extendList = (target, source, separator) => {\n if (!target || target === source) {\n return source;\n } else {\n const existingTypes = target.split(separator);\n if (!existingTypes.includes(source)) {\n existingTypes.push(source);\n }\n return existingTypes.join(separator);\n }\n};\n\nfunction mapToEditorFormat(variables) {\n if (!variables) {\n return;\n }\n\n variables.forEach(variable => {\n variable.detail = variable.type;\n mapToEditorFormat(variable.entries);\n });\n}\n\nfunction cloneVariable(variable) {\n const newVariable = { ...variable };\n\n if (newVariable.entries) {\n newVariable.entries = newVariable.entries.map(cloneVariable);\n }\n\n return newVariable;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2Jhc2UvVmFyaWFibGVSZXNvbHZlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFtRTtBQUN0QjtBQUNXOztBQUV4RDtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFNBQVM7QUFDdkIsY0FBYywyQkFBMkI7QUFDekMsY0FBYyxnQkFBZ0I7QUFDOUI7O0FBRUE7QUFDQSxhQUFhLG9CQUFvQjtBQUNqQyxjQUFjLHNCQUFzQjtBQUNwQyxjQUFjLGVBQWU7QUFDN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEIseURBQVc7QUFDdkMsK0JBQStCLHlEQUFXOztBQUUxQztBQUNBLHdCQUF3Qjs7QUFFeEI7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLHdCQUF3QjtBQUN2QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsd0JBQXdCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLHdCQUF3QjtBQUN2QztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMOztBQUVBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckIsYUFBYSx3QkFBd0I7QUFDckMsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsd0JBQXdCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87O0FBRVA7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGFBQWEsc0JBQXNCO0FBQ25DLGFBQWEsZUFBZTtBQUM1QixhQUFhLHdCQUF3QjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyx5REFBUTtBQUM3QztBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGtCQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxlQUFlO0FBQzVCLGVBQWUsd0JBQXdCO0FBQ3ZDO0FBQ0E7QUFDQSxlQUFlLDZFQUFpQjs7QUFFaEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxlQUFlO0FBQzVCLGVBQWUsd0JBQXdCO0FBQ3ZDO0FBQ0E7QUFDQSxlQUFlLDZFQUFpQjs7QUFFaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0Esa0JBQWtCLDJEQUFVOztBQUU1QjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBOztBQUVBO0FBQ0EseUJBQXlCLDZFQUFpQjs7QUFFMUMsTUFBTSw4REFBRTtBQUNSO0FBQ0E7O0FBRUEsTUFBTSw4REFBRTtBQUNSO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCLDhEQUFFO0FBQzlCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBLHdCQUF3Qjs7QUFFeEI7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2Jhc2UvVmFyaWFibGVSZXNvbHZlci5qcz81ZDVkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEJ1c2luZXNzT2JqZWN0LCBpcyB9IGZyb20gJ2JwbW4tanMvbGliL3V0aWwvTW9kZWxVdGlsJztcbmltcG9ydCBDYWNoZWRWYWx1ZSBmcm9tICcuL3V0aWwvQ2FjaGVkVmFsdWUnO1xuaW1wb3J0IHsgZ2V0UGFyZW50cywgZ2V0U2NvcGUgfSBmcm9tICcuL3V0aWwvc2NvcGVVdGlsJztcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBBZGRpdGlvbmFsVmFyaWFibGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt0eXBlXSBUaGUgdHlwZSBvZiB0aGUgdmFyaWFibGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbaW5mb10gQSBkZXNjcmlwdGlvbiBvZiB0aGUgdmFyaWFibGUgZGlzcGxheWVkIGFzIGEgdG9vbHRpcFxuICogQHByb3BlcnR5IHtib29sZWFufSBbaXNMaXN0XSB3aGV0aGVyIHRoZSB2YXJpYWJsZSBpcyBhIGxpc3RcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8QWRkaXRpb25hbFZhcmlhYmxlPn0gW2VudHJpZXNdIElmIHRoZSB2YXJpYWJsZSBpcyBhIGNvbnRleHQsIHRoaXMgY29udGFpbnMgdGhlIGVudHJpZXMgb2YgdGhlIGNvbnRleHRcbiAqIEBwcm9wZXJ0eSB7ZGpzLm1vZGVsLkJhc2V9IFtzY29wZV0gVGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSwgYnkgZGVmYXVsdCBpdCBpcyB0aGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGVsZW1lbnQgdGhlIHZhcmlhYmxlIGlzIGNyZWF0ZWQgZnJvbVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0FkZGl0aW9uYWxWYXJpYWJsZX0gUHJvY2Vzc1ZhcmlhYmxlXG4gKiBAcHJvcGVydHkge0FycmF5PE1vZGRsZUVsZW1lbnQ+fSBvcmlnaW5cbiAqIEBwcm9wZXJ0eSB7TW9kZGxlRWxlbWVudH0gc2NvcGVcbiAqL1xuXG4vKipcbiAqIEJhc2UgQ2xhc3MgdGhhdCBoYW5kbGVzIGFkZGl0aW9uYWwgdmFyaWFibGUgZXh0cmFjdG9ycywgdmFyaWFibGUgcGFyc2luZyBhbmQgY2FjaGluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VWYXJpYWJsZVJlc29sdmVyIHtcbiAgY29uc3RydWN0b3IoZXZlbnRCdXMsIGJwbW5qcykge1xuICAgIHRoaXMucHJvdmlkZXJzID0gW107XG4gICAgdGhpcy5fZXZlbnRCdXMgPSBldmVudEJ1cztcbiAgICB0aGlzLl9icG1uanMgPSBicG1uanM7XG5cbiAgICB0aGlzLnJhd1ZhcmlhYmxlcyA9IG5ldyBDYWNoZWRWYWx1ZSh0aGlzLl9nZW5lcmF0ZVJhd1ZhcmlhYmxlcy5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnBhcnNlZFZhcmlhYmxlcyA9IG5ldyBDYWNoZWRWYWx1ZShhc3luYyAoKSA9PiB7XG5cbiAgICAgIGNvbnN0IHJhd1ZhcmlhYmxlcyA9IGF3YWl0IHRoaXMuZ2V0UmF3VmFyaWFibGVzKCk7XG4gICAgICBjb25zdCBjb250ZXh0ID0geyB2YXJpYWJsZXM6IHJhd1ZhcmlhYmxlcyB9O1xuXG4gICAgICBldmVudEJ1cy5maXJlKCd2YXJpYWJsZVJlc29sdmVyLnBhcnNlVmFyaWFibGVzJywgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiBjb250ZXh0LnZhcmlhYmxlcztcbiAgICB9KTtcblxuICAgIGV2ZW50QnVzLm9uKFsgJ2NvbW1hbmRTdGFjay5jaGFuZ2VkJywgJ2RpYWdyYW0uY2xlYXInLCAnaW1wb3J0LmRvbmUnLCAndmFyaWFibGVzLmNoYW5nZWQnIF0sICgpID0+IHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZUNhY2hlKCk7XG4gICAgfSk7XG5cbiAgICBldmVudEJ1cy5vbigndmFyaWFibGVSZXNvbHZlci5wYXJzZVZhcmlhYmxlcycsIChlLCBjb250ZXh0KSA9PiB7XG4gICAgICBjb250ZXh0LnZhcmlhYmxlcyA9IHRoaXMuX3BhcnNlVmFyaWFibGVzKGNvbnRleHQudmFyaWFibGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBiZSBpbXBsZW1lbnRlZCBieSBzdXBlciBjbGFzcy4gVGhpcyBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgYGdldFByb2Nlc3NWYXJpYWJsZXNgIGZyb20gYEBicG1uLWlvL2V4dHJhY3QtcHJvY2Vzcy12YXJpYWJsZXNgLFxuICAgKiBlaXRoZXIgQzcgb3IgQzguXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PFByb2Nlc3NWYXJpYWJsZT4+fVxuICAgKi9cbiAgX2Jhc2VFeHRyYWN0b3IoKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBPYmplY3Qgb2YgYWxsIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgZGlhZ3JhbSxcbiAgICogbWFwcGVkIHRvIHRoZSByZXNwZWN0aXZlIHNjb3BlLlxuICAgKiBWYXJpYWJsZXMgd2l0aCB0aGUgc2FtZSBuYW1lIGFyZSBOT1QgbWVyZ2VkIHRvZ2V0aGVyLiBVc2UgdGhpcyBmdW5jdGlvbiB0b1xuICAgKiBydW4gbGludGluZywgZS5nLiB0byBjaGVjayBmb3IgY29uZmxpY3RpbmcgdmFyaWFibGUgc2NoZW1hcy5cbiAgICpcbiAgICogVGhlIHJlc3VsdCBpcyBjYWNoZWQgdW50aWwgdGhlIGRpYWdyYW0gY2hhbmdlcy5cbiAgICpcbiAgICogQGFzeW5jXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IHJhd1ZhcmlhYmxlc1xuICAgKiBAcmV0dXJucyB7QXJyYXk8UHJvY2Vzc1ZhcmlhYmxlPn0gcmF3VmFyaWFibGVzLjxzY29wZT5cbiAgICovXG4gIGFzeW5jIGdldFJhd1ZhcmlhYmxlcygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yYXdWYXJpYWJsZXMuZ2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCBkaWFncmFtLlxuICAgKiBWYXJpYWJsZXMgd2l0aCB0aGUgc2FtZSBuYW1lIGFyZSBOT1QgbWVyZ2VkIHRvZ2V0aGVyLiBVc2UgdGhpcyBmdW5jdGlvbiB0b1xuICAgKiBydW4gbGludGluZywgZS5nLiB0byBjaGVjayBmb3IgY29uZmxpY3RpbmcgdmFyaWFibGUgc2NoZW1hcy5cbiAgICpcbiAgICogVXNlIHRoaXMgZnVuY3Rpb24gaWYgeW91IG5lZWQgYWxsIGF2YWlsYWJsZXMgZm9yIGFsbCByb290IGVsZW1lbnRzLiBUbyBmaWx0ZXIgZm9yIHNjb3BlLFxuICAgKiB1c2UgYGdldFByb2Nlc3NWYXJpYWJsZXNgIG9yIGBnZXRWYXJpYWJsZXNGb3JFbGVtZW50YFxuICAgKlxuICAgKiBUaGUgcmVzdWx0IGlzIGNhY2hlZCB1bnRpbCB0aGUgZGlhZ3JhbSBjaGFuZ2VzLlxuICAgKlxuICAgKiBAYXN5bmNcbiAgICogQHJldHVybnMge09iamVjdH0gcmF3VmFyaWFibGVzXG4gICAqIEByZXR1cm5zIHtBcnJheTxQcm9jZXNzVmFyaWFibGU+fSByYXdWYXJpYWJsZXMuPHJvb3RFbGVtZW50PlxuICAgKi9cbiAgYXN5bmMgZ2V0VmFyaWFibGVzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnBhcnNlZFZhcmlhYmxlcy5nZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZSB0aGUgY2FjaGUgdG8gYmUgaW52YWxpZGF0ZWQgYW4gdGhlIHZhcmlhYmxlIGV4dHJhY3RvcnMgdG8gYmUgY2FsbGVkXG4gICAqIGFnYWluIHRoZSBuZXh0IHRpbWUgYGdldFZhcmlhYmxlc2AgaXMgY2FsbGVkLlxuICAgKi9cbiAgaW52YWxpZGF0ZUNhY2hlKCkge1xuICAgIHRoaXMucmF3VmFyaWFibGVzLmludmFsaWRhdGUoKTtcbiAgICB0aGlzLnBhcnNlZFZhcmlhYmxlcy5pbnZhbGlkYXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgdGhlIGJhc2VFeHRyYWN0b3IgYW5kIG1hcHMgdmFyaWFibGVzIHRvIHRoZSByZXNwZWN0aXZlIHJvb3QgZWxlbWVudC5cbiAgICogQ2YuIGBnZXRSYXdWYXJpYWJsZXNgXG4gICAqXG4gICAqIEBhc3luY1xuICAgKiBAcmV0dXJucyB7T2JqZWN0fSByYXdWYXJpYWJsZXNcbiAgICogQHJldHVybnMge0FycmF5PFByb2Nlc3NWYXJpYWJsZT59IHJhd1ZhcmlhYmxlcy48c2NvcGU+XG4gICAqL1xuICBhc3luYyBfZ2VuZXJhdGVSYXdWYXJpYWJsZXMoKSB7XG4gICAgY29uc3QgYnBtbmpzID0gdGhpcy5fYnBtbmpzO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0ge307XG5cbiAgICBjb25zdCB3b3JrZXJUYXNrcyA9IGJwbW5qcy5nZXREZWZpbml0aW9ucygpLmdldCgncm9vdEVsZW1lbnRzJykubWFwKGFzeW5jIGVsZW1lbnQgPT4ge1xuXG4gICAgICBjb25zdCBlbGVtZW50VmFyaWFibGVzID0gYXdhaXQgdGhpcy5fYmFzZUV4dHJhY3RvcihlbGVtZW50LCBbIHRoaXMuX2V4dHJhY3Rvci5iaW5kKHRoaXMpIF0pO1xuXG4gICAgICAvLyBBbm5vdGF0ZSB2YXJpYWJsZXMgd2l0aCBleHRyYWN0b3IgaW5mb3JtYXRpb25cbiAgICAgIHZhcmlhYmxlc1tlbGVtZW50LmlkXSA9IGVsZW1lbnRWYXJpYWJsZXMubWFwKHZhcmlhYmxlID0+IHtcbiAgICAgICAgaWYgKCF2YXJpYWJsZS5wcm92aWRlcikge1xuICAgICAgICAgIHZhcmlhYmxlLnByb3ZpZGVyID0gWyB0aGlzLl9iYXNlRXh0cmFjdG9yIF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFyaWFibGU7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHdvcmtlclRhc2tzKTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBQYXJzZXMgdGhlIGxpc3Qgb2YgYWxsIHZhcmlhYmxlcyBhbmQgY2hlY2tzIGZvciBkdXBsaWNhdGVzLiBJZiBkdXBsaWNhdGVzIGFyZSBmb3VuZCwgdGhlIHNjaGVtYXMgYXJlIG1lcmdlZFxuICAgKiBpbnRvIGEgc2luZ2xlIHZhcmlhYmxlLlxuICAgKiBBbHNvIG1hcHMgdGhlIGF0dHJpYnV0ZSBgdmFyaWFibGUudHlwZWAgdG8gYHZhcmlhYmxlLmRldGFpbGAgZm9yIHRoZSBmZWVsIGVkaXRvciB0byBkaXNwbGF5IGl0LlxuICAgKlxuICAgKiBDZi4gYGdldFZhcmlhYmxlc2BcbiAgICpcbiAgICogQGFzeW5jXG4gICAqIEBwYXJhbSB7T2JqZWN0fSByYXdWYXJpYWJsZXNcbiAgICogQHBhcmFtIHtBcnJheTxQcm9jZXNzVmFyaWFibGU+fSByYXdWYXJpYWJsZXNbc2NvcGVdXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IHBhcnNlZFZhcmlhYmxlc1xuICAgKiBAcmV0dXJucyB7QXJyYXk8UHJvY2Vzc1ZhcmlhYmxlPn0gcGFyc2VkVmFyaWFibGVzW3Njb3BlXVxuICAgKi9cbiAgX3BhcnNlVmFyaWFibGVzKHJhd1ZhcmlhYmxlcykge1xuICAgIGNvbnN0IHBhcnNlZFZhcmlhYmxlcyA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHJhd1ZhcmlhYmxlcykge1xuICAgICAgY29uc3QgdmFyaWFibGVzID0gcmF3VmFyaWFibGVzW2tleV07XG5cbiAgICAgIGNvbnN0IG1lcmdlZFZhcmlhYmxlcyA9IFtdO1xuXG4gICAgICB2YXJpYWJsZXMuZm9yRWFjaCh2YXJpYWJsZSA9PiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nVmFyaWFibGUgPSBtZXJnZWRWYXJpYWJsZXMuZmluZCh2ID0+XG4gICAgICAgICAgdi5uYW1lID09PSB2YXJpYWJsZS5uYW1lICYmIHYuc2NvcGUgPT09IHZhcmlhYmxlLnNjb3BlXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nVmFyaWFibGUpIHtcbiAgICAgICAgICBtZXJnZSgnb3JpZ2luJywgZXhpc3RpbmdWYXJpYWJsZSwgdmFyaWFibGUpO1xuICAgICAgICAgIG1lcmdlKCdwcm92aWRlcicsIGV4aXN0aW5nVmFyaWFibGUsIHZhcmlhYmxlKTtcbiAgICAgICAgICBtZXJnZUVudHJpZXMoZXhpc3RpbmdWYXJpYWJsZSwgdmFyaWFibGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1lcmdlZFZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIG1hcFRvRWRpdG9yRm9ybWF0KG1lcmdlZFZhcmlhYmxlcyk7XG5cbiAgICAgIHBhcnNlZFZhcmlhYmxlc1trZXldID0gbWVyZ2VkVmFyaWFibGVzO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRWYXJpYWJsZXM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgdXNlZCBieSBgQGJwbW4taW8vZXh0cmFjdC1wcm9jZXNzLXZhcmlhYmxlc2AuIEl0IGFkZHMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmcm9tIHRoZSA8QWRkaXRpb25hbFZhcmlhYmxlPlxuICAgKiByZXR1cm5lZCBmcm9tIHRoZSBwcm92aWRlcnMgdG8gdGhlIDxQcm9jZXNzVmFyaWFibGU+IHRoYXQgaXMgdXNlZCBieSB0aGUgcmVzb2x2ZXIuXG4gICAqXG4gICAqIEl0IGRvZXMgbm90IGhhdmUgYSByZXR1cm4gdmFsdWUsIHRoZSB2YXJpYWJsZXMgYXJlIGFkZGVkIGFzIGEgc2lkZSBlZmZlY3QgdG8gdGhlIGBjb250ZXh0LnByb2Nlc3NWYXJpYWJsZXNgIGFycmF5XG4gICAqXG4gICAqIEBhc3luY1xuICAgKiBAcGFyYW0ge09iamVjdH0gY29udGV4dFxuICAgKiBAcGFyYW0ge0FycmF5PE1vZGRsZUVsZW1lbnQ+fSBjb250ZXh0LmVsZW1lbnRzXG4gICAqIEBwYXJhbSB7TW9kZGxlRWxlbWVudH0gY29udGV4dC5jb250YWluZXJFbGVtZW50XG4gICAqIEBwYXJhbSB7QXJyYXk8UHJvY2Vzc1ZhcmlhYmxlPn0gY29udGV4dC5wcm9jZXNzVmFyaWFibGVzXG4gICAqL1xuICBhc3luYyBfZXh0cmFjdG9yKGNvbnRleHQpIHtcbiAgICBjb25zdCB7XG4gICAgICBlbGVtZW50cyxcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQsXG4gICAgICBwcm9jZXNzVmFyaWFibGVzXG4gICAgfSA9IGNvbnRleHQ7XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIGNvbnN0IHdvcmtlclRhc2tzID0gZWxlbWVudHMuZmxhdE1hcCgoZWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHNlbGYucHJvdmlkZXJzLm1hcChhc3luYyAocHJvdmlkZXIpID0+IHtcbiAgICAgICAgY29uc3QgbmV3VmFyaWFibGVzID0gYXdhaXQgcHJvdmlkZXIuZ2V0VmFyaWFibGVzKGVsZW1lbnQpO1xuXG4gICAgICAgIGlmICghbmV3VmFyaWFibGVzKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWRkIHNjb3BlIGFuZCBvcmlnaW4gdG8gdmFyaWFibGVzXG4gICAgICAgIG5ld1ZhcmlhYmxlcy5mb3JFYWNoKHZhcmlhYmxlID0+IHtcbiAgICAgICAgICBwcm9jZXNzVmFyaWFibGVzLnB1c2goe1xuICAgICAgICAgICAgLi4uY2xvbmVWYXJpYWJsZSh2YXJpYWJsZSksXG4gICAgICAgICAgICBvcmlnaW46IFsgZWxlbWVudCBdLFxuICAgICAgICAgICAgc2NvcGU6IHZhcmlhYmxlLnNjb3BlIHx8IGdldFNjb3BlKGVsZW1lbnQsIGNvbnRhaW5lckVsZW1lbnQsIHZhcmlhYmxlLm5hbWUpLFxuICAgICAgICAgICAgcHJvdmlkZXI6IFsgcHJvdmlkZXIgXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwod29ya2VyVGFza3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBWYXJpYWJsZVByb3ZpZGVyLiBUaGlzIHdpbGwgYmUgdXNlZCB0aGUgbmV4dCB0aW1lIGBnZXRWYXJpYWJsZXNgIGlzIGNhbGxlZC5cbiAgICpcbiAgICogQHBhcmFtIHtWYXJpYWJsZVByb3ZpZGVyfSBwcm92aWRlclxuICAgKi9cbiAgcmVnaXN0ZXJQcm92aWRlcihwcm92aWRlcikge1xuICAgIHRoaXMucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xuICAgIHRoaXMuaW52YWxpZGF0ZUNhY2hlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgdmFyaWFibGVzIGZvciB0aGUgZ2l2ZW4gcm9vdCBlbGVtZW50LlxuICAgKlxuICAgKiBAYXN5bmNcbiAgICogQHBhcmFtIHtNb2RkbGVFbGVtZW50fSBlbGVtZW50XG4gICAqIEByZXR1cm5zIHtBcnJheTxQcm9jZXNzVmFyaWFibGU+fSB2YXJpYWJsZXNcbiAgICovXG4gIGFzeW5jIGdldFByb2Nlc3NWYXJpYWJsZXMoZWxlbWVudCkge1xuICAgIGNvbnN0IGJvID0gZ2V0QnVzaW5lc3NPYmplY3QoZWxlbWVudCk7XG5cbiAgICBjb25zdCBhbGxWYXJpYWJsZXMgPSBhd2FpdCB0aGlzLmdldFZhcmlhYmxlcygpO1xuICAgIHJldHVybiBhbGxWYXJpYWJsZXNbYm8uaWRdIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHZhcmlhYmxlcyBpbiB0aGUgc2NvcGUgb2YgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAqXG4gICAqIEBhc3luY1xuICAgKiBAcGFyYW0ge01vZGRsZUVsZW1lbnR9IGVsZW1lbnRcbiAgICogQHJldHVybnMge0FycmF5PFByb2Nlc3NWYXJpYWJsZT59IHZhcmlhYmxlc1xuICAgKi9cbiAgYXN5bmMgZ2V0VmFyaWFibGVzRm9yRWxlbWVudChlbGVtZW50KSB7XG4gICAgY29uc3QgYm8gPSBnZXRCdXNpbmVzc09iamVjdChlbGVtZW50KTtcblxuICAgIGNvbnN0IHJvb3QgPSBnZXRSb290RWxlbWVudChibyk7XG4gICAgY29uc3QgYWxsVmFyaWFibGVzID0gYXdhaXQgdGhpcy5nZXRQcm9jZXNzVmFyaWFibGVzKHJvb3QpO1xuXG4gICAgLy8gKDEpIGdldCB2YXJpYWJsZXMgZm9yIGdpdmVuIHNjb3BlXG4gICAgdmFyIHNjb3BlVmFyaWFibGVzID0gYWxsVmFyaWFibGVzLmZpbHRlcihmdW5jdGlvbih2YXJpYWJsZSkge1xuICAgICAgcmV0dXJuIHZhcmlhYmxlLnNjb3BlLmlkID09PSBiby5pZDtcbiAgICB9KTtcblxuICAgIC8vICgyKSBnZXQgdmFyaWFibGVzIGZvciBwYXJlbnQgc2NvcGVzXG4gICAgdmFyIHBhcmVudHMgPSBnZXRQYXJlbnRzKGJvKTtcblxuICAgIHZhciBwYXJlbnRzU2NvcGVWYXJpYWJsZXMgPSBhbGxWYXJpYWJsZXMuZmlsdGVyKGZ1bmN0aW9uKHZhcmlhYmxlKSB7XG4gICAgICByZXR1cm4gcGFyZW50cy5maW5kKGZ1bmN0aW9uKHBhcmVudCkge1xuICAgICAgICByZXR1cm4gcGFyZW50LmlkID09PSB2YXJpYWJsZS5zY29wZS5pZDtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIFsgLi4uc2NvcGVWYXJpYWJsZXMsIC4uLnBhcmVudHNTY29wZVZhcmlhYmxlcyBdO1xuICB9XG59XG5cbkJhc2VWYXJpYWJsZVJlc29sdmVyLiRpbmplY3QgPSBbICdldmVudEJ1cycsICdicG1uanMnIF07XG5cblxuLy8gaGVscGVycyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmZ1bmN0aW9uIGdldFJvb3RFbGVtZW50KGVsZW1lbnQpIHtcbiAgY29uc3QgYnVzaW5lc3NPYmplY3QgPSBnZXRCdXNpbmVzc09iamVjdChlbGVtZW50KTtcblxuICBpZiAoaXMoYnVzaW5lc3NPYmplY3QsICdicG1uOlBhcnRpY2lwYW50JykpIHtcbiAgICByZXR1cm4gYnVzaW5lc3NPYmplY3QucHJvY2Vzc1JlZjtcbiAgfVxuXG4gIGlmIChpcyhidXNpbmVzc09iamVjdCwgJ2JwbW46UHJvY2VzcycpKSB7XG4gICAgcmV0dXJuIGJ1c2luZXNzT2JqZWN0O1xuICB9XG5cbiAgbGV0IHBhcmVudCA9IGJ1c2luZXNzT2JqZWN0O1xuXG4gIHdoaWxlIChwYXJlbnQuJHBhcmVudCAmJiAhaXMocGFyZW50LCAnYnBtbjpQcm9jZXNzJykpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQuJHBhcmVudDtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnQ7XG59XG5cbmZ1bmN0aW9uIG1lcmdlKHByb3BlcnR5LCB0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoIXNvdXJjZVtwcm9wZXJ0eV0pIHtcbiAgICBzb3VyY2VbcHJvcGVydHldID0gW107XG4gIH1cblxuICBpZiAoIXRhcmdldFtwcm9wZXJ0eV0pIHtcbiAgICB0YXJnZXRbcHJvcGVydHldID0gW107XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0aWVzVG9BZGQgPSBzb3VyY2VbcHJvcGVydHldLmZpbHRlcihvID0+ICF0YXJnZXRbcHJvcGVydHldLmluY2x1ZGVzKG8pKTtcblxuICB0YXJnZXRbcHJvcGVydHldLnB1c2goLi4ucHJvcGVydGllc1RvQWRkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRW50cmllcyh0YXJnZXQsIHNvdXJjZSwgdmlzaXRlZCA9IFtdKSB7XG4gIGlmICh2aXNpdGVkLmluY2x1ZGVzKHNvdXJjZSkgfHwgdmlzaXRlZC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZpc2l0ZWQucHVzaChzb3VyY2UpO1xuICB2aXNpdGVkLnB1c2godGFyZ2V0KTtcblxuICB0YXJnZXQudHlwZSA9IGV4dGVuZExpc3QodGFyZ2V0LnR5cGUsIHNvdXJjZS50eXBlLCAnfCcpO1xuICB0YXJnZXQuaW5mbyA9IGV4dGVuZExpc3QodGFyZ2V0LmluZm8sIHNvdXJjZS5pbmZvLCAnXFxuJyk7XG4gIHRhcmdldC5pc0xpc3QgPSAhIXRhcmdldC5pc0xpc3QgPT09ICEhc291cmNlLmlzTGlzdCA/IHRhcmdldC5pc0xpc3QgOiAnb3B0aW9uYWwnO1xuXG4gIGlmICghc291cmNlLmVudHJpZXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIXRhcmdldC5lbnRyaWVzKSB7XG4gICAgdGFyZ2V0LmVudHJpZXMgPSBbXTtcbiAgfVxuXG4gIHNvdXJjZS5lbnRyaWVzLmZvckVhY2godmFyaWFibGUgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nRW50cnkgPSB0YXJnZXQuZW50cmllcy5maW5kKGUgPT4gZS5uYW1lID09PSB2YXJpYWJsZS5uYW1lKTtcblxuICAgIGlmIChleGlzdGluZ0VudHJ5KSB7XG4gICAgICBtZXJnZUVudHJpZXMoZXhpc3RpbmdFbnRyeSwgdmFyaWFibGUsIHZpc2l0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXQuZW50cmllcy5wdXNoKHZhcmlhYmxlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5jb25zdCBleHRlbmRMaXN0ID0gKHRhcmdldCwgc291cmNlLCBzZXBhcmF0b3IpID0+IHtcbiAgaWYgKCF0YXJnZXQgfHwgdGFyZ2V0ID09PSBzb3VyY2UpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGV4aXN0aW5nVHlwZXMgPSB0YXJnZXQuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICBpZiAoIWV4aXN0aW5nVHlwZXMuaW5jbHVkZXMoc291cmNlKSkge1xuICAgICAgZXhpc3RpbmdUeXBlcy5wdXNoKHNvdXJjZSk7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZ1R5cGVzLmpvaW4oc2VwYXJhdG9yKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gbWFwVG9FZGl0b3JGb3JtYXQodmFyaWFibGVzKSB7XG4gIGlmICghdmFyaWFibGVzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyaWFibGVzLmZvckVhY2godmFyaWFibGUgPT4ge1xuICAgIHZhcmlhYmxlLmRldGFpbCA9IHZhcmlhYmxlLnR5cGU7XG4gICAgbWFwVG9FZGl0b3JGb3JtYXQodmFyaWFibGUuZW50cmllcyk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjbG9uZVZhcmlhYmxlKHZhcmlhYmxlKSB7XG4gIGNvbnN0IG5ld1ZhcmlhYmxlID0geyAuLi52YXJpYWJsZSB9O1xuXG4gIGlmIChuZXdWYXJpYWJsZS5lbnRyaWVzKSB7XG4gICAgbmV3VmFyaWFibGUuZW50cmllcyA9IG5ld1ZhcmlhYmxlLmVudHJpZXMubWFwKGNsb25lVmFyaWFibGUpO1xuICB9XG5cbiAgcmV0dXJuIG5ld1ZhcmlhYmxlO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/base/VariableResolver.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/base/util/CachedValue.js": /*!******************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/base/util/CachedValue.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CachedValue)\n/* harmony export */ });\nclass CachedValue {\n constructor(generatorFunction) {\n this._generate = generatorFunction;\n this.value = null;\n this.valid = false;\n }\n\n invalidate() {\n this.valid = false;\n }\n\n get() {\n if (!this.valid) {\n this.value = this._generate();\n this.valid = true;\n }\n\n return this.value;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2Jhc2UvdXRpbC9DYWNoZWRWYWx1ZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby92YXJpYWJsZS1yZXNvbHZlci9saWIvYmFzZS91dGlsL0NhY2hlZFZhbHVlLmpzPzQxNTEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2FjaGVkVmFsdWUge1xuICBjb25zdHJ1Y3RvcihnZW5lcmF0b3JGdW5jdGlvbikge1xuICAgIHRoaXMuX2dlbmVyYXRlID0gZ2VuZXJhdG9yRnVuY3Rpb247XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgdGhpcy52YWxpZCA9IGZhbHNlO1xuICB9XG5cbiAgaW52YWxpZGF0ZSgpIHtcbiAgICB0aGlzLnZhbGlkID0gZmFsc2U7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgaWYgKCF0aGlzLnZhbGlkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5fZ2VuZXJhdGUoKTtcbiAgICAgIHRoaXMudmFsaWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/base/util/CachedValue.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/base/util/ExtensionElementsUtil.js": /*!****************************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/base/util/ExtensionElementsUtil.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getExtensionElementsList: () => (/* binding */ getExtensionElementsList),\n/* harmony export */ getInputOutput: () => (/* binding */ getInputOutput),\n/* harmony export */ hasInputParameter: () => (/* binding */ hasInputParameter),\n/* harmony export */ hasOutputMappings: () => (/* binding */ hasOutputMappings)\n/* harmony export */ });\n/* harmony import */ var bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nfunction hasOutputMappings(element) {\n return !!getOutputParameters(element).length;\n}\n\nfunction hasInputParameter(element, name) {\n return getInputParameters(element).find(function(input) {\n return (\n input.target === name || // zeebe\n input.name === name // camunda\n );\n });\n}\n\nfunction getExtensionElementsList(businessObject, type = undefined) {\n const extensionElements = businessObject.get('extensionElements');\n\n if (!extensionElements) {\n return [];\n }\n\n const values = extensionElements.get('values');\n\n if (!values || !values.length) {\n return [];\n }\n\n if (type) {\n return values.filter(value => (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(value, type));\n }\n\n return values;\n}\n\n// helpers //////////\n\nfunction getInputParameters(element) {\n return getParameters(element, 'inputParameters');\n}\n\nfunction getOutputParameters(element) {\n return getParameters(element, 'outputParameters');\n}\n\nfunction getInputOutput(element) {\n return (\n (getExtensionElements(element, 'zeebe:IoMapping'))[0] ||\n (getExtensionElements(element, 'camunda:InputOutput'))[0]\n );\n}\n\nfunction getParameters(element, property) {\n var inputOutput = getInputOutput(element);\n\n return (inputOutput && inputOutput.get(property)) || [];\n}\n\nfunction getExtensionElements(element, type) {\n var elements = [];\n var extensionElements = element.get('extensionElements');\n\n if (typeof extensionElements !== 'undefined') {\n var extensionValues = extensionElements.get('values');\n\n if (typeof extensionValues !== 'undefined') {\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(extensionValues, function(value) {\n return (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(value, type);\n });\n }\n }\n\n return elements;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2Jhc2UvdXRpbC9FeHRlbnNpb25FbGVtZW50c1V0aWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWdEO0FBQ2Q7O0FBRTNCO0FBQ1A7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esa0NBQWtDLDhEQUFFO0FBQ3BDOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLGdEQUFNO0FBQ3ZCLGVBQWUsOERBQUU7QUFDakIsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby92YXJpYWJsZS1yZXNvbHZlci9saWIvYmFzZS91dGlsL0V4dGVuc2lvbkVsZW1lbnRzVXRpbC5qcz9mODg3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzIH0gZnJvbSAnYnBtbi1qcy9saWIvdXRpbC9Nb2RlbFV0aWwnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnbWluLWRhc2gnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzT3V0cHV0TWFwcGluZ3MoZWxlbWVudCkge1xuICByZXR1cm4gISFnZXRPdXRwdXRQYXJhbWV0ZXJzKGVsZW1lbnQpLmxlbmd0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0lucHV0UGFyYW1ldGVyKGVsZW1lbnQsIG5hbWUpIHtcbiAgcmV0dXJuIGdldElucHV0UGFyYW1ldGVycyhlbGVtZW50KS5maW5kKGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGlucHV0LnRhcmdldCA9PT0gbmFtZSB8fCAvLyB6ZWViZVxuICAgICAgaW5wdXQubmFtZSA9PT0gbmFtZSAvLyBjYW11bmRhXG4gICAgKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25FbGVtZW50c0xpc3QoYnVzaW5lc3NPYmplY3QsIHR5cGUgPSB1bmRlZmluZWQpIHtcbiAgY29uc3QgZXh0ZW5zaW9uRWxlbWVudHMgPSBidXNpbmVzc09iamVjdC5nZXQoJ2V4dGVuc2lvbkVsZW1lbnRzJyk7XG5cbiAgaWYgKCFleHRlbnNpb25FbGVtZW50cykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlcyA9IGV4dGVuc2lvbkVsZW1lbnRzLmdldCgndmFsdWVzJyk7XG5cbiAgaWYgKCF2YWx1ZXMgfHwgIXZhbHVlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAodHlwZSkge1xuICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKHZhbHVlID0+IGlzKHZhbHVlLCB0eXBlKSk7XG4gIH1cblxuICByZXR1cm4gdmFsdWVzO1xufVxuXG4vLyBoZWxwZXJzIC8vLy8vLy8vLy9cblxuZnVuY3Rpb24gZ2V0SW5wdXRQYXJhbWV0ZXJzKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldFBhcmFtZXRlcnMoZWxlbWVudCwgJ2lucHV0UGFyYW1ldGVycycpO1xufVxuXG5mdW5jdGlvbiBnZXRPdXRwdXRQYXJhbWV0ZXJzKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldFBhcmFtZXRlcnMoZWxlbWVudCwgJ291dHB1dFBhcmFtZXRlcnMnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0T3V0cHV0KGVsZW1lbnQpIHtcbiAgcmV0dXJuIChcbiAgICAoZ2V0RXh0ZW5zaW9uRWxlbWVudHMoZWxlbWVudCwgJ3plZWJlOklvTWFwcGluZycpKVswXSB8fFxuICAgIChnZXRFeHRlbnNpb25FbGVtZW50cyhlbGVtZW50LCAnY2FtdW5kYTpJbnB1dE91dHB1dCcpKVswXVxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRQYXJhbWV0ZXJzKGVsZW1lbnQsIHByb3BlcnR5KSB7XG4gIHZhciBpbnB1dE91dHB1dCA9IGdldElucHV0T3V0cHV0KGVsZW1lbnQpO1xuXG4gIHJldHVybiAoaW5wdXRPdXRwdXQgJiYgaW5wdXRPdXRwdXQuZ2V0KHByb3BlcnR5KSkgfHwgW107XG59XG5cbmZ1bmN0aW9uIGdldEV4dGVuc2lvbkVsZW1lbnRzKGVsZW1lbnQsIHR5cGUpIHtcbiAgdmFyIGVsZW1lbnRzID0gW107XG4gIHZhciBleHRlbnNpb25FbGVtZW50cyA9IGVsZW1lbnQuZ2V0KCdleHRlbnNpb25FbGVtZW50cycpO1xuXG4gIGlmICh0eXBlb2YgZXh0ZW5zaW9uRWxlbWVudHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdmFyIGV4dGVuc2lvblZhbHVlcyA9IGV4dGVuc2lvbkVsZW1lbnRzLmdldCgndmFsdWVzJyk7XG5cbiAgICBpZiAodHlwZW9mIGV4dGVuc2lvblZhbHVlcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGVsZW1lbnRzID0gZmlsdGVyKGV4dGVuc2lvblZhbHVlcywgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzKHZhbHVlLCB0eXBlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50cztcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/base/util/ExtensionElementsUtil.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/base/util/scopeUtil.js": /*!****************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/base/util/scopeUtil.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getParents: () => (/* binding */ getParents),\n/* harmony export */ getScope: () => (/* binding */ getScope)\n/* harmony export */ });\n/* harmony import */ var bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExtensionElementsUtil */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/util/ExtensionElementsUtil.js\");\n\n\n\nfunction getScope(element, globalScope, variableName) {\n var parents = getParents(element);\n\n if ((0,_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_0__.hasOutputMappings)(element)) {\n return element;\n }\n\n var scopedParent = parents.find(function(parent) {\n return (\n (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(parent, 'bpmn:SubProcess') && (0,_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_0__.hasInputParameter)(parent, variableName)\n );\n });\n\n return scopedParent ? scopedParent : globalScope;\n}\n\nfunction getParents(element) {\n var parents = [];\n var current = element;\n\n while (current.$parent) {\n parents.push(current.$parent);\n current = current.$parent;\n }\n\n return parents;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2Jhc2UvdXRpbC9zY29wZVV0aWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFnRDtBQUMrQjs7QUFFeEU7QUFDUDs7QUFFQSxNQUFNLHlFQUFpQjtBQUN2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNLDhEQUFFLCtCQUErQix5RUFBaUI7QUFDeEQ7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2Jhc2UvdXRpbC9zY29wZVV0aWwuanM/YTFkNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpcyB9IGZyb20gJ2JwbW4tanMvbGliL3V0aWwvTW9kZWxVdGlsJztcbmltcG9ydCB7IGhhc0lucHV0UGFyYW1ldGVyLCBoYXNPdXRwdXRNYXBwaW5ncyB9IGZyb20gJy4vRXh0ZW5zaW9uRWxlbWVudHNVdGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjb3BlKGVsZW1lbnQsIGdsb2JhbFNjb3BlLCB2YXJpYWJsZU5hbWUpIHtcbiAgdmFyIHBhcmVudHMgPSBnZXRQYXJlbnRzKGVsZW1lbnQpO1xuXG4gIGlmIChoYXNPdXRwdXRNYXBwaW5ncyhlbGVtZW50KSkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG5cbiAgdmFyIHNjb3BlZFBhcmVudCA9IHBhcmVudHMuZmluZChmdW5jdGlvbihwYXJlbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgaXMocGFyZW50LCAnYnBtbjpTdWJQcm9jZXNzJykgJiYgaGFzSW5wdXRQYXJhbWV0ZXIocGFyZW50LCB2YXJpYWJsZU5hbWUpXG4gICAgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHNjb3BlZFBhcmVudCA/IHNjb3BlZFBhcmVudCA6IGdsb2JhbFNjb3BlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyZW50cyhlbGVtZW50KSB7XG4gIHZhciBwYXJlbnRzID0gW107XG4gIHZhciBjdXJyZW50ID0gZWxlbWVudDtcblxuICB3aGlsZSAoY3VycmVudC4kcGFyZW50KSB7XG4gICAgcGFyZW50cy5wdXNoKGN1cnJlbnQuJHBhcmVudCk7XG4gICAgY3VycmVudCA9IGN1cnJlbnQuJHBhcmVudDtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRzO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/base/util/scopeUtil.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/camunda/VariableResolver.js": /*!*********************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/camunda/VariableResolver.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CamundaVariableResolver)\n/* harmony export */ });\n/* harmony import */ var _bpmn_io_extract_process_variables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @bpmn-io/extract-process-variables */ \"./node_modules/@bpmn-io/extract-process-variables/dist/index.mjs\");\n/* harmony import */ var _base_VariableResolver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/VariableResolver */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/VariableResolver.js\");\n\n\n\n/**\n * The Camunda 7 Implementation for the VariableResolver.\n */\nclass CamundaVariableResolver extends _base_VariableResolver__WEBPACK_IMPORTED_MODULE_1__.BaseVariableResolver {\n constructor(eventBus, bpmnjs) {\n super(eventBus, bpmnjs);\n this._baseExtractor = _bpmn_io_extract_process_variables__WEBPACK_IMPORTED_MODULE_0__.getProcessVariables;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2NhbXVuZGEvVmFyaWFibGVSZXNvbHZlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUU7QUFDVDs7QUFFaEU7QUFDQTtBQUNBO0FBQ2Usc0NBQXNDLHdFQUFvQjtBQUN6RTtBQUNBO0FBQ0EsMEJBQTBCLG1GQUFtQjtBQUM3QztBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BicG1uLWlvL3ZhcmlhYmxlLXJlc29sdmVyL2xpYi9jYW11bmRhL1ZhcmlhYmxlUmVzb2x2ZXIuanM/NWY2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQcm9jZXNzVmFyaWFibGVzIH0gZnJvbSAnQGJwbW4taW8vZXh0cmFjdC1wcm9jZXNzLXZhcmlhYmxlcyc7XG5pbXBvcnQgeyBCYXNlVmFyaWFibGVSZXNvbHZlciB9IGZyb20gJy4uL2Jhc2UvVmFyaWFibGVSZXNvbHZlcic7XG5cbi8qKlxuICogVGhlIENhbXVuZGEgNyBJbXBsZW1lbnRhdGlvbiBmb3IgdGhlIFZhcmlhYmxlUmVzb2x2ZXIuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhbXVuZGFWYXJpYWJsZVJlc29sdmVyIGV4dGVuZHMgQmFzZVZhcmlhYmxlUmVzb2x2ZXIge1xuICBjb25zdHJ1Y3RvcihldmVudEJ1cywgYnBtbmpzKSB7XG4gICAgc3VwZXIoZXZlbnRCdXMsIGJwbW5qcyk7XG4gICAgdGhpcy5fYmFzZUV4dHJhY3RvciA9IGdldFByb2Nlc3NWYXJpYWJsZXM7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/camunda/VariableResolver.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/index.js": /*!**************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/index.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CamundaVariableResolverModule: () => (/* binding */ CamundaVariableResolverModule),\n/* harmony export */ VariableProvider: () => (/* reexport safe */ _VariableProvider__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ ZeebeVariableResolverModule: () => (/* binding */ ZeebeVariableResolverModule)\n/* harmony export */ });\n/* harmony import */ var _camunda_VariableResolver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./camunda/VariableResolver */ \"./node_modules/@bpmn-io/variable-resolver/lib/camunda/VariableResolver.js\");\n/* harmony import */ var _zeebe_VariableResolver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./zeebe/VariableResolver */ \"./node_modules/@bpmn-io/variable-resolver/lib/zeebe/VariableResolver.js\");\n/* harmony import */ var _VariableProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VariableProvider */ \"./node_modules/@bpmn-io/variable-resolver/lib/VariableProvider.js\");\n/* harmony import */ var _zeebe_extractors_connectors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./zeebe/extractors/connectors */ \"./node_modules/@bpmn-io/variable-resolver/lib/zeebe/extractors/connectors.js\");\n\n\n\n\n\nconst ZeebeVariableResolverModule = {\n __init__: [\n 'variableResolver',\n 'connectorVariableProvider'\n ],\n variableResolver: [ 'type', _zeebe_VariableResolver__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ],\n connectorVariableProvider: [ 'type', _zeebe_extractors_connectors__WEBPACK_IMPORTED_MODULE_3__[\"default\"] ]\n};\n\nconst CamundaVariableResolverModule = {\n __init__: [\n 'variableResolver',\n ],\n variableResolver: [ 'type', _camunda_VariableResolver__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ],\n};\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBaUU7QUFDSjtBQUNYO0FBQ29COztBQUUvRDtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLCtEQUFxQjtBQUNuRCx1Q0FBdUMsb0VBQXlCO0FBQ2hFOztBQUVPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGlFQUF1QjtBQUNyRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby92YXJpYWJsZS1yZXNvbHZlci9saWIvaW5kZXguanM/N2ZkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2FtdW5kYVZhcmlhYmxlUmVzb2x2ZXIgZnJvbSAnLi9jYW11bmRhL1ZhcmlhYmxlUmVzb2x2ZXInO1xuaW1wb3J0IFplZWJlVmFyaWFibGVSZXNvbHZlciBmcm9tICcuL3plZWJlL1ZhcmlhYmxlUmVzb2x2ZXInO1xuaW1wb3J0IFZhcmlhYmxlUHJvdmlkZXIgZnJvbSAnLi9WYXJpYWJsZVByb3ZpZGVyJztcbmltcG9ydCBDb25uZWN0b3JWYXJpYWJsZVByb3ZpZGVyIGZyb20gJy4vemVlYmUvZXh0cmFjdG9ycy9jb25uZWN0b3JzJztcblxuZXhwb3J0IGNvbnN0IFplZWJlVmFyaWFibGVSZXNvbHZlck1vZHVsZSA9IHtcbiAgX19pbml0X186IFtcbiAgICAndmFyaWFibGVSZXNvbHZlcicsXG4gICAgJ2Nvbm5lY3RvclZhcmlhYmxlUHJvdmlkZXInXG4gIF0sXG4gIHZhcmlhYmxlUmVzb2x2ZXI6IFsgJ3R5cGUnLCBaZWViZVZhcmlhYmxlUmVzb2x2ZXIgXSxcbiAgY29ubmVjdG9yVmFyaWFibGVQcm92aWRlcjogWyAndHlwZScsIENvbm5lY3RvclZhcmlhYmxlUHJvdmlkZXIgXVxufTtcblxuZXhwb3J0IGNvbnN0IENhbXVuZGFWYXJpYWJsZVJlc29sdmVyTW9kdWxlID0ge1xuICBfX2luaXRfXzogW1xuICAgICd2YXJpYWJsZVJlc29sdmVyJyxcbiAgXSxcbiAgdmFyaWFibGVSZXNvbHZlcjogWyAndHlwZScsIENhbXVuZGFWYXJpYWJsZVJlc29sdmVyIF0sXG59O1xuXG5leHBvcnQgeyBWYXJpYWJsZVByb3ZpZGVyIH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/index.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/zeebe/VariableResolver.js": /*!*******************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/zeebe/VariableResolver.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ZeebeVariableResolver)\n/* harmony export */ });\n/* harmony import */ var _bpmn_io_extract_process_variables_zeebe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @bpmn-io/extract-process-variables/zeebe */ \"./node_modules/@bpmn-io/extract-process-variables/zeebe/index.mjs\");\n/* harmony import */ var _base_VariableResolver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/VariableResolver */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/VariableResolver.js\");\n/* harmony import */ var _util_feelUtility__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/feelUtility */ \"./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/feelUtility.js\");\n/* harmony import */ var bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _base_util_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../base/util/ExtensionElementsUtil */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/util/ExtensionElementsUtil.js\");\n\n\n\n\n\n\n\nconst HIGH_PRIORITY = 2000;\n\n/**\n * The Camunda 8 Implementation for the VariableResolver.\n */\nclass ZeebeVariableResolver extends _base_VariableResolver__WEBPACK_IMPORTED_MODULE_1__.BaseVariableResolver {\n constructor(eventBus, bpmnjs) {\n super(eventBus, bpmnjs);\n this._baseExtractor = _bpmn_io_extract_process_variables_zeebe__WEBPACK_IMPORTED_MODULE_0__.getProcessVariables;\n\n eventBus.on('variableResolver.parseVariables', HIGH_PRIORITY, this._resolveIoMappings);\n }\n\n async getVariablesForElement(element, moddleElement) {\n const variables = await super.getVariablesForElement(element);\n\n const bo = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(element);\n\n if (!moddleElement) {\n return variables;\n }\n\n const inputOutput = (0,_base_util_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_3__.getInputOutput)(bo);\n\n if (!inputOutput) {\n return variables;\n }\n\n const namesToFilter = [];\n\n // Input: remove all inputs defined after the current input definition\n if ((0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(moddleElement, 'zeebe:Input')) {\n const allInputs = inputOutput.inputParameters;\n\n const inputsToFilter =\n allInputs\n .slice(allInputs.indexOf(moddleElement))\n .map(o => o.target);\n\n namesToFilter.push(...inputsToFilter);\n }\n\n const allOutputs = inputOutput.outputParameters;\n\n // Output: remove all outputs defined after the current output definition\n if ((0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(moddleElement, 'zeebe:Output')) {\n\n // Get all output mappings defined after the current element, including own name\n const outputsToFilter = allOutputs\n .slice(allOutputs.indexOf(moddleElement))\n .map(o => o.target);\n\n namesToFilter.push(...outputsToFilter);\n }\n\n // Input or general property: remove all outputs\n else if (allOutputs) {\n\n // Input or execution-related element, remove all outputs\n const outputsToFilter = allOutputs\n .map(o => o.target);\n\n namesToFilter.push(...outputsToFilter);\n }\n\n return variables.filter(v => {\n\n // Keep all variables that are also defined in other elements\n if (v.origin.length > 1 || v.origin[0] !== bo) {\n return true;\n }\n\n // Keep all variables from external data providers in outputs\n if (\n (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(moddleElement, 'zeebe:Output') &&\n v.provider.find(extractor => extractor !== this._baseExtractor)\n ) {\n return true;\n }\n\n // Filter all pre-defined variables\n return !namesToFilter.includes(v.name);\n });\n }\n\n /**\n * Parsed the variables that have io-mappings and resolves the variable schema to kept the\n * variable schema throughout the process.\n *\n * @param {Event} e\n * @param {Object} context\n * @param {Array} context.variables\n */\n _resolveIoMappings(e, context) {\n const rawVariables = context.variables;\n\n const mappedVariables = {};\n\n for (const key in rawVariables) {\n const variables = rawVariables[key];\n const newVariables = (0,_util_feelUtility__WEBPACK_IMPORTED_MODULE_2__.parseIoMappings)(variables);\n\n mappedVariables[key] = [ ...variables, ...newVariables ];\n }\n\n context.variables = mappedVariables;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL3plZWJlL1ZhcmlhYmxlUmVzb2x2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQStFO0FBQ2Y7QUFDWDtBQUlqQjtBQUNnQzs7O0FBR3BFOztBQUVBO0FBQ0E7QUFDQTtBQUNlLG9DQUFvQyx3RUFBb0I7QUFDdkU7QUFDQTtBQUNBLDBCQUEwQix5RkFBbUI7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxlQUFlLDZFQUFpQjs7QUFFaEM7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixnRkFBYzs7QUFFdEM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsUUFBUSw4REFBRTtBQUNWOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxRQUFRLDhEQUFFOztBQUVWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUSw4REFBRTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLE9BQU87QUFDcEIsYUFBYSxRQUFRO0FBQ3JCLGFBQWEsd0JBQXdCO0FBQ3JDO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsMkJBQTJCLGtFQUFlOztBQUUxQztBQUNBOztBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby92YXJpYWJsZS1yZXNvbHZlci9saWIvemVlYmUvVmFyaWFibGVSZXNvbHZlci5qcz85ODBiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFByb2Nlc3NWYXJpYWJsZXMgfSBmcm9tICdAYnBtbi1pby9leHRyYWN0LXByb2Nlc3MtdmFyaWFibGVzL3plZWJlJztcbmltcG9ydCB7IEJhc2VWYXJpYWJsZVJlc29sdmVyIH0gZnJvbSAnLi4vYmFzZS9WYXJpYWJsZVJlc29sdmVyJztcbmltcG9ydCB7IHBhcnNlSW9NYXBwaW5ncyB9IGZyb20gJy4vdXRpbC9mZWVsVXRpbGl0eSc7XG5pbXBvcnQge1xuICBnZXRCdXNpbmVzc09iamVjdCxcbiAgaXNcbn0gZnJvbSAnYnBtbi1qcy9saWIvdXRpbC9Nb2RlbFV0aWwnO1xuaW1wb3J0IHsgZ2V0SW5wdXRPdXRwdXQgfSBmcm9tICcuLi9iYXNlL3V0aWwvRXh0ZW5zaW9uRWxlbWVudHNVdGlsJztcblxuXG5jb25zdCBISUdIX1BSSU9SSVRZID0gMjAwMDtcblxuLyoqXG4gKiBUaGUgQ2FtdW5kYSA4IEltcGxlbWVudGF0aW9uIGZvciB0aGUgVmFyaWFibGVSZXNvbHZlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgWmVlYmVWYXJpYWJsZVJlc29sdmVyIGV4dGVuZHMgQmFzZVZhcmlhYmxlUmVzb2x2ZXIge1xuICBjb25zdHJ1Y3RvcihldmVudEJ1cywgYnBtbmpzKSB7XG4gICAgc3VwZXIoZXZlbnRCdXMsIGJwbW5qcyk7XG4gICAgdGhpcy5fYmFzZUV4dHJhY3RvciA9IGdldFByb2Nlc3NWYXJpYWJsZXM7XG5cbiAgICBldmVudEJ1cy5vbigndmFyaWFibGVSZXNvbHZlci5wYXJzZVZhcmlhYmxlcycsIEhJR0hfUFJJT1JJVFksIHRoaXMuX3Jlc29sdmVJb01hcHBpbmdzKTtcbiAgfVxuXG4gIGFzeW5jIGdldFZhcmlhYmxlc0ZvckVsZW1lbnQoZWxlbWVudCwgbW9kZGxlRWxlbWVudCkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IGF3YWl0IHN1cGVyLmdldFZhcmlhYmxlc0ZvckVsZW1lbnQoZWxlbWVudCk7XG5cbiAgICBjb25zdCBibyA9IGdldEJ1c2luZXNzT2JqZWN0KGVsZW1lbnQpO1xuXG4gICAgaWYgKCFtb2RkbGVFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdmFyaWFibGVzO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0T3V0cHV0ID0gZ2V0SW5wdXRPdXRwdXQoYm8pO1xuXG4gICAgaWYgKCFpbnB1dE91dHB1dCkge1xuICAgICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lc1RvRmlsdGVyID0gW107XG5cbiAgICAvLyBJbnB1dDogcmVtb3ZlIGFsbCBpbnB1dHMgZGVmaW5lZCBhZnRlciB0aGUgY3VycmVudCBpbnB1dCBkZWZpbml0aW9uXG4gICAgaWYgKGlzKG1vZGRsZUVsZW1lbnQsICd6ZWViZTpJbnB1dCcpKSB7XG4gICAgICBjb25zdCBhbGxJbnB1dHMgPSBpbnB1dE91dHB1dC5pbnB1dFBhcmFtZXRlcnM7XG5cbiAgICAgIGNvbnN0IGlucHV0c1RvRmlsdGVyID1cbiAgICAgICAgYWxsSW5wdXRzXG4gICAgICAgICAgLnNsaWNlKGFsbElucHV0cy5pbmRleE9mKG1vZGRsZUVsZW1lbnQpKVxuICAgICAgICAgIC5tYXAobyA9PiBvLnRhcmdldCk7XG5cbiAgICAgIG5hbWVzVG9GaWx0ZXIucHVzaCguLi5pbnB1dHNUb0ZpbHRlcik7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsT3V0cHV0cyA9IGlucHV0T3V0cHV0Lm91dHB1dFBhcmFtZXRlcnM7XG5cbiAgICAvLyBPdXRwdXQ6IHJlbW92ZSBhbGwgb3V0cHV0cyBkZWZpbmVkIGFmdGVyIHRoZSBjdXJyZW50IG91dHB1dCBkZWZpbml0aW9uXG4gICAgaWYgKGlzKG1vZGRsZUVsZW1lbnQsICd6ZWViZTpPdXRwdXQnKSkge1xuXG4gICAgICAvLyBHZXQgYWxsIG91dHB1dCBtYXBwaW5ncyBkZWZpbmVkIGFmdGVyIHRoZSBjdXJyZW50IGVsZW1lbnQsIGluY2x1ZGluZyBvd24gbmFtZVxuICAgICAgY29uc3Qgb3V0cHV0c1RvRmlsdGVyID0gYWxsT3V0cHV0c1xuICAgICAgICAuc2xpY2UoYWxsT3V0cHV0cy5pbmRleE9mKG1vZGRsZUVsZW1lbnQpKVxuICAgICAgICAubWFwKG8gPT4gby50YXJnZXQpO1xuXG4gICAgICBuYW1lc1RvRmlsdGVyLnB1c2goLi4ub3V0cHV0c1RvRmlsdGVyKTtcbiAgICB9XG5cbiAgICAvLyBJbnB1dCBvciBnZW5lcmFsIHByb3BlcnR5OiByZW1vdmUgYWxsIG91dHB1dHNcbiAgICBlbHNlIGlmIChhbGxPdXRwdXRzKSB7XG5cbiAgICAgIC8vIElucHV0IG9yIGV4ZWN1dGlvbi1yZWxhdGVkIGVsZW1lbnQsIHJlbW92ZSBhbGwgb3V0cHV0c1xuICAgICAgY29uc3Qgb3V0cHV0c1RvRmlsdGVyID0gYWxsT3V0cHV0c1xuICAgICAgICAubWFwKG8gPT4gby50YXJnZXQpO1xuXG4gICAgICBuYW1lc1RvRmlsdGVyLnB1c2goLi4ub3V0cHV0c1RvRmlsdGVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVzLmZpbHRlcih2ID0+IHtcblxuICAgICAgLy8gS2VlcCBhbGwgdmFyaWFibGVzIHRoYXQgYXJlIGFsc28gZGVmaW5lZCBpbiBvdGhlciBlbGVtZW50c1xuICAgICAgaWYgKHYub3JpZ2luLmxlbmd0aCA+IDEgfHwgdi5vcmlnaW5bMF0gIT09IGJvKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBLZWVwIGFsbCB2YXJpYWJsZXMgZnJvbSBleHRlcm5hbCBkYXRhIHByb3ZpZGVycyBpbiBvdXRwdXRzXG4gICAgICBpZiAoXG4gICAgICAgIGlzKG1vZGRsZUVsZW1lbnQsICd6ZWViZTpPdXRwdXQnKSAmJlxuICAgICAgICB2LnByb3ZpZGVyLmZpbmQoZXh0cmFjdG9yID0+IGV4dHJhY3RvciAhPT0gdGhpcy5fYmFzZUV4dHJhY3RvcilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmlsdGVyIGFsbCBwcmUtZGVmaW5lZCB2YXJpYWJsZXNcbiAgICAgIHJldHVybiAhbmFtZXNUb0ZpbHRlci5pbmNsdWRlcyh2Lm5hbWUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlZCB0aGUgdmFyaWFibGVzIHRoYXQgaGF2ZSBpby1tYXBwaW5ncyBhbmQgcmVzb2x2ZXMgdGhlIHZhcmlhYmxlIHNjaGVtYSB0byBrZXB0IHRoZVxuICAgKiB2YXJpYWJsZSBzY2hlbWEgdGhyb3VnaG91dCB0aGUgcHJvY2Vzcy5cbiAgICpcbiAgICogQHBhcmFtIHtFdmVudH0gZVxuICAgKiBAcGFyYW0ge09iamVjdH0gY29udGV4dFxuICAgKiBAcGFyYW0ge0FycmF5PFByb2Nlc3NWYXJpYWJsZT59IGNvbnRleHQudmFyaWFibGVzXG4gICAqL1xuICBfcmVzb2x2ZUlvTWFwcGluZ3MoZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHJhd1ZhcmlhYmxlcyA9IGNvbnRleHQudmFyaWFibGVzO1xuXG4gICAgY29uc3QgbWFwcGVkVmFyaWFibGVzID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiByYXdWYXJpYWJsZXMpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHJhd1ZhcmlhYmxlc1trZXldO1xuICAgICAgY29uc3QgbmV3VmFyaWFibGVzID0gcGFyc2VJb01hcHBpbmdzKHZhcmlhYmxlcyk7XG5cbiAgICAgIG1hcHBlZFZhcmlhYmxlc1trZXldID0gWyAuLi52YXJpYWJsZXMsIC4uLm5ld1ZhcmlhYmxlcyBdO1xuICAgIH1cblxuICAgIGNvbnRleHQudmFyaWFibGVzID0gbWFwcGVkVmFyaWFibGVzO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/zeebe/VariableResolver.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/zeebe/extractors/connectors.js": /*!************************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/zeebe/extractors/connectors.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _VariableProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../VariableProvider */ \"./node_modules/@bpmn-io/variable-resolver/lib/VariableProvider.js\");\n/* harmony import */ var _base_util_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../base/util/ExtensionElementsUtil */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/util/ExtensionElementsUtil.js\");\n/* harmony import */ var _util_feelUtility__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/feelUtility */ \"./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/feelUtility.js\");\n\n\n\n\n/**\n * TODO: This method tries to mirror the behavior of ConnectorMappings. However, this is not possible in all cases,\n * as the absence of the header has execution implications. This should be replaced with engine behavior in the\n * Connector Implementation at one point.\n */\nclass ConnectorVariableProvider extends _VariableProvider__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n getVariables(element) {\n\n const result = [];\n\n const taskheaders = (0,_base_util_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_1__.getExtensionElementsList)(element, 'zeebe:TaskHeaders')[0];\n\n if (!taskheaders || !taskheaders.values) {\n return;\n }\n\n const headers = taskheaders.values;\n\n const resultVariable = headers.find(header => {\n return header.key === 'resultVariable';\n });\n\n const resultExpression = headers.find(header => {\n return header.key === 'resultExpression';\n });\n\n if (resultVariable && resultVariable.value) {\n result.push({\n name: resultVariable.value\n });\n }\n\n if (resultExpression && resultExpression.value) {\n\n // parse with FEEL\n const resultContext = (0,_util_feelUtility__WEBPACK_IMPORTED_MODULE_2__.getResultContext)(resultExpression.value.substring(1));\n\n const expressionVariables = (0,_util_feelUtility__WEBPACK_IMPORTED_MODULE_2__.toUnifiedFormat)(resultContext.computedValue(), result);\n\n if (expressionVariables && expressionVariables.length > 0) {\n result.push(\n ...expressionVariables[0].entries\n );\n }\n }\n\n return result;\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ConnectorVariableProvider);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL3plZWJlL2V4dHJhY3RvcnMvY29ubmVjdG9ycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXNEO0FBQzJCO0FBQ1Q7O0FBRXhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MseURBQWdCO0FBQ3hEOztBQUVBOztBQUVBLHdCQUF3QiwwRkFBd0I7O0FBRWhEO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7O0FBRUE7QUFDQSw0QkFBNEIsbUVBQWdCOztBQUU1QyxrQ0FBa0Msa0VBQWU7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsaUVBQWUseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BicG1uLWlvL3ZhcmlhYmxlLXJlc29sdmVyL2xpYi96ZWViZS9leHRyYWN0b3JzL2Nvbm5lY3RvcnMuanM/NmU0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVmFyaWFibGVQcm92aWRlciBmcm9tICcuLi8uLi9WYXJpYWJsZVByb3ZpZGVyJztcbmltcG9ydCB7IGdldEV4dGVuc2lvbkVsZW1lbnRzTGlzdCB9IGZyb20gJy4uLy4uL2Jhc2UvdXRpbC9FeHRlbnNpb25FbGVtZW50c1V0aWwnO1xuaW1wb3J0IHsgZ2V0UmVzdWx0Q29udGV4dCwgdG9VbmlmaWVkRm9ybWF0IH0gZnJvbSAnLi4vdXRpbC9mZWVsVXRpbGl0eSc7XG5cbi8qKlxuICogVE9ETzogVGhpcyBtZXRob2QgdHJpZXMgdG8gbWlycm9yIHRoZSBiZWhhdmlvciBvZiBDb25uZWN0b3JNYXBwaW5ncy4gSG93ZXZlciwgdGhpcyBpcyBub3QgcG9zc2libGUgaW4gYWxsIGNhc2VzLFxuICogYXMgdGhlIGFic2VuY2Ugb2YgdGhlIGhlYWRlciBoYXMgZXhlY3V0aW9uIGltcGxpY2F0aW9ucy4gVGhpcyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBlbmdpbmUgYmVoYXZpb3IgaW4gdGhlXG4gKiBDb25uZWN0b3IgSW1wbGVtZW50YXRpb24gYXQgb25lIHBvaW50LlxuICovXG5jbGFzcyBDb25uZWN0b3JWYXJpYWJsZVByb3ZpZGVyIGV4dGVuZHMgVmFyaWFibGVQcm92aWRlciB7XG4gIGdldFZhcmlhYmxlcyhlbGVtZW50KSB7XG5cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIGNvbnN0IHRhc2toZWFkZXJzID0gZ2V0RXh0ZW5zaW9uRWxlbWVudHNMaXN0KGVsZW1lbnQsICd6ZWViZTpUYXNrSGVhZGVycycpWzBdO1xuXG4gICAgaWYgKCF0YXNraGVhZGVycyB8fCAhdGFza2hlYWRlcnMudmFsdWVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVycyA9IHRhc2toZWFkZXJzLnZhbHVlcztcblxuICAgIGNvbnN0IHJlc3VsdFZhcmlhYmxlID0gaGVhZGVycy5maW5kKGhlYWRlciA9PiB7XG4gICAgICByZXR1cm4gaGVhZGVyLmtleSA9PT0gJ3Jlc3VsdFZhcmlhYmxlJztcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3VsdEV4cHJlc3Npb24gPSBoZWFkZXJzLmZpbmQoaGVhZGVyID0+IHtcbiAgICAgIHJldHVybiBoZWFkZXIua2V5ID09PSAncmVzdWx0RXhwcmVzc2lvbic7XG4gICAgfSk7XG5cbiAgICBpZiAocmVzdWx0VmFyaWFibGUgJiYgcmVzdWx0VmFyaWFibGUudmFsdWUpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgbmFtZTogcmVzdWx0VmFyaWFibGUudmFsdWVcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRFeHByZXNzaW9uICYmIHJlc3VsdEV4cHJlc3Npb24udmFsdWUpIHtcblxuICAgICAgLy8gcGFyc2Ugd2l0aCBGRUVMXG4gICAgICBjb25zdCByZXN1bHRDb250ZXh0ID0gZ2V0UmVzdWx0Q29udGV4dChyZXN1bHRFeHByZXNzaW9uLnZhbHVlLnN1YnN0cmluZygxKSk7XG5cbiAgICAgIGNvbnN0IGV4cHJlc3Npb25WYXJpYWJsZXMgPSB0b1VuaWZpZWRGb3JtYXQocmVzdWx0Q29udGV4dC5jb21wdXRlZFZhbHVlKCksIHJlc3VsdCk7XG5cbiAgICAgIGlmIChleHByZXNzaW9uVmFyaWFibGVzICYmIGV4cHJlc3Npb25WYXJpYWJsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAuLi5leHByZXNzaW9uVmFyaWFibGVzWzBdLmVudHJpZXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbm5lY3RvclZhcmlhYmxlUHJvdmlkZXI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/zeebe/extractors/connectors.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/VariableContext.js": /*!***********************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/VariableContext.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EntriesContext: () => (/* binding */ EntriesContext)\n/* harmony export */ });\n/* harmony import */ var lezer_feel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lezer-feel */ \"./node_modules/lezer-feel/dist/index.js\");\n\n\nclass EntriesContext extends lezer_feel__WEBPACK_IMPORTED_MODULE_0__.VariableContext {\n constructor(value = { entries: {} }) {\n super(value);\n\n this.value.entries = this.value.entries || {};\n\n const context = this.value;\n\n for (const key in context.entries) {\n const entry = context.entries[key];\n\n if (entry instanceof EntriesContext) {\n continue;\n }\n\n context.entries[key] = this.constructor.of(context.entries[key]);\n }\n }\n\n getKeys() {\n return Object.keys(this.value.entries);\n }\n\n get(key) {\n const value = this.value.entries[key];\n\n if (!value) {\n return value;\n }\n\n if (value.atomic) {\n return value.atomicValue;\n }\n\n return value;\n }\n\n set(key, value) {\n return this.constructor.of(\n {\n ...this.value,\n entries: {\n ...this.value.entries,\n [key]: value\n }\n }\n );\n }\n\n static of(...contexts) {\n const unwrap = (context) => {\n\n if (\n this.isAtomic(context)\n ) {\n if (context instanceof this) {\n return context.value;\n }\n\n return {\n atomic: true,\n atomicValue: context\n };\n }\n\n return { ...context };\n };\n\n const merged = contexts.reduce((merged, context) => {\n\n const {\n entries = {},\n ...rest\n } = unwrap(context);\n\n return {\n ...merged,\n ...rest,\n entries: {\n ...merged.entries,\n ...entries\n }\n };\n }, {});\n\n return new this(merged);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL3plZWJlL3V0aWwvVmFyaWFibGVDb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTZDOztBQUV0Qyw2QkFBNkIsdURBQWU7QUFDbkQsd0JBQXdCLGFBQWE7QUFDckM7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZUFBZTtBQUNmOztBQUVBOztBQUVBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0EsUUFBUTs7QUFFUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxJQUFJOztBQUVUO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby92YXJpYWJsZS1yZXNvbHZlci9saWIvemVlYmUvdXRpbC9WYXJpYWJsZUNvbnRleHQuanM/MjZmYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXJpYWJsZUNvbnRleHQgfSBmcm9tICdsZXplci1mZWVsJztcblxuZXhwb3J0IGNsYXNzIEVudHJpZXNDb250ZXh0IGV4dGVuZHMgVmFyaWFibGVDb250ZXh0IHtcbiAgY29uc3RydWN0b3IodmFsdWUgPSB7IGVudHJpZXM6IHt9IH0pIHtcbiAgICBzdXBlcih2YWx1ZSk7XG5cbiAgICB0aGlzLnZhbHVlLmVudHJpZXMgPSB0aGlzLnZhbHVlLmVudHJpZXMgfHwge307XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy52YWx1ZTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbnRleHQuZW50cmllcykge1xuICAgICAgY29uc3QgZW50cnkgPSBjb250ZXh0LmVudHJpZXNba2V5XTtcblxuICAgICAgaWYgKGVudHJ5IGluc3RhbmNlb2YgRW50cmllc0NvbnRleHQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuZW50cmllc1trZXldID0gdGhpcy5jb25zdHJ1Y3Rvci5vZihjb250ZXh0LmVudHJpZXNba2V5XSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0S2V5cygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZS5lbnRyaWVzKTtcbiAgfVxuXG4gIGdldChrZXkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUuZW50cmllc1trZXldO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZS5hdG9taWMpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5hdG9taWNWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLm9mKFxuICAgICAge1xuICAgICAgICAuLi50aGlzLnZhbHVlLFxuICAgICAgICBlbnRyaWVzOiB7XG4gICAgICAgICAgLi4udGhpcy52YWx1ZS5lbnRyaWVzLFxuICAgICAgICAgIFtrZXldOiB2YWx1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBvZiguLi5jb250ZXh0cykge1xuICAgIGNvbnN0IHVud3JhcCA9IChjb250ZXh0KSA9PiB7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0F0b21pYyhjb250ZXh0KVxuICAgICAgKSB7XG4gICAgICAgIGlmIChjb250ZXh0IGluc3RhbmNlb2YgdGhpcykge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhdG9taWM6IHRydWUsXG4gICAgICAgICAgYXRvbWljVmFsdWU6IGNvbnRleHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgLi4uY29udGV4dCB9O1xuICAgIH07XG5cbiAgICBjb25zdCBtZXJnZWQgPSBjb250ZXh0cy5yZWR1Y2UoKG1lcmdlZCwgY29udGV4dCkgPT4ge1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIGVudHJpZXMgPSB7fSxcbiAgICAgICAgLi4ucmVzdFxuICAgICAgfSA9IHVud3JhcChjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWVyZ2VkLFxuICAgICAgICAuLi5yZXN0LFxuICAgICAgICBlbnRyaWVzOiB7XG4gICAgICAgICAgLi4ubWVyZ2VkLmVudHJpZXMsXG4gICAgICAgICAgLi4uZW50cmllc1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIHt9KTtcblxuICAgIHJldHVybiBuZXcgdGhpcyhtZXJnZWQpO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/VariableContext.js\n"); /***/ }), /***/ "./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/feelUtility.js": /*!*******************************************************************************!*\ !*** ./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/feelUtility.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getResultContext: () => (/* binding */ getResultContext),\n/* harmony export */ parseIoMappings: () => (/* binding */ parseIoMappings),\n/* harmony export */ toUnifiedFormat: () => (/* binding */ toUnifiedFormat)\n/* harmony export */ });\n/* harmony import */ var lezer_feel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lezer-feel */ \"./node_modules/lezer-feel/dist/index.js\");\n/* harmony import */ var _lezer_lr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lezer/lr */ \"./node_modules/@lezer/lr/dist/index.js\");\n/* harmony import */ var _VariableContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VariableContext */ \"./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/VariableContext.js\");\n/* harmony import */ var _base_util_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../base/util/ExtensionElementsUtil */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/util/ExtensionElementsUtil.js\");\n/* harmony import */ var _base_util_scopeUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../base/util/scopeUtil */ \"./node_modules/@bpmn-io/variable-resolver/lib/base/util/scopeUtil.js\");\n\n\n\n\n\n\n\n\nfunction parseIoMappings(variables) {\n\n const variablesToResolve = [];\n\n // Step 1 - Parse all io mappings and populate all that don't have references\n // to other variables io-mappings\n variables.forEach(variable => {\n variable.origin.forEach(origin => {\n const expressionDetails = getExpressionDetails(variable, origin);\n\n if (!expressionDetails) {\n return;\n }\n\n const { expression, unresolved } = expressionDetails;\n\n variablesToResolve.push({ variable, expression, unresolved });\n });\n });\n\n // Step 2 - Order all Variables and resolve them\n return resolveReferences(variablesToResolve, variables);\n}\n\nfunction resolveReferences(variablesToResolve, allVariables) {\n const sortedVariables = [];\n\n // Step 2.1 - Try to order Variables that rely on each other\n variablesToResolve.forEach((details) => {\n const { variable, unresolved } = details;\n const insertBefore = sortedVariables.findIndex(({ unresolved: u }) => {\n return u.includes(variable.name);\n });\n\n // Insert directly before the first variable that depends on this one\n if (insertBefore > -1) {\n sortedVariables.splice(insertBefore, 0, details);\n return;\n }\n\n // Insert directly after the last variable that this one depends on\n // this ensures that later downstream variables are behind this one\n const insertAfter = sortedVariables.findLastIndex(({ variable: v }) => {\n return unresolved.includes(v.name);\n });\n\n if (insertAfter > -1) {\n sortedVariables.splice(insertAfter + 1, 0, details);\n return;\n }\n\n sortedVariables.push(details);\n });\n\n const variablesWithoutMappings = allVariables.filter(v =>\n !variablesToResolve.find(({ variable: unresolved }) => {\n v === unresolved;\n })\n );\n\n const rootContext = {\n name: 'OuterContext',\n entries: toOptimizedFormat(variablesWithoutMappings)\n };\n\n const newVariables = [];\n\n // Step 2.2 - parse in order, building up the context with resolved variable values\n // This will resolve all variables that don't have circular dependencies on each other\n sortedVariables.forEach(({ variable, expression }) => {\n const resultContext = getResultContext(expression, filterForScope(rootContext, variable));\n\n let computedResult = resultContext.computedValue();\n\n // Wrap primitive values in an EntriesContext\n if (!(computedResult instanceof _VariableContext__WEBPACK_IMPORTED_MODULE_1__.EntriesContext)) {\n computedResult = _VariableContext__WEBPACK_IMPORTED_MODULE_1__.EntriesContext.of(computedResult);\n }\n\n // Ensure we don't copy the scope from the mapped variable\n computedResult.scope = variable.scope;\n\n rootContext.entries[variable.name] = computedResult;\n\n newVariables.push({\n newVariable: toUnifiedFormat({\n [variable.name]: computedResult\n })[0],\n oldVariable: variable\n });\n });\n\n // Ensure meta-data (scope, origin) is kept from original variable\n const result = newVariables.map(({ newVariable, oldVariable }) => {\n if (oldVariable) {\n return {\n ...newVariable,\n ...oldVariable\n };\n }\n return newVariable;\n });\n\n return result;\n}\n\n\n// helpers //////////////////////\n\n/**\n * Parses the expression with the given variables and return the result context\n *\n * @param {String} expression\n * @param {Variables} variables\n * @returns {EntriesContext}\n */\nfunction getResultContext(expression, variables = {}) {\n const contextTracker = (0,lezer_feel__WEBPACK_IMPORTED_MODULE_4__.trackVariables)(variables, _VariableContext__WEBPACK_IMPORTED_MODULE_1__.EntriesContext);\n\n // This is a hack to get the latest variables from the context tracker\n // lezer does not automatically annotate the parse tree with the context\n let latestVariables = null;\n\n const customContextTracker = new _lezer_lr__WEBPACK_IMPORTED_MODULE_0__.ContextTracker({\n start: contextTracker.start,\n reduce(...args) {\n const result = contextTracker.reduce(...args);\n latestVariables = result;\n return result;\n }\n });\n\n const contextualParser = lezer_feel__WEBPACK_IMPORTED_MODULE_4__.parser.configure({\n contextTracker: customContextTracker\n });\n\n contextualParser.parse(expression);\n\n return latestVariables;\n}\n\n/**\n * Given a Variable and a specific origin, return the mapping expression and all\n * unresolved variables used in that expression. Returns undefined if no mapping\n * exists for the given origin.\n *\n * @param {ProcessVariable} variable\n * @param {djs.model.Base} origin\n * @returns {{ expression: String, unresolved: Array }}}\n */\nfunction getExpressionDetails(variable, origin) {\n const ioMapping = (0,_base_util_ExtensionElementsUtil__WEBPACK_IMPORTED_MODULE_2__.getExtensionElementsList)(origin, 'zeebe:IoMapping')[0];\n\n if (!ioMapping) {\n return;\n }\n\n let mappings;\n if (origin === variable.scope) {\n mappings = ioMapping.inputParameters;\n } else {\n mappings = ioMapping.outputParameters;\n }\n\n if (!mappings) {\n return;\n }\n\n const mapping = mappings.find(mapping => mapping.target === variable.name);\n\n if (!mapping || !mapping.source) {\n return;\n }\n\n const expression = mapping.source.substring(1);\n\n const result = getResultContext(expression);\n\n const unresolved = findUnresolvedVariables(result) ;\n\n return { expression, unresolved };\n}\n\n/**\n * Traverses the parseTree and returns all `VariableName` nodes with no value\n *\n * @param {Object} node\n * @returns {Array}\n */\nfunction findUnresolvedVariables(node) {\n const results = [];\n\n results.push(...(node.children.flatMap(findUnresolvedVariables)));\n\n if (node.name === 'VariableName' && !node.value) {\n results.push(node.raw);\n }\n\n return results;\n}\n\n\n/**\n * Transforms the entries of a variable from an array to an object.\n * This allows faster lookup times during parsing.\n *\n * [ { name, entries: [] } ]\n * to\n * {name: { name, entries: {} }}\n */\nfunction toOptimizedFormat(variables) {\n\n if (!variables) {\n return;\n }\n\n const result = {};\n\n variables.forEach(variable => {\n result[variable.name] = { ...variable };\n result[variable.name].entries = toOptimizedFormat(variable.entries);\n });\n\n return result;\n}\n\n/**\n * Transforms EntriesContext to the format required by the feel-editor\n */\nfunction toUnifiedFormat(variables) {\n if (!variables) {\n return;\n }\n\n const result = [];\n\n for (const key in variables) {\n let variable = variables[key];\n\n if (variable instanceof _VariableContext__WEBPACK_IMPORTED_MODULE_1__.EntriesContext) {\n variable = variable.value;\n }\n\n if (!variable) {\n result.push({\n name: key\n });\n continue;\n }\n\n result.push({\n ...annotate(variable),\n entries: toUnifiedFormat(variable.entries),\n name: key,\n scope: variable.scope\n });\n }\n\n return result;\n}\n\n\nfunction annotate(variable) {\n return {\n ...variable,\n type: getType(variable),\n info: getInfo(variable)\n };\n\n}\n\nfunction getType(variable) {\n\n if (!variable) {\n return '';\n }\n\n if (variable.type) {\n return variable.type;\n }\n\n if (variable.entries && Object.keys(variable.entries).length) {\n return 'Context';\n }\n\n if (variable.atomicValue) {\n return capitalize(typeof variable.atomicValue);\n }\n\n return '';\n}\n\nfunction getInfo(variable) {\n if (!variable) {\n return '';\n }\n\n if (variable.info) {\n return variable.info;\n }\n\n if (variable.atomicValue) {\n return '' + variable.atomicValue;\n }\n\n return '';\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nfunction filterForScope(context, variable) {\n const scopedResults = {\n entries: {}\n };\n\n const validScopes = variable.origin.flatMap(bo => {\n return [ bo, ...(0,_base_util_scopeUtil__WEBPACK_IMPORTED_MODULE_3__.getParents)(bo) ];\n });\n\n for (const key in context.entries) {\n const entry = context.entries[key];\n\n if (validScopes.find(scope => scope.id === entry.scope.id)) {\n scopedResults.entries[key] = entry;\n }\n }\n\n return scopedResults;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJwbW4taW8vdmFyaWFibGUtcmVzb2x2ZXIvbGliL3plZWJlL3V0aWwvZmVlbFV0aWxpdHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBb0Q7QUFHakM7O0FBRWdDO0FBQzhCO0FBQzFCOzs7QUFHaEQ7O0FBRVA7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsY0FBYyx5QkFBeUI7O0FBRXZDLGdDQUFnQyxrQ0FBa0M7QUFDbEUsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFlBQVksdUJBQXVCO0FBQ25DLHNEQUFzRCxlQUFlO0FBQ3JFO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0EsZ0NBQWdDLHNCQUFzQjtBQUN0RDtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLHNCQUFzQjtBQUNuRDs7QUFFQTs7QUFFQTtBQUNBLG9DQUFvQyw0REFBYztBQUNsRCx1QkFBdUIsNERBQWM7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBLHFDQUFxQywwQkFBMEI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFdBQVc7QUFDdEIsYUFBYTtBQUNiO0FBQ08sb0RBQW9EO0FBQzNELHlCQUF5QiwwREFBYyxZQUFZLDREQUFjOztBQUVqRTtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DLHFEQUFjO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUgsMkJBQTJCLDhDQUFNO0FBQ2pDO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlCQUFpQjtBQUM1QixXQUFXLGdCQUFnQjtBQUMzQixlQUFlO0FBQ2Y7QUFDQTtBQUNBLG9CQUFvQiwwRkFBd0I7O0FBRTVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYTtBQUNiO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLG9CQUFvQjtBQUMzQjtBQUNBLElBQUksUUFBUTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUEsNEJBQTRCLDREQUFjO0FBQzFDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQixnRUFBVTtBQUM5QixHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYnBtbi1pby92YXJpYWJsZS1yZXNvbHZlci9saWIvemVlYmUvdXRpbC9mZWVsVXRpbGl0eS5qcz9jOWRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlciwgdHJhY2tWYXJpYWJsZXMgfSBmcm9tICdsZXplci1mZWVsJztcbmltcG9ydCB7XG4gIENvbnRleHRUcmFja2VyLFxufSBmcm9tICdAbGV6ZXIvbHInO1xuXG5pbXBvcnQgeyBFbnRyaWVzQ29udGV4dCB9IGZyb20gJy4vVmFyaWFibGVDb250ZXh0JztcbmltcG9ydCB7IGdldEV4dGVuc2lvbkVsZW1lbnRzTGlzdCB9IGZyb20gJy4uLy4uL2Jhc2UvdXRpbC9FeHRlbnNpb25FbGVtZW50c1V0aWwnO1xuaW1wb3J0IHsgZ2V0UGFyZW50cyB9IGZyb20gJy4uLy4uL2Jhc2UvdXRpbC9zY29wZVV0aWwnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlvTWFwcGluZ3ModmFyaWFibGVzKSB7XG5cbiAgY29uc3QgdmFyaWFibGVzVG9SZXNvbHZlID0gW107XG5cbiAgLy8gU3RlcCAxIC0gUGFyc2UgYWxsIGlvIG1hcHBpbmdzIGFuZCBwb3B1bGF0ZSBhbGwgdGhhdCBkb24ndCBoYXZlIHJlZmVyZW5jZXNcbiAgLy8gdG8gb3RoZXIgdmFyaWFibGVzIGlvLW1hcHBpbmdzXG4gIHZhcmlhYmxlcy5mb3JFYWNoKHZhcmlhYmxlID0+IHtcbiAgICB2YXJpYWJsZS5vcmlnaW4uZm9yRWFjaChvcmlnaW4gPT4ge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbkRldGFpbHMgPSBnZXRFeHByZXNzaW9uRGV0YWlscyh2YXJpYWJsZSwgb3JpZ2luKTtcblxuICAgICAgaWYgKCFleHByZXNzaW9uRGV0YWlscykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgZXhwcmVzc2lvbiwgdW5yZXNvbHZlZCB9ID0gZXhwcmVzc2lvbkRldGFpbHM7XG5cbiAgICAgIHZhcmlhYmxlc1RvUmVzb2x2ZS5wdXNoKHsgdmFyaWFibGUsIGV4cHJlc3Npb24sIHVucmVzb2x2ZWQgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIFN0ZXAgMiAtIE9yZGVyIGFsbCBWYXJpYWJsZXMgYW5kIHJlc29sdmUgdGhlbVxuICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZXModmFyaWFibGVzVG9SZXNvbHZlLCB2YXJpYWJsZXMpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlUmVmZXJlbmNlcyh2YXJpYWJsZXNUb1Jlc29sdmUsIGFsbFZhcmlhYmxlcykge1xuICBjb25zdCBzb3J0ZWRWYXJpYWJsZXMgPSBbXTtcblxuICAvLyBTdGVwIDIuMSAtIFRyeSB0byBvcmRlciBWYXJpYWJsZXMgdGhhdCByZWx5IG9uIGVhY2ggb3RoZXJcbiAgdmFyaWFibGVzVG9SZXNvbHZlLmZvckVhY2goKGRldGFpbHMpID0+IHtcbiAgICBjb25zdCB7IHZhcmlhYmxlLCB1bnJlc29sdmVkIH0gPSBkZXRhaWxzO1xuICAgIGNvbnN0IGluc2VydEJlZm9yZSA9IHNvcnRlZFZhcmlhYmxlcy5maW5kSW5kZXgoKHsgdW5yZXNvbHZlZDogdSB9KSA9PiB7XG4gICAgICByZXR1cm4gdS5pbmNsdWRlcyh2YXJpYWJsZS5uYW1lKTtcbiAgICB9KTtcblxuICAgIC8vIEluc2VydCBkaXJlY3RseSBiZWZvcmUgdGhlIGZpcnN0IHZhcmlhYmxlIHRoYXQgZGVwZW5kcyBvbiB0aGlzIG9uZVxuICAgIGlmIChpbnNlcnRCZWZvcmUgPiAtMSkge1xuICAgICAgc29ydGVkVmFyaWFibGVzLnNwbGljZShpbnNlcnRCZWZvcmUsIDAsIGRldGFpbHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEluc2VydCBkaXJlY3RseSBhZnRlciB0aGUgbGFzdCB2YXJpYWJsZSB0aGF0IHRoaXMgb25lIGRlcGVuZHMgb25cbiAgICAvLyB0aGlzIGVuc3VyZXMgdGhhdCBsYXRlciBkb3duc3RyZWFtIHZhcmlhYmxlcyBhcmUgYmVoaW5kIHRoaXMgb25lXG4gICAgY29uc3QgaW5zZXJ0QWZ0ZXIgPSBzb3J0ZWRWYXJpYWJsZXMuZmluZExhc3RJbmRleCgoeyB2YXJpYWJsZTogdiB9KSA9PiB7XG4gICAgICByZXR1cm4gdW5yZXNvbHZlZC5pbmNsdWRlcyh2Lm5hbWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluc2VydEFmdGVyID4gLTEpIHtcbiAgICAgIHNvcnRlZFZhcmlhYmxlcy5zcGxpY2UoaW5zZXJ0QWZ0ZXIgKyAxLCAwLCBkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzb3J0ZWRWYXJpYWJsZXMucHVzaChkZXRhaWxzKTtcbiAgfSk7XG5cbiAgY29uc3QgdmFyaWFibGVzV2l0aG91dE1hcHBpbmdzID0gYWxsVmFyaWFibGVzLmZpbHRlcih2ID0+XG4gICAgIXZhcmlhYmxlc1RvUmVzb2x2ZS5maW5kKCh7IHZhcmlhYmxlOiB1bnJlc29sdmVkIH0pID0+IHtcbiAgICAgIHYgPT09IHVucmVzb2x2ZWQ7XG4gICAgfSlcbiAgKTtcblxuICBjb25zdCByb290Q29udGV4dCA9IHtcbiAgICBuYW1lOiAnT3V0ZXJDb250ZXh0JyxcbiAgICBlbnRyaWVzOiB0b09wdGltaXplZEZvcm1hdCh2YXJpYWJsZXNXaXRob3V0TWFwcGluZ3MpXG4gIH07XG5cbiAgY29uc3QgbmV3VmFyaWFibGVzID0gW107XG5cbiAgLy8gU3RlcCAyLjIgLSBwYXJzZSBpbiBvcmRlciwgYnVpbGRpbmcgdXAgdGhlIGNvbnRleHQgd2l0aCByZXNvbHZlZCB2YXJpYWJsZSB2YWx1ZXNcbiAgLy8gVGhpcyB3aWxsIHJlc29sdmUgYWxsIHZhcmlhYmxlcyB0aGF0IGRvbid0IGhhdmUgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIG9uIGVhY2ggb3RoZXJcbiAgc29ydGVkVmFyaWFibGVzLmZvckVhY2goKHsgdmFyaWFibGUsIGV4cHJlc3Npb24gfSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdENvbnRleHQgPSBnZXRSZXN1bHRDb250ZXh0KGV4cHJlc3Npb24sIGZpbHRlckZvclNjb3BlKHJvb3RDb250ZXh0LCB2YXJpYWJsZSkpO1xuXG4gICAgbGV0IGNvbXB1dGVkUmVzdWx0ID0gcmVzdWx0Q29udGV4dC5jb21wdXRlZFZhbHVlKCk7XG5cbiAgICAvLyBXcmFwIHByaW1pdGl2ZSB2YWx1ZXMgaW4gYW4gRW50cmllc0NvbnRleHRcbiAgICBpZiAoIShjb21wdXRlZFJlc3VsdCBpbnN0YW5jZW9mIEVudHJpZXNDb250ZXh0KSkge1xuICAgICAgY29tcHV0ZWRSZXN1bHQgPSBFbnRyaWVzQ29udGV4dC5vZihjb21wdXRlZFJlc3VsdCk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHdlIGRvbid0IGNvcHkgdGhlIHNjb3BlIGZyb20gdGhlIG1hcHBlZCB2YXJpYWJsZVxuICAgIGNvbXB1dGVkUmVzdWx0LnNjb3BlID0gdmFyaWFibGUuc2NvcGU7XG5cbiAgICByb290Q29udGV4dC5lbnRyaWVzW3ZhcmlhYmxlLm5hbWVdID0gY29tcHV0ZWRSZXN1bHQ7XG5cbiAgICBuZXdWYXJpYWJsZXMucHVzaCh7XG4gICAgICBuZXdWYXJpYWJsZTogdG9VbmlmaWVkRm9ybWF0KHtcbiAgICAgICAgW3ZhcmlhYmxlLm5hbWVdOiBjb21wdXRlZFJlc3VsdFxuICAgICAgfSlbMF0sXG4gICAgICBvbGRWYXJpYWJsZTogdmFyaWFibGVcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gRW5zdXJlIG1ldGEtZGF0YSAoc2NvcGUsIG9yaWdpbikgaXMga2VwdCBmcm9tIG9yaWdpbmFsIHZhcmlhYmxlXG4gIGNvbnN0IHJlc3VsdCA9IG5ld1ZhcmlhYmxlcy5tYXAoKHsgbmV3VmFyaWFibGUsIG9sZFZhcmlhYmxlIH0pID0+IHtcbiAgICBpZiAob2xkVmFyaWFibGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm5ld1ZhcmlhYmxlLFxuICAgICAgICAuLi5vbGRWYXJpYWJsZVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld1ZhcmlhYmxlO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5cbi8vIGhlbHBlcnMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFBhcnNlcyB0aGUgZXhwcmVzc2lvbiB3aXRoIHRoZSBnaXZlbiB2YXJpYWJsZXMgYW5kIHJldHVybiB0aGUgcmVzdWx0IGNvbnRleHRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXhwcmVzc2lvblxuICogQHBhcmFtIHtWYXJpYWJsZXN9IHZhcmlhYmxlc1xuICogQHJldHVybnMge0VudHJpZXNDb250ZXh0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzdWx0Q29udGV4dChleHByZXNzaW9uLCB2YXJpYWJsZXMgPSB7fSkge1xuICBjb25zdCBjb250ZXh0VHJhY2tlciA9IHRyYWNrVmFyaWFibGVzKHZhcmlhYmxlcywgRW50cmllc0NvbnRleHQpO1xuXG4gIC8vIFRoaXMgaXMgYSBoYWNrIHRvIGdldCB0aGUgbGF0ZXN0IHZhcmlhYmxlcyBmcm9tIHRoZSBjb250ZXh0IHRyYWNrZXJcbiAgLy8gbGV6ZXIgZG9lcyBub3QgYXV0b21hdGljYWxseSBhbm5vdGF0ZSB0aGUgcGFyc2UgdHJlZSB3aXRoIHRoZSBjb250ZXh0XG4gIGxldCBsYXRlc3RWYXJpYWJsZXMgPSBudWxsO1xuXG4gIGNvbnN0IGN1c3RvbUNvbnRleHRUcmFja2VyID0gbmV3IENvbnRleHRUcmFja2VyKHtcbiAgICBzdGFydDogY29udGV4dFRyYWNrZXIuc3RhcnQsXG4gICAgcmVkdWNlKC4uLmFyZ3MpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNvbnRleHRUcmFja2VyLnJlZHVjZSguLi5hcmdzKTtcbiAgICAgIGxhdGVzdFZhcmlhYmxlcyA9IHJlc3VsdDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBjb250ZXh0dWFsUGFyc2VyID0gcGFyc2VyLmNvbmZpZ3VyZSh7XG4gICAgY29udGV4dFRyYWNrZXI6IGN1c3RvbUNvbnRleHRUcmFja2VyXG4gIH0pO1xuXG4gIGNvbnRleHR1YWxQYXJzZXIucGFyc2UoZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIGxhdGVzdFZhcmlhYmxlcztcbn1cblxuLyoqXG4gKiBHaXZlbiBhIFZhcmlhYmxlIGFuZCBhIHNwZWNpZmljIG9yaWdpbiwgcmV0dXJuIHRoZSBtYXBwaW5nIGV4cHJlc3Npb24gYW5kIGFsbFxuICogdW5yZXNvbHZlZCB2YXJpYWJsZXMgdXNlZCBpbiB0aGF0IGV4cHJlc3Npb24uIFJldHVybnMgdW5kZWZpbmVkIGlmIG5vIG1hcHBpbmdcbiAqIGV4aXN0cyBmb3IgdGhlIGdpdmVuIG9yaWdpbi5cbiAqXG4gKiBAcGFyYW0ge1Byb2Nlc3NWYXJpYWJsZX0gdmFyaWFibGVcbiAqIEBwYXJhbSB7ZGpzLm1vZGVsLkJhc2V9IG9yaWdpblxuICogQHJldHVybnMge3sgZXhwcmVzc2lvbjogU3RyaW5nLCB1bnJlc29sdmVkOiBBcnJheTxTdHJpbmc+IH19fVxuICovXG5mdW5jdGlvbiBnZXRFeHByZXNzaW9uRGV0YWlscyh2YXJpYWJsZSwgb3JpZ2luKSB7XG4gIGNvbnN0IGlvTWFwcGluZyA9IGdldEV4dGVuc2lvbkVsZW1lbnRzTGlzdChvcmlnaW4sICd6ZWViZTpJb01hcHBpbmcnKVswXTtcblxuICBpZiAoIWlvTWFwcGluZykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBtYXBwaW5ncztcbiAgaWYgKG9yaWdpbiA9PT0gdmFyaWFibGUuc2NvcGUpIHtcbiAgICBtYXBwaW5ncyA9IGlvTWFwcGluZy5pbnB1dFBhcmFtZXRlcnM7XG4gIH0gZWxzZSB7XG4gICAgbWFwcGluZ3MgPSBpb01hcHBpbmcub3V0cHV0UGFyYW1ldGVycztcbiAgfVxuXG4gIGlmICghbWFwcGluZ3MpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtYXBwaW5nID0gbWFwcGluZ3MuZmluZChtYXBwaW5nID0+IG1hcHBpbmcudGFyZ2V0ID09PSB2YXJpYWJsZS5uYW1lKTtcblxuICBpZiAoIW1hcHBpbmcgfHwgIW1hcHBpbmcuc291cmNlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZXhwcmVzc2lvbiA9IG1hcHBpbmcuc291cmNlLnN1YnN0cmluZygxKTtcblxuICBjb25zdCByZXN1bHQgPSBnZXRSZXN1bHRDb250ZXh0KGV4cHJlc3Npb24pO1xuXG4gIGNvbnN0IHVucmVzb2x2ZWQgPSBmaW5kVW5yZXNvbHZlZFZhcmlhYmxlcyhyZXN1bHQpIDtcblxuICByZXR1cm4geyBleHByZXNzaW9uLCB1bnJlc29sdmVkIH07XG59XG5cbi8qKlxuICogVHJhdmVyc2VzIHRoZSBwYXJzZVRyZWUgYW5kIHJldHVybnMgYWxsIGBWYXJpYWJsZU5hbWVgIG5vZGVzIHdpdGggbm8gdmFsdWVcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gbm9kZVxuICogQHJldHVybnMge0FycmF5PFN0cmluZz59XG4gKi9cbmZ1bmN0aW9uIGZpbmRVbnJlc29sdmVkVmFyaWFibGVzKG5vZGUpIHtcbiAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gIHJlc3VsdHMucHVzaCguLi4obm9kZS5jaGlsZHJlbi5mbGF0TWFwKGZpbmRVbnJlc29sdmVkVmFyaWFibGVzKSkpO1xuXG4gIGlmIChub2RlLm5hbWUgPT09ICdWYXJpYWJsZU5hbWUnICYmICFub2RlLnZhbHVlKSB7XG4gICAgcmVzdWx0cy5wdXNoKG5vZGUucmF3KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG5cbi8qKlxuICogVHJhbnNmb3JtcyB0aGUgZW50cmllcyBvZiBhIHZhcmlhYmxlIGZyb20gYW4gYXJyYXkgdG8gYW4gb2JqZWN0LlxuICogVGhpcyBhbGxvd3MgZmFzdGVyIGxvb2t1cCB0aW1lcyBkdXJpbmcgcGFyc2luZy5cbiAqXG4gKiBbIHsgbmFtZSwgZW50cmllczogW10gfSBdXG4gKiB0b1xuICoge25hbWU6IHsgbmFtZSwgZW50cmllczoge30gfX1cbiAqL1xuZnVuY3Rpb24gdG9PcHRpbWl6ZWRGb3JtYXQodmFyaWFibGVzKSB7XG5cbiAgaWYgKCF2YXJpYWJsZXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSB7fTtcblxuICB2YXJpYWJsZXMuZm9yRWFjaCh2YXJpYWJsZSA9PiB7XG4gICAgcmVzdWx0W3ZhcmlhYmxlLm5hbWVdID0geyAuLi52YXJpYWJsZSB9O1xuICAgIHJlc3VsdFt2YXJpYWJsZS5uYW1lXS5lbnRyaWVzID0gdG9PcHRpbWl6ZWRGb3JtYXQodmFyaWFibGUuZW50cmllcyk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBFbnRyaWVzQ29udGV4dCB0byB0aGUgZm9ybWF0IHJlcXVpcmVkIGJ5IHRoZSBmZWVsLWVkaXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9VbmlmaWVkRm9ybWF0KHZhcmlhYmxlcykge1xuICBpZiAoIXZhcmlhYmxlcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gIGZvciAoY29uc3Qga2V5IGluIHZhcmlhYmxlcykge1xuICAgIGxldCB2YXJpYWJsZSA9IHZhcmlhYmxlc1trZXldO1xuXG4gICAgaWYgKHZhcmlhYmxlIGluc3RhbmNlb2YgRW50cmllc0NvbnRleHQpIHtcbiAgICAgIHZhcmlhYmxlID0gdmFyaWFibGUudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKCF2YXJpYWJsZSkge1xuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBuYW1lOiBrZXlcbiAgICAgIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2goe1xuICAgICAgLi4uYW5ub3RhdGUodmFyaWFibGUpLFxuICAgICAgZW50cmllczogdG9VbmlmaWVkRm9ybWF0KHZhcmlhYmxlLmVudHJpZXMpLFxuICAgICAgbmFtZToga2V5LFxuICAgICAgc2NvcGU6IHZhcmlhYmxlLnNjb3BlXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5cbmZ1bmN0aW9uIGFubm90YXRlKHZhcmlhYmxlKSB7XG4gIHJldHVybiB7XG4gICAgLi4udmFyaWFibGUsXG4gICAgdHlwZTogZ2V0VHlwZSh2YXJpYWJsZSksXG4gICAgaW5mbzogZ2V0SW5mbyh2YXJpYWJsZSlcbiAgfTtcblxufVxuXG5mdW5jdGlvbiBnZXRUeXBlKHZhcmlhYmxlKSB7XG5cbiAgaWYgKCF2YXJpYWJsZSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh2YXJpYWJsZS50eXBlKSB7XG4gICAgcmV0dXJuIHZhcmlhYmxlLnR5cGU7XG4gIH1cblxuICBpZiAodmFyaWFibGUuZW50cmllcyAmJiBPYmplY3Qua2V5cyh2YXJpYWJsZS5lbnRyaWVzKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gJ0NvbnRleHQnO1xuICB9XG5cbiAgaWYgKHZhcmlhYmxlLmF0b21pY1ZhbHVlKSB7XG4gICAgcmV0dXJuIGNhcGl0YWxpemUodHlwZW9mIHZhcmlhYmxlLmF0b21pY1ZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZ2V0SW5mbyh2YXJpYWJsZSkge1xuICBpZiAoIXZhcmlhYmxlKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHZhcmlhYmxlLmluZm8pIHtcbiAgICByZXR1cm4gdmFyaWFibGUuaW5mbztcbiAgfVxuXG4gIGlmICh2YXJpYWJsZS5hdG9taWNWYWx1ZSkge1xuICAgIHJldHVybiAnJyArIHZhcmlhYmxlLmF0b21pY1ZhbHVlO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBjYXBpdGFsaXplKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyaW5nLnNsaWNlKDEpO1xufVxuXG5mdW5jdGlvbiBmaWx0ZXJGb3JTY29wZShjb250ZXh0LCB2YXJpYWJsZSkge1xuICBjb25zdCBzY29wZWRSZXN1bHRzID0ge1xuICAgIGVudHJpZXM6IHt9XG4gIH07XG5cbiAgY29uc3QgdmFsaWRTY29wZXMgPSB2YXJpYWJsZS5vcmlnaW4uZmxhdE1hcChibyA9PiB7XG4gICAgcmV0dXJuIFsgYm8sIC4uLmdldFBhcmVudHMoYm8pIF07XG4gIH0pO1xuXG4gIGZvciAoY29uc3Qga2V5IGluIGNvbnRleHQuZW50cmllcykge1xuICAgIGNvbnN0IGVudHJ5ID0gY29udGV4dC5lbnRyaWVzW2tleV07XG5cbiAgICBpZiAodmFsaWRTY29wZXMuZmluZChzY29wZSA9PiBzY29wZS5pZCA9PT0gZW50cnkuc2NvcGUuaWQpKSB7XG4gICAgICBzY29wZWRSZXN1bHRzLmVudHJpZXNba2V5XSA9IGVudHJ5O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzY29wZWRSZXN1bHRzO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@bpmn-io/variable-resolver/lib/zeebe/util/feelUtility.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/createPopper.js": /*!*********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/createPopper.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPopper: () => (/* binding */ createPopper),\n/* harmony export */ detectOverflow: () => (/* reexport safe */ _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n/* harmony export */ popperGenerator: () => (/* binding */ popperGenerator)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dom-utils/getCompositeRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js\");\n/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dom-utils/getLayoutRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\");\n/* harmony import */ var _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-utils/listScrollParents.js */ \"./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/orderModifiers.js */ \"./node_modules/@popperjs/core/lib/utils/orderModifiers.js\");\n/* harmony import */ var _utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/debounce.js */ \"./node_modules/@popperjs/core/lib/utils/debounce.js\");\n/* harmony import */ var _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/mergeByName.js */ \"./node_modules/@popperjs/core/lib/utils/mergeByName.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-utils/instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n\n\n\n\n\n\n\n\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nfunction popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: (0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(reference) ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(reference) : reference.contextElement ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(reference.contextElement) : [],\n popper: (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = (0,_utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: (0,_dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(reference, (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(popper), state.options.strategy === 'fixed'),\n popper: (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: (0,_utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nvar createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2NyZWF0ZVBvcHBlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBK0Q7QUFDTjtBQUNRO0FBQ0o7QUFDTjtBQUNaO0FBQ007QUFDTTtBQUNEO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxzRUFBc0UsYUFBYTtBQUNuRjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQix1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQSxxQkFBcUIsbUVBQVMsY0FBYywyRUFBaUIseUNBQXlDLDJFQUFpQjtBQUN2SCxrQkFBa0IsMkVBQWlCO0FBQ25DLFdBQVc7QUFDWDs7QUFFQSwrQkFBK0Isb0VBQWMsQ0FBQyxpRUFBVyx5REFBeUQ7O0FBRWxIO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZDQUE2QztBQUM3Qzs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQSxxQkFBcUIsMEVBQWdCLFlBQVkseUVBQWU7QUFDaEUsa0JBQWtCLHVFQUFhO0FBQy9CLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1EQUFtRDtBQUNuRDtBQUNBO0FBQ0EsNkNBQTZDLEtBQUs7O0FBRWxEO0FBQ0Esc0VBQXNFO0FBQ3RFLFNBQVM7O0FBRVQsNEJBQTRCLHVDQUF1QztBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRTtBQUNoRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsY0FBYyw4REFBUTtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVzs7QUFFWDs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNPLG1EQUFtRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvY3JlYXRlUG9wcGVyLmpzPzUwOTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldENvbXBvc2l0ZVJlY3QgZnJvbSBcIi4vZG9tLXV0aWxzL2dldENvbXBvc2l0ZVJlY3QuanNcIjtcbmltcG9ydCBnZXRMYXlvdXRSZWN0IGZyb20gXCIuL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgbGlzdFNjcm9sbFBhcmVudHMgZnJvbSBcIi4vZG9tLXV0aWxzL2xpc3RTY3JvbGxQYXJlbnRzLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBvcmRlck1vZGlmaWVycyBmcm9tIFwiLi91dGlscy9vcmRlck1vZGlmaWVycy5qc1wiO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gXCIuL3V0aWxzL2RlYm91bmNlLmpzXCI7XG5pbXBvcnQgbWVyZ2VCeU5hbWUgZnJvbSBcIi4vdXRpbHMvbWVyZ2VCeU5hbWUuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi91dGlscy9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4vZG9tLXV0aWxzL2luc3RhbmNlT2YuanNcIjtcbnZhciBERUZBVUxUX09QVElPTlMgPSB7XG4gIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gIG1vZGlmaWVyczogW10sXG4gIHN0cmF0ZWd5OiAnYWJzb2x1dGUnXG59O1xuXG5mdW5jdGlvbiBhcmVWYWxpZEVsZW1lbnRzKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuICFhcmdzLnNvbWUoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gIShlbGVtZW50ICYmIHR5cGVvZiBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCA9PT0gJ2Z1bmN0aW9uJyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9wcGVyR2VuZXJhdG9yKGdlbmVyYXRvck9wdGlvbnMpIHtcbiAgaWYgKGdlbmVyYXRvck9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIGdlbmVyYXRvck9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfZ2VuZXJhdG9yT3B0aW9ucyA9IGdlbmVyYXRvck9wdGlvbnMsXG4gICAgICBfZ2VuZXJhdG9yT3B0aW9ucyRkZWYgPSBfZ2VuZXJhdG9yT3B0aW9ucy5kZWZhdWx0TW9kaWZpZXJzLFxuICAgICAgZGVmYXVsdE1vZGlmaWVycyA9IF9nZW5lcmF0b3JPcHRpb25zJGRlZiA9PT0gdm9pZCAwID8gW10gOiBfZ2VuZXJhdG9yT3B0aW9ucyRkZWYsXG4gICAgICBfZ2VuZXJhdG9yT3B0aW9ucyRkZWYyID0gX2dlbmVyYXRvck9wdGlvbnMuZGVmYXVsdE9wdGlvbnMsXG4gICAgICBkZWZhdWx0T3B0aW9ucyA9IF9nZW5lcmF0b3JPcHRpb25zJGRlZjIgPT09IHZvaWQgMCA/IERFRkFVTFRfT1BUSU9OUyA6IF9nZW5lcmF0b3JPcHRpb25zJGRlZjI7XG4gIHJldHVybiBmdW5jdGlvbiBjcmVhdGVQb3BwZXIocmVmZXJlbmNlLCBwb3BwZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgICBvcHRpb25zID0gZGVmYXVsdE9wdGlvbnM7XG4gICAgfVxuXG4gICAgdmFyIHN0YXRlID0ge1xuICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgIG9yZGVyZWRNb2RpZmllcnM6IFtdLFxuICAgICAgb3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9PUFRJT05TLCBkZWZhdWx0T3B0aW9ucyksXG4gICAgICBtb2RpZmllcnNEYXRhOiB7fSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlLFxuICAgICAgICBwb3BwZXI6IHBvcHBlclxuICAgICAgfSxcbiAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgc3R5bGVzOiB7fVxuICAgIH07XG4gICAgdmFyIGVmZmVjdENsZWFudXBGbnMgPSBbXTtcbiAgICB2YXIgaXNEZXN0cm95ZWQgPSBmYWxzZTtcbiAgICB2YXIgaW5zdGFuY2UgPSB7XG4gICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICBzZXRPcHRpb25zOiBmdW5jdGlvbiBzZXRPcHRpb25zKHNldE9wdGlvbnNBY3Rpb24pIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB0eXBlb2Ygc2V0T3B0aW9uc0FjdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHNldE9wdGlvbnNBY3Rpb24oc3RhdGUub3B0aW9ucykgOiBzZXRPcHRpb25zQWN0aW9uO1xuICAgICAgICBjbGVhbnVwTW9kaWZpZXJFZmZlY3RzKCk7XG4gICAgICAgIHN0YXRlLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgc3RhdGUub3B0aW9ucywgb3B0aW9ucyk7XG4gICAgICAgIHN0YXRlLnNjcm9sbFBhcmVudHMgPSB7XG4gICAgICAgICAgcmVmZXJlbmNlOiBpc0VsZW1lbnQocmVmZXJlbmNlKSA/IGxpc3RTY3JvbGxQYXJlbnRzKHJlZmVyZW5jZSkgOiByZWZlcmVuY2UuY29udGV4dEVsZW1lbnQgPyBsaXN0U2Nyb2xsUGFyZW50cyhyZWZlcmVuY2UuY29udGV4dEVsZW1lbnQpIDogW10sXG4gICAgICAgICAgcG9wcGVyOiBsaXN0U2Nyb2xsUGFyZW50cyhwb3BwZXIpXG4gICAgICAgIH07IC8vIE9yZGVycyB0aGUgbW9kaWZpZXJzIGJhc2VkIG9uIHRoZWlyIGRlcGVuZGVuY2llcyBhbmQgYHBoYXNlYFxuICAgICAgICAvLyBwcm9wZXJ0aWVzXG5cbiAgICAgICAgdmFyIG9yZGVyZWRNb2RpZmllcnMgPSBvcmRlck1vZGlmaWVycyhtZXJnZUJ5TmFtZShbXS5jb25jYXQoZGVmYXVsdE1vZGlmaWVycywgc3RhdGUub3B0aW9ucy5tb2RpZmllcnMpKSk7IC8vIFN0cmlwIG91dCBkaXNhYmxlZCBtb2RpZmllcnNcblxuICAgICAgICBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzID0gb3JkZXJlZE1vZGlmaWVycy5maWx0ZXIoZnVuY3Rpb24gKG0pIHtcbiAgICAgICAgICByZXR1cm4gbS5lbmFibGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgcnVuTW9kaWZpZXJFZmZlY3RzKCk7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZS51cGRhdGUoKTtcbiAgICAgIH0sXG4gICAgICAvLyBTeW5jIHVwZGF0ZSDigJMgaXQgd2lsbCBhbHdheXMgYmUgZXhlY3V0ZWQsIGV2ZW4gaWYgbm90IG5lY2Vzc2FyeS4gVGhpc1xuICAgICAgLy8gaXMgdXNlZnVsIGZvciBsb3cgZnJlcXVlbmN5IHVwZGF0ZXMgd2hlcmUgc3luYyBiZWhhdmlvciBzaW1wbGlmaWVzIHRoZVxuICAgICAgLy8gbG9naWMuXG4gICAgICAvLyBGb3IgaGlnaCBmcmVxdWVuY3kgdXBkYXRlcyAoZS5nLiBgcmVzaXplYCBhbmQgYHNjcm9sbGAgZXZlbnRzKSwgYWx3YXlzXG4gICAgICAvLyBwcmVmZXIgdGhlIGFzeW5jIFBvcHBlciN1cGRhdGUgbWV0aG9kXG4gICAgICBmb3JjZVVwZGF0ZTogZnVuY3Rpb24gZm9yY2VVcGRhdGUoKSB7XG4gICAgICAgIGlmIChpc0Rlc3Ryb3llZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfc3RhdGUkZWxlbWVudHMgPSBzdGF0ZS5lbGVtZW50cyxcbiAgICAgICAgICAgIHJlZmVyZW5jZSA9IF9zdGF0ZSRlbGVtZW50cy5yZWZlcmVuY2UsXG4gICAgICAgICAgICBwb3BwZXIgPSBfc3RhdGUkZWxlbWVudHMucG9wcGVyOyAvLyBEb24ndCBwcm9jZWVkIGlmIGByZWZlcmVuY2VgIG9yIGBwb3BwZXJgIGFyZSBub3QgdmFsaWQgZWxlbWVudHNcbiAgICAgICAgLy8gYW55bW9yZVxuXG4gICAgICAgIGlmICghYXJlVmFsaWRFbGVtZW50cyhyZWZlcmVuY2UsIHBvcHBlcikpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gLy8gU3RvcmUgdGhlIHJlZmVyZW5jZSBhbmQgcG9wcGVyIHJlY3RzIHRvIGJlIHJlYWQgYnkgbW9kaWZpZXJzXG5cblxuICAgICAgICBzdGF0ZS5yZWN0cyA9IHtcbiAgICAgICAgICByZWZlcmVuY2U6IGdldENvbXBvc2l0ZVJlY3QocmVmZXJlbmNlLCBnZXRPZmZzZXRQYXJlbnQocG9wcGVyKSwgc3RhdGUub3B0aW9ucy5zdHJhdGVneSA9PT0gJ2ZpeGVkJyksXG4gICAgICAgICAgcG9wcGVyOiBnZXRMYXlvdXRSZWN0KHBvcHBlcilcbiAgICAgICAgfTsgLy8gTW9kaWZpZXJzIGhhdmUgdGhlIGFiaWxpdHkgdG8gcmVzZXQgdGhlIGN1cnJlbnQgdXBkYXRlIGN5Y2xlLiBUaGVcbiAgICAgICAgLy8gbW9zdCBjb21tb24gdXNlIGNhc2UgZm9yIHRoaXMgaXMgdGhlIGBmbGlwYCBtb2RpZmllciBjaGFuZ2luZyB0aGVcbiAgICAgICAgLy8gcGxhY2VtZW50LCB3aGljaCB0aGVuIG5lZWRzIHRvIHJlLXJ1biBhbGwgdGhlIG1vZGlmaWVycywgYmVjYXVzZSB0aGVcbiAgICAgICAgLy8gbG9naWMgd2FzIHByZXZpb3VzbHkgcmFuIGZvciB0aGUgcHJldmlvdXMgcGxhY2VtZW50IGFuZCBpcyB0aGVyZWZvcmVcbiAgICAgICAgLy8gc3RhbGUvaW5jb3JyZWN0XG5cbiAgICAgICAgc3RhdGUucmVzZXQgPSBmYWxzZTtcbiAgICAgICAgc3RhdGUucGxhY2VtZW50ID0gc3RhdGUub3B0aW9ucy5wbGFjZW1lbnQ7IC8vIE9uIGVhY2ggdXBkYXRlIGN5Y2xlLCB0aGUgYG1vZGlmaWVyc0RhdGFgIHByb3BlcnR5IGZvciBlYWNoIG1vZGlmaWVyXG4gICAgICAgIC8vIGlzIGZpbGxlZCB3aXRoIHRoZSBpbml0aWFsIGRhdGEgc3BlY2lmaWVkIGJ5IHRoZSBtb2RpZmllci4gVGhpcyBtZWFuc1xuICAgICAgICAvLyBpdCBkb2Vzbid0IHBlcnNpc3QgYW5kIGlzIGZyZXNoIG9uIGVhY2ggdXBkYXRlLlxuICAgICAgICAvLyBUbyBlbnN1cmUgcGVyc2lzdGVudCBkYXRhLCB1c2UgYCR7bmFtZX0jcGVyc2lzdGVudGBcblxuICAgICAgICBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlLm1vZGlmaWVyc0RhdGFbbW9kaWZpZXIubmFtZV0gPSBPYmplY3QuYXNzaWduKHt9LCBtb2RpZmllci5kYXRhKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHN0YXRlLm9yZGVyZWRNb2RpZmllcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgaWYgKHN0YXRlLnJlc2V0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBfc3RhdGUkb3JkZXJlZE1vZGlmaWUgPSBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzW2luZGV4XSxcbiAgICAgICAgICAgICAgZm4gPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUuZm4sXG4gICAgICAgICAgICAgIF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUub3B0aW9ucyxcbiAgICAgICAgICAgICAgX29wdGlvbnMgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUyID09PSB2b2lkIDAgPyB7fSA6IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIsXG4gICAgICAgICAgICAgIG5hbWUgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUubmFtZTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHN0YXRlID0gZm4oe1xuICAgICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IF9vcHRpb25zLFxuICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2VcbiAgICAgICAgICAgIH0pIHx8IHN0YXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEFzeW5jIGFuZCBvcHRpbWlzdGljYWxseSBvcHRpbWl6ZWQgdXBkYXRlIOKAkyBpdCB3aWxsIG5vdCBiZSBleGVjdXRlZCBpZlxuICAgICAgLy8gbm90IG5lY2Vzc2FyeSAoZGVib3VuY2VkIHRvIHJ1biBhdCBtb3N0IG9uY2UtcGVyLXRpY2spXG4gICAgICB1cGRhdGU6IGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgaW5zdGFuY2UuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgICByZXNvbHZlKHN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIWFyZVZhbGlkRWxlbWVudHMocmVmZXJlbmNlLCBwb3BwZXIpKSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgaW5zdGFuY2Uuc2V0T3B0aW9ucyhvcHRpb25zKS50aGVuKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgaWYgKCFpc0Rlc3Ryb3llZCAmJiBvcHRpb25zLm9uRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgb3B0aW9ucy5vbkZpcnN0VXBkYXRlKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9KTsgLy8gTW9kaWZpZXJzIGhhdmUgdGhlIGFiaWxpdHkgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSBiZWZvcmUgdGhlIGZpcnN0XG4gICAgLy8gdXBkYXRlIGN5Y2xlIHJ1bnMuIFRoZXkgd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgdXBkYXRlXG4gICAgLy8gY3ljbGUuIFRoaXMgaXMgdXNlZnVsIHdoZW4gYSBtb2RpZmllciBhZGRzIHNvbWUgcGVyc2lzdGVudCBkYXRhIHRoYXRcbiAgICAvLyBvdGhlciBtb2RpZmllcnMgbmVlZCB0byB1c2UsIGJ1dCB0aGUgbW9kaWZpZXIgaXMgcnVuIGFmdGVyIHRoZSBkZXBlbmRlbnRcbiAgICAvLyBvbmUuXG5cbiAgICBmdW5jdGlvbiBydW5Nb2RpZmllckVmZmVjdHMoKSB7XG4gICAgICBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgdmFyIG5hbWUgPSBfcmVmLm5hbWUsXG4gICAgICAgICAgICBfcmVmJG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zID0gX3JlZiRvcHRpb25zID09PSB2b2lkIDAgPyB7fSA6IF9yZWYkb3B0aW9ucyxcbiAgICAgICAgICAgIGVmZmVjdCA9IF9yZWYuZWZmZWN0O1xuXG4gICAgICAgIGlmICh0eXBlb2YgZWZmZWN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdmFyIGNsZWFudXBGbiA9IGVmZmVjdCh7XG4gICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgaW5zdGFuY2U6IGluc3RhbmNlLFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9uc1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdmFyIG5vb3BGbiA9IGZ1bmN0aW9uIG5vb3BGbigpIHt9O1xuXG4gICAgICAgICAgZWZmZWN0Q2xlYW51cEZucy5wdXNoKGNsZWFudXBGbiB8fCBub29wRm4pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGVhbnVwTW9kaWZpZXJFZmZlY3RzKCkge1xuICAgICAgZWZmZWN0Q2xlYW51cEZucy5mb3JFYWNoKGZ1bmN0aW9uIChmbikge1xuICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgIH0pO1xuICAgICAgZWZmZWN0Q2xlYW51cEZucyA9IFtdO1xuICAgIH1cblxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcbn1cbmV4cG9ydCB2YXIgY3JlYXRlUG9wcGVyID0gLyojX19QVVJFX18qL3BvcHBlckdlbmVyYXRvcigpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCB7IGRldGVjdE92ZXJmbG93IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/createPopper.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/contains.js": /*!***************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/contains.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ contains)\n/* harmony export */ });\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\nfunction contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9jb250YWlucy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQztBQUNoQztBQUNmLDJEQUEyRDs7QUFFM0Q7QUFDQTtBQUNBLElBQUk7QUFDSix1QkFBdUIsNERBQVk7QUFDbkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQSxRQUFRO0FBQ1IsTUFBTTs7O0FBR047QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2NvbnRhaW5zLmpzP2EyMTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGFpbnMocGFyZW50LCBjaGlsZCkge1xuICB2YXIgcm9vdE5vZGUgPSBjaGlsZC5nZXRSb290Tm9kZSAmJiBjaGlsZC5nZXRSb290Tm9kZSgpOyAvLyBGaXJzdCwgYXR0ZW1wdCB3aXRoIGZhc3RlciBuYXRpdmUgbWV0aG9kXG5cbiAgaWYgKHBhcmVudC5jb250YWlucyhjaGlsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyB0aGVuIGZhbGxiYWNrIHRvIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiB3aXRoIFNoYWRvdyBET00gc3VwcG9ydFxuICBlbHNlIGlmIChyb290Tm9kZSAmJiBpc1NoYWRvd1Jvb3Qocm9vdE5vZGUpKSB7XG4gICAgICB2YXIgbmV4dCA9IGNoaWxkO1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChuZXh0ICYmIHBhcmVudC5pc1NhbWVOb2RlKG5leHQpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddOiBuZWVkIGEgYmV0dGVyIHdheSB0byBoYW5kbGUgdGhpcy4uLlxuXG5cbiAgICAgICAgbmV4dCA9IG5leHQucGFyZW50Tm9kZSB8fCBuZXh0Lmhvc3Q7XG4gICAgICB9IHdoaWxlIChuZXh0KTtcbiAgICB9IC8vIEdpdmUgdXAsIHRoZSByZXN1bHQgaXMgZmFsc2VcblxuXG4gIHJldHVybiBmYWxzZTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/contains.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js": /*!****************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getBoundingClientRect)\n/* harmony export */ });\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isLayoutViewport.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js\");\n\n\n\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {\n scaleX = element.offsetWidth > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !(0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkQ7QUFDbEI7QUFDRjtBQUNjO0FBQ3RDO0FBQ2Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLDZEQUFhO0FBQ25DLHVDQUF1QyxxREFBSztBQUM1Qyx3Q0FBd0MscURBQUs7QUFDN0M7O0FBRUEsYUFBYSx5REFBUyxZQUFZLHlEQUFTO0FBQzNDOztBQUVBLDBCQUEwQixnRUFBZ0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzP2ZjYzYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBpc0xheW91dFZpZXdwb3J0IGZyb20gXCIuL2lzTGF5b3V0Vmlld3BvcnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBpbmNsdWRlU2NhbGUsIGlzRml4ZWRTdHJhdGVneSkge1xuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcbiAgICBpbmNsdWRlU2NhbGUgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChpc0ZpeGVkU3RyYXRlZ3kgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWRTdHJhdGVneSA9IGZhbHNlO1xuICB9XG5cbiAgdmFyIGNsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgc2NhbGVYID0gMTtcbiAgdmFyIHNjYWxlWSA9IDE7XG5cbiAgaWYgKGluY2x1ZGVTY2FsZSAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgc2NhbGVYID0gZWxlbWVudC5vZmZzZXRXaWR0aCA+IDAgPyByb3VuZChjbGllbnRSZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMSA6IDE7XG4gICAgc2NhbGVZID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgPiAwID8gcm91bmQoY2xpZW50UmVjdC5oZWlnaHQpIC8gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMSA6IDE7XG4gIH1cblxuICB2YXIgX3JlZiA9IGlzRWxlbWVudChlbGVtZW50KSA/IGdldFdpbmRvdyhlbGVtZW50KSA6IHdpbmRvdyxcbiAgICAgIHZpc3VhbFZpZXdwb3J0ID0gX3JlZi52aXN1YWxWaWV3cG9ydDtcblxuICB2YXIgYWRkVmlzdWFsT2Zmc2V0cyA9ICFpc0xheW91dFZpZXdwb3J0KCkgJiYgaXNGaXhlZFN0cmF0ZWd5O1xuICB2YXIgeCA9IChjbGllbnRSZWN0LmxlZnQgKyAoYWRkVmlzdWFsT2Zmc2V0cyAmJiB2aXN1YWxWaWV3cG9ydCA/IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQgOiAwKSkgLyBzY2FsZVg7XG4gIHZhciB5ID0gKGNsaWVudFJlY3QudG9wICsgKGFkZFZpc3VhbE9mZnNldHMgJiYgdmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3AgOiAwKSkgLyBzY2FsZVk7XG4gIHZhciB3aWR0aCA9IGNsaWVudFJlY3Qud2lkdGggLyBzY2FsZVg7XG4gIHZhciBoZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCAvIHNjYWxlWTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgdG9wOiB5LFxuICAgIHJpZ2h0OiB4ICsgd2lkdGgsXG4gICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxuICAgIGxlZnQ6IHgsXG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getClippingRect)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getViewportRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js\");\n/* harmony import */ var _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getDocumentRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js\");\n/* harmony import */ var _listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./listScrollParents.js */ \"./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\");\n/* harmony import */ var _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./contains.js */ \"./node_modules/@popperjs/core/lib/dom-utils/contains.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/rectToClientRect.js */ \"./node_modules/@popperjs/core/lib/utils/rectToClientRect.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === _enums_js__WEBPACK_IMPORTED_MODULE_1__.viewport ? (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(element, strategy)) : (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = (0,_listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(element).position) >= 0;\n var clipperElement = canEscapeClipping && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isHTMLElement)(element) ? (0,_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(element) : element;\n\n if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) && (0,_contains_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(clippingParent, clipperElement) && (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.top, accRect.top);\n accRect.right = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.right, accRect.right);\n accRect.bottom = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.bottom, accRect.bottom);\n accRect.left = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVDO0FBQ1k7QUFDQTtBQUNJO0FBQ0o7QUFDTTtBQUNKO0FBQ007QUFDSTtBQUNoQjtBQUNWO0FBQ007QUFDaUI7QUFDaEI7O0FBRTVDO0FBQ0EsYUFBYSxxRUFBcUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEIsK0NBQVEsR0FBRyxzRUFBZ0IsQ0FBQywrREFBZSx1QkFBdUIseURBQVMsMEVBQTBFLHNFQUFnQixDQUFDLCtEQUFlLENBQUMsa0VBQWtCO0FBQ3BPLEVBQUU7QUFDRjtBQUNBOzs7QUFHQTtBQUNBLHdCQUF3QixpRUFBaUIsQ0FBQyw2REFBYTtBQUN2RCx3REFBd0QsZ0VBQWdCO0FBQ3hFLDRDQUE0Qyw2REFBYSxZQUFZLGdFQUFlOztBQUVwRixPQUFPLHlEQUFTO0FBQ2hCO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQSxXQUFXLHlEQUFTLG9CQUFvQix5REFBUSxvQ0FBb0MsNERBQVc7QUFDL0YsR0FBRztBQUNILEVBQUU7QUFDRjs7O0FBR2U7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLG9EQUFHO0FBQ3JCLG9CQUFvQixvREFBRztBQUN2QixxQkFBcUIsb0RBQUc7QUFDeEIsbUJBQW1CLG9EQUFHO0FBQ3RCO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENsaXBwaW5nUmVjdC5qcz82ZGJmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZpZXdwb3J0IH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZ2V0Vmlld3BvcnRSZWN0IGZyb20gXCIuL2dldFZpZXdwb3J0UmVjdC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50UmVjdCBmcm9tIFwiLi9nZXREb2N1bWVudFJlY3QuanNcIjtcbmltcG9ydCBsaXN0U2Nyb2xsUGFyZW50cyBmcm9tIFwiLi9saXN0U2Nyb2xsUGFyZW50cy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgeyBpc0VsZW1lbnQsIGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gXCIuL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGNvbnRhaW5zIGZyb20gXCIuL2NvbnRhaW5zLmpzXCI7XG5pbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCByZWN0VG9DbGllbnRSZWN0IGZyb20gXCIuLi91dGlscy9yZWN0VG9DbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgeyBtYXgsIG1pbiB9IGZyb20gXCIuLi91dGlscy9tYXRoLmpzXCI7XG5cbmZ1bmN0aW9uIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIHZhciByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIGZhbHNlLCBzdHJhdGVneSA9PT0gJ2ZpeGVkJyk7XG4gIHJlY3QudG9wID0gcmVjdC50b3AgKyBlbGVtZW50LmNsaWVudFRvcDtcbiAgcmVjdC5sZWZ0ID0gcmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xuICByZWN0LmJvdHRvbSA9IHJlY3QudG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIHJlY3QucmlnaHQgPSByZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudFdpZHRoO1xuICByZWN0LndpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcbiAgcmVjdC5oZWlnaHQgPSBlbGVtZW50LmNsaWVudEhlaWdodDtcbiAgcmVjdC54ID0gcmVjdC5sZWZ0O1xuICByZWN0LnkgPSByZWN0LnRvcDtcbiAgcmV0dXJuIHJlY3Q7XG59XG5cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSkge1xuICByZXR1cm4gY2xpcHBpbmdQYXJlbnQgPT09IHZpZXdwb3J0ID8gcmVjdFRvQ2xpZW50UmVjdChnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpKSA6IGlzRWxlbWVudChjbGlwcGluZ1BhcmVudCkgPyBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ1BhcmVudCwgc3RyYXRlZ3kpIDogcmVjdFRvQ2xpZW50UmVjdChnZXREb2N1bWVudFJlY3QoZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpKSk7XG59IC8vIEEgXCJjbGlwcGluZyBwYXJlbnRcIiBpcyBhbiBvdmVyZmxvd2FibGUgY29udGFpbmVyIHdpdGggdGhlIGNoYXJhY3RlcmlzdGljIG9mXG4vLyBjbGlwcGluZyAob3IgaGlkaW5nKSBvdmVyZmxvd2luZyBlbGVtZW50cyB3aXRoIGEgcG9zaXRpb24gZGlmZmVyZW50IGZyb21cbi8vIGBpbml0aWFsYFxuXG5cbmZ1bmN0aW9uIGdldENsaXBwaW5nUGFyZW50cyhlbGVtZW50KSB7XG4gIHZhciBjbGlwcGluZ1BhcmVudHMgPSBsaXN0U2Nyb2xsUGFyZW50cyhnZXRQYXJlbnROb2RlKGVsZW1lbnQpKTtcbiAgdmFyIGNhbkVzY2FwZUNsaXBwaW5nID0gWydhYnNvbHV0ZScsICdmaXhlZCddLmluZGV4T2YoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbikgPj0gMDtcbiAgdmFyIGNsaXBwZXJFbGVtZW50ID0gY2FuRXNjYXBlQ2xpcHBpbmcgJiYgaXNIVE1MRWxlbWVudChlbGVtZW50KSA/IGdldE9mZnNldFBhcmVudChlbGVtZW50KSA6IGVsZW1lbnQ7XG5cbiAgaWYgKCFpc0VsZW1lbnQoY2xpcHBlckVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mbG93L2lzc3Vlcy8xNDE0XG5cblxuICByZXR1cm4gY2xpcHBpbmdQYXJlbnRzLmZpbHRlcihmdW5jdGlvbiAoY2xpcHBpbmdQYXJlbnQpIHtcbiAgICByZXR1cm4gaXNFbGVtZW50KGNsaXBwaW5nUGFyZW50KSAmJiBjb250YWlucyhjbGlwcGluZ1BhcmVudCwgY2xpcHBlckVsZW1lbnQpICYmIGdldE5vZGVOYW1lKGNsaXBwaW5nUGFyZW50KSAhPT0gJ2JvZHknO1xuICB9KTtcbn0gLy8gR2V0cyB0aGUgbWF4aW11bSBhcmVhIHRoYXQgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiBkdWUgdG8gYW55IG51bWJlciBvZlxuLy8gY2xpcHBpbmcgcGFyZW50c1xuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldENsaXBwaW5nUmVjdChlbGVtZW50LCBib3VuZGFyeSwgcm9vdEJvdW5kYXJ5LCBzdHJhdGVneSkge1xuICB2YXIgbWFpbkNsaXBwaW5nUGFyZW50cyA9IGJvdW5kYXJ5ID09PSAnY2xpcHBpbmdQYXJlbnRzJyA/IGdldENsaXBwaW5nUGFyZW50cyhlbGVtZW50KSA6IFtdLmNvbmNhdChib3VuZGFyeSk7XG4gIHZhciBjbGlwcGluZ1BhcmVudHMgPSBbXS5jb25jYXQobWFpbkNsaXBwaW5nUGFyZW50cywgW3Jvb3RCb3VuZGFyeV0pO1xuICB2YXIgZmlyc3RDbGlwcGluZ1BhcmVudCA9IGNsaXBwaW5nUGFyZW50c1swXTtcbiAgdmFyIGNsaXBwaW5nUmVjdCA9IGNsaXBwaW5nUGFyZW50cy5yZWR1Y2UoZnVuY3Rpb24gKGFjY1JlY3QsIGNsaXBwaW5nUGFyZW50KSB7XG4gICAgdmFyIHJlY3QgPSBnZXRDbGllbnRSZWN0RnJvbU1peGVkVHlwZShlbGVtZW50LCBjbGlwcGluZ1BhcmVudCwgc3RyYXRlZ3kpO1xuICAgIGFjY1JlY3QudG9wID0gbWF4KHJlY3QudG9wLCBhY2NSZWN0LnRvcCk7XG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcbiAgICBhY2NSZWN0LmJvdHRvbSA9IG1pbihyZWN0LmJvdHRvbSwgYWNjUmVjdC5ib3R0b20pO1xuICAgIGFjY1JlY3QubGVmdCA9IG1heChyZWN0LmxlZnQsIGFjY1JlY3QubGVmdCk7XG4gICAgcmV0dXJuIGFjY1JlY3Q7XG4gIH0sIGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGZpcnN0Q2xpcHBpbmdQYXJlbnQsIHN0cmF0ZWd5KSk7XG4gIGNsaXBwaW5nUmVjdC53aWR0aCA9IGNsaXBwaW5nUmVjdC5yaWdodCAtIGNsaXBwaW5nUmVjdC5sZWZ0O1xuICBjbGlwcGluZ1JlY3QuaGVpZ2h0ID0gY2xpcHBpbmdSZWN0LmJvdHRvbSAtIGNsaXBwaW5nUmVjdC50b3A7XG4gIGNsaXBwaW5nUmVjdC54ID0gY2xpcHBpbmdSZWN0LmxlZnQ7XG4gIGNsaXBwaW5nUmVjdC55ID0gY2xpcHBpbmdSZWN0LnRvcDtcbiAgcmV0dXJuIGNsaXBwaW5nUmVjdDtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getCompositeRect)\n/* harmony export */ });\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getNodeScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n\n\n\n\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.width) / element.offsetWidth || 1;\n var scaleY = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent);\n var offsetParentIsScaled = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent) && isElementScaled(offsetParent);\n var documentElement = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(offsetParent);\n var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(documentElement)) {\n scroll = (0,_getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(offsetParent);\n }\n\n if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent)) {\n offsets = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUErRDtBQUNoQjtBQUNKO0FBQ0s7QUFDVztBQUNGO0FBQ1I7QUFDUjs7QUFFekM7QUFDQTtBQUNBLGVBQWUscURBQUs7QUFDcEIsZUFBZSxxREFBSztBQUNwQjtBQUNBLEVBQUU7QUFDRjs7O0FBR2U7QUFDZjtBQUNBO0FBQ0E7O0FBRUEsZ0NBQWdDLDZEQUFhO0FBQzdDLDZCQUE2Qiw2REFBYTtBQUMxQyx3QkFBd0Isa0VBQWtCO0FBQzFDLGFBQWEscUVBQXFCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLDJEQUFXO0FBQ25CLElBQUksOERBQWM7QUFDbEIsZUFBZSw2REFBYTtBQUM1Qjs7QUFFQSxRQUFRLDZEQUFhO0FBQ3JCLGdCQUFnQixxRUFBcUI7QUFDckM7QUFDQTtBQUNBLE1BQU07QUFDTixrQkFBa0IsbUVBQW1CO0FBQ3JDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzPzZlM2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXROb2RlU2Nyb2xsIGZyb20gXCIuL2dldE5vZGVTY3JvbGwuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGxCYXJYIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbEJhclguanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgaXNTY3JvbGxQYXJlbnQgZnJvbSBcIi4vaXNTY3JvbGxQYXJlbnQuanNcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gaXNFbGVtZW50U2NhbGVkKGVsZW1lbnQpIHtcbiAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgc2NhbGVYID0gcm91bmQocmVjdC53aWR0aCkgLyBlbGVtZW50Lm9mZnNldFdpZHRoIHx8IDE7XG4gIHZhciBzY2FsZVkgPSByb3VuZChyZWN0LmhlaWdodCkgLyBlbGVtZW50Lm9mZnNldEhlaWdodCB8fCAxO1xuICByZXR1cm4gc2NhbGVYICE9PSAxIHx8IHNjYWxlWSAhPT0gMTtcbn0gLy8gUmV0dXJucyB0aGUgY29tcG9zaXRlIHJlY3Qgb2YgYW4gZWxlbWVudCByZWxhdGl2ZSB0byBpdHMgb2Zmc2V0UGFyZW50LlxuLy8gQ29tcG9zaXRlIG1lYW5zIGl0IHRha2VzIGludG8gYWNjb3VudCB0cmFuc2Zvcm1zIGFzIHdlbGwgYXMgbGF5b3V0LlxuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldENvbXBvc2l0ZVJlY3QoZWxlbWVudE9yVmlydHVhbEVsZW1lbnQsIG9mZnNldFBhcmVudCwgaXNGaXhlZCkge1xuICBpZiAoaXNGaXhlZCA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZCA9IGZhbHNlO1xuICB9XG5cbiAgdmFyIGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICB2YXIgb2Zmc2V0UGFyZW50SXNTY2FsZWQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgaXNFbGVtZW50U2NhbGVkKG9mZnNldFBhcmVudCk7XG4gIHZhciBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgdmFyIHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudE9yVmlydHVhbEVsZW1lbnQsIG9mZnNldFBhcmVudElzU2NhbGVkLCBpc0ZpeGVkKTtcbiAgdmFyIHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICB2YXIgb2Zmc2V0cyA9IHtcbiAgICB4OiAwLFxuICAgIHk6IDBcbiAgfTtcblxuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCAvLyBodHRwczovL2dpdGh1Yi5jb20vcG9wcGVyanMvcG9wcGVyLWNvcmUvaXNzdWVzLzEwNzhcbiAgICBpc1Njcm9sbFBhcmVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuXG4gICAgaWYgKGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgb2Zmc2V0cyA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQsIHRydWUpO1xuICAgICAgb2Zmc2V0cy54ICs9IG9mZnNldFBhcmVudC5jbGllbnRMZWZ0O1xuICAgICAgb2Zmc2V0cy55ICs9IG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfSBlbHNlIGlmIChkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIG9mZnNldHMueCA9IGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IHJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gb2Zmc2V0cy54LFxuICAgIHk6IHJlY3QudG9wICsgc2Nyb2xsLnNjcm9sbFRvcCAtIG9mZnNldHMueSxcbiAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0XG4gIH07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getComputedStyle)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n\nfunction getComputedStyle(element) {\n return (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element).getComputedStyle(element);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wdXRlZFN0eWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXVDO0FBQ3hCO0FBQ2YsU0FBUyx5REFBUztBQUNsQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENvbXB1dGVkU3R5bGUuanM/MDlmYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js": /*!*************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getDocumentElement)\n/* harmony export */ });\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\nfunction getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNEM7QUFDN0I7QUFDZjtBQUNBLFdBQVcseURBQVM7QUFDcEI7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qcz8zYThjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSB7XG4gIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgcmV0dXJuICgoaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gIGVsZW1lbnQuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkuZG9jdW1lbnRFbGVtZW50O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getDocumentRect)\n/* harmony export */ });\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\");\n/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindowScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element);\n var winScroll = (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(element);\n var y = -winScroll.scrollTop;\n\n if ((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(body || html).direction === 'rtl') {\n x += (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXREb2N1bWVudFJlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXlEO0FBQ0o7QUFDTTtBQUNSO0FBQ1osQ0FBQztBQUN4Qzs7QUFFZTtBQUNmOztBQUVBLGFBQWEsa0VBQWtCO0FBQy9CLGtCQUFrQiwrREFBZTtBQUNqQztBQUNBLGNBQWMsbURBQUc7QUFDakIsZUFBZSxtREFBRztBQUNsQixrQ0FBa0MsbUVBQW1CO0FBQ3JEOztBQUVBLE1BQU0sZ0VBQWdCO0FBQ3RCLFNBQVMsbURBQUc7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldERvY3VtZW50UmVjdC5qcz9iZTA3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsQmFyWCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuaW1wb3J0IHsgbWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjsgLy8gR2V0cyB0aGUgZW50aXJlIHNpemUgb2YgdGhlIHNjcm9sbGFibGUgZG9jdW1lbnQgYXJlYSwgZXZlbiBleHRlbmRpbmcgb3V0c2lkZVxuLy8gb2YgdGhlIGA8aHRtbD5gIGFuZCBgPGJvZHk+YCByZWN0IGJvdW5kcyBpZiBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICB2YXIgX2VsZW1lbnQkb3duZXJEb2N1bWVuO1xuXG4gIHZhciBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICB2YXIgd2luU2Nyb2xsID0gZ2V0V2luZG93U2Nyb2xsKGVsZW1lbnQpO1xuICB2YXIgYm9keSA9IChfZWxlbWVudCRvd25lckRvY3VtZW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZWxlbWVudCRvd25lckRvY3VtZW4uYm9keTtcbiAgdmFyIHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkgPyBib2R5LnNjcm9sbFdpZHRoIDogMCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKTtcbiAgdmFyIGhlaWdodCA9IG1heChodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGJvZHkgPyBib2R5LnNjcm9sbEhlaWdodCA6IDAsIGJvZHkgPyBib2R5LmNsaWVudEhlaWdodCA6IDApO1xuICB2YXIgeCA9IC13aW5TY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIHZhciB5ID0gLXdpblNjcm9sbC5zY3JvbGxUb3A7XG5cbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSB8fCBodG1sKS5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgeCArPSBtYXgoaHRtbC5jbGllbnRXaWR0aCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKSAtIHdpZHRoO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js": /*!***************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getHTMLElementScroll)\n/* harmony export */ });\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRIVE1MRWxlbWVudFNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0SFRNTEVsZW1lbnRTY3JvbGwuanM/NTUxNSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRIVE1MRWxlbWVudFNjcm9sbChlbGVtZW50KSB7XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getLayoutRect)\n/* harmony export */ });\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nfunction getLayoutRect(element) {\n var clientRect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQStELENBQUM7QUFDaEU7O0FBRWU7QUFDZixtQkFBbUIscUVBQXFCLFdBQVc7QUFDbkQ7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qcz8wYzRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7IC8vIFJldHVybnMgdGhlIGxheW91dCByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC4gTGF5b3V0XG4vLyBtZWFucyBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRyYW5zZm9ybXMuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldExheW91dFJlY3QoZWxlbWVudCkge1xuICB2YXIgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTsgLy8gVXNlIHRoZSBjbGllbnRSZWN0IHNpemVzIGlmIGl0J3Mgbm90IGJlZW4gdHJhbnNmb3JtZWQuXG4gIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTIyM1xuXG4gIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICBpZiAoTWF0aC5hYnMoY2xpZW50UmVjdC53aWR0aCAtIHdpZHRoKSA8PSAxKSB7XG4gICAgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKGNsaWVudFJlY3QuaGVpZ2h0IC0gaGVpZ2h0KSA8PSAxKSB7XG4gICAgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IGVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICB5OiBlbGVtZW50Lm9mZnNldFRvcCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js": /*!******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getNodeName)\n/* harmony export */ });\nfunction getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlTmFtZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Tm9kZU5hbWUuanM/NzdjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXROb2RlTmFtZShlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50ID8gKGVsZW1lbnQubm9kZU5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getNodeScroll)\n/* harmony export */ });\n/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\");\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getHTMLElementScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js\");\n\n\n\n\nfunction getNodeScroll(node) {\n if (node === (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node) || !(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node)) {\n return (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(node);\n } else {\n return (0,_getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(node);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlU2Nyb2xsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW1EO0FBQ1o7QUFDUztBQUNhO0FBQzlDO0FBQ2YsZUFBZSx5REFBUyxXQUFXLDZEQUFhO0FBQ2hELFdBQVcsK0RBQWU7QUFDMUIsSUFBSTtBQUNKLFdBQVcsb0VBQW9CO0FBQy9CO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlU2Nyb2xsLmpzPzI4MjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFdpbmRvd1Njcm9sbCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGwuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldEhUTUxFbGVtZW50U2Nyb2xsIGZyb20gXCIuL2dldEhUTUxFbGVtZW50U2Nyb2xsLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXROb2RlU2Nyb2xsKG5vZGUpIHtcbiAgaWYgKG5vZGUgPT09IGdldFdpbmRvdyhub2RlKSB8fCAhaXNIVE1MRWxlbWVudChub2RlKSkge1xuICAgIHJldHVybiBnZXRXaW5kb3dTY3JvbGwobm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGdldEhUTUxFbGVtZW50U2Nyb2xsKG5vZGUpO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getOffsetParent)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _isTableElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isTableElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js\");\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/userAgent.js */ \"./node_modules/@popperjs/core/lib/utils/userAgent.js\");\n\n\n\n\n\n\n\n\nfunction getTrueOffsetParent(element) {\n if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || // https://github.com/popperjs/popper-core/issues/837\n (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])());\n var isIE = /Trident/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])());\n\n if (isIE && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = (0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(element);\n\n if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(currentNode) && ['html', 'body'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(currentNode)) < 0) {\n var css = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n var window = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && (0,_isTableElement_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(offsetParent) && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(offsetParent) === 'html' || (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(offsetParent) === 'body' && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBdUM7QUFDSTtBQUNVO0FBQ1M7QUFDYjtBQUNGO0FBQ0M7O0FBRWhEO0FBQ0EsT0FBTyw2REFBYTtBQUNwQixFQUFFLGdFQUFnQjtBQUNsQjtBQUNBOztBQUVBO0FBQ0EsRUFBRTtBQUNGOzs7QUFHQTtBQUNBLGtDQUFrQywrREFBVztBQUM3Qyw2QkFBNkIsK0RBQVc7O0FBRXhDLGNBQWMsNkRBQWE7QUFDM0I7QUFDQSxxQkFBcUIsZ0VBQWdCOztBQUVyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsNkRBQWE7O0FBRWpDLE1BQU0sNERBQVk7QUFDbEI7QUFDQTs7QUFFQSxTQUFTLDZEQUFhLDBDQUEwQywyREFBVztBQUMzRSxjQUFjLGdFQUFnQixlQUFlO0FBQzdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFO0FBQ0Y7OztBQUdlO0FBQ2YsZUFBZSx5REFBUztBQUN4Qjs7QUFFQSx5QkFBeUIsOERBQWMsa0JBQWtCLGdFQUFnQjtBQUN6RTtBQUNBOztBQUVBLHVCQUF1QiwyREFBVyw2QkFBNkIsMkRBQVcsNkJBQTZCLGdFQUFnQjtBQUN2SDtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanM/M2MwMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50LCBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgaXNUYWJsZUVsZW1lbnQgZnJvbSBcIi4vaXNUYWJsZUVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBnZXRVQVN0cmluZyBmcm9tIFwiLi4vdXRpbHMvdXNlckFnZW50LmpzXCI7XG5cbmZ1bmN0aW9uIGdldFRydWVPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BvcHBlcmpzL3BvcHBlci1jb3JlL2lzc3Vlcy84MzdcbiAgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0UGFyZW50O1xufSAvLyBgLm9mZnNldFBhcmVudGAgcmVwb3J0cyBgbnVsbGAgZm9yIGZpeGVkIGVsZW1lbnRzLCB3aGlsZSBhYnNvbHV0ZSBlbGVtZW50c1xuLy8gcmV0dXJuIHRoZSBjb250YWluaW5nIGJsb2NrXG5cblxuZnVuY3Rpb24gZ2V0Q29udGFpbmluZ0Jsb2NrKGVsZW1lbnQpIHtcbiAgdmFyIGlzRmlyZWZveCA9IC9maXJlZm94L2kudGVzdChnZXRVQVN0cmluZygpKTtcbiAgdmFyIGlzSUUgPSAvVHJpZGVudC9pLnRlc3QoZ2V0VUFTdHJpbmcoKSk7XG5cbiAgaWYgKGlzSUUgJiYgaXNIVE1MRWxlbWVudChlbGVtZW50KSkge1xuICAgIC8vIEluIElFIDksIDEwIGFuZCAxMSBmaXhlZCBlbGVtZW50cyBjb250YWluaW5nIGJsb2NrIGlzIGFsd2F5cyBlc3RhYmxpc2hlZCBieSB0aGUgdmlld3BvcnRcbiAgICB2YXIgZWxlbWVudENzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG5cbiAgICBpZiAoZWxlbWVudENzcy5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgdmFyIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcblxuICBpZiAoaXNTaGFkb3dSb290KGN1cnJlbnROb2RlKSkge1xuICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUuaG9zdDtcbiAgfVxuXG4gIHdoaWxlIChpc0hUTUxFbGVtZW50KGN1cnJlbnROb2RlKSAmJiBbJ2h0bWwnLCAnYm9keSddLmluZGV4T2YoZ2V0Tm9kZU5hbWUoY3VycmVudE5vZGUpKSA8IDApIHtcbiAgICB2YXIgY3NzID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50Tm9kZSk7IC8vIFRoaXMgaXMgbm9uLWV4aGF1c3RpdmUgYnV0IGNvdmVycyB0aGUgbW9zdCBjb21tb24gQ1NTIHByb3BlcnRpZXMgdGhhdFxuICAgIC8vIGNyZWF0ZSBhIGNvbnRhaW5pbmcgYmxvY2suXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcblxuICAgIGlmIChjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgY3NzLmNvbnRhaW4gPT09ICdwYWludCcgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnXS5pbmRleE9mKGNzcy53aWxsQ2hhbmdlKSAhPT0gLTEgfHwgaXNGaXJlZm94ICYmIGNzcy53aWxsQ2hhbmdlID09PSAnZmlsdGVyJyB8fCBpc0ZpcmVmb3ggJiYgY3NzLmZpbHRlciAmJiBjc3MuZmlsdGVyICE9PSAnbm9uZScpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5wYXJlbnROb2RlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufSAvLyBHZXRzIHRoZSBjbG9zZXN0IGFuY2VzdG9yIHBvc2l0aW9uZWQgZWxlbWVudC4gSGFuZGxlcyBzb21lIGVkZ2UgY2FzZXMsXG4vLyBzdWNoIGFzIHRhYmxlIGFuY2VzdG9ycyBhbmQgY3Jvc3MgYnJvd3NlciBidWdzLlxuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50KSB7XG4gIHZhciB3aW5kb3cgPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQpO1xuXG4gIHdoaWxlIChvZmZzZXRQYXJlbnQgJiYgaXNUYWJsZUVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBnZXRDb21wdXRlZFN0eWxlKG9mZnNldFBhcmVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnKSB7XG4gICAgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChvZmZzZXRQYXJlbnQpO1xuICB9XG5cbiAgaWYgKG9mZnNldFBhcmVudCAmJiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSA9PT0gJ2h0bWwnIHx8IGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdib2R5JyAmJiBnZXRDb21wdXRlZFN0eWxlKG9mZnNldFBhcmVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnKSkge1xuICAgIHJldHVybiB3aW5kb3c7XG4gIH1cblxuICByZXR1cm4gb2Zmc2V0UGFyZW50IHx8IGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB8fCB3aW5kb3c7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getParentNode)\n/* harmony export */ });\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n\n\nfunction getParentNode(element) {\n if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isShadowRoot)(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(element) // fallback\n\n );\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRQYXJlbnROb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMkM7QUFDYztBQUNWO0FBQ2hDO0FBQ2YsTUFBTSwyREFBVztBQUNqQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDREQUFZO0FBQ2hCO0FBQ0EsSUFBSSxrRUFBa0I7O0FBRXRCO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRQYXJlbnROb2RlLmpzPzVjYmYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSB7XG4gIGlmIChnZXROb2RlTmFtZShlbGVtZW50KSA9PT0gJ2h0bWwnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gKC8vIHRoaXMgaXMgYSBxdWlja2VyIChidXQgbGVzcyB0eXBlIHNhZmUpIHdheSB0byBzYXZlIHF1aXRlIHNvbWUgYnl0ZXMgZnJvbSB0aGUgYnVuZGxlXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuICAgIC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgIGVsZW1lbnQuYXNzaWduZWRTbG90IHx8IC8vIHN0ZXAgaW50byB0aGUgc2hhZG93IERPTSBvZiB0aGUgcGFyZW50IG9mIGEgc2xvdHRlZCBub2RlXG4gICAgZWxlbWVudC5wYXJlbnROb2RlIHx8ICggLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWRcbiAgICBpc1NoYWRvd1Jvb3QoZWxlbWVudCkgPyBlbGVtZW50Lmhvc3QgOiBudWxsKSB8fCAvLyBTaGFkb3dSb290IGRldGVjdGVkXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtY2FsbF06IEhUTUxFbGVtZW50IGlzIGEgTm9kZVxuICAgIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSAvLyBmYWxsYmFja1xuXG4gICk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getScrollParent)\n/* harmony export */ });\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\");\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n\n\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node) && (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(node)) {\n return node;\n }\n\n return getScrollParent((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(node));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRTY3JvbGxQYXJlbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBK0M7QUFDRTtBQUNOO0FBQ0s7QUFDakM7QUFDZiw0Q0FBNEMsMkRBQVc7QUFDdkQ7QUFDQTtBQUNBOztBQUVBLE1BQU0sNkRBQWEsVUFBVSw4REFBYztBQUMzQztBQUNBOztBQUVBLHlCQUF5Qiw2REFBYTtBQUN0QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFNjcm9sbFBhcmVudC5qcz8xNzI0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KG5vZGUpIHtcbiAgaWYgKFsnaHRtbCcsICdib2R5JywgJyNkb2N1bWVudCddLmluZGV4T2YoZ2V0Tm9kZU5hbWUobm9kZSkpID49IDApIHtcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dOiBhc3N1bWUgYm9keSBpcyBhbHdheXMgYXZhaWxhYmxlXG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudC5ib2R5O1xuICB9XG5cbiAgaWYgKGlzSFRNTEVsZW1lbnQobm9kZSkgJiYgaXNTY3JvbGxQYXJlbnQobm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHJldHVybiBnZXRTY3JvbGxQYXJlbnQoZ2V0UGFyZW50Tm9kZShub2RlKSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getViewportRect)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\");\n/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isLayoutViewport.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js\");\n\n\n\n\nfunction getViewportRect(element, strategy) {\n var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element);\n var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = (0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(element),\n y: y\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRWaWV3cG9ydFJlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBdUM7QUFDa0I7QUFDRTtBQUNOO0FBQ3RDO0FBQ2YsWUFBWSx5REFBUztBQUNyQixhQUFhLGtFQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixnRUFBZ0I7O0FBRXpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxtRUFBbUI7QUFDOUI7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Vmlld3BvcnRSZWN0LmpzPzljYzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsQmFyWCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzXCI7XG5pbXBvcnQgaXNMYXlvdXRWaWV3cG9ydCBmcm9tIFwiLi9pc0xheW91dFZpZXdwb3J0LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgdmFyIHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgdmFyIGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIHZhciB2aXN1YWxWaWV3cG9ydCA9IHdpbi52aXN1YWxWaWV3cG9ydDtcbiAgdmFyIHdpZHRoID0gaHRtbC5jbGllbnRXaWR0aDtcbiAgdmFyIGhlaWdodCA9IGh0bWwuY2xpZW50SGVpZ2h0O1xuICB2YXIgeCA9IDA7XG4gIHZhciB5ID0gMDtcblxuICBpZiAodmlzdWFsVmlld3BvcnQpIHtcbiAgICB3aWR0aCA9IHZpc3VhbFZpZXdwb3J0LndpZHRoO1xuICAgIGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0LmhlaWdodDtcbiAgICB2YXIgbGF5b3V0Vmlld3BvcnQgPSBpc0xheW91dFZpZXdwb3J0KCk7XG5cbiAgICBpZiAobGF5b3V0Vmlld3BvcnQgfHwgIWxheW91dFZpZXdwb3J0ICYmIHN0cmF0ZWd5ID09PSAnZml4ZWQnKSB7XG4gICAgICB4ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdDtcbiAgICAgIHkgPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3A7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgeDogeCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCksXG4gICAgeTogeVxuICB9O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js": /*!****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getWindow)\n/* harmony export */ });\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3cuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3cuanM/NjE5NiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuXG4gIGlmIChub2RlLnRvU3RyaW5nKCkgIT09ICdbb2JqZWN0IFdpbmRvd10nKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQ7XG4gICAgcmV0dXJuIG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdyA6IHdpbmRvdztcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getWindowScroll)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n\nfunction getWindowScroll(node) {\n var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUM7QUFDeEI7QUFDZixZQUFZLHlEQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0V2luZG93U2Nyb2xsLmpzPzkyNTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbChub2RlKSB7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3cobm9kZSk7XG4gIHZhciBzY3JvbGxMZWZ0ID0gd2luLnBhZ2VYT2Zmc2V0O1xuICB2YXIgc2Nyb2xsVG9wID0gd2luLnBhZ2VZT2Zmc2V0O1xuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IHNjcm9sbExlZnQsXG4gICAgc2Nyb2xsVG9wOiBzY3JvbGxUb3BcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js": /*!**************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getWindowScrollBarX)\n/* harmony export */ });\n/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\");\n\n\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element)).left + (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(element).scrollLeft;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBK0Q7QUFDTjtBQUNOO0FBQ3BDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHFFQUFxQixDQUFDLGtFQUFrQixrQkFBa0IsK0RBQWU7QUFDbEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzP2UzZDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSB7XG4gIC8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbiAgLy8gaW5jb3JyZWN0IGZvciBSVEwuXG4gIC8vIFBvcHBlciAxIGlzIGJyb2tlbiBpbiB0aGlzIGNhc2UgYW5kIG5ldmVyIGhhZCBhIGJ1ZyByZXBvcnQgc28gbGV0J3MgYXNzdW1lXG4gIC8vIGl0J3Mgbm90IGFuIGlzc3VlLiBJIGRvbid0IHRoaW5rIGFueW9uZSBldmVyIHNwZWNpZmllcyB3aWR0aCBvbiA8aHRtbD5cbiAgLy8gYW55d2F5LlxuICAvLyBCcm93c2VycyB3aGVyZSB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBjYXVzZSBhbiBpc3N1ZSByZXBvcnQgYDBgIGZvclxuICAvLyB0aGlzIChlLmcuIEVkZ2UgMjAxOSwgSUUxMSwgU2FmYXJpKVxuICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGdldFdpbmRvd1Njcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isElement: () => (/* binding */ isElement),\n/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement),\n/* harmony export */ isShadowRoot: () => (/* binding */ isShadowRoot)\n/* harmony export */ });\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n\n\nfunction isElement(node) {\n var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pbnN0YW5jZU9mLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBdUM7O0FBRXZDO0FBQ0EsbUJBQW1CLHlEQUFTO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIseURBQVM7QUFDNUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1CQUFtQix5REFBUztBQUM1QjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qcz9hOTRlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5cbmZ1bmN0aW9uIGlzRWxlbWVudChub2RlKSB7XG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLkVsZW1lbnQ7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgT3duRWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaXNIVE1MRWxlbWVudChub2RlKSB7XG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLkhUTUxFbGVtZW50O1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIE93bkVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50O1xufVxuXG5mdW5jdGlvbiBpc1NoYWRvd1Jvb3Qobm9kZSkge1xuICAvLyBJRSAxMSBoYXMgbm8gU2hhZG93Um9vdFxuICBpZiAodHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIE93bkVsZW1lbnQgPSBnZXRXaW5kb3cobm9kZSkuU2hhZG93Um9vdDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBTaGFkb3dSb290O1xufVxuXG5leHBvcnQgeyBpc0VsZW1lbnQsIGlzSFRNTEVsZW1lbnQsIGlzU2hhZG93Um9vdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isLayoutViewport)\n/* harmony export */ });\n/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/userAgent.js */ \"./node_modules/@popperjs/core/lib/utils/userAgent.js\");\n\nfunction isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])());\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc0xheW91dFZpZXdwb3J0LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWdEO0FBQ2pDO0FBQ2YsZ0RBQWdELCtEQUFXO0FBQzNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvaXNMYXlvdXRWaWV3cG9ydC5qcz8xMGExIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRVQVN0cmluZyBmcm9tIFwiLi4vdXRpbHMvdXNlckFnZW50LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0xheW91dFZpZXdwb3J0KCkge1xuICByZXR1cm4gIS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QoZ2V0VUFTdHJpbmcoKSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isScrollParent)\n/* harmony export */ });\n/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1Njcm9sbFBhcmVudC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFxRDtBQUN0QztBQUNmO0FBQ0EsMEJBQTBCLGdFQUFnQjtBQUMxQztBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzU2Nyb2xsUGFyZW50LmpzPzQ2MDIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNTY3JvbGxQYXJlbnQoZWxlbWVudCkge1xuICAvLyBGaXJlZm94IHdhbnRzIHVzIHRvIGNoZWNrIGAteGAgYW5kIGAteWAgdmFyaWF0aW9ucyBhcyB3ZWxsXG4gIHZhciBfZ2V0Q29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCksXG4gICAgICBvdmVyZmxvdyA9IF9nZXRDb21wdXRlZFN0eWxlLm92ZXJmbG93LFxuICAgICAgb3ZlcmZsb3dYID0gX2dldENvbXB1dGVkU3R5bGUub3ZlcmZsb3dYLFxuICAgICAgb3ZlcmZsb3dZID0gX2dldENvbXB1dGVkU3R5bGUub3ZlcmZsb3dZO1xuXG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW4vLnRlc3Qob3ZlcmZsb3cgKyBvdmVyZmxvd1kgKyBvdmVyZmxvd1gpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isTableElement)\n/* harmony export */ });\n/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element)) >= 0;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1RhYmxlRWxlbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEyQztBQUM1QjtBQUNmLHVDQUF1QywyREFBVztBQUNsRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzVGFibGVFbGVtZW50LmpzPzU2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5kZXhPZihnZXROb2RlTmFtZShlbGVtZW50KSkgPj0gMDtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js": /*!************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ listScrollParents)\n/* harmony export */ });\n/* harmony import */ var _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js\");\n/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\");\n/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\");\n\n\n\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nfunction listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = (0,_getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(target)));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9saXN0U2Nyb2xsUGFyZW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFtRDtBQUNKO0FBQ1I7QUFDVTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLCtEQUFlO0FBQ3BDO0FBQ0EsWUFBWSx5REFBUztBQUNyQiwrREFBK0QsOERBQWM7QUFDN0U7QUFDQTtBQUNBLHVDQUF1Qyw2REFBYTtBQUNwRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2xpc3RTY3JvbGxQYXJlbnRzLmpzP2Q2NmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFNjcm9sbFBhcmVudCBmcm9tIFwiLi9nZXRTY3JvbGxQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgaXNTY3JvbGxQYXJlbnQgZnJvbSBcIi4vaXNTY3JvbGxQYXJlbnQuanNcIjtcbi8qXG5naXZlbiBhIERPTSBlbGVtZW50LCByZXR1cm4gdGhlIGxpc3Qgb2YgYWxsIHNjcm9sbCBwYXJlbnRzLCB1cCB0aGUgbGlzdCBvZiBhbmNlc29yc1xudW50aWwgd2UgZ2V0IHRvIHRoZSB0b3Agd2luZG93IG9iamVjdC4gVGhpcyBsaXN0IGlzIHdoYXQgd2UgYXR0YWNoIHNjcm9sbCBsaXN0ZW5lcnNcbnRvLCBiZWNhdXNlIGlmIGFueSBvZiB0aGVzZSBwYXJlbnQgZWxlbWVudHMgc2Nyb2xsLCB3ZSdsbCBuZWVkIHRvIHJlLWNhbGN1bGF0ZSB0aGVcbnJlZmVyZW5jZSBlbGVtZW50J3MgcG9zaXRpb24uXG4qL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaXN0U2Nyb2xsUGFyZW50cyhlbGVtZW50LCBsaXN0KSB7XG4gIHZhciBfZWxlbWVudCRvd25lckRvY3VtZW47XG5cbiAgaWYgKGxpc3QgPT09IHZvaWQgMCkge1xuICAgIGxpc3QgPSBbXTtcbiAgfVxuXG4gIHZhciBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCk7XG4gIHZhciBpc0JvZHkgPSBzY3JvbGxQYXJlbnQgPT09ICgoX2VsZW1lbnQkb3duZXJEb2N1bWVuID0gZWxlbWVudC5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2VsZW1lbnQkb3duZXJEb2N1bWVuLmJvZHkpO1xuICB2YXIgd2luID0gZ2V0V2luZG93KHNjcm9sbFBhcmVudCk7XG4gIHZhciB0YXJnZXQgPSBpc0JvZHkgPyBbd2luXS5jb25jYXQod2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc1Njcm9sbFBhcmVudChzY3JvbGxQYXJlbnQpID8gc2Nyb2xsUGFyZW50IDogW10pIDogc2Nyb2xsUGFyZW50O1xuICB2YXIgdXBkYXRlZExpc3QgPSBsaXN0LmNvbmNhdCh0YXJnZXQpO1xuICByZXR1cm4gaXNCb2R5ID8gdXBkYXRlZExpc3QgOiAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogaXNCb2R5IHRlbGxzIHVzIHRhcmdldCB3aWxsIGJlIGFuIEhUTUxFbGVtZW50IGhlcmVcbiAgdXBkYXRlZExpc3QuY29uY2F0KGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUodGFyZ2V0KSkpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/enums.js": /*!**************************************************!*\ !*** ./node_modules/@popperjs/core/lib/enums.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ afterMain: () => (/* binding */ afterMain),\n/* harmony export */ afterRead: () => (/* binding */ afterRead),\n/* harmony export */ afterWrite: () => (/* binding */ afterWrite),\n/* harmony export */ auto: () => (/* binding */ auto),\n/* harmony export */ basePlacements: () => (/* binding */ basePlacements),\n/* harmony export */ beforeMain: () => (/* binding */ beforeMain),\n/* harmony export */ beforeRead: () => (/* binding */ beforeRead),\n/* harmony export */ beforeWrite: () => (/* binding */ beforeWrite),\n/* harmony export */ bottom: () => (/* binding */ bottom),\n/* harmony export */ clippingParents: () => (/* binding */ clippingParents),\n/* harmony export */ end: () => (/* binding */ end),\n/* harmony export */ left: () => (/* binding */ left),\n/* harmony export */ main: () => (/* binding */ main),\n/* harmony export */ modifierPhases: () => (/* binding */ modifierPhases),\n/* harmony export */ placements: () => (/* binding */ placements),\n/* harmony export */ popper: () => (/* binding */ popper),\n/* harmony export */ read: () => (/* binding */ read),\n/* harmony export */ reference: () => (/* binding */ reference),\n/* harmony export */ right: () => (/* binding */ right),\n/* harmony export */ start: () => (/* binding */ start),\n/* harmony export */ top: () => (/* binding */ top),\n/* harmony export */ variationPlacements: () => (/* binding */ variationPlacements),\n/* harmony export */ viewport: () => (/* binding */ viewport),\n/* harmony export */ write: () => (/* binding */ write)\n/* harmony export */ });\nvar top = 'top';\nvar bottom = 'bottom';\nvar right = 'right';\nvar left = 'left';\nvar auto = 'auto';\nvar basePlacements = [top, bottom, right, left];\nvar start = 'start';\nvar end = 'end';\nvar clippingParents = 'clippingParents';\nvar viewport = 'viewport';\nvar popper = 'popper';\nvar reference = 'reference';\nvar variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nvar placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nvar beforeRead = 'beforeRead';\nvar read = 'read';\nvar afterRead = 'afterRead'; // pure-logic modifiers\n\nvar beforeMain = 'beforeMain';\nvar main = 'main';\nvar afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nvar beforeWrite = 'beforeWrite';\nvar write = 'write';\nvar afterWrite = 'afterWrite';\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2VudW1zLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ1A7QUFDQSxDQUFDO0FBQ007QUFDUDtBQUNBLENBQUMsT0FBTzs7QUFFRDtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZW51bXMuanM/MzU5NyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHRvcCA9ICd0b3AnO1xuZXhwb3J0IHZhciBib3R0b20gPSAnYm90dG9tJztcbmV4cG9ydCB2YXIgcmlnaHQgPSAncmlnaHQnO1xuZXhwb3J0IHZhciBsZWZ0ID0gJ2xlZnQnO1xuZXhwb3J0IHZhciBhdXRvID0gJ2F1dG8nO1xuZXhwb3J0IHZhciBiYXNlUGxhY2VtZW50cyA9IFt0b3AsIGJvdHRvbSwgcmlnaHQsIGxlZnRdO1xuZXhwb3J0IHZhciBzdGFydCA9ICdzdGFydCc7XG5leHBvcnQgdmFyIGVuZCA9ICdlbmQnO1xuZXhwb3J0IHZhciBjbGlwcGluZ1BhcmVudHMgPSAnY2xpcHBpbmdQYXJlbnRzJztcbmV4cG9ydCB2YXIgdmlld3BvcnQgPSAndmlld3BvcnQnO1xuZXhwb3J0IHZhciBwb3BwZXIgPSAncG9wcGVyJztcbmV4cG9ydCB2YXIgcmVmZXJlbmNlID0gJ3JlZmVyZW5jZSc7XG5leHBvcnQgdmFyIHZhcmlhdGlvblBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovYmFzZVBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50ICsgXCItXCIgKyBzdGFydCwgcGxhY2VtZW50ICsgXCItXCIgKyBlbmRdKTtcbn0sIFtdKTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9bXS5jb25jYXQoYmFzZVBsYWNlbWVudHMsIFthdXRvXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50LCBwbGFjZW1lbnQgKyBcIi1cIiArIHN0YXJ0LCBwbGFjZW1lbnQgKyBcIi1cIiArIGVuZF0pO1xufSwgW10pOyAvLyBtb2RpZmllcnMgdGhhdCBuZWVkIHRvIHJlYWQgdGhlIERPTVxuXG5leHBvcnQgdmFyIGJlZm9yZVJlYWQgPSAnYmVmb3JlUmVhZCc7XG5leHBvcnQgdmFyIHJlYWQgPSAncmVhZCc7XG5leHBvcnQgdmFyIGFmdGVyUmVhZCA9ICdhZnRlclJlYWQnOyAvLyBwdXJlLWxvZ2ljIG1vZGlmaWVyc1xuXG5leHBvcnQgdmFyIGJlZm9yZU1haW4gPSAnYmVmb3JlTWFpbic7XG5leHBvcnQgdmFyIG1haW4gPSAnbWFpbic7XG5leHBvcnQgdmFyIGFmdGVyTWFpbiA9ICdhZnRlck1haW4nOyAvLyBtb2RpZmllciB3aXRoIHRoZSBwdXJwb3NlIHRvIHdyaXRlIHRvIHRoZSBET00gKG9yIHdyaXRlIGludG8gYSBmcmFtZXdvcmsgc3RhdGUpXG5cbmV4cG9ydCB2YXIgYmVmb3JlV3JpdGUgPSAnYmVmb3JlV3JpdGUnO1xuZXhwb3J0IHZhciB3cml0ZSA9ICd3cml0ZSc7XG5leHBvcnQgdmFyIGFmdGVyV3JpdGUgPSAnYWZ0ZXJXcml0ZSc7XG5leHBvcnQgdmFyIG1vZGlmaWVyUGhhc2VzID0gW2JlZm9yZVJlYWQsIHJlYWQsIGFmdGVyUmVhZCwgYmVmb3JlTWFpbiwgbWFpbiwgYWZ0ZXJNYWluLCBiZWZvcmVXcml0ZSwgd3JpdGUsIGFmdGVyV3JpdGVdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/enums.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/index.js": /*!**************************************************!*\ !*** ./node_modules/@popperjs/core/lib/index.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ afterMain: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterMain),\n/* harmony export */ afterRead: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterRead),\n/* harmony export */ afterWrite: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterWrite),\n/* harmony export */ applyStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.applyStyles),\n/* harmony export */ arrow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.arrow),\n/* harmony export */ auto: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.auto),\n/* harmony export */ basePlacements: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements),\n/* harmony export */ beforeMain: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeMain),\n/* harmony export */ beforeRead: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeRead),\n/* harmony export */ beforeWrite: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeWrite),\n/* harmony export */ bottom: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom),\n/* harmony export */ clippingParents: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents),\n/* harmony export */ computeStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.computeStyles),\n/* harmony export */ createPopper: () => (/* reexport safe */ _popper_js__WEBPACK_IMPORTED_MODULE_4__.createPopper),\n/* harmony export */ createPopperBase: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.createPopper),\n/* harmony export */ createPopperLite: () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__.createPopper),\n/* harmony export */ detectOverflow: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ end: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.end),\n/* harmony export */ eventListeners: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.eventListeners),\n/* harmony export */ flip: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.flip),\n/* harmony export */ hide: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.hide),\n/* harmony export */ left: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.left),\n/* harmony export */ main: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.main),\n/* harmony export */ modifierPhases: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases),\n/* harmony export */ offset: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.offset),\n/* harmony export */ placements: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements),\n/* harmony export */ popper: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper),\n/* harmony export */ popperGenerator: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.popperGenerator),\n/* harmony export */ popperOffsets: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.popperOffsets),\n/* harmony export */ preventOverflow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.preventOverflow),\n/* harmony export */ read: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.read),\n/* harmony export */ reference: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference),\n/* harmony export */ right: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.right),\n/* harmony export */ start: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.start),\n/* harmony export */ top: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.top),\n/* harmony export */ variationPlacements: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements),\n/* harmony export */ viewport: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport),\n/* harmony export */ write: () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.write)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/index.js */ \"./node_modules/@popperjs/core/lib/modifiers/index.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/createPopper.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _popper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popper.js */ \"./node_modules/@popperjs/core/lib/popper.js\");\n/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./popper-lite.js */ \"./node_modules/@popperjs/core/lib/popper-lite.js\");\n\n // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTJCO0FBQ1UsQ0FBQzs7QUFFZ0UsQ0FBQzs7QUFFNUQsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvaW5kZXguanM/ZGIwOCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9lbnVtcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kaWZpZXJzL2luZGV4LmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgcG9wcGVyR2VuZXJhdG9yLCBkZXRlY3RPdmVyZmxvdywgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckJhc2UgfSBmcm9tIFwiLi9jcmVhdGVQb3BwZXIuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgeyBjcmVhdGVQb3BwZXIgfSBmcm9tIFwiLi9wb3BwZXIuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgeyBjcmVhdGVQb3BwZXIgYXMgY3JlYXRlUG9wcGVyTGl0ZSB9IGZyb20gXCIuL3BvcHBlci1saXRlLmpzXCI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/index.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js": /*!******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getNodeName.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\");\n/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n\n // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9hcHBseVN0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBc0Q7QUFDSyxDQUFDO0FBQzVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7O0FBRXhDLFNBQVMsdUVBQWEsY0FBYyxxRUFBVztBQUMvQztBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUhBQXVIOztBQUV2SDtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQUksR0FBRzs7QUFFZCxXQUFXLHVFQUFhLGNBQWMscUVBQVc7QUFDakQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsRUFBRTs7O0FBR0YsaUVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvYXBwbHlTdHlsZXMuanM/ZjJlMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4uL2RvbS11dGlscy9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiOyAvLyBUaGlzIG1vZGlmaWVyIHRha2VzIHRoZSBzdHlsZXMgcHJlcGFyZWQgYnkgdGhlIGBjb21wdXRlU3R5bGVzYCBtb2RpZmllclxuLy8gYW5kIGFwcGxpZXMgdGhlbSB0byB0aGUgSFRNTEVsZW1lbnRzIHN1Y2ggYXMgcG9wcGVyIGFuZCBhcnJvd1xuXG5mdW5jdGlvbiBhcHBseVN0eWxlcyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGU7XG4gIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdmFyIHN0eWxlID0gc3RhdGUuc3R5bGVzW25hbWVdIHx8IHt9O1xuICAgIHZhciBhdHRyaWJ1dGVzID0gc3RhdGUuYXR0cmlidXRlc1tuYW1lXSB8fCB7fTtcbiAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdOyAvLyBhcnJvdyBpcyBvcHRpb25hbCArIHZpcnR1YWwgZWxlbWVudHNcblxuICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIEZsb3cgZG9lc24ndCBzdXBwb3J0IHRvIGV4dGVuZCB0aGlzIHByb3BlcnR5LCBidXQgaXQncyB0aGUgbW9zdFxuICAgIC8vIGVmZmVjdGl2ZSB3YXkgdG8gYXBwbHkgc3R5bGVzIHRvIGFuIEhUTUxFbGVtZW50XG4gICAgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdXG5cblxuICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGUpO1xuICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGF0dHJpYnV0ZXNbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSA9PT0gdHJ1ZSA/ICcnIDogdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZWZmZWN0KF9yZWYyKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYyLnN0YXRlO1xuICB2YXIgaW5pdGlhbFN0eWxlcyA9IHtcbiAgICBwb3BwZXI6IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgbGVmdDogJzAnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICBtYXJnaW46ICcwJ1xuICAgIH0sXG4gICAgYXJyb3c6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnXG4gICAgfSxcbiAgICByZWZlcmVuY2U6IHt9XG4gIH07XG4gIE9iamVjdC5hc3NpZ24oc3RhdGUuZWxlbWVudHMucG9wcGVyLnN0eWxlLCBpbml0aWFsU3R5bGVzLnBvcHBlcik7XG4gIHN0YXRlLnN0eWxlcyA9IGluaXRpYWxTdHlsZXM7XG5cbiAgaWYgKHN0YXRlLmVsZW1lbnRzLmFycm93KSB7XG4gICAgT2JqZWN0LmFzc2lnbihzdGF0ZS5lbGVtZW50cy5hcnJvdy5zdHlsZSwgaW5pdGlhbFN0eWxlcy5hcnJvdyk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdO1xuICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBzdGF0ZS5hdHRyaWJ1dGVzW25hbWVdIHx8IHt9O1xuICAgICAgdmFyIHN0eWxlUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHN0YXRlLnN0eWxlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSA/IHN0YXRlLnN0eWxlc1tuYW1lXSA6IGluaXRpYWxTdHlsZXNbbmFtZV0pOyAvLyBTZXQgYWxsIHZhbHVlcyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlbVxuXG4gICAgICB2YXIgc3R5bGUgPSBzdHlsZVByb3BlcnRpZXMucmVkdWNlKGZ1bmN0aW9uIChzdHlsZSwgcHJvcGVydHkpIHtcbiAgICAgICAgc3R5bGVbcHJvcGVydHldID0gJyc7XG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgIH0sIHt9KTsgLy8gYXJyb3cgaXMgb3B0aW9uYWwgKyB2aXJ0dWFsIGVsZW1lbnRzXG5cbiAgICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnQuc3R5bGUsIHN0eWxlKTtcbiAgICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcHBseVN0eWxlcycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnd3JpdGUnLFxuICBmbjogYXBwbHlTdHlsZXMsXG4gIGVmZmVjdDogZWZmZWN0LFxuICByZXF1aXJlczogWydjb21wdXRlU3R5bGVzJ11cbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/arrow.js": /*!************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/arrow.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\");\n/* harmony import */ var _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../dom-utils/contains.js */ \"./node_modules/@popperjs/core/lib/dom-utils/contains.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\");\n/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/within.js */ \"./node_modules/@popperjs/core/lib/utils/within.js\");\n/* harmony import */ var _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/mergePaddingObject.js */ \"./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js\");\n/* harmony import */ var _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/expandToHashMap.js */ \"./node_modules/@popperjs/core/lib/utils/expandToHashMap.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n\n\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return (0,_utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(typeof padding !== 'number' ? padding : (0,_utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_2__.basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(state.placement);\n var axis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(basePlacement);\n var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_2__.left, _enums_js__WEBPACK_IMPORTED_MODULE_2__.right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(arrowElement);\n var minProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.top : _enums_js__WEBPACK_IMPORTED_MODULE_2__.left;\n var maxProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_2__.right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_7__.within)(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!(0,_dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9hcnJvdy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQTREO0FBQ0Y7QUFDVjtBQUNjO0FBQ2M7QUFDaEM7QUFDb0I7QUFDTjtBQUNhLENBQUM7O0FBRXhFO0FBQ0Esb0VBQW9FO0FBQ3BFO0FBQ0EsR0FBRztBQUNILFNBQVMsd0VBQWtCLHlDQUF5QyxxRUFBZSxVQUFVLHFEQUFjO0FBQzNHOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzRUFBZ0I7QUFDdEMsYUFBYSw4RUFBd0I7QUFDckMsb0JBQW9CLDJDQUFJLEVBQUUsNENBQUs7QUFDL0I7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esa0JBQWtCLHVFQUFhO0FBQy9CLCtCQUErQiwwQ0FBRyxHQUFHLDJDQUFJO0FBQ3pDLCtCQUErQiw2Q0FBTSxHQUFHLDRDQUFLO0FBQzdDO0FBQ0E7QUFDQSwwQkFBMEIseUVBQWU7QUFDekM7QUFDQSx1REFBdUQ7QUFDdkQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZSx3REFBTSxvQkFBb0I7O0FBRXpDO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTyxrRUFBUTtBQUNmO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOzs7QUFHRixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2Fycm93LmpzPzdlZDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRMYXlvdXRSZWN0IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qc1wiO1xuaW1wb3J0IGNvbnRhaW5zIGZyb20gXCIuLi9kb20tdXRpbHMvY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgd2l0aGluIH0gZnJvbSBcIi4uL3V0aWxzL3dpdGhpbi5qc1wiO1xuaW1wb3J0IG1lcmdlUGFkZGluZ09iamVjdCBmcm9tIFwiLi4vdXRpbHMvbWVyZ2VQYWRkaW5nT2JqZWN0LmpzXCI7XG5pbXBvcnQgZXhwYW5kVG9IYXNoTWFwIGZyb20gXCIuLi91dGlscy9leHBhbmRUb0hhc2hNYXAuanNcIjtcbmltcG9ydCB7IGxlZnQsIHJpZ2h0LCBiYXNlUGxhY2VtZW50cywgdG9wLCBib3R0b20gfSBmcm9tIFwiLi4vZW51bXMuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG52YXIgdG9QYWRkaW5nT2JqZWN0ID0gZnVuY3Rpb24gdG9QYWRkaW5nT2JqZWN0KHBhZGRpbmcsIHN0YXRlKSB7XG4gIHBhZGRpbmcgPSB0eXBlb2YgcGFkZGluZyA9PT0gJ2Z1bmN0aW9uJyA/IHBhZGRpbmcoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHN0YXRlLnBsYWNlbWVudFxuICB9KSkgOiBwYWRkaW5nO1xuICByZXR1cm4gbWVyZ2VQYWRkaW5nT2JqZWN0KHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IHBhZGRpbmcgOiBleHBhbmRUb0hhc2hNYXAocGFkZGluZywgYmFzZVBsYWNlbWVudHMpKTtcbn07XG5cbmZ1bmN0aW9uIGFycm93KF9yZWYpIHtcbiAgdmFyIF9zdGF0ZSRtb2RpZmllcnNEYXRhJDtcblxuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnM7XG4gIHZhciBhcnJvd0VsZW1lbnQgPSBzdGF0ZS5lbGVtZW50cy5hcnJvdztcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHM7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5wbGFjZW1lbnQpO1xuICB2YXIgYXhpcyA9IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KTtcbiAgdmFyIGlzVmVydGljYWwgPSBbbGVmdCwgcmlnaHRdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMDtcbiAgdmFyIGxlbiA9IGlzVmVydGljYWwgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG5cbiAgaWYgKCFhcnJvd0VsZW1lbnQgfHwgIXBvcHBlck9mZnNldHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcGFkZGluZ09iamVjdCA9IHRvUGFkZGluZ09iamVjdChvcHRpb25zLnBhZGRpbmcsIHN0YXRlKTtcbiAgdmFyIGFycm93UmVjdCA9IGdldExheW91dFJlY3QoYXJyb3dFbGVtZW50KTtcbiAgdmFyIG1pblByb3AgPSBheGlzID09PSAneScgPyB0b3AgOiBsZWZ0O1xuICB2YXIgbWF4UHJvcCA9IGF4aXMgPT09ICd5JyA/IGJvdHRvbSA6IHJpZ2h0O1xuICB2YXIgZW5kRGlmZiA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZVtsZW5dICsgc3RhdGUucmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gcG9wcGVyT2Zmc2V0c1theGlzXSAtIHN0YXRlLnJlY3RzLnBvcHBlcltsZW5dO1xuICB2YXIgc3RhcnREaWZmID0gcG9wcGVyT2Zmc2V0c1theGlzXSAtIHN0YXRlLnJlY3RzLnJlZmVyZW5jZVtheGlzXTtcbiAgdmFyIGFycm93T2Zmc2V0UGFyZW50ID0gZ2V0T2Zmc2V0UGFyZW50KGFycm93RWxlbWVudCk7XG4gIHZhciBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBheGlzID09PSAneScgPyBhcnJvd09mZnNldFBhcmVudC5jbGllbnRIZWlnaHQgfHwgMCA6IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFdpZHRoIHx8IDAgOiAwO1xuICB2YXIgY2VudGVyVG9SZWZlcmVuY2UgPSBlbmREaWZmIC8gMiAtIHN0YXJ0RGlmZiAvIDI7IC8vIE1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lc24ndCBvdmVyZmxvdyB0aGUgcG9wcGVyIGlmIHRoZSBjZW50ZXIgcG9pbnQgaXNcbiAgLy8gb3V0c2lkZSBvZiB0aGUgcG9wcGVyIGJvdW5kc1xuXG4gIHZhciBtaW4gPSBwYWRkaW5nT2JqZWN0W21pblByb3BdO1xuICB2YXIgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93UmVjdFtsZW5dIC0gcGFkZGluZ09iamVjdFttYXhQcm9wXTtcbiAgdmFyIGNlbnRlciA9IGNsaWVudFNpemUgLyAyIC0gYXJyb3dSZWN0W2xlbl0gLyAyICsgY2VudGVyVG9SZWZlcmVuY2U7XG4gIHZhciBvZmZzZXQgPSB3aXRoaW4obWluLCBjZW50ZXIsIG1heCk7IC8vIFByZXZlbnRzIGJyZWFraW5nIHN5bnRheCBoaWdobGlnaHRpbmcuLi5cblxuICB2YXIgYXhpc1Byb3AgPSBheGlzO1xuICBzdGF0ZS5tb2RpZmllcnNEYXRhW25hbWVdID0gKF9zdGF0ZSRtb2RpZmllcnNEYXRhJCA9IHt9LCBfc3RhdGUkbW9kaWZpZXJzRGF0YSRbYXhpc1Byb3BdID0gb2Zmc2V0LCBfc3RhdGUkbW9kaWZpZXJzRGF0YSQuY2VudGVyT2Zmc2V0ID0gb2Zmc2V0IC0gY2VudGVyLCBfc3RhdGUkbW9kaWZpZXJzRGF0YSQpO1xufVxuXG5mdW5jdGlvbiBlZmZlY3QoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucztcbiAgdmFyIF9vcHRpb25zJGVsZW1lbnQgPSBvcHRpb25zLmVsZW1lbnQsXG4gICAgICBhcnJvd0VsZW1lbnQgPSBfb3B0aW9ucyRlbGVtZW50ID09PSB2b2lkIDAgPyAnW2RhdGEtcG9wcGVyLWFycm93XScgOiBfb3B0aW9ucyRlbGVtZW50O1xuXG4gIGlmIChhcnJvd0VsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfSAvLyBDU1Mgc2VsZWN0b3JcblxuXG4gIGlmICh0eXBlb2YgYXJyb3dFbGVtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLnBvcHBlci5xdWVyeVNlbGVjdG9yKGFycm93RWxlbWVudCk7XG5cbiAgICBpZiAoIWFycm93RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGlmICghY29udGFpbnMoc3RhdGUuZWxlbWVudHMucG9wcGVyLCBhcnJvd0VsZW1lbnQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3RhdGUuZWxlbWVudHMuYXJyb3cgPSBhcnJvd0VsZW1lbnQ7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcnJvdycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIGZuOiBhcnJvdyxcbiAgZWZmZWN0OiBlZmZlY3QsXG4gIHJlcXVpcmVzOiBbJ3BvcHBlck9mZnNldHMnXSxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydwcmV2ZW50T3ZlcmZsb3cnXVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/arrow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ mapToStyles: () => (/* binding */ mapToStyles)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getComputedStyle.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\");\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(x * dpr) / dpr || 0,\n y: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(y * dpr) / dpr || 0\n };\n}\n\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.left;\n var sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(popper)) {\n offsetParent = (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(popper);\n\n if ((0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.right) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {\n sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {\n sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(state.placement),\n variation: (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBNEQ7QUFDRTtBQUNaO0FBQ2tCO0FBQ0o7QUFDSjtBQUNSO0FBQ1gsQ0FBQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHFEQUFLO0FBQ1osT0FBTyxxREFBSztBQUNaO0FBQ0E7O0FBRU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLDJDQUFJO0FBQ2xCLGNBQWMsMENBQUc7QUFDakI7O0FBRUE7QUFDQSx1QkFBdUIseUVBQWU7QUFDdEM7QUFDQTs7QUFFQSx5QkFBeUIsbUVBQVM7QUFDbEMscUJBQXFCLDRFQUFrQjs7QUFFdkMsVUFBVSwwRUFBZ0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047O0FBRUEsc0JBQXNCLDBDQUFHLG1CQUFtQiwyQ0FBSSxrQkFBa0IsNENBQUssbUJBQW1CLDBDQUFHO0FBQzdGLGNBQWMsNkNBQU07QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0IsMkNBQUksbUJBQW1CLDBDQUFHLGtCQUFrQiw2Q0FBTSxtQkFBbUIsMENBQUc7QUFDOUYsY0FBYyw0Q0FBSztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFLG1FQUFTO0FBQ2Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSwyQkFBMkIsb0NBQW9DO0FBQy9EOztBQUVBLHlCQUF5QixxQ0FBcUM7QUFDOUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHNFQUFnQjtBQUMvQixlQUFlLGtFQUFZO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQ0FBMEMsbURBQW1EO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EseUNBQXlDLGtEQUFrRDtBQUMzRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSw0Q0FBNEM7QUFDNUM7QUFDQSxHQUFHO0FBQ0gsRUFBRTs7O0FBR0YsaUVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2NvbXB1dGVTdHlsZXMuanM/M2Y5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20sIGVuZCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi4vdXRpbHMvZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgeyByb3VuZCB9IGZyb20gXCIuLi91dGlscy9tYXRoLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxudmFyIHVuc2V0U2lkZXMgPSB7XG4gIHRvcDogJ2F1dG8nLFxuICByaWdodDogJ2F1dG8nLFxuICBib3R0b206ICdhdXRvJyxcbiAgbGVmdDogJ2F1dG8nXG59OyAvLyBSb3VuZCB0aGUgb2Zmc2V0cyB0byB0aGUgbmVhcmVzdCBzdWl0YWJsZSBzdWJwaXhlbCBiYXNlZCBvbiB0aGUgRFBSLlxuLy8gWm9vbWluZyBjYW4gY2hhbmdlIHRoZSBEUFIsIGJ1dCBpdCBzZWVtcyB0byByZXBvcnQgYSB2YWx1ZSB0aGF0IHdpbGxcbi8vIGNsZWFubHkgZGl2aWRlIHRoZSB2YWx1ZXMgaW50byB0aGUgYXBwcm9wcmlhdGUgc3VicGl4ZWxzLlxuXG5mdW5jdGlvbiByb3VuZE9mZnNldHNCeURQUihfcmVmLCB3aW4pIHtcbiAgdmFyIHggPSBfcmVmLngsXG4gICAgICB5ID0gX3JlZi55O1xuICB2YXIgZHByID0gd2luLmRldmljZVBpeGVsUmF0aW8gfHwgMTtcbiAgcmV0dXJuIHtcbiAgICB4OiByb3VuZCh4ICogZHByKSAvIGRwciB8fCAwLFxuICAgIHk6IHJvdW5kKHkgKiBkcHIpIC8gZHByIHx8IDBcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvU3R5bGVzKF9yZWYyKSB7XG4gIHZhciBfT2JqZWN0JGFzc2lnbjI7XG5cbiAgdmFyIHBvcHBlciA9IF9yZWYyLnBvcHBlcixcbiAgICAgIHBvcHBlclJlY3QgPSBfcmVmMi5wb3BwZXJSZWN0LFxuICAgICAgcGxhY2VtZW50ID0gX3JlZjIucGxhY2VtZW50LFxuICAgICAgdmFyaWF0aW9uID0gX3JlZjIudmFyaWF0aW9uLFxuICAgICAgb2Zmc2V0cyA9IF9yZWYyLm9mZnNldHMsXG4gICAgICBwb3NpdGlvbiA9IF9yZWYyLnBvc2l0aW9uLFxuICAgICAgZ3B1QWNjZWxlcmF0aW9uID0gX3JlZjIuZ3B1QWNjZWxlcmF0aW9uLFxuICAgICAgYWRhcHRpdmUgPSBfcmVmMi5hZGFwdGl2ZSxcbiAgICAgIHJvdW5kT2Zmc2V0cyA9IF9yZWYyLnJvdW5kT2Zmc2V0cyxcbiAgICAgIGlzRml4ZWQgPSBfcmVmMi5pc0ZpeGVkO1xuICB2YXIgX29mZnNldHMkeCA9IG9mZnNldHMueCxcbiAgICAgIHggPSBfb2Zmc2V0cyR4ID09PSB2b2lkIDAgPyAwIDogX29mZnNldHMkeCxcbiAgICAgIF9vZmZzZXRzJHkgPSBvZmZzZXRzLnksXG4gICAgICB5ID0gX29mZnNldHMkeSA9PT0gdm9pZCAwID8gMCA6IF9vZmZzZXRzJHk7XG5cbiAgdmFyIF9yZWYzID0gdHlwZW9mIHJvdW5kT2Zmc2V0cyA9PT0gJ2Z1bmN0aW9uJyA/IHJvdW5kT2Zmc2V0cyh7XG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH0pIDoge1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9O1xuXG4gIHggPSBfcmVmMy54O1xuICB5ID0gX3JlZjMueTtcbiAgdmFyIGhhc1ggPSBvZmZzZXRzLmhhc093blByb3BlcnR5KCd4Jyk7XG4gIHZhciBoYXNZID0gb2Zmc2V0cy5oYXNPd25Qcm9wZXJ0eSgneScpO1xuICB2YXIgc2lkZVggPSBsZWZ0O1xuICB2YXIgc2lkZVkgPSB0b3A7XG4gIHZhciB3aW4gPSB3aW5kb3c7XG5cbiAgaWYgKGFkYXB0aXZlKSB7XG4gICAgdmFyIG9mZnNldFBhcmVudCA9IGdldE9mZnNldFBhcmVudChwb3BwZXIpO1xuICAgIHZhciBoZWlnaHRQcm9wID0gJ2NsaWVudEhlaWdodCc7XG4gICAgdmFyIHdpZHRoUHJvcCA9ICdjbGllbnRXaWR0aCc7XG5cbiAgICBpZiAob2Zmc2V0UGFyZW50ID09PSBnZXRXaW5kb3cocG9wcGVyKSkge1xuICAgICAgb2Zmc2V0UGFyZW50ID0gZ2V0RG9jdW1lbnRFbGVtZW50KHBvcHBlcik7XG5cbiAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKG9mZnNldFBhcmVudCkucG9zaXRpb24gIT09ICdzdGF0aWMnICYmIHBvc2l0aW9uID09PSAnYWJzb2x1dGUnKSB7XG4gICAgICAgIGhlaWdodFByb3AgPSAnc2Nyb2xsSGVpZ2h0JztcbiAgICAgICAgd2lkdGhQcm9wID0gJ3Njcm9sbFdpZHRoJztcbiAgICAgIH1cbiAgICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLWNhc3RdOiBmb3JjZSB0eXBlIHJlZmluZW1lbnQsIHdlIGNvbXBhcmUgb2Zmc2V0UGFyZW50IHdpdGggd2luZG93IGFib3ZlLCBidXQgRmxvdyBkb2Vzbid0IGRldGVjdCBpdFxuXG5cbiAgICBvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQ7XG5cbiAgICBpZiAocGxhY2VtZW50ID09PSB0b3AgfHwgKHBsYWNlbWVudCA9PT0gbGVmdCB8fCBwbGFjZW1lbnQgPT09IHJpZ2h0KSAmJiB2YXJpYXRpb24gPT09IGVuZCkge1xuICAgICAgc2lkZVkgPSBib3R0b207XG4gICAgICB2YXIgb2Zmc2V0WSA9IGlzRml4ZWQgJiYgb2Zmc2V0UGFyZW50ID09PSB3aW4gJiYgd2luLnZpc3VhbFZpZXdwb3J0ID8gd2luLnZpc3VhbFZpZXdwb3J0LmhlaWdodCA6IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgICAgb2Zmc2V0UGFyZW50W2hlaWdodFByb3BdO1xuICAgICAgeSAtPSBvZmZzZXRZIC0gcG9wcGVyUmVjdC5oZWlnaHQ7XG4gICAgICB5ICo9IGdwdUFjY2VsZXJhdGlvbiA/IDEgOiAtMTtcbiAgICB9XG5cbiAgICBpZiAocGxhY2VtZW50ID09PSBsZWZ0IHx8IChwbGFjZW1lbnQgPT09IHRvcCB8fCBwbGFjZW1lbnQgPT09IGJvdHRvbSkgJiYgdmFyaWF0aW9uID09PSBlbmQpIHtcbiAgICAgIHNpZGVYID0gcmlnaHQ7XG4gICAgICB2YXIgb2Zmc2V0WCA9IGlzRml4ZWQgJiYgb2Zmc2V0UGFyZW50ID09PSB3aW4gJiYgd2luLnZpc3VhbFZpZXdwb3J0ID8gd2luLnZpc3VhbFZpZXdwb3J0LndpZHRoIDogLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gICAgICBvZmZzZXRQYXJlbnRbd2lkdGhQcm9wXTtcbiAgICAgIHggLT0gb2Zmc2V0WCAtIHBvcHBlclJlY3Qud2lkdGg7XG4gICAgICB4ICo9IGdwdUFjY2VsZXJhdGlvbiA/IDEgOiAtMTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29tbW9uU3R5bGVzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgcG9zaXRpb246IHBvc2l0aW9uXG4gIH0sIGFkYXB0aXZlICYmIHVuc2V0U2lkZXMpO1xuXG4gIHZhciBfcmVmNCA9IHJvdW5kT2Zmc2V0cyA9PT0gdHJ1ZSA/IHJvdW5kT2Zmc2V0c0J5RFBSKHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfSwgZ2V0V2luZG93KHBvcHBlcikpIDoge1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9O1xuXG4gIHggPSBfcmVmNC54O1xuICB5ID0gX3JlZjQueTtcblxuICBpZiAoZ3B1QWNjZWxlcmF0aW9uKSB7XG4gICAgdmFyIF9PYmplY3QkYXNzaWduO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywgKF9PYmplY3QkYXNzaWduID0ge30sIF9PYmplY3QkYXNzaWduW3NpZGVZXSA9IGhhc1kgPyAnMCcgOiAnJywgX09iamVjdCRhc3NpZ25bc2lkZVhdID0gaGFzWCA/ICcwJyA6ICcnLCBfT2JqZWN0JGFzc2lnbi50cmFuc2Zvcm0gPSAod2luLmRldmljZVBpeGVsUmF0aW8gfHwgMSkgPD0gMSA/IFwidHJhbnNsYXRlKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgpXCIgOiBcInRyYW5zbGF0ZTNkKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgsIDApXCIsIF9PYmplY3QkYXNzaWduKSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCAoX09iamVjdCRhc3NpZ24yID0ge30sIF9PYmplY3QkYXNzaWduMltzaWRlWV0gPSBoYXNZID8geSArIFwicHhcIiA6ICcnLCBfT2JqZWN0JGFzc2lnbjJbc2lkZVhdID0gaGFzWCA/IHggKyBcInB4XCIgOiAnJywgX09iamVjdCRhc3NpZ24yLnRyYW5zZm9ybSA9ICcnLCBfT2JqZWN0JGFzc2lnbjIpKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVN0eWxlcyhfcmVmNSkge1xuICB2YXIgc3RhdGUgPSBfcmVmNS5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmNS5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZ3B1QWNjZWxlcmF0ID0gb3B0aW9ucy5ncHVBY2NlbGVyYXRpb24sXG4gICAgICBncHVBY2NlbGVyYXRpb24gPSBfb3B0aW9ucyRncHVBY2NlbGVyYXQgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRncHVBY2NlbGVyYXQsXG4gICAgICBfb3B0aW9ucyRhZGFwdGl2ZSA9IG9wdGlvbnMuYWRhcHRpdmUsXG4gICAgICBhZGFwdGl2ZSA9IF9vcHRpb25zJGFkYXB0aXZlID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWRhcHRpdmUsXG4gICAgICBfb3B0aW9ucyRyb3VuZE9mZnNldHMgPSBvcHRpb25zLnJvdW5kT2Zmc2V0cyxcbiAgICAgIHJvdW5kT2Zmc2V0cyA9IF9vcHRpb25zJHJvdW5kT2Zmc2V0cyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJvdW5kT2Zmc2V0cztcbiAgdmFyIGNvbW1vblN0eWxlcyA9IHtcbiAgICBwbGFjZW1lbnQ6IGdldEJhc2VQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KSxcbiAgICB2YXJpYXRpb246IGdldFZhcmlhdGlvbihzdGF0ZS5wbGFjZW1lbnQpLFxuICAgIHBvcHBlcjogc3RhdGUuZWxlbWVudHMucG9wcGVyLFxuICAgIHBvcHBlclJlY3Q6IHN0YXRlLnJlY3RzLnBvcHBlcixcbiAgICBncHVBY2NlbGVyYXRpb246IGdwdUFjY2VsZXJhdGlvbixcbiAgICBpc0ZpeGVkOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnXG4gIH07XG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyAhPSBudWxsKSB7XG4gICAgc3RhdGUuc3R5bGVzLnBvcHBlciA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnN0eWxlcy5wb3BwZXIsIG1hcFRvU3R5bGVzKE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywge1xuICAgICAgb2Zmc2V0czogc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLFxuICAgICAgcG9zaXRpb246IHN0YXRlLm9wdGlvbnMuc3RyYXRlZ3ksXG4gICAgICBhZGFwdGl2ZTogYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHM6IHJvdW5kT2Zmc2V0c1xuICAgIH0pKSk7XG4gIH1cblxuICBpZiAoc3RhdGUubW9kaWZpZXJzRGF0YS5hcnJvdyAhPSBudWxsKSB7XG4gICAgc3RhdGUuc3R5bGVzLmFycm93ID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc3R5bGVzLmFycm93LCBtYXBUb1N0eWxlcyhPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIHtcbiAgICAgIG9mZnNldHM6IHN0YXRlLm1vZGlmaWVyc0RhdGEuYXJyb3csXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGFkYXB0aXZlOiBmYWxzZSxcbiAgICAgIHJvdW5kT2Zmc2V0czogcm91bmRPZmZzZXRzXG4gICAgfSkpKTtcbiAgfVxuXG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcGxhY2VtZW50Jzogc3RhdGUucGxhY2VtZW50XG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnY29tcHV0ZVN0eWxlcycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnYmVmb3JlV3JpdGUnLFxuICBmbjogY29tcHV0ZVN0eWxlcyxcbiAgZGF0YToge31cbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getWindow.js\");\n // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9ldmVudExpc3RlbmVycy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRCxDQUFDOztBQUVuRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQVM7QUFDeEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvZXZlbnRMaXN0ZW5lcnMuanM/OTFjNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0V2luZG93LmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxudmFyIHBhc3NpdmUgPSB7XG4gIHBhc3NpdmU6IHRydWVcbn07XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBpbnN0YW5jZSA9IF9yZWYuaW5zdGFuY2UsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkc2Nyb2xsID0gb3B0aW9ucy5zY3JvbGwsXG4gICAgICBzY3JvbGwgPSBfb3B0aW9ucyRzY3JvbGwgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRzY3JvbGwsXG4gICAgICBfb3B0aW9ucyRyZXNpemUgPSBvcHRpb25zLnJlc2l6ZSxcbiAgICAgIHJlc2l6ZSA9IF9vcHRpb25zJHJlc2l6ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJlc2l6ZTtcbiAgdmFyIHdpbmRvdyA9IGdldFdpbmRvdyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIpO1xuICB2YXIgc2Nyb2xsUGFyZW50cyA9IFtdLmNvbmNhdChzdGF0ZS5zY3JvbGxQYXJlbnRzLnJlZmVyZW5jZSwgc3RhdGUuc2Nyb2xsUGFyZW50cy5wb3BwZXIpO1xuXG4gIGlmIChzY3JvbGwpIHtcbiAgICBzY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24gKHNjcm9sbFBhcmVudCkge1xuICAgICAgc2Nyb2xsUGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfSk7XG4gIH1cblxuICBpZiAocmVzaXplKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGlmIChzY3JvbGwpIHtcbiAgICAgIHNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2Nyb2xsUGFyZW50KSB7XG4gICAgICAgIHNjcm9sbFBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc2l6ZSkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfVxuICB9O1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZXZlbnRMaXN0ZW5lcnMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ3dyaXRlJyxcbiAgZm46IGZ1bmN0aW9uIGZuKCkge30sXG4gIGVmZmVjdDogZWZmZWN0LFxuICBkYXRhOiB7fVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/flip.js": /*!***********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/flip.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getOppositePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js\");\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getOppositeVariationPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/computeAutoPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if ((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto) {\n return [];\n }\n\n var oppositePlacement = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(placement);\n return [(0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(placement), oppositePlacement, (0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [(0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto ? (0,_utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement);\n\n var isStartVariation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.start;\n var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.top, _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.right : _enums_js__WEBPACK_IMPORTED_MODULE_1__.left : isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(mainVariationSide);\n }\n\n var altVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9mbGlwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQW9FO0FBQ1I7QUFDMEI7QUFDOUI7QUFDWTtBQUNBO0FBQ2hCLENBQUM7O0FBRXJEO0FBQ0EsTUFBTSxzRUFBZ0IsZ0JBQWdCLDJDQUFJO0FBQzFDO0FBQ0E7O0FBRUEsMEJBQTBCLDBFQUFvQjtBQUM5QyxVQUFVLG1GQUE2QixnQ0FBZ0MsbUZBQTZCO0FBQ3BHOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzRUFBZ0I7QUFDdEM7QUFDQSxpR0FBaUcsMEVBQW9CO0FBQ3JIO0FBQ0Esc0JBQXNCLHNFQUFnQixnQkFBZ0IsMkNBQUksR0FBRywwRUFBb0I7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQix1QkFBdUI7QUFDekM7O0FBRUEseUJBQXlCLHNFQUFnQjs7QUFFekMsMkJBQTJCLGtFQUFZLGdCQUFnQiw0Q0FBSztBQUM1RCxzQkFBc0IsMENBQUcsRUFBRSw2Q0FBTTtBQUNqQztBQUNBLG1CQUFtQixvRUFBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDREQUE0RCw0Q0FBSyxHQUFHLDJDQUFJLHNCQUFzQiw2Q0FBTSxHQUFHLDBDQUFHOztBQUUxRztBQUNBLDBCQUEwQiwwRUFBb0I7QUFDOUM7O0FBRUEsMkJBQTJCLDBFQUFvQjtBQUMvQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQ0FBa0MsUUFBUTtBQUMxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9mbGlwLmpzPzVjY2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE9wcG9zaXRlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRPcHBvc2l0ZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBjb21wdXRlQXV0b1BsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZUF1dG9QbGFjZW1lbnQuanNcIjtcbmltcG9ydCB7IGJvdHRvbSwgdG9wLCBzdGFydCwgcmlnaHQsIGxlZnQsIGF1dG8gfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmZ1bmN0aW9uIGdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzKHBsYWNlbWVudCkge1xuICBpZiAoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgdmFyIG9wcG9zaXRlUGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgcmV0dXJuIFtnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChwbGFjZW1lbnQpLCBvcHBvc2l0ZVBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQob3Bwb3NpdGVQbGFjZW1lbnQpXTtcbn1cblxuZnVuY3Rpb24gZmxpcChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcblxuICBpZiAoc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXS5fc2tpcCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyRtYWluQXhpcyA9IG9wdGlvbnMubWFpbkF4aXMsXG4gICAgICBjaGVja01haW5BeGlzID0gX29wdGlvbnMkbWFpbkF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRtYWluQXhpcyxcbiAgICAgIF9vcHRpb25zJGFsdEF4aXMgPSBvcHRpb25zLmFsdEF4aXMsXG4gICAgICBjaGVja0FsdEF4aXMgPSBfb3B0aW9ucyRhbHRBeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWx0QXhpcyxcbiAgICAgIHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyA9IG9wdGlvbnMuZmFsbGJhY2tQbGFjZW1lbnRzLFxuICAgICAgcGFkZGluZyA9IG9wdGlvbnMucGFkZGluZyxcbiAgICAgIGJvdW5kYXJ5ID0gb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeSA9IG9wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnkgPSBvcHRpb25zLmFsdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkZmxpcFZhcmlhdGlvID0gb3B0aW9ucy5mbGlwVmFyaWF0aW9ucyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMkZmxpcFZhcmlhdGlvID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkZmxpcFZhcmlhdGlvLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzID0gb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHM7XG4gIHZhciBwcmVmZXJyZWRQbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHByZWZlcnJlZFBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSBiYXNlUGxhY2VtZW50ID09PSBwcmVmZXJyZWRQbGFjZW1lbnQ7XG4gIHZhciBmYWxsYmFja1BsYWNlbWVudHMgPSBzcGVjaWZpZWRGYWxsYmFja1BsYWNlbWVudHMgfHwgKGlzQmFzZVBsYWNlbWVudCB8fCAhZmxpcFZhcmlhdGlvbnMgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocHJlZmVycmVkUGxhY2VtZW50KV0gOiBnZXRFeHBhbmRlZEZhbGxiYWNrUGxhY2VtZW50cyhwcmVmZXJyZWRQbGFjZW1lbnQpKTtcbiAgdmFyIHBsYWNlbWVudHMgPSBbcHJlZmVycmVkUGxhY2VtZW50XS5jb25jYXQoZmFsbGJhY2tQbGFjZW1lbnRzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGFjYy5jb25jYXQoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvID8gY29tcHV0ZUF1dG9QbGFjZW1lbnQoc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nLFxuICAgICAgZmxpcFZhcmlhdGlvbnM6IGZsaXBWYXJpYXRpb25zLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzOiBhbGxvd2VkQXV0b1BsYWNlbWVudHNcbiAgICB9KSA6IHBsYWNlbWVudCk7XG4gIH0sIFtdKTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgY2hlY2tzTWFwID0gbmV3IE1hcCgpO1xuICB2YXIgbWFrZUZhbGxiYWNrQ2hlY2tzID0gdHJ1ZTtcbiAgdmFyIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudHNbMF07XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwbGFjZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBsYWNlbWVudCA9IHBsYWNlbWVudHNbaV07XG5cbiAgICB2YXIgX2Jhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG5cbiAgICB2YXIgaXNTdGFydFZhcmlhdGlvbiA9IGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSBzdGFydDtcbiAgICB2YXIgaXNWZXJ0aWNhbCA9IFt0b3AsIGJvdHRvbV0uaW5kZXhPZihfYmFzZVBsYWNlbWVudCkgPj0gMDtcbiAgICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICB2YXIgb3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5OiBhbHRCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmdcbiAgICB9KTtcbiAgICB2YXIgbWFpblZhcmlhdGlvblNpZGUgPSBpc1ZlcnRpY2FsID8gaXNTdGFydFZhcmlhdGlvbiA/IHJpZ2h0IDogbGVmdCA6IGlzU3RhcnRWYXJpYXRpb24gPyBib3R0b20gOiB0b3A7XG5cbiAgICBpZiAocmVmZXJlbmNlUmVjdFtsZW5dID4gcG9wcGVyUmVjdFtsZW5dKSB7XG4gICAgICBtYWluVmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB9XG5cbiAgICB2YXIgYWx0VmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB2YXIgY2hlY2tzID0gW107XG5cbiAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgY2hlY2tzLnB1c2gob3ZlcmZsb3dbX2Jhc2VQbGFjZW1lbnRdIDw9IDApO1xuICAgIH1cblxuICAgIGlmIChjaGVja0FsdEF4aXMpIHtcbiAgICAgIGNoZWNrcy5wdXNoKG92ZXJmbG93W21haW5WYXJpYXRpb25TaWRlXSA8PSAwLCBvdmVyZmxvd1thbHRWYXJpYXRpb25TaWRlXSA8PSAwKTtcbiAgICB9XG5cbiAgICBpZiAoY2hlY2tzLmV2ZXJ5KGZ1bmN0aW9uIChjaGVjaykge1xuICAgICAgcmV0dXJuIGNoZWNrO1xuICAgIH0pKSB7XG4gICAgICBmaXJzdEZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICBtYWtlRmFsbGJhY2tDaGVja3MgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNoZWNrc01hcC5zZXQocGxhY2VtZW50LCBjaGVja3MpO1xuICB9XG5cbiAgaWYgKG1ha2VGYWxsYmFja0NoZWNrcykge1xuICAgIC8vIGAyYCBtYXkgYmUgZGVzaXJlZCBpbiBzb21lIGNhc2VzIOKAkyByZXNlYXJjaCBsYXRlclxuICAgIHZhciBudW1iZXJPZkNoZWNrcyA9IGZsaXBWYXJpYXRpb25zID8gMyA6IDE7XG5cbiAgICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChfaSkge1xuICAgICAgdmFyIGZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnRzLmZpbmQoZnVuY3Rpb24gKHBsYWNlbWVudCkge1xuICAgICAgICB2YXIgY2hlY2tzID0gY2hlY2tzTWFwLmdldChwbGFjZW1lbnQpO1xuXG4gICAgICAgIGlmIChjaGVja3MpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tzLnNsaWNlKDAsIF9pKS5ldmVyeShmdW5jdGlvbiAoY2hlY2spIHtcbiAgICAgICAgICAgIHJldHVybiBjaGVjaztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChmaXR0aW5nUGxhY2VtZW50KSB7XG4gICAgICAgIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IGZpdHRpbmdQbGFjZW1lbnQ7XG4gICAgICAgIHJldHVybiBcImJyZWFrXCI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAodmFyIF9pID0gbnVtYmVyT2ZDaGVja3M7IF9pID4gMDsgX2ktLSkge1xuICAgICAgdmFyIF9yZXQgPSBfbG9vcChfaSk7XG5cbiAgICAgIGlmIChfcmV0ID09PSBcImJyZWFrXCIpIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdGF0ZS5wbGFjZW1lbnQgIT09IGZpcnN0Rml0dGluZ1BsYWNlbWVudCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0uX3NraXAgPSB0cnVlO1xuICAgIHN0YXRlLnBsYWNlbWVudCA9IGZpcnN0Rml0dGluZ1BsYWNlbWVudDtcbiAgICBzdGF0ZS5yZXNldCA9IHRydWU7XG4gIH1cbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2ZsaXAnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICBmbjogZmxpcCxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXSxcbiAgZGF0YToge1xuICAgIF9za2lwOiBmYWxzZVxuICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/flip.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/hide.js": /*!***********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/hide.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n\n\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9oaWRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RDtBQUNDOztBQUV4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUsMENBQUcsRUFBRSw0Q0FBSyxFQUFFLDZDQUFNLEVBQUUsMkNBQUk7QUFDbEM7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLG9FQUFjO0FBQ3hDO0FBQ0EsR0FBRztBQUNILDBCQUEwQixvRUFBYztBQUN4QztBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QztBQUM1QztBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9oaWRlLmpzPzM2ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5cbmZ1bmN0aW9uIGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0LCBwcmV2ZW50ZWRPZmZzZXRzKSB7XG4gIGlmIChwcmV2ZW50ZWRPZmZzZXRzID09PSB2b2lkIDApIHtcbiAgICBwcmV2ZW50ZWRPZmZzZXRzID0ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IG92ZXJmbG93LnRvcCAtIHJlY3QuaGVpZ2h0IC0gcHJldmVudGVkT2Zmc2V0cy55LFxuICAgIHJpZ2h0OiBvdmVyZmxvdy5yaWdodCAtIHJlY3Qud2lkdGggKyBwcmV2ZW50ZWRPZmZzZXRzLngsXG4gICAgYm90dG9tOiBvdmVyZmxvdy5ib3R0b20gLSByZWN0LmhlaWdodCArIHByZXZlbnRlZE9mZnNldHMueSxcbiAgICBsZWZ0OiBvdmVyZmxvdy5sZWZ0IC0gcmVjdC53aWR0aCAtIHByZXZlbnRlZE9mZnNldHMueFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdLnNvbWUoZnVuY3Rpb24gKHNpZGUpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dbc2lkZV0gPj0gMDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhpZGUoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgcHJldmVudGVkT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucHJldmVudE92ZXJmbG93O1xuICB2YXIgcmVmZXJlbmNlT3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGVsZW1lbnRDb250ZXh0OiAncmVmZXJlbmNlJ1xuICB9KTtcbiAgdmFyIHBvcHBlckFsdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBhbHRCb3VuZGFyeTogdHJ1ZVxuICB9KTtcbiAgdmFyIHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKHJlZmVyZW5jZU92ZXJmbG93LCByZWZlcmVuY2VSZWN0KTtcbiAgdmFyIHBvcHBlckVzY2FwZU9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhwb3BwZXJBbHRPdmVyZmxvdywgcG9wcGVyUmVjdCwgcHJldmVudGVkT2Zmc2V0cyk7XG4gIHZhciBpc1JlZmVyZW5jZUhpZGRlbiA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChyZWZlcmVuY2VDbGlwcGluZ09mZnNldHMpO1xuICB2YXIgaGFzUG9wcGVyRXNjYXBlZCA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChwb3BwZXJFc2NhcGVPZmZzZXRzKTtcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IHtcbiAgICByZWZlcmVuY2VDbGlwcGluZ09mZnNldHM6IHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyxcbiAgICBwb3BwZXJFc2NhcGVPZmZzZXRzOiBwb3BwZXJFc2NhcGVPZmZzZXRzLFxuICAgIGlzUmVmZXJlbmNlSGlkZGVuOiBpc1JlZmVyZW5jZUhpZGRlbixcbiAgICBoYXNQb3BwZXJFc2NhcGVkOiBoYXNQb3BwZXJFc2NhcGVkXG4gIH07XG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcmVmZXJlbmNlLWhpZGRlbic6IGlzUmVmZXJlbmNlSGlkZGVuLFxuICAgICdkYXRhLXBvcHBlci1lc2NhcGVkJzogaGFzUG9wcGVyRXNjYXBlZFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2hpZGUnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ3ByZXZlbnRPdmVyZmxvdyddLFxuICBmbjogaGlkZVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/hide.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/index.js": /*!************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/index.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyStyles: () => (/* reexport safe */ _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ arrow: () => (/* reexport safe */ _arrow_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ computeStyles: () => (/* reexport safe */ _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ eventListeners: () => (/* reexport safe */ _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ flip: () => (/* reexport safe */ _flip_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ hide: () => (/* reexport safe */ _hide_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n/* harmony export */ offset: () => (/* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n/* harmony export */ popperOffsets: () => (/* reexport safe */ _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n/* harmony export */ preventOverflow: () => (/* reexport safe */ _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applyStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\");\n/* harmony import */ var _arrow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrow.js */ \"./node_modules/@popperjs/core/lib/modifiers/arrow.js\");\n/* harmony import */ var _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./computeStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\");\n/* harmony import */ var _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eventListeners.js */ \"./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/@popperjs/core/lib/modifiers/flip.js\");\n/* harmony import */ var _hide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hide.js */ \"./node_modules/@popperjs/core/lib/modifiers/hide.js\");\n/* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./offset.js */ \"./node_modules/@popperjs/core/lib/modifiers/offset.js\");\n/* harmony import */ var _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./popperOffsets.js */ \"./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\");\n/* harmony import */ var _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./preventOverflow.js */ \"./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js\");\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEQ7QUFDWjtBQUNnQjtBQUNFO0FBQ3BCO0FBQ0E7QUFDSTtBQUNjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvaW5kZXguanM/NGY2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIGFwcGx5U3R5bGVzIH0gZnJvbSBcIi4vYXBwbHlTdHlsZXMuanNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXJyb3cgfSBmcm9tIFwiLi9hcnJvdy5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb21wdXRlU3R5bGVzIH0gZnJvbSBcIi4vY29tcHV0ZVN0eWxlcy5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBldmVudExpc3RlbmVycyB9IGZyb20gXCIuL2V2ZW50TGlzdGVuZXJzLmpzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZsaXAgfSBmcm9tIFwiLi9mbGlwLmpzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGhpZGUgfSBmcm9tIFwiLi9oaWRlLmpzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG9mZnNldCB9IGZyb20gXCIuL29mZnNldC5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwb3BwZXJPZmZzZXRzIH0gZnJvbSBcIi4vcG9wcGVyT2Zmc2V0cy5qc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwcmV2ZW50T3ZlcmZsb3cgfSBmcm9tIFwiLi9wcmV2ZW50T3ZlcmZsb3cuanNcIjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/index.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/offset.js": /*!*************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/offset.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ distanceAndSkiddingToXY: () => (/* binding */ distanceAndSkiddingToXY)\n/* harmony export */ });\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n\n // eslint-disable-next-line import/no-unused-modules\n\nfunction distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement);\n var invertDistance = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9vZmZzZXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0RDtBQUNELENBQUM7O0FBRXJEO0FBQ1Asc0JBQXNCLHNFQUFnQjtBQUN0Qyx3QkFBd0IsMkNBQUksRUFBRSwwQ0FBRzs7QUFFakMsbUVBQW1FO0FBQ25FO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVUsMkNBQUksRUFBRSw0Q0FBSztBQUNyQjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsaURBQVU7QUFDdkI7QUFDQTtBQUNBLEdBQUcsSUFBSTtBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7OztBQUdGLGlFQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9vZmZzZXQuanM/ODgyOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgcGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZUFuZFNraWRkaW5nVG9YWShwbGFjZW1lbnQsIHJlY3RzLCBvZmZzZXQpIHtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHZhciBpbnZlcnREaXN0YW5jZSA9IFtsZWZ0LCB0b3BdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMCA/IC0xIDogMTtcblxuICB2YXIgX3JlZiA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgcmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KSkgOiBvZmZzZXQsXG4gICAgICBza2lkZGluZyA9IF9yZWZbMF0sXG4gICAgICBkaXN0YW5jZSA9IF9yZWZbMV07XG5cbiAgc2tpZGRpbmcgPSBza2lkZGluZyB8fCAwO1xuICBkaXN0YW5jZSA9IChkaXN0YW5jZSB8fCAwKSAqIGludmVydERpc3RhbmNlO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpID49IDAgPyB7XG4gICAgeDogZGlzdGFuY2UsXG4gICAgeTogc2tpZGRpbmdcbiAgfSA6IHtcbiAgICB4OiBza2lkZGluZyxcbiAgICB5OiBkaXN0YW5jZVxuICB9O1xufVxuXG5mdW5jdGlvbiBvZmZzZXQoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmMi5uYW1lO1xuICB2YXIgX29wdGlvbnMkb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQsXG4gICAgICBvZmZzZXQgPSBfb3B0aW9ucyRvZmZzZXQgPT09IHZvaWQgMCA/IFswLCAwXSA6IF9vcHRpb25zJG9mZnNldDtcbiAgdmFyIGRhdGEgPSBwbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRpc3RhbmNlQW5kU2tpZGRpbmdUb1hZKHBsYWNlbWVudCwgc3RhdGUucmVjdHMsIG9mZnNldCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICB2YXIgX2RhdGEkc3RhdGUkcGxhY2VtZW50ID0gZGF0YVtzdGF0ZS5wbGFjZW1lbnRdLFxuICAgICAgeCA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC54LFxuICAgICAgeSA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC55O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54ICs9IHg7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkgKz0geTtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnb2Zmc2V0JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICBmbjogb2Zmc2V0XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/offset.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js": /*!********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/computeOffsets.js */ \"./node_modules/@popperjs/core/lib/utils/computeOffsets.js\");\n\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = (0,_utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wb3BwZXJPZmZzZXRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdEOztBQUV4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixvRUFBYztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxFQUFFOzs7QUFHRixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qcz9mZGE2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZU9mZnNldHMuanNcIjtcblxuZnVuY3Rpb24gcG9wcGVyT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICAvLyBPZmZzZXRzIGFyZSB0aGUgYWN0dWFsIHBvc2l0aW9uIHRoZSBwb3BwZXIgbmVlZHMgdG8gaGF2ZSB0byBiZVxuICAvLyBwcm9wZXJseSBwb3NpdGlvbmVkIG5lYXIgaXRzIHJlZmVyZW5jZSBlbGVtZW50XG4gIC8vIFRoaXMgaXMgdGhlIG1vc3QgYmFzaWMgcGxhY2VtZW50LCBhbmQgd2lsbCBiZSBhZGp1c3RlZCBieVxuICAvLyB0aGUgbW9kaWZpZXJzIGluIHRoZSBuZXh0IHN0ZXBcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IGNvbXB1dGVPZmZzZXRzKHtcbiAgICByZWZlcmVuY2U6IHN0YXRlLnJlY3RzLnJlZmVyZW5jZSxcbiAgICBlbGVtZW50OiBzdGF0ZS5yZWN0cy5wb3BwZXIsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBzdGF0ZS5wbGFjZW1lbnRcbiAgfSk7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdwb3BwZXJPZmZzZXRzJyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdyZWFkJyxcbiAgZm46IHBvcHBlck9mZnNldHMsXG4gIGRhdGE6IHt9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js": /*!**********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\");\n/* harmony import */ var _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getAltAxis.js */ \"./node_modules/@popperjs/core/lib/utils/getAltAxis.js\");\n/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/within.js */ \"./node_modules/@popperjs/core/lib/utils/within.js\");\n/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\");\n/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\");\n/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getFreshSideObject.js */ \"./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js\");\n/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(state.placement);\n var variation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(basePlacement);\n var altAxis = (0,_utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;\n var altSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : (0,_utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(min, tetherMin) : min, offset, tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;\n\n var _altSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [_enums_js__WEBPACK_IMPORTED_MODULE_5__.top, _enums_js__WEBPACK_IMPORTED_MODULE_5__.left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.withinMaxClamp)(_tetherMin, _offset, _tetherMax) : (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQThEO0FBQ0Y7QUFDZ0I7QUFDNUI7QUFDWTtBQUNGO0FBQ0k7QUFDTjtBQUNKO0FBQ1k7QUFDRTs7QUFFbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsb0VBQWM7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0JBQXNCLHNFQUFnQjtBQUN0QyxrQkFBa0Isa0VBQVk7QUFDOUI7QUFDQSxpQkFBaUIsOEVBQXdCO0FBQ3pDLGdCQUFnQixnRUFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQSw0RkFBNEY7QUFDNUY7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxzQ0FBc0MsMENBQUcsR0FBRywyQ0FBSTtBQUNoRCxxQ0FBcUMsNkNBQU0sR0FBRyw0Q0FBSztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDRDQUFLO0FBQ3BDLCtCQUErQiw0Q0FBSywyQ0FBMkM7QUFDL0U7O0FBRUE7QUFDQSw2Q0FBNkMsdUVBQWE7QUFDMUQ7QUFDQTtBQUNBO0FBQ0EseUhBQXlILHdFQUFrQjtBQUMzSTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUIsd0RBQU07QUFDekI7QUFDQTtBQUNBLG9EQUFvRCx5RUFBZTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQix3REFBTSxVQUFVLG9EQUFPLHlDQUF5QyxvREFBTztBQUNqRztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSx1Q0FBdUMsMENBQUcsR0FBRywyQ0FBSTs7QUFFakQsc0NBQXNDLDZDQUFNLEdBQUcsNENBQUs7O0FBRXBEOztBQUVBOztBQUVBOztBQUVBOztBQUVBLHdCQUF3QiwwQ0FBRyxFQUFFLDJDQUFJOztBQUVqQzs7QUFFQTs7QUFFQTs7QUFFQSxvREFBb0QsZ0VBQWMsb0NBQW9DLHdEQUFNOztBQUU1RztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOzs7QUFHRixpRUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvcHJldmVudE92ZXJmbG93LmpzP2ZlMTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tLCBzdGFydCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldEFsdEF4aXMgZnJvbSBcIi4uL3V0aWxzL2dldEFsdEF4aXMuanNcIjtcbmltcG9ydCB7IHdpdGhpbiwgd2l0aGluTWF4Q2xhbXAgfSBmcm9tIFwiLi4vdXRpbHMvd2l0aGluLmpzXCI7XG5pbXBvcnQgZ2V0TGF5b3V0UmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldExheW91dFJlY3QuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IGdldEZyZXNoU2lkZU9iamVjdCBmcm9tIFwiLi4vdXRpbHMvZ2V0RnJlc2hTaWRlT2JqZWN0LmpzXCI7XG5pbXBvcnQgeyBtaW4gYXMgbWF0aE1pbiwgbWF4IGFzIG1hdGhNYXggfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBwcmV2ZW50T3ZlcmZsb3coX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmLm5hbWU7XG4gIHZhciBfb3B0aW9ucyRtYWluQXhpcyA9IG9wdGlvbnMubWFpbkF4aXMsXG4gICAgICBjaGVja01haW5BeGlzID0gX29wdGlvbnMkbWFpbkF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRtYWluQXhpcyxcbiAgICAgIF9vcHRpb25zJGFsdEF4aXMgPSBvcHRpb25zLmFsdEF4aXMsXG4gICAgICBjaGVja0FsdEF4aXMgPSBfb3B0aW9ucyRhbHRBeGlzID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJGFsdEF4aXMsXG4gICAgICBib3VuZGFyeSA9IG9wdGlvbnMuYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBvcHRpb25zLnJvb3RCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5ID0gb3B0aW9ucy5hbHRCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmcgPSBvcHRpb25zLnBhZGRpbmcsXG4gICAgICBfb3B0aW9ucyR0ZXRoZXIgPSBvcHRpb25zLnRldGhlcixcbiAgICAgIHRldGhlciA9IF9vcHRpb25zJHRldGhlciA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHRldGhlcixcbiAgICAgIF9vcHRpb25zJHRldGhlck9mZnNldCA9IG9wdGlvbnMudGV0aGVyT2Zmc2V0LFxuICAgICAgdGV0aGVyT2Zmc2V0ID0gX29wdGlvbnMkdGV0aGVyT2Zmc2V0ID09PSB2b2lkIDAgPyAwIDogX29wdGlvbnMkdGV0aGVyT2Zmc2V0O1xuICB2YXIgb3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICBwYWRkaW5nOiBwYWRkaW5nLFxuICAgIGFsdEJvdW5kYXJ5OiBhbHRCb3VuZGFyeVxuICB9KTtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciB2YXJpYXRpb24gPSBnZXRWYXJpYXRpb24oc3RhdGUucGxhY2VtZW50KTtcbiAgdmFyIGlzQmFzZVBsYWNlbWVudCA9ICF2YXJpYXRpb247XG4gIHZhciBtYWluQXhpcyA9IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KTtcbiAgdmFyIGFsdEF4aXMgPSBnZXRBbHRBeGlzKG1haW5BeGlzKTtcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHM7XG4gIHZhciByZWZlcmVuY2VSZWN0ID0gc3RhdGUucmVjdHMucmVmZXJlbmNlO1xuICB2YXIgcG9wcGVyUmVjdCA9IHN0YXRlLnJlY3RzLnBvcHBlcjtcbiAgdmFyIHRldGhlck9mZnNldFZhbHVlID0gdHlwZW9mIHRldGhlck9mZnNldCA9PT0gJ2Z1bmN0aW9uJyA/IHRldGhlck9mZnNldChPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5yZWN0cywge1xuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pKSA6IHRldGhlck9mZnNldDtcbiAgdmFyIG5vcm1hbGl6ZWRUZXRoZXJPZmZzZXRWYWx1ZSA9IHR5cGVvZiB0ZXRoZXJPZmZzZXRWYWx1ZSA9PT0gJ251bWJlcicgPyB7XG4gICAgbWFpbkF4aXM6IHRldGhlck9mZnNldFZhbHVlLFxuICAgIGFsdEF4aXM6IHRldGhlck9mZnNldFZhbHVlXG4gIH0gOiBPYmplY3QuYXNzaWduKHtcbiAgICBtYWluQXhpczogMCxcbiAgICBhbHRBeGlzOiAwXG4gIH0sIHRldGhlck9mZnNldFZhbHVlKTtcbiAgdmFyIG9mZnNldE1vZGlmaWVyU3RhdGUgPSBzdGF0ZS5tb2RpZmllcnNEYXRhLm9mZnNldCA/IHN0YXRlLm1vZGlmaWVyc0RhdGEub2Zmc2V0W3N0YXRlLnBsYWNlbWVudF0gOiBudWxsO1xuICB2YXIgZGF0YSA9IHtcbiAgICB4OiAwLFxuICAgIHk6IDBcbiAgfTtcblxuICBpZiAoIXBvcHBlck9mZnNldHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgIHZhciBfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQ7XG5cbiAgICB2YXIgbWFpblNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gdG9wIDogbGVmdDtcbiAgICB2YXIgYWx0U2lkZSA9IG1haW5BeGlzID09PSAneScgPyBib3R0b20gOiByaWdodDtcbiAgICB2YXIgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbiAgICB2YXIgb2Zmc2V0ID0gcG9wcGVyT2Zmc2V0c1ttYWluQXhpc107XG4gICAgdmFyIG1pbiA9IG9mZnNldCArIG92ZXJmbG93W21haW5TaWRlXTtcbiAgICB2YXIgbWF4ID0gb2Zmc2V0IC0gb3ZlcmZsb3dbYWx0U2lkZV07XG4gICAgdmFyIGFkZGl0aXZlID0gdGV0aGVyID8gLXBvcHBlclJlY3RbbGVuXSAvIDIgOiAwO1xuICAgIHZhciBtaW5MZW4gPSB2YXJpYXRpb24gPT09IHN0YXJ0ID8gcmVmZXJlbmNlUmVjdFtsZW5dIDogcG9wcGVyUmVjdFtsZW5dO1xuICAgIHZhciBtYXhMZW4gPSB2YXJpYXRpb24gPT09IHN0YXJ0ID8gLXBvcHBlclJlY3RbbGVuXSA6IC1yZWZlcmVuY2VSZWN0W2xlbl07IC8vIFdlIG5lZWQgdG8gaW5jbHVkZSB0aGUgYXJyb3cgaW4gdGhlIGNhbGN1bGF0aW9uIHNvIHRoZSBhcnJvdyBkb2Vzbid0IGdvXG4gICAgLy8gb3V0c2lkZSB0aGUgcmVmZXJlbmNlIGJvdW5kc1xuXG4gICAgdmFyIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93O1xuICAgIHZhciBhcnJvd1JlY3QgPSB0ZXRoZXIgJiYgYXJyb3dFbGVtZW50ID8gZ2V0TGF5b3V0UmVjdChhcnJvd0VsZW1lbnQpIDoge1xuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDBcbiAgICB9O1xuICAgIHZhciBhcnJvd1BhZGRpbmdPYmplY3QgPSBzdGF0ZS5tb2RpZmllcnNEYXRhWydhcnJvdyNwZXJzaXN0ZW50J10gPyBzdGF0ZS5tb2RpZmllcnNEYXRhWydhcnJvdyNwZXJzaXN0ZW50J10ucGFkZGluZyA6IGdldEZyZXNoU2lkZU9iamVjdCgpO1xuICAgIHZhciBhcnJvd1BhZGRpbmdNaW4gPSBhcnJvd1BhZGRpbmdPYmplY3RbbWFpblNpZGVdO1xuICAgIHZhciBhcnJvd1BhZGRpbmdNYXggPSBhcnJvd1BhZGRpbmdPYmplY3RbYWx0U2lkZV07IC8vIElmIHRoZSByZWZlcmVuY2UgbGVuZ3RoIGlzIHNtYWxsZXIgdGhhbiB0aGUgYXJyb3cgbGVuZ3RoLCB3ZSBkb24ndCB3YW50XG4gICAgLy8gdG8gaW5jbHVkZSBpdHMgZnVsbCBzaXplIGluIHRoZSBjYWxjdWxhdGlvbi4gSWYgdGhlIHJlZmVyZW5jZSBpcyBzbWFsbFxuICAgIC8vIGFuZCBuZWFyIHRoZSBlZGdlIG9mIGEgYm91bmRhcnksIHRoZSBwb3BwZXIgY2FuIG92ZXJmbG93IGV2ZW4gaWYgdGhlXG4gICAgLy8gcmVmZXJlbmNlIGlzIG5vdCBvdmVyZmxvd2luZyBhcyB3ZWxsIChlLmcuIHZpcnR1YWwgZWxlbWVudHMgd2l0aCBub1xuICAgIC8vIHdpZHRoIG9yIGhlaWdodClcblxuICAgIHZhciBhcnJvd0xlbiA9IHdpdGhpbigwLCByZWZlcmVuY2VSZWN0W2xlbl0sIGFycm93UmVjdFtsZW5dKTtcbiAgICB2YXIgbWluT2Zmc2V0ID0gaXNCYXNlUGxhY2VtZW50ID8gcmVmZXJlbmNlUmVjdFtsZW5dIC8gMiAtIGFkZGl0aXZlIC0gYXJyb3dMZW4gLSBhcnJvd1BhZGRpbmdNaW4gLSBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUubWFpbkF4aXMgOiBtaW5MZW4gLSBhcnJvd0xlbiAtIGFycm93UGFkZGluZ01pbiAtIG5vcm1hbGl6ZWRUZXRoZXJPZmZzZXRWYWx1ZS5tYWluQXhpcztcbiAgICB2YXIgbWF4T2Zmc2V0ID0gaXNCYXNlUGxhY2VtZW50ID8gLXJlZmVyZW5jZVJlY3RbbGVuXSAvIDIgKyBhZGRpdGl2ZSArIGFycm93TGVuICsgYXJyb3dQYWRkaW5nTWF4ICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzIDogbWF4TGVuICsgYXJyb3dMZW4gKyBhcnJvd1BhZGRpbmdNYXggKyBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUubWFpbkF4aXM7XG4gICAgdmFyIGFycm93T2Zmc2V0UGFyZW50ID0gc3RhdGUuZWxlbWVudHMuYXJyb3cgJiYgZ2V0T2Zmc2V0UGFyZW50KHN0YXRlLmVsZW1lbnRzLmFycm93KTtcbiAgICB2YXIgY2xpZW50T2Zmc2V0ID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBtYWluQXhpcyA9PT0gJ3knID8gYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50VG9wIHx8IDAgOiBhcnJvd09mZnNldFBhcmVudC5jbGllbnRMZWZ0IHx8IDAgOiAwO1xuICAgIHZhciBvZmZzZXRNb2RpZmllclZhbHVlID0gKF9vZmZzZXRNb2RpZmllclN0YXRlJCA9IG9mZnNldE1vZGlmaWVyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9mZnNldE1vZGlmaWVyU3RhdGVbbWFpbkF4aXNdKSAhPSBudWxsID8gX29mZnNldE1vZGlmaWVyU3RhdGUkIDogMDtcbiAgICB2YXIgdGV0aGVyTWluID0gb2Zmc2V0ICsgbWluT2Zmc2V0IC0gb2Zmc2V0TW9kaWZpZXJWYWx1ZSAtIGNsaWVudE9mZnNldDtcbiAgICB2YXIgdGV0aGVyTWF4ID0gb2Zmc2V0ICsgbWF4T2Zmc2V0IC0gb2Zmc2V0TW9kaWZpZXJWYWx1ZTtcbiAgICB2YXIgcHJldmVudGVkT2Zmc2V0ID0gd2l0aGluKHRldGhlciA/IG1hdGhNaW4obWluLCB0ZXRoZXJNaW4pIDogbWluLCBvZmZzZXQsIHRldGhlciA/IG1hdGhNYXgobWF4LCB0ZXRoZXJNYXgpIDogbWF4KTtcbiAgICBwb3BwZXJPZmZzZXRzW21haW5BeGlzXSA9IHByZXZlbnRlZE9mZnNldDtcbiAgICBkYXRhW21haW5BeGlzXSA9IHByZXZlbnRlZE9mZnNldCAtIG9mZnNldDtcbiAgfVxuXG4gIGlmIChjaGVja0FsdEF4aXMpIHtcbiAgICB2YXIgX29mZnNldE1vZGlmaWVyU3RhdGUkMjtcblxuICAgIHZhciBfbWFpblNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gdG9wIDogbGVmdDtcblxuICAgIHZhciBfYWx0U2lkZSA9IG1haW5BeGlzID09PSAneCcgPyBib3R0b20gOiByaWdodDtcblxuICAgIHZhciBfb2Zmc2V0ID0gcG9wcGVyT2Zmc2V0c1thbHRBeGlzXTtcblxuICAgIHZhciBfbGVuID0gYWx0QXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuXG4gICAgdmFyIF9taW4gPSBfb2Zmc2V0ICsgb3ZlcmZsb3dbX21haW5TaWRlXTtcblxuICAgIHZhciBfbWF4ID0gX29mZnNldCAtIG92ZXJmbG93W19hbHRTaWRlXTtcblxuICAgIHZhciBpc09yaWdpblNpZGUgPSBbdG9wLCBsZWZ0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpICE9PSAtMTtcblxuICAgIHZhciBfb2Zmc2V0TW9kaWZpZXJWYWx1ZSA9IChfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQyID0gb2Zmc2V0TW9kaWZpZXJTdGF0ZSA9PSBudWxsID8gdm9pZCAwIDogb2Zmc2V0TW9kaWZpZXJTdGF0ZVthbHRBeGlzXSkgIT0gbnVsbCA/IF9vZmZzZXRNb2RpZmllclN0YXRlJDIgOiAwO1xuXG4gICAgdmFyIF90ZXRoZXJNaW4gPSBpc09yaWdpblNpZGUgPyBfbWluIDogX29mZnNldCAtIHJlZmVyZW5jZVJlY3RbX2xlbl0gLSBwb3BwZXJSZWN0W19sZW5dIC0gX29mZnNldE1vZGlmaWVyVmFsdWUgKyBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUuYWx0QXhpcztcblxuICAgIHZhciBfdGV0aGVyTWF4ID0gaXNPcmlnaW5TaWRlID8gX29mZnNldCArIHJlZmVyZW5jZVJlY3RbX2xlbl0gKyBwb3BwZXJSZWN0W19sZW5dIC0gX29mZnNldE1vZGlmaWVyVmFsdWUgLSBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUuYWx0QXhpcyA6IF9tYXg7XG5cbiAgICB2YXIgX3ByZXZlbnRlZE9mZnNldCA9IHRldGhlciAmJiBpc09yaWdpblNpZGUgPyB3aXRoaW5NYXhDbGFtcChfdGV0aGVyTWluLCBfb2Zmc2V0LCBfdGV0aGVyTWF4KSA6IHdpdGhpbih0ZXRoZXIgPyBfdGV0aGVyTWluIDogX21pbiwgX29mZnNldCwgdGV0aGVyID8gX3RldGhlck1heCA6IF9tYXgpO1xuXG4gICAgcG9wcGVyT2Zmc2V0c1thbHRBeGlzXSA9IF9wcmV2ZW50ZWRPZmZzZXQ7XG4gICAgZGF0YVthbHRBeGlzXSA9IF9wcmV2ZW50ZWRPZmZzZXQgLSBfb2Zmc2V0O1xuICB9XG5cbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IGRhdGE7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICBmbjogcHJldmVudE92ZXJmbG93LFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ29mZnNldCddXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/popper-lite.js": /*!********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/popper-lite.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPopper: () => (/* binding */ createPopper),\n/* harmony export */ defaultModifiers: () => (/* binding */ defaultModifiers),\n/* harmony export */ detectOverflow: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n/* harmony export */ popperGenerator: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)\n/* harmony export */ });\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/createPopper.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ \"./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\");\n/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ \"./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\");\n/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\");\n/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\");\n\n\n\n\n\nvar defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]];\nvar createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3BvcHBlci1saXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBb0U7QUFDVDtBQUNGO0FBQ0E7QUFDSjtBQUNyRCx3QkFBd0Isb0VBQWMsRUFBRSxtRUFBYSxFQUFFLG1FQUFhLEVBQUUsaUVBQVc7QUFDakYsZ0NBQWdDLGlFQUFlO0FBQy9DO0FBQ0EsQ0FBQyxHQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXItbGl0ZS5qcz9mODM3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBvcHBlckdlbmVyYXRvciwgZGV0ZWN0T3ZlcmZsb3cgfSBmcm9tIFwiLi9jcmVhdGVQb3BwZXIuanNcIjtcbmltcG9ydCBldmVudExpc3RlbmVycyBmcm9tIFwiLi9tb2RpZmllcnMvZXZlbnRMaXN0ZW5lcnMuanNcIjtcbmltcG9ydCBwb3BwZXJPZmZzZXRzIGZyb20gXCIuL21vZGlmaWVycy9wb3BwZXJPZmZzZXRzLmpzXCI7XG5pbXBvcnQgY29tcHV0ZVN0eWxlcyBmcm9tIFwiLi9tb2RpZmllcnMvY29tcHV0ZVN0eWxlcy5qc1wiO1xuaW1wb3J0IGFwcGx5U3R5bGVzIGZyb20gXCIuL21vZGlmaWVycy9hcHBseVN0eWxlcy5qc1wiO1xudmFyIGRlZmF1bHRNb2RpZmllcnMgPSBbZXZlbnRMaXN0ZW5lcnMsIHBvcHBlck9mZnNldHMsIGNvbXB1dGVTdHlsZXMsIGFwcGx5U3R5bGVzXTtcbnZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKHtcbiAgZGVmYXVsdE1vZGlmaWVyczogZGVmYXVsdE1vZGlmaWVyc1xufSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyLCBwb3BwZXJHZW5lcmF0b3IsIGRlZmF1bHRNb2RpZmllcnMsIGRldGVjdE92ZXJmbG93IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/popper-lite.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/popper.js": /*!***************************************************!*\ !*** ./node_modules/@popperjs/core/lib/popper.js ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.applyStyles),\n/* harmony export */ arrow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.arrow),\n/* harmony export */ computeStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.computeStyles),\n/* harmony export */ createPopper: () => (/* binding */ createPopper),\n/* harmony export */ createPopperLite: () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__.createPopper),\n/* harmony export */ defaultModifiers: () => (/* binding */ defaultModifiers),\n/* harmony export */ detectOverflow: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]),\n/* harmony export */ eventListeners: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.eventListeners),\n/* harmony export */ flip: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.flip),\n/* harmony export */ hide: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.hide),\n/* harmony export */ offset: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.offset),\n/* harmony export */ popperGenerator: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator),\n/* harmony export */ popperOffsets: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.popperOffsets),\n/* harmony export */ preventOverflow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.preventOverflow)\n/* harmony export */ });\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/createPopper.js\");\n/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./createPopper.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ \"./node_modules/@popperjs/core/lib/modifiers/eventListeners.js\");\n/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ \"./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\");\n/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/computeStyles.js\");\n/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ \"./node_modules/@popperjs/core/lib/modifiers/applyStyles.js\");\n/* harmony import */ var _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modifiers/offset.js */ \"./node_modules/@popperjs/core/lib/modifiers/offset.js\");\n/* harmony import */ var _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modifiers/flip.js */ \"./node_modules/@popperjs/core/lib/modifiers/flip.js\");\n/* harmony import */ var _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modifiers/preventOverflow.js */ \"./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js\");\n/* harmony import */ var _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modifiers/arrow.js */ \"./node_modules/@popperjs/core/lib/modifiers/arrow.js\");\n/* harmony import */ var _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modifiers/hide.js */ \"./node_modules/@popperjs/core/lib/modifiers/hide.js\");\n/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./popper-lite.js */ \"./node_modules/@popperjs/core/lib/popper-lite.js\");\n/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modifiers/index.js */ \"./node_modules/@popperjs/core/lib/modifiers/index.js\");\n\n\n\n\n\n\n\n\n\n\nvar defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]];\nvar createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator)({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n // eslint-disable-next-line import/no-unused-modules\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3BvcHBlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBb0U7QUFDVDtBQUNGO0FBQ0E7QUFDSjtBQUNWO0FBQ0o7QUFDc0I7QUFDcEI7QUFDRjtBQUN2Qyx3QkFBd0Isb0VBQWMsRUFBRSxtRUFBYSxFQUFFLG1FQUFhLEVBQUUsaUVBQVcsRUFBRSw0REFBTSxFQUFFLDBEQUFJLEVBQUUscUVBQWUsRUFBRSwyREFBSyxFQUFFLDBEQUFJO0FBQzdILGdDQUFnQyxpRUFBZTtBQUMvQztBQUNBLENBQUMsR0FBRzs7QUFFdUUsQ0FBQzs7QUFFUixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXIuanM/YWY1OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3BwZXJHZW5lcmF0b3IsIGRldGVjdE92ZXJmbG93IH0gZnJvbSBcIi4vY3JlYXRlUG9wcGVyLmpzXCI7XG5pbXBvcnQgZXZlbnRMaXN0ZW5lcnMgZnJvbSBcIi4vbW9kaWZpZXJzL2V2ZW50TGlzdGVuZXJzLmpzXCI7XG5pbXBvcnQgcG9wcGVyT2Zmc2V0cyBmcm9tIFwiLi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IGNvbXB1dGVTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2NvbXB1dGVTdHlsZXMuanNcIjtcbmltcG9ydCBhcHBseVN0eWxlcyBmcm9tIFwiLi9tb2RpZmllcnMvYXBwbHlTdHlsZXMuanNcIjtcbmltcG9ydCBvZmZzZXQgZnJvbSBcIi4vbW9kaWZpZXJzL29mZnNldC5qc1wiO1xuaW1wb3J0IGZsaXAgZnJvbSBcIi4vbW9kaWZpZXJzL2ZsaXAuanNcIjtcbmltcG9ydCBwcmV2ZW50T3ZlcmZsb3cgZnJvbSBcIi4vbW9kaWZpZXJzL3ByZXZlbnRPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGFycm93IGZyb20gXCIuL21vZGlmaWVycy9hcnJvdy5qc1wiO1xuaW1wb3J0IGhpZGUgZnJvbSBcIi4vbW9kaWZpZXJzL2hpZGUuanNcIjtcbnZhciBkZWZhdWx0TW9kaWZpZXJzID0gW2V2ZW50TGlzdGVuZXJzLCBwb3BwZXJPZmZzZXRzLCBjb21wdXRlU3R5bGVzLCBhcHBseVN0eWxlcywgb2Zmc2V0LCBmbGlwLCBwcmV2ZW50T3ZlcmZsb3csIGFycm93LCBoaWRlXTtcbnZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKHtcbiAgZGVmYXVsdE1vZGlmaWVyczogZGVmYXVsdE1vZGlmaWVyc1xufSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyLCBwb3BwZXJHZW5lcmF0b3IsIGRlZmF1bHRNb2RpZmllcnMsIGRldGVjdE92ZXJmbG93IH07IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckxpdGUgfSBmcm9tIFwiLi9wb3BwZXItbGl0ZS5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGlmaWVycy9pbmRleC5qc1wiOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/popper.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ computeAutoPlacement)\n/* harmony export */ });\n/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./detectOverflow.js */ \"./node_modules/@popperjs/core/lib/utils/detectOverflow.js\");\n/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n\n\n\n\nfunction computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements : _options$allowedAutoP;\n var variation = (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(placement);\n var placements = variation ? flipVariations ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements : _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements.filter(function (placement) {\n return (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(placement) === variation;\n }) : _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = (0,_detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[(0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2NvbXB1dGVBdXRvUGxhY2VtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTZDO0FBQ2tEO0FBQzlDO0FBQ0k7QUFDdEM7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUUsaURBQWE7QUFDOUUsa0JBQWtCLDREQUFZO0FBQzlCLGdEQUFnRCwwREFBbUIsR0FBRywwREFBbUI7QUFDekYsV0FBVyw0REFBWTtBQUN2QixHQUFHLElBQUkscURBQWM7QUFDckI7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0EscUJBQXFCLDhEQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxFQUFFLGdFQUFnQjtBQUN2QjtBQUNBLEdBQUcsSUFBSTtBQUNQO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2NvbXB1dGVBdXRvUGxhY2VtZW50LmpzP2U5MjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCB7IHZhcmlhdGlvblBsYWNlbWVudHMsIGJhc2VQbGFjZW1lbnRzLCBwbGFjZW1lbnRzIGFzIGFsbFBsYWNlbWVudHMgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4vZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcHV0ZUF1dG9QbGFjZW1lbnQoc3RhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsXG4gICAgICBwbGFjZW1lbnQgPSBfb3B0aW9ucy5wbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeSA9IF9vcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgcGFkZGluZyA9IF9vcHRpb25zLnBhZGRpbmcsXG4gICAgICBmbGlwVmFyaWF0aW9ucyA9IF9vcHRpb25zLmZsaXBWYXJpYXRpb25zLFxuICAgICAgX29wdGlvbnMkYWxsb3dlZEF1dG9QID0gX29wdGlvbnMuYWxsb3dlZEF1dG9QbGFjZW1lbnRzLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzID0gX29wdGlvbnMkYWxsb3dlZEF1dG9QID09PSB2b2lkIDAgPyBhbGxQbGFjZW1lbnRzIDogX29wdGlvbnMkYWxsb3dlZEF1dG9QO1xuICB2YXIgdmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCk7XG4gIHZhciBwbGFjZW1lbnRzID0gdmFyaWF0aW9uID8gZmxpcFZhcmlhdGlvbnMgPyB2YXJpYXRpb25QbGFjZW1lbnRzIDogdmFyaWF0aW9uUGxhY2VtZW50cy5maWx0ZXIoZnVuY3Rpb24gKHBsYWNlbWVudCkge1xuICAgIHJldHVybiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSA9PT0gdmFyaWF0aW9uO1xuICB9KSA6IGJhc2VQbGFjZW1lbnRzO1xuICB2YXIgYWxsb3dlZFBsYWNlbWVudHMgPSBwbGFjZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGFsbG93ZWRBdXRvUGxhY2VtZW50cy5pbmRleE9mKHBsYWNlbWVudCkgPj0gMDtcbiAgfSk7XG5cbiAgaWYgKGFsbG93ZWRQbGFjZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGFsbG93ZWRQbGFjZW1lbnRzID0gcGxhY2VtZW50cztcbiAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXTogRmxvdyBzZWVtcyB0byBoYXZlIHByb2JsZW1zIHdpdGggdHdvIGFycmF5IHVuaW9ucy4uLlxuXG5cbiAgdmFyIG92ZXJmbG93cyA9IGFsbG93ZWRQbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeTogcm9vdEJvdW5kYXJ5LFxuICAgICAgcGFkZGluZzogcGFkZGluZ1xuICAgIH0pW2dldEJhc2VQbGFjZW1lbnQocGxhY2VtZW50KV07XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICByZXR1cm4gT2JqZWN0LmtleXMob3ZlcmZsb3dzKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIG92ZXJmbG93c1thXSAtIG92ZXJmbG93c1tiXTtcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/computeOffsets.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ computeOffsets)\n/* harmony export */ });\n/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBasePlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\");\n/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ \"./node_modules/@popperjs/core/lib/utils/getVariation.js\");\n/* harmony import */ var _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getMainAxisFromPlacement.js */ \"./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n\n\n\n\nfunction computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? (0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(placement) : null;\n var variation = placement ? (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? (0,_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case _enums_js__WEBPACK_IMPORTED_MODULE_2__.end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2NvbXB1dGVPZmZzZXRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXFEO0FBQ1I7QUFDd0I7QUFDRjtBQUNwRDtBQUNmO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxnRUFBZ0I7QUFDbEQsOEJBQThCLDREQUFZO0FBQzFDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVMsMENBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVMsNkNBQU07QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVMsNENBQUs7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVMsMkNBQUk7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQ0FBaUMsd0VBQXdCOztBQUV6RDtBQUNBOztBQUVBO0FBQ0EsV0FBVyw0Q0FBSztBQUNoQjtBQUNBOztBQUVBLFdBQVcsMENBQUc7QUFDZDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9jb21wdXRlT2Zmc2V0cy5qcz9lNTYyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4vZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBzdGFydCwgZW5kIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciByZWZlcmVuY2UgPSBfcmVmLnJlZmVyZW5jZSxcbiAgICAgIGVsZW1lbnQgPSBfcmVmLmVsZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfcmVmLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBwbGFjZW1lbnQgPyBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgdmFyaWF0aW9uID0gcGxhY2VtZW50ID8gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgY29tbW9uWCA9IHJlZmVyZW5jZS54ICsgcmVmZXJlbmNlLndpZHRoIC8gMiAtIGVsZW1lbnQud2lkdGggLyAyO1xuICB2YXIgY29tbW9uWSA9IHJlZmVyZW5jZS55ICsgcmVmZXJlbmNlLmhlaWdodCAvIDIgLSBlbGVtZW50LmhlaWdodCAvIDI7XG4gIHZhciBvZmZzZXRzO1xuXG4gIHN3aXRjaCAoYmFzZVBsYWNlbWVudCkge1xuICAgIGNhc2UgdG9wOlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBlbGVtZW50LmhlaWdodFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBib3R0b206XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiBjb21tb25YLFxuICAgICAgICB5OiByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcmlnaHQ6XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBsZWZ0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLnggLSBlbGVtZW50LndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG5cbiAgdmFyIG1haW5BeGlzID0gYmFzZVBsYWNlbWVudCA/IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KSA6IG51bGw7XG5cbiAgaWYgKG1haW5BeGlzICE9IG51bGwpIHtcbiAgICB2YXIgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHN3aXRjaCAodmFyaWF0aW9uKSB7XG4gICAgICBjYXNlIHN0YXJ0OlxuICAgICAgICBvZmZzZXRzW21haW5BeGlzXSA9IG9mZnNldHNbbWFpbkF4aXNdIC0gKHJlZmVyZW5jZVtsZW5dIC8gMiAtIGVsZW1lbnRbbGVuXSAvIDIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBlbmQ6XG4gICAgICAgIG9mZnNldHNbbWFpbkF4aXNdID0gb2Zmc2V0c1ttYWluQXhpc10gKyAocmVmZXJlbmNlW2xlbl0gLyAyIC0gZWxlbWVudFtsZW5dIC8gMik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvZmZzZXRzO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/debounce.js": /*!***********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/debounce.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ debounce)\n/* harmony export */ });\nfunction debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RlYm91bmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RlYm91bmNlLmpzPzI2MjciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVib3VuY2UoZm4pIHtcbiAgdmFyIHBlbmRpbmc7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFwZW5kaW5nKSB7XG4gICAgICBwZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXNvbHZlKGZuKCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwZW5kaW5nO1xuICB9O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/debounce.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/detectOverflow.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ detectOverflow)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getClippingRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js\");\n/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\");\n/* harmony import */ var _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getBoundingClientRect.js */ \"./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\");\n/* harmony import */ var _computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./computeOffsets.js */ \"./node_modules/@popperjs/core/lib/utils/computeOffsets.js\");\n/* harmony import */ var _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rectToClientRect.js */ \"./node_modules/@popperjs/core/lib/utils/rectToClientRect.js\");\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ \"./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\");\n/* harmony import */ var _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergePaddingObject.js */ \"./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js\");\n/* harmony import */ var _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./expandToHashMap.js */ \"./node_modules/@popperjs/core/lib/utils/expandToHashMap.js\");\n\n\n\n\n\n\n\n\n // eslint-disable-next-line import/no-unused-modules\n\nfunction detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = (0,_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(typeof padding !== 'number' ? padding : (0,_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements));\n var altContext = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference : _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = (0,_dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])((0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(element) ? element : element.contextElement || (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = (0,_dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(state.elements.reference);\n var popperOffsets = (0,_computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = (0,_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBOEQ7QUFDTTtBQUNNO0FBQ3pCO0FBQ0k7QUFDMEQ7QUFDeEQ7QUFDRTtBQUNOLENBQUM7O0FBRXJDO0FBQ2Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxzREFBZTtBQUMvRDtBQUNBLHdEQUF3RCwrQ0FBUTtBQUNoRTtBQUNBLDBEQUEwRCw2Q0FBTTtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixrRUFBa0IseUNBQXlDLCtEQUFlLFVBQVUscURBQWM7QUFDeEgsc0NBQXNDLDZDQUFNLEdBQUcsZ0RBQVMsR0FBRyw2Q0FBTTtBQUNqRTtBQUNBO0FBQ0EsMkJBQTJCLHlFQUFlLENBQUMsbUVBQVMsZ0RBQWdELDRFQUFrQjtBQUN0SCw0QkFBNEIsK0VBQXFCO0FBQ2pELHNCQUFzQiw4REFBYztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCx5QkFBeUIsZ0VBQWdCLGlCQUFpQjtBQUMxRCw2Q0FBNkMsNkNBQU0sMkNBQTJDO0FBQzlGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQzs7QUFFL0MseUJBQXlCLDZDQUFNO0FBQy9CO0FBQ0E7QUFDQSxzQkFBc0IsNENBQUssRUFBRSw2Q0FBTTtBQUNuQyxrQkFBa0IsMENBQUcsRUFBRSw2Q0FBTTtBQUM3QjtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9kZXRlY3RPdmVyZmxvdy5qcz8xNjE4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRDbGlwcGluZ1JlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi9jb21wdXRlT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4vcmVjdFRvQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IHsgY2xpcHBpbmdQYXJlbnRzLCByZWZlcmVuY2UsIHBvcHBlciwgYm90dG9tLCB0b3AsIHJpZ2h0LCBiYXNlUGxhY2VtZW50cywgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IG1lcmdlUGFkZGluZ09iamVjdCBmcm9tIFwiLi9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4vZXhwYW5kVG9IYXNoTWFwLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsXG4gICAgICBfb3B0aW9ucyRwbGFjZW1lbnQgPSBfb3B0aW9ucy5wbGFjZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfb3B0aW9ucyRwbGFjZW1lbnQgPT09IHZvaWQgMCA/IHN0YXRlLnBsYWNlbWVudCA6IF9vcHRpb25zJHBsYWNlbWVudCxcbiAgICAgIF9vcHRpb25zJHN0cmF0ZWd5ID0gX29wdGlvbnMuc3RyYXRlZ3ksXG4gICAgICBzdHJhdGVneSA9IF9vcHRpb25zJHN0cmF0ZWd5ID09PSB2b2lkIDAgPyBzdGF0ZS5zdHJhdGVneSA6IF9vcHRpb25zJHN0cmF0ZWd5LFxuICAgICAgX29wdGlvbnMkYm91bmRhcnkgPSBfb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIGJvdW5kYXJ5ID0gX29wdGlvbnMkYm91bmRhcnkgPT09IHZvaWQgMCA/IGNsaXBwaW5nUGFyZW50cyA6IF9vcHRpb25zJGJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMkcm9vdEJvdW5kYXJ5ID09PSB2b2lkIDAgPyB2aWV3cG9ydCA6IF9vcHRpb25zJHJvb3RCb3VuZGFyeSxcbiAgICAgIF9vcHRpb25zJGVsZW1lbnRDb250ZSA9IF9vcHRpb25zLmVsZW1lbnRDb250ZXh0LFxuICAgICAgZWxlbWVudENvbnRleHQgPSBfb3B0aW9ucyRlbGVtZW50Q29udGUgPT09IHZvaWQgMCA/IHBvcHBlciA6IF9vcHRpb25zJGVsZW1lbnRDb250ZSxcbiAgICAgIF9vcHRpb25zJGFsdEJvdW5kYXJ5ID0gX29wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IF9vcHRpb25zJGFsdEJvdW5kYXJ5ID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJGFsdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkcGFkZGluZyA9IF9vcHRpb25zLnBhZGRpbmcsXG4gICAgICBwYWRkaW5nID0gX29wdGlvbnMkcGFkZGluZyA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHBhZGRpbmc7XG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gbWVyZ2VQYWRkaW5nT2JqZWN0KHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IHBhZGRpbmcgOiBleHBhbmRUb0hhc2hNYXAocGFkZGluZywgYmFzZVBsYWNlbWVudHMpKTtcbiAgdmFyIGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gcG9wcGVyID8gcmVmZXJlbmNlIDogcG9wcGVyO1xuICB2YXIgcG9wcGVyUmVjdCA9IHN0YXRlLnJlY3RzLnBvcHBlcjtcbiAgdmFyIGVsZW1lbnQgPSBzdGF0ZS5lbGVtZW50c1thbHRCb3VuZGFyeSA/IGFsdENvbnRleHQgOiBlbGVtZW50Q29udGV4dF07XG4gIHZhciBjbGlwcGluZ0NsaWVudFJlY3QgPSBnZXRDbGlwcGluZ1JlY3QoaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgZ2V0RG9jdW1lbnRFbGVtZW50KHN0YXRlLmVsZW1lbnRzLnBvcHBlciksIGJvdW5kYXJ5LCByb290Qm91bmRhcnksIHN0cmF0ZWd5KTtcbiAgdmFyIHJlZmVyZW5jZUNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlKTtcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBjb21wdXRlT2Zmc2V0cyh7XG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VDbGllbnRSZWN0LFxuICAgIGVsZW1lbnQ6IHBvcHBlclJlY3QsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBwbGFjZW1lbnRcbiAgfSk7XG4gIHZhciBwb3BwZXJDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChPYmplY3QuYXNzaWduKHt9LCBwb3BwZXJSZWN0LCBwb3BwZXJPZmZzZXRzKSk7XG4gIHZhciBlbGVtZW50Q2xpZW50UmVjdCA9IGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgPyBwb3BwZXJDbGllbnRSZWN0IDogcmVmZXJlbmNlQ2xpZW50UmVjdDsgLy8gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgcmVjdFxuICAvLyAwIG9yIG5lZ2F0aXZlID0gd2l0aGluIHRoZSBjbGlwcGluZyByZWN0XG5cbiAgdmFyIG92ZXJmbG93T2Zmc2V0cyA9IHtcbiAgICB0b3A6IGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCxcbiAgICBib3R0b206IGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSxcbiAgICBsZWZ0OiBjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQsXG4gICAgcmlnaHQ6IGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodFxuICB9O1xuICB2YXIgb2Zmc2V0RGF0YSA9IHN0YXRlLm1vZGlmaWVyc0RhdGEub2Zmc2V0OyAvLyBPZmZzZXRzIGNhbiBiZSBhcHBsaWVkIG9ubHkgdG8gdGhlIHBvcHBlciBlbGVtZW50XG5cbiAgaWYgKGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgJiYgb2Zmc2V0RGF0YSkge1xuICAgIHZhciBvZmZzZXQgPSBvZmZzZXREYXRhW3BsYWNlbWVudF07XG4gICAgT2JqZWN0LmtleXMob3ZlcmZsb3dPZmZzZXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHZhciBtdWx0aXBseSA9IFtyaWdodCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/IDEgOiAtMTtcbiAgICAgIHZhciBheGlzID0gW3RvcCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/ICd5JyA6ICd4JztcbiAgICAgIG92ZXJmbG93T2Zmc2V0c1trZXldICs9IG9mZnNldFtheGlzXSAqIG11bHRpcGx5O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG92ZXJmbG93T2Zmc2V0cztcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js": /*!******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ expandToHashMap)\n/* harmony export */ });\nfunction expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxHQUFHLElBQUk7QUFDUCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZXhwYW5kVG9IYXNoTWFwLmpzPzlmODAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXhwYW5kVG9IYXNoTWFwKHZhbHVlLCBrZXlzKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZShmdW5jdGlvbiAoaGFzaE1hcCwga2V5KSB7XG4gICAgaGFzaE1hcFtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIGhhc2hNYXA7XG4gIH0sIHt9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js": /*!*************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getAltAxis.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getAltAxis)\n/* harmony export */ });\nfunction getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEFsdEF4aXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0QWx0QXhpcy5qcz8zMmIyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFsdEF4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js": /*!*******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getBasePlacement)\n/* harmony export */ });\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFtQztBQUNwQjtBQUNmO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanM/ZGU5MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdXRvIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getFreshSideObject)\n/* harmony export */ });\nfunction getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0RnJlc2hTaWRlT2JqZWN0LmpzPzdlNjkiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RnJlc2hTaWRlT2JqZWN0KCkge1xuICByZXR1cm4ge1xuICAgIHRvcDogMCxcbiAgICByaWdodDogMCxcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMFxuICB9O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js": /*!***************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getMainAxisFromPlacement)\n/* harmony export */ });\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanM/MWUzMiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBbJ3RvcCcsICdib3R0b20nXS5pbmRleE9mKHBsYWNlbWVudCkgPj0gMCA/ICd4JyA6ICd5Jztcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js": /*!***********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getOppositePlacement)\n/* harmony export */ });\nvar hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzP2U1ODQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhc2ggPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js": /*!********************************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getOppositeVariationPlacement)\n/* harmony export */ });\nvar hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNlO0FBQ2Y7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQuanM/M2VlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaGFzaCA9IHtcbiAgc3RhcnQ6ICdlbmQnLFxuICBlbmQ6ICdzdGFydCdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9zdGFydHxlbmQvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/getVariation.js": /*!***************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/getVariation.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getVariation)\n/* harmony export */ });\nfunction getVariation(placement) {\n return placement.split('-')[1];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldFZhcmlhdGlvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRWYXJpYXRpb24uanM/NjA5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/getVariation.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/math.js": /*!*******************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/math.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ max: () => (/* binding */ max),\n/* harmony export */ min: () => (/* binding */ min),\n/* harmony export */ round: () => (/* binding */ round)\n/* harmony export */ });\nvar max = Math.max;\nvar min = Math.min;\nvar round = Math.round;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21hdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU87QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tYXRoLmpzPzJhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBtYXggPSBNYXRoLm1heDtcbmV4cG9ydCB2YXIgbWluID0gTWF0aC5taW47XG5leHBvcnQgdmFyIHJvdW5kID0gTWF0aC5yb3VuZDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/math.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/mergeByName.js": /*!**************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/mergeByName.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ mergeByName)\n/* harmony export */ });\nfunction mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21lcmdlQnlOYW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQsK0JBQStCO0FBQy9CLDRCQUE0QjtBQUM1QixLQUFLO0FBQ0w7QUFDQSxHQUFHLElBQUksR0FBRzs7QUFFVjtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tZXJnZUJ5TmFtZS5qcz85NDgwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQnlOYW1lKG1vZGlmaWVycykge1xuICB2YXIgbWVyZ2VkID0gbW9kaWZpZXJzLnJlZHVjZShmdW5jdGlvbiAobWVyZ2VkLCBjdXJyZW50KSB7XG4gICAgdmFyIGV4aXN0aW5nID0gbWVyZ2VkW2N1cnJlbnQubmFtZV07XG4gICAgbWVyZ2VkW2N1cnJlbnQubmFtZV0gPSBleGlzdGluZyA/IE9iamVjdC5hc3NpZ24oe30sIGV4aXN0aW5nLCBjdXJyZW50LCB7XG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBleGlzdGluZy5vcHRpb25zLCBjdXJyZW50Lm9wdGlvbnMpLFxuICAgICAgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZXhpc3RpbmcuZGF0YSwgY3VycmVudC5kYXRhKVxuICAgIH0pIDogY3VycmVudDtcbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9LCB7fSk7IC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBPYmplY3QudmFsdWVzXG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1lcmdlZCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbWVyZ2VkW2tleV07XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/mergeByName.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js": /*!*********************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ mergePaddingObject)\n/* harmony export */ });\n/* harmony import */ var _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getFreshSideObject.js */ \"./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js\");\n\nfunction mergePaddingObject(paddingObject) {\n return Object.assign({}, (0,_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(), paddingObject);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21lcmdlUGFkZGluZ09iamVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5RDtBQUMxQztBQUNmLHlCQUF5QixFQUFFLGtFQUFrQjtBQUM3QyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvbWVyZ2VQYWRkaW5nT2JqZWN0LmpzPzU3NjIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEZyZXNoU2lkZU9iamVjdCBmcm9tIFwiLi9nZXRGcmVzaFNpZGVPYmplY3QuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlUGFkZGluZ09iamVjdChwYWRkaW5nT2JqZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBnZXRGcmVzaFNpZGVPYmplY3QoKSwgcGFkZGluZ09iamVjdCk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js": /*!*****************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/orderModifiers.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ orderModifiers)\n/* harmony export */ });\n/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ \"./node_modules/@popperjs/core/lib/enums.js\");\n // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nfunction orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTZDLENBQUM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsR0FBRzs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRWU7QUFDZjtBQUNBLDJDQUEyQzs7QUFFM0MsU0FBUyxxREFBYztBQUN2QjtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvb3JkZXJNb2RpZmllcnMuanM/NGYxNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RpZmllclBoYXNlcyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBzb3VyY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5ODc1MjU1XG5cbmZ1bmN0aW9uIG9yZGVyKG1vZGlmaWVycykge1xuICB2YXIgbWFwID0gbmV3IE1hcCgpO1xuICB2YXIgdmlzaXRlZCA9IG5ldyBTZXQoKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBtYXAuc2V0KG1vZGlmaWVyLm5hbWUsIG1vZGlmaWVyKTtcbiAgfSk7IC8vIE9uIHZpc2l0aW5nIG9iamVjdCwgY2hlY2sgZm9yIGl0cyBkZXBlbmRlbmNpZXMgYW5kIHZpc2l0IHRoZW0gcmVjdXJzaXZlbHlcblxuICBmdW5jdGlvbiBzb3J0KG1vZGlmaWVyKSB7XG4gICAgdmlzaXRlZC5hZGQobW9kaWZpZXIubmFtZSk7XG4gICAgdmFyIHJlcXVpcmVzID0gW10uY29uY2F0KG1vZGlmaWVyLnJlcXVpcmVzIHx8IFtdLCBtb2RpZmllci5yZXF1aXJlc0lmRXhpc3RzIHx8IFtdKTtcbiAgICByZXF1aXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChkZXApIHtcbiAgICAgIGlmICghdmlzaXRlZC5oYXMoZGVwKSkge1xuICAgICAgICB2YXIgZGVwTW9kaWZpZXIgPSBtYXAuZ2V0KGRlcCk7XG5cbiAgICAgICAgaWYgKGRlcE1vZGlmaWVyKSB7XG4gICAgICAgICAgc29ydChkZXBNb2RpZmllcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXN1bHQucHVzaChtb2RpZmllcik7XG4gIH1cblxuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBpZiAoIXZpc2l0ZWQuaGFzKG1vZGlmaWVyLm5hbWUpKSB7XG4gICAgICAvLyBjaGVjayBmb3IgdmlzaXRlZCBvYmplY3RcbiAgICAgIHNvcnQobW9kaWZpZXIpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9yZGVyTW9kaWZpZXJzKG1vZGlmaWVycykge1xuICAvLyBvcmRlciBiYXNlZCBvbiBkZXBlbmRlbmNpZXNcbiAgdmFyIG9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcihtb2RpZmllcnMpOyAvLyBvcmRlciBiYXNlZCBvbiBwaGFzZVxuXG4gIHJldHVybiBtb2RpZmllclBoYXNlcy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGhhc2UpIHtcbiAgICByZXR1cm4gYWNjLmNvbmNhdChvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgIHJldHVybiBtb2RpZmllci5waGFzZSA9PT0gcGhhc2U7XG4gICAgfSkpO1xuICB9LCBbXSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js": /*!*******************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rectToClientRect)\n/* harmony export */ });\nfunction rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2YseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9yZWN0VG9DbGllbnRSZWN0LmpzPzMyNDEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZWN0LCB7XG4gICAgbGVmdDogcmVjdC54LFxuICAgIHRvcDogcmVjdC55LFxuICAgIHJpZ2h0OiByZWN0LnggKyByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogcmVjdC55ICsgcmVjdC5oZWlnaHRcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/userAgent.js": /*!************************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/userAgent.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getUAString)\n/* harmony export */ });\nfunction getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3VzZXJBZ2VudC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvdXNlckFnZW50LmpzPzM4ZmQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VUFTdHJpbmcoKSB7XG4gIHZhciB1YURhdGEgPSBuYXZpZ2F0b3IudXNlckFnZW50RGF0YTtcblxuICBpZiAodWFEYXRhICE9IG51bGwgJiYgdWFEYXRhLmJyYW5kcyAmJiBBcnJheS5pc0FycmF5KHVhRGF0YS5icmFuZHMpKSB7XG4gICAgcmV0dXJuIHVhRGF0YS5icmFuZHMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gaXRlbS5icmFuZCArIFwiL1wiICsgaXRlbS52ZXJzaW9uO1xuICAgIH0pLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/userAgent.js\n"); /***/ }), /***/ "./node_modules/@popperjs/core/lib/utils/within.js": /*!*********************************************************!*\ !*** ./node_modules/@popperjs/core/lib/utils/within.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ within: () => (/* binding */ within),\n/* harmony export */ withinMaxClamp: () => (/* binding */ withinMaxClamp)\n/* harmony export */ });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/@popperjs/core/lib/utils/math.js\");\n\nfunction within(min, value, max) {\n return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(min, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(value, max));\n}\nfunction withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3dpdGhpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMkQ7QUFDcEQ7QUFDUCxTQUFTLDZDQUFPLE1BQU0sNkNBQU87QUFDN0I7QUFDTztBQUNQO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvd2l0aGluLmpzPzM3YTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWF4IGFzIG1hdGhNYXgsIG1pbiBhcyBtYXRoTWluIH0gZnJvbSBcIi4vbWF0aC5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhpbihtaW4sIHZhbHVlLCBtYXgpIHtcbiAgcmV0dXJuIG1hdGhNYXgobWluLCBtYXRoTWluKHZhbHVlLCBtYXgpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3aXRoaW5NYXhDbGFtcChtaW4sIHZhbHVlLCBtYXgpIHtcbiAgdmFyIHYgPSB3aXRoaW4obWluLCB2YWx1ZSwgbWF4KTtcbiAgcmV0dXJuIHYgPiBtYXggPyBtYXggOiB2O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@popperjs/core/lib/utils/within.js\n"); /***/ }), /***/ "./node_modules/axios/index.js": /*!*************************************!*\ !*** ./node_modules/axios/index.js ***! \*************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = __webpack_require__(/*! ./lib/axios */ \"./node_modules/axios/lib/axios.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUEsNEZBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2luZGV4LmpzPzUzZTkiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi9heGlvcycpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/index.js\n"); /***/ }), /***/ "./node_modules/axios/lib/adapters/xhr.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/adapters/xhr.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar settle = __webpack_require__(/*! ./../core/settle */ \"./node_modules/axios/lib/core/settle.js\");\nvar cookies = __webpack_require__(/*! ./../helpers/cookies */ \"./node_modules/axios/lib/helpers/cookies.js\");\nvar buildURL = __webpack_require__(/*! ./../helpers/buildURL */ \"./node_modules/axios/lib/helpers/buildURL.js\");\nvar buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ \"./node_modules/axios/lib/core/buildFullPath.js\");\nvar parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ \"./node_modules/axios/lib/helpers/parseHeaders.js\");\nvar isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ \"./node_modules/axios/lib/helpers/isURLSameOrigin.js\");\nvar createError = __webpack_require__(/*! ../core/createError */ \"./node_modules/axios/lib/core/createError.js\");\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL3hoci5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLGlFQUFrQjtBQUN2QyxjQUFjLG1CQUFPLENBQUMseUVBQXNCO0FBQzVDLGVBQWUsbUJBQU8sQ0FBQywyRUFBdUI7QUFDOUMsb0JBQW9CLG1CQUFPLENBQUMsNkVBQXVCO0FBQ25ELG1CQUFtQixtQkFBTyxDQUFDLG1GQUEyQjtBQUN0RCxzQkFBc0IsbUJBQU8sQ0FBQyx5RkFBOEI7QUFDNUQsa0JBQWtCLG1CQUFPLENBQUMseUVBQXFCOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkNBQTZDO0FBQzdDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy94aHIuanM/MWE1YyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcbnZhciBzZXR0bGUgPSByZXF1aXJlKCcuLy4uL2NvcmUvc2V0dGxlJyk7XG52YXIgY29va2llcyA9IHJlcXVpcmUoJy4vLi4vaGVscGVycy9jb29raWVzJyk7XG52YXIgYnVpbGRVUkwgPSByZXF1aXJlKCcuLy4uL2hlbHBlcnMvYnVpbGRVUkwnKTtcbnZhciBidWlsZEZ1bGxQYXRoID0gcmVxdWlyZSgnLi4vY29yZS9idWlsZEZ1bGxQYXRoJyk7XG52YXIgcGFyc2VIZWFkZXJzID0gcmVxdWlyZSgnLi8uLi9oZWxwZXJzL3BhcnNlSGVhZGVycycpO1xudmFyIGlzVVJMU2FtZU9yaWdpbiA9IHJlcXVpcmUoJy4vLi4vaGVscGVycy9pc1VSTFNhbWVPcmlnaW4nKTtcbnZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJy4uL2NvcmUvY3JlYXRlRXJyb3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB4aHJBZGFwdGVyKGNvbmZpZykge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gZGlzcGF0Y2hYaHJSZXF1ZXN0KHJlc29sdmUsIHJlamVjdCkge1xuICAgIHZhciByZXF1ZXN0RGF0YSA9IGNvbmZpZy5kYXRhO1xuICAgIHZhciByZXF1ZXN0SGVhZGVycyA9IGNvbmZpZy5oZWFkZXJzO1xuICAgIHZhciByZXNwb25zZVR5cGUgPSBjb25maWcucmVzcG9uc2VUeXBlO1xuXG4gICAgaWYgKHV0aWxzLmlzRm9ybURhdGEocmVxdWVzdERhdGEpKSB7XG4gICAgICBkZWxldGUgcmVxdWVzdEhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddOyAvLyBMZXQgdGhlIGJyb3dzZXIgc2V0IGl0XG4gICAgfVxuXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgIC8vIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb25cbiAgICBpZiAoY29uZmlnLmF1dGgpIHtcbiAgICAgIHZhciB1c2VybmFtZSA9IGNvbmZpZy5hdXRoLnVzZXJuYW1lIHx8ICcnO1xuICAgICAgdmFyIHBhc3N3b3JkID0gY29uZmlnLmF1dGgucGFzc3dvcmQgPyB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoY29uZmlnLmF1dGgucGFzc3dvcmQpKSA6ICcnO1xuICAgICAgcmVxdWVzdEhlYWRlcnMuQXV0aG9yaXphdGlvbiA9ICdCYXNpYyAnICsgYnRvYSh1c2VybmFtZSArICc6JyArIHBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICB2YXIgZnVsbFBhdGggPSBidWlsZEZ1bGxQYXRoKGNvbmZpZy5iYXNlVVJMLCBjb25maWcudXJsKTtcbiAgICByZXF1ZXN0Lm9wZW4oY29uZmlnLm1ldGhvZC50b1VwcGVyQ2FzZSgpLCBidWlsZFVSTChmdWxsUGF0aCwgY29uZmlnLnBhcmFtcywgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIpLCB0cnVlKTtcblxuICAgIC8vIFNldCB0aGUgcmVxdWVzdCB0aW1lb3V0IGluIE1TXG4gICAgcmVxdWVzdC50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG5cbiAgICBmdW5jdGlvbiBvbmxvYWRlbmQoKSB7XG4gICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gUHJlcGFyZSB0aGUgcmVzcG9uc2VcbiAgICAgIHZhciByZXNwb25zZUhlYWRlcnMgPSAnZ2V0QWxsUmVzcG9uc2VIZWFkZXJzJyBpbiByZXF1ZXN0ID8gcGFyc2VIZWFkZXJzKHJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpIDogbnVsbDtcbiAgICAgIHZhciByZXNwb25zZURhdGEgPSAhcmVzcG9uc2VUeXBlIHx8IHJlc3BvbnNlVHlwZSA9PT0gJ3RleHQnIHx8ICByZXNwb25zZVR5cGUgPT09ICdqc29uJyA/XG4gICAgICAgIHJlcXVlc3QucmVzcG9uc2VUZXh0IDogcmVxdWVzdC5yZXNwb25zZTtcbiAgICAgIHZhciByZXNwb25zZSA9IHtcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLFxuICAgICAgICBzdGF0dXM6IHJlcXVlc3Quc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiByZXF1ZXN0LnN0YXR1c1RleHQsXG4gICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgIHJlcXVlc3Q6IHJlcXVlc3RcbiAgICAgIH07XG5cbiAgICAgIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHJlc3BvbnNlKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCdvbmxvYWRlbmQnIGluIHJlcXVlc3QpIHtcbiAgICAgIC8vIFVzZSBvbmxvYWRlbmQgaWYgYXZhaWxhYmxlXG4gICAgICByZXF1ZXN0Lm9ubG9hZGVuZCA9IG9ubG9hZGVuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTGlzdGVuIGZvciByZWFkeSBzdGF0ZSB0byBlbXVsYXRlIG9ubG9hZGVuZFxuICAgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiBoYW5kbGVMb2FkKCkge1xuICAgICAgICBpZiAoIXJlcXVlc3QgfHwgcmVxdWVzdC5yZWFkeVN0YXRlICE9PSA0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIHJlcXVlc3QgZXJyb3JlZCBvdXQgYW5kIHdlIGRpZG4ndCBnZXQgYSByZXNwb25zZSwgdGhpcyB3aWxsIGJlXG4gICAgICAgIC8vIGhhbmRsZWQgYnkgb25lcnJvciBpbnN0ZWFkXG4gICAgICAgIC8vIFdpdGggb25lIGV4Y2VwdGlvbjogcmVxdWVzdCB0aGF0IHVzaW5nIGZpbGU6IHByb3RvY29sLCBtb3N0IGJyb3dzZXJzXG4gICAgICAgIC8vIHdpbGwgcmV0dXJuIHN0YXR1cyBhcyAwIGV2ZW4gdGhvdWdoIGl0J3MgYSBzdWNjZXNzZnVsIHJlcXVlc3RcbiAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAwICYmICEocmVxdWVzdC5yZXNwb25zZVVSTCAmJiByZXF1ZXN0LnJlc3BvbnNlVVJMLmluZGV4T2YoJ2ZpbGU6JykgPT09IDApKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJlYWR5c3RhdGUgaGFuZGxlciBpcyBjYWxsaW5nIGJlZm9yZSBvbmVycm9yIG9yIG9udGltZW91dCBoYW5kbGVycyxcbiAgICAgICAgLy8gc28gd2Ugc2hvdWxkIGNhbGwgb25sb2FkZW5kIG9uIHRoZSBuZXh0ICd0aWNrJ1xuICAgICAgICBzZXRUaW1lb3V0KG9ubG9hZGVuZCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBicm93c2VyIHJlcXVlc3QgY2FuY2VsbGF0aW9uIChhcyBvcHBvc2VkIHRvIGEgbWFudWFsIGNhbmNlbGxhdGlvbilcbiAgICByZXF1ZXN0Lm9uYWJvcnQgPSBmdW5jdGlvbiBoYW5kbGVBYm9ydCgpIHtcbiAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlamVjdChjcmVhdGVFcnJvcignUmVxdWVzdCBhYm9ydGVkJywgY29uZmlnLCAnRUNPTk5BQk9SVEVEJywgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gSGFuZGxlIGxvdyBsZXZlbCBuZXR3b3JrIGVycm9yc1xuICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uIGhhbmRsZUVycm9yKCkge1xuICAgICAgLy8gUmVhbCBlcnJvcnMgYXJlIGhpZGRlbiBmcm9tIHVzIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBvbmVycm9yIHNob3VsZCBvbmx5IGZpcmUgaWYgaXQncyBhIG5ldHdvcmsgZXJyb3JcbiAgICAgIHJlamVjdChjcmVhdGVFcnJvcignTmV0d29yayBFcnJvcicsIGNvbmZpZywgbnVsbCwgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gSGFuZGxlIHRpbWVvdXRcbiAgICByZXF1ZXN0Lm9udGltZW91dCA9IGZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoKSB7XG4gICAgICB2YXIgdGltZW91dEVycm9yTWVzc2FnZSA9ICd0aW1lb3V0IG9mICcgKyBjb25maWcudGltZW91dCArICdtcyBleGNlZWRlZCc7XG4gICAgICBpZiAoY29uZmlnLnRpbWVvdXRFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGltZW91dEVycm9yTWVzc2FnZSA9IGNvbmZpZy50aW1lb3V0RXJyb3JNZXNzYWdlO1xuICAgICAgfVxuICAgICAgcmVqZWN0KGNyZWF0ZUVycm9yKFxuICAgICAgICB0aW1lb3V0RXJyb3JNZXNzYWdlLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGNvbmZpZy50cmFuc2l0aW9uYWwgJiYgY29uZmlnLnRyYW5zaXRpb25hbC5jbGFyaWZ5VGltZW91dEVycm9yID8gJ0VUSU1FRE9VVCcgOiAnRUNPTk5BQk9SVEVEJyxcbiAgICAgICAgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gQWRkIHhzcmYgaGVhZGVyXG4gICAgLy8gVGhpcyBpcyBvbmx5IGRvbmUgaWYgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgZW52aXJvbm1lbnQuXG4gICAgLy8gU3BlY2lmaWNhbGx5IG5vdCBpZiB3ZSdyZSBpbiBhIHdlYiB3b3JrZXIsIG9yIHJlYWN0LW5hdGl2ZS5cbiAgICBpZiAodXRpbHMuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSkge1xuICAgICAgLy8gQWRkIHhzcmYgaGVhZGVyXG4gICAgICB2YXIgeHNyZlZhbHVlID0gKGNvbmZpZy53aXRoQ3JlZGVudGlhbHMgfHwgaXNVUkxTYW1lT3JpZ2luKGZ1bGxQYXRoKSkgJiYgY29uZmlnLnhzcmZDb29raWVOYW1lID9cbiAgICAgICAgY29va2llcy5yZWFkKGNvbmZpZy54c3JmQ29va2llTmFtZSkgOlxuICAgICAgICB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh4c3JmVmFsdWUpIHtcbiAgICAgICAgcmVxdWVzdEhlYWRlcnNbY29uZmlnLnhzcmZIZWFkZXJOYW1lXSA9IHhzcmZWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgaGVhZGVycyB0byB0aGUgcmVxdWVzdFxuICAgIGlmICgnc2V0UmVxdWVzdEhlYWRlcicgaW4gcmVxdWVzdCkge1xuICAgICAgdXRpbHMuZm9yRWFjaChyZXF1ZXN0SGVhZGVycywgZnVuY3Rpb24gc2V0UmVxdWVzdEhlYWRlcih2YWwsIGtleSkge1xuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3REYXRhID09PSAndW5kZWZpbmVkJyAmJiBrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtdHlwZScpIHtcbiAgICAgICAgICAvLyBSZW1vdmUgQ29udGVudC1UeXBlIGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gICAgICAgICAgZGVsZXRlIHJlcXVlc3RIZWFkZXJzW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gT3RoZXJ3aXNlIGFkZCBoZWFkZXIgdG8gdGhlIHJlcXVlc3RcbiAgICAgICAgICByZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoa2V5LCB2YWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBZGQgd2l0aENyZWRlbnRpYWxzIHRvIHJlcXVlc3QgaWYgbmVlZGVkXG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcud2l0aENyZWRlbnRpYWxzKSkge1xuICAgICAgcmVxdWVzdC53aXRoQ3JlZGVudGlhbHMgPSAhIWNvbmZpZy53aXRoQ3JlZGVudGlhbHM7XG4gICAgfVxuXG4gICAgLy8gQWRkIHJlc3BvbnNlVHlwZSB0byByZXF1ZXN0IGlmIG5lZWRlZFxuICAgIGlmIChyZXNwb25zZVR5cGUgJiYgcmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcbiAgICAgIHJlcXVlc3QucmVzcG9uc2VUeXBlID0gY29uZmlnLnJlc3BvbnNlVHlwZTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgcHJvZ3Jlc3MgaWYgbmVlZGVkXG4gICAgaWYgKHR5cGVvZiBjb25maWcub25Eb3dubG9hZFByb2dyZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgY29uZmlnLm9uRG93bmxvYWRQcm9ncmVzcyk7XG4gICAgfVxuXG4gICAgLy8gTm90IGFsbCBicm93c2VycyBzdXBwb3J0IHVwbG9hZCBldmVudHNcbiAgICBpZiAodHlwZW9mIGNvbmZpZy5vblVwbG9hZFByb2dyZXNzID09PSAnZnVuY3Rpb24nICYmIHJlcXVlc3QudXBsb2FkKSB7XG4gICAgICByZXF1ZXN0LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGNvbmZpZy5vblVwbG9hZFByb2dyZXNzKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmNhbmNlbFRva2VuKSB7XG4gICAgICAvLyBIYW5kbGUgY2FuY2VsbGF0aW9uXG4gICAgICBjb25maWcuY2FuY2VsVG9rZW4ucHJvbWlzZS50aGVuKGZ1bmN0aW9uIG9uQ2FuY2VsZWQoY2FuY2VsKSB7XG4gICAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcXVlc3QuYWJvcnQoKTtcbiAgICAgICAgcmVqZWN0KGNhbmNlbCk7XG4gICAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIXJlcXVlc3REYXRhKSB7XG4gICAgICByZXF1ZXN0RGF0YSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gU2VuZCB0aGUgcmVxdWVzdFxuICAgIHJlcXVlc3Quc2VuZChyZXF1ZXN0RGF0YSk7XG4gIH0pO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/adapters/xhr.js\n"); /***/ }), /***/ "./node_modules/axios/lib/axios.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/axios.js ***! \*****************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/lib/utils.js\");\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\");\nvar Axios = __webpack_require__(/*! ./core/Axios */ \"./node_modules/axios/lib/core/Axios.js\");\nvar mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ \"./node_modules/axios/lib/core/mergeConfig.js\");\nvar defaults = __webpack_require__(/*! ./defaults */ \"./node_modules/axios/lib/defaults.js\");\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ \"./node_modules/axios/lib/cancel/Cancel.js\");\naxios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ \"./node_modules/axios/lib/cancel/CancelToken.js\");\naxios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = __webpack_require__(/*! ./helpers/spread */ \"./node_modules/axios/lib/helpers/spread.js\");\n\n// Expose isAxiosError\naxios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ \"./node_modules/axios/lib/helpers/isAxiosError.js\");\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports[\"default\"] = axios;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2F4aW9zLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxrREFBUztBQUM3QixXQUFXLG1CQUFPLENBQUMsZ0VBQWdCO0FBQ25DLFlBQVksbUJBQU8sQ0FBQyw0REFBYztBQUNsQyxrQkFBa0IsbUJBQU8sQ0FBQyx3RUFBb0I7QUFDOUMsZUFBZSxtQkFBTyxDQUFDLHdEQUFZOztBQUVuQztBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxrRUFBaUI7QUFDeEMsb0JBQW9CLG1CQUFPLENBQUMsNEVBQXNCO0FBQ2xELGlCQUFpQixtQkFBTyxDQUFDLHNFQUFtQjs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsb0VBQWtCOztBQUV6QztBQUNBLHFCQUFxQixtQkFBTyxDQUFDLGdGQUF3Qjs7QUFFckQ7O0FBRUE7QUFDQSx5QkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2F4aW9zLmpzP2ZhZDYiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4vaGVscGVycy9iaW5kJyk7XG52YXIgQXhpb3MgPSByZXF1aXJlKCcuL2NvcmUvQXhpb3MnKTtcbnZhciBtZXJnZUNvbmZpZyA9IHJlcXVpcmUoJy4vY29yZS9tZXJnZUNvbmZpZycpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi9kZWZhdWx0cycpO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBeGlvc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZhdWx0Q29uZmlnIFRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtBeGlvc30gQSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UoZGVmYXVsdENvbmZpZykge1xuICB2YXIgY29udGV4dCA9IG5ldyBBeGlvcyhkZWZhdWx0Q29uZmlnKTtcbiAgdmFyIGluc3RhbmNlID0gYmluZChBeGlvcy5wcm90b3R5cGUucmVxdWVzdCwgY29udGV4dCk7XG5cbiAgLy8gQ29weSBheGlvcy5wcm90b3R5cGUgdG8gaW5zdGFuY2VcbiAgdXRpbHMuZXh0ZW5kKGluc3RhbmNlLCBBeGlvcy5wcm90b3R5cGUsIGNvbnRleHQpO1xuXG4gIC8vIENvcHkgY29udGV4dCB0byBpbnN0YW5jZVxuICB1dGlscy5leHRlbmQoaW5zdGFuY2UsIGNvbnRleHQpO1xuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuLy8gQ3JlYXRlIHRoZSBkZWZhdWx0IGluc3RhbmNlIHRvIGJlIGV4cG9ydGVkXG52YXIgYXhpb3MgPSBjcmVhdGVJbnN0YW5jZShkZWZhdWx0cyk7XG5cbi8vIEV4cG9zZSBBeGlvcyBjbGFzcyB0byBhbGxvdyBjbGFzcyBpbmhlcml0YW5jZVxuYXhpb3MuQXhpb3MgPSBBeGlvcztcblxuLy8gRmFjdG9yeSBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuYXhpb3MuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKGluc3RhbmNlQ29uZmlnKSB7XG4gIHJldHVybiBjcmVhdGVJbnN0YW5jZShtZXJnZUNvbmZpZyhheGlvcy5kZWZhdWx0cywgaW5zdGFuY2VDb25maWcpKTtcbn07XG5cbi8vIEV4cG9zZSBDYW5jZWwgJiBDYW5jZWxUb2tlblxuYXhpb3MuQ2FuY2VsID0gcmVxdWlyZSgnLi9jYW5jZWwvQ2FuY2VsJyk7XG5heGlvcy5DYW5jZWxUb2tlbiA9IHJlcXVpcmUoJy4vY2FuY2VsL0NhbmNlbFRva2VuJyk7XG5heGlvcy5pc0NhbmNlbCA9IHJlcXVpcmUoJy4vY2FuY2VsL2lzQ2FuY2VsJyk7XG5cbi8vIEV4cG9zZSBhbGwvc3ByZWFkXG5heGlvcy5hbGwgPSBmdW5jdGlvbiBhbGwocHJvbWlzZXMpIHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbn07XG5heGlvcy5zcHJlYWQgPSByZXF1aXJlKCcuL2hlbHBlcnMvc3ByZWFkJyk7XG5cbi8vIEV4cG9zZSBpc0F4aW9zRXJyb3JcbmF4aW9zLmlzQXhpb3NFcnJvciA9IHJlcXVpcmUoJy4vaGVscGVycy9pc0F4aW9zRXJyb3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBheGlvcztcblxuLy8gQWxsb3cgdXNlIG9mIGRlZmF1bHQgaW1wb3J0IHN5bnRheCBpbiBUeXBlU2NyaXB0XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gYXhpb3M7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/axios.js\n"); /***/ }), /***/ "./node_modules/axios/lib/cancel/Cancel.js": /*!*************************************************!*\ !*** ./node_modules/axios/lib/cancel/Cancel.js ***! \*************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9DYW5jZWwuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsLmpzP2QyYTIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEEgYENhbmNlbGAgaXMgYW4gb2JqZWN0IHRoYXQgaXMgdGhyb3duIHdoZW4gYW4gb3BlcmF0aW9uIGlzIGNhbmNlbGVkLlxuICpcbiAqIEBjbGFzc1xuICogQHBhcmFtIHtzdHJpbmc9fSBtZXNzYWdlIFRoZSBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBDYW5jZWwobWVzc2FnZSkge1xuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xufVxuXG5DYW5jZWwucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiAnQ2FuY2VsJyArICh0aGlzLm1lc3NhZ2UgPyAnOiAnICsgdGhpcy5tZXNzYWdlIDogJycpO1xufTtcblxuQ2FuY2VsLnByb3RvdHlwZS5fX0NBTkNFTF9fID0gdHJ1ZTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYW5jZWw7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/cancel/Cancel.js\n"); /***/ }), /***/ "./node_modules/axios/lib/cancel/CancelToken.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar Cancel = __webpack_require__(/*! ./Cancel */ \"./node_modules/axios/lib/cancel/Cancel.js\");\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9DYW5jZWxUb2tlbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixhQUFhLG1CQUFPLENBQUMsMkRBQVU7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbFRva2VuLmpzPzcyYzgiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgQ2FuY2VsID0gcmVxdWlyZSgnLi9DYW5jZWwnKTtcblxuLyoqXG4gKiBBIGBDYW5jZWxUb2tlbmAgaXMgYW4gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVxdWVzdCBjYW5jZWxsYXRpb24gb2YgYW4gb3BlcmF0aW9uLlxuICpcbiAqIEBjbGFzc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZXhlY3V0b3IgVGhlIGV4ZWN1dG9yIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBDYW5jZWxUb2tlbihleGVjdXRvcikge1xuICBpZiAodHlwZW9mIGV4ZWN1dG9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgdmFyIHJlc29sdmVQcm9taXNlO1xuICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiBwcm9taXNlRXhlY3V0b3IocmVzb2x2ZSkge1xuICAgIHJlc29sdmVQcm9taXNlID0gcmVzb2x2ZTtcbiAgfSk7XG5cbiAgdmFyIHRva2VuID0gdGhpcztcbiAgZXhlY3V0b3IoZnVuY3Rpb24gY2FuY2VsKG1lc3NhZ2UpIHtcbiAgICBpZiAodG9rZW4ucmVhc29uKSB7XG4gICAgICAvLyBDYW5jZWxsYXRpb24gaGFzIGFscmVhZHkgYmVlbiByZXF1ZXN0ZWRcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0b2tlbi5yZWFzb24gPSBuZXcgQ2FuY2VsKG1lc3NhZ2UpO1xuICAgIHJlc29sdmVQcm9taXNlKHRva2VuLnJlYXNvbik7XG4gIH0pO1xufVxuXG4vKipcbiAqIFRocm93cyBhIGBDYW5jZWxgIGlmIGNhbmNlbGxhdGlvbiBoYXMgYmVlbiByZXF1ZXN0ZWQuXG4gKi9cbkNhbmNlbFRva2VuLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkID0gZnVuY3Rpb24gdGhyb3dJZlJlcXVlc3RlZCgpIHtcbiAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgdGhyb3cgdGhpcy5yZWFzb247XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIG5ldyBgQ2FuY2VsVG9rZW5gIGFuZCBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLFxuICogY2FuY2VscyB0aGUgYENhbmNlbFRva2VuYC5cbiAqL1xuQ2FuY2VsVG9rZW4uc291cmNlID0gZnVuY3Rpb24gc291cmNlKCkge1xuICB2YXIgY2FuY2VsO1xuICB2YXIgdG9rZW4gPSBuZXcgQ2FuY2VsVG9rZW4oZnVuY3Rpb24gZXhlY3V0b3IoYykge1xuICAgIGNhbmNlbCA9IGM7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHRva2VuOiB0b2tlbixcbiAgICBjYW5jZWw6IGNhbmNlbFxuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYW5jZWxUb2tlbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/cancel/CancelToken.js\n"); /***/ }), /***/ "./node_modules/axios/lib/cancel/isCancel.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/cancel/isCancel.js ***! \***************************************************/ /***/ ((module) => { "use strict"; eval("\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9pc0NhbmNlbC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9pc0NhbmNlbC5qcz9jMTdhIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0NhbmNlbCh2YWx1ZSkge1xuICByZXR1cm4gISEodmFsdWUgJiYgdmFsdWUuX19DQU5DRUxfXyk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/cancel/isCancel.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/Axios.js": /*!**********************************************!*\ !*** ./node_modules/axios/lib/core/Axios.js ***! \**********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar buildURL = __webpack_require__(/*! ../helpers/buildURL */ \"./node_modules/axios/lib/helpers/buildURL.js\");\nvar InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ \"./node_modules/axios/lib/core/InterceptorManager.js\");\nvar dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ \"./node_modules/axios/lib/core/dispatchRequest.js\");\nvar mergeConfig = __webpack_require__(/*! ./mergeConfig */ \"./node_modules/axios/lib/core/mergeConfig.js\");\nvar validator = __webpack_require__(/*! ../helpers/validator */ \"./node_modules/axios/lib/helpers/validator.js\");\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZO0FBQ2hDLGVBQWUsbUJBQU8sQ0FBQyx5RUFBcUI7QUFDNUMseUJBQXlCLG1CQUFPLENBQUMsaUZBQXNCO0FBQ3ZELHNCQUFzQixtQkFBTyxDQUFDLDJFQUFtQjtBQUNqRCxrQkFBa0IsbUJBQU8sQ0FBQyxtRUFBZTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQywyRUFBc0I7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRDtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanM/MjlmYiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcbnZhciBidWlsZFVSTCA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvYnVpbGRVUkwnKTtcbnZhciBJbnRlcmNlcHRvck1hbmFnZXIgPSByZXF1aXJlKCcuL0ludGVyY2VwdG9yTWFuYWdlcicpO1xudmFyIGRpc3BhdGNoUmVxdWVzdCA9IHJlcXVpcmUoJy4vZGlzcGF0Y2hSZXF1ZXN0Jyk7XG52YXIgbWVyZ2VDb25maWcgPSByZXF1aXJlKCcuL21lcmdlQ29uZmlnJyk7XG52YXIgdmFsaWRhdG9yID0gcmVxdWlyZSgnLi4vaGVscGVycy92YWxpZGF0b3InKTtcblxudmFyIHZhbGlkYXRvcnMgPSB2YWxpZGF0b3IudmFsaWRhdG9ycztcbi8qKlxuICogQ3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIEF4aW9zXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGluc3RhbmNlQ29uZmlnIFRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIEF4aW9zKGluc3RhbmNlQ29uZmlnKSB7XG4gIHRoaXMuZGVmYXVsdHMgPSBpbnN0YW5jZUNvbmZpZztcbiAgdGhpcy5pbnRlcmNlcHRvcnMgPSB7XG4gICAgcmVxdWVzdDogbmV3IEludGVyY2VwdG9yTWFuYWdlcigpLFxuICAgIHJlc3BvbnNlOiBuZXcgSW50ZXJjZXB0b3JNYW5hZ2VyKClcbiAgfTtcbn1cblxuLyoqXG4gKiBEaXNwYXRjaCBhIHJlcXVlc3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIFRoZSBjb25maWcgc3BlY2lmaWMgZm9yIHRoaXMgcmVxdWVzdCAobWVyZ2VkIHdpdGggdGhpcy5kZWZhdWx0cylcbiAqL1xuQXhpb3MucHJvdG90eXBlLnJlcXVlc3QgPSBmdW5jdGlvbiByZXF1ZXN0KGNvbmZpZykge1xuICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgLy8gQWxsb3cgZm9yIGF4aW9zKCdleGFtcGxlL3VybCdbLCBjb25maWddKSBhIGxhIGZldGNoIEFQSVxuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcgPSBhcmd1bWVudHNbMV0gfHwge307XG4gICAgY29uZmlnLnVybCA9IGFyZ3VtZW50c1swXTtcbiAgfSBlbHNlIHtcbiAgICBjb25maWcgPSBjb25maWcgfHwge307XG4gIH1cblxuICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuXG4gIC8vIFNldCBjb25maWcubWV0aG9kXG4gIGlmIChjb25maWcubWV0aG9kKSB7XG4gICAgY29uZmlnLm1ldGhvZCA9IGNvbmZpZy5tZXRob2QudG9Mb3dlckNhc2UoKTtcbiAgfSBlbHNlIGlmICh0aGlzLmRlZmF1bHRzLm1ldGhvZCkge1xuICAgIGNvbmZpZy5tZXRob2QgPSB0aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpO1xuICB9IGVsc2Uge1xuICAgIGNvbmZpZy5tZXRob2QgPSAnZ2V0JztcbiAgfVxuXG4gIHZhciB0cmFuc2l0aW9uYWwgPSBjb25maWcudHJhbnNpdGlvbmFsO1xuXG4gIGlmICh0cmFuc2l0aW9uYWwgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKHRyYW5zaXRpb25hbCwge1xuICAgICAgc2lsZW50SlNPTlBhcnNpbmc6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiwgJzEuMC4wJyksXG4gICAgICBmb3JjZWRKU09OUGFyc2luZzogdmFsaWRhdG9ycy50cmFuc2l0aW9uYWwodmFsaWRhdG9ycy5ib29sZWFuLCAnMS4wLjAnKSxcbiAgICAgIGNsYXJpZnlUaW1lb3V0RXJyb3I6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiwgJzEuMC4wJylcbiAgICB9LCBmYWxzZSk7XG4gIH1cblxuICAvLyBmaWx0ZXIgb3V0IHNraXBwZWQgaW50ZXJjZXB0b3JzXG4gIHZhciByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbiA9IFtdO1xuICB2YXIgc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzID0gdHJ1ZTtcbiAgdGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uIHVuc2hpZnRSZXF1ZXN0SW50ZXJjZXB0b3JzKGludGVyY2VwdG9yKSB7XG4gICAgaWYgKHR5cGVvZiBpbnRlcmNlcHRvci5ydW5XaGVuID09PSAnZnVuY3Rpb24nICYmIGludGVyY2VwdG9yLnJ1bldoZW4oY29uZmlnKSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgPSBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgJiYgaW50ZXJjZXB0b3Iuc3luY2hyb25vdXM7XG5cbiAgICByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbi51bnNoaWZ0KGludGVyY2VwdG9yLmZ1bGZpbGxlZCwgaW50ZXJjZXB0b3IucmVqZWN0ZWQpO1xuICB9KTtcblxuICB2YXIgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluID0gW107XG4gIHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24gcHVzaFJlc3BvbnNlSW50ZXJjZXB0b3JzKGludGVyY2VwdG9yKSB7XG4gICAgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluLnB1c2goaW50ZXJjZXB0b3IuZnVsZmlsbGVkLCBpbnRlcmNlcHRvci5yZWplY3RlZCk7XG4gIH0pO1xuXG4gIHZhciBwcm9taXNlO1xuXG4gIGlmICghc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzKSB7XG4gICAgdmFyIGNoYWluID0gW2Rpc3BhdGNoUmVxdWVzdCwgdW5kZWZpbmVkXTtcblxuICAgIEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGNoYWluLCByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbik7XG4gICAgY2hhaW4gPSBjaGFpbi5jb25jYXQocmVzcG9uc2VJbnRlcmNlcHRvckNoYWluKTtcblxuICAgIHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoY29uZmlnKTtcbiAgICB3aGlsZSAoY2hhaW4ubGVuZ3RoKSB7XG4gICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKGNoYWluLnNoaWZ0KCksIGNoYWluLnNoaWZ0KCkpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cblxuICB2YXIgbmV3Q29uZmlnID0gY29uZmlnO1xuICB3aGlsZSAocmVxdWVzdEludGVyY2VwdG9yQ2hhaW4ubGVuZ3RoKSB7XG4gICAgdmFyIG9uRnVsZmlsbGVkID0gcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4uc2hpZnQoKTtcbiAgICB2YXIgb25SZWplY3RlZCA9IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluLnNoaWZ0KCk7XG4gICAgdHJ5IHtcbiAgICAgIG5ld0NvbmZpZyA9IG9uRnVsZmlsbGVkKG5ld0NvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uUmVqZWN0ZWQoZXJyb3IpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICBwcm9taXNlID0gZGlzcGF0Y2hSZXF1ZXN0KG5ld0NvbmZpZyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgfVxuXG4gIHdoaWxlIChyZXNwb25zZUludGVyY2VwdG9yQ2hhaW4ubGVuZ3RoKSB7XG4gICAgcHJvbWlzZSA9IHByb21pc2UudGhlbihyZXNwb25zZUludGVyY2VwdG9yQ2hhaW4uc2hpZnQoKSwgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluLnNoaWZ0KCkpO1xuICB9XG5cbiAgcmV0dXJuIHByb21pc2U7XG59O1xuXG5BeGlvcy5wcm90b3R5cGUuZ2V0VXJpID0gZnVuY3Rpb24gZ2V0VXJpKGNvbmZpZykge1xuICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuICByZXR1cm4gYnVpbGRVUkwoY29uZmlnLnVybCwgY29uZmlnLnBhcmFtcywgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cXD8vLCAnJyk7XG59O1xuXG4vLyBQcm92aWRlIGFsaWFzZXMgZm9yIHN1cHBvcnRlZCByZXF1ZXN0IG1ldGhvZHNcbnV0aWxzLmZvckVhY2goWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnLCAnb3B0aW9ucyddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kTm9EYXRhKG1ldGhvZCkge1xuICAvKmVzbGludCBmdW5jLW5hbWVzOjAqL1xuICBBeGlvcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uKHVybCwgY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChtZXJnZUNvbmZpZyhjb25maWcgfHwge30sIHtcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBkYXRhOiAoY29uZmlnIHx8IHt9KS5kYXRhXG4gICAgfSkpO1xuICB9O1xufSk7XG5cbnV0aWxzLmZvckVhY2goWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kV2l0aERhdGEobWV0aG9kKSB7XG4gIC8qZXNsaW50IGZ1bmMtbmFtZXM6MCovXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24odXJsLCBkYXRhLCBjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG1lcmdlQ29uZmlnKGNvbmZpZyB8fCB7fSwge1xuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9KSk7XG4gIH07XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBeGlvcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/Axios.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/InterceptorManager.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! \***********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvSW50ZXJjZXB0b3JNYW5hZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckI7QUFDQSxZQUFZLFFBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvSW50ZXJjZXB0b3JNYW5hZ2VyLmpzP2M3OTIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG5cbmZ1bmN0aW9uIEludGVyY2VwdG9yTWFuYWdlcigpIHtcbiAgdGhpcy5oYW5kbGVycyA9IFtdO1xufVxuXG4vKipcbiAqIEFkZCBhIG5ldyBpbnRlcmNlcHRvciB0byB0aGUgc3RhY2tcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdWxmaWxsZWQgVGhlIGZ1bmN0aW9uIHRvIGhhbmRsZSBgdGhlbmAgZm9yIGEgYFByb21pc2VgXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3RlZCBUaGUgZnVuY3Rpb24gdG8gaGFuZGxlIGByZWplY3RgIGZvciBhIGBQcm9taXNlYFxuICpcbiAqIEByZXR1cm4ge051bWJlcn0gQW4gSUQgdXNlZCB0byByZW1vdmUgaW50ZXJjZXB0b3IgbGF0ZXJcbiAqL1xuSW50ZXJjZXB0b3JNYW5hZ2VyLnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbiB1c2UoZnVsZmlsbGVkLCByZWplY3RlZCwgb3B0aW9ucykge1xuICB0aGlzLmhhbmRsZXJzLnB1c2goe1xuICAgIGZ1bGZpbGxlZDogZnVsZmlsbGVkLFxuICAgIHJlamVjdGVkOiByZWplY3RlZCxcbiAgICBzeW5jaHJvbm91czogb3B0aW9ucyA/IG9wdGlvbnMuc3luY2hyb25vdXMgOiBmYWxzZSxcbiAgICBydW5XaGVuOiBvcHRpb25zID8gb3B0aW9ucy5ydW5XaGVuIDogbnVsbFxuICB9KTtcbiAgcmV0dXJuIHRoaXMuaGFuZGxlcnMubGVuZ3RoIC0gMTtcbn07XG5cbi8qKlxuICogUmVtb3ZlIGFuIGludGVyY2VwdG9yIGZyb20gdGhlIHN0YWNrXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGlkIFRoZSBJRCB0aGF0IHdhcyByZXR1cm5lZCBieSBgdXNlYFxuICovXG5JbnRlcmNlcHRvck1hbmFnZXIucHJvdG90eXBlLmVqZWN0ID0gZnVuY3Rpb24gZWplY3QoaWQpIHtcbiAgaWYgKHRoaXMuaGFuZGxlcnNbaWRdKSB7XG4gICAgdGhpcy5oYW5kbGVyc1tpZF0gPSBudWxsO1xuICB9XG59O1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlZ2lzdGVyZWQgaW50ZXJjZXB0b3JzXG4gKlxuICogVGhpcyBtZXRob2QgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3Igc2tpcHBpbmcgb3ZlciBhbnlcbiAqIGludGVyY2VwdG9ycyB0aGF0IG1heSBoYXZlIGJlY29tZSBgbnVsbGAgY2FsbGluZyBgZWplY3RgLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIGludGVyY2VwdG9yXG4gKi9cbkludGVyY2VwdG9yTWFuYWdlci5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIGZvckVhY2goZm4pIHtcbiAgdXRpbHMuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbiBmb3JFYWNoSGFuZGxlcihoKSB7XG4gICAgaWYgKGggIT09IG51bGwpIHtcbiAgICAgIGZuKGgpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEludGVyY2VwdG9yTWFuYWdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/InterceptorManager.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/buildFullPath.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/core/buildFullPath.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ \"./node_modules/axios/lib/helpers/isAbsoluteURL.js\");\nvar combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ \"./node_modules/axios/lib/helpers/combineURLs.js\");\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvYnVpbGRGdWxsUGF0aC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixvQkFBb0IsbUJBQU8sQ0FBQyxtRkFBMEI7QUFDdEQsa0JBQWtCLG1CQUFPLENBQUMsK0VBQXdCOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvYnVpbGRGdWxsUGF0aC5qcz9mMDJkIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIGlzQWJzb2x1dGVVUkwgPSByZXF1aXJlKCcuLi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwnKTtcbnZhciBjb21iaW5lVVJMcyA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvY29tYmluZVVSTHMnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFVSTCBieSBjb21iaW5pbmcgdGhlIGJhc2VVUkwgd2l0aCB0aGUgcmVxdWVzdGVkVVJMLFxuICogb25seSB3aGVuIHRoZSByZXF1ZXN0ZWRVUkwgaXMgbm90IGFscmVhZHkgYW4gYWJzb2x1dGUgVVJMLlxuICogSWYgdGhlIHJlcXVlc3RVUkwgaXMgYWJzb2x1dGUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcmVxdWVzdGVkVVJMIHVudG91Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1ZXN0ZWRVUkwgQWJzb2x1dGUgb3IgcmVsYXRpdmUgVVJMIHRvIGNvbWJpbmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21iaW5lZCBmdWxsIHBhdGhcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBidWlsZEZ1bGxQYXRoKGJhc2VVUkwsIHJlcXVlc3RlZFVSTCkge1xuICBpZiAoYmFzZVVSTCAmJiAhaXNBYnNvbHV0ZVVSTChyZXF1ZXN0ZWRVUkwpKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVVUkxzKGJhc2VVUkwsIHJlcXVlc3RlZFVSTCk7XG4gIH1cbiAgcmV0dXJuIHJlcXVlc3RlZFVSTDtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/buildFullPath.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/createError.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/core/createError.js ***! \****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar enhanceError = __webpack_require__(/*! ./enhanceError */ \"./node_modules/axios/lib/core/enhanceError.js\");\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvY3JlYXRlRXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsbUJBQW1CLG1CQUFPLENBQUMscUVBQWdCOztBQUUzQztBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL2NyZWF0ZUVycm9yLmpzPzc3MGMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW5oYW5jZUVycm9yID0gcmVxdWlyZSgnLi9lbmhhbmNlRXJyb3InKTtcblxuLyoqXG4gKiBDcmVhdGUgYW4gRXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UsIGNvbmZpZywgZXJyb3IgY29kZSwgcmVxdWVzdCBhbmQgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIFRoZSBjb25maWcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NvZGVdIFRoZSBlcnJvciBjb2RlIChmb3IgZXhhbXBsZSwgJ0VDT05OQUJPUlRFRCcpLlxuICogQHBhcmFtIHtPYmplY3R9IFtyZXF1ZXN0XSBUaGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVzcG9uc2VdIFRoZSByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtFcnJvcn0gVGhlIGNyZWF0ZWQgZXJyb3IuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlRXJyb3IobWVzc2FnZSwgY29uZmlnLCBjb2RlLCByZXF1ZXN0LCByZXNwb25zZSkge1xuICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlbmhhbmNlRXJyb3IoZXJyb3IsIGNvbmZpZywgY29kZSwgcmVxdWVzdCwgcmVzcG9uc2UpO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/createError.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/dispatchRequest.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! \********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar transformData = __webpack_require__(/*! ./transformData */ \"./node_modules/axios/lib/core/transformData.js\");\nvar isCancel = __webpack_require__(/*! ../cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\nvar defaults = __webpack_require__(/*! ../defaults */ \"./node_modules/axios/lib/defaults.js\");\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTtBQUNoQyxvQkFBb0IsbUJBQU8sQ0FBQyx1RUFBaUI7QUFDN0MsZUFBZSxtQkFBTyxDQUFDLHVFQUFvQjtBQUMzQyxlQUFlLG1CQUFPLENBQUMseURBQWE7O0FBRXBDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLHVDQUF1QztBQUN2QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzPzRkYzkiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG52YXIgdHJhbnNmb3JtRGF0YSA9IHJlcXVpcmUoJy4vdHJhbnNmb3JtRGF0YScpO1xudmFyIGlzQ2FuY2VsID0gcmVxdWlyZSgnLi4vY2FuY2VsL2lzQ2FuY2VsJyk7XG52YXIgZGVmYXVsdHMgPSByZXF1aXJlKCcuLi9kZWZhdWx0cycpO1xuXG4vKipcbiAqIFRocm93cyBhIGBDYW5jZWxgIGlmIGNhbmNlbGxhdGlvbiBoYXMgYmVlbiByZXF1ZXN0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKSB7XG4gIGlmIChjb25maWcuY2FuY2VsVG9rZW4pIHtcbiAgICBjb25maWcuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGF0Y2ggYSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdXNpbmcgdGhlIGNvbmZpZ3VyZWQgYWRhcHRlci5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIFRoZSBjb25maWcgdGhhdCBpcyB0byBiZSB1c2VkIGZvciB0aGUgcmVxdWVzdFxuICogQHJldHVybnMge1Byb21pc2V9IFRoZSBQcm9taXNlIHRvIGJlIGZ1bGZpbGxlZFxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRpc3BhdGNoUmVxdWVzdChjb25maWcpIHtcbiAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gIC8vIEVuc3VyZSBoZWFkZXJzIGV4aXN0XG4gIGNvbmZpZy5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgfHwge307XG5cbiAgLy8gVHJhbnNmb3JtIHJlcXVlc3QgZGF0YVxuICBjb25maWcuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICBjb25maWcsXG4gICAgY29uZmlnLmRhdGEsXG4gICAgY29uZmlnLmhlYWRlcnMsXG4gICAgY29uZmlnLnRyYW5zZm9ybVJlcXVlc3RcbiAgKTtcblxuICAvLyBGbGF0dGVuIGhlYWRlcnNcbiAgY29uZmlnLmhlYWRlcnMgPSB1dGlscy5tZXJnZShcbiAgICBjb25maWcuaGVhZGVycy5jb21tb24gfHwge30sXG4gICAgY29uZmlnLmhlYWRlcnNbY29uZmlnLm1ldGhvZF0gfHwge30sXG4gICAgY29uZmlnLmhlYWRlcnNcbiAgKTtcblxuICB1dGlscy5mb3JFYWNoKFxuICAgIFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ3Bvc3QnLCAncHV0JywgJ3BhdGNoJywgJ2NvbW1vbiddLFxuICAgIGZ1bmN0aW9uIGNsZWFuSGVhZGVyQ29uZmlnKG1ldGhvZCkge1xuICAgICAgZGVsZXRlIGNvbmZpZy5oZWFkZXJzW21ldGhvZF07XG4gICAgfVxuICApO1xuXG4gIHZhciBhZGFwdGVyID0gY29uZmlnLmFkYXB0ZXIgfHwgZGVmYXVsdHMuYWRhcHRlcjtcblxuICByZXR1cm4gYWRhcHRlcihjb25maWcpLnRoZW4oZnVuY3Rpb24gb25BZGFwdGVyUmVzb2x1dGlvbihyZXNwb25zZSkge1xuICAgIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKTtcblxuICAgIC8vIFRyYW5zZm9ybSByZXNwb25zZSBkYXRhXG4gICAgcmVzcG9uc2UuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICAgIGNvbmZpZyxcbiAgICAgIHJlc3BvbnNlLmRhdGEsXG4gICAgICByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgY29uZmlnLnRyYW5zZm9ybVJlc3BvbnNlXG4gICAgKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSwgZnVuY3Rpb24gb25BZGFwdGVyUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmICghaXNDYW5jZWwocmVhc29uKSkge1xuICAgICAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gICAgICAvLyBUcmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxuICAgICAgaWYgKHJlYXNvbiAmJiByZWFzb24ucmVzcG9uc2UpIHtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIHJlYXNvbi5yZXNwb25zZS5kYXRhLFxuICAgICAgICAgIHJlYXNvbi5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZWFzb24pO1xuICB9KTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/dispatchRequest.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/enhanceError.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/core/enhanceError.js ***! \*****************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZW5oYW5jZUVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9lbmhhbmNlRXJyb3IuanM/MGRmMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogVXBkYXRlIGFuIEVycm9yIHdpdGggdGhlIHNwZWNpZmllZCBjb25maWcsIGVycm9yIGNvZGUsIGFuZCByZXNwb25zZS5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvciBUaGUgZXJyb3IgdG8gdXBkYXRlLlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2RlXSBUaGUgZXJyb3IgY29kZSAoZm9yIGV4YW1wbGUsICdFQ09OTkFCT1JURUQnKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVxdWVzdF0gVGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW3Jlc3BvbnNlXSBUaGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJucyB7RXJyb3J9IFRoZSBlcnJvci5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBlbmhhbmNlRXJyb3IoZXJyb3IsIGNvbmZpZywgY29kZSwgcmVxdWVzdCwgcmVzcG9uc2UpIHtcbiAgZXJyb3IuY29uZmlnID0gY29uZmlnO1xuICBpZiAoY29kZSkge1xuICAgIGVycm9yLmNvZGUgPSBjb2RlO1xuICB9XG5cbiAgZXJyb3IucmVxdWVzdCA9IHJlcXVlc3Q7XG4gIGVycm9yLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gIGVycm9yLmlzQXhpb3NFcnJvciA9IHRydWU7XG5cbiAgZXJyb3IudG9KU09OID0gZnVuY3Rpb24gdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICAvLyBTdGFuZGFyZFxuICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgLy8gTWljcm9zb2Z0XG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIG51bWJlcjogdGhpcy5udW1iZXIsXG4gICAgICAvLyBNb3ppbGxhXG4gICAgICBmaWxlTmFtZTogdGhpcy5maWxlTmFtZSxcbiAgICAgIGxpbmVOdW1iZXI6IHRoaXMubGluZU51bWJlcixcbiAgICAgIGNvbHVtbk51bWJlcjogdGhpcy5jb2x1bW5OdW1iZXIsXG4gICAgICBzdGFjazogdGhpcy5zdGFjayxcbiAgICAgIC8vIEF4aW9zXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgY29kZTogdGhpcy5jb2RlXG4gICAgfTtcbiAgfTtcbiAgcmV0dXJuIGVycm9yO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/enhanceError.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/mergeConfig.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/core/mergeConfig.js ***! \****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvbWVyZ2VDb25maWcuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLG1EQUFVOztBQUU5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDJCQUEyQjtBQUMzQixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL21lcmdlQ29uZmlnLmpzP2JkMTMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG4vKipcbiAqIENvbmZpZy1zcGVjaWZpYyBtZXJnZS1mdW5jdGlvbiB3aGljaCBjcmVhdGVzIGEgbmV3IGNvbmZpZy1vYmplY3RcbiAqIGJ5IG1lcmdpbmcgdHdvIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0b2dldGhlci5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnMVxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZzJcbiAqIEByZXR1cm5zIHtPYmplY3R9IE5ldyBvYmplY3QgcmVzdWx0aW5nIGZyb20gbWVyZ2luZyBjb25maWcyIHRvIGNvbmZpZzFcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBtZXJnZUNvbmZpZyhjb25maWcxLCBjb25maWcyKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBjb25maWcyID0gY29uZmlnMiB8fCB7fTtcbiAgdmFyIGNvbmZpZyA9IHt9O1xuXG4gIHZhciB2YWx1ZUZyb21Db25maWcyS2V5cyA9IFsndXJsJywgJ21ldGhvZCcsICdkYXRhJ107XG4gIHZhciBtZXJnZURlZXBQcm9wZXJ0aWVzS2V5cyA9IFsnaGVhZGVycycsICdhdXRoJywgJ3Byb3h5JywgJ3BhcmFtcyddO1xuICB2YXIgZGVmYXVsdFRvQ29uZmlnMktleXMgPSBbXG4gICAgJ2Jhc2VVUkwnLCAndHJhbnNmb3JtUmVxdWVzdCcsICd0cmFuc2Zvcm1SZXNwb25zZScsICdwYXJhbXNTZXJpYWxpemVyJyxcbiAgICAndGltZW91dCcsICd0aW1lb3V0TWVzc2FnZScsICd3aXRoQ3JlZGVudGlhbHMnLCAnYWRhcHRlcicsICdyZXNwb25zZVR5cGUnLCAneHNyZkNvb2tpZU5hbWUnLFxuICAgICd4c3JmSGVhZGVyTmFtZScsICdvblVwbG9hZFByb2dyZXNzJywgJ29uRG93bmxvYWRQcm9ncmVzcycsICdkZWNvbXByZXNzJyxcbiAgICAnbWF4Q29udGVudExlbmd0aCcsICdtYXhCb2R5TGVuZ3RoJywgJ21heFJlZGlyZWN0cycsICd0cmFuc3BvcnQnLCAnaHR0cEFnZW50JyxcbiAgICAnaHR0cHNBZ2VudCcsICdjYW5jZWxUb2tlbicsICdzb2NrZXRQYXRoJywgJ3Jlc3BvbnNlRW5jb2RpbmcnXG4gIF07XG4gIHZhciBkaXJlY3RNZXJnZUtleXMgPSBbJ3ZhbGlkYXRlU3RhdHVzJ107XG5cbiAgZnVuY3Rpb24gZ2V0TWVyZ2VkVmFsdWUodGFyZ2V0LCBzb3VyY2UpIHtcbiAgICBpZiAodXRpbHMuaXNQbGFpbk9iamVjdCh0YXJnZXQpICYmIHV0aWxzLmlzUGxhaW5PYmplY3Qoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLm1lcmdlKHRhcmdldCwgc291cmNlKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzUGxhaW5PYmplY3Qoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLm1lcmdlKHt9LCBzb3VyY2UpO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gc291cmNlLnNsaWNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICBmdW5jdGlvbiBtZXJnZURlZXBQcm9wZXJ0aWVzKHByb3ApIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZzJbcHJvcF0pKSB7XG4gICAgICBjb25maWdbcHJvcF0gPSBnZXRNZXJnZWRWYWx1ZShjb25maWcxW3Byb3BdLCBjb25maWcyW3Byb3BdKTtcbiAgICB9IGVsc2UgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcxW3Byb3BdKSkge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBjb25maWcxW3Byb3BdKTtcbiAgICB9XG4gIH1cblxuICB1dGlscy5mb3JFYWNoKHZhbHVlRnJvbUNvbmZpZzJLZXlzLCBmdW5jdGlvbiB2YWx1ZUZyb21Db25maWcyKHByb3ApIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZzJbcHJvcF0pKSB7XG4gICAgICBjb25maWdbcHJvcF0gPSBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGNvbmZpZzJbcHJvcF0pO1xuICAgIH1cbiAgfSk7XG5cbiAgdXRpbHMuZm9yRWFjaChtZXJnZURlZXBQcm9wZXJ0aWVzS2V5cywgbWVyZ2VEZWVwUHJvcGVydGllcyk7XG5cbiAgdXRpbHMuZm9yRWFjaChkZWZhdWx0VG9Db25maWcyS2V5cywgZnVuY3Rpb24gZGVmYXVsdFRvQ29uZmlnMihwcm9wKSB7XG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcyW3Byb3BdKSkge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBjb25maWcyW3Byb3BdKTtcbiAgICB9IGVsc2UgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcxW3Byb3BdKSkge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBjb25maWcxW3Byb3BdKTtcbiAgICB9XG4gIH0pO1xuXG4gIHV0aWxzLmZvckVhY2goZGlyZWN0TWVyZ2VLZXlzLCBmdW5jdGlvbiBtZXJnZShwcm9wKSB7XG4gICAgaWYgKHByb3AgaW4gY29uZmlnMikge1xuICAgICAgY29uZmlnW3Byb3BdID0gZ2V0TWVyZ2VkVmFsdWUoY29uZmlnMVtwcm9wXSwgY29uZmlnMltwcm9wXSk7XG4gICAgfSBlbHNlIGlmIChwcm9wIGluIGNvbmZpZzEpIHtcbiAgICAgIGNvbmZpZ1twcm9wXSA9IGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgY29uZmlnMVtwcm9wXSk7XG4gICAgfVxuICB9KTtcblxuICB2YXIgYXhpb3NLZXlzID0gdmFsdWVGcm9tQ29uZmlnMktleXNcbiAgICAuY29uY2F0KG1lcmdlRGVlcFByb3BlcnRpZXNLZXlzKVxuICAgIC5jb25jYXQoZGVmYXVsdFRvQ29uZmlnMktleXMpXG4gICAgLmNvbmNhdChkaXJlY3RNZXJnZUtleXMpO1xuXG4gIHZhciBvdGhlcktleXMgPSBPYmplY3RcbiAgICAua2V5cyhjb25maWcxKVxuICAgIC5jb25jYXQoT2JqZWN0LmtleXMoY29uZmlnMikpXG4gICAgLmZpbHRlcihmdW5jdGlvbiBmaWx0ZXJBeGlvc0tleXMoa2V5KSB7XG4gICAgICByZXR1cm4gYXhpb3NLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTE7XG4gICAgfSk7XG5cbiAgdXRpbHMuZm9yRWFjaChvdGhlcktleXMsIG1lcmdlRGVlcFByb3BlcnRpZXMpO1xuXG4gIHJldHVybiBjb25maWc7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/mergeConfig.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/settle.js": /*!***********************************************!*\ !*** ./node_modules/axios/lib/core/settle.js ***! \***********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar createError = __webpack_require__(/*! ./createError */ \"./node_modules/axios/lib/core/createError.js\");\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvc2V0dGxlLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQixtQkFBTyxDQUFDLG1FQUFlOztBQUV6QztBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsUUFBUTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9zZXR0bGUuanM/ODc2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJy4vY3JlYXRlRXJyb3InKTtcblxuLyoqXG4gKiBSZXNvbHZlIG9yIHJlamVjdCBhIFByb21pc2UgYmFzZWQgb24gcmVzcG9uc2Ugc3RhdHVzLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlc29sdmUgQSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVqZWN0IEEgZnVuY3Rpb24gdGhhdCByZWplY3RzIHRoZSBwcm9taXNlLlxuICogQHBhcmFtIHtvYmplY3R9IHJlc3BvbnNlIFRoZSByZXNwb25zZS5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCByZXNwb25zZSkge1xuICB2YXIgdmFsaWRhdGVTdGF0dXMgPSByZXNwb25zZS5jb25maWcudmFsaWRhdGVTdGF0dXM7XG4gIGlmICghcmVzcG9uc2Uuc3RhdHVzIHx8ICF2YWxpZGF0ZVN0YXR1cyB8fCB2YWxpZGF0ZVN0YXR1cyhyZXNwb25zZS5zdGF0dXMpKSB7XG4gICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gIH0gZWxzZSB7XG4gICAgcmVqZWN0KGNyZWF0ZUVycm9yKFxuICAgICAgJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJyArIHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgIHJlc3BvbnNlLmNvbmZpZyxcbiAgICAgIG51bGwsXG4gICAgICByZXNwb25zZS5yZXF1ZXN0LFxuICAgICAgcmVzcG9uc2VcbiAgICApKTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/settle.js\n"); /***/ }), /***/ "./node_modules/axios/lib/core/transformData.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/core/transformData.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar defaults = __webpack_require__(/*! ./../defaults */ \"./node_modules/axios/lib/defaults.js\");\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvdHJhbnNmb3JtRGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7QUFDaEMsZUFBZSxtQkFBTyxDQUFDLDJEQUFlOztBQUV0QztBQUNBO0FBQ0E7QUFDQSxXQUFXLGVBQWU7QUFDMUIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsZ0JBQWdCO0FBQzNCLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvdHJhbnNmb3JtRGF0YS5qcz83NjYyIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi8uLi91dGlscycpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi8uLi9kZWZhdWx0cycpO1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgZGF0YSBmb3IgYSByZXF1ZXN0IG9yIGEgcmVzcG9uc2VcbiAqXG4gKiBAcGFyYW0ge09iamVjdHxTdHJpbmd9IGRhdGEgVGhlIGRhdGEgdG8gYmUgdHJhbnNmb3JtZWRcbiAqIEBwYXJhbSB7QXJyYXl9IGhlYWRlcnMgVGhlIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlXG4gKiBAcGFyYW0ge0FycmF5fEZ1bmN0aW9ufSBmbnMgQSBzaW5nbGUgZnVuY3Rpb24gb3IgQXJyYXkgb2YgZnVuY3Rpb25zXG4gKiBAcmV0dXJucyB7Kn0gVGhlIHJlc3VsdGluZyB0cmFuc2Zvcm1lZCBkYXRhXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gdHJhbnNmb3JtRGF0YShkYXRhLCBoZWFkZXJzLCBmbnMpIHtcbiAgdmFyIGNvbnRleHQgPSB0aGlzIHx8IGRlZmF1bHRzO1xuICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgdXRpbHMuZm9yRWFjaChmbnMsIGZ1bmN0aW9uIHRyYW5zZm9ybShmbikge1xuICAgIGRhdGEgPSBmbi5jYWxsKGNvbnRleHQsIGRhdGEsIGhlYWRlcnMpO1xuICB9KTtcblxuICByZXR1cm4gZGF0YTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/core/transformData.js\n"); /***/ }), /***/ "./node_modules/axios/lib/defaults.js": /*!********************************************!*\ !*** ./node_modules/axios/lib/defaults.js ***! \********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ \"./node_modules/process/browser.js\");\n\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/lib/utils.js\");\nvar normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ \"./node_modules/axios/lib/helpers/normalizeHeaderName.js\");\nvar enhanceError = __webpack_require__(/*! ./core/enhanceError */ \"./node_modules/axios/lib/core/enhanceError.js\");\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = __webpack_require__(/*! ./adapters/xhr */ \"./node_modules/axios/lib/adapters/xhr.js\");\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = __webpack_require__(/*! ./adapters/http */ \"./node_modules/axios/lib/adapters/xhr.js\");\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2RlZmF1bHRzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMsa0RBQVM7QUFDN0IsMEJBQTBCLG1CQUFPLENBQUMsOEZBQStCO0FBQ2pFLG1CQUFtQixtQkFBTyxDQUFDLDBFQUFxQjs7QUFFaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLG1CQUFPLENBQUMsZ0VBQWdCO0FBQ3RDLElBQUksZ0JBQWdCLE9BQU8sbURBQW1ELE9BQU87QUFDckY7QUFDQSxjQUFjLG1CQUFPLENBQUMsaUVBQWlCO0FBQ3ZDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9kZWZhdWx0cy5qcz9lMjIxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xudmFyIG5vcm1hbGl6ZUhlYWRlck5hbWUgPSByZXF1aXJlKCcuL2hlbHBlcnMvbm9ybWFsaXplSGVhZGVyTmFtZScpO1xudmFyIGVuaGFuY2VFcnJvciA9IHJlcXVpcmUoJy4vY29yZS9lbmhhbmNlRXJyb3InKTtcblxudmFyIERFRkFVTFRfQ09OVEVOVF9UWVBFID0ge1xuICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbmZ1bmN0aW9uIHNldENvbnRlbnRUeXBlSWZVbnNldChoZWFkZXJzLCB2YWx1ZSkge1xuICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGhlYWRlcnMpICYmIHV0aWxzLmlzVW5kZWZpbmVkKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSkge1xuICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gdmFsdWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdEFkYXB0ZXIoKSB7XG4gIHZhciBhZGFwdGVyO1xuICBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEZvciBicm93c2VycyB1c2UgWEhSIGFkYXB0ZXJcbiAgICBhZGFwdGVyID0gcmVxdWlyZSgnLi9hZGFwdGVycy94aHInKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpID09PSAnW29iamVjdCBwcm9jZXNzXScpIHtcbiAgICAvLyBGb3Igbm9kZSB1c2UgSFRUUCBhZGFwdGVyXG4gICAgYWRhcHRlciA9IHJlcXVpcmUoJy4vYWRhcHRlcnMvaHR0cCcpO1xuICB9XG4gIHJldHVybiBhZGFwdGVyO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlTYWZlbHkocmF3VmFsdWUsIHBhcnNlciwgZW5jb2Rlcikge1xuICBpZiAodXRpbHMuaXNTdHJpbmcocmF3VmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIChwYXJzZXIgfHwgSlNPTi5wYXJzZSkocmF3VmFsdWUpO1xuICAgICAgcmV0dXJuIHV0aWxzLnRyaW0ocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKGVuY29kZXIgfHwgSlNPTi5zdHJpbmdpZnkpKHJhd1ZhbHVlKTtcbn1cblxudmFyIGRlZmF1bHRzID0ge1xuXG4gIHRyYW5zaXRpb25hbDoge1xuICAgIHNpbGVudEpTT05QYXJzaW5nOiB0cnVlLFxuICAgIGZvcmNlZEpTT05QYXJzaW5nOiB0cnVlLFxuICAgIGNsYXJpZnlUaW1lb3V0RXJyb3I6IGZhbHNlXG4gIH0sXG5cbiAgYWRhcHRlcjogZ2V0RGVmYXVsdEFkYXB0ZXIoKSxcblxuICB0cmFuc2Zvcm1SZXF1ZXN0OiBbZnVuY3Rpb24gdHJhbnNmb3JtUmVxdWVzdChkYXRhLCBoZWFkZXJzKSB7XG4gICAgbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJzLCAnQWNjZXB0Jyk7XG4gICAgbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJzLCAnQ29udGVudC1UeXBlJyk7XG5cbiAgICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNBcnJheUJ1ZmZlcihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNCdWZmZXIoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzU3RyZWFtKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0ZpbGUoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzQmxvYihkYXRhKVxuICAgICkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyVmlldyhkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGEuYnVmZmVyO1xuICAgIH1cbiAgICBpZiAodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMoZGF0YSkpIHtcbiAgICAgIHNldENvbnRlbnRUeXBlSWZVbnNldChoZWFkZXJzLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgnKTtcbiAgICAgIHJldHVybiBkYXRhLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc09iamVjdChkYXRhKSB8fCAoaGVhZGVycyAmJiBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgc2V0Q29udGVudFR5cGVJZlVuc2V0KGhlYWRlcnMsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICByZXR1cm4gc3RyaW5naWZ5U2FmZWx5KGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgdHJhbnNmb3JtUmVzcG9uc2U6IFtmdW5jdGlvbiB0cmFuc2Zvcm1SZXNwb25zZShkYXRhKSB7XG4gICAgdmFyIHRyYW5zaXRpb25hbCA9IHRoaXMudHJhbnNpdGlvbmFsO1xuICAgIHZhciBzaWxlbnRKU09OUGFyc2luZyA9IHRyYW5zaXRpb25hbCAmJiB0cmFuc2l0aW9uYWwuc2lsZW50SlNPTlBhcnNpbmc7XG4gICAgdmFyIGZvcmNlZEpTT05QYXJzaW5nID0gdHJhbnNpdGlvbmFsICYmIHRyYW5zaXRpb25hbC5mb3JjZWRKU09OUGFyc2luZztcbiAgICB2YXIgc3RyaWN0SlNPTlBhcnNpbmcgPSAhc2lsZW50SlNPTlBhcnNpbmcgJiYgdGhpcy5yZXNwb25zZVR5cGUgPT09ICdqc29uJztcblxuICAgIGlmIChzdHJpY3RKU09OUGFyc2luZyB8fCAoZm9yY2VkSlNPTlBhcnNpbmcgJiYgdXRpbHMuaXNTdHJpbmcoZGF0YSkgJiYgZGF0YS5sZW5ndGgpKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHN0cmljdEpTT05QYXJzaW5nKSB7XG4gICAgICAgICAgaWYgKGUubmFtZSA9PT0gJ1N5bnRheEVycm9yJykge1xuICAgICAgICAgICAgdGhyb3cgZW5oYW5jZUVycm9yKGUsIHRoaXMsICdFX0pTT05fUEFSU0UnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XSxcblxuICAvKipcbiAgICogQSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0byBhYm9ydCBhIHJlcXVlc3QuIElmIHNldCB0byAwIChkZWZhdWx0KSBhXG4gICAqIHRpbWVvdXQgaXMgbm90IGNyZWF0ZWQuXG4gICAqL1xuICB0aW1lb3V0OiAwLFxuXG4gIHhzcmZDb29raWVOYW1lOiAnWFNSRi1UT0tFTicsXG4gIHhzcmZIZWFkZXJOYW1lOiAnWC1YU1JGLVRPS0VOJyxcblxuICBtYXhDb250ZW50TGVuZ3RoOiAtMSxcbiAgbWF4Qm9keUxlbmd0aDogLTEsXG5cbiAgdmFsaWRhdGVTdGF0dXM6IGZ1bmN0aW9uIHZhbGlkYXRlU3RhdHVzKHN0YXR1cykge1xuICAgIHJldHVybiBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMDtcbiAgfVxufTtcblxuZGVmYXVsdHMuaGVhZGVycyA9IHtcbiAgY29tbW9uOiB7XG4gICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonXG4gIH1cbn07XG5cbnV0aWxzLmZvckVhY2goWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnXSwgZnVuY3Rpb24gZm9yRWFjaE1ldGhvZE5vRGF0YShtZXRob2QpIHtcbiAgZGVmYXVsdHMuaGVhZGVyc1ttZXRob2RdID0ge307XG59KTtcblxudXRpbHMuZm9yRWFjaChbJ3Bvc3QnLCAncHV0JywgJ3BhdGNoJ10sIGZ1bmN0aW9uIGZvckVhY2hNZXRob2RXaXRoRGF0YShtZXRob2QpIHtcbiAgZGVmYXVsdHMuaGVhZGVyc1ttZXRob2RdID0gdXRpbHMubWVyZ2UoREVGQVVMVF9DT05URU5UX1RZUEUpO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVmYXVsdHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/defaults.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/bind.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/helpers/bind.js ***! \************************************************/ /***/ ((module) => { "use strict"; eval("\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYmluZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYmluZC5qcz80YmVhIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBiaW5kKGZuLCB0aGlzQXJnKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKCkge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/bind.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/buildURL.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/helpers/buildURL.js ***! \****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYnVpbGRVUkwuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYnVpbGRVUkwuanM/YzE3OCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcblxuZnVuY3Rpb24gZW5jb2RlKHZhbCkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbCkuXG4gICAgcmVwbGFjZSgvJTNBL2dpLCAnOicpLlxuICAgIHJlcGxhY2UoLyUyNC9nLCAnJCcpLlxuICAgIHJlcGxhY2UoLyUyQy9naSwgJywnKS5cbiAgICByZXBsYWNlKC8lMjAvZywgJysnKS5cbiAgICByZXBsYWNlKC8lNUIvZ2ksICdbJykuXG4gICAgcmVwbGFjZSgvJTVEL2dpLCAnXScpO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgVVJMIGJ5IGFwcGVuZGluZyBwYXJhbXMgdG8gdGhlIGVuZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIGJhc2Ugb2YgdGhlIHVybCAoZS5nLiwgaHR0cDovL3d3dy5nb29nbGUuY29tKVxuICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIFRoZSBwYXJhbXMgdG8gYmUgYXBwZW5kZWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgdXJsXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gYnVpbGRVUkwodXJsLCBwYXJhbXMsIHBhcmFtc1NlcmlhbGl6ZXIpIHtcbiAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gIGlmICghcGFyYW1zKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHZhciBzZXJpYWxpemVkUGFyYW1zO1xuICBpZiAocGFyYW1zU2VyaWFsaXplcikge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSBwYXJhbXNTZXJpYWxpemVyKHBhcmFtcyk7XG4gIH0gZWxzZSBpZiAodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMocGFyYW1zKSkge1xuICAgIHNlcmlhbGl6ZWRQYXJhbXMgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgcGFydHMgPSBbXTtcblxuICAgIHV0aWxzLmZvckVhY2gocGFyYW1zLCBmdW5jdGlvbiBzZXJpYWxpemUodmFsLCBrZXkpIHtcbiAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodXRpbHMuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgIGtleSA9IGtleSArICdbXSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWwgPSBbdmFsXTtcbiAgICAgIH1cblxuICAgICAgdXRpbHMuZm9yRWFjaCh2YWwsIGZ1bmN0aW9uIHBhcnNlVmFsdWUodikge1xuICAgICAgICBpZiAodXRpbHMuaXNEYXRlKHYpKSB7XG4gICAgICAgICAgdiA9IHYudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIGlmICh1dGlscy5pc09iamVjdCh2KSkge1xuICAgICAgICAgIHYgPSBKU09OLnN0cmluZ2lmeSh2KTtcbiAgICAgICAgfVxuICAgICAgICBwYXJ0cy5wdXNoKGVuY29kZShrZXkpICsgJz0nICsgZW5jb2RlKHYpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHBhcnRzLmpvaW4oJyYnKTtcbiAgfVxuXG4gIGlmIChzZXJpYWxpemVkUGFyYW1zKSB7XG4gICAgdmFyIGhhc2htYXJrSW5kZXggPSB1cmwuaW5kZXhPZignIycpO1xuICAgIGlmIChoYXNobWFya0luZGV4ICE9PSAtMSkge1xuICAgICAgdXJsID0gdXJsLnNsaWNlKDAsIGhhc2htYXJrSW5kZXgpO1xuICAgIH1cblxuICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgc2VyaWFsaXplZFBhcmFtcztcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/buildURL.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/combineURLs.js": /*!*******************************************************!*\ !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! \*******************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29tYmluZVVSTHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2NvbWJpbmVVUkxzLmpzPzZiYzYiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgVVJMIGJ5IGNvbWJpbmluZyB0aGUgc3BlY2lmaWVkIFVSTHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWxhdGl2ZVVSTCBUaGUgcmVsYXRpdmUgVVJMXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tYmluZWQgVVJMXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY29tYmluZVVSTHMoYmFzZVVSTCwgcmVsYXRpdmVVUkwpIHtcbiAgcmV0dXJuIHJlbGF0aXZlVVJMXG4gICAgPyBiYXNlVVJMLnJlcGxhY2UoL1xcLyskLywgJycpICsgJy8nICsgcmVsYXRpdmVVUkwucmVwbGFjZSgvXlxcLysvLCAnJylcbiAgICA6IGJhc2VVUkw7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/combineURLs.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/cookies.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/helpers/cookies.js ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29va2llcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7O0FBRWhDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwyQ0FBMkM7QUFDM0MsU0FBUzs7QUFFVDtBQUNBLDREQUE0RCx3QkFBd0I7QUFDcEY7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEMsZ0NBQWdDLGNBQWM7QUFDOUM7QUFDQTtBQUNBLEtBQUs7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb29raWVzLmpzPzFkM2YiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKFxuICB1dGlscy5pc1N0YW5kYXJkQnJvd3NlckVudigpID9cblxuICAvLyBTdGFuZGFyZCBicm93c2VyIGVudnMgc3VwcG9ydCBkb2N1bWVudC5jb29raWVcbiAgICAoZnVuY3Rpb24gc3RhbmRhcmRCcm93c2VyRW52KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd3JpdGU6IGZ1bmN0aW9uIHdyaXRlKG5hbWUsIHZhbHVlLCBleHBpcmVzLCBwYXRoLCBkb21haW4sIHNlY3VyZSkge1xuICAgICAgICAgIHZhciBjb29raWUgPSBbXTtcbiAgICAgICAgICBjb29raWUucHVzaChuYW1lICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSk7XG5cbiAgICAgICAgICBpZiAodXRpbHMuaXNOdW1iZXIoZXhwaXJlcykpIHtcbiAgICAgICAgICAgIGNvb2tpZS5wdXNoKCdleHBpcmVzPScgKyBuZXcgRGF0ZShleHBpcmVzKS50b0dNVFN0cmluZygpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXRpbHMuaXNTdHJpbmcocGF0aCkpIHtcbiAgICAgICAgICAgIGNvb2tpZS5wdXNoKCdwYXRoPScgKyBwYXRoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXRpbHMuaXNTdHJpbmcoZG9tYWluKSkge1xuICAgICAgICAgICAgY29va2llLnB1c2goJ2RvbWFpbj0nICsgZG9tYWluKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc2VjdXJlID09PSB0cnVlKSB7XG4gICAgICAgICAgICBjb29raWUucHVzaCgnc2VjdXJlJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llLmpvaW4oJzsgJyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgcmVhZDogZnVuY3Rpb24gcmVhZChuYW1lKSB7XG4gICAgICAgICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDtcXFxccyopKCcgKyBuYW1lICsgJyk9KFteO10qKScpKTtcbiAgICAgICAgICByZXR1cm4gKG1hdGNoID8gZGVjb2RlVVJJQ29tcG9uZW50KG1hdGNoWzNdKSA6IG51bGwpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKG5hbWUpIHtcbiAgICAgICAgICB0aGlzLndyaXRlKG5hbWUsICcnLCBEYXRlLm5vdygpIC0gODY0MDAwMDApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pKCkgOlxuXG4gIC8vIE5vbiBzdGFuZGFyZCBicm93c2VyIGVudiAod2ViIHdvcmtlcnMsIHJlYWN0LW5hdGl2ZSkgbGFjayBuZWVkZWQgc3VwcG9ydC5cbiAgICAoZnVuY3Rpb24gbm9uU3RhbmRhcmRCcm93c2VyRW52KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd3JpdGU6IGZ1bmN0aW9uIHdyaXRlKCkge30sXG4gICAgICAgIHJlYWQ6IGZ1bmN0aW9uIHJlYWQoKSB7IHJldHVybiBudWxsOyB9LFxuICAgICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgICB9O1xuICAgIH0pKClcbik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/cookies.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! \*********************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBYnNvbHV0ZVVSTC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwuanM/YTIyNyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgVVJMIGlzIGFic29sdXRlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBzcGVjaWZpZWQgVVJMIGlzIGFic29sdXRlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0Fic29sdXRlVVJMKHVybCkge1xuICAvLyBBIFVSTCBpcyBjb25zaWRlcmVkIGFic29sdXRlIGlmIGl0IGJlZ2lucyB3aXRoIFwiPHNjaGVtZT46Ly9cIiBvciBcIi8vXCIgKHByb3RvY29sLXJlbGF0aXZlIFVSTCkuXG4gIC8vIFJGQyAzOTg2IGRlZmluZXMgc2NoZW1lIG5hbWUgYXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIGJlZ2lubmluZyB3aXRoIGEgbGV0dGVyIGFuZCBmb2xsb3dlZFxuICAvLyBieSBhbnkgY29tYmluYXRpb24gb2YgbGV0dGVycywgZGlnaXRzLCBwbHVzLCBwZXJpb2QsIG9yIGh5cGhlbi5cbiAgcmV0dXJuIC9eKFthLXpdW2EtelxcZFxcK1xcLVxcLl0qOik/XFwvXFwvL2kudGVzdCh1cmwpO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/isAbsoluteURL.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/isAxiosError.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! \********************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBeGlvc0Vycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc0F4aW9zRXJyb3IuanM/YmQ5ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwYXlsb2FkIGlzIGFuIGVycm9yIHRocm93biBieSBBeGlvc1xuICpcbiAqIEBwYXJhbSB7Kn0gcGF5bG9hZCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0F4aW9zRXJyb3IocGF5bG9hZCkge1xuICByZXR1cm4gKHR5cGVvZiBwYXlsb2FkID09PSAnb2JqZWN0JykgJiYgKHBheWxvYWQuaXNBeGlvc0Vycm9yID09PSB0cnVlKTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/isAxiosError.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! \***********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNVUkxTYW1lT3JpZ2luLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYyxRQUFRO0FBQ3RCLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsUUFBUTtBQUN0QixnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNVUkxTYW1lT3JpZ2luLmpzPzg3OTUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKFxuICB1dGlscy5pc1N0YW5kYXJkQnJvd3NlckVudigpID9cblxuICAvLyBTdGFuZGFyZCBicm93c2VyIGVudnMgaGF2ZSBmdWxsIHN1cHBvcnQgb2YgdGhlIEFQSXMgbmVlZGVkIHRvIHRlc3RcbiAgLy8gd2hldGhlciB0aGUgcmVxdWVzdCBVUkwgaXMgb2YgdGhlIHNhbWUgb3JpZ2luIGFzIGN1cnJlbnQgbG9jYXRpb24uXG4gICAgKGZ1bmN0aW9uIHN0YW5kYXJkQnJvd3NlckVudigpIHtcbiAgICAgIHZhciBtc2llID0gLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICAgIHZhciB1cmxQYXJzaW5nTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgIHZhciBvcmlnaW5VUkw7XG5cbiAgICAgIC8qKlxuICAgICogUGFyc2UgYSBVUkwgdG8gZGlzY292ZXIgaXQncyBjb21wb25lbnRzXG4gICAgKlxuICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCBUaGUgVVJMIHRvIGJlIHBhcnNlZFxuICAgICogQHJldHVybnMge09iamVjdH1cbiAgICAqL1xuICAgICAgZnVuY3Rpb24gcmVzb2x2ZVVSTCh1cmwpIHtcbiAgICAgICAgdmFyIGhyZWYgPSB1cmw7XG5cbiAgICAgICAgaWYgKG1zaWUpIHtcbiAgICAgICAgLy8gSUUgbmVlZHMgYXR0cmlidXRlIHNldCB0d2ljZSB0byBub3JtYWxpemUgcHJvcGVydGllc1xuICAgICAgICAgIHVybFBhcnNpbmdOb2RlLnNldEF0dHJpYnV0ZSgnaHJlZicsIGhyZWYpO1xuICAgICAgICAgIGhyZWYgPSB1cmxQYXJzaW5nTm9kZS5ocmVmO1xuICAgICAgICB9XG5cbiAgICAgICAgdXJsUGFyc2luZ05vZGUuc2V0QXR0cmlidXRlKCdocmVmJywgaHJlZik7XG5cbiAgICAgICAgLy8gdXJsUGFyc2luZ05vZGUgcHJvdmlkZXMgdGhlIFVybFV0aWxzIGludGVyZmFjZSAtIGh0dHA6Ly91cmwuc3BlYy53aGF0d2cub3JnLyN1cmx1dGlsc1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhyZWY6IHVybFBhcnNpbmdOb2RlLmhyZWYsXG4gICAgICAgICAgcHJvdG9jb2w6IHVybFBhcnNpbmdOb2RlLnByb3RvY29sID8gdXJsUGFyc2luZ05vZGUucHJvdG9jb2wucmVwbGFjZSgvOiQvLCAnJykgOiAnJyxcbiAgICAgICAgICBob3N0OiB1cmxQYXJzaW5nTm9kZS5ob3N0LFxuICAgICAgICAgIHNlYXJjaDogdXJsUGFyc2luZ05vZGUuc2VhcmNoID8gdXJsUGFyc2luZ05vZGUuc2VhcmNoLnJlcGxhY2UoL15cXD8vLCAnJykgOiAnJyxcbiAgICAgICAgICBoYXNoOiB1cmxQYXJzaW5nTm9kZS5oYXNoID8gdXJsUGFyc2luZ05vZGUuaGFzaC5yZXBsYWNlKC9eIy8sICcnKSA6ICcnLFxuICAgICAgICAgIGhvc3RuYW1lOiB1cmxQYXJzaW5nTm9kZS5ob3N0bmFtZSxcbiAgICAgICAgICBwb3J0OiB1cmxQYXJzaW5nTm9kZS5wb3J0LFxuICAgICAgICAgIHBhdGhuYW1lOiAodXJsUGFyc2luZ05vZGUucGF0aG5hbWUuY2hhckF0KDApID09PSAnLycpID9cbiAgICAgICAgICAgIHVybFBhcnNpbmdOb2RlLnBhdGhuYW1lIDpcbiAgICAgICAgICAgICcvJyArIHVybFBhcnNpbmdOb2RlLnBhdGhuYW1lXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIG9yaWdpblVSTCA9IHJlc29sdmVVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuXG4gICAgICAvKipcbiAgICAqIERldGVybWluZSBpZiBhIFVSTCBzaGFyZXMgdGhlIHNhbWUgb3JpZ2luIGFzIHRoZSBjdXJyZW50IGxvY2F0aW9uXG4gICAgKlxuICAgICogQHBhcmFtIHtTdHJpbmd9IHJlcXVlc3RVUkwgVGhlIFVSTCB0byB0ZXN0XG4gICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBVUkwgc2hhcmVzIHRoZSBzYW1lIG9yaWdpbiwgb3RoZXJ3aXNlIGZhbHNlXG4gICAgKi9cbiAgICAgIHJldHVybiBmdW5jdGlvbiBpc1VSTFNhbWVPcmlnaW4ocmVxdWVzdFVSTCkge1xuICAgICAgICB2YXIgcGFyc2VkID0gKHV0aWxzLmlzU3RyaW5nKHJlcXVlc3RVUkwpKSA/IHJlc29sdmVVUkwocmVxdWVzdFVSTCkgOiByZXF1ZXN0VVJMO1xuICAgICAgICByZXR1cm4gKHBhcnNlZC5wcm90b2NvbCA9PT0gb3JpZ2luVVJMLnByb3RvY29sICYmXG4gICAgICAgICAgICBwYXJzZWQuaG9zdCA9PT0gb3JpZ2luVVJMLmhvc3QpO1xuICAgICAgfTtcbiAgICB9KSgpIDpcblxuICAvLyBOb24gc3RhbmRhcmQgYnJvd3NlciBlbnZzICh3ZWIgd29ya2VycywgcmVhY3QtbmF0aXZlKSBsYWNrIG5lZWRlZCBzdXBwb3J0LlxuICAgIChmdW5jdGlvbiBub25TdGFuZGFyZEJyb3dzZXJFbnYoKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gaXNVUkxTYW1lT3JpZ2luKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG4gICAgfSkoKVxuKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/isURLSameOrigin.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js": /*!***************************************************************!*\ !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***! \***************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvbm9ybWFsaXplSGVhZGVyTmFtZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixZQUFZLG1CQUFPLENBQUMsbURBQVU7O0FBRTlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9ub3JtYWxpemVIZWFkZXJOYW1lLmpzPzZiMTUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlck5hbWUoaGVhZGVycywgbm9ybWFsaXplZE5hbWUpIHtcbiAgdXRpbHMuZm9yRWFjaChoZWFkZXJzLCBmdW5jdGlvbiBwcm9jZXNzSGVhZGVyKHZhbHVlLCBuYW1lKSB7XG4gICAgaWYgKG5hbWUgIT09IG5vcm1hbGl6ZWROYW1lICYmIG5hbWUudG9VcHBlckNhc2UoKSA9PT0gbm9ybWFsaXplZE5hbWUudG9VcHBlckNhc2UoKSkge1xuICAgICAgaGVhZGVyc1tub3JtYWxpemVkTmFtZV0gPSB2YWx1ZTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/normalizeHeaderName.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/parseHeaders.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! \********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcGFyc2VIZWFkZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQjs7QUFFbEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZUhlYWRlcnMuanM/NTRlOSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcblxuLy8gSGVhZGVycyB3aG9zZSBkdXBsaWNhdGVzIGFyZSBpZ25vcmVkIGJ5IG5vZGVcbi8vIGMuZi4gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjaHR0cF9tZXNzYWdlX2hlYWRlcnNcbnZhciBpZ25vcmVEdXBsaWNhdGVPZiA9IFtcbiAgJ2FnZScsICdhdXRob3JpemF0aW9uJywgJ2NvbnRlbnQtbGVuZ3RoJywgJ2NvbnRlbnQtdHlwZScsICdldGFnJyxcbiAgJ2V4cGlyZXMnLCAnZnJvbScsICdob3N0JywgJ2lmLW1vZGlmaWVkLXNpbmNlJywgJ2lmLXVubW9kaWZpZWQtc2luY2UnLFxuICAnbGFzdC1tb2RpZmllZCcsICdsb2NhdGlvbicsICdtYXgtZm9yd2FyZHMnLCAncHJveHktYXV0aG9yaXphdGlvbicsXG4gICdyZWZlcmVyJywgJ3JldHJ5LWFmdGVyJywgJ3VzZXItYWdlbnQnXG5dO1xuXG4vKipcbiAqIFBhcnNlIGhlYWRlcnMgaW50byBhbiBvYmplY3RcbiAqXG4gKiBgYGBcbiAqIERhdGU6IFdlZCwgMjcgQXVnIDIwMTQgMDg6NTg6NDkgR01UXG4gKiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cbiAqIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAqIFRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaGVhZGVycyBIZWFkZXJzIG5lZWRpbmcgdG8gYmUgcGFyc2VkXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBIZWFkZXJzIHBhcnNlZCBpbnRvIGFuIG9iamVjdFxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlSGVhZGVycyhoZWFkZXJzKSB7XG4gIHZhciBwYXJzZWQgPSB7fTtcbiAgdmFyIGtleTtcbiAgdmFyIHZhbDtcbiAgdmFyIGk7XG5cbiAgaWYgKCFoZWFkZXJzKSB7IHJldHVybiBwYXJzZWQ7IH1cblxuICB1dGlscy5mb3JFYWNoKGhlYWRlcnMuc3BsaXQoJ1xcbicpLCBmdW5jdGlvbiBwYXJzZXIobGluZSkge1xuICAgIGkgPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICBrZXkgPSB1dGlscy50cmltKGxpbmUuc3Vic3RyKDAsIGkpKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IHV0aWxzLnRyaW0obGluZS5zdWJzdHIoaSArIDEpKTtcblxuICAgIGlmIChrZXkpIHtcbiAgICAgIGlmIChwYXJzZWRba2V5XSAmJiBpZ25vcmVEdXBsaWNhdGVPZi5pbmRleE9mKGtleSkgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgICAgcGFyc2VkW2tleV0gPSAocGFyc2VkW2tleV0gPyBwYXJzZWRba2V5XSA6IFtdKS5jb25jYXQoW3ZhbF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyc2VkW2tleV0gPSBwYXJzZWRba2V5XSA/IHBhcnNlZFtrZXldICsgJywgJyArIHZhbCA6IHZhbDtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwYXJzZWQ7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/parseHeaders.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/spread.js": /*!**************************************************!*\ !*** ./node_modules/axios/lib/helpers/spread.js ***! \**************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvc3ByZWFkLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3NwcmVhZC5qcz8yNzI5Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBTeW50YWN0aWMgc3VnYXIgZm9yIGludm9raW5nIGEgZnVuY3Rpb24gYW5kIGV4cGFuZGluZyBhbiBhcnJheSBmb3IgYXJndW1lbnRzLlxuICpcbiAqIENvbW1vbiB1c2UgY2FzZSB3b3VsZCBiZSB0byB1c2UgYEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseWAuXG4gKlxuICogIGBgYGpzXG4gKiAgZnVuY3Rpb24gZih4LCB5LCB6KSB7fVxuICogIHZhciBhcmdzID0gWzEsIDIsIDNdO1xuICogIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gKiAgYGBgXG4gKlxuICogV2l0aCBgc3ByZWFkYCB0aGlzIGV4YW1wbGUgY2FuIGJlIHJlLXdyaXR0ZW4uXG4gKlxuICogIGBgYGpzXG4gKiAgc3ByZWFkKGZ1bmN0aW9uKHgsIHksIHopIHt9KShbMSwgMiwgM10pO1xuICogIGBgYFxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gc3ByZWFkKGNhbGxiYWNrKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKGFycikge1xuICAgIHJldHVybiBjYWxsYmFjay5hcHBseShudWxsLCBhcnIpO1xuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/spread.js\n"); /***/ }), /***/ "./node_modules/axios/lib/helpers/validator.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/helpers/validator.js ***! \*****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar pkg = __webpack_require__(/*! ./../../package.json */ \"./node_modules/axios/package.json\");\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdmFsaWRhdG9yLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFVBQVUsbUJBQU8sQ0FBQywrREFBc0I7O0FBRXhDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFNBQVM7QUFDcEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLE9BQU87QUFDekI7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLG1CQUFtQjtBQUM5QixXQUFXLFNBQVM7QUFDcEIsV0FBVyxRQUFRO0FBQ25CLGFBQWE7QUFDYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3ZhbGlkYXRvci5qcz8wMTMyIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIHBrZyA9IHJlcXVpcmUoJy4vLi4vLi4vcGFja2FnZS5qc29uJyk7XG5cbnZhciB2YWxpZGF0b3JzID0ge307XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5bJ29iamVjdCcsICdib29sZWFuJywgJ251bWJlcicsICdmdW5jdGlvbicsICdzdHJpbmcnLCAnc3ltYm9sJ10uZm9yRWFjaChmdW5jdGlvbih0eXBlLCBpKSB7XG4gIHZhbGlkYXRvcnNbdHlwZV0gPSBmdW5jdGlvbiB2YWxpZGF0b3IodGhpbmcpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSB0eXBlIHx8ICdhJyArIChpIDwgMSA/ICduICcgOiAnICcpICsgdHlwZTtcbiAgfTtcbn0pO1xuXG52YXIgZGVwcmVjYXRlZFdhcm5pbmdzID0ge307XG52YXIgY3VycmVudFZlckFyciA9IHBrZy52ZXJzaW9uLnNwbGl0KCcuJyk7XG5cbi8qKlxuICogQ29tcGFyZSBwYWNrYWdlIHZlcnNpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2lvblxuICogQHBhcmFtIHtzdHJpbmc/fSB0aGFuVmVyc2lvblxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzT2xkZXJWZXJzaW9uKHZlcnNpb24sIHRoYW5WZXJzaW9uKSB7XG4gIHZhciBwa2dWZXJzaW9uQXJyID0gdGhhblZlcnNpb24gPyB0aGFuVmVyc2lvbi5zcGxpdCgnLicpIDogY3VycmVudFZlckFycjtcbiAgdmFyIGRlc3RWZXIgPSB2ZXJzaW9uLnNwbGl0KCcuJyk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7XG4gICAgaWYgKHBrZ1ZlcnNpb25BcnJbaV0gPiBkZXN0VmVyW2ldKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHBrZ1ZlcnNpb25BcnJbaV0gPCBkZXN0VmVyW2ldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBUcmFuc2l0aW9uYWwgb3B0aW9uIHZhbGlkYXRvclxuICogQHBhcmFtIHtmdW5jdGlvbnxib29sZWFuP30gdmFsaWRhdG9yXG4gKiBAcGFyYW0ge3N0cmluZz99IHZlcnNpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259XG4gKi9cbnZhbGlkYXRvcnMudHJhbnNpdGlvbmFsID0gZnVuY3Rpb24gdHJhbnNpdGlvbmFsKHZhbGlkYXRvciwgdmVyc2lvbiwgbWVzc2FnZSkge1xuICB2YXIgaXNEZXByZWNhdGVkID0gdmVyc2lvbiAmJiBpc09sZGVyVmVyc2lvbih2ZXJzaW9uKTtcblxuICBmdW5jdGlvbiBmb3JtYXRNZXNzYWdlKG9wdCwgZGVzYykge1xuICAgIHJldHVybiAnW0F4aW9zIHYnICsgcGtnLnZlcnNpb24gKyAnXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFxcJycgKyBvcHQgKyAnXFwnJyArIGRlc2MgKyAobWVzc2FnZSA/ICcuICcgKyBtZXNzYWdlIDogJycpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvcHQsIG9wdHMpIHtcbiAgICBpZiAodmFsaWRhdG9yID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdE1lc3NhZ2Uob3B0LCAnIGhhcyBiZWVuIHJlbW92ZWQgaW4gJyArIHZlcnNpb24pKTtcbiAgICB9XG5cbiAgICBpZiAoaXNEZXByZWNhdGVkICYmICFkZXByZWNhdGVkV2FybmluZ3Nbb3B0XSkge1xuICAgICAgZGVwcmVjYXRlZFdhcm5pbmdzW29wdF0gPSB0cnVlO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgZm9ybWF0TWVzc2FnZShcbiAgICAgICAgICBvcHQsXG4gICAgICAgICAgJyBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYnICsgdmVyc2lvbiArICcgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUnXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRvciA/IHZhbGlkYXRvcih2YWx1ZSwgb3B0LCBvcHRzKSA6IHRydWU7XG4gIH07XG59O1xuXG4vKipcbiAqIEFzc2VydCBvYmplY3QncyBwcm9wZXJ0aWVzIHR5cGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge29iamVjdH0gc2NoZW1hXG4gKiBAcGFyYW0ge2Jvb2xlYW4/fSBhbGxvd1Vua25vd25cbiAqL1xuXG5mdW5jdGlvbiBhc3NlcnRPcHRpb25zKG9wdGlvbnMsIHNjaGVtYSwgYWxsb3dVbmtub3duKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gIH1cbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTtcbiAgdmFyIGkgPSBrZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICB2YXIgb3B0ID0ga2V5c1tpXTtcbiAgICB2YXIgdmFsaWRhdG9yID0gc2NoZW1hW29wdF07XG4gICAgaWYgKHZhbGlkYXRvcikge1xuICAgICAgdmFyIHZhbHVlID0gb3B0aW9uc1tvcHRdO1xuICAgICAgdmFyIHJlc3VsdCA9IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsaWRhdG9yKHZhbHVlLCBvcHQsIG9wdGlvbnMpO1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gJyArIG9wdCArICcgbXVzdCBiZSAnICsgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYWxsb3dVbmtub3duICE9PSB0cnVlKSB7XG4gICAgICB0aHJvdyBFcnJvcignVW5rbm93biBvcHRpb24gJyArIG9wdCk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpc09sZGVyVmVyc2lvbjogaXNPbGRlclZlcnNpb24sXG4gIGFzc2VydE9wdGlvbnM6IGFzc2VydE9wdGlvbnMsXG4gIHZhbGlkYXRvcnM6IHZhbGlkYXRvcnNcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/helpers/validator.js\n"); /***/ }), /***/ "./node_modules/axios/lib/utils.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/utils.js ***! \*****************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\");\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0MsT0FBTztBQUMvQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3V0aWxzLmpzP2M5ZWIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYmluZCA9IHJlcXVpcmUoJy4vaGVscGVycy9iaW5kJyk7XG5cbi8vIHV0aWxzIGlzIGEgbGlicmFyeSBvZiBnZW5lcmljIGhlbHBlciBmdW5jdGlvbnMgbm9uLXNwZWNpZmljIHRvIGF4aW9zXG5cbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBBcnJheSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXkodmFsKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgdW5kZWZpbmVkXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3VuZGVmaW5lZCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBCdWZmZXJcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQnVmZmVyKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmICFpc1VuZGVmaW5lZCh2YWwpICYmIHZhbC5jb25zdHJ1Y3RvciAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsLmNvbnN0cnVjdG9yKVxuICAgICYmIHR5cGVvZiB2YWwuY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyKHZhbCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXJcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBBcnJheUJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlCdWZmZXIodmFsKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBGb3JtRGF0YVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEZvcm1EYXRhLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGb3JtRGF0YSh2YWwpIHtcbiAgcmV0dXJuICh0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnKSAmJiAodmFsIGluc3RhbmNlb2YgRm9ybURhdGEpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlCdWZmZXJWaWV3KHZhbCkge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpICYmIChBcnJheUJ1ZmZlci5pc1ZpZXcpKSB7XG4gICAgcmVzdWx0ID0gQXJyYXlCdWZmZXIuaXNWaWV3KHZhbCk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gKHZhbCkgJiYgKHZhbC5idWZmZXIpICYmICh2YWwuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBTdHJpbmdcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmluZywgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZyc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBOdW1iZXJcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIE51bWJlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTnVtYmVyKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcic7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gT2JqZWN0XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XG4gIHJldHVybiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBwbGFpbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWwpIHtcbiAgaWYgKHRvU3RyaW5nLmNhbGwodmFsKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbCk7XG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRGF0ZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRGF0ZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRGF0ZSh2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRmlsZSh2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRmlsZV0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQmxvYlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgQmxvYiwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQmxvYih2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgQmxvYl0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEZ1bmN0aW9uLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFN0cmVhbVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgU3RyZWFtLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTdHJlYW0odmFsKSB7XG4gIHJldHVybiBpc09iamVjdCh2YWwpICYmIGlzRnVuY3Rpb24odmFsLnBpcGUpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVVJMU2VhcmNoUGFyYW1zKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIFVSTFNlYXJjaFBhcmFtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zO1xufVxuXG4vKipcbiAqIFRyaW0gZXhjZXNzIHdoaXRlc3BhY2Ugb2ZmIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgVGhlIFN0cmluZyB0byB0cmltXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgU3RyaW5nIGZyZWVkIG9mIGV4Y2VzcyB3aGl0ZXNwYWNlXG4gKi9cbmZ1bmN0aW9uIHRyaW0oc3RyKSB7XG4gIHJldHVybiBzdHIudHJpbSA/IHN0ci50cmltKCkgOiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB3ZSdyZSBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciBlbnZpcm9ubWVudFxuICpcbiAqIFRoaXMgYWxsb3dzIGF4aW9zIHRvIHJ1biBpbiBhIHdlYiB3b3JrZXIsIGFuZCByZWFjdC1uYXRpdmUuXG4gKiBCb3RoIGVudmlyb25tZW50cyBzdXBwb3J0IFhNTEh0dHBSZXF1ZXN0LCBidXQgbm90IGZ1bGx5IHN0YW5kYXJkIGdsb2JhbHMuXG4gKlxuICogd2ViIHdvcmtlcnM6XG4gKiAgdHlwZW9mIHdpbmRvdyAtPiB1bmRlZmluZWRcbiAqICB0eXBlb2YgZG9jdW1lbnQgLT4gdW5kZWZpbmVkXG4gKlxuICogcmVhY3QtbmF0aXZlOlxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdSZWFjdE5hdGl2ZSdcbiAqIG5hdGl2ZXNjcmlwdFxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdOYXRpdmVTY3JpcHQnIG9yICdOUydcbiAqL1xuZnVuY3Rpb24gaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSB7XG4gIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiAobmF2aWdhdG9yLnByb2R1Y3QgPT09ICdSZWFjdE5hdGl2ZScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ05hdGl2ZVNjcmlwdCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ05TJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIChcbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCdcbiAgKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgYW4gQXJyYXkgb3IgYW4gT2JqZWN0IGludm9raW5nIGEgZnVuY3Rpb24gZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiBgb2JqYCBpcyBhbiBBcnJheSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nXG4gKiB0aGUgdmFsdWUsIGluZGV4LCBhbmQgY29tcGxldGUgYXJyYXkgZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiAnb2JqJyBpcyBhbiBPYmplY3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgcGFzc2luZ1xuICogdGhlIHZhbHVlLCBrZXksIGFuZCBjb21wbGV0ZSBvYmplY3QgZm9yIGVhY2ggcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IG9iaiBUaGUgb2JqZWN0IHRvIGl0ZXJhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBjYWxsYmFjayB0byBpbnZva2UgZm9yIGVhY2ggaXRlbVxuICovXG5mdW5jdGlvbiBmb3JFYWNoKG9iaiwgZm4pIHtcbiAgLy8gRG9uJ3QgYm90aGVyIGlmIG5vIHZhbHVlIHByb3ZpZGVkXG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBGb3JjZSBhbiBhcnJheSBpZiBub3QgYWxyZWFkeSBzb21ldGhpbmcgaXRlcmFibGVcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gICAgb2JqID0gW29ial07XG4gIH1cblxuICBpZiAoaXNBcnJheShvYmopKSB7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIGFycmF5IHZhbHVlc1xuICAgIGZvciAodmFyIGkgPSAwLCBsID0gb2JqLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgZm4uY2FsbChudWxsLCBvYmpbaV0sIGksIG9iaik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIEl0ZXJhdGUgb3ZlciBvYmplY3Qga2V5c1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgIGZuLmNhbGwobnVsbCwgb2JqW2tleV0sIGtleSwgb2JqKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBY2NlcHRzIHZhcmFyZ3MgZXhwZWN0aW5nIGVhY2ggYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0LCB0aGVuXG4gKiBpbW11dGFibHkgbWVyZ2VzIHRoZSBwcm9wZXJ0aWVzIG9mIGVhY2ggb2JqZWN0IGFuZCByZXR1cm5zIHJlc3VsdC5cbiAqXG4gKiBXaGVuIG11bHRpcGxlIG9iamVjdHMgY29udGFpbiB0aGUgc2FtZSBrZXkgdGhlIGxhdGVyIG9iamVjdCBpblxuICogdGhlIGFyZ3VtZW50cyBsaXN0IHdpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBganNcbiAqIHZhciByZXN1bHQgPSBtZXJnZSh7Zm9vOiAxMjN9LCB7Zm9vOiA0NTZ9KTtcbiAqIGNvbnNvbGUubG9nKHJlc3VsdC5mb28pOyAvLyBvdXRwdXRzIDQ1NlxuICogYGBgXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iajEgT2JqZWN0IHRvIG1lcmdlXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXN1bHQgb2YgYWxsIG1lcmdlIHByb3BlcnRpZXNcbiAqL1xuZnVuY3Rpb24gbWVyZ2UoLyogb2JqMSwgb2JqMiwgb2JqMywgLi4uICovKSB7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgZnVuY3Rpb24gYXNzaWduVmFsdWUodmFsLCBrZXkpIHtcbiAgICBpZiAoaXNQbGFpbk9iamVjdChyZXN1bHRba2V5XSkgJiYgaXNQbGFpbk9iamVjdCh2YWwpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IG1lcmdlKHJlc3VsdFtrZXldLCB2YWwpO1xuICAgIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdCh2YWwpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IG1lcmdlKHt9LCB2YWwpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbC5zbGljZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbDtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBpID0gMCwgbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBmb3JFYWNoKGFyZ3VtZW50c1tpXSwgYXNzaWduVmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRXh0ZW5kcyBvYmplY3QgYSBieSBtdXRhYmx5IGFkZGluZyB0byBpdCB0aGUgcHJvcGVydGllcyBvZiBvYmplY3QgYi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gYSBUaGUgb2JqZWN0IHRvIGJlIGV4dGVuZGVkXG4gKiBAcGFyYW0ge09iamVjdH0gYiBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tXG4gKiBAcGFyYW0ge09iamVjdH0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJpbmQgZnVuY3Rpb24gdG9cbiAqIEByZXR1cm4ge09iamVjdH0gVGhlIHJlc3VsdGluZyB2YWx1ZSBvZiBvYmplY3QgYVxuICovXG5mdW5jdGlvbiBleHRlbmQoYSwgYiwgdGhpc0FyZykge1xuICBmb3JFYWNoKGIsIGZ1bmN0aW9uIGFzc2lnblZhbHVlKHZhbCwga2V5KSB7XG4gICAgaWYgKHRoaXNBcmcgJiYgdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgYVtrZXldID0gYmluZCh2YWwsIHRoaXNBcmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhW2tleV0gPSB2YWw7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGE7XG59XG5cbi8qKlxuICogUmVtb3ZlIGJ5dGUgb3JkZXIgbWFya2VyLiBUaGlzIGNhdGNoZXMgRUYgQkIgQkYgKHRoZSBVVEYtOCBCT00pXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgd2l0aCBCT01cbiAqIEByZXR1cm4ge3N0cmluZ30gY29udGVudCB2YWx1ZSB3aXRob3V0IEJPTVxuICovXG5mdW5jdGlvbiBzdHJpcEJPTShjb250ZW50KSB7XG4gIGlmIChjb250ZW50LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnNsaWNlKDEpO1xuICB9XG4gIHJldHVybiBjb250ZW50O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgaXNBcnJheTogaXNBcnJheSxcbiAgaXNBcnJheUJ1ZmZlcjogaXNBcnJheUJ1ZmZlcixcbiAgaXNCdWZmZXI6IGlzQnVmZmVyLFxuICBpc0Zvcm1EYXRhOiBpc0Zvcm1EYXRhLFxuICBpc0FycmF5QnVmZmVyVmlldzogaXNBcnJheUJ1ZmZlclZpZXcsXG4gIGlzU3RyaW5nOiBpc1N0cmluZyxcbiAgaXNOdW1iZXI6IGlzTnVtYmVyLFxuICBpc09iamVjdDogaXNPYmplY3QsXG4gIGlzUGxhaW5PYmplY3Q6IGlzUGxhaW5PYmplY3QsXG4gIGlzVW5kZWZpbmVkOiBpc1VuZGVmaW5lZCxcbiAgaXNEYXRlOiBpc0RhdGUsXG4gIGlzRmlsZTogaXNGaWxlLFxuICBpc0Jsb2I6IGlzQmxvYixcbiAgaXNGdW5jdGlvbjogaXNGdW5jdGlvbixcbiAgaXNTdHJlYW06IGlzU3RyZWFtLFxuICBpc1VSTFNlYXJjaFBhcmFtczogaXNVUkxTZWFyY2hQYXJhbXMsXG4gIGlzU3RhbmRhcmRCcm93c2VyRW52OiBpc1N0YW5kYXJkQnJvd3NlckVudixcbiAgZm9yRWFjaDogZm9yRWFjaCxcbiAgbWVyZ2U6IG1lcmdlLFxuICBleHRlbmQ6IGV4dGVuZCxcbiAgdHJpbTogdHJpbSxcbiAgc3RyaXBCT006IHN0cmlwQk9NXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/axios/lib/utils.js\n"); /***/ }), /***/ "./resources/assets/js/app.js": /*!************************************!*\ !*** ./resources/assets/js/app.js ***! \************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("__webpack_require__(/*! ./bootstrap */ \"./resources/assets/js/bootstrap.js\");\nwindow.BpmnModeler = __webpack_require__(/*! camunda-bpmn-js/lib/camunda-platform/Modeler */ \"./node_modules/camunda-bpmn-js/lib/camunda-platform/Modeler.js\");\n$(document).ready(function () {\n $('[data-toggle=\"tooltip\"]').tooltip();\n //\n // const menuLinks = document.querySelectorAll('.sidebar-platform .sidebar-list li .parent-link');\n // const sidebarDiv = document.querySelector('.sidebar-platform');\n // menuLinks.forEach((link, index) => {\n // link.addEventListener('mouseover', (event) => {\n // const newLink = link.cloneNode(true);\n // newLink.classList.add('clone-link');\n // newLink.classList.add('clone-link' + index);\n // sidebarDiv.appendChild(newLink);\n // const posTop = link.getBoundingClientRect().top;\n // newLink.style.top = posTop + 'px';\n // });\n // link.addEventListener('mouseout', (event) => {\n // document.querySelector('.clone-link' + index).remove();\n // });\n // });\n // const sidebarTreeParents = document.querySelectorAll('.sidebar-platform .tree-content.tree-parent');\n // const appDiv = document.getElementById('app');\n // sidebarTreeParents.forEach(item => {\n // const treeToggleButton = item.previousElementSibling;\n // const newTitle = treeToggleButton.cloneNode(true);\n // newTitle.classList.add('clone-title');\n // item.appendChild(newTitle);\n // treeToggleButton.addEventListener('mouseover', (event) => {\n // const posTop = treeToggleButton.getBoundingClientRect().top;\n // const posBottom = Number(window.innerHeight - treeToggleButton.getBoundingClientRect().bottom);\n // item.style.top = null;\n // item.style.bottom = null;\n // item.style.maxHeight = null;\n // item.style.overflow = null;\n // if (!appDiv.classList.contains('menu-open')) {\n // if (posBottom < 250) {\n // item.style.bottom = posBottom + 'px';\n // item.style.maxHeight = `calc(100vh - ${posBottom}px)`;\n // } else {\n // item.style.top = posTop + 50 + 'px';\n // newTitle.style.top = posTop + 'px';\n // item.style.maxHeight = `calc(100vh - ${posTop + 50}px)`;\n // }\n // item.style.overflow = 'auto';\n // }\n // });\n // });\n //\n // const sidebarTreeParentsRemoveStyles = () => {\n // sidebarTreeParents.forEach(item => {\n // item.style.top = null;\n // item.style.bottom = null;\n // item.style.maxHeight = null;\n // item.style.overflow = null;\n // });\n // };\n\n var sidebarList = document.querySelectorAll('.sidebar-platform .sidebar-list .li-parent');\n var sidebarContent = document.querySelector('.sidebar-platform .sidebar-content');\n if (sidebarList.length) {\n sidebarList.forEach(function (li, index) {\n var nextLi = li.nextElementSibling;\n li.addEventListener('mouseover', function () {\n sidebarContent.style.overflow = 'visible';\n index === 0 ? li.style.top = '-50px' : li.style.top = \"\".concat(index * 50, \"px\");\n });\n li.addEventListener('mouseout', function () {\n sidebarContent.style.overflow = null;\n li.style.top = null;\n });\n });\n }\n $('.tree-toggle').click(function () {\n if ($('#app').hasClass('menu-open')) {\n $(this).parent().children('ul.tree-content').slideToggle(200);\n $(this).toggleClass('active');\n }\n });\n $('.menu-trigger').click(function () {\n // sidebarTreeParentsRemoveStyles();\n axios.get('/ru/set_open_menu').then(function (resp) {\n console.log(resp.data);\n });\n if ($('#app').hasClass(\"menu-open\")) {\n $('#app').removeClass('menu-open');\n } else {\n $('#app').addClass('menu-open');\n }\n });\n $(\".filter-trigger\").on(\"click\", function (event) {\n event.stopPropagation();\n $(\"#filter_block\").slideToggle(200);\n $(this).toggleClass('active');\n });\n\n // save to localStorage history of redirected url\n // const locationPath = window.location.pathname + window.location.search;\n // const historyContent = document.querySelector('#history-urls');\n // const historyListEl = document.querySelector('#history-urls .history-list');\n // const clearButton = document.querySelector('#history-urls .clear-local-block');\n // const historyUrls = localStorage.getItem('historyUrls');\n //\n // function addEmpty() {\n // const span = document.createElement('span');\n // span.classList.add('no-history');\n // span.innerHTML = 'История пуста';\n // historyListEl.appendChild(span);\n // historyContent.classList.add('empty-list');\n // }\n //\n // function deleteChild() {\n // let child = historyListEl.lastElementChild;\n // while (child) {\n // historyListEl.removeChild(child);\n // child = historyListEl.lastElementChild;\n // }\n // }\n //\n // function textTimeFormatter(time, type) {\n // let text = '';\n // let lastNum = time;\n // if (time > 10) {\n // lastNum = Number(time.toString().split('')[1]);\n // }\n // if (type === 'sec') {\n // if (lastNum === 1) text = 'секунду';\n // if (lastNum > 1 && lastNum < 5) text = 'секунды';\n // if (lastNum >= 5 || lastNum === 0) text = 'секунд';\n // }\n // if (type === 'min') {\n // if (lastNum === 1) text = 'минуту';\n // if (lastNum > 1 && lastNum < 5) text = 'минуты';\n // if (lastNum >= 5 || lastNum === 0) text = 'минут';\n // }\n // if (type === 'hour') {\n // if (lastNum === 1) text = 'час';\n // if (lastNum > 1 && lastNum < 5) text = 'часа';\n // if (lastNum >= 5 || lastNum === 0) text = 'часов';\n // }\n // if (type === 'day') {\n // text = '1 дня';\n // }\n // return text;\n // }\n //\n // let historyUrlsArray = JSON.parse(historyUrls);\n // if (historyUrlsArray) {\n // historyContent.classList.remove('empty-list');\n // historyUrlsArray.forEach(item => {\n // let diffInDays = Math.floor((new Date() - new Date(item.date)) / 1000);\n // let timeType = '';\n // if (diffInDays < 60) {\n // timeType = 'sec';\n // } else if (diffInDays > 60 && diffInDays < 3600) {\n // diffInDays = Math.floor(diffInDays / 60);\n // timeType = 'min';\n // } else if (diffInDays > 3600 && diffInDays < 86400) {\n // diffInDays = Math.floor(diffInDays / 60 / 60);\n // timeType = 'hour';\n // } else {\n // timeType = 'day';\n // }\n // const timeTypeText = textTimeFormatter(diffInDays, timeType);\n // if (timeType === 'day') {\n // diffInDays = 'Более';\n // }\n // const a = document.createElement('a');\n // a.href = item.url;\n // a.innerHTML = `${item.url}${item.dateString} ${diffInDays} ${timeTypeText} назад`;\n // historyListEl.prepend(a);\n // });\n // } else {\n // historyUrlsArray = [];\n // addEmpty();\n // }\n //\n // if (historyUrlsArray.length > 20) {\n // historyUrlsArray.pop();\n // }\n //\n // if (locationPath !== '/' && locationPath !== '/login' && locationPath !== '/register' && locationPath !== '/logout') {\n // historyUrlsArray.push({\n // url: locationPath,\n // date: new Date(),\n // dateString: new Date().toLocaleString()\n // });\n // }\n // localStorage.setItem('historyUrls', JSON.stringify(historyUrlsArray));\n //\n // clearButton.addEventListener('click', () => {\n // localStorage.setItem('historyUrls', null);\n // deleteChild();\n // addEmpty();\n // });\n // \n\n Waves.init();\n Waves.attach('.sidebar-list li a');\n Waves.attach('.sidebar-list li .tree-toggle');\n Waves.attach('.navbar-platform .item-nav');\n Waves.attach('.btn');\n $('[data-toggle=\"tooltip\"]').tooltip();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEtBQUssQ0FBQ0UsTUFBTSxDQUFDLDRCQUE0QixDQUFDO0VBQzFDRixLQUFLLENBQUNFLE1BQU0sQ0FBQyxNQUFNLENBQUM7RUFDcEJ2QyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQ0csT0FBTyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9hcHAuanM/ZTM0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuL2Jvb3RzdHJhcCcpO1xuXG53aW5kb3cuQnBtbk1vZGVsZXIgPSByZXF1aXJlKCdjYW11bmRhLWJwbW4tanMvbGliL2NhbXVuZGEtcGxhdGZvcm0vTW9kZWxlcicpXG5cbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcblxuICAgICQoJ1tkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIl0nKS50b29sdGlwKCk7XG4gICAgLy9cbiAgICAvLyBjb25zdCBtZW51TGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2lkZWJhci1wbGF0Zm9ybSAuc2lkZWJhci1saXN0IGxpIC5wYXJlbnQtbGluaycpO1xuICAgIC8vIGNvbnN0IHNpZGViYXJEaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2lkZWJhci1wbGF0Zm9ybScpO1xuICAgIC8vIG1lbnVMaW5rcy5mb3JFYWNoKChsaW5rLCBpbmRleCkgPT4ge1xuICAgIC8vICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIChldmVudCkgPT4ge1xuICAgIC8vICAgICAgICAgY29uc3QgbmV3TGluayA9IGxpbmsuY2xvbmVOb2RlKHRydWUpO1xuICAgIC8vICAgICAgICAgbmV3TGluay5jbGFzc0xpc3QuYWRkKCdjbG9uZS1saW5rJyk7XG4gICAgLy8gICAgICAgICBuZXdMaW5rLmNsYXNzTGlzdC5hZGQoJ2Nsb25lLWxpbmsnICsgaW5kZXgpO1xuICAgIC8vICAgICAgICAgc2lkZWJhckRpdi5hcHBlbmRDaGlsZChuZXdMaW5rKTtcbiAgICAvLyAgICAgICAgIGNvbnN0IHBvc1RvcCA9IGxpbmsuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgIC8vICAgICAgICAgbmV3TGluay5zdHlsZS50b3AgPSBwb3NUb3AgKyAncHgnO1xuICAgIC8vICAgICB9KTtcbiAgICAvLyAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIChldmVudCkgPT4ge1xuICAgIC8vICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNsb25lLWxpbmsnICsgaW5kZXgpLnJlbW92ZSgpO1xuICAgIC8vICAgICB9KTtcbiAgICAvLyB9KTtcbiAgICAvLyBjb25zdCBzaWRlYmFyVHJlZVBhcmVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2lkZWJhci1wbGF0Zm9ybSAudHJlZS1jb250ZW50LnRyZWUtcGFyZW50Jyk7XG4gICAgLy8gY29uc3QgYXBwRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcCcpO1xuICAgIC8vIHNpZGViYXJUcmVlUGFyZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIC8vICAgICBjb25zdCB0cmVlVG9nZ2xlQnV0dG9uID0gaXRlbS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIC8vICAgICBjb25zdCBuZXdUaXRsZSA9IHRyZWVUb2dnbGVCdXR0b24uY2xvbmVOb2RlKHRydWUpO1xuICAgIC8vICAgICBuZXdUaXRsZS5jbGFzc0xpc3QuYWRkKCdjbG9uZS10aXRsZScpO1xuICAgIC8vICAgICBpdGVtLmFwcGVuZENoaWxkKG5ld1RpdGxlKTtcbiAgICAvLyAgICAgdHJlZVRvZ2dsZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCAoZXZlbnQpID0+IHtcbiAgICAvLyAgICAgICAgIGNvbnN0IHBvc1RvcCA9IHRyZWVUb2dnbGVCdXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgIC8vICAgICAgICAgY29uc3QgcG9zQm90dG9tID0gTnVtYmVyKHdpbmRvdy5pbm5lckhlaWdodCAtIHRyZWVUb2dnbGVCdXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tKTtcbiAgICAvLyAgICAgICAgIGl0ZW0uc3R5bGUudG9wID0gbnVsbDtcbiAgICAvLyAgICAgICAgIGl0ZW0uc3R5bGUuYm90dG9tID0gbnVsbDtcbiAgICAvLyAgICAgICAgIGl0ZW0uc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDtcbiAgICAvLyAgICAgICAgIGl0ZW0uc3R5bGUub3ZlcmZsb3cgPSBudWxsO1xuICAgIC8vICAgICAgICAgaWYgKCFhcHBEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCdtZW51LW9wZW4nKSkge1xuICAgIC8vICAgICAgICAgICAgIGlmIChwb3NCb3R0b20gPCAyNTApIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgaXRlbS5zdHlsZS5ib3R0b20gPSBwb3NCb3R0b20gKyAncHgnO1xuICAgIC8vICAgICAgICAgICAgICAgICBpdGVtLnN0eWxlLm1heEhlaWdodCA9IGBjYWxjKDEwMHZoIC0gJHtwb3NCb3R0b219cHgpYDtcbiAgICAvLyAgICAgICAgICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgICAgICAgICBpdGVtLnN0eWxlLnRvcCA9IHBvc1RvcCArIDUwICsgJ3B4JztcbiAgICAvLyAgICAgICAgICAgICAgICAgbmV3VGl0bGUuc3R5bGUudG9wID0gcG9zVG9wICsgJ3B4JztcbiAgICAvLyAgICAgICAgICAgICAgICAgaXRlbS5zdHlsZS5tYXhIZWlnaHQgPSBgY2FsYygxMDB2aCAtICR7cG9zVG9wICsgNTB9cHgpYDtcbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICAgICAgaXRlbS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfSk7XG4gICAgLy9cbiAgICAvLyBjb25zdCBzaWRlYmFyVHJlZVBhcmVudHNSZW1vdmVTdHlsZXMgPSAoKSA9PiB7XG4gICAgLy8gICAgIHNpZGViYXJUcmVlUGFyZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIC8vICAgICAgICAgaXRlbS5zdHlsZS50b3AgPSBudWxsO1xuICAgIC8vICAgICAgICAgaXRlbS5zdHlsZS5ib3R0b20gPSBudWxsO1xuICAgIC8vICAgICAgICAgaXRlbS5zdHlsZS5tYXhIZWlnaHQgPSBudWxsO1xuICAgIC8vICAgICAgICAgaXRlbS5zdHlsZS5vdmVyZmxvdyA9IG51bGw7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH07XG5cbiAgICBjb25zdCBzaWRlYmFyTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zaWRlYmFyLXBsYXRmb3JtIC5zaWRlYmFyLWxpc3QgLmxpLXBhcmVudCcpO1xuICAgIGNvbnN0IHNpZGViYXJDb250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNpZGViYXItcGxhdGZvcm0gLnNpZGViYXItY29udGVudCcpO1xuICAgIGlmKHNpZGViYXJMaXN0Lmxlbmd0aCl7XG4gICAgICAgIHNpZGViYXJMaXN0LmZvckVhY2goKGxpLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV4dExpID0gbGkubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgbGkuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNpZGViYXJDb250ZW50LnN0eWxlLm92ZXJmbG93ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgICAgIGluZGV4ID09PSAwID8gbGkuc3R5bGUudG9wID0gJy01MHB4JyA6IGxpLnN0eWxlLnRvcCA9IGAke2luZGV4ICogNTB9cHhgO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsaS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBzaWRlYmFyQ29udGVudC5zdHlsZS5vdmVyZmxvdyA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGkuc3R5bGUudG9wID0gbnVsbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgICQoJy50cmVlLXRvZ2dsZScpLmNsaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYoJCgnI2FwcCcpLmhhc0NsYXNzKCdtZW51LW9wZW4nKSl7XG4gICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmNoaWxkcmVuKCd1bC50cmVlLWNvbnRlbnQnKS5zbGlkZVRvZ2dsZSgyMDApO1xuICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJy5tZW51LXRyaWdnZXInKS5jbGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIHNpZGViYXJUcmVlUGFyZW50c1JlbW92ZVN0eWxlcygpO1xuICAgICAgICBheGlvcy5nZXQoJy9ydS9zZXRfb3Blbl9tZW51JykudGhlbihyZXNwID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3AuZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoJCgnI2FwcCcpLmhhc0NsYXNzKFwibWVudS1vcGVuXCIpKSB7XG4gICAgICAgICAgICAkKCcjYXBwJykucmVtb3ZlQ2xhc3MoJ21lbnUtb3BlbicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJCgnI2FwcCcpLmFkZENsYXNzKCdtZW51LW9wZW4nKTtcbiAgICAgICAgfVxuICAgIH0pXG5cbiAgICAkKFwiLmZpbHRlci10cmlnZ2VyXCIpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAkKFwiI2ZpbHRlcl9ibG9ja1wiKS5zbGlkZVRvZ2dsZSgyMDApO1xuICAgICAgICAkKHRoaXMpLnRvZ2dsZUNsYXNzKCdhY3RpdmUnKVxuICAgIH0pO1xuXG5cbiAgICAvLyA8Y29kZS1ibG9jaz4gc2F2ZSB0byBsb2NhbFN0b3JhZ2UgaGlzdG9yeSBvZiByZWRpcmVjdGVkIHVybFxuICAgIC8vIGNvbnN0IGxvY2F0aW9uUGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG4gICAgLy8gY29uc3QgaGlzdG9yeUNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaGlzdG9yeS11cmxzJyk7XG4gICAgLy8gY29uc3QgaGlzdG9yeUxpc3RFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNoaXN0b3J5LXVybHMgLmhpc3RvcnktbGlzdCcpO1xuICAgIC8vIGNvbnN0IGNsZWFyQnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2hpc3RvcnktdXJscyAuY2xlYXItbG9jYWwtYmxvY2snKTtcbiAgICAvLyBjb25zdCBoaXN0b3J5VXJscyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoaXN0b3J5VXJscycpO1xuICAgIC8vXG4gICAgLy8gZnVuY3Rpb24gYWRkRW1wdHkoKSB7XG4gICAgLy8gICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgLy8gICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgnbm8taGlzdG9yeScpO1xuICAgIC8vICAgICBzcGFuLmlubmVySFRNTCA9ICfQmNGB0YLQvtGA0LjRjyDQv9GD0YHRgtCwJztcbiAgICAvLyAgICAgaGlzdG9yeUxpc3RFbC5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAvLyAgICAgaGlzdG9yeUNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnZW1wdHktbGlzdCcpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGZ1bmN0aW9uIGRlbGV0ZUNoaWxkKCkge1xuICAgIC8vICAgICBsZXQgY2hpbGQgPSBoaXN0b3J5TGlzdEVsLmxhc3RFbGVtZW50Q2hpbGQ7XG4gICAgLy8gICAgIHdoaWxlIChjaGlsZCkge1xuICAgIC8vICAgICAgICAgaGlzdG9yeUxpc3RFbC5yZW1vdmVDaGlsZChjaGlsZCk7XG4gICAgLy8gICAgICAgICBjaGlsZCA9IGhpc3RvcnlMaXN0RWwubGFzdEVsZW1lbnRDaGlsZDtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGZ1bmN0aW9uIHRleHRUaW1lRm9ybWF0dGVyKHRpbWUsIHR5cGUpIHtcbiAgICAvLyAgICAgbGV0IHRleHQgPSAnJztcbiAgICAvLyAgICAgbGV0IGxhc3ROdW0gPSB0aW1lO1xuICAgIC8vICAgICBpZiAodGltZSA+IDEwKSB7XG4gICAgLy8gICAgICAgICBsYXN0TnVtID0gTnVtYmVyKHRpbWUudG9TdHJpbmcoKS5zcGxpdCgnJylbMV0pO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGlmICh0eXBlID09PSAnc2VjJykge1xuICAgIC8vICAgICAgICAgaWYgKGxhc3ROdW0gPT09IDEpIHRleHQgPSAn0YHQtdC60YPQvdC00YMnO1xuICAgIC8vICAgICAgICAgaWYgKGxhc3ROdW0gPiAxICYmIGxhc3ROdW0gPCA1KSB0ZXh0ID0gJ9GB0LXQutGD0L3QtNGLJztcbiAgICAvLyAgICAgICAgIGlmIChsYXN0TnVtID49IDUgfHwgbGFzdE51bSA9PT0gMCkgdGV4dCA9ICfRgdC10LrRg9C90LQnO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGlmICh0eXBlID09PSAnbWluJykge1xuICAgIC8vICAgICAgICAgaWYgKGxhc3ROdW0gPT09IDEpIHRleHQgPSAn0LzQuNC90YPRgtGDJztcbiAgICAvLyAgICAgICAgIGlmIChsYXN0TnVtID4gMSAmJiBsYXN0TnVtIDwgNSkgdGV4dCA9ICfQvNC40L3Rg9GC0YsnO1xuICAgIC8vICAgICAgICAgaWYgKGxhc3ROdW0gPj0gNSB8fCBsYXN0TnVtID09PSAwKSB0ZXh0ID0gJ9C80LjQvdGD0YInO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGlmICh0eXBlID09PSAnaG91cicpIHtcbiAgICAvLyAgICAgICAgIGlmIChsYXN0TnVtID09PSAxKSB0ZXh0ID0gJ9GH0LDRgSc7XG4gICAgLy8gICAgICAgICBpZiAobGFzdE51bSA+IDEgJiYgbGFzdE51bSA8IDUpIHRleHQgPSAn0YfQsNGB0LAnO1xuICAgIC8vICAgICAgICAgaWYgKGxhc3ROdW0gPj0gNSB8fCBsYXN0TnVtID09PSAwKSB0ZXh0ID0gJ9GH0LDRgdC+0LInO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGlmICh0eXBlID09PSAnZGF5Jykge1xuICAgIC8vICAgICAgICAgdGV4dCA9ICcxINC00L3Rjyc7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgcmV0dXJuIHRleHQ7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gbGV0IGhpc3RvcnlVcmxzQXJyYXkgPSBKU09OLnBhcnNlKGhpc3RvcnlVcmxzKTtcbiAgICAvLyBpZiAoaGlzdG9yeVVybHNBcnJheSkge1xuICAgIC8vICAgICBoaXN0b3J5Q29udGVudC5jbGFzc0xpc3QucmVtb3ZlKCdlbXB0eS1saXN0Jyk7XG4gICAgLy8gICAgIGhpc3RvcnlVcmxzQXJyYXkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAvLyAgICAgICAgIGxldCBkaWZmSW5EYXlzID0gTWF0aC5mbG9vcigobmV3IERhdGUoKSAtIG5ldyBEYXRlKGl0ZW0uZGF0ZSkpIC8gMTAwMCk7XG4gICAgLy8gICAgICAgICBsZXQgdGltZVR5cGUgPSAnJztcbiAgICAvLyAgICAgICAgIGlmIChkaWZmSW5EYXlzIDwgNjApIHtcbiAgICAvLyAgICAgICAgICAgICB0aW1lVHlwZSA9ICdzZWMnO1xuICAgIC8vICAgICAgICAgfSBlbHNlIGlmIChkaWZmSW5EYXlzID4gNjAgJiYgZGlmZkluRGF5cyA8IDM2MDApIHtcbiAgICAvLyAgICAgICAgICAgICBkaWZmSW5EYXlzID0gTWF0aC5mbG9vcihkaWZmSW5EYXlzIC8gNjApO1xuICAgIC8vICAgICAgICAgICAgIHRpbWVUeXBlID0gJ21pbic7XG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKGRpZmZJbkRheXMgPiAzNjAwICYmIGRpZmZJbkRheXMgPCA4NjQwMCkge1xuICAgIC8vICAgICAgICAgICAgIGRpZmZJbkRheXMgPSBNYXRoLmZsb29yKGRpZmZJbkRheXMgLyA2MCAvIDYwKTtcbiAgICAvLyAgICAgICAgICAgICB0aW1lVHlwZSA9ICdob3VyJztcbiAgICAvLyAgICAgICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICAgICAgdGltZVR5cGUgPSAnZGF5JztcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIGNvbnN0IHRpbWVUeXBlVGV4dCA9IHRleHRUaW1lRm9ybWF0dGVyKGRpZmZJbkRheXMsIHRpbWVUeXBlKTtcbiAgICAvLyAgICAgICAgIGlmICh0aW1lVHlwZSA9PT0gJ2RheScpIHtcbiAgICAvLyAgICAgICAgICAgICBkaWZmSW5EYXlzID0gJ9CR0L7Qu9C10LUnO1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAvLyAgICAgICAgIGEuaHJlZiA9IGl0ZW0udXJsO1xuICAgIC8vICAgICAgICAgYS5pbm5lckhUTUwgPSBgPHNwYW4+JHtpdGVtLnVybH08L3NwYW4+PHNtYWxsPjxiPiR7aXRlbS5kYXRlU3RyaW5nfTwvYj4gPGI+JHtkaWZmSW5EYXlzfSAke3RpbWVUeXBlVGV4dH0g0L3QsNC30LDQtDwvYj48L3NtYWxsPmA7XG4gICAgLy8gICAgICAgICBoaXN0b3J5TGlzdEVsLnByZXBlbmQoYSk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICAgIGhpc3RvcnlVcmxzQXJyYXkgPSBbXTtcbiAgICAvLyAgICAgYWRkRW1wdHkoKTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBpZiAoaGlzdG9yeVVybHNBcnJheS5sZW5ndGggPiAyMCkge1xuICAgIC8vICAgICBoaXN0b3J5VXJsc0FycmF5LnBvcCgpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGlmIChsb2NhdGlvblBhdGggIT09ICcvJyAmJiBsb2NhdGlvblBhdGggIT09ICcvbG9naW4nICYmIGxvY2F0aW9uUGF0aCAhPT0gJy9yZWdpc3RlcicgJiYgbG9jYXRpb25QYXRoICE9PSAnL2xvZ291dCcpIHtcbiAgICAvLyAgICAgaGlzdG9yeVVybHNBcnJheS5wdXNoKHtcbiAgICAvLyAgICAgICAgIHVybDogbG9jYXRpb25QYXRoLFxuICAgIC8vICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAvLyAgICAgICAgIGRhdGVTdHJpbmc6IG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKVxuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG4gICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2hpc3RvcnlVcmxzJywgSlNPTi5zdHJpbmdpZnkoaGlzdG9yeVVybHNBcnJheSkpO1xuICAgIC8vXG4gICAgLy8gY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgLy8gICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdoaXN0b3J5VXJscycsIG51bGwpO1xuICAgIC8vICAgICBkZWxldGVDaGlsZCgpO1xuICAgIC8vICAgICBhZGRFbXB0eSgpO1xuICAgIC8vIH0pO1xuICAgIC8vIDwvY29kZS1ibG9jaz5cblxuXG4gICAgV2F2ZXMuaW5pdCgpO1xuICAgIFdhdmVzLmF0dGFjaCgnLnNpZGViYXItbGlzdCBsaSBhJyk7XG4gICAgV2F2ZXMuYXR0YWNoKCcuc2lkZWJhci1saXN0IGxpIC50cmVlLXRvZ2dsZScpO1xuICAgIFdhdmVzLmF0dGFjaCgnLm5hdmJhci1wbGF0Zm9ybSAuaXRlbS1uYXYnKTtcbiAgICBXYXZlcy5hdHRhY2goJy5idG4nKTtcbiAgICAkKCdbZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xufSk7XG5cblxuIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJ3aW5kb3ciLCJCcG1uTW9kZWxlciIsIiQiLCJkb2N1bWVudCIsInJlYWR5IiwidG9vbHRpcCIsInNpZGViYXJMaXN0IiwicXVlcnlTZWxlY3RvckFsbCIsInNpZGViYXJDb250ZW50IiwicXVlcnlTZWxlY3RvciIsImxlbmd0aCIsImZvckVhY2giLCJsaSIsImluZGV4IiwibmV4dExpIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiYWRkRXZlbnRMaXN0ZW5lciIsInN0eWxlIiwib3ZlcmZsb3ciLCJ0b3AiLCJjb25jYXQiLCJjbGljayIsImhhc0NsYXNzIiwicGFyZW50IiwiY2hpbGRyZW4iLCJzbGlkZVRvZ2dsZSIsInRvZ2dsZUNsYXNzIiwiYXhpb3MiLCJnZXQiLCJ0aGVuIiwicmVzcCIsImNvbnNvbGUiLCJsb2ciLCJkYXRhIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsIm9uIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJXYXZlcyIsImluaXQiLCJhdHRhY2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/assets/js/app.js\n"); /***/ }), /***/ "./resources/assets/js/bootstrap.js": /*!******************************************!*\ !*** ./resources/assets/js/bootstrap.js ***! \******************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nwindow._ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\ntry {\n __webpack_require__(/*! bootstrap */ \"./node_modules/bootstrap/dist/js/bootstrap.esm.js\");\n} catch (e) {}\n\n/**\n * We'll load the axios HTTP library which allows us to easily issue requests\n * to our Laravel back-end. This library automatically handles sending the\n * CSRF token as a header based on the value of the \"XSRF\" token cookie.\n */\n\nwindow.axios = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\");\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n/**\n * Echo exposes an expressive API for subscribing to channels and listening\n * for events that are broadcast by Laravel. Echo and event broadcasting\n * allows your team to easily build robust real-time web applications.\n */\n\n// import Echo from 'laravel-echo';\n\n// window.Pusher = require('pusher-js');\n\n// window.Echo = new Echo({\n// broadcaster: 'pusher',\n// key: process.env.MIX_PUSHER_APP_KEY,\n// cluster: process.env.MIX_PUSHER_APP_CLUSTER,\n// forceTLS: true\n// });\n\n\nwindow.$ = window.jQuery = (jquery__WEBPACK_IMPORTED_MODULE_0___default());\n__webpack_require__(/*! select2 */ \"./node_modules/select2/dist/js/select2.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2Jvb3RzdHJhcC5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQUEsTUFBTSxDQUFDQyxDQUFDLEdBQUdDLG1CQUFPLENBQUMsK0NBQVEsQ0FBQztBQUU1QixJQUFJO0VBQ0FBLG1CQUFPLENBQUMsb0VBQVcsQ0FBQztBQUN4QixDQUFDLENBQUMsT0FBT0MsQ0FBQyxFQUFFLENBQUM7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsTUFBTSxDQUFDSSxLQUFLLEdBQUdGLG1CQUFPLENBQUMsNENBQU8sQ0FBQztBQUUvQkYsTUFBTSxDQUFDSSxLQUFLLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBRyxnQkFBZ0I7O0FBRTNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV1QjtBQUN2QlAsTUFBTSxDQUFDUSxDQUFDLEdBQUdSLE1BQU0sQ0FBQ1MsTUFBTSxHQUFHRCwrQ0FBQztBQUM1Qk4sbUJBQU8sQ0FBQywwREFBUyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9ib290c3RyYXAuanM/MWYwZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuXyA9IHJlcXVpcmUoJ2xvZGFzaCcpO1xuXG50cnkge1xuICAgIHJlcXVpcmUoJ2Jvb3RzdHJhcCcpO1xufSBjYXRjaCAoZSkge31cblxuLyoqXG4gKiBXZSdsbCBsb2FkIHRoZSBheGlvcyBIVFRQIGxpYnJhcnkgd2hpY2ggYWxsb3dzIHVzIHRvIGVhc2lseSBpc3N1ZSByZXF1ZXN0c1xuICogdG8gb3VyIExhcmF2ZWwgYmFjay1lbmQuIFRoaXMgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgc2VuZGluZyB0aGVcbiAqIENTUkYgdG9rZW4gYXMgYSBoZWFkZXIgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoZSBcIlhTUkZcIiB0b2tlbiBjb29raWUuXG4gKi9cblxud2luZG93LmF4aW9zID0gcmVxdWlyZSgnYXhpb3MnKTtcblxud2luZG93LmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydYLVJlcXVlc3RlZC1XaXRoJ10gPSAnWE1MSHR0cFJlcXVlc3QnO1xuXG4vKipcbiAqIEVjaG8gZXhwb3NlcyBhbiBleHByZXNzaXZlIEFQSSBmb3Igc3Vic2NyaWJpbmcgdG8gY2hhbm5lbHMgYW5kIGxpc3RlbmluZ1xuICogZm9yIGV2ZW50cyB0aGF0IGFyZSBicm9hZGNhc3QgYnkgTGFyYXZlbC4gRWNobyBhbmQgZXZlbnQgYnJvYWRjYXN0aW5nXG4gKiBhbGxvd3MgeW91ciB0ZWFtIHRvIGVhc2lseSBidWlsZCByb2J1c3QgcmVhbC10aW1lIHdlYiBhcHBsaWNhdGlvbnMuXG4gKi9cblxuLy8gaW1wb3J0IEVjaG8gZnJvbSAnbGFyYXZlbC1lY2hvJztcblxuLy8gd2luZG93LlB1c2hlciA9IHJlcXVpcmUoJ3B1c2hlci1qcycpO1xuXG4vLyB3aW5kb3cuRWNobyA9IG5ldyBFY2hvKHtcbi8vICAgICBicm9hZGNhc3RlcjogJ3B1c2hlcicsXG4vLyAgICAga2V5OiBwcm9jZXNzLmVudi5NSVhfUFVTSEVSX0FQUF9LRVksXG4vLyAgICAgY2x1c3RlcjogcHJvY2Vzcy5lbnYuTUlYX1BVU0hFUl9BUFBfQ0xVU1RFUixcbi8vICAgICBmb3JjZVRMUzogdHJ1ZVxuLy8gfSk7XG5cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG53aW5kb3cuJCA9IHdpbmRvdy5qUXVlcnkgPSAkO1xucmVxdWlyZSgnc2VsZWN0MicpO1xuIl0sIm5hbWVzIjpbIndpbmRvdyIsIl8iLCJyZXF1aXJlIiwiZSIsImF4aW9zIiwiZGVmYXVsdHMiLCJoZWFkZXJzIiwiY29tbW9uIiwiJCIsImpRdWVyeSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/assets/js/bootstrap.js\n"); /***/ }), /***/ "./node_modules/bootstrap/dist/js/bootstrap.esm.js": /*!*********************************************************!*\ !*** ./node_modules/bootstrap/dist/js/bootstrap.esm.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Alert: () => (/* binding */ Alert),\n/* harmony export */ Button: () => (/* binding */ Button),\n/* harmony export */ Carousel: () => (/* binding */ Carousel),\n/* harmony export */ Collapse: () => (/* binding */ Collapse),\n/* harmony export */ Dropdown: () => (/* binding */ Dropdown),\n/* harmony export */ Modal: () => (/* binding */ Modal),\n/* harmony export */ Offcanvas: () => (/* binding */ Offcanvas),\n/* harmony export */ Popover: () => (/* binding */ Popover),\n/* harmony export */ ScrollSpy: () => (/* binding */ ScrollSpy),\n/* harmony export */ Tab: () => (/* binding */ Tab),\n/* harmony export */ Toast: () => (/* binding */ Toast),\n/* harmony export */ Tooltip: () => (/* binding */ Tooltip)\n/* harmony export */ });\n/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @popperjs/core */ \"./node_modules/@popperjs/core/lib/index.js\");\n/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @popperjs/core */ \"./node_modules/@popperjs/core/lib/popper.js\");\n/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n const instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend';\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\n }\n return selector;\n};\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n};\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n};\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n};\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n};\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n};\nconst noop = () => {};\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n};\nconst DOMContentLoadedCallbacks = [];\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\nconst isRTL = () => document.documentElement.dir === 'rtl';\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n};\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n}\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n}\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n}\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n};\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\n }\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3';\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\n};\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target);\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n }\n\n // Private\n _destroyElement() {\n this._element.remove();\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close');\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._createPopper();\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\n }\n update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n const popperConfig = this._getPopperConfig();\n this._popper = _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n };\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\n }\n }\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\n }\n event.preventDefault();\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n // Getters\n static get Default() {\n return Default$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n this._element.remove();\n this._isAppended = false;\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n this._element = backdrop;\n }\n return this._element;\n }\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n // Getters\n static get Default() {\n return Default$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n hide() {\n const width = this.getWidth();\n this._disableOverFlow();\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n this._element.style.overflow = 'hidden';\n }\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty);\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n this._resetAdjustments();\n this._scrollBar.reset();\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY;\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n this._element.focus();\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = this._scrollBar.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.add(CLASS_NAME_HIDING);\n this._backdrop.hide();\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\n }\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n this.hide();\n };\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n });\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n// js-docs-end allow-list\n\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n }\n\n // Getters\n static get Default() {\n return Default$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n dispose() {\n this._observer.disconnect();\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body;\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\n }\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n this._process(targetElement(entry));\n };\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\n }\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry);\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return;\n }\n continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both
    and