(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[ /* 0 */ /*!***************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/main.js ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n__webpack_require__(/*! uni-pages */ 6);\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 143));\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 111));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.config.productionTip = false;\n_vue.default.prototype.baseHttp = 'http://';\n// Vue.prototype.baseUrl = '/bfwcs'\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiYmFzZUh0dHAiLCJBcHAiLCJtcFR5cGUiLCJhcHAiLCIkbW91bnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUFtQjtBQUduQjtBQUFxQjtBQUFBO0FBQ3JCQSxZQUFHLENBQUNDLE1BQU0sQ0FBQ0MsYUFBYSxHQUFHLEtBQUs7QUFDaENGLFlBQUcsQ0FBQ0csU0FBUyxDQUFDQyxRQUFRLEdBQUcsU0FBUztBQUNsQztBQUNBQyxZQUFHLENBQUNDLE1BQU0sR0FBRyxLQUFLO0FBQ2xCLElBQU1DLEdBQUcsR0FBRyxJQUFJUCxZQUFHLG1CQUNaSyxZQUFHLEVBQ1I7QUFDRkUsR0FBRyxDQUFDQyxNQUFNLEVBQUUiLCJmaWxlIjoiMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndW5pLXBhZ2VzJztpbXBvcnQgQXBwIGZyb20gJy4vQXBwJ1xyXG5cclxuXHJcbmltcG9ydCBWdWUgZnJvbSAndnVlJ1xyXG5WdWUuY29uZmlnLnByb2R1Y3Rpb25UaXAgPSBmYWxzZVxyXG5WdWUucHJvdG90eXBlLmJhc2VIdHRwID0gJ2h0dHA6Ly8nXHJcbi8vIFZ1ZS5wcm90b3R5cGUuYmFzZVVybCA9ICcvYmZ3Y3MnXHJcbkFwcC5tcFR5cGUgPSAnYXBwJ1xyXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcclxuICAgIC4uLkFwcFxyXG59KVxyXG5hcHAuJG1vdW50KClcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n"); /***/ }), /* 1 */ /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 2 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3); function _defineProperty(obj, key, value) { key = toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 3 */ /*!**************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ 5); function _toPropertyKey(arg) { var key = toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 4 */ /*!*******************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! \*******************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _typeof(obj) { "@babel/helpers - typeof"; return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); } module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 5 */ /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 6 */ /*!******************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages.json ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { if (typeof Promise !== 'undefined' && !Promise.prototype.finally) { Promise.prototype.finally = function (callback) { var promise = this.constructor; return this.then(function (value) { return promise.resolve(callback()).then(function () { return value; }); }, function (reason) { return promise.resolve(callback()).then(function () { throw reason; }); }); }; } if (typeof uni !== 'undefined' && uni && uni.requireGlobal) { var global = uni.requireGlobal(); ArrayBuffer = global.ArrayBuffer; Int8Array = global.Int8Array; Uint8Array = global.Uint8Array; Uint8ClampedArray = global.Uint8ClampedArray; Int16Array = global.Int16Array; Uint16Array = global.Uint16Array; Int32Array = global.Int32Array; Uint32Array = global.Uint32Array; Float32Array = global.Float32Array; Float64Array = global.Float64Array; BigInt64Array = global.BigInt64Array; BigUint64Array = global.BigUint64Array; } if (uni.restoreGlobal) { uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval); } __definePage('pages/home/home', function () { return Vue.extend(__webpack_require__(/*! pages/home/home.vue?mpType=page */ 7).default); }); __definePage('pages/index', function () { return Vue.extend(__webpack_require__(/*! pages/index.vue?mpType=page */ 61).default); }); __definePage('pages/index/index', function () { return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 66).default); }); __definePage('pages/index/monitor', function () { return Vue.extend(__webpack_require__(/*! pages/index/monitor.vue?mpType=page */ 138).default); }); /***/ }), /* 7 */ /*!***************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/home/home.vue?mpType=page ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=44021cb6&mpType=page */ 8);\n/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 57);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/home/home.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQzZLO0FBQzdLLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaG9tZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQwMjFjYjYmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2hvbWUvaG9tZS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7\n"); /***/ }), /* 8 */ /*!*********************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/home/home.vue?vue&type=template&id=44021cb6&mpType=page ***! \*********************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=template&id=44021cb6&mpType=page */ 9); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 9 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/home/home.vue?vue&type=template&id=44021cb6&mpType=page ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 10) .default, yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 26).default, uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 31) .default, uniPopupDialog: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue */ 36) .default, uniPopupMessage: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue */ 52) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } }, [ _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.infoMode, show: _vm.infoViewShow, _i: 1, }, }, [ _c( "view", { staticClass: _vm._$s(2, "sc", "home-view"), attrs: { _i: 2 } }, [ _c( "view", { staticClass: _vm._$s(3, "sc", "head"), attrs: { _i: 3 } }, [ _c("view", { staticClass: _vm._$s(4, "sc", "head-left"), attrs: { _i: 4 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c( "view", { staticClass: _vm._$s(5, "sc", "head-mid"), attrs: { _i: 5 }, }, [_c("text")] ), _c("view", { staticClass: _vm._$s(7, "sc", "head-right"), attrs: { _i: 7 }, }), ] ), _c( "view", { staticClass: _vm._$s(8, "sc", "info-main"), attrs: { _i: 8 }, }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "info-box"), attrs: { _i: 9 }, }, [ _c("y-box", { attrs: { _i: 10 } }, [ _c( "view", { staticClass: _vm._$s(11, "sc", "text-content"), attrs: { _i: 11 }, }, [ _c( "view", { staticClass: _vm._$s(12, "sc", "swiper-head"), attrs: { _i: 12 }, }, [ _c("view", { staticClass: _vm._$s(13, "sc", "item-box1"), attrs: { _i: 13 }, }), _c("view", { staticClass: _vm._$s(14, "sc", "item-box1"), attrs: { _i: 14 }, }), _c("view", { staticClass: _vm._$s(15, "sc", "item-box1"), attrs: { _i: 15 }, }), _c("view", { staticClass: _vm._$s(16, "sc", "item-box1"), attrs: { _i: 16 }, }), _c("view", { staticClass: _vm._$s(17, "sc", "item-box1"), attrs: { _i: 17 }, }), _c("view", { staticClass: _vm._$s(18, "sc", "item-box1"), attrs: { _i: 18 }, }), _c("view", { staticClass: _vm._$s(19, "sc", "item-box1"), attrs: { _i: 19 }, }), _c("view", { staticClass: _vm._$s(20, "sc", "item-box1"), attrs: { _i: 20 }, }), ] ), _c( "view", { staticClass: _vm._$s(21, "sc", "swiper-body"), attrs: { _i: 21 }, }, [ _c( "swiper", { staticClass: _vm._$s( 22, "sc", "swiper-body-main" ), attrs: { _i: 22 }, }, _vm._l( _vm._$s(23, "f", { forItems: _vm.swiperList, }), function (item, i, $20, $30) { return _c( "swiper-item", { key: _vm._$s(23, "f", { forIndex: $20, key: i, }), staticClass: _vm._$s( "23-" + $30, "sc", "swiper-item" ), class: _vm._$s( "23-" + $30, "c", item.inspectSts ), attrs: { _i: "23-" + $30 }, }, [ _c( "view", { staticClass: _vm._$s( "24-" + $30, "sc", "item-box" ), attrs: { _i: "24-" + $30 }, }, [ _vm._v( _vm._$s( "24-" + $30, "t0-0", _vm._s(i + 1) ) ), ] ), _c( "view", { staticClass: _vm._$s( "25-" + $30, "sc", "item-box" ), attrs: { _i: "25-" + $30 }, }, [ _vm._v( _vm._$s( "25-" + $30, "t0-0", _vm._s(item.maktx) ) ), ] ), _c( "view", { staticClass: _vm._$s( "26-" + $30, "sc", "item-box" ), attrs: { _i: "26-" + $30 }, }, [ _vm._v( _vm._$s( "26-" + $30, "t0-0", _vm._s( item.storeReplenishment ) ) ), ] ), _c( "view", { staticClass: _vm._$s( "27-" + $30, "sc", "item-box" ), attrs: { _i: "27-" + $30 }, }, [ _vm._$s( "28-" + $30, "i", item.inspectSts == "inspectWhite" ) ? _c("text", [ _vm._v( _vm._$s( "28-" + $30, "t0-0", _vm._s(item.storeAdd) ) ), ]) : _vm._e(), _vm._$s( "29-" + $30, "i", item.inspectSts == "inspectRed" ) ? _c("text", [ _vm._v( _vm._$s( "29-" + $30, "t0-0", _vm._s(item.storeAdd) ) ), ]) : _vm._e(), ] ), _c( "view", { staticClass: _vm._$s( "30-" + $30, "sc", "item-box" ), attrs: { _i: "30-" + $30 }, }, [ _vm._$s( "31-" + $30, "i", item.beBatch == 2 ) ? _c( "text", { staticClass: _vm._$s( "31-" + $30, "sc", "beBatch1" ), attrs: { _i: "31-" + $30, }, }, [ _vm._v( _vm._$s( "31-" + $30, "t0-0", _vm._s(item.beBatch$) ) ), ] ) : _vm._e(), _vm._$s( "32-" + $30, "i", item.beBatch != 2 ) ? _c( "text", { staticClass: _vm._$s( "32-" + $30, "sc", "beBatch2" ), attrs: { _i: "32-" + $30, }, }, [ _vm._v( _vm._$s( "32-" + $30, "t0-0", _vm._s(item.beBatch$) ) ), ] ) : _vm._e(), ] ), _c( "view", { staticClass: _vm._$s( "33-" + $30, "sc", "item-box" ), attrs: { _i: "33-" + $30 }, }, [ _vm._v( _vm._$s( "33-" + $30, "t0-0", _vm._s(item.appeTime$) ) ), ] ), _c( "view", { staticClass: _vm._$s( "34-" + $30, "sc", "item-box" ), attrs: { _i: "34-" + $30 }, }, [ _vm._v( _vm._$s( "34-" + $30, "t0-0", _vm._s(item.appeTime$) ) ), ] ), _c( "view", { staticClass: _vm._$s( "35-" + $30, "sc", "item-box" ), attrs: { _i: "35-" + $30 }, }, [ _vm._$s( "36-" + $30, "i", item.beBatch == 1 ) ? _c("button", { staticClass: _vm._$s( "36-" + $30, "sc", "start-btn" ), attrs: { _i: "36-" + $30 }, on: { click: function ($event) { return _vm.complete( item.matnr ) }, }, }) : _vm._e(), _vm._$s( "37-" + $30, "i", item.beBatch == 2 ) ? _c("button", { staticClass: _vm._$s( "37-" + $30, "sc", "end-btn" ), attrs: { _i: "37-" + $30 }, on: { click: function ($event) { return _vm.cancel( item.matnr ) }, }, }) : _vm._e(), ] ), ] ) } ), 0 ), ] ), ] ), ]), ], 1 ), ] ), ] ), ] ), _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.errorInfoMode, show: _vm.errorInfoViewShow, _i: 38, }, }, [ _c( "view", { staticClass: _vm._$s(39, "sc", "error-info-view"), attrs: { _i: 39 }, }, [ _c( "view", { staticClass: _vm._$s(40, "sc", "head"), attrs: { _i: 40 } }, [ _c("text", [ _vm._v(_vm._$s(41, "t0-0", _vm._s(_vm.infoText.title))), ]), ] ), _c( "view", { staticClass: _vm._$s(42, "sc", "time-tools"), attrs: { _i: 42 }, }, [_vm._v(_vm._$s(42, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(43, "sc", "button-left"), attrs: { _i: 43 }, }), _c("view", { staticClass: _vm._$s(44, "sc", "button-right"), attrs: { _i: 44 }, }), _c( "view", { staticClass: _vm._$s(45, "sc", "info-main"), attrs: { _i: 45 }, }, [ _c( "view", { staticClass: _vm._$s(46, "sc", "info-box"), attrs: { _i: 46 }, }, [ _c("y-box", { attrs: { _i: 47 } }, [ _c( "view", { staticClass: _vm._$s(48, "sc", "info-box-text"), attrs: { _i: 48 }, }, [ _c( "view", { staticClass: _vm._$s( 49, "sc", "flex-col info-box-text-item" ), attrs: { _i: 49 }, }, [ _vm._v( _vm._$s( 49, "t0-0", _vm._s(_vm.infoText.error) ) ), ] ), ] ), ]), ], 1 ), ] ), ] ), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(50, "v-show", _vm.ejectShow), expression: "_$s(50,'v-show',ejectShow)", }, ], staticClass: _vm._$s(50, "sc", "eject-mask"), attrs: { _i: 50 }, }, [ _c( "view", { staticClass: _vm._$s(51, "sc", "eject"), attrs: { _i: 51 } }, [ _c("view", { staticClass: _vm._$s(52, "sc", "eject-title"), attrs: { _i: 52 }, }), _c( "view", { staticClass: _vm._$s(53, "sc", "eject-input"), attrs: { _i: 53 }, }, [ _c( "view", { staticClass: _vm._$s(54, "sc", "item"), attrs: { _i: 54 }, }, [ _c("view", { staticClass: _vm._$s(55, "sc", "desc"), attrs: { _i: 55 }, }), _c( "view", { staticClass: _vm._$s(56, "sc", "input"), attrs: { _i: 56 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseIP, expression: "baseIP", }, ], attrs: { _i: 57 }, domProps: { value: _vm._$s(57, "v-model", _vm.baseIP), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseIP = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(58, "sc", "item"), attrs: { _i: 58 }, }, [ _c("view", { staticClass: _vm._$s(59, "sc", "desc"), attrs: { _i: 59 }, }), _c( "view", { staticClass: _vm._$s(60, "sc", "input"), attrs: { _i: 60 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.basePort, expression: "basePort", }, ], attrs: { _i: 61 }, domProps: { value: _vm._$s(61, "v-model", _vm.basePort), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.basePort = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(62, "sc", "item"), attrs: { _i: 62 }, }, [ _c("view", { staticClass: _vm._$s(63, "sc", "desc"), attrs: { _i: 63 }, }), _c( "view", { staticClass: _vm._$s(64, "sc", "input"), attrs: { _i: 64 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseLedId, expression: "baseLedId", }, ], attrs: { _i: 65 }, domProps: { value: _vm._$s(65, "v-model", _vm.baseLedId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseLedId = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(66, "sc", "item"), attrs: { _i: 66 }, }, [ _c("view", { staticClass: _vm._$s(67, "sc", "desc"), attrs: { _i: 67 }, }), _c( "view", { staticClass: _vm._$s(68, "sc", "input"), attrs: { _i: 68 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseCrnId, expression: "baseCrnId", }, ], attrs: { _i: 69 }, domProps: { value: _vm._$s(69, "v-model", _vm.baseCrnId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseCrnId = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(70, "sc", "item"), attrs: { _i: 70 }, }, [ _c("view", { staticClass: _vm._$s(71, "sc", "desc"), attrs: { _i: 71 }, }), _c( "view", { staticClass: _vm._$s(72, "sc", "input"), attrs: { _i: 72 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseUrl, expression: "baseUrl", }, ], attrs: { _i: 73 }, domProps: { value: _vm._$s(73, "v-model", _vm.baseUrl), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseUrl = $event.target.value }, }, }), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(74, "sc", "eject-button"), attrs: { _i: 74 }, }, [ _c("view", { staticClass: _vm._$s(75, "sc", "button-item"), attrs: { _i: 75 }, on: { click: _vm.ejectClose }, }), _c("view", { staticClass: _vm._$s(76, "sc", "button-item"), attrs: { _i: 76 }, on: { click: _vm.ejectConfirm }, }), ] ), ] ), ] ), _c( "view", [ _c( "uni-popup", { ref: "inputDialog", attrs: { type: "dialog", _i: 78 } }, [ _c("uni-popup-dialog", { attrs: { type: _vm.msgType, title: _vm.dialogTitle, content: _vm.dialogContent, _i: 79, }, on: { confirm: _vm.dialogConfirm, close: _vm.dialogClose }, }), ], 1 ), ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "message", attrs: { type: "message", _i: 81 } }, [ _c("uni-popup-message", { attrs: { type: _vm.messageType, message: _vm.messageText, duration: 3000, _i: 82, }, }), ], 1 ), ], 1 ), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 10 */ /*!*******************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue ***! \*******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=template&id=6369f8c4& */ 11);\n/* harmony import */ var _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=script&lang=js& */ 13);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-transition/components/uni-transition/uni-transition.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02MzY5ZjhjNCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy91bmktdHJhbnNpdGlvbi9jb21wb25lbnRzL3VuaS10cmFuc2l0aW9uL3VuaS10cmFuc2l0aW9uLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///10\n"); /***/ }), /* 11 */ /*!**************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***! \**************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=template&id=6369f8c4& */ 12); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 12 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _vm._$s(0, "i", _vm.isShow) ? _c( "view", { ref: "ani", class: _vm._$s(0, "c", _vm.customClass), style: _vm._$s(0, "s", _vm.transformStyles), attrs: { animation: _vm._$s(0, "a-animation", _vm.animationData), _i: 0, }, on: { click: _vm.onClick }, }, [_vm._t("default", null, { _i: 1 })], 2 ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 13 */ /*!********************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=script&lang=js& */ 14);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTBtQixDQUFnQixvbEJBQUcsRUFBQyIsImZpbGUiOiIxMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktdHJhbnNpdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktdHJhbnNpdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///13\n"); /***/ }), /* 14 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 16));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _createAnimation = __webpack_require__(/*! ./createAnimation */ 22);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n/**\r\n * Transition 过渡动画\r\n * @description 简单过渡动画组件\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=985\r\n * @property {Boolean} show = [false|true] 控制组件显示或隐藏\r\n * @property {Array|String} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] 过渡动画类型\r\n * @value fade 渐隐渐出过渡\r\n * @value slide-top 由上至下过渡\r\n * @value slide-right 由右至左过渡\r\n * @value slide-bottom 由下至上过渡\r\n * @value slide-left 由左至右过渡\r\n * @value zoom-in 由小到大过渡\r\n * @value zoom-out 由大到小过渡\r\n * @property {Number} duration 过渡动画持续时间\r\n * @property {Object} styles 组件样式,同 css 样式,注意带’-‘连接符的属性需要使用小驼峰写法如:`backgroundColor:red`\r\n */\nvar _default2 = {\n name: 'uniTransition',\n emits: ['click', 'change'],\n props: {\n show: {\n type: Boolean,\n default: false\n },\n modeClass: {\n type: [Array, String],\n default: function _default() {\n return 'fade';\n }\n },\n duration: {\n type: Number,\n default: 300\n },\n styles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n customClass: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n isShow: false,\n transform: '',\n opacity: 1,\n animationData: {},\n durationTime: 300,\n config: {}\n };\n },\n watch: {\n show: {\n handler: function handler(newVal) {\n if (newVal) {\n this.open();\n } else {\n // 避免上来就执行 close,导致动画错乱\n if (this.isShow) {\n this.close();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n // 生成样式数据\n stylesObject: function stylesObject() {\n var styles = _objectSpread(_objectSpread({}, this.styles), {}, {\n 'transition-duration': this.duration / 1000 + 's'\n });\n var transform = '';\n for (var i in styles) {\n var line = this.toLine(i);\n transform += line + ':' + styles[i] + ';';\n }\n return transform;\n },\n // 初始化动画条件\n transformStyles: function transformStyles() {\n return 'transform:' + this.transform + ';' + 'opacity:' + this.opacity + ';' + this.stylesObject;\n }\n },\n created: function created() {\n // 动画默认配置\n this.config = {\n duration: this.duration,\n timingFunction: 'ease',\n transformOrigin: '50% 50%',\n delay: 0\n };\n this.durationTime = this.duration;\n },\n methods: {\n /**\r\n * ref 触发 初始化动画\r\n */\n init: function init() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (obj.duration) {\n this.durationTime = obj.duration;\n }\n this.animation = (0, _createAnimation.createAnimation)(Object.assign(this.config, obj), this);\n },\n /**\r\n * 点击组件触发回调\r\n */\n onClick: function onClick() {\n this.$emit('click', {\n detail: this.isShow\n });\n },\n /**\r\n * ref 触发 动画分组\r\n * @param {Object} obj\r\n */\n step: function step(obj) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.animation) return;\n for (var i in obj) {\n try {\n if ((0, _typeof2.default)(obj[i]) === 'object') {\n var _this$animation;\n (_this$animation = this.animation)[i].apply(_this$animation, (0, _toConsumableArray2.default)(obj[i]));\n } else {\n this.animation[i](obj[i]);\n }\n } catch (e) {\n __f__(\"error\", \"\\u65B9\\u6CD5 \".concat(i, \" \\u4E0D\\u5B58\\u5728\"), \" at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:139\");\n }\n }\n this.animation.step(config);\n return this;\n },\n /**\r\n * ref 触发 执行动画\r\n */\n run: function run(fn) {\n if (!this.animation) return;\n this.animation.run(fn);\n },\n // 开始过度动画\n open: function open() {\n var _this = this;\n clearTimeout(this.timer);\n this.transform = '';\n this.isShow = true;\n var _this$styleInit = this.styleInit(false),\n opacity = _this$styleInit.opacity,\n transform = _this$styleInit.transform;\n if (typeof opacity !== 'undefined') {\n this.opacity = opacity;\n }\n this.transform = transform;\n // 确保动态样式已经生效后,执行动画,如果不加 nextTick ,会导致 wx 动画执行异常\n this.$nextTick(function () {\n // TODO 定时器保证动画完全执行,目前有些问题,后面会取消定时器\n _this.timer = setTimeout(function () {\n _this.animation = (0, _createAnimation.createAnimation)(_this.config, _this);\n _this.tranfromInit(false).step();\n _this.animation.run();\n _this.$emit('change', {\n detail: _this.isShow\n });\n }, 20);\n });\n },\n // 关闭过度动画\n close: function close(type) {\n var _this2 = this;\n if (!this.animation) return;\n this.tranfromInit(true).step().run(function () {\n _this2.isShow = false;\n _this2.animationData = null;\n _this2.animation = null;\n var _this2$styleInit = _this2.styleInit(false),\n opacity = _this2$styleInit.opacity,\n transform = _this2$styleInit.transform;\n _this2.opacity = opacity || 1;\n _this2.transform = transform;\n _this2.$emit('change', {\n detail: _this2.isShow\n });\n });\n },\n // 处理动画开始前的默认样式\n styleInit: function styleInit(type) {\n var _this3 = this;\n var styles = {\n transform: ''\n };\n var buildStyle = function buildStyle(type, mode) {\n if (mode === 'fade') {\n styles.opacity = _this3.animationType(type)[mode];\n } else {\n styles.transform += _this3.animationType(type)[mode] + ' ';\n }\n };\n if (typeof this.modeClass === 'string') {\n buildStyle(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildStyle(type, mode);\n });\n }\n return styles;\n },\n // 处理内置组合动画\n tranfromInit: function tranfromInit(type) {\n var _this4 = this;\n var buildTranfrom = function buildTranfrom(type, mode) {\n var aniNum = null;\n if (mode === 'fade') {\n aniNum = type ? 0 : 1;\n } else {\n aniNum = type ? '-100%' : '0';\n if (mode === 'zoom-in') {\n aniNum = type ? 0.8 : 1;\n }\n if (mode === 'zoom-out') {\n aniNum = type ? 1.2 : 1;\n }\n if (mode === 'slide-right') {\n aniNum = type ? '100%' : '0';\n }\n if (mode === 'slide-bottom') {\n aniNum = type ? '100%' : '0';\n }\n }\n _this4.animation[_this4.animationMode()[mode]](aniNum);\n };\n if (typeof this.modeClass === 'string') {\n buildTranfrom(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildTranfrom(type, mode);\n });\n }\n return this.animation;\n },\n animationType: function animationType(type) {\n return {\n fade: type ? 1 : 0,\n 'slide-top': \"translateY(\".concat(type ? '0' : '-100%', \")\"),\n 'slide-right': \"translateX(\".concat(type ? '0' : '100%', \")\"),\n 'slide-bottom': \"translateY(\".concat(type ? '0' : '100%', \")\"),\n 'slide-left': \"translateX(\".concat(type ? '0' : '-100%', \")\"),\n 'zoom-in': \"scaleX(\".concat(type ? 1 : 0.8, \") scaleY(\").concat(type ? 1 : 0.8, \")\"),\n 'zoom-out': \"scaleX(\".concat(type ? 1 : 1.2, \") scaleY(\").concat(type ? 1 : 1.2, \")\")\n };\n },\n // 内置动画类型与实际动画对应字典\n animationMode: function animationMode() {\n return {\n fade: 'opacity',\n 'slide-top': 'translateY',\n 'slide-right': 'translateX',\n 'slide-bottom': 'translateY',\n 'slide-left': 'translateX',\n 'zoom-in': 'scale',\n 'zoom-out': 'scale'\n };\n },\n // 驼峰转中横线\n toLine: function toLine(name) {\n return name.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJzaG93IiwidHlwZSIsImRlZmF1bHQiLCJtb2RlQ2xhc3MiLCJkdXJhdGlvbiIsInN0eWxlcyIsImN1c3RvbUNsYXNzIiwiZGF0YSIsImlzU2hvdyIsInRyYW5zZm9ybSIsIm9wYWNpdHkiLCJhbmltYXRpb25EYXRhIiwiZHVyYXRpb25UaW1lIiwiY29uZmlnIiwid2F0Y2giLCJoYW5kbGVyIiwiaW1tZWRpYXRlIiwiY29tcHV0ZWQiLCJzdHlsZXNPYmplY3QiLCJ0cmFuc2Zvcm1TdHlsZXMiLCJjcmVhdGVkIiwidGltaW5nRnVuY3Rpb24iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJkZWxheSIsIm1ldGhvZHMiLCJpbml0Iiwib25DbGljayIsImRldGFpbCIsInN0ZXAiLCJydW4iLCJvcGVuIiwiY2xlYXJUaW1lb3V0IiwiY2xvc2UiLCJzdHlsZUluaXQiLCJidWlsZFN0eWxlIiwidHJhbmZyb21Jbml0IiwiYW5pTnVtIiwiYnVpbGRUcmFuZnJvbSIsImFuaW1hdGlvblR5cGUiLCJmYWRlIiwiYW5pbWF0aW9uTW9kZSIsInRvTGluZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUtBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZkEsZ0JBZ0JBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0VBQ0E7RUFDQUs7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQWQ7TUFDQWU7UUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQSw2Q0FDQTtRQUNBO01BQUEsRUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBVDtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FVO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtNQUNBaEI7TUFDQWlCO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFBQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQUE7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBckI7UUFBQUQ7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQWtCO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBSztNQUFBO01BQ0E7TUFDQSx3QkFDQUosT0FDQUM7UUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUFBbkI7VUFBQUQ7UUFDQTtRQUNBO1FBQ0E7VUFDQWtCO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU07TUFBQTtNQUNBO1FBQ0F4QjtNQUNBO01BQ0E7UUFDQTtVQUNBSjtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E2QjtNQUNBO1FBQ0E7VUFDQUE7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBO1FBQ0E7VUFDQUM7UUFDQTtVQUNBQTtVQUNBO1lBQ0FBO1VBQ0E7VUFDQTtZQUNBQTtVQUNBO1VBQ0E7WUFDQUE7VUFDQTtVQUNBO1lBQ0FBO1VBQ0E7UUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBQztNQUNBO1FBQ0E7VUFDQUE7UUFDQTtNQUNBO01BRUE7SUFDQTtJQUNBQztNQUNBO1FBQ0FDO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQUQ7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUU7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDRCIiwiZmlsZSI6IjE0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IHYtaWY9XCJpc1Nob3dcIiByZWY9XCJhbmlcIiA6YW5pbWF0aW9uPVwiYW5pbWF0aW9uRGF0YVwiIDpjbGFzcz1cImN1c3RvbUNsYXNzXCIgOnN0eWxlPVwidHJhbnNmb3JtU3R5bGVzXCIgQGNsaWNrPVwib25DbGlja1wiPjxzbG90Pjwvc2xvdD48L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBjcmVhdGVBbmltYXRpb24gfSBmcm9tICcuL2NyZWF0ZUFuaW1hdGlvbidcclxuXHJcbi8qKlxyXG4gKiBUcmFuc2l0aW9uIOi/h+a4oeWKqOeUu1xyXG4gKiBAZGVzY3JpcHRpb24g566A5Y2V6L+H5rih5Yqo55S757uE5Lu2XHJcbiAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD05ODVcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBzaG93ID0gW2ZhbHNlfHRydWVdIOaOp+WItue7hOS7tuaYvuekuuaIlumakOiXj1xyXG4gKiBAcHJvcGVydHkge0FycmF5fFN0cmluZ30gbW9kZUNsYXNzID0gW2ZhZGV8c2xpZGUtdG9wfHNsaWRlLXJpZ2h0fHNsaWRlLWJvdHRvbXxzbGlkZS1sZWZ0fHpvb20taW58em9vbS1vdXRdIOi/h+a4oeWKqOeUu+exu+Wei1xyXG4gKiAgQHZhbHVlIGZhZGUg5riQ6ZqQ5riQ5Ye66L+H5rihXHJcbiAqICBAdmFsdWUgc2xpZGUtdG9wIOeUseS4iuiHs+S4i+i/h+a4oVxyXG4gKiAgQHZhbHVlIHNsaWRlLXJpZ2h0IOeUseWPs+iHs+W3pui/h+a4oVxyXG4gKiAgQHZhbHVlIHNsaWRlLWJvdHRvbSDnlLHkuIvoh7PkuIrov4fmuKFcclxuICogIEB2YWx1ZSBzbGlkZS1sZWZ0IOeUseW3puiHs+WPs+i/h+a4oVxyXG4gKiAgQHZhbHVlIHpvb20taW4g55Sx5bCP5Yiw5aSn6L+H5rihXHJcbiAqICBAdmFsdWUgem9vbS1vdXQg55Sx5aSn5Yiw5bCP6L+H5rihXHJcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBkdXJhdGlvbiDov4fmuKHliqjnlLvmjIHnu63ml7bpl7RcclxuICogQHByb3BlcnR5IHtPYmplY3R9IHN0eWxlcyDnu4Tku7bmoLflvI/vvIzlkIwgY3NzIOagt+W8j++8jOazqOaEj+W4puKAmS3igJjov57mjqXnrKbnmoTlsZ7mgKfpnIDopoHkvb/nlKjlsI/pqbzls7Dlhpnms5XlpoLvvJpgYmFja2dyb3VuZENvbG9yOnJlZGBcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRuYW1lOiAndW5pVHJhbnNpdGlvbicsXHJcblx0ZW1pdHM6WydjbGljaycsJ2NoYW5nZSddLFxyXG5cdHByb3BzOiB7XHJcblx0XHRzaG93OiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0bW9kZUNsYXNzOiB7XHJcblx0XHRcdHR5cGU6IFtBcnJheSwgU3RyaW5nXSxcclxuXHRcdFx0ZGVmYXVsdCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gJ2ZhZGUnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRkdXJhdGlvbjoge1xyXG5cdFx0XHR0eXBlOiBOdW1iZXIsXHJcblx0XHRcdGRlZmF1bHQ6IDMwMFxyXG5cdFx0fSxcclxuXHRcdHN0eWxlczoge1xyXG5cdFx0XHR0eXBlOiBPYmplY3QsXHJcblx0XHRcdGRlZmF1bHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHt9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjdXN0b21DbGFzczp7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdH1cclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRpc1Nob3c6IGZhbHNlLFxyXG5cdFx0XHR0cmFuc2Zvcm06ICcnLFxyXG5cdFx0XHRvcGFjaXR5OiAxLFxyXG5cdFx0XHRhbmltYXRpb25EYXRhOiB7fSxcclxuXHRcdFx0ZHVyYXRpb25UaW1lOiAzMDAsXHJcblx0XHRcdGNvbmZpZzoge31cclxuXHRcdH1cclxuXHR9LFxyXG5cdHdhdGNoOiB7XHJcblx0XHRzaG93OiB7XHJcblx0XHRcdGhhbmRsZXIobmV3VmFsKSB7XHJcblx0XHRcdFx0aWYgKG5ld1ZhbCkge1xyXG5cdFx0XHRcdFx0dGhpcy5vcGVuKClcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8g6YG/5YWN5LiK5p2l5bCx5omn6KGMIGNsb3NlLOWvvOiHtOWKqOeUu+mUmeS5sVxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuaXNTaG93KSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY2xvc2UoKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9XHJcblx0fSxcclxuXHRjb21wdXRlZDoge1xyXG5cdFx0Ly8g55Sf5oiQ5qC35byP5pWw5o2uXHJcblx0XHRzdHlsZXNPYmplY3QoKSB7XHJcblx0XHRcdGxldCBzdHlsZXMgPSB7XHJcblx0XHRcdFx0Li4udGhpcy5zdHlsZXMsXHJcblx0XHRcdFx0J3RyYW5zaXRpb24tZHVyYXRpb24nOiB0aGlzLmR1cmF0aW9uIC8gMTAwMCArICdzJ1xyXG5cdFx0XHR9XHJcblx0XHRcdGxldCB0cmFuc2Zvcm0gPSAnJ1xyXG5cdFx0XHRmb3IgKGxldCBpIGluIHN0eWxlcykge1xyXG5cdFx0XHRcdGxldCBsaW5lID0gdGhpcy50b0xpbmUoaSlcclxuXHRcdFx0XHR0cmFuc2Zvcm0gKz0gbGluZSArICc6JyArIHN0eWxlc1tpXSArICc7J1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB0cmFuc2Zvcm1cclxuXHRcdH0sXHJcblx0XHQvLyDliJ3lp4vljJbliqjnlLvmnaHku7ZcclxuXHRcdHRyYW5zZm9ybVN0eWxlcygpIHtcclxuXHRcdFx0cmV0dXJuICd0cmFuc2Zvcm06JyArIHRoaXMudHJhbnNmb3JtICsgJzsnICsgJ29wYWNpdHk6JyArIHRoaXMub3BhY2l0eSArICc7JyArIHRoaXMuc3R5bGVzT2JqZWN0XHJcblx0XHR9XHJcblx0fSxcclxuXHRjcmVhdGVkKCkge1xyXG5cdFx0Ly8g5Yqo55S76buY6K6k6YWN572uXHJcblx0XHR0aGlzLmNvbmZpZyA9IHtcclxuXHRcdFx0ZHVyYXRpb246IHRoaXMuZHVyYXRpb24sXHJcblx0XHRcdHRpbWluZ0Z1bmN0aW9uOiAnZWFzZScsXHJcblx0XHRcdHRyYW5zZm9ybU9yaWdpbjogJzUwJSA1MCUnLFxyXG5cdFx0XHRkZWxheTogMFxyXG5cdFx0fVxyXG5cdFx0dGhpcy5kdXJhdGlvblRpbWUgPSB0aGlzLmR1cmF0aW9uXHJcblx0fSxcclxuXHRtZXRob2RzOiB7XHJcblx0XHQvKipcclxuXHRcdCAqICByZWYg6Kem5Y+RIOWIneWni+WMluWKqOeUu1xyXG5cdFx0ICovXHJcblx0XHRpbml0KG9iaiA9IHt9KSB7XHJcblx0XHRcdGlmIChvYmouZHVyYXRpb24pIHtcclxuXHRcdFx0XHR0aGlzLmR1cmF0aW9uVGltZSA9IG9iai5kdXJhdGlvblxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuYW5pbWF0aW9uID0gY3JlYXRlQW5pbWF0aW9uKE9iamVjdC5hc3NpZ24odGhpcy5jb25maWcsIG9iaiksdGhpcylcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOeCueWHu+e7hOS7tuinpuWPkeWbnuiwg1xyXG5cdFx0ICovXHJcblx0XHRvbkNsaWNrKCkge1xyXG5cdFx0XHR0aGlzLiRlbWl0KCdjbGljaycsIHtcclxuXHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiByZWYg6Kem5Y+RIOWKqOeUu+WIhue7hFxyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IG9ialxyXG5cdFx0ICovXHJcblx0XHRzdGVwKG9iaiwgY29uZmlnID0ge30pIHtcclxuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXHJcblx0XHRcdGZvciAobGV0IGkgaW4gb2JqKSB7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGlmKHR5cGVvZiBvYmpbaV0gPT09ICdvYmplY3QnKXtcclxuXHRcdFx0XHRcdFx0dGhpcy5hbmltYXRpb25baV0oLi4ub2JqW2ldKVxyXG5cdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdHRoaXMuYW5pbWF0aW9uW2ldKG9ialtpXSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGDmlrnms5UgJHtpfSDkuI3lrZjlnKhgKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHRcdFx0cmV0dXJuIHRoaXNcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqICByZWYg6Kem5Y+RIOaJp+ihjOWKqOeUu1xyXG5cdFx0ICovXHJcblx0XHRydW4oZm4pIHtcclxuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXHJcblx0XHRcdHRoaXMuYW5pbWF0aW9uLnJ1bihmbilcclxuXHRcdH0sXHJcblx0XHQvLyDlvIDlp4vov4fluqbliqjnlLtcclxuXHRcdG9wZW4oKSB7XHJcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxyXG5cdFx0XHR0aGlzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdHRoaXMuaXNTaG93ID0gdHJ1ZVxyXG5cdFx0XHRsZXQgeyBvcGFjaXR5LCB0cmFuc2Zvcm0gfSA9IHRoaXMuc3R5bGVJbml0KGZhbHNlKVxyXG5cdFx0XHRpZiAodHlwZW9mIG9wYWNpdHkgIT09ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdFx0dGhpcy5vcGFjaXR5ID0gb3BhY2l0eVxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMudHJhbnNmb3JtID0gdHJhbnNmb3JtXHJcblx0XHRcdC8vIOehruS/neWKqOaAgeagt+W8j+W3sue7j+eUn+aViOWQju+8jOaJp+ihjOWKqOeUu++8jOWmguaenOS4jeWKoCBuZXh0VGljayDvvIzkvJrlr7zoh7Qgd3gg5Yqo55S75omn6KGM5byC5bi4XHJcblx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHQvLyBUT0RPIOWumuaXtuWZqOS/neivgeWKqOeUu+WujOWFqOaJp+ihjO+8jOebruWJjeacieS6m+mXrumimO+8jOWQjumdouS8muWPlua2iOWumuaXtuWZqFxyXG5cdFx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuYW5pbWF0aW9uID0gY3JlYXRlQW5pbWF0aW9uKHRoaXMuY29uZmlnLCB0aGlzKVxyXG5cdFx0XHRcdFx0dGhpcy50cmFuZnJvbUluaXQoZmFsc2UpLnN0ZXAoKVxyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24ucnVuKClcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcclxuXHRcdFx0XHRcdFx0ZGV0YWlsOiB0aGlzLmlzU2hvd1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9LCAyMClcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvLyDlhbPpl63ov4fluqbliqjnlLtcclxuXHRcdGNsb3NlKHR5cGUpIHtcclxuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXHJcblx0XHRcdHRoaXMudHJhbmZyb21Jbml0KHRydWUpXHJcblx0XHRcdFx0LnN0ZXAoKVxyXG5cdFx0XHRcdC5ydW4oKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1Nob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb25EYXRhID0gbnVsbFxyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24gPSBudWxsXHJcblx0XHRcdFx0XHRsZXQgeyBvcGFjaXR5LCB0cmFuc2Zvcm0gfSA9IHRoaXMuc3R5bGVJbml0KGZhbHNlKVxyXG5cdFx0XHRcdFx0dGhpcy5vcGFjaXR5ID0gb3BhY2l0eSB8fCAxXHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxyXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Ly8g5aSE55CG5Yqo55S75byA5aeL5YmN55qE6buY6K6k5qC35byPXHJcblx0XHRzdHlsZUluaXQodHlwZSkge1xyXG5cdFx0XHRsZXQgc3R5bGVzID0ge1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogJydcclxuXHRcdFx0fVxyXG5cdFx0XHRsZXQgYnVpbGRTdHlsZSA9ICh0eXBlLCBtb2RlKSA9PiB7XHJcblx0XHRcdFx0aWYgKG1vZGUgPT09ICdmYWRlJykge1xyXG5cdFx0XHRcdFx0c3R5bGVzLm9wYWNpdHkgPSB0aGlzLmFuaW1hdGlvblR5cGUodHlwZSlbbW9kZV1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0c3R5bGVzLnRyYW5zZm9ybSArPSB0aGlzLmFuaW1hdGlvblR5cGUodHlwZSlbbW9kZV0gKyAnICdcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRidWlsZFN0eWxlKHR5cGUsIHRoaXMubW9kZUNsYXNzKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XHJcblx0XHRcdFx0XHRidWlsZFN0eWxlKHR5cGUsIG1vZGUpXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gc3R5bGVzXHJcblx0XHR9LFxyXG5cdFx0Ly8g5aSE55CG5YaF572u57uE5ZCI5Yqo55S7XHJcblx0XHR0cmFuZnJvbUluaXQodHlwZSkge1xyXG5cdFx0XHRsZXQgYnVpbGRUcmFuZnJvbSA9ICh0eXBlLCBtb2RlKSA9PiB7XHJcblx0XHRcdFx0bGV0IGFuaU51bSA9IG51bGxcclxuXHRcdFx0XHRpZiAobW9kZSA9PT0gJ2ZhZGUnKSB7XHJcblx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gMCA6IDFcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/ICctMTAwJScgOiAnMCdcclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnem9vbS1pbicpIHtcclxuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/IDAuOCA6IDFcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnem9vbS1vdXQnKSB7XHJcblx0XHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAxLjIgOiAxXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAobW9kZSA9PT0gJ3NsaWRlLXJpZ2h0Jykge1xyXG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJzEwMCUnIDogJzAnXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAobW9kZSA9PT0gJ3NsaWRlLWJvdHRvbScpIHtcclxuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/ICcxMDAlJyA6ICcwJ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmFuaW1hdGlvblt0aGlzLmFuaW1hdGlvbk1vZGUoKVttb2RlXV0oYW5pTnVtKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0eXBlb2YgdGhpcy5tb2RlQ2xhc3MgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCB0aGlzLm1vZGVDbGFzcylcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLm1vZGVDbGFzcy5mb3JFYWNoKG1vZGUgPT4ge1xyXG5cdFx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCBtb2RlKVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiB0aGlzLmFuaW1hdGlvblxyXG5cdFx0fSxcclxuXHRcdGFuaW1hdGlvblR5cGUodHlwZSkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGZhZGU6IHR5cGUgPyAxIDogMCxcclxuXHRcdFx0XHQnc2xpZGUtdG9wJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJy0xMDAlJ30pYCxcclxuXHRcdFx0XHQnc2xpZGUtcmlnaHQnOiBgdHJhbnNsYXRlWCgke3R5cGUgPyAnMCcgOiAnMTAwJSd9KWAsXHJcblx0XHRcdFx0J3NsaWRlLWJvdHRvbSc6IGB0cmFuc2xhdGVZKCR7dHlwZSA/ICcwJyA6ICcxMDAlJ30pYCxcclxuXHRcdFx0XHQnc2xpZGUtbGVmdCc6IGB0cmFuc2xhdGVYKCR7dHlwZSA/ICcwJyA6ICctMTAwJSd9KWAsXHJcblx0XHRcdFx0J3pvb20taW4nOiBgc2NhbGVYKCR7dHlwZSA/IDEgOiAwLjh9KSBzY2FsZVkoJHt0eXBlID8gMSA6IDAuOH0pYCxcclxuXHRcdFx0XHQnem9vbS1vdXQnOiBgc2NhbGVYKCR7dHlwZSA/IDEgOiAxLjJ9KSBzY2FsZVkoJHt0eXBlID8gMSA6IDEuMn0pYFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Ly8g5YaF572u5Yqo55S757G75Z6L5LiO5a6e6ZmF5Yqo55S75a+55bqU5a2X5YW4XHJcblx0XHRhbmltYXRpb25Nb2RlKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGZhZGU6ICdvcGFjaXR5JyxcclxuXHRcdFx0XHQnc2xpZGUtdG9wJzogJ3RyYW5zbGF0ZVknLFxyXG5cdFx0XHRcdCdzbGlkZS1yaWdodCc6ICd0cmFuc2xhdGVYJyxcclxuXHRcdFx0XHQnc2xpZGUtYm90dG9tJzogJ3RyYW5zbGF0ZVknLFxyXG5cdFx0XHRcdCdzbGlkZS1sZWZ0JzogJ3RyYW5zbGF0ZVgnLFxyXG5cdFx0XHRcdCd6b29tLWluJzogJ3NjYWxlJyxcclxuXHRcdFx0XHQnem9vbS1vdXQnOiAnc2NhbGUnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHQvLyDpqbzls7DovazkuK3mqKrnur9cclxuXHRcdHRvTGluZShuYW1lKSB7XHJcblx0XHRcdHJldHVybiBuYW1lLnJlcGxhY2UoLyhbQS1aXSkvZywgJy0kMScpLnRvTG93ZXJDYXNlKClcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+PC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///14\n"); /***/ }), /* 15 */ /*!*********************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***! \*********************************************************************/ /*! exports provided: log, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; }); function typof (v) { var s = Object.prototype.toString.call(v) return s.substring(8, s.length - 1) } function isDebugMode () { /* eslint-disable no-undef */ return typeof __channelId__ === 'string' && __channelId__ } function jsonStringifyReplacer (k, p) { switch (typof(p)) { case 'Function': return 'function() { [native code] }' default : return p } } function log (type) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key] } console[type].apply(console, args) } function formatLog () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key] } var type = args.shift() if (isDebugMode()) { args.push(args.pop().replace('at ', 'uni-app:///')) return console[type].apply(console, args) } var msgs = args.map(function (v) { var type = Object.prototype.toString.call(v).toLowerCase() if (type === '[object object]' || type === '[object array]') { try { v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---' } catch (e) { v = type } } else { if (v === null) { v = '---NULL---' } else if (v === undefined) { v = '---UNDEFINED---' } else { var vType = typof(v).toUpperCase() if (vType === 'NUMBER' || vType === 'BOOLEAN') { v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---' } else { v = String(v) } } } return v }) var msg = '' if (msgs.length > 1) { var lastMsg = msgs.pop() msg = msgs.join('---COMMA---') if (lastMsg.indexOf(' at ') === 0) { msg += lastMsg } else { msg += '---COMMA---' + lastMsg } } else { msg = msgs[0] } console[type](msg) } /***/ }), /* 16 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ 17); var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ 19); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 20); var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ 21); function _toConsumableArray(arr) { return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); } module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 17 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 18); function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return arrayLikeToArray(arr); } module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 18 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 19 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 20 */ /*!***************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 18); function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); } module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 21 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 22 */ /*!*******************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***! \*******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAnimation = createAnimation;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// const defaultOption = {\n// \tduration: 300,\n// \ttimingFunction: 'linear',\n// \tdelay: 0,\n// \ttransformOrigin: '50% 50% 0'\n// }\nvar MPAnimation = /*#__PURE__*/function () {\n function MPAnimation(options, _this) {\n (0, _classCallCheck2.default)(this, MPAnimation);\n this.options = options;\n this.animation = uni.createAnimation(options);\n this.currentStepAnimates = {};\n this.next = 0;\n this.$ = _this;\n }\n (0, _createClass2.default)(MPAnimation, [{\n key: \"_nvuePushAnimates\",\n value: function _nvuePushAnimates(type, args) {\n var aniObj = this.currentStepAnimates[this.next];\n var styles = {};\n if (!aniObj) {\n styles = {\n styles: {},\n config: {}\n };\n } else {\n styles = aniObj;\n }\n if (animateTypes1.includes(type)) {\n if (!styles.styles.transform) {\n styles.styles.transform = '';\n }\n var unit = '';\n if (type === 'rotate') {\n unit = 'deg';\n }\n styles.styles.transform += \"\".concat(type, \"(\").concat(args + unit, \") \");\n } else {\n styles.styles[type] = \"\".concat(args);\n }\n this.currentStepAnimates[this.next] = styles;\n }\n }, {\n key: \"_animateRun\",\n value: function _animateRun() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ref = this.$.$refs['ani'].ref;\n if (!ref) return;\n return new Promise(function (resolve, reject) {\n nvueAnimation.transition(ref, _objectSpread({\n styles: styles\n }, config), function (res) {\n resolve();\n });\n });\n }\n }, {\n key: \"_nvueNextAnimate\",\n value: function _nvueNextAnimate(animates) {\n var _this2 = this;\n var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var fn = arguments.length > 2 ? arguments[2] : undefined;\n var obj = animates[step];\n if (obj) {\n var styles = obj.styles,\n config = obj.config;\n this._animateRun(styles, config).then(function () {\n step += 1;\n _this2._nvueNextAnimate(animates, step, fn);\n });\n } else {\n this.currentStepAnimates = {};\n typeof fn === 'function' && fn();\n this.isEnd = true;\n }\n }\n }, {\n key: \"step\",\n value: function step() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.animation.step(config);\n return this;\n }\n }, {\n key: \"run\",\n value: function run(fn) {\n this.$.animationData = this.animation.export();\n this.$.timer = setTimeout(function () {\n typeof fn === 'function' && fn();\n }, this.$.durationTime);\n }\n }]);\n return MPAnimation;\n}();\nvar animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\nvar animateTypes2 = ['opacity', 'backgroundColor'];\nvar animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];\nanimateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {\n MPAnimation.prototype[type] = function () {\n var _this$animation;\n (_this$animation = this.animation)[type].apply(_this$animation, arguments);\n return this;\n };\n});\nfunction createAnimation(option, _this) {\n if (!_this) return;\n clearTimeout(_this.timer);\n return new MPAnimation(option, _this);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi9jcmVhdGVBbmltYXRpb24uanMiXSwibmFtZXMiOlsiTVBBbmltYXRpb24iLCJvcHRpb25zIiwiX3RoaXMiLCJhbmltYXRpb24iLCJ1bmkiLCJjcmVhdGVBbmltYXRpb24iLCJjdXJyZW50U3RlcEFuaW1hdGVzIiwibmV4dCIsIiQiLCJ0eXBlIiwiYXJncyIsImFuaU9iaiIsInN0eWxlcyIsImNvbmZpZyIsImFuaW1hdGVUeXBlczEiLCJpbmNsdWRlcyIsInRyYW5zZm9ybSIsInVuaXQiLCJyZWYiLCIkcmVmcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibnZ1ZUFuaW1hdGlvbiIsInRyYW5zaXRpb24iLCJyZXMiLCJhbmltYXRlcyIsInN0ZXAiLCJmbiIsIm9iaiIsIl9hbmltYXRlUnVuIiwidGhlbiIsIl9udnVlTmV4dEFuaW1hdGUiLCJpc0VuZCIsImFuaW1hdGlvbkRhdGEiLCJleHBvcnQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJkdXJhdGlvblRpbWUiLCJhbmltYXRlVHlwZXMyIiwiYW5pbWF0ZVR5cGVzMyIsImNvbmNhdCIsImZvckVhY2giLCJwcm90b3R5cGUiLCJvcHRpb24iLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBSU1BLFdBQVc7RUFDaEIscUJBQVlDLE9BQU8sRUFBRUMsS0FBSyxFQUFFO0lBQUE7SUFDM0IsSUFBSSxDQUFDRCxPQUFPLEdBQUdBLE9BQU87SUFDdEIsSUFBSSxDQUFDRSxTQUFTLEdBQUdDLEdBQUcsQ0FBQ0MsZUFBZSxDQUFDSixPQUFPLENBQUM7SUFDN0MsSUFBSSxDQUFDSyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUcsQ0FBQztJQUNiLElBQUksQ0FBQ0Ms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Q0FBQ3VDLE1BQU0sRUFBRTFDLEtBQUssRUFBRTtFQUM5QyxJQUFHLENBQUNBLEtBQUssRUFBRTtFQUNYMkMsWUFBWSxDQUFDM0MsS0FBSyxDQUFDa0MsS0FBSyxDQUFDO0VBQ3pCLE9BQU8sSUFBSXBDLFdBQVcsQ0FBQzRDLE1BQU0sRUFBRTFDLEtBQUssQ0FBQztBQUN0QyIsImZpbGUiOiIyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IGRlZmF1bHRPcHRpb24gPSB7XHJcbi8vIFx0ZHVyYXRpb246IDMwMCxcclxuLy8gXHR0aW1pbmdGdW5jdGlvbjogJ2xpbmVhcicsXHJcbi8vIFx0ZGVsYXk6IDAsXHJcbi8vIFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJSAwJ1xyXG4vLyB9XHJcblxyXG5cclxuXHJcbmNsYXNzIE1QQW5pbWF0aW9uIHtcclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zLCBfdGhpcykge1xyXG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9uc1xyXG5cdFx0dGhpcy5hbmltYXRpb24gPSB1bmkuY3JlYXRlQW5pbWF0aW9uKG9wdGlvbnMpXHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXMgPSB7fVxyXG5cdFx0dGhpcy5uZXh0ID0gMFxyXG5cdFx0dGhpcy4kID0gX3RoaXNcclxuXHJcblx0fVxyXG5cclxuXHRfbnZ1ZVB1c2hBbmltYXRlcyh0eXBlLCBhcmdzKSB7XHJcblx0XHRsZXQgYW5pT2JqID0gdGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzW3RoaXMubmV4dF1cclxuXHRcdGxldCBzdHlsZXMgPSB7fVxyXG5cdFx0aWYgKCFhbmlPYmopIHtcclxuXHRcdFx0c3R5bGVzID0ge1xyXG5cdFx0XHRcdHN0eWxlczoge30sXHJcblx0XHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMgPSBhbmlPYmpcclxuXHRcdH1cclxuXHRcdGlmIChhbmltYXRlVHlwZXMxLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdGlmICghc3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0pIHtcclxuXHRcdFx0XHRzdHlsZXMuc3R5bGVzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHVuaXQgPSAnJ1xyXG5cdFx0XHRpZih0eXBlID09PSAncm90YXRlJyl7XHJcblx0XHRcdFx0dW5pdCA9ICdkZWcnXHJcblx0XHRcdH1cclxuXHRcdFx0c3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0gKz0gYCR7dHlwZX0oJHthcmdzK3VuaXR9KSBgXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMuc3R5bGVzW3R5cGVdID0gYCR7YXJnc31gXHJcblx0XHR9XHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXNbdGhpcy5uZXh0XSA9IHN0eWxlc1xyXG5cdH1cclxuXHRfYW5pbWF0ZVJ1bihzdHlsZXMgPSB7fSwgY29uZmlnID0ge30pIHtcclxuXHRcdGxldCByZWYgPSB0aGlzLiQuJHJlZnNbJ2FuaSddLnJlZlxyXG5cdFx0aWYgKCFyZWYpIHJldHVyblxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0bnZ1ZUFuaW1hdGlvbi50cmFuc2l0aW9uKHJlZiwge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHQuLi5jb25maWdcclxuXHRcdFx0fSwgcmVzID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKClcclxuXHRcdFx0fSlcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRfbnZ1ZU5leHRBbmltYXRlKGFuaW1hdGVzLCBzdGVwID0gMCwgZm4pIHtcclxuXHRcdGxldCBvYmogPSBhbmltYXRlc1tzdGVwXVxyXG5cdFx0aWYgKG9iaikge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHRjb25maWdcclxuXHRcdFx0fSA9IG9ialxyXG5cdFx0XHR0aGlzLl9hbmltYXRlUnVuKHN0eWxlcywgY29uZmlnKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRzdGVwICs9IDFcclxuXHRcdFx0XHR0aGlzLl9udnVlTmV4dEFuaW1hdGUoYW5pbWF0ZXMsIHN0ZXAsIGZuKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzID0ge31cclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdFx0dGhpcy5pc0VuZCA9IHRydWVcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHN0ZXAoY29uZmlnID0ge30pIHtcclxuXHJcblx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdHJldHVybiB0aGlzXHJcblx0fVxyXG5cclxuXHRydW4oZm4pIHtcclxuXHJcblx0XHR0aGlzLiQuYW5pbWF0aW9uRGF0YSA9IHRoaXMuYW5pbWF0aW9uLmV4cG9ydCgpXHJcblx0XHR0aGlzLiQudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdH0sIHRoaXMuJC5kdXJhdGlvblRpbWUpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHR9XHJcbn1cclxuXHJcblxyXG5jb25zdCBhbmltYXRlVHlwZXMxID0gWydtYXRyaXgnLCAnbWF0cml4M2QnLCAncm90YXRlJywgJ3JvdGF0ZTNkJywgJ3JvdGF0ZVgnLCAncm90YXRlWScsICdyb3RhdGVaJywgJ3NjYWxlJywgJ3NjYWxlM2QnLFxyXG5cdCdzY2FsZVgnLCAnc2NhbGVZJywgJ3NjYWxlWicsICdza2V3JywgJ3NrZXdYJywgJ3NrZXdZJywgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGUzZCcsICd0cmFuc2xhdGVYJywgJ3RyYW5zbGF0ZVknLFxyXG5cdCd0cmFuc2xhdGVaJ1xyXG5dXHJcbmNvbnN0IGFuaW1hdGVUeXBlczIgPSBbJ29wYWNpdHknLCAnYmFja2dyb3VuZENvbG9yJ11cclxuY29uc3QgYW5pbWF0ZVR5cGVzMyA9IFsnd2lkdGgnLCAnaGVpZ2h0JywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddXHJcbmFuaW1hdGVUeXBlczEuY29uY2F0KGFuaW1hdGVUeXBlczIsIGFuaW1hdGVUeXBlczMpLmZvckVhY2godHlwZSA9PiB7XHJcblx0TVBBbmltYXRpb24ucHJvdG90eXBlW3R5cGVdID0gZnVuY3Rpb24oLi4uYXJncykge1xyXG5cclxuXHRcdHRoaXMuYW5pbWF0aW9uW3R5cGVdKC4uLmFyZ3MpXHJcblxyXG5cclxuXHJcblxyXG5cdFx0cmV0dXJuIHRoaXNcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpIHtcclxuXHRpZighX3RoaXMpIHJldHVyblxyXG5cdGNsZWFyVGltZW91dChfdGhpcy50aW1lcilcclxuXHRyZXR1cm4gbmV3IE1QQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///22\n"); /***/ }), /* 23 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 24 */ /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 25 */ /*!**********************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***! \**********************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode, /* vue-cli only */ components, // fixed by xxxxxx auto components renderjs // fixed by xxxxxx renderjs ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // fixed by xxxxxx auto components if (components) { if (!options.components) { options.components = {} } var hasOwn = Object.prototype.hasOwnProperty for (var name in components) { if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) { options.components[name] = components[name] } } } // fixed by xxxxxx renderjs if (renderjs) { if(typeof renderjs.beforeCreate === 'function'){ renderjs.beforeCreate = [renderjs.beforeCreate] } (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() { this[renderjs.__module] = this }); (options.mixins || (options.mixins = [])).push(renderjs) } // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /* 26 */ /*!**********************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/components/y-box/y-box.vue ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./y-box.vue?vue&type=template&id=799f6118& */ 27);\n/* harmony import */ var _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./y-box.vue?vue&type=script&lang=js& */ 29);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"components/y-box/y-box.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0g7QUFDbEg7QUFDeUQ7QUFDTDs7O0FBR3BEO0FBQzZLO0FBQzdLLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLDJFQUFNO0FBQ1IsRUFBRSxnRkFBTTtBQUNSLEVBQUUseUZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsb0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03OTlmNjExOCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4veS1ib3gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJjb21wb25lbnRzL3ktYm94L3ktYm94LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///26\n"); /***/ }), /* 27 */ /*!*****************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/components/y-box/y-box.vue?vue&type=template&id=799f6118& ***! \*****************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./y-box.vue?vue&type=template&id=799f6118& */ 28); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 28 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/components/y-box/y-box.vue?vue&type=template&id=799f6118& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "box"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "box-border box-border1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "box-border box-border2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "box-border box-border3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "box-border box-border4"), attrs: { _i: 4 }, }), _c( "view", { staticClass: _vm._$s(5, "sc", "box-main"), attrs: { _i: 5 } }, [_vm._t("default", null, { _i: 6 })], 2 ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 29 */ /*!***********************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/components/y-box/y-box.vue?vue&type=script&lang=js& ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./y-box.vue?vue&type=script&lang=js& */ 30);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXlrQixDQUFnQiwya0JBQUcsRUFBQyIsImZpbGUiOiIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi95LWJveC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi95LWJveC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///29\n"); /***/ }), /* 30 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/components/y-box/y-box.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n props: {\n title: {\n type: [String, Number],\n default: '标题'\n }\n },\n computed: {\n titleText: function titleText() {\n return this.title;\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy95LWJveC95LWJveC52dWUiXSwibmFtZXMiOlsicHJvcHMiLCJ0aXRsZSIsInR5cGUiLCJkZWZhdWx0IiwiY29tcHV0ZWQiLCJ0aXRsZVRleHQiLCJkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFhQTtFQUNBQTtJQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQSxRQUVBO0VBQ0E7QUFFQTtBQUFBIiwiZmlsZSI6IjMwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiYm94XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjFcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjRcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1tYWluXCI+XHJcblx0XHRcdDxzbG90Lz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHRpdGxlOiB7XHJcblx0XHRcdFx0dHlwZTogW1N0cmluZyxOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICfmoIfpopgnXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0dGl0bGVUZXh0KCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnRpdGxlIFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5ib3gge1xyXG5cdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDAuMnZoKTtcclxuXHRcdGhlaWdodDogY2FsYygxMDAlIC0gMC4ydmgpO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Ym9yZGVyOiAwLjF2aCBzb2xpZCByZ2JhKDIwLCA4MCwgMTM2LCAxKTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcblx0LmJveC1tYWluIHtcclxuXHRcdHdpZHRoOiA5NiU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFjNGM0OyAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXIge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHRcdHdpZHRoOiAxLjV2aDtcclxuXHRcdGhlaWdodDogMS41dmg7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMSB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItdG9wOiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlcjIge1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3JkZXItcmlnaHQ6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItdG9wOiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlcjMge1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdGJvcmRlci1ib3R0b206IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItbGVmdDogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXI0IHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym9yZGVyLXJpZ2h0OiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///30\n"); /***/ }), /* 31 */ /*!****************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=template&id=7c43d41b& */ 32);\n/* harmony import */ var _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=script&lang=js& */ 34);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup/uni-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0M2Q0MWImXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy91bmktcG9wdXAvY29tcG9uZW50cy91bmktcG9wdXAvdW5pLXBvcHVwLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///31\n"); /***/ }), /* 32 */ /*!***********************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***! \***********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=template&id=7c43d41b& */ 33); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 33 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 10) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _vm._$s(0, "i", _vm.showPopup) ? _c( "view", { staticClass: _vm._$s(0, "sc", "uni-popup"), class: _vm._$s(0, "c", [ _vm.popupstyle, _vm.isDesktop ? "fixforpc-z-index" : "", ]), attrs: { _i: 0 }, on: { touchmove: function ($event) { $event.stopPropagation() $event.preventDefault() return _vm.clear($event) }, }, }, [ _c( "view", { attrs: { _i: 1 }, on: { touchstart: _vm.touchstart } }, [ _vm._$s(2, "i", _vm.maskShow) ? _c("uni-transition", { key: "1", attrs: { name: "mask", "mode-class": "fade", styles: _vm.maskClass, duration: _vm.duration, show: _vm.showTrans, _i: 2, }, on: { click: _vm.onTap }, }) : _vm._e(), _c( "uni-transition", { key: "2", attrs: { "mode-class": _vm.ani, name: "content", styles: _vm.transClass, duration: _vm.duration, show: _vm.showTrans, _i: 3, }, on: { click: _vm.onTap }, }, [ _c( "view", { staticClass: _vm._$s(4, "sc", "uni-popup__wrapper"), class: _vm._$s(4, "c", [_vm.popupstyle]), style: _vm._$s(4, "s", { backgroundColor: _vm.bg }), attrs: { _i: 4 }, on: { click: _vm.clear }, }, [_vm._t("default", null, { _i: 5 })], 2 ), ] ), ], 1 ), ] ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 34 */ /*!*****************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***! \*****************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=script&lang=js& */ 35);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXFtQixDQUFnQiwra0JBQUcsRUFBQyIsImZpbGUiOiIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///34\n"); /***/ }), /* 35 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\r\n * PopUp 弹出层\r\n * @description 弹出层组件,为了解决遮罩弹层的问题\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\r\n * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 弹出方式\r\n * \t@value top 顶部弹出\r\n * \t@value center 中间弹出\r\n * \t@value bottom 底部弹出\r\n * \t@value left\t\t左侧弹出\r\n * \t@value right 右侧弹出\r\n * \t@value message 消息提示\r\n * \t@value dialog 对话框\r\n * \t@value share 底部分享示例\r\n * @property {Boolean} animation = [true|false] 是否开启动画\r\n * @property {Boolean} maskClick = [true|false] 蒙版点击是否关闭弹窗(废弃)\r\n * @property {Boolean} isMaskClick = [true|false] 蒙版点击是否关闭弹窗\r\n * @property {String} backgroundColor 主窗口背景色\r\n * @property {String} maskBackgroundColor 蒙版颜色\r\n * @property {Boolean} safeArea\t\t 是否适配底部安全区\r\n * @event {Function} change 打开关闭弹窗触发,e={show: false}\r\n * @event {Function} maskClick 点击遮罩触发\r\n */\nvar _default = {\n name: 'uniPopup',\n components: {},\n emits: ['change', 'maskClick'],\n props: {\n // 开启动画\n animation: {\n type: Boolean,\n default: true\n },\n // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层\n // message: 消息提示 ; dialog : 对话框\n type: {\n type: String,\n default: 'center'\n },\n // maskClick\n isMaskClick: {\n type: Boolean,\n default: null\n },\n // TODO 2 个版本后废弃属性 ,使用 isMaskClick\n maskClick: {\n type: Boolean,\n default: null\n },\n backgroundColor: {\n type: String,\n default: 'none'\n },\n safeArea: {\n type: Boolean,\n default: true\n },\n maskBackgroundColor: {\n type: String,\n default: 'rgba(0, 0, 0, 0.4)'\n }\n },\n watch: {\n /**\r\n * 监听type类型\r\n */\n type: {\n handler: function handler(type) {\n if (!this.config[type]) return;\n this[this.config[type]](true);\n },\n immediate: true\n },\n isDesktop: {\n handler: function handler(newVal) {\n if (!this.config[newVal]) return;\n this[this.config[this.type]](true);\n },\n immediate: true\n },\n /**\r\n * 监听遮罩是否可点击\r\n * @param {Object} val\r\n */\n maskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n isMaskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n // H5 下禁止底部滚动\n showPopup: function showPopup(show) {}\n },\n data: function data() {\n return {\n duration: 300,\n ani: [],\n showPopup: false,\n showTrans: false,\n popupWidth: 0,\n popupHeight: 0,\n config: {\n top: 'top',\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n right: 'right',\n message: 'top',\n dialog: 'center',\n share: 'bottom'\n },\n maskClass: {\n position: 'fixed',\n bottom: 0,\n top: 0,\n left: 0,\n right: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)'\n },\n transClass: {\n position: 'fixed',\n left: 0,\n right: 0\n },\n maskShow: true,\n mkclick: true,\n popupstyle: this.isDesktop ? 'fixforpc-top' : 'top'\n };\n },\n computed: {\n isDesktop: function isDesktop() {\n return this.popupWidth >= 500 && this.popupHeight >= 500;\n },\n bg: function bg() {\n if (this.backgroundColor === '' || this.backgroundColor === 'none') {\n return 'transparent';\n }\n return this.backgroundColor;\n }\n },\n mounted: function mounted() {\n var _this = this;\n var fixSize = function fixSize() {\n var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),\n windowWidth = _uni$getSystemInfoSyn.windowWidth,\n windowHeight = _uni$getSystemInfoSyn.windowHeight,\n windowTop = _uni$getSystemInfoSyn.windowTop,\n safeArea = _uni$getSystemInfoSyn.safeArea,\n screenHeight = _uni$getSystemInfoSyn.screenHeight,\n safeAreaInsets = _uni$getSystemInfoSyn.safeAreaInsets;\n _this.popupWidth = windowWidth;\n _this.popupHeight = windowHeight + windowTop;\n // TODO fix by mehaotian 是否适配底部安全区 ,目前微信ios 、和 app ios 计算有差异,需要框架修复\n if (safeArea) {\n _this.safeAreaInsets = safeAreaInsets.bottom;\n } else {\n _this.safeAreaInsets = 0;\n }\n };\n fixSize();\n },\n created: function created() {\n // this.mkclick = this.isMaskClick || this.maskClick\n if (this.isMaskClick === null && this.maskClick === null) {\n this.mkclick = true;\n } else {\n this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;\n }\n if (this.animation) {\n this.duration = 300;\n } else {\n this.duration = 0;\n }\n // TODO 处理 message 组件生命周期异常的问题\n this.messageChild = null;\n // TODO 解决头条冒泡的问题\n this.clearPropagation = false;\n this.maskClass.backgroundColor = this.maskBackgroundColor;\n },\n methods: {\n /**\r\n * 公用方法,不显示遮罩层\r\n */\n closeMask: function closeMask() {\n this.maskShow = false;\n },\n /**\r\n * 公用方法,遮罩层禁止点击\r\n */\n disableMask: function disableMask() {\n this.mkclick = false;\n },\n // TODO nvue 取消冒泡\n clear: function clear(e) {\n e.stopPropagation();\n this.clearPropagation = true;\n },\n open: function open(direction) {\n var innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];\n if (!(direction && innerType.indexOf(direction) !== -1)) {\n direction = this.type;\n }\n if (!this.config[direction]) {\n __f__(\"error\", '缺少类型:', direction, \" at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:246\");\n return;\n }\n this[this.config[direction]]();\n this.$emit('change', {\n show: true,\n type: direction\n });\n },\n close: function close(type) {\n var _this2 = this;\n this.showTrans = false;\n this.$emit('change', {\n show: false,\n type: this.type\n });\n clearTimeout(this.timer);\n // // 自定义关闭事件\n // this.customOpen && this.customClose()\n this.timer = setTimeout(function () {\n _this2.showPopup = false;\n }, 300);\n },\n // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容\n touchstart: function touchstart() {\n this.clearPropagation = false;\n },\n onTap: function onTap() {\n if (this.clearPropagation) {\n // fix by mehaotian 兼容 nvue\n this.clearPropagation = false;\n return;\n }\n this.$emit('maskClick');\n if (!this.mkclick) return;\n this.close();\n },\n /**\r\n * 顶部弹出样式处理\r\n */\n top: function top(type) {\n var _this3 = this;\n this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';\n this.ani = ['slide-top'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n this.$nextTick(function () {\n if (_this3.messageChild && _this3.type === 'message') {\n _this3.messageChild.timerClose();\n }\n });\n },\n /**\r\n * 底部弹出样式处理\r\n */\n bottom: function bottom(type) {\n this.popupstyle = 'bottom';\n this.ani = ['slide-bottom'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n paddingBottom: this.safeAreaInsets + 'px',\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n /**\r\n * 中间弹出样式处理\r\n */\n center: function center(type) {\n this.popupstyle = 'center';\n this.ani = ['zoom-out', 'fade'];\n this.transClass = {\n position: 'fixed',\n display: 'flex',\n flexDirection: 'column',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n justifyContent: 'center',\n alignItems: 'center'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n left: function left(type) {\n this.popupstyle = 'left';\n this.ani = ['slide-left'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n bottom: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n right: function right(type) {\n this.popupstyle = 'right';\n this.ani = ['slide-right'];\n this.transClass = {\n position: 'fixed',\n bottom: 0,\n right: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOlsibmFtZSIsImNvbXBvbmVudHMiLCJlbWl0cyIsInByb3BzIiwiYW5pbWF0aW9uIiwidHlwZSIsImRlZmF1bHQiLCJpc01hc2tDbGljayIsIm1hc2tDbGljayIsImJhY2tncm91bmRDb2xvciIsInNhZmVBcmVhIiwibWFza0JhY2tncm91bmRDb2xvciIsIndhdGNoIiwiaGFuZGxlciIsImltbWVkaWF0ZSIsImlzRGVza3RvcCIsInNob3dQb3B1cCIsImRhdGEiLCJkdXJhdGlvbiIsImFuaSIsInNob3dUcmFucyIsInBvcHVwV2lkdGgiLCJwb3B1cEhlaWdodCIsImNvbmZpZyIsInRvcCIsImJvdHRvbSIsImNlbnRlciIsImxlZnQiLCJyaWdodCIsIm1lc3NhZ2UiLCJkaWFsb2ciLCJzaGFyZSIsIm1hc2tDbGFzcyIsInBvc2l0aW9uIiwidHJhbnNDbGFzcyIsIm1hc2tTaG93IiwibWtjbGljayIsInBvcHVwc3R5bGUiLCJjb21wdXRlZCIsImJnIiwibW91bnRlZCIsIndpbmRvd1dpZHRoIiwid2luZG93SGVpZ2h0Iiwid2luZG93VG9wIiwic2NyZWVuSGVpZ2h0Iiwic2FmZUFyZWFJbnNldHMiLCJmaXhTaXplIiwiY3JlYXRlZCIsIm1ldGhvZHMiLCJjbG9zZU1hc2siLCJkaXNhYmxlTWFzayIsImNsZWFyIiwiZSIsIm9wZW4iLCJkaXJlY3Rpb24iLCJzaG93IiwiY2xvc2UiLCJjbGVhclRpbWVvdXQiLCJ0b3VjaHN0YXJ0Iiwib25UYXAiLCJwYWRkaW5nQm90dG9tIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckJBLGVBdUJBO0VBQ0FBO0VBQ0FDLGFBSUE7RUFDQUM7RUFDQUM7SUFDQTtJQUNBQztNQUNBQztNQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBRDtNQUNBQTtNQUNBQztJQUNBO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO0lBQ0E7RUFDQTtFQUVBTTtJQUNBO0FBQ0E7QUFDQTtJQUNBUDtNQUNBUTtRQUNBO1FBQ0E7TUFDQTtNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO1FBQ0E7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBTjtNQUNBSztRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBUDtNQUNBTTtRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBO0lBQ0FFLHFDQUtBO0VBQ0E7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBSDtNQUNBSTtNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO01BQ0FDO1FBQ0FDO1FBQ0FSO1FBQ0FEO1FBQ0FHO1FBQ0FDO1FBQ0FuQjtNQUNBO01BQ0F5QjtRQUNBRDtRQUNBTjtRQUNBQztNQUNBO01BQ0FPO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBdkI7TUFDQTtJQUNBO0lBQ0F3QjtNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUFBO0lBQ0E7TUFDQTtRQUFBQztRQUFBQztRQUFBQztRQUFBakM7UUFBQWtDO1FBQUFDO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFLQTtNQUVBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO0VBT0E7RUFDQUM7SUFDQTtJQUNBO01BQ0E7SUFDQTtNQUNBO0lBQ0E7SUFDQTtNQUNBO0lBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUVBQztNQUVBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQWxEO01BQ0E7SUFDQTtJQUNBbUQ7TUFBQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQWxEO01BQ0E7TUFDQW9EO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUFDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FuQztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FTO1FBQ0FOO1FBQ0FDO1FBQ0FuQjtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWdCO01BQ0E7TUFDQTtNQUNBO1FBQ0FRO1FBQ0FOO1FBQ0FDO1FBQ0FIO1FBQ0FtQztRQUNBbkQ7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWlCO01BQ0E7TUFDQTtNQUNBO1FBQ0FPO1FBRUE0QjtRQUNBQztRQUVBckM7UUFDQUU7UUFDQUM7UUFDQUo7UUFDQXVDO1FBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FyQztNQUNBO01BQ0E7TUFDQTtRQUNBTTtRQUNBTjtRQUNBRjtRQUNBRDtRQUNBZjtRQUVBb0Q7UUFDQUM7TUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQWxDO01BQ0E7TUFDQTtNQUNBO1FBQ0FLO1FBQ0FSO1FBQ0FHO1FBQ0FKO1FBQ0FmO1FBRUFvRDtRQUNBQztNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyB2LWlmPVwic2hvd1BvcHVwXCIgY2xhc3M9XCJ1bmktcG9wdXBcIiA6Y2xhc3M9XCJbcG9wdXBzdHlsZSwgaXNEZXNrdG9wID8gJ2ZpeGZvcnBjLXotaW5kZXgnIDogJyddXCIgQHRvdWNobW92ZS5zdG9wLnByZXZlbnQ9XCJjbGVhclwiPlxyXG5cdFx0PHZpZXcgQHRvdWNoc3RhcnQ9XCJ0b3VjaHN0YXJ0XCIgPlxyXG5cdFx0XHQ8dW5pLXRyYW5zaXRpb24ga2V5PVwiMVwiIHYtaWY9XCJtYXNrU2hvd1wiIG5hbWU9XCJtYXNrXCIgbW9kZS1jbGFzcz1cImZhZGVcIiA6c3R5bGVzPVwibWFza0NsYXNzXCIgOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6c2hvdz1cInNob3dUcmFuc1wiIEBjbGljaz1cIm9uVGFwXCIgLz5cclxuXHRcdFx0PHVuaS10cmFuc2l0aW9uIGtleT1cIjJcIiA6bW9kZS1jbGFzcz1cImFuaVwiIG5hbWU9XCJjb250ZW50XCIgOnN0eWxlcz1cInRyYW5zQ2xhc3NcIiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDpzaG93PVwic2hvd1RyYW5zXCIgQGNsaWNrPVwib25UYXBcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1wb3B1cF9fd3JhcHBlclwiIDpzdHlsZT1cInsgYmFja2dyb3VuZENvbG9yOiBiZyB9XCIgOmNsYXNzPVwiW3BvcHVwc3R5bGVdXCIgQGNsaWNrPVwiY2xlYXJcIj48c2xvdCAvPjwvdmlldz5cclxuXHRcdFx0PC91bmktdHJhbnNpdGlvbj5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0gI2lmZGVmIEg1IC0tPlxyXG5cdFx0PGtleXByZXNzIHYtaWY9XCJtYXNrU2hvd1wiIEBlc2M9XCJvblRhcFwiIC8+XHJcblx0XHQ8IS0tICNlbmRpZiAtLT5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4vLyAjaWZkZWYgSDVcclxuaW1wb3J0IGtleXByZXNzIGZyb20gJy4va2V5cHJlc3MuanMnXHJcbi8vICNlbmRpZlxyXG5cclxuLyoqXHJcbiAqIFBvcFVwIOW8ueWHuuWxglxyXG4gKiBAZGVzY3JpcHRpb24g5by55Ye65bGC57uE5Lu277yM5Li65LqG6Kej5Yaz6YGu572p5by55bGC55qE6Zeu6aKYXHJcbiAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0zMjlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUgPSBbdG9wfGNlbnRlcnxib3R0b218bGVmdHxyaWdodHxtZXNzYWdlfGRpYWxvZ3xzaGFyZV0g5by55Ye65pa55byPXHJcbiAqIFx0QHZhbHVlIHRvcCDpobbpg6jlvLnlh7pcclxuICogXHRAdmFsdWUgY2VudGVyIOS4remXtOW8ueWHulxyXG4gKiBcdEB2YWx1ZSBib3R0b20g5bqV6YOo5by55Ye6XHJcbiAqIFx0QHZhbHVlIGxlZnRcdFx05bem5L6n5by55Ye6XHJcbiAqIFx0QHZhbHVlIHJpZ2h0ICDlj7PkvqflvLnlh7pcclxuICogXHRAdmFsdWUgbWVzc2FnZSDmtojmga/mj5DnpLpcclxuICogXHRAdmFsdWUgZGlhbG9nIOWvueivneahhlxyXG4gKiBcdEB2YWx1ZSBzaGFyZSDlupXpg6jliIbkuqvnpLrkvotcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBhbmltYXRpb24gPSBbdHJ1ZXxmYWxzZV0g5piv5ZCm5byA5ZCv5Yqo55S7XHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gbWFza0NsaWNrID0gW3RydWV8ZmFsc2VdIOiSmeeJiOeCueWHu+aYr+WQpuWFs+mXreW8ueeqlyjlup/lvIMpXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gaXNNYXNrQ2xpY2sgPSBbdHJ1ZXxmYWxzZV0g6JKZ54mI54K55Ye75piv5ZCm5YWz6Zet5by556qXXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSAgYmFja2dyb3VuZENvbG9yIOS4u+eql+WPo+iDjOaZr+iJslxyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gIG1hc2tCYWNrZ3JvdW5kQ29sb3Ig6JKZ54mI6aKc6ImyXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gc2FmZUFyZWFcdFx0ICAg5piv5ZCm6YCC6YWN5bqV6YOo5a6J5YWo5Yy6XHJcbiAqIEBldmVudCB7RnVuY3Rpb259IGNoYW5nZSDmiZPlvIDlhbPpl63lvLnnqpfop6blj5HvvIxlPXtzaG93OiBmYWxzZX1cclxuICogQGV2ZW50IHtGdW5jdGlvbn0gbWFza0NsaWNrIOeCueWHu+mBrue9qeinpuWPkVxyXG4gKi9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRuYW1lOiAndW5pUG9wdXAnLFxyXG5cdGNvbXBvbmVudHM6IHtcclxuXHRcdC8vICNpZmRlZiBINVxyXG5cdFx0a2V5cHJlc3NcclxuXHRcdC8vICNlbmRpZlxyXG5cdH0sXHJcblx0ZW1pdHM6WydjaGFuZ2UnLCdtYXNrQ2xpY2snXSxcclxuXHRwcm9wczoge1xyXG5cdFx0Ly8g5byA5ZCv5Yqo55S7XHJcblx0XHRhbmltYXRpb246IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8vIOW8ueWHuuWxguexu+Wei++8jOWPr+mAieWAvO+8jHRvcDog6aG26YOo5by55Ye65bGC77ybYm90dG9t77ya5bqV6YOo5by55Ye65bGC77ybY2VudGVy77ya5YWo5bGP5by55Ye65bGCXHJcblx0XHQvLyBtZXNzYWdlOiDmtojmga/mj5DnpLogOyBkaWFsb2cgOiDlr7nor53moYZcclxuXHRcdHR5cGU6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiAnY2VudGVyJ1xyXG5cdFx0fSxcclxuXHRcdC8vIG1hc2tDbGlja1xyXG5cdFx0aXNNYXNrQ2xpY2s6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogbnVsbFxyXG5cdFx0fSxcclxuXHRcdC8vIFRPRE8gMiDkuKrniYjmnKzlkI7lup/lvIPlsZ7mgKcg77yM5L2/55SoIGlzTWFza0NsaWNrXHJcblx0XHRtYXNrQ2xpY2s6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogbnVsbFxyXG5cdFx0fSxcclxuXHRcdGJhY2tncm91bmRDb2xvcjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdub25lJ1xyXG5cdFx0fSxcclxuXHRcdHNhZmVBcmVhOntcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdG1hc2tCYWNrZ3JvdW5kQ29sb3I6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiAncmdiYSgwLCAwLCAwLCAwLjQpJ1xyXG5cdFx0fSxcclxuXHR9LFxyXG5cclxuXHR3YXRjaDoge1xyXG5cdFx0LyoqXHJcblx0XHQgKiDnm5HlkKx0eXBl57G75Z6LXHJcblx0XHQgKi9cclxuXHRcdHR5cGU6IHtcclxuXHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odHlwZSkge1xyXG5cdFx0XHRcdGlmICghdGhpcy5jb25maWdbdHlwZV0pIHJldHVyblxyXG5cdFx0XHRcdHRoaXNbdGhpcy5jb25maWdbdHlwZV1dKHRydWUpXHJcblx0XHRcdH0sXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdGlzRGVza3RvcDoge1xyXG5cdFx0XHRoYW5kbGVyOiBmdW5jdGlvbihuZXdWYWwpIHtcclxuXHRcdFx0XHRpZiAoIXRoaXMuY29uZmlnW25ld1ZhbF0pIHJldHVyblxyXG5cdFx0XHRcdHRoaXNbdGhpcy5jb25maWdbdGhpcy50eXBlXV0odHJ1ZSlcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDnm5HlkKzpga7nvanmmK/lkKblj6/ngrnlh7tcclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSB2YWxcclxuXHRcdCAqL1xyXG5cdFx0bWFza0NsaWNrOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHRpc01hc2tDbGljazoge1xyXG5cdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih2YWwpIHtcclxuXHRcdFx0XHR0aGlzLm1rY2xpY2sgPSB2YWxcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0Ly8gSDUg5LiL56aB5q2i5bqV6YOo5rua5YqoXHJcblx0XHRzaG93UG9wdXAoc2hvdykge1xyXG5cdFx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdFx0Ly8gZml4IGJ5IG1laGFvdGlhbiDlpITnkIYgaDUg5rua5Yqo56m/6YCP55qE6Zeu6aKYXHJcblx0XHRcdGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0uc3R5bGUub3ZlcmZsb3cgPSBzaG93ID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHR9XHJcblx0fSxcclxuXHRkYXRhKCkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0ZHVyYXRpb246IDMwMCxcclxuXHRcdFx0YW5pOiBbXSxcclxuXHRcdFx0c2hvd1BvcHVwOiBmYWxzZSxcclxuXHRcdFx0c2hvd1RyYW5zOiBmYWxzZSxcclxuXHRcdFx0cG9wdXBXaWR0aDogMCxcclxuXHRcdFx0cG9wdXBIZWlnaHQ6IDAsXHJcblx0XHRcdGNvbmZpZzoge1xyXG5cdFx0XHRcdHRvcDogJ3RvcCcsXHJcblx0XHRcdFx0Ym90dG9tOiAnYm90dG9tJyxcclxuXHRcdFx0XHRjZW50ZXI6ICdjZW50ZXInLFxyXG5cdFx0XHRcdGxlZnQ6ICdsZWZ0JyxcclxuXHRcdFx0XHRyaWdodDogJ3JpZ2h0JyxcclxuXHRcdFx0XHRtZXNzYWdlOiAndG9wJyxcclxuXHRcdFx0XHRkaWFsb2c6ICdjZW50ZXInLFxyXG5cdFx0XHRcdHNoYXJlOiAnYm90dG9tJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRtYXNrQ2xhc3M6IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRib3R0b206IDAsXHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjQpJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR0cmFuc0NsYXNzOiB7XHJcblx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtYXNrU2hvdzogdHJ1ZSxcclxuXHRcdFx0bWtjbGljazogdHJ1ZSxcclxuXHRcdFx0cG9wdXBzdHlsZTogdGhpcy5pc0Rlc2t0b3AgPyAnZml4Zm9ycGMtdG9wJyA6ICd0b3AnXHJcblx0XHR9XHJcblx0fSxcclxuXHRjb21wdXRlZDoge1xyXG5cdFx0aXNEZXNrdG9wKCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5wb3B1cFdpZHRoID49IDUwMCAmJiB0aGlzLnBvcHVwSGVpZ2h0ID49IDUwMFxyXG5cdFx0fSxcclxuXHRcdGJnKCkge1xyXG5cdFx0XHRpZiAodGhpcy5iYWNrZ3JvdW5kQ29sb3IgPT09ICcnIHx8IHRoaXMuYmFja2dyb3VuZENvbG9yID09PSAnbm9uZScpIHtcclxuXHRcdFx0XHRyZXR1cm4gJ3RyYW5zcGFyZW50J1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB0aGlzLmJhY2tncm91bmRDb2xvclxyXG5cdFx0fVxyXG5cdH0sXHJcblx0bW91bnRlZCgpIHtcclxuXHRcdGNvbnN0IGZpeFNpemUgPSAoKSA9PiB7XHJcblx0XHRcdGNvbnN0IHsgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCwgd2luZG93VG9wLCBzYWZlQXJlYSxzY3JlZW5IZWlnaHQgLHNhZmVBcmVhSW5zZXRzIH0gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKVxyXG5cdFx0XHR0aGlzLnBvcHVwV2lkdGggPSB3aW5kb3dXaWR0aFxyXG5cdFx0XHR0aGlzLnBvcHVwSGVpZ2h0ID0gd2luZG93SGVpZ2h0ICsgd2luZG93VG9wXHJcblx0XHRcdC8vIFRPRE8gZml4IGJ5IG1laGFvdGlhbiDmmK/lkKbpgILphY3lupXpg6jlronlhajljLogLOebruWJjeW+ruS/oWlvcyDjgIHlkowgYXBwIGlvcyDorqHnrpfmnInlt67lvILvvIzpnIDopoHmoYbmnrbkv67lpI1cclxuXHRcdFx0aWYoc2FmZUFyZWEpe1xyXG5cdFx0XHRcdC8vICNpZmRlZiBNUC1XRUlYSU5cclxuXHRcdFx0XHR0aGlzLnNhZmVBcmVhSW5zZXRzID0gc2NyZWVuSGVpZ2h0IC0gc2FmZUFyZWEuYm90dG9tXHJcblx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0Ly8gI2lmbmRlZiBNUC1XRUlYSU5cclxuXHRcdFx0XHR0aGlzLnNhZmVBcmVhSW5zZXRzID0gc2FmZUFyZWFJbnNldHMuYm90dG9tXHJcblx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSAwXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGZpeFNpemUoKVxyXG5cdFx0Ly8gI2lmZGVmIEg1XHJcblx0XHQvLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZml4U2l6ZSlcclxuXHRcdC8vIHRoaXMuJG9uY2UoJ2hvb2s6YmVmb3JlRGVzdHJveScsICgpID0+IHtcclxuXHRcdC8vIFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpeFNpemUpXHJcblx0XHQvLyB9KVxyXG5cdFx0Ly8gI2VuZGlmXHJcblx0fSxcclxuXHRjcmVhdGVkKCkge1xyXG5cdFx0Ly8gdGhpcy5ta2NsaWNrID0gIHRoaXMuaXNNYXNrQ2xpY2sgfHwgdGhpcy5tYXNrQ2xpY2tcclxuXHRcdGlmKHRoaXMuaXNNYXNrQ2xpY2sgPT09IG51bGwgJiYgdGhpcy5tYXNrQ2xpY2sgPT09IG51bGwpe1xyXG5cdFx0XHR0aGlzLm1rY2xpY2sgID0gdHJ1ZVxyXG5cdFx0fWVsc2V7XHJcblx0XHRcdHRoaXMubWtjbGljayA9IHRoaXMuaXNNYXNrQ2xpY2sgIT09IG51bGwgPyB0aGlzLmlzTWFza0NsaWNrIDogdGhpcy5tYXNrQ2xpY2tcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLmFuaW1hdGlvbikge1xyXG5cdFx0XHR0aGlzLmR1cmF0aW9uID0gMzAwXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmR1cmF0aW9uID0gMFxyXG5cdFx0fVxyXG5cdFx0Ly8gVE9ETyDlpITnkIYgbWVzc2FnZSDnu4Tku7bnlJ/lkb3lkajmnJ/lvILluLjnmoTpl67pophcclxuXHRcdHRoaXMubWVzc2FnZUNoaWxkID0gbnVsbFxyXG5cdFx0Ly8gVE9ETyDop6PlhrPlpLTmnaHlhpLms6HnmoTpl67pophcclxuXHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IGZhbHNlXHJcblx0XHR0aGlzLm1hc2tDbGFzcy5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLm1hc2tCYWNrZ3JvdW5kQ29sb3JcclxuXHR9LFxyXG5cdG1ldGhvZHM6IHtcclxuXHRcdC8qKlxyXG5cdFx0ICog5YWs55So5pa55rOV77yM5LiN5pi+56S66YGu572p5bGCXHJcblx0XHQgKi9cclxuXHRcdGNsb3NlTWFzaygpIHtcclxuXHRcdFx0dGhpcy5tYXNrU2hvdyA9IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDlhaznlKjmlrnms5XvvIzpga7nvanlsYLnpoHmraLngrnlh7tcclxuXHRcdCAqL1xyXG5cdFx0ZGlzYWJsZU1hc2soKSB7XHJcblx0XHRcdHRoaXMubWtjbGljayA9IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0Ly8gVE9ETyBudnVlIOWPlua2iOWGkuazoVxyXG5cdFx0Y2xlYXIoZSkge1xyXG5cdFx0XHQvLyAjaWZuZGVmIEFQUC1OVlVFXHJcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKClcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IHRydWVcclxuXHRcdH0sXHJcblxyXG5cdFx0b3BlbihkaXJlY3Rpb24pIHtcclxuXHRcdFx0bGV0IGlubmVyVHlwZSA9IFsndG9wJywgJ2NlbnRlcicsICdib3R0b20nLCAnbGVmdCcsICdyaWdodCcsICdtZXNzYWdlJywgJ2RpYWxvZycsICdzaGFyZSddXHJcblx0XHRcdGlmICghKGRpcmVjdGlvbiAmJiBpbm5lclR5cGUuaW5kZXhPZihkaXJlY3Rpb24pICE9PSAtMSkpIHtcclxuXHRcdFx0XHRkaXJlY3Rpb24gPSB0aGlzLnR5cGVcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoIXRoaXMuY29uZmlnW2RpcmVjdGlvbl0pIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCfnvLrlsJHnsbvlnovvvJonLCBkaXJlY3Rpb24pXHJcblx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdH1cclxuXHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1tkaXJlY3Rpb25dXSgpXHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcclxuXHRcdFx0XHRzaG93OiB0cnVlLFxyXG5cdFx0XHRcdHR5cGU6IGRpcmVjdGlvblxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdGNsb3NlKHR5cGUpIHtcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSBmYWxzZVxyXG5cdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XHJcblx0XHRcdFx0c2hvdzogZmFsc2UsXHJcblx0XHRcdFx0dHlwZTogdGhpcy50eXBlXHJcblx0XHRcdH0pXHJcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxyXG5cdFx0XHQvLyAvLyDoh6rlrprkuYnlhbPpl63kuovku7ZcclxuXHRcdFx0Ly8gdGhpcy5jdXN0b21PcGVuICYmIHRoaXMuY3VzdG9tQ2xvc2UoKVxyXG5cdFx0XHR0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zaG93UG9wdXAgPSBmYWxzZVxyXG5cdFx0XHR9LCAzMDApXHJcblx0XHR9LFxyXG5cdFx0Ly8gVE9ETyDlpITnkIblhpLms6Hkuovku7bvvIzlpLTmnaHnmoTlhpLms6Hkuovku7bmnInpl67popgg77yM5YWI6L+Z5qC35YW85a65XHJcblx0XHR0b3VjaHN0YXJ0KCl7XHJcblx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IGZhbHNlXHJcblx0XHR9LFxyXG5cclxuXHRcdG9uVGFwKCkge1xyXG5cdFx0XHRpZiAodGhpcy5jbGVhclByb3BhZ2F0aW9uKSB7XHJcblx0XHRcdFx0Ly8gZml4IGJ5IG1laGFvdGlhbiDlhbzlrrkgbnZ1ZVxyXG5cdFx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IGZhbHNlXHJcblx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy4kZW1pdCgnbWFza0NsaWNrJylcclxuXHRcdFx0aWYgKCF0aGlzLm1rY2xpY2spIHJldHVyblxyXG5cdFx0XHR0aGlzLmNsb3NlKClcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOmhtumDqOW8ueWHuuagt+W8j+WkhOeQhlxyXG5cdFx0ICovXHJcblx0XHR0b3AodHlwZSkge1xyXG5cdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSB0aGlzLmlzRGVza3RvcCA/ICdmaXhmb3JwYy10b3AnIDogJ3RvcCdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLXRvcCddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLm1lc3NhZ2VDaGlsZCAmJiB0aGlzLnR5cGUgPT09ICdtZXNzYWdlJykge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlQ2hpbGQudGltZXJDbG9zZSgpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog5bqV6YOo5by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdGJvdHRvbSh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdib3R0b20nXHJcblx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHR0aGlzLnRyYW5zQ2xhc3MgPSB7XHJcblx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHRib3R0b206IDAsXHJcblx0XHRcdFx0cGFkZGluZ0JvdHRvbTogdGhpcy5zYWZlQXJlYUluc2V0cysncHgnLFxyXG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOS4remXtOW8ueWHuuagt+W8j+WkhOeQhlxyXG5cdFx0ICovXHJcblx0XHRjZW50ZXIodHlwZSkge1xyXG5cdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAnY2VudGVyJ1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnem9vbS1vdXQnLCAnZmFkZSddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxyXG5cdFx0XHRcdGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXHJcblx0XHRcdFx0YWxpZ25JdGVtczogJ2NlbnRlcidcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHR9LFxyXG5cdFx0bGVmdCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdsZWZ0J1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtbGVmdCddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbidcclxuXHRcdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHR9LFxyXG5cdFx0cmlnaHQodHlwZSkge1xyXG5cdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAncmlnaHQnXHJcblx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1yaWdodCddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRib3R0b206IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZyxcclxuXHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxyXG5cdFx0XHRcdGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nXHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgPlxyXG4udW5pLXBvcHVwIHtcclxuXHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHotaW5kZXg6IDk5O1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdCYudG9wLFxyXG5cdCYubGVmdCxcclxuXHQmLnJpZ2h0IHtcclxuXHRcdC8qICNpZmRlZiBINSAqL1xyXG5cdFx0dG9wOiB2YXIoLS13aW5kb3ctdG9wKTtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0LyogI2lmbmRlZiBINSAqL1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0fVxyXG5cdC51bmktcG9wdXBfX3dyYXBwZXIge1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdC8qIGlwaG9uZXgg562J5a6J5YWo5Yy66K6+572u77yM5bqV6YOo5a6J5YWo5Yy66YCC6YWNICovXHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHQvLyBwYWRkaW5nLWJvdHRvbTogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XHJcblx0XHQvLyBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHQmLmxlZnQsXHJcblx0XHQmLnJpZ2h0IHtcclxuXHRcdFx0LyogI2lmZGVmIEg1ICovXHJcblx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS13aW5kb3ctdG9wKTtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdC8qICNpZm5kZWYgSDUgKi9cclxuXHRcdFx0cGFkZGluZy10b3A6IDA7XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHRmbGV4OiAxO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmZpeGZvcnBjLXotaW5kZXgge1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHR6LWluZGV4OiA5OTk7XHJcblx0LyogI2VuZGlmICovXHJcbn1cclxuXHJcbi5maXhmb3JwYy10b3Age1xyXG5cdHRvcDogMDtcclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///35\n"); /***/ }), /* 36 */ /*!******************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue ***! \******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 37);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=script&lang=js& */ 39);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmNTQ1MjBhJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXBvcHVwLWRpYWxvZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy91bmktcG9wdXAvY29tcG9uZW50cy91bmktcG9wdXAtZGlhbG9nL3VuaS1wb3B1cC1kaWFsb2cudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///36\n"); /***/ }), /* 37 */ /*!*************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***! \*************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 38); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 38 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-popup-dialog"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "uni-dialog-title"), attrs: { _i: 1 } }, [ _c( "text", { staticClass: _vm._$s(2, "sc", "uni-dialog-title-text"), class: _vm._$s(2, "c", ["uni-popup__" + _vm.dialogType]), attrs: { _i: 2 }, }, [_vm._v(_vm._$s(2, "t0-0", _vm._s(_vm.titleText)))] ), ] ), _vm._$s(3, "i", _vm.mode === "base") ? _c( "view", { staticClass: _vm._$s(3, "sc", "uni-dialog-content"), attrs: { _i: 3 }, }, [ _vm._t( "default", [ _c( "text", { staticClass: _vm._$s(5, "sc", "uni-dialog-content-text"), attrs: { _i: 5 }, }, [_vm._v(_vm._$s(5, "t0-0", _vm._s(_vm.content)))] ), ], { _i: 4 } ), ], 2 ) : _c( "view", { staticClass: _vm._$s(6, "sc", "uni-dialog-content"), attrs: { _i: 6 }, }, [ _vm._t( "default", [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.val, expression: "val", }, ], staticClass: _vm._$s(8, "sc", "uni-dialog-input"), attrs: { placeholder: _vm._$s( 8, "a-placeholder", _vm.placeholderText ), focus: _vm._$s(8, "a-focus", _vm.focus), _i: 8, }, domProps: { value: _vm._$s(8, "v-model", _vm.val) }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.val = $event.target.value }, }, }), ], { _i: 7 } ), ], 2 ), _c( "view", { staticClass: _vm._$s(9, "sc", "uni-dialog-button-group"), attrs: { _i: 9 }, }, [ _c( "view", { staticClass: _vm._$s(10, "sc", "uni-dialog-button"), attrs: { _i: 10 }, on: { click: _vm.closeDialog }, }, [ _c( "text", { staticClass: _vm._$s(11, "sc", "uni-dialog-button-text"), attrs: { _i: 11 }, }, [_vm._v(_vm._$s(11, "t0-0", _vm._s(_vm.closeText)))] ), ] ), _c( "view", { staticClass: _vm._$s( 12, "sc", "uni-dialog-button uni-border-left" ), attrs: { _i: 12 }, on: { click: _vm.onOk }, }, [ _c( "text", { staticClass: _vm._$s( 13, "sc", "uni-dialog-button-text uni-button-color" ), attrs: { _i: 13 }, }, [_vm._v(_vm._$s(13, "t0-0", _vm._s(_vm.okText)))] ), ] ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 39 */ /*!*******************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=script&lang=js& */ 40);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRtQixDQUFnQixzbEJBQUcsRUFBQyIsImZpbGUiOiIzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAtZGlhbG9nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n"); /***/ }), /* 40 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=script&lang=js& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _popup = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/popup.js */ 41));\nvar _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 42);\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/index.js */ 48));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),\n t = _initVueI18n.t;\n/**\n * PopUp 弹出层-对话框样式\n * @description 弹出层-对话框样式\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n * @property {String} value input 模式下的默认值\n * @property {String} placeholder input 模式下输入提示\n * @property {String} type = [success|warning|info|error] 主题样式\n * @value success 成功\n * \t@value warning 提示\n * \t@value info 消息\n * \t@value error 错误\n * @property {String} mode = [base|input] 模式、\n * \t@value base 基础对话框\n * \t@value input 可输入对话框\n * @property {String} content 对话框内容\n * @property {Boolean} beforeClose 是否拦截取消事件\n * @event {Function} confirm 点击确认按钮触发\n * @event {Function} close 点击取消按钮触发\n */\nvar _default = {\n name: \"uniPopupDialog\",\n mixins: [_popup.default],\n emits: ['confirm', 'close'],\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n placeholder: {\n type: [String, Number],\n default: ''\n },\n type: {\n type: String,\n default: 'error'\n },\n mode: {\n type: String,\n default: 'base'\n },\n title: {\n type: String,\n default: ''\n },\n content: {\n type: String,\n default: ''\n },\n beforeClose: {\n type: Boolean,\n default: false\n },\n cancelText: {\n type: String,\n default: ''\n },\n confirmText: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n dialogType: 'error',\n focus: false,\n val: \"\"\n };\n },\n computed: {\n okText: function okText() {\n return this.confirmText || t(\"uni-popup.ok\");\n },\n closeText: function closeText() {\n return this.cancelText || t(\"uni-popup.cancel\");\n },\n placeholderText: function placeholderText() {\n return this.placeholder || t(\"uni-popup.placeholder\");\n },\n titleText: function titleText() {\n return this.title || t(\"uni-popup.title\");\n }\n },\n watch: {\n type: function type(val) {\n this.dialogType = val;\n },\n mode: function mode(val) {\n if (val === 'input') {\n this.dialogType = 'info';\n }\n },\n value: function value(val) {\n this.val = val;\n }\n },\n created: function created() {\n // 对话框遮罩不可点击\n this.popup.disableMask();\n // this.popup.closeMask()\n if (this.mode === 'input') {\n this.dialogType = 'info';\n this.val = this.value;\n } else {\n this.dialogType = this.type;\n }\n },\n mounted: function mounted() {\n this.focus = true;\n },\n methods: {\n /**\n * 点击确认按钮\n */\n onOk: function onOk() {\n if (this.mode === 'input') {\n this.$emit('confirm', this.val);\n } else {\n this.$emit('confirm');\n }\n if (this.beforeClose) return;\n this.popup.close();\n },\n /**\n * 点击取消按钮\n */\n closeDialog: function closeDialog() {\n this.$emit('close');\n if (this.beforeClose) return;\n this.popup.close();\n },\n close: function close() {\n this.popup.close();\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwLWRpYWxvZy91bmktcG9wdXAtZGlhbG9nLnZ1ZSJdLCJuYW1lcyI6WyJ0IiwibmFtZSIsIm1peGlucyIsImVtaXRzIiwicHJvcHMiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0IiwicGxhY2Vob2xkZXIiLCJtb2RlIiwidGl0bGUiLCJjb250ZW50IiwiYmVmb3JlQ2xvc2UiLCJjYW5jZWxUZXh0IiwiY29uZmlybVRleHQiLCJkYXRhIiwiZGlhbG9nVHlwZSIsImZvY3VzIiwidmFsIiwiY29tcHV0ZWQiLCJva1RleHQiLCJjbG9zZVRleHQiLCJwbGFjZWhvbGRlclRleHQiLCJ0aXRsZVRleHQiLCJ3YXRjaCIsImNyZWF0ZWQiLCJtb3VudGVkIiwibWV0aG9kcyIsIm9uT2siLCJjbG9zZURpYWxvZyIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBNEJBO0FBQ0E7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtFQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbEJBLGVBb0JBO0VBQ0FDO0VBQ0FDO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBRDtNQUNBQTtNQUNBQztJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO0lBQ0E7SUFDQU07TUFDQVA7TUFDQUM7SUFDQTtJQUNBTztNQUNBUjtNQUNBQztJQUNBO0VBQ0E7RUFDQVE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQWxCO01BQ0E7SUFDQTtJQUNBRztNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FKO01BQ0E7SUFDQTtFQUNBO0VBQ0FvQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO01BQ0E7TUFDQTtJQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiNDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJ1bmktcG9wdXAtZGlhbG9nXCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInVuaS1kaWFsb2ctdGl0bGVcIj5cclxuXHRcdFx0PHRleHQgY2xhc3M9XCJ1bmktZGlhbG9nLXRpdGxlLXRleHRcIiA6Y2xhc3M9XCJbJ3VuaS1wb3B1cF9fJytkaWFsb2dUeXBlXVwiPnt7dGl0bGVUZXh0fX08L3RleHQ+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldyB2LWlmPVwibW9kZSA9PT0gJ2Jhc2UnXCIgY2xhc3M9XCJ1bmktZGlhbG9nLWNvbnRlbnRcIj5cclxuXHRcdFx0PHNsb3Q+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bmktZGlhbG9nLWNvbnRlbnQtdGV4dFwiPnt7Y29udGVudH19PC90ZXh0PlxyXG5cdFx0XHQ8L3Nsb3Q+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldyB2LWVsc2UgY2xhc3M9XCJ1bmktZGlhbG9nLWNvbnRlbnRcIj5cclxuXHRcdFx0PHNsb3Q+XHJcblx0XHRcdFx0PGlucHV0IGNsYXNzPVwidW5pLWRpYWxvZy1pbnB1dFwiIHYtbW9kZWw9XCJ2YWxcIiB0eXBlPVwidGV4dFwiIDpwbGFjZWhvbGRlcj1cInBsYWNlaG9sZGVyVGV4dFwiIDpmb2N1cz1cImZvY3VzXCIgPlxyXG5cdFx0XHQ8L3Nsb3Q+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uLWdyb3VwXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b25cIiBAY2xpY2s9XCJjbG9zZURpYWxvZ1wiPlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b24tdGV4dFwiPnt7Y2xvc2VUZXh0fX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvbiB1bmktYm9yZGVyLWxlZnRcIiBAY2xpY2s9XCJvbk9rXCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvbi10ZXh0IHVuaS1idXR0b24tY29sb3JcIj57e29rVGV4dH19PC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHBvcHVwIGZyb20gJy4uL3VuaS1wb3B1cC9wb3B1cC5qcydcclxuXHRpbXBvcnQge1xyXG5cdGluaXRWdWVJMThuXHJcblx0fSBmcm9tICdAZGNsb3VkaW8vdW5pLWkxOG4nXHJcblx0aW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL3VuaS1wb3B1cC9pMThuL2luZGV4LmpzJ1xyXG5cdGNvbnN0IHtcdHQgfSA9IGluaXRWdWVJMThuKG1lc3NhZ2VzKVxyXG5cdC8qKlxyXG5cdCAqIFBvcFVwIOW8ueWHuuWxgi3lr7nor53moYbmoLflvI9cclxuXHQgKiBAZGVzY3JpcHRpb24g5by55Ye65bGCLeWvueivneahhuagt+W8j1xyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0zMjlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gdmFsdWUgaW5wdXQg5qih5byP5LiL55qE6buY6K6k5YC8XHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHBsYWNlaG9sZGVyIGlucHV0IOaooeW8j+S4i+i+k+WFpeaPkOekulxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB0eXBlID0gW3N1Y2Nlc3N8d2FybmluZ3xpbmZvfGVycm9yXSDkuLvpopjmoLflvI9cclxuXHQgKiAgQHZhbHVlIHN1Y2Nlc3Mg5oiQ5YqfXHJcblx0ICogXHRAdmFsdWUgd2FybmluZyDmj5DnpLpcclxuXHQgKiBcdEB2YWx1ZSBpbmZvIOa2iOaBr1xyXG5cdCAqIFx0QHZhbHVlIGVycm9yIOmUmeivr1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBtb2RlID0gW2Jhc2V8aW5wdXRdIOaooeW8j+OAgVxyXG5cdCAqIFx0QHZhbHVlIGJhc2Ug5Z+656GA5a+56K+d5qGGXHJcblx0ICogXHRAdmFsdWUgaW5wdXQg5Y+v6L6T5YWl5a+56K+d5qGGXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IGNvbnRlbnQg5a+56K+d5qGG5YaF5a65XHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufSBiZWZvcmVDbG9zZSDmmK/lkKbmi6bmiKrlj5bmtojkuovku7ZcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBjb25maXJtIOeCueWHu+ehruiupOaMiemSruinpuWPkVxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNsb3NlIOeCueWHu+WPlua2iOaMiemSruinpuWPkVxyXG5cdCAqL1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiBcInVuaVBvcHVwRGlhbG9nXCIsXHJcblx0XHRtaXhpbnM6IFtwb3B1cF0sXHJcblx0XHRlbWl0czpbJ2NvbmZpcm0nLCdjbG9zZSddLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0dmFsdWU6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdHBsYWNlaG9sZGVyOiB7XHJcblx0XHRcdFx0dHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR0eXBlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdlcnJvcidcclxuXHRcdFx0fSxcclxuXHRcdFx0bW9kZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnYmFzZSdcclxuXHRcdFx0fSxcclxuXHRcdFx0dGl0bGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29udGVudDoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRiZWZvcmVDbG9zZToge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2FuY2VsVGV4dDp7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbmZpcm1UZXh0OntcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0ZGlhbG9nVHlwZTogJ2Vycm9yJyxcclxuXHRcdFx0XHRmb2N1czogZmFsc2UsXHJcblx0XHRcdFx0dmFsOiBcIlwiXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHRva1RleHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuY29uZmlybVRleHQgfHwgdChcInVuaS1wb3B1cC5va1wiKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbG9zZVRleHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuY2FuY2VsVGV4dCB8fCB0KFwidW5pLXBvcHVwLmNhbmNlbFwiKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRwbGFjZWhvbGRlclRleHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgdChcInVuaS1wb3B1cC5wbGFjZWhvbGRlclwiKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0aXRsZVRleHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMudGl0bGUgfHwgdChcInVuaS1wb3B1cC50aXRsZVwiKVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0d2F0Y2g6IHtcclxuXHRcdFx0dHlwZSh2YWwpIHtcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ1R5cGUgPSB2YWxcclxuXHRcdFx0fSxcclxuXHRcdFx0bW9kZSh2YWwpIHtcclxuXHRcdFx0XHRpZiAodmFsID09PSAnaW5wdXQnKSB7XHJcblx0XHRcdFx0XHR0aGlzLmRpYWxvZ1R5cGUgPSAnaW5mbydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHZhbHVlKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMudmFsID0gdmFsXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cdFx0XHQvLyDlr7nor53moYbpga7nvankuI3lj6/ngrnlh7tcclxuXHRcdFx0dGhpcy5wb3B1cC5kaXNhYmxlTWFzaygpXHJcblx0XHRcdC8vIHRoaXMucG9wdXAuY2xvc2VNYXNrKClcclxuXHRcdFx0aWYgKHRoaXMubW9kZSA9PT0gJ2lucHV0Jykge1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9ICdpbmZvJ1xyXG5cdFx0XHRcdHRoaXMudmFsID0gdGhpcy52YWx1ZVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9IHRoaXMudHlwZVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0dGhpcy5mb2N1cyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDngrnlh7vnoa7orqTmjInpkq5cclxuXHRcdFx0ICovXHJcblx0XHRcdG9uT2soKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMubW9kZSA9PT0gJ2lucHV0Jyl7XHJcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdjb25maXJtJywgdGhpcy52YWwpXHJcblx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdjb25maXJtJylcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYodGhpcy5iZWZvcmVDbG9zZSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpcy5wb3B1cC5jbG9zZSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDngrnlh7vlj5bmtojmjInpkq5cclxuXHRcdFx0ICovXHJcblx0XHRcdGNsb3NlRGlhbG9nKCkge1xyXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2Nsb3NlJylcclxuXHRcdFx0XHRpZih0aGlzLmJlZm9yZUNsb3NlKSByZXR1cm5cclxuXHRcdFx0XHR0aGlzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2xvc2UoKXtcclxuXHRcdFx0XHR0aGlzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiA+XHJcblx0LnVuaS1wb3B1cC1kaWFsb2cge1xyXG5cdFx0d2lkdGg6IDMwMHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTFweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy10aXRsZSB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nLXRvcDogMjVweDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLXRpdGxlLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWNvbnRlbnQge1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdHBhZGRpbmc6IDIwcHg7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy1jb250ZW50LXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0Y29sb3I6ICM2QzZDNkM7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy1idXR0b24tZ3JvdXAge1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGJvcmRlci10b3AtY29sb3I6ICNmNWY1ZjU7XHJcblx0XHRib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcclxuXHRcdGJvcmRlci10b3Atd2lkdGg6IDFweDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWJ1dHRvbiB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblxyXG5cdFx0ZmxleDogMTtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRoZWlnaHQ6IDQ1cHg7XHJcblx0fVxyXG5cclxuXHQudW5pLWJvcmRlci1sZWZ0IHtcclxuXHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAjZjBmMGYwO1xyXG5cdFx0Ym9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLWxlZnQtd2lkdGg6IDFweDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWJ1dHRvbi10ZXh0IHtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGNvbG9yOiAjMzMzO1xyXG5cdH1cclxuXHJcblx0LnVuaS1idXR0b24tY29sb3Ige1xyXG5cdFx0Y29sb3I6ICMwMDdhZmY7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy1pbnB1dCB7XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0Ym9yZGVyOiAxcHggI2VlZSBzb2xpZDtcclxuXHRcdGhlaWdodDogNDBweDtcclxuXHRcdHBhZGRpbmc6IDAgMTBweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHRcdGNvbG9yOiAjNTU1O1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9fc3VjY2VzcyB7XHJcblx0XHRjb2xvcjogIzRjZDk2NDtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX3dhcm4ge1xyXG5cdFx0Y29sb3I6ICNmMGFkNGU7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX19lcnJvciB7XHJcblx0XHRjb2xvcjogI2RkNTI0ZDtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX2luZm8ge1xyXG5cdFx0Y29sb3I6ICM5MDkzOTk7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n"); /***/ }), /* 41 */ /*!***********************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/popup.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n data: function data() {\n return {};\n },\n created: function created() {\n this.popup = this.getParent();\n },\n methods: {\n /**\r\n * 获取父元素实例\r\n */\n getParent: function getParent() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'uniPopup';\n var parent = this.$parent;\n var parentName = parent.$options.name;\n while (parentName !== name) {\n parent = parent.$parent;\n if (!parent) return false;\n parentName = parent.$options.name;\n }\n return parent;\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3BvcHVwLmpzIl0sIm5hbWVzIjpbImRhdGEiLCJjcmVhdGVkIiwicG9wdXAiLCJnZXRQYXJlbnQiLCJtZXRob2RzIiwibmFtZSIsInBhcmVudCIsIiRwYXJlbnQiLCJwYXJlbnROYW1lIiwiJG9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7OztlQUNlO0VBQ2RBLElBQUksa0JBQUc7SUFDTixPQUFPLENBRVAsQ0FBQztFQUNGLENBQUM7RUFDREMsT0FBTyxxQkFBRTtJQUNSLElBQUksQ0FBQ0MsS0FBSyxHQUFHLElBQUksQ0FBQ0MsU0FBUyxFQUFFO0VBQzlCLENBQUM7RUFDREMsT0FBTyxFQUFDO0lBQ1A7QUFDRjtBQUNBO0lBQ0VELFNBQVMsdUJBQW9CO01BQUEsSUFBbkJFLElBQUksdUVBQUcsVUFBVTtNQUMxQixJQUFJQyxNQUFNLEdBQUcsSUFBSSxDQUFDQyxPQUFPO01BQ3pCLElBQUlDLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxRQUFRLENBQUNKLElBQUk7TUFDckMsT0FBT0csVUFBVSxLQUFLSCxJQUFJLEVBQUU7UUFDM0JDLE1BQU0sR0FBR0EsTUFBTSxDQUFDQyxPQUFPO1FBQ3ZCLElBQUksQ0FBQ0QsTUFBTSxFQUFFLE9BQU8sS0FBSztRQUN6QkUsVUFBVSxHQUFHRixNQUFNLENBQUNHLFFBQVEsQ0FBQ0osSUFBSTtNQUNsQztNQUNBLE9BQU9DLE1BQU07SUFDZDtFQUNEO0FBQ0QsQ0FBQztBQUFBIiwiZmlsZSI6IjQxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRkYXRhKCkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0XHJcblx0XHR9XHJcblx0fSxcclxuXHRjcmVhdGVkKCl7XHJcblx0XHR0aGlzLnBvcHVwID0gdGhpcy5nZXRQYXJlbnQoKVxyXG5cdH0sXHJcblx0bWV0aG9kczp7XHJcblx0XHQvKipcclxuXHRcdCAqIOiOt+WPlueItuWFg+e0oOWunuS+i1xyXG5cdFx0ICovXHJcblx0XHRnZXRQYXJlbnQobmFtZSA9ICd1bmlQb3B1cCcpIHtcclxuXHRcdFx0bGV0IHBhcmVudCA9IHRoaXMuJHBhcmVudDtcclxuXHRcdFx0bGV0IHBhcmVudE5hbWUgPSBwYXJlbnQuJG9wdGlvbnMubmFtZTtcclxuXHRcdFx0d2hpbGUgKHBhcmVudE5hbWUgIT09IG5hbWUpIHtcclxuXHRcdFx0XHRwYXJlbnQgPSBwYXJlbnQuJHBhcmVudDtcclxuXHRcdFx0XHRpZiAoIXBhcmVudCkgcmV0dXJuIGZhbHNlXHJcblx0XHRcdFx0cGFyZW50TmFtZSA9IHBhcmVudC4kb3B0aW9ucy5uYW1lO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBwYXJlbnQ7XHJcblx0XHR9LFxyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n"); /***/ }), /* 42 */ /*!*************************************************************!*\ !*** ./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js ***! \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.LOCALE_ZH_HANT = exports.LOCALE_ZH_HANS = exports.LOCALE_FR = exports.LOCALE_ES = exports.LOCALE_EN = exports.I18n = exports.Formatter = void 0; exports.compileI18nJsonStr = compileI18nJsonStr; exports.hasI18nJson = hasI18nJson; exports.initVueI18n = initVueI18n; exports.isI18nStr = isI18nStr; exports.isString = void 0; exports.normalizeLocale = normalizeLocale; exports.parseI18nJson = parseI18nJson; exports.resolveLocale = resolveLocale; var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 44)); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4)); var isObject = function isObject(val) { return val !== null && (0, _typeof2.default)(val) === 'object'; }; var defaultDelimiters = ['{', '}']; var BaseFormatter = /*#__PURE__*/function () { function BaseFormatter() { (0, _classCallCheck2.default)(this, BaseFormatter); this._caches = Object.create(null); } (0, _createClass2.default)(BaseFormatter, [{ key: "interpolate", value: function interpolate(message, values) { var delimiters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDelimiters; if (!values) { return [message]; } var tokens = this._caches[message]; if (!tokens) { tokens = parse(message, delimiters); this._caches[message] = tokens; } return compile(tokens, values); } }]); return BaseFormatter; }(); exports.Formatter = BaseFormatter; var RE_TOKEN_LIST_VALUE = /^(?:\d)+/; var RE_TOKEN_NAMED_VALUE = /^(?:\w)+/; function parse(format, _ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), startDelimiter = _ref2[0], endDelimiter = _ref2[1]; var tokens = []; var position = 0; var text = ''; while (position < format.length) { var char = format[position++]; if (char === startDelimiter) { if (text) { tokens.push({ type: 'text', value: text }); } text = ''; var sub = ''; char = format[position++]; while (char !== undefined && char !== endDelimiter) { sub += char; char = format[position++]; } var isClosed = char === endDelimiter; var type = RE_TOKEN_LIST_VALUE.test(sub) ? 'list' : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? 'named' : 'unknown'; tokens.push({ value: sub, type: type }); } // else if (char === '%') { // // when found rails i18n syntax, skip text capture // if (format[position] !== '{') { // text += char // } // } else { text += char; } } text && tokens.push({ type: 'text', value: text }); return tokens; } function compile(tokens, values) { var compiled = []; var index = 0; var mode = Array.isArray(values) ? 'list' : isObject(values) ? 'named' : 'unknown'; if (mode === 'unknown') { return compiled; } while (index < tokens.length) { var token = tokens[index]; switch (token.type) { case 'text': compiled.push(token.value); break; case 'list': compiled.push(values[parseInt(token.value, 10)]); break; case 'named': if (mode === 'named') { compiled.push(values[token.value]); } else { if (true) { console.warn("Type of token '".concat(token.type, "' and format of value '").concat(mode, "' don't match!")); } } break; case 'unknown': if (true) { console.warn("Detect 'unknown' type of token!"); } break; } index++; } return compiled; } var LOCALE_ZH_HANS = 'zh-Hans'; exports.LOCALE_ZH_HANS = LOCALE_ZH_HANS; var LOCALE_ZH_HANT = 'zh-Hant'; exports.LOCALE_ZH_HANT = LOCALE_ZH_HANT; var LOCALE_EN = 'en'; exports.LOCALE_EN = LOCALE_EN; var LOCALE_FR = 'fr'; exports.LOCALE_FR = LOCALE_FR; var LOCALE_ES = 'es'; exports.LOCALE_ES = LOCALE_ES; var hasOwnProperty = Object.prototype.hasOwnProperty; var hasOwn = function hasOwn(val, key) { return hasOwnProperty.call(val, key); }; var defaultFormatter = new BaseFormatter(); function include(str, parts) { return !!parts.find(function (part) { return str.indexOf(part) !== -1; }); } function startsWith(str, parts) { return parts.find(function (part) { return str.indexOf(part) === 0; }); } function normalizeLocale(locale, messages) { if (!locale) { return; } locale = locale.trim().replace(/_/g, '-'); if (messages && messages[locale]) { return locale; } locale = locale.toLowerCase(); if (locale === 'chinese') { // 支付宝 return LOCALE_ZH_HANS; } if (locale.indexOf('zh') === 0) { if (locale.indexOf('-hans') > -1) { return LOCALE_ZH_HANS; } if (locale.indexOf('-hant') > -1) { return LOCALE_ZH_HANT; } if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) { return LOCALE_ZH_HANT; } return LOCALE_ZH_HANS; } var locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES]; if (messages && Object.keys(messages).length > 0) { locales = Object.keys(messages); } var lang = startsWith(locale, locales); if (lang) { return lang; } } var I18n = /*#__PURE__*/function () { function I18n(_ref3) { var locale = _ref3.locale, fallbackLocale = _ref3.fallbackLocale, messages = _ref3.messages, watcher = _ref3.watcher, formater = _ref3.formater; (0, _classCallCheck2.default)(this, I18n); this.locale = LOCALE_EN; this.fallbackLocale = LOCALE_EN; this.message = {}; this.messages = {}; this.watchers = []; if (fallbackLocale) { this.fallbackLocale = fallbackLocale; } this.formater = formater || defaultFormatter; this.messages = messages || {}; this.setLocale(locale || LOCALE_EN); if (watcher) { this.watchLocale(watcher); } } (0, _createClass2.default)(I18n, [{ key: "setLocale", value: function setLocale(locale) { var _this = this; var oldLocale = this.locale; this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale; if (!this.messages[this.locale]) { // 可能初始化时不存在 this.messages[this.locale] = {}; } this.message = this.messages[this.locale]; // 仅发生变化时,通知 if (oldLocale !== this.locale) { this.watchers.forEach(function (watcher) { watcher(_this.locale, oldLocale); }); } } }, { key: "getLocale", value: function getLocale() { return this.locale; } }, { key: "watchLocale", value: function watchLocale(fn) { var _this2 = this; var index = this.watchers.push(fn) - 1; return function () { _this2.watchers.splice(index, 1); }; } }, { key: "add", value: function add(locale, message) { var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var curMessages = this.messages[locale]; if (curMessages) { if (override) { Object.assign(curMessages, message); } else { Object.keys(message).forEach(function (key) { if (!hasOwn(curMessages, key)) { curMessages[key] = message[key]; } }); } } else { this.messages[locale] = message; } } }, { key: "f", value: function f(message, values, delimiters) { return this.formater.interpolate(message, values, delimiters).join(''); } }, { key: "t", value: function t(key, locale, values) { var message = this.message; if (typeof locale === 'string') { locale = normalizeLocale(locale, this.messages); locale && (message = this.messages[locale]); } else { values = locale; } if (!hasOwn(message, key)) { console.warn("Cannot translate the value of keypath ".concat(key, ". Use the value of keypath as default.")); return key; } return this.formater.interpolate(message[key], values).join(''); } }]); return I18n; }(); exports.I18n = I18n; function watchAppLocale(appVm, i18n) { // 需要保证 watch 的触发在组件渲染之前 if (appVm.$watchLocale) { // vue2 appVm.$watchLocale(function (newLocale) { i18n.setLocale(newLocale); }); } else { appVm.$watch(function () { return appVm.$locale; }, function (newLocale) { i18n.setLocale(newLocale); }); } } function getDefaultLocale() { if (typeof uni !== 'undefined' && uni.getLocale) { return uni.getLocale(); } // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale if (typeof global !== 'undefined' && global.getLocale) { return global.getLocale(); } return LOCALE_EN; } function initVueI18n(locale) { var messages = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var fallbackLocale = arguments.length > 2 ? arguments[2] : undefined; var watcher = arguments.length > 3 ? arguments[3] : undefined; // 兼容旧版本入参 if (typeof locale !== 'string') { var _ref4 = [messages, locale]; locale = _ref4[0]; messages = _ref4[1]; } if (typeof locale !== 'string') { // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined locale = getDefaultLocale(); } if (typeof fallbackLocale !== 'string') { fallbackLocale = typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale || LOCALE_EN; } var i18n = new I18n({ locale: locale, fallbackLocale: fallbackLocale, messages: messages, watcher: watcher }); var _t = function t(key, values) { if (typeof getApp !== 'function') { // app view /* eslint-disable no-func-assign */ _t = function t(key, values) { return i18n.t(key, values); }; } else { var isWatchedAppLocale = false; _t = function t(key, values) { var appVm = getApp().$vm; // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化 // options: { // type: Array, // default () { // return [{ // icon: 'shop', // text: t("uni-goods-nav.options.shop"), // }, { // icon: 'cart', // text: t("uni-goods-nav.options.cart") // }] // } // }, if (appVm) { // 触发响应式 appVm.$locale; if (!isWatchedAppLocale) { isWatchedAppLocale = true; watchAppLocale(appVm, i18n); } } return i18n.t(key, values); }; } return _t(key, values); }; return { i18n: i18n, f: function f(message, values, delimiters) { return i18n.f(message, values, delimiters); }, t: function t(key, values) { return _t(key, values); }, add: function add(locale, message) { var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; return i18n.add(locale, message, override); }, watch: function watch(fn) { return i18n.watchLocale(fn); }, getLocale: function getLocale() { return i18n.getLocale(); }, setLocale: function setLocale(newLocale) { return i18n.setLocale(newLocale); } }; } var isString = function isString(val) { return typeof val === 'string'; }; exports.isString = isString; var formater; function hasI18nJson(jsonObj, delimiters) { if (!formater) { formater = new BaseFormatter(); } return walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { return true; } } else { return hasI18nJson(value, delimiters); } }); } function parseI18nJson(jsonObj, values, delimiters) { if (!formater) { formater = new BaseFormatter(); } walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, values, delimiters); } } else { parseI18nJson(value, values, delimiters); } }); return jsonObj; } function compileI18nJsonStr(jsonStr, _ref5) { var locale = _ref5.locale, locales = _ref5.locales, delimiters = _ref5.delimiters; if (!isI18nStr(jsonStr, delimiters)) { return jsonStr; } if (!formater) { formater = new BaseFormatter(); } var localeValues = []; Object.keys(locales).forEach(function (name) { if (name !== locale) { localeValues.push({ locale: name, values: locales[name] }); } }); localeValues.unshift({ locale: locale, values: locales[locale] }); try { return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2); } catch (e) {} return jsonStr; } function isI18nStr(value, delimiters) { return value.indexOf(delimiters[0]) > -1; } function compileStr(value, values, delimiters) { return formater.interpolate(value, values, delimiters).join(''); } function compileValue(jsonObj, key, localeValues, delimiters) { var value = jsonObj[key]; if (isString(value)) { // 存在国际化 if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, localeValues[0].values, delimiters); if (localeValues.length > 1) { // 格式化国际化语言 var valueLocales = jsonObj[key + 'Locales'] = {}; localeValues.forEach(function (localValue) { valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters); }); } } } else { compileJsonObj(value, localeValues, delimiters); } } function compileJsonObj(jsonObj, localeValues, delimiters) { walkJsonObj(jsonObj, function (jsonObj, key) { compileValue(jsonObj, key, localeValues, delimiters); }); return jsonObj; } function walkJsonObj(jsonObj, walk) { if (Array.isArray(jsonObj)) { for (var i = 0; i < jsonObj.length; i++) { if (walk(jsonObj, i)) { return true; } } } else if (isObject(jsonObj)) { for (var key in jsonObj) { if (walk(jsonObj, key)) { return true; } } } return false; } function resolveLocale(locales) { return function (locale) { if (!locale) { return locale; } locale = normalizeLocale(locale) || locale; return resolveLocaleChain(locale).find(function (locale) { return locales.indexOf(locale) > -1; }); }; } function resolveLocaleChain(locale) { var chain = []; var tokens = locale.split('-'); while (tokens.length) { chain.push(tokens.join('-')); tokens.pop(); } return chain; } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 43))) /***/ }), /* 43 */ /*!***********************************!*\ !*** (webpack)/buildin/global.js ***! \***********************************/ /*! no static exports found */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 44 */ /*!**************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ 45); var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ 46); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 20); var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ 47); function _slicedToArray(arr, i) { return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); } module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 45 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 46 */ /*!*********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 47 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 48 */ /*!****************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/index.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _en = _interopRequireDefault(__webpack_require__(/*! ./en.json */ 49));\nvar _zhHans = _interopRequireDefault(__webpack_require__(/*! ./zh-Hans.json */ 50));\nvar _zhHant = _interopRequireDefault(__webpack_require__(/*! ./zh-Hant.json */ 51));\nvar _default = {\n en: _en.default,\n 'zh-Hans': _zhHans.default,\n 'zh-Hant': _zhHant.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL2kxOG4vaW5kZXguanMiXSwibmFtZXMiOlsiZW4iLCJ6aEhhbnMiLCJ6aEhhbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFBbUMsZUFDcEI7RUFDZEEsRUFBRSxFQUFGQSxXQUFFO0VBQ0YsU0FBUyxFQUFFQyxlQUFNO0VBQ2pCLFNBQVMsRUFBRUM7QUFDWixDQUFDO0FBQUEiLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZW4gZnJvbSAnLi9lbi5qc29uJ1xyXG5pbXBvcnQgemhIYW5zIGZyb20gJy4vemgtSGFucy5qc29uJ1xyXG5pbXBvcnQgemhIYW50IGZyb20gJy4vemgtSGFudC5qc29uJ1xyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0ZW4sXHJcblx0J3poLUhhbnMnOiB6aEhhbnMsXHJcblx0J3poLUhhbnQnOiB6aEhhbnRcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///48\n"); /***/ }), /* 49 */ /*!***************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/en.json ***! \***************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"cancel\\\",\\\"uni-popup.ok\\\":\\\"ok\\\",\\\"uni-popup.placeholder\\\":\\\"pleace enter\\\",\\\"uni-popup.title\\\":\\\"Hint\\\",\\\"uni-popup.shareTitle\\\":\\\"Share to\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI0OS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); /***/ }), /* 50 */ /*!********************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json ***! \********************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"取消\\\",\\\"uni-popup.ok\\\":\\\"确定\\\",\\\"uni-popup.placeholder\\\":\\\"请输入\\\",\\\"uni-popup.title\\\":\\\"提示\\\",\\\"uni-popup.shareTitle\\\":\\\"分享到\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI1MC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n"); /***/ }), /* 51 */ /*!********************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json ***! \********************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"取消\\\",\\\"uni-popup.ok\\\":\\\"確定\\\",\\\"uni-popup.placeholder\\\":\\\"請輸入\\\",\\\"uni-popup.title\\\":\\\"提示\\\",\\\"uni-popup.shareTitle\\\":\\\"分享到\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI1MS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///51\n"); /***/ }), /* 52 */ /*!********************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue ***! \********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup-message.vue?vue&type=template&id=38167fe2& */ 53);\n/* harmony import */ var _uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup-message.vue?vue&type=script&lang=js& */ 55);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBOEg7QUFDOUg7QUFDcUU7QUFDTDs7O0FBR2hFO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLHVGQUFNO0FBQ1IsRUFBRSw0RkFBTTtBQUNSLEVBQUUscUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsZ0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC1tZXNzYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zODE2N2ZlMiZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3VuaS1wb3B1cC1tZXNzYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLXBvcHVwLW1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy91bmktcG9wdXAvY29tcG9uZW50cy91bmktcG9wdXAtbWVzc2FnZS91bmktcG9wdXAtbWVzc2FnZS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n"); /***/ }), /* 53 */ /*!***************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue?vue&type=template&id=38167fe2& ***! \***************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-message.vue?vue&type=template&id=38167fe2& */ 54); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_template_id_38167fe2___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 54 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue?vue&type=template&id=38167fe2& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-popup-message"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s( 1, "sc", "uni-popup-message__box fixforpc-width" ), class: _vm._$s(1, "c", "uni-popup__" + _vm.type), attrs: { _i: 1 }, }, [ _vm._t( "default", [ _c( "text", { staticClass: _vm._$s(3, "sc", "uni-popup-message-text"), class: _vm._$s(3, "c", "uni-popup__" + _vm.type + "-text"), attrs: { _i: 3 }, }, [_vm._v(_vm._$s(3, "t0-0", _vm._s(_vm.message)))] ), ], { _i: 2 } ), ], 2 ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 55 */ /*!*********************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue?vue&type=script&lang=js& ***! \*********************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-message.vue?vue&type=script&lang=js& */ 56);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_message_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZtQixDQUFnQix1bEJBQUcsRUFBQyIsImZpbGUiOiI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAtbWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAtbWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n"); /***/ }), /* 56 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _popup = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/popup.js */ 41));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * PopUp 弹出层-消息提示\n * @description 弹出层-消息提示\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n * @property {String} type = [success|warning|info|error] 主题样式\n * @value success 成功\n * \t@value warning 提示\n * \t@value info 消息\n * \t@value error 错误\n * @property {String} message 消息提示文字\n * @property {String} duration 显示时间,设置为 0 则不会自动关闭\n */\nvar _default = {\n name: 'uniPopupMessage',\n mixins: [_popup.default],\n props: {\n /**\n * 主题 success/warning/info/error\t 默认 success\n */\n type: {\n type: String,\n default: 'success'\n },\n /**\n * 消息文字\n */\n message: {\n type: String,\n default: ''\n },\n /**\n * 显示时间,设置为 0 则不会自动关闭\n */\n duration: {\n type: Number,\n default: 3000\n },\n maskShow: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {};\n },\n created: function created() {\n this.popup.maskShow = this.maskShow;\n this.popup.messageChild = this;\n },\n methods: {\n timerClose: function timerClose() {\n var _this = this;\n if (this.duration === 0) return;\n clearTimeout(this.timer);\n this.timer = setTimeout(function () {\n _this.popup.close();\n }, this.duration);\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwLW1lc3NhZ2UvdW5pLXBvcHVwLW1lc3NhZ2UudnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJtaXhpbnMiLCJwcm9wcyIsInR5cGUiLCJkZWZhdWx0IiwibWVzc2FnZSIsImR1cmF0aW9uIiwibWFza1Nob3ciLCJkYXRhIiwiY3JlYXRlZCIsIm1ldGhvZHMiLCJ0aW1lckNsb3NlIiwiY2xlYXJUaW1lb3V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBV0E7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEEsZUFhQTtFQUNBQTtFQUNBQztFQUNBQztJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBQTtNQUNBQztJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0FGO01BQ0FDO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztJQUNBO0VBQ0E7RUFDQUk7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQUE7TUFDQTtNQUNBQztNQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBIiwiZmlsZSI6IjU2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwidW5pLXBvcHVwLW1lc3NhZ2VcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLXBvcHVwLW1lc3NhZ2VfX2JveCBmaXhmb3JwYy13aWR0aFwiIDpjbGFzcz1cIid1bmktcG9wdXBfXycrdHlwZVwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1wb3B1cC1tZXNzYWdlLXRleHRcIiA6Y2xhc3M9XCIndW5pLXBvcHVwX18nK3R5cGUrJy10ZXh0J1wiPnt7bWVzc2FnZX19PC90ZXh0PlxyXG5cdFx0XHQ8L3Nsb3Q+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcG9wdXAgZnJvbSAnLi4vdW5pLXBvcHVwL3BvcHVwLmpzJ1xyXG5cdC8qKlxyXG5cdCAqIFBvcFVwIOW8ueWHuuWxgi3mtojmga/mj5DnpLpcclxuXHQgKiBAZGVzY3JpcHRpb24g5by55Ye65bGCLea2iOaBr+aPkOekulxyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0zMjlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gdHlwZSA9IFtzdWNjZXNzfHdhcm5pbmd8aW5mb3xlcnJvcl0g5Li76aKY5qC35byPXHJcblx0ICogIEB2YWx1ZSBzdWNjZXNzIOaIkOWKn1xyXG5cdCAqIFx0QHZhbHVlIHdhcm5pbmcg5o+Q56S6XHJcblx0ICogXHRAdmFsdWUgaW5mbyDmtojmga9cclxuXHQgKiBcdEB2YWx1ZSBlcnJvciDplJnor69cclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gbWVzc2FnZSDmtojmga/mj5DnpLrmloflrZdcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gZHVyYXRpb24g5pi+56S65pe26Ze077yM6K6+572u5Li6IDAg5YiZ5LiN5Lya6Ieq5Yqo5YWz6ZetXHJcblx0ICovXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICd1bmlQb3B1cE1lc3NhZ2UnLFxyXG5cdFx0bWl4aW5zOltwb3B1cF0sXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog5Li76aKYIHN1Y2Nlc3Mvd2FybmluZy9pbmZvL2Vycm9yXHQgIOm7mOiupCBzdWNjZXNzXHJcblx0XHRcdCAqL1xyXG5cdFx0XHR0eXBlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdzdWNjZXNzJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog5raI5oGv5paH5a2XXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRtZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDmmL7npLrml7bpl7TvvIzorr7nva7kuLogMCDliJnkuI3kvJroh6rliqjlhbPpl61cclxuXHRcdFx0ICovXHJcblx0XHRcdGR1cmF0aW9uOiB7XHJcblx0XHRcdFx0dHlwZTogTnVtYmVyLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IDMwMDBcclxuXHRcdFx0fSxcclxuXHRcdFx0bWFza1Nob3c6e1xyXG5cdFx0XHRcdHR5cGU6Qm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OmZhbHNlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge31cclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cdFx0XHR0aGlzLnBvcHVwLm1hc2tTaG93ID0gdGhpcy5tYXNrU2hvd1xyXG5cdFx0XHR0aGlzLnBvcHVwLm1lc3NhZ2VDaGlsZCA9IHRoaXNcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdHRpbWVyQ2xvc2UoKXtcclxuXHRcdFx0XHRpZih0aGlzLmR1cmF0aW9uID09PSAwKSByZXR1cm5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy50aW1lcikgXHJcblx0XHRcdFx0dGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHRcdH0sdGhpcy5kdXJhdGlvbilcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiID5cclxuXHQudW5pLXBvcHVwLW1lc3NhZ2Uge1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cC1tZXNzYWdlX19ib3gge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2UxZjNkODtcclxuXHRcdHBhZGRpbmc6IDEwcHggMTVweDtcclxuXHRcdGJvcmRlci1jb2xvcjogI2VlZTtcclxuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItd2lkdGg6IDFweDtcclxuXHRcdGZsZXg6IDE7XHJcblx0fVxyXG5cclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MDBweCkge1xyXG5cdFx0LmZpeGZvcnBjLXdpZHRoIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogMjBweDtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdFx0XHRmbGV4OiBub25lO1xyXG5cdFx0XHRtaW4td2lkdGg6IDM4MHB4O1xyXG5cdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdG1heC13aWR0aDogNTAlO1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0LyogI2lmZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdG1heC13aWR0aDogNTAwcHg7XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cC1tZXNzYWdlLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX3N1Y2Nlc3Mge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2UxZjNkODtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX3N1Y2Nlc3MtdGV4dCB7XHJcblx0XHRjb2xvcjogIzY3QzIzQTtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX3dhcm4ge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZhZWNkODtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX3dhcm4tdGV4dCB7XHJcblx0XHRjb2xvcjogI0U2QTIzQztcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX2Vycm9yIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZGUyZTI7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX19lcnJvci10ZXh0IHtcclxuXHRcdGNvbG9yOiAjRjU2QzZDO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9faW5mbyB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGNkZDO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9faW5mby10ZXh0IHtcclxuXHRcdGNvbG9yOiAjOTA5Mzk5O1xyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///56\n"); /***/ }), /* 57 */ /*!***************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js&mpType=page */ 58);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW1sQixDQUFnQixxbEJBQUcsRUFBQyIsImZpbGUiOiI1Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9ob21lLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaG9tZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///57\n"); /***/ }), /* 58 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 59));\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 60));\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar _default = {\n data: function data() {\n return {\n type: 'center',\n msgType: 'success',\n messageType: 'success',\n messageText: '这是一条成功提示',\n dialogTitle: '',\n value: '',\n dialogContent: '确认开始该笔补货物料?',\n matnr: '',\n dialogType: 0,\n series: [],\n homeViewShow: false,\n infoViewShow: true,\n errorInfoViewShow: false,\n homeMode: [],\n infoMode: [],\n errorInfoMode: [],\n baseInfo: {\n xDistance: 1,\n yDistance: 2,\n xDuration: 3,\n yDuration: 4,\n usedPr: 50,\n used: 3537,\n stockCount: '',\n emptyCount: '',\n noneCount: ''\n },\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n duration: 1000,\n calendar: '',\n ringOpts: {},\n chartsDataLine1: {},\n chartsDataPie2: {},\n fontSize: '',\n height: '',\n showCharts: false,\n ejectShow: false,\n baseIP: '',\n basePort: '',\n baseLedId: '',\n baseCrnId: '',\n baseUrl: '',\n info: null,\n error: null,\n infoType: 0,\n text: '',\n infoText: {\n title: '',\n staNo: \"\",\n matnr: \"\",\n maknx: \"\",\n specs: \"\",\n count: \"\",\n error: \"\"\n },\n swiperList: [],\n inspect: 'inspectRed'\n };\n },\n onShow: function onShow() {\n // 隐藏时间,电量,信号等\n\n plus.navigator.setFullscreen(true);\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n var PROJ = uni.getStorageSync('UPROJ');\n that.baseUrl = PROJ;\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n this.getUrl();\n },\n onLoad: function onLoad() {\n var _this = this;\n setInterval(function () {\n // this.getServerData()\n // this.getDate2()\n // this.getUrl()\n // this.getInfo()\n // this.getError()\n // this.getInfo2()\n // this.getError2()\n _this.getInfo3();\n // this.getInfo4()\n // this.controller()\n }, 1000);\n\n // setInterval(()=>{\n // \tthis.changeErrorShow()\n // },5000)\n\n // setInterval(()=>{\n // \tthis.getServerData()\n // \tthis.initlineChart()\n // \tthis.initPieChart()\n // \tthis.getOther()\n // },600000)\n },\n\n methods: {\n // 日历 服务器\n getDate2: function getDate2() {\n var that = this;\n if (that.commonUrl == 'undefined') {\n return;\n }\n uni.request({\n url: that.commonUrl + \"/monitor/date\",\n method: \"GET\",\n success: function success(result) {\n // console.log(result);\n var res = result.data.data;\n that.calendar = res.year + \"年\" + res.month + \"月\" + res.day + \"日 \" + res.hour + \":\" + res.minute + \":\" + res.second + \" \" + res.week;\n that.currDate = res.year + \"/\" + res.month + \"/\" + res.day;\n },\n fail: function fail(res) {}\n });\n },\n // 开始按钮\n complete: function complete(matnr) {\n this.matnr = matnr;\n this.dialogTitle = \"\\u54C1\\u756A\\uFF1A\".concat(matnr);\n this.dialogType = 1;\n this.dialogContent = '确认开始该笔补货物料?';\n this.$refs.inputDialog.open();\n },\n // 结束按钮\n cancel: function cancel(matnr) {\n this.matnr = matnr;\n this.dialogTitle = \"\\u54C1\\u756A\\uFF1A\".concat(matnr);\n this.dialogType = 2;\n this.dialogContent = '确认完成该笔补货物料?';\n this.$refs.inputDialog.open();\n },\n // 弹窗取消\n dialogClose: function dialogClose() {\n this.$refs.inputDialog.close();\n },\n // 弹窗确认\n dialogConfirm: function dialogConfirm() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/LocDetlReplenishmentController/hand/control/re\",\n method: \"GET\",\n data: {\n matnr: that.matnr,\n type: that.dialogType\n },\n success: function success(result) {\n __f__(\"log\", result, \" at pages/home/home.vue:334\");\n var res = result.data;\n if (res.code === 200) {\n that.messageType = 'success';\n that.messageText = \"\\u64CD\\u4F5C\\u6210\\u529F\";\n that.$refs.message.open();\n } else {\n that.messageType = 'error';\n that.messageText = res.msg;\n that.$refs.message.open();\n }\n }\n });\n },\n getUrl: function getUrl() {\n this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + \"/\" + this.baseUrl;\n },\n getServerData: function getServerData() {\n this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line));\n this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie));\n },\n // 获取错误信息\n getInfo2: function getInfo2() {\n var that = this;\n var result = _data.default.dataInfo2;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:只有拣料等信息\n that.infoType = 1;\n if (res.data[0].ioType === 101) {\n that.infoText.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.infoText.title = '检料出库';\n }\n that.infoText.staNo = res.data[0].staNo;\n that.swiperList = res.data[0].matDtos;\n // that.infoText.matnr = res.data[0].matDtos[0].matnr\n // that.infoText.specs = res.data[0].matDtos[0].specs\n // that.infoText.maknx = res.data[0].matDtos[0].maknx\n // that.infoText.count = res.data[0].matDtos[0].count\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n },\n getInfo3: function getInfo3() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/open/loc/query/auth/v1\",\n method: \"GET\",\n data: {\n ledId: that.baseLedId\n },\n success: function success(result) {\n // console.log(result);\n var res = result.data;\n var _iterator = _createForOfIteratorHelper(res.data),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var k = _step.value;\n if (k.inspect == 1) {\n k['inspectSts'] = 'inspectWhite';\n } else {\n k['inspectSts'] = 'inspectRed';\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n that.swiperList = res.data;\n }\n });\n },\n getInfo4: function getInfo4() {\n var result = _data.default.dataError3;\n var res = result.data;\n var _iterator2 = _createForOfIteratorHelper(res.data),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var k = _step2.value;\n if (k.inspect == 1) {\n k['inspectSts'] = 'inspectWhite';\n } else {\n k['inspectSts'] = 'inspectRed';\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n this.swiperList = res.data;\n },\n getError2: function getError2() {\n var that = this;\n var result = _data.default.dataError2;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n var errorInfo = res.data;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"异常\";\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"异常\";\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n },\n getInfo: function getInfo() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/led\",\n method: \"GET\",\n data: {\n ledId: that.baseLedId\n },\n success: function success(result) {\n // console.log(result);\n var res = result.data;\n if (res.data && res.data !== \"\") {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:只有拣料等信息\n that.infoType = 1;\n if (res.data[0].ioType === 101) {\n that.infoText.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.infoText.title = '检料出库';\n } else if (res.data[0].ioType === 107) {\n that.infoText.title = '盘点出库';\n }\n that.infoText.staNo = res.data[0].staNo;\n that.swiperList = res.data[0].matDtos;\n // that.infoText.matnr = res.data[0].matDtos[0].matnr\n // that.infoText.specs = res.data[0].matDtos[0].specs\n // that.infoText.maknx = res.data[0].matDtos[0].maknx\n // that.infoText.count = res.data[0].matDtos[0].count\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n }\n });\n },\n getError: function getError() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/led/error\",\n data: {\n ledId: that.baseLedId\n },\n method: \"GET\",\n success: function success(result) {\n __f__(\"log\", result, \" at pages/home/home.vue:484\");\n var res = result.data;\n if (res.data && res.data !== \"\") {\n var errorInfo = res.data;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"其他信息\";\n // that.infoText.title = \"异常\"\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"其他信息\";\n // that.infoText.title = \"异常\"\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n }\n });\n },\n // 控制器\n controller: function controller() {\n var _this2 = this;\n switch (this.infoType) {\n // 有信息 但 没有错误信息\n case 1:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.infoViewShow = true;\n _this2.infoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.errorInfoViewShow) {\n this.errorInfoViewShow = false;\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.infoViewShow = true;\n _this2.infoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n // 有信息 且 有错误信息\n case 2:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n // 有信息 且 有错误信息\n case 3:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n default:\n if (this.errorInfoViewShow) {\n this.errorInfoViewShow = false;\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n }\n },\n // 主屏幕\n handle: function handle(type) {\n this.homeViewShow = !this.homeViewShow;\n this.modeClass = type;\n },\n // 拣料\n handle1: function handle1(type) {\n this.infoViewShow = !this.infoViewShow;\n this.modeClass = type;\n },\n // 异常\n handle2: function handle2(type) {\n this.errorInfoViewShow = !this.errorInfoViewShow;\n this.modeClass = type;\n },\n // 配置\n ejected: function ejected() {\n this.ejectShow = true;\n },\n // 取消配置\n ejectClose: function ejectClose() {\n this.ejectShow = false;\n },\n // 确认配置\n ejectConfirm: function ejectConfirm() {\n uni.setStorageSync('BaseIp', this.baseIP);\n uni.setStorageSync('BaseLedId', this.baseLedId);\n uni.setStorageSync('BasePort', this.basePort);\n uni.setStorageSync('BaseCrnId', this.baseCrnId);\n uni.setStorageSync('UPROJ', this.baseUrl);\n this.getUrl();\n this.ejectShow = false;\n },\n // 日历\n getDate: function getDate() {\n var dt = new Date();\n var year, month, day, hours, minutes, seconds, weeks;\n year = dt.getFullYear();\n month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n weeks = dt.getDay();\n switch (weeks) {\n case 0:\n weeks = \"星期日\";\n break;\n case 1:\n weeks = \"星期一\";\n break;\n case 2:\n weeks = \"星期二\";\n break;\n case 3:\n weeks = \"星期三\";\n break;\n case 4:\n weeks = \"星期四\";\n break;\n case 5:\n weeks = \"星期五\";\n break;\n default:\n weeks = \"星期六\";\n }\n this.calendar = year + \"年\" + month + \"月\" + day + \"日 \" + hours + \":\" + minutes + \":\" + seconds + \" \" + weeks;\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(); // 获取当前时间\n date.setDate(date.getDate() + value); // 设置天数 -1 天\n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\n },\n /*************** 折线图 *****************************************************************************************************/initlineChart: function initlineChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/line/charts\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];\n that.chartsData.Line.series = res.data.rows;\n }\n }\n });\n },\n /*************** 饼图 *****************************************************************************************************/initPieChart: function initPieChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/loc/rep\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Pie.series[0].data = res.data.pie;\n that.baseInfo.stockCount = res.data.stockCunt;\n that.baseInfo.emptyCount = res.data.emptyCount;\n that.baseInfo.noneCount = res.data.noneCount;\n that.baseInfo.used = res.data.used;\n that.baseInfo.usedPr = res.data.usedPr;\n }\n }\n });\n },\n getOther: function getOther() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/other\",\n data: {\n crnId: that.baseCrnId,\n ledId: that.baseLedId\n },\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.baseInfo.xDistance = res.data.xDistance;\n that.baseInfo.yDistance = res.data.yDistance;\n that.baseInfo.xDuration = res.data.xDuration;\n that.baseInfo.yDuration = res.data.yDuration;\n } else if (res.code === 403) {} else {}\n }\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwidHlwZSIsIm1zZ1R5cGUiLCJtZXNzYWdlVHlwZSIsIm1lc3NhZ2VUZXh0IiwiZGlhbG9nVGl0bGUiLCJ2YWx1ZSIsImRpYWxvZ0NvbnRlbnQiLCJtYXRuciIsImRpYWxvZ1R5cGUiLCJzZXJpZXMiLCJob21lVmlld1Nob3ciLCJpbmZvVmlld1Nob3ciLCJlcnJvckluZm9WaWV3U2hvdyIsImhvbWVNb2RlIiwiaW5mb01vZGUiLCJlcnJvckluZm9Nb2RlIiwiYmFzZUluZm8iLCJ4RGlzdGFuY2UiLCJ5RGlzdGFuY2UiLCJ4RHVyYXRpb24iLCJ5RHVyYXRpb24iLCJ1c2VkUHIiLCJ1c2VkIiwic3RvY2tDb3VudCIsImVtcHR5Q291bnQiLCJub25lQ291bnQiLCJjaGFydHNEYXRhIiwiZHVyYXRpb24iLCJjYWxlbmRhciIsInJpbmdPcHRzIiwiY2hhcnRzRGF0YUxpbmUxIiwiY2hhcnRzRGF0YVBpZTIiLCJmb250U2l6ZSIsImhlaWdodCIsInNob3dDaGFydHMiLCJlamVjdFNob3ciLCJiYXNlSVAiLCJiYXNlUG9ydCIsImJhc2VMZWRJZCIsImJhc2VDcm5JZCIsImJhc2VVcmwiLCJpbmZvIiwiZXJyb3IiLCJpbmZvVHlwZSIsInRleHQiLCJpbmZvVGV4dCIsInRpdGxlIiwic3RhTm8iLCJtYWtueCIsInNwZWNzIiwiY291bnQiLCJzd2lwZXJMaXN0IiwiaW5zcGVjdCIsIm9uU2hvdyIsInBsdXMiLCJtb3VudGVkIiwidGhhdCIsIm9uTG9hZCIsInNldEludGVydmFsIiwibWV0aG9kcyIsImdldERhdGUyIiwidW5pIiwidXJsIiwibWV0aG9kIiwic3VjY2VzcyIsImZhaWwiLCJjb21wbGV0ZSIsImNhbmNlbCIsImRpYWxvZ0Nsb3NlIiwiZGlhbG9nQ29uZmlybSIsImdldFVybCIsImdldFNlcnZlckRhdGEiLCJnZXRJbmZvMiIsImdldEluZm8zIiwibGVkSWQiLCJyZXMiLCJrIiwiZ2V0SW5mbzQiLCJnZXRFcnJvcjIiLCJnZXRJbmZvIiwiZ2V0RXJyb3IiLCJjb250cm9sbGVyIiwic2V0VGltZW91dCIsImhhbmRsZSIsImhhbmRsZTEiLCJoYW5kbGUyIiwiZWplY3RlZCIsImVqZWN0Q2xvc2UiLCJlamVjdENvbmZpcm0iLCJnZXREYXRlIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91cnMiLCJtaW51dGVzIiwic2Vjb25kcyIsIndlZWtzIiwiZ2V0RGF0ZUZvcm1hdCIsImRhdGUiLCJpbml0bGluZUNoYXJ0IiwiaW5pdFBpZUNoYXJ0IiwiZ2V0T3RoZXIiLCJjcm5JZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW1LQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQUM7UUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBeEM7UUFDQXlDO1FBQ0FDO1FBQ0FDO1FBQ0FSO01BQ0E7TUFDQVMsY0FFQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTs7SUFFQUM7RUFFQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBQztJQUNBQTtJQUNBQTtJQUNBQTtJQUNBQTtJQUNBO0VBQ0E7RUFDQUM7SUFBQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7O0lBRUE7SUFDQTtJQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNBOztFQUNBQztJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7VUFDQTtVQUNBO1VBQ0FSO1VBQ0FBO1FBQ0E7UUFDQVMsMEJBQ0E7TUFFQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQVI7UUFDQUM7UUFDQUM7UUFDQWhFO1VBQUFRO1VBQUFQO1FBQUE7UUFDQWdFO1VBQ0E7VUFDQTtVQUNBO1lBQ0FSO1lBQ0FBO1lBQ0FBO1VBQ0E7WUFDQUE7WUFDQUE7WUFDQUE7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBYztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0E7UUFDQWhCO1FBQ0E7VUFDQUE7UUFDQTtVQUNBQTtRQUNBO1FBQ0FBO1FBQ0FBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtRQUNBQTtNQUNBO0lBQ0E7SUFDQWlCO01BQ0E7TUFDQVo7UUFDQUM7UUFDQUM7UUFDQWhFO1VBQUEyRTtRQUFBO1FBQ0FWO1VBQ0E7VUFDQTtVQUFBLDJDQUNBVztZQUFBO1VBQUE7WUFBQTtjQUFBO2NBQ0E7Z0JBQ0FDO2NBQ0E7Z0JBQ0FBO2NBQ0E7WUFDQTtVQUFBO1lBQUE7VUFBQTtZQUFBO1VBQUE7VUFDQXBCO1FBQ0E7TUFDQTtJQUNBO0lBQ0FxQjtNQUNBO01BQ0E7TUFBQSw0Q0FDQUY7UUFBQTtNQUFBO1FBQUE7VUFBQTtVQUNBO1lBQ0FDO1VBQ0E7WUFDQUE7VUFFQTtRQUNBO01BQUE7UUFBQTtNQUFBO1FBQUE7TUFBQTtNQUNBO0lBQ0E7SUFDQUU7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQXRCO1VBQ0FBO1VBQ0FBO1VBQ0E7UUFDQTtRQUNBQTtRQUNBQTtRQUNBQTtNQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0FBO01BQ0E7SUFDQTtJQUNBdUI7TUFDQTtNQUNBbEI7UUFDQUM7UUFDQUM7UUFDQWhFO1VBQUEyRTtRQUFBO1FBQ0FWO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7Y0FDQTtZQUNBO1lBQ0E7WUFDQVI7WUFDQTtjQUNBQTtZQUNBO2NBQ0FBO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBQTtZQUNBQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1VBQ0E7WUFDQTtjQUNBO1lBQ0E7WUFDQUE7VUFDQTtRQUNBO01BQ0E7SUFFQTtJQUNBd0I7TUFDQTtNQUNBbkI7UUFDQUM7UUFDQS9EO1VBQUEyRTtRQUFBO1FBQ0FYO1FBQ0FDO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtjQUNBUjtjQUNBQTtjQUNBO2NBQ0FBO2NBQ0E7WUFDQTtZQUNBQTtZQUNBQTtZQUNBO1lBQ0FBO1VBQ0E7WUFDQTtjQUNBO1lBQ0E7WUFDQUE7VUFDQTtRQUNBO01BQ0E7SUFFQTtJQUNBO0lBQ0F5QjtNQUFBO01BQ0E7UUFDQTtRQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FDO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7VUFFQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1VBQ0E7TUFBQTtJQUdBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTNCO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQTRCO01BQ0E7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBO1FBQ0E7VUFBQUE7VUFBQTtRQUNBO1VBQUFBO1VBQUE7UUFDQTtVQUFBQTtVQUFBO1FBQ0E7VUFBQUE7VUFBQTtRQUNBO1VBQUFBO1VBQUE7UUFDQTtVQUFBQTtVQUFBO1FBQ0E7VUFBQUE7TUFBQTtNQUVBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQSwySEFDQUM7TUFDQTtNQUNBdEM7UUFDQUM7UUFDQUM7UUFDQUM7VUFDQTtVQUNBO1lBQ0FSLG1DQUNBQSxrR0FDQUEsZ0dBQ0FBO1lBQ0FBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQSwwSEFDQTRDO01BQ0E7TUFDQXZDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0E7VUFDQTtZQUNBUjtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E2QztNQUNBO01BQ0F4QztRQUNBQztRQUNBL0Q7VUFDQXVHO1VBQ0E1QjtRQUNBO1FBQ0FWO1VBQ0E7VUFDQTtZQUNBUjtZQUNBQTtZQUNBQTtZQUNBQTtVQUNBLDhCQUVBLFFBRUE7UUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUVBO0FBQUEsMkIiLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgICA8dmlldyBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDwhLS0g5YWo5p2/L+aLo+aWmeS/oeaBryAtLT5cclxuICAgICAgICA8dW5pLXRyYW5zaXRpb24gOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6bW9kZS1jbGFzcz1cImluZm9Nb2RlXCIgOnNob3c9XCJpbmZvVmlld1Nob3dcIj5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJob21lLXZpZXdcIj5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaGVhZFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkLWxlZnRcIiBAY2xpY2s9XCJlamVjdGVkKClcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImhlYWQtbWlkXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IHN0eWxlPVwiei1pbmRleDogOTk5O1wiPuihpei0p+WNleWIl+ihqDwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGVhZC1yaWdodFwiPjwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwhLS0g5pel5Y6GIC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8dmlldyBjbGFzcz1cInRpbWUtdG9vbHNcIj57e2NhbGVuZGFyfX08L3ZpZXc+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8dmlldyBjbGFzcz1cImJ1dHRvbi1sZWZ0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIiBAY2xpY2s9XCJlamVjdGVkKClcIj48L3ZpZXc+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSDkuLvkvZMgLS0+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImluZm8tbWFpblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaW5mby1ib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHktYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDmlofmnKzlrrnlmaggLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInRleHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gaGVhZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInN3aXBlci1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaXRlbS1ib3gxXCIgc3R5bGU9XCJ3aWR0aDogNSU7XCI+5bqP5Y+3PC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cIml0ZW0tYm94MVwiIHN0eWxlPVwid2lkdGg6IDIwJTtcIj7lk4Hnlao8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaXRlbS1ib3gxXCIgc3R5bGU9XCJ3aWR0aDogMTUlO1wiPuW+heihpei0p+aVsOmHjzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWJveDFcIiBzdHlsZT1cIndpZHRoOiAxNSU7XCI+5bey6KGl6LSn5pWw6YePPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0tYm94MVwiIHN0eWxlPVwid2lkdGg6IDE1JTtcIj7ooaXotKfnirbmgIE8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1ib3gxXCIgc3R5bGU9XCJ3aWR0aDogMTAlO1wiPuWIm+W7uuaXtumXtDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWJveDFcIiBzdHlsZT1cIndpZHRoOiAxMCU7XCI+6aKE6K6h5a6M5oiQ5pe26Ze0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0tYm94MVwiIHN0eWxlPVwid2lkdGg6IDkuNSU7XCI+5pON5L2cPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGJvZHkgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJzd2lwZXItYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHN3aXBlciDkuIDkupvor7TmmI5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lyY3VsYXIg5piv5ZCm6YeH55So6KGU5o6l5ruR5Yqo77yM5Y2z5pKt5pS+5Yiw5pyr5bC+5ZCO6YeN5paw5Zue5Yiw5byA5aS0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsIOa7keWKqOaWueWQkeaYr+WQpuS4uue6teWQkSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheS1tdWx0aXBsZS1pdGVtcyDlkIzml7bmmL7npLrnmoTmu5HlnZfmlbDph48gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzd2lwZXIgY2xhc3M9XCJzd2lwZXItYm9keS1tYWluXCIgdmVydGljYWw9XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXktbXVsdGlwbGUtaXRlbXM9XCIxMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcmN1bGFyPVwidHJ1ZVwiIDphdXRvcGxheT1cInRydWVcIiA6aW50ZXJ2YWw9XCIzMDAwXCIgOmR1cmF0aW9uPVwiMTAwMFwiIGRpc2FibGUtdG91Y2g9J3RydWUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN3aXBlci1pdGVtIDpjbGFzcz1cIml0ZW0uaW5zcGVjdFN0c1wiIGNsYXNzPVwic3dpcGVyLWl0ZW1cIiAgdi1mb3I9XCIoaXRlbSxpKSBpbiBzd2lwZXJMaXN0XCIgOmtleT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cIml0ZW0tYm94XCIgc3R5bGU9XCJ3aWR0aDogNSU7XCIgPnt7aSsxfX08L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpdGVtLWJveFwiIHN0eWxlPVwid2lkdGg6IDIwJTtcIj57e2l0ZW0ubWFrdHh9fTwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cIml0ZW0tYm94XCIgc3R5bGU9XCJ3aWR0aDogMTUlO1wiPnt7aXRlbS5zdG9yZVJlcGxlbmlzaG1lbnR9fTwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cIml0ZW0tYm94XCIgc3R5bGU9XCJ3aWR0aDogMTUlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgc3R5bGU9XCJjb2xvcjogIzI1RTUxRSA7XCIgIHYtaWY9XCJpdGVtLmluc3BlY3RTdHMgPT0gJ2luc3BlY3RXaGl0ZSdcIj57e2l0ZW0uc3RvcmVBZGR9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgdi1pZj1cIml0ZW0uaW5zcGVjdFN0cyA9PSAnaW5zcGVjdFJlZCdcIj57e2l0ZW0uc3RvcmVBZGR9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cIml0ZW0tYm94XCIgc3R5bGU9XCJ3aWR0aDogMTUlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJlQmF0Y2gxXCIgdi1pZj1cIml0ZW0uYmVCYXRjaCA9PSAyIFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7aXRlbS5iZUJhdGNoJH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJiZUJhdGNoMlwiIHYtaWY9XCJpdGVtLmJlQmF0Y2ggIT0gMiBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7e2l0ZW0uYmVCYXRjaCR9fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHRleHQgY2xhc3M9XCJiZUJhdGNoM1wiIHYtaWY9XCJpdGVtLmluc3BlY3RTdHMgIT0gJ2luc3BlY3RXaGl0ZSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7e2l0ZW0uYmVCYXRjaCR9fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3RleHQ+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWJveFwiIHN0eWxlPVwid2lkdGg6IDEwJTtcIj57e2l0ZW0uYXBwZVRpbWUkfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0tYm94XCIgc3R5bGU9XCJ3aWR0aDogMTAlO1wiPnt7aXRlbS5hcHBlVGltZSR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1ib3hcIiBzdHlsZT1cIndpZHRoOiA5LjUlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwic3RhcnQtYnRuXCIgc2l6ZT1cIm1pbmlcIiB2LWlmPVwiaXRlbS5iZUJhdGNoID09IDFcIiBAY2xpY2s9XCJjb21wbGV0ZShpdGVtLm1hdG5yKVwiPuW8gOWnizwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiZW5kLWJ0blwiIHNpemU9XCJtaW5pXCIgdi1pZj1cIml0ZW0uYmVCYXRjaCA9PSAyXCIgQGNsaWNrPVwiY2FuY2VsKGl0ZW0ubWF0bnIpXCI+5a6M5oiQPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N3aXBlci1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N3aXBlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwveS1ib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPC91bmktdHJhbnNpdGlvbj5cclxuICAgICAgICA8IS0tIOW8guW4uOS/oeaBryAtLT5cclxuICAgICAgICA8dW5pLXRyYW5zaXRpb24gOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6bW9kZS1jbGFzcz1cImVycm9ySW5mb01vZGVcIiA6c2hvdz1cImVycm9ySW5mb1ZpZXdTaG93XCI+XHJcbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZXJyb3ItaW5mby12aWV3XCI+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGV4dD57e2luZm9UZXh0LnRpdGxlfX08L3RleHQ+XHJcbiAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8IS0tIOaXpeWOhiAtLT5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7Y2FsZW5kYXJ9fTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIj48L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiPjwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwhLS0g5Li75L2TIC0tPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpbmZvLW1haW5cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpbmZvLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8eS1ib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImluZm8tYm94LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZsZXgtY29sIGluZm8tYm94LXRleHQtaXRlbVwiPnt7aW5mb1RleHQuZXJyb3J9fTwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC95LWJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICA8L3VuaS10cmFuc2l0aW9uPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0g6Ieq5a6a5LmJ5by55Ye65bGCIC0tPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwiZWplY3QtbWFza1wiIHYtc2hvdz1cImVqZWN0U2hvd1wiPlxyXG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cImVqZWN0XCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIOW8ueWHunRpdGxlIC0tPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJlamVjdC10aXRsZVwiPuS/ruaUuSAvIOmFjee9rjwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwhLS0gaW5wdXQgLS0+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImVqZWN0LWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZGVzY1wiPmlw77yaPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZUlQXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZGVzY1wiPnBvcnTvvJo8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlUG9ydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImRlc2NcIj5sZWRJZO+8mjwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VMZWRJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImRlc2NcIj5Dcm5JZO+8mjwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VDcm5JZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImRlc2NcIj5VcmzvvJo8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlVXJsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8IS0tIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZWplY3QtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJidXR0b24taXRlbVwiIEBjbGljaz1cImVqZWN0Q2xvc2VcIj7lj5Yg5raIPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiYnV0dG9uLWl0ZW1cIiBAY2xpY2s9XCJlamVjdENvbmZpcm1cIj7noa4g6K6kPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPC92aWV3PlxyXG5cdFx0PCEtLSDnoa7orqTmmK/lkKbmk43kvZwgLS0+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJpbnB1dERpYWxvZ1wiIHR5cGU9XCJkaWFsb2dcIj5cclxuXHRcdFx0XHQ8dW5pLXBvcHVwLWRpYWxvZyA6dHlwZT1cIm1zZ1R5cGVcIiA6dGl0bGU9XCJkaWFsb2dUaXRsZVwiIDpjb250ZW50PVwiZGlhbG9nQ29udGVudFwiIEBjb25maXJtPVwiZGlhbG9nQ29uZmlybVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdEBjbG9zZT1cImRpYWxvZ0Nsb3NlXCI+PC91bmktcG9wdXAtZGlhbG9nPlxyXG5cdFx0XHQ8L3VuaS1wb3B1cD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5pON5L2c5oiQ5Yqf5aSx6LSl5by556qXIC0tPlxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDwhLS0g5o+Q56S65L+h5oGv5by556qXIC0tPlxyXG5cdFx0XHQ8dW5pLXBvcHVwIHJlZj1cIm1lc3NhZ2VcIiB0eXBlPVwibWVzc2FnZVwiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtbWVzc2FnZSA6dHlwZT1cIm1lc3NhZ2VUeXBlXCIgOm1lc3NhZ2U9XCJtZXNzYWdlVGV4dFwiIDpkdXJhdGlvbj1cIjMwMDBcIj48L3VuaS1wb3B1cC1tZXNzYWdlPlxyXG5cdFx0XHQ8L3VuaS1wb3B1cD5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcbiBcclxuPHNjcmlwdD5cclxuICAgIGltcG9ydCBkZW1vZGF0YSBmcm9tICdAL21vY2tkYXRhL2RlbW9kYXRhLmpzb24nO1xyXG4gICAgaW1wb3J0IHljcWRhdGEgZnJvbSAnQC9wYWdlcy9pbmRleC9kYXRhLmpzb24nO1xyXG4gICAgZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgICAgIGRhdGEoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcblx0XHRcdFx0dHlwZTogJ2NlbnRlcicsXHJcblx0XHRcdFx0bXNnVHlwZTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdG1lc3NhZ2VUeXBlOiAnc3VjY2VzcycsXHJcblx0XHRcdFx0bWVzc2FnZVRleHQ6ICfov5nmmK/kuIDmnaHmiJDlip/mj5DnpLonLFxyXG5cdFx0XHRcdGRpYWxvZ1RpdGxlOiAnJyxcclxuXHRcdFx0XHR2YWx1ZTogJycsXHJcblx0XHRcdFx0ZGlhbG9nQ29udGVudDogJ+ehruiupOW8gOWni+ivpeeslOihpei0p+eJqeaWme+8nycsXHJcblx0XHRcdFx0bWF0bnI6ICcnLFxyXG5cdFx0XHRcdGRpYWxvZ1R5cGU6IDAsXHJcbiAgICAgICAgICAgICAgICBzZXJpZXM6IFtdLFxyXG4gICAgICAgICAgICAgICAgaG9tZVZpZXdTaG93OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGluZm9WaWV3U2hvdzogdHJ1ZSAgICAsXHJcbiAgICAgICAgICAgICAgICBlcnJvckluZm9WaWV3U2hvdzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBob21lTW9kZTogW10sXHJcbiAgICAgICAgICAgICAgICBpbmZvTW9kZTogW10sXHJcbiAgICAgICAgICAgICAgICBlcnJvckluZm9Nb2RlOiBbXSxcclxuICAgICAgICAgICAgICAgIGJhc2VJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgeERpc3RhbmNlOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgIHlEaXN0YW5jZTogMixcclxuICAgICAgICAgICAgICAgICAgICB4RHVyYXRpb246IDMsXHJcbiAgICAgICAgICAgICAgICAgICAgeUR1cmF0aW9uOiA0LFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZWRQcjogNTAsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlZDogMzUzNyxcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja0NvdW50OiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBlbXB0eUNvdW50OiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBub25lQ291bnQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNoYXJ0c0RhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBcIkxpbmVcIjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNhdGVnb3JpZXNcIjogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2VyaWVzXCI6IFtdXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBcIlBpZVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2VyaWVzXCI6IFt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRhdGFcIjogW11cclxuICAgICAgICAgICAgICAgICAgICAgICAgfV1cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgY2FsZW5kYXI6ICcnLFxyXG4gICAgICAgICAgICAgICAgcmluZ09wdHM6e30sXHJcbiAgICAgICAgICAgICAgICBjaGFydHNEYXRhTGluZTE6IHt9LFxyXG4gICAgICAgICAgICAgICAgY2hhcnRzRGF0YVBpZTI6IHt9LFxyXG4gICAgICAgICAgICAgICAgZm9udFNpemU6ICcnLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnJyxcclxuICAgICAgICAgICAgICAgIHNob3dDaGFydHM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgZWplY3RTaG93OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGJhc2VJUDogJycsXHJcbiAgICAgICAgICAgICAgICBiYXNlUG9ydDogJycsXHJcbiAgICAgICAgICAgICAgICBiYXNlTGVkSWQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgYmFzZUNybklkOiAnJyxcclxuICAgICAgICAgICAgICAgIGJhc2VVcmw6ICcnLFxyXG4gICAgICAgICAgICAgICAgaW5mbzogbnVsbCxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgaW5mb1R5cGU6IDAsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcclxuICAgICAgICAgICAgICAgIGluZm9UZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YU5vOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1hdG5yOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1ha254OiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNwZWNzOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBcIlwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3dpcGVyTGlzdDogW1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XSxcclxuXHRcdFx0XHRpbnNwZWN0OiAnaW5zcGVjdFJlZCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25TaG93KCkge1xyXG4gICAgICAgICAgICAvLyDpmpDol4/ml7bpl7Qs55S16YePLOS/oeWPt+etiVxyXG4gICAgICAgICAgICAvLyAjaWZkZWYgQVBQLVBMVVNcclxuICAgICAgICAgICAgcGx1cy5uYXZpZ2F0b3Iuc2V0RnVsbHNjcmVlbih0cnVlKVxyXG4gICAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICB9LFxyXG4gICAgICAgIG1vdW50ZWQoKSB7XHJcbiAgICAgICAgICAgIGxldCB0aGF0ID0gdGhpc1xyXG4gICAgICAgICAgICBjb25zdCBCYXNlSVAgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcpO1xyXG4gICAgICAgICAgICBjb25zdCBCYXNlTGVkSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcpO1xyXG4gICAgICAgICAgICBjb25zdCBCYXNlUG9ydCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZVBvcnQnKTtcclxuICAgICAgICAgICAgY29uc3QgQmFzZUNybklkID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlQ3JuSWQnKTtcclxuICAgICAgICAgICAgY29uc3QgUFJPSiA9IHVuaS5nZXRTdG9yYWdlU3luYygnVVBST0onKTtcclxuICAgICAgICAgICAgdGhhdC5iYXNlVXJsID0gUFJPSlxyXG4gICAgICAgICAgICB0aGF0LmJhc2VJUCA9IEJhc2VJUFxyXG4gICAgICAgICAgICB0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxyXG4gICAgICAgICAgICB0aGF0LmJhc2VQb3J0ID0gQmFzZVBvcnRcclxuICAgICAgICAgICAgdGhhdC5iYXNlQ3JuSWQgPSBCYXNlQ3JuSWRcclxuICAgICAgICAgICAgdGhpcy5nZXRVcmwoKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25Mb2FkKCkge1xyXG5cdFx0XHRzZXRJbnRlcnZhbCgoKT0+e1xyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0U2VydmVyRGF0YSgpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXREYXRlMigpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRVcmwoKVxyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0SW5mbygpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRFcnJvcigpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRJbmZvMigpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRFcnJvcjIoKVxyXG5cdFx0XHRcdHRoaXMuZ2V0SW5mbzMoKVxyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0SW5mbzQoKVxyXG5cdFx0XHRcdC8vIHRoaXMuY29udHJvbGxlcigpXHJcblx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHJcblx0XHRcdC8vIHNldEludGVydmFsKCgpPT57XHJcblx0XHRcdC8vIFx0dGhpcy5jaGFuZ2VFcnJvclNob3coKVxyXG5cdFx0XHQvLyB9LDUwMDApXHJcblx0XHRcdFxyXG5cdFx0XHQvLyBzZXRJbnRlcnZhbCgoKT0+e1xyXG5cdFx0XHQvLyBcdHRoaXMuZ2V0U2VydmVyRGF0YSgpXHJcblx0XHRcdC8vIFx0dGhpcy5pbml0bGluZUNoYXJ0KClcclxuXHRcdFx0Ly8gXHR0aGlzLmluaXRQaWVDaGFydCgpXHJcblx0XHRcdC8vIFx0dGhpcy5nZXRPdGhlcigpXHJcblx0XHRcdC8vIH0sNjAwMDAwKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWV0aG9kczoge1xyXG5cdFx0XHQvLyDml6XljoYg5pyN5Yqh5ZmoXHJcblx0XHRcdGdldERhdGUyKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGlmKHRoYXQuY29tbW9uVXJsID09ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvZGF0ZVwiLFxyXG5cdFx0XHRcdFx0bWV0aG9kOlwiR0VUXCIsXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGEuZGF0YVxyXG5cdFx0XHRcdFx0XHR0aGF0LmNhbGVuZGFyID0gcmVzLnllYXIgKyBcIuW5tFwiICsgcmVzLm1vbnRoICsgXCLmnIhcIiArIHJlcy5kYXkgKyBcIuaXpSBcIiArIHJlcy5ob3VyICsgXCI6XCIgKyByZXMubWludXRlICsgXCI6XCIgKyByZXMuc2Vjb25kICsgXCIgXCIgKyByZXMud2Vla1xyXG5cdFx0XHRcdFx0XHR0aGF0LmN1cnJEYXRlID0gcmVzLnllYXIgKyBcIi9cIiArIHJlcy5tb250aCArIFwiL1wiICsgcmVzLmRheVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWwocmVzKSB7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlvIDlp4vmjInpkq5cclxuXHRcdFx0Y29tcGxldGUobWF0bnIpIHtcclxuXHRcdFx0XHR0aGlzLm1hdG5yID0gbWF0bnJcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ1RpdGxlID0gYOWTgeeVqu+8miR7bWF0bnJ9YFxyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9IDFcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ0NvbnRlbnQgPSAn56Gu6K6k5byA5aeL6K+l56yU6KGl6LSn54mp5paZ77yfJ1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMuaW5wdXREaWFsb2cub3BlbigpXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOe7k+adn+aMiemSrlxyXG5cdFx0XHRjYW5jZWwobWF0bnIpIHtcclxuXHRcdFx0XHR0aGlzLm1hdG5yID0gbWF0bnJcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ1RpdGxlID0gYOWTgeeVqu+8miR7bWF0bnJ9YFxyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9IDJcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ0NvbnRlbnQgPSAn56Gu6K6k5a6M5oiQ6K+l56yU6KGl6LSn54mp5paZ77yfJ1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMuaW5wdXREaWFsb2cub3BlbigpXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOW8ueeql+WPlua2iFxyXG5cdFx0XHRkaWFsb2dDbG9zZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLmlucHV0RGlhbG9nLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5by556qX56Gu6K6kXHJcblx0XHRcdGRpYWxvZ0NvbmZpcm0oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdCAgICB1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvTG9jRGV0bFJlcGxlbmlzaG1lbnRDb250cm9sbGVyL2hhbmQvY29udHJvbC9yZVwiLFxyXG5cdFx0XHRcdCAgICBtZXRob2Q6XCJHRVRcIixcclxuXHRcdFx0XHQgICAgZGF0YToge21hdG5yOnRoYXQubWF0bnIsdHlwZTogdGhhdC5kaWFsb2dUeXBlfSxcclxuXHRcdFx0XHQgICAgc3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcclxuXHRcdFx0XHQgICAgICAgIHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQubWVzc2FnZVR5cGUgPSAnc3VjY2VzcydcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1lc3NhZ2VUZXh0ID0gYOaTjeS9nOaIkOWKn2BcclxuXHRcdFx0XHRcdFx0XHR0aGF0LiRyZWZzLm1lc3NhZ2Uub3BlbigpXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5tZXNzYWdlVHlwZSA9ICdlcnJvcidcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1lc3NhZ2VUZXh0ID0gcmVzLm1zZ1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuJHJlZnMubWVzc2FnZS5vcGVuKClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuICAgICAgICAgICAgZ2V0VXJsKCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25VcmwgPSB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBvcnQgKyBcIi9cIiArdGhpcy5iYXNlVXJsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGdldFNlcnZlckRhdGEoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJ0c0RhdGFMaW5lMT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hhcnRzRGF0YS5MaW5lKSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhcnRzRGF0YVBpZTI9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNoYXJ0c0RhdGEuUGllKSlcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g6I635Y+W6ZSZ6K+v5L+h5oGvXHJcbiAgICAgICAgICAgIGdldEluZm8yKCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRoYXQgPSB0aGlzXHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0geWNxZGF0YS5kYXRhSW5mbzJcclxuICAgICAgICAgICAgICAgIHZhciAgICByZXMgPSByZXN1bHQuZGF0YVxyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuaW5mb1R5cGUgPT0gMiB8fCB0aGF0LmluZm9UeXBlID09IDMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBpbmZvVHlwZTE65Y+q5pyJ5ouj5paZ562J5L+h5oGvXHJcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVHlwZSA9IDFcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVGV4dC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UZXh0LnN0YU5vID0gcmVzLmRhdGFbMF0uc3RhTm9cclxuICAgICAgICAgICAgICAgICAgICB0aGF0LnN3aXBlckxpc3QgPSByZXMuZGF0YVswXS5tYXREdG9zXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC5pbmZvVGV4dC5tYXRuciA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWF0bnJcclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LmluZm9UZXh0LnNwZWNzID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5zcGVjc1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuaW5mb1RleHQubWFrbnggPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1ha254XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC5pbmZvVGV4dC5jb3VudCA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuaW5mb1R5cGUgPT0gMiB8fCB0aGF0LmluZm9UeXBlID09IDMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UeXBlID0gMFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHRnZXRJbmZvMygpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0ICAgIHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9vcGVuL2xvYy9xdWVyeS9hdXRoL3YxXCIsXHJcblx0XHRcdFx0ICAgIG1ldGhvZDpcIkdFVFwiLFxyXG5cdFx0XHRcdCAgICBkYXRhOiB7bGVkSWQ6dGhhdC5iYXNlTGVkSWR9LFxyXG5cdFx0XHRcdCAgICBzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGsgb2YgcmVzLmRhdGEpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoay5pbnNwZWN0ID09IDEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGtbJ2luc3BlY3RTdHMnXSA9ICdpbnNwZWN0V2hpdGUnIFxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRrWydpbnNwZWN0U3RzJ10gPSAnaW5zcGVjdFJlZCcgXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0ICAgICAgIHRoYXQuc3dpcGVyTGlzdCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRJbmZvNCgpIHtcclxuXHRcdFx0XHRsZXQgcmVzdWx0ID0geWNxZGF0YS5kYXRhRXJyb3IzXHJcblx0XHRcdFx0dmFyICAgIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0Zm9yIChsZXQgayBvZiByZXMuZGF0YSkge1xyXG5cdFx0XHRcdFx0aWYgKGsuaW5zcGVjdCA9PSAxKSB7XHJcblx0XHRcdFx0XHRcdGtbJ2luc3BlY3RTdHMnXSA9ICdpbnNwZWN0V2hpdGUnIFxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0a1snaW5zcGVjdFN0cyddID0gJ2luc3BlY3RSZWQnIFxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zd2lwZXJMaXN0ID0gcmVzLmRhdGFcclxuXHRcdFx0fSxcclxuICAgICAgICAgICAgZ2V0RXJyb3IyICgpIHtcclxuICAgICAgICAgICAgICAgIGxldCB0aGF0ID0gdGhpc1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHljcWRhdGEuZGF0YUVycm9yMlxyXG4gICAgICAgICAgICAgICAgdmFyICAgIHJlcyA9IHJlc3VsdC5kYXRhXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3JJbmZvID0gcmVzLmRhdGFcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5pbmZvVHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1R5cGUgPSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1RleHQuZXJyb3IgPSBlcnJvckluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1R5cGUgPSAyXHJcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LmluZm9UeXBlID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1R5cGUgPSAwXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGdldEluZm8oKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGhhdCA9IHRoaXNcclxuICAgICAgICAgICAgICAgIHVuaS5yZXF1ZXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6XCJHRVRcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7bGVkSWQ6dGhhdC5iYXNlTGVkSWR9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAgICByZXMgPSByZXN1bHQuZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5mb1R5cGUxOuWPquacieaLo+aWmeetieS/oeaBr1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVHlwZSA9IDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5YWo5p2/5Ye65bqTJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVGV4dC50aXRsZSA9ICfmo4Dmlpnlh7rlupMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UZXh0LnRpdGxlID0gJ+ebmOeCueWHuuW6kydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1RleHQuc3RhTm8gPSByZXMuZGF0YVswXS5zdGFOb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zd2lwZXJMaXN0ID0gcmVzLmRhdGFbMF0ubWF0RHRvc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC5pbmZvVGV4dC5tYXRuciA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWF0bnJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuaW5mb1RleHQuc3BlY3MgPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLnNwZWNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LmluZm9UZXh0Lm1ha254ID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYWtueFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC5pbmZvVGV4dC5jb3VudCA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVHlwZSA9IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZ2V0RXJyb3IoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGhhdCA9IHRoaXNcclxuICAgICAgICAgICAgICAgIHVuaS5yZXF1ZXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWQvZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7bGVkSWQ6dGhhdC5iYXNlTGVkSWR9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDpcIkdFVFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAgICByZXMgPSByZXN1bHQuZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlcnJvckluZm8gPSByZXMuZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuaW5mb1R5cGUgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaW5mb1R5cGUgPSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UeXBlID0gMlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5pbmZvVHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmluZm9UeXBlID0gMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDmjqfliLblmahcclxuICAgICAgICAgICAgY29udHJvbGxlcigpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCh0aGlzLmluZm9UeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5pyJ5L+h5oGvIOS9hiDmsqHmnInplJnor6/kv6Hmga9cclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ob21lVmlld1Nob3cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaG9tZVZpZXdTaG93ID0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaG9tZU1vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluZm9WaWV3U2hvdyA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LDEwMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5lcnJvckluZm9WaWV3U2hvdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluZm9WaWV3U2hvdyA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LDEwMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5pyJ5L+h5oGvIOS4lCDmnInplJnor6/kv6Hmga9cclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhvbWVWaWV3U2hvdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob21lVmlld1Nob3cgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvckluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LDEwMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbmZvVmlld1Nob3cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ySW5mb1ZpZXdTaG93ID0gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAvLyDmnInkv6Hmga8g5LiUIOaciemUmeivr+S/oeaBr1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaG9tZVZpZXdTaG93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvbWVWaWV3U2hvdyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sMTAwMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmluZm9WaWV3U2hvdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmZvVmlld1Nob3cgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvckluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LDEwMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lcnJvckluZm9WaWV3U2hvdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvbWVWaWV3U2hvdyA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LDEwMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbmZvVmlld1Nob3cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvbWVWaWV3U2hvdyA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LDEwMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC8vIOS4u+Wxj+W5lVxyXG4gICAgICAgICAgICBoYW5kbGUodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ob21lVmlld1Nob3cgPSAhdGhpcy5ob21lVmlld1Nob3dcclxuICAgICAgICAgICAgICAgIHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDmi6PmlplcclxuICAgICAgICAgICAgaGFuZGxlMSh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZm9WaWV3U2hvdyA9ICF0aGlzLmluZm9WaWV3U2hvd1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlQ2xhc3MgPSB0eXBlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC8vIOW8guW4uFxyXG4gICAgICAgICAgICBoYW5kbGUyKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSAhdGhpcy5lcnJvckluZm9WaWV3U2hvd1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlQ2xhc3MgPSB0eXBlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC8vIOmFjee9rlxyXG4gICAgICAgICAgICBlamVjdGVkICgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWplY3RTaG93ID0gdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDlj5bmtojphY3nva5cclxuICAgICAgICAgICAgZWplY3RDbG9zZSgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g56Gu6K6k6YWN572uXHJcbiAgICAgICAgICAgIGVqZWN0Q29uZmlybSgpIHtcclxuICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUlwJywgdGhpcy5iYXNlSVApO1xyXG4gICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlTGVkSWQnLCB0aGlzLmJhc2VMZWRJZCk7XHJcbiAgICAgICAgICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyx0aGlzLmJhc2VQb3J0KTtcclxuICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyx0aGlzLmJhc2VDcm5JZCk7XHJcbiAgICAgICAgICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ1VQUk9KJyx0aGlzLmJhc2VVcmwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRVcmwoKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lamVjdFNob3cgPSBmYWxzZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDml6XljoZcclxuICAgICAgICAgICAgZ2V0RGF0ZSgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkdCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgeWVhcixtb250aCxkYXksaG91cnMsbWludXRlcyxzZWNvbmRzLHdlZWtzXHJcbiAgICAgICAgICAgICAgICB5ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICAgICAgICAgIG1vbnRoID0gKGR0LmdldE1vbnRoKCkrMSkgPCAxMCA/ICcwJysgKGR0LmdldE1vbnRoKCkrMSkgOiAoZHQuZ2V0TW9udGgoKSsxKTtcclxuICAgICAgICAgICAgICAgIGRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcclxuICAgICAgICAgICAgICAgIGhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcbiAgICAgICAgICAgICAgICBtaW51dGVzID0gZHQuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRNaW51dGVzKCkgOiBkdC5nZXRNaW51dGVzKCk7XHJcbiAgICAgICAgICAgICAgICBzZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxyXG4gICAgICAgICAgICAgICAgd2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHdlZWtzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOiB3ZWVrcyA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTogd2Vla3MgPSBcIuaYn+acn+S4gFwiOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6IHdlZWtzID0gXCLmmJ/mnJ/kuoxcIjsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOiB3ZWVrcyA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDogd2Vla3MgPSBcIuaYn+acn+Wbm1wiOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6IHdlZWtzID0gXCLmmJ/mnJ/kupRcIjsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCA6IHdlZWtzID0gXCLmmJ/mnJ/lha1cIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXIgPSB5ZWFyICsgXCLlubRcIiArIG1vbnRoICsgXCLmnIhcIiArIGRheSArIFwi5pelIFwiICsgaG91cnMgKyBcIjpcIiArIG1pbnV0ZXMgKyBcIjpcIiArIHNlY29uZHMgKyBcIiBcIiArIHdlZWtzXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGdldERhdGVGb3JtYXQodmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTsvLyDojrflj5blvZPliY3ml7bpl7RcclxuICAgICAgICAgICAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIHZhbHVlKTsvLyDorr7nva7lpKnmlbAgLTEg5aSpXHJcbiAgICAgICAgICAgICAgICB2YXIgbSA9IGRhdGUuZ2V0TW9udGgoKSArIDFcclxuICAgICAgICAgICAgICAgIHZhciBkID0gZGF0ZS5nZXREYXRlKClcclxuICAgICAgICAgICAgICAgIHZhciBuZXdEYXRlID0gbSArICctJyArIGRcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXdEYXRlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC8qKioqKioqKioqKioqKiog5oqY57q/5Zu+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgICAgICAgICBpbml0bGluZUNoYXJ0KCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRoYXQgPSB0aGlzXHJcbiAgICAgICAgICAgICAgICB1bmkucmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGluZS9jaGFydHNcIixcclxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6J0dFVCcsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmNoYXJ0c0RhdGEuTGluZS5jYXRlZ29yaWVzID0gW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTApLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksdGhhdC5nZXREYXRlRm9ybWF0KC04KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMyksdGhhdC5nZXREYXRlRm9ybWF0KC0yKSx0aGF0LmdldERhdGVGb3JtYXQoLTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgwKSxdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmNoYXJ0c0RhdGEuTGluZS5zZXJpZXMgPSByZXMuZGF0YS5yb3dzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvKioqKioqKioqKioqKioqIOmlvOWbviAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuICAgICAgICAgICAgaW5pdFBpZUNoYXJ0KCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRoYXQgPSB0aGlzXHJcbiAgICAgICAgICAgICAgICB1bmkucmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jL3JlcFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDonR0VUJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuY2hhcnRzRGF0YS5QaWUuc2VyaWVzWzBdLmRhdGEgPSByZXMuZGF0YS5waWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuYmFzZUluZm8uc3RvY2tDb3VudCA9IHJlcy5kYXRhLnN0b2NrQ3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5iYXNlSW5mby5lbXB0eUNvdW50ID0gcmVzLmRhdGEuZW1wdHlDb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5iYXNlSW5mby5ub25lQ291bnQgPSByZXMuZGF0YS5ub25lQ291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuYmFzZUluZm8udXNlZCA9IHJlcy5kYXRhLnVzZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuYmFzZUluZm8udXNlZFByID0gcmVzLmRhdGEudXNlZFByXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXRPdGhlcigpIHtcclxuICAgICAgICAgICAgICAgIGxldCB0aGF0ID0gdGhpc1xyXG4gICAgICAgICAgICAgICAgdW5pLnJlcXVlc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL290aGVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjcm5JZDogdGhhdC5iYXNlQ3JuSWQsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWRJZDogdGhhdC5iYXNlTGVkSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuYmFzZUluZm8ueERpc3RhbmNlID0gcmVzLmRhdGEueERpc3RhbmNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmJhc2VJbmZvLnlEaXN0YW5jZSA9IHJlcy5kYXRhLnlEaXN0YW5jZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5iYXNlSW5mby54RHVyYXRpb24gPSByZXMuZGF0YS54RHVyYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuYmFzZUluZm8ueUR1cmF0aW9uID0gcmVzLmRhdGEueUR1cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzLmNvZGUgPT09IDQwMykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgfVxyXG48L3NjcmlwdD5cclxuIFxyXG48c3R5bGU+XHJcbiAgICAvKiBAaW1wb3J0IHVybChcIi4uLy4uL3N0YXRpYy9jc3MvY29tbW9uLmNzc1wiKTsgKi9cclxuICAgIEBpbXBvcnQgdXJsKFwiaG9tZS5jc3NcIik7XHJcbiAgICAvKiDliJcgKi9cclxuICAgIC5mbGV4LWNvbCB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgfVxyXG4gICAgLyog6KGMICovXHJcbiAgICAuZmxleC1yb3cge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmNvbnRhaW5lcntcclxuICAgICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA4Mzg3MDtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICAvKiDkuLvop4blm74gKi9cclxuICAgIC5ob21lLXZpZXcge1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICAgICAgIC8qIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvaGVhZC5wbmcpO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNTB2dyAxMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgKi9cclxuICAgIH1cclxuICAgIC5ob21lLXJpZ2h0IHtcclxuICAgICAgICB3aWR0aDogNTB2dztcclxuICAgICAgICBoZWlnaHQ6IDg5dmg7XHJcbiAgICAgICAgLyogYmFja2dyb3VuZC1jb2xvcjogY2FkZXRibHVlOyAqL1xyXG4gICAgfVxyXG4gICAgLmhvbWUtcmlnaHQtYm94IHtcclxuICAgICAgICB3aWR0aDogOTglO1xyXG4gICAgICAgIGhlaWdodDogOTglO1xyXG4gICAgfVxyXG4gICAgLmhlYWQge1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgICBoZWlnaHQ6IDExdmg7XHJcbiAgICAgICAgZm9udC1zaXplOjN2dztcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG5cdFx0ZGlzcGxheTogZ3JpZDtcclxuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XHJcbiAgICB9XHJcblx0LmhlYWQtbWlkIHtcclxuXHRcdGhlaWdodDogMTB2aDtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvaGVhZC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0fVxyXG5cdC5oZWFkLWxlZnQge1xyXG5cdFx0aGVpZ2h0OiA2dmg7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2hlYWRsZWZ0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDExMCUgMTAwJTtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcclxuXHR9XHJcblx0LmhlYWQtcmlnaHQge1xyXG5cdFx0aGVpZ2h0OiA2dmg7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2hlYWRsZWZ0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDExMCUgMTAwJTtcclxuXHR9XHJcbiAgICAudGltZS10b29scyB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAyJTtcclxuICAgICAgICB0b3A6IDIlO1xyXG4gICAgICAgIGZvbnQtc2l6ZToxdnc7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xyXG4gICAgfVxyXG4gICAgLmJ1dHRvbi1sZWZ0IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9oZWFkbGVmdC5wbmcpO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG4gICAgICAgIHRvcDogMS44JTtcclxuICAgICAgICBsZWZ0OiAyMS4zJTtcclxuICAgICAgICB3aWR0aDogMTMuNSU7XHJcbiAgICAgICAgaGVpZ2h0OiA4LjUlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcclxuICAgIH1cclxuICAgIC5idXR0b24tcmlnaHQge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcbiAgICAgICAgdG9wOiAxLjglO1xyXG4gICAgICAgIGxlZnQ6IDY1JTtcclxuICAgICAgICB3aWR0aDogMTMuNSU7XHJcbiAgICAgICAgaGVpZ2h0OiA4LjUlO1xyXG4gICAgfVxyXG4gICAgLmltZy1ib3gge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIC8qIGJhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7ICovXHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxdnc7XHJcbiAgICB9XHJcbiAgICAuaXRlbS1pbWcge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNSU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIC8qIGJhY2tncm91bmQtY29sb3I6ICMwMGZmZmY7ICovXHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgfVxyXG4gICAgLmRpc3RhbmNlIHtcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIC5pdGVtLWltZyBpbWFnZSB7XHJcbiAgICAgICAgaGVpZ2h0OiA1dnc7XHJcbiAgICAgICAgd2lkdGg6IDV2dztcclxuICAgIH1cclxuICAgIC5wcm9ncmVzc0JhciB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogOSU7XHJcbiAgICAgICAgLyogd2lkdGg6IDEwMCU7ICovXHJcbiAgICAgICAgaGVpZ2h0OiAyMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIzMzc1MTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1dnc7XHJcbiAgICB9XHJcbiAgICAucHJvZ3Jlc3Mge1xyXG4gICAgICAgIC8qIHdpZHRoOiA5MCU7ICovXHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjU3MjI7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXZ3O1xyXG4gICAgfVxyXG4gICAgLmNoYXJ0cy1ib3gge1xyXG4gICAgICB3aWR0aDogODAlO1xyXG4gICAgICBoZWlnaHQ6IDI0dmg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMCU7XHJcbiAgICB9IFxyXG4gICAgLmNoYXJ0cy1ib3gtcmluZyB7XHJcbiAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICBoZWlnaHQ6IDI0dmg7XHJcbiAgICAgICAgLyogYmFja2dyb3VuZC1jb2xvcjogIzAwZmZmZjsgKi9cclxuICAgIH1cclxuICAgIC5zdWItaW5mbyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjV2dztcclxuICAgIH1cclxuICAgIC5zdWItaW5mbyBpbWFnZSB7XHJcbiAgICAgICAgd2lkdGg6IDMuNXZ3O1xyXG4gICAgICAgIGhlaWdodDogMy41dnc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbiAgICBcclxuICAgIC8qIOWFseeUqCAqL1xyXG4gICAgLm1haW4ge1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgICBoZWlnaHQ6IDg4dmg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMXZoO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICAubWlhbi1pdGVtIHtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuICAgIC5taWFuLWl0ZW0tYm94IHtcclxuICAgICAgICB3aWR0aDogOTglO1xyXG4gICAgICAgIGhlaWdodDogOTglO1xyXG4gICAgfVxyXG4gICAgLmJveC1pdGVtIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tdG9wOiA0JTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgfVxyXG4gICAgLml0ZW0tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZToxLjV2dztcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgfVxyXG4gICAgLml0ZW0tc3ViVGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTowLjV2dztcclxuICAgICAgICB0ZXh0LWluZGVudDogMGVtO1xyXG4gICAgfVxyXG4gICAgLml0ZW0tdGV4dCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxdnc7XHJcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDJlbTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzdmg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qIOWFqOadvy/mi6Pmlpnkv6Hmga8gKi9cclxuICAgIC5pbmZvLXZpZXcge1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMHZ3IDEwMHZoO1xyXG4gICAgfVxyXG4gICAgLmluZm8tbWFpbiB7XHJcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICAgIGhlaWdodDogODh2aDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAuaW5mby1ib3gge1xyXG4gICAgICAgIHdpZHRoOiA5OCU7XHJcbiAgICAgICAgaGVpZ2h0OiA5OCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDMyMjQ2O1xyXG4gICAgfVxyXG4gICAgLyog5byC5bi45L+h5oGvICovXHJcbiAgICAuZXJyb3ItaW5mby12aWV3IHtcclxuICAgICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDB2dyAxMDB2aDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyog5by55Ye6OumFjee9ruWMuuWfnyAqL1xyXG4gICAgLmVqZWN0LW1hc2sge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHotaW5kZXg6IDk5OTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgIFxyXG4gICAgfVxyXG4gICAgLmVqZWN0e1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB3aWR0aDogNDB2dztcclxuICAgICAgICBoZWlnaHQ6IDQwdmg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAycmVtO1xyXG4gICAgfVxyXG4gICAgLmVqZWN0LXRpdGxlIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDV2aDtcclxuICAgICAgICBsaW5lLWhlaWdodDogNnZoO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogM3ZoO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgY29sb3I6ICAgICAjNjA2MjY2O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICAgIC5lamVjdC1pbnB1dCB7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICAuaXRlbSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMnZoIDAgMCAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41dnc7XHJcbiAgICAgICAgY29sb3I6ICMzNjM2MzY7XHJcbiAgICB9XHJcbiAgICAuZGVzYyB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgY29sb3I6ICM2MDYyNjY7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICAuaW5wdXQge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAzdmg7XHJcbiAgICAgICAgYm9yZGVyOiAwLjF2aCBzb2xpZCAjY2ZkNGRjO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjAlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xyXG4gICAgfVxyXG4gICAgLmVqZWN0LWlucHV0IGlucHV0IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDN2aDtcclxuICAgICAgICBmb250LXNpemU6IDF2dztcclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIC5lamVjdC1idXR0b24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGhlaWdodDogNnZoO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2dmg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XHJcbiAgICB9XHJcbiAgICAuYnV0dG9uLWl0ZW0ge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41dnc7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGNvbG9yOiAjOTA5Mzk5O1xyXG4gICAgfVxyXG4gICAgLmJ1dHRvbi1pdGVtOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIGNvbG9yOiAjNjdDMjNBO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcclxuICAgIH1cclxuICAgIC5pbmZvLWJveC10ZXh0IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO2FsaWduLWl0ZW1zOiBjZW50ZXI7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAuaW5mby1ib3gtdGV4dC1pdGVtIHtcclxuICAgICAgICBoZWlnaHQ6IDIwJTtmb250LXNpemU6IDh2aDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHQuYmVCYXRjaDEge1xyXG5cdFx0Y29sb3I6ICNmZmJhMDI7XHJcblx0XHRwYWRkaW5nOiA0cnB4IDEwcnB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjhlNjtcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMnJweDtcclxuXHR9XHJcblx0LmJlQmF0Y2gyIHtcclxuXHRcdGNvbG9yOiAjZmY1NDU0O1xyXG5cdFx0cGFkZGluZzogNHJweCAxMHJweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmVkZWQ7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDJycHg7XHJcblx0fVxyXG5cdC5pbnNwZWN0UmVkIHtcclxuXHRcdGNvbG9yOiAjRjEwRjBGO1xyXG5cdH1cclxuXHQuaW5zcGVjdFdoaXRlIHtcclxuXHRcdGNvbG9yOiAjRkZGO1xyXG5cdH1cclxuXHQuaXRlbS1ib3gxIHtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzdkYjJmNztcclxuXHR9XHJcblx0Lml0ZW0tYm94IHtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICMwNzRhOWE7XHJcblx0fVxyXG5cdC5zdGFydC1idG4ge1xyXG5cdFx0Y29sb3I6ICNGRkY7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMTNjZTY2O1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xyXG5cdH1cclxuXHQuZW5kLWJ0biB7XHJcblx0XHRjb2xvcjogI0ZGRjtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMxODkwZmY7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XHJcblx0fVxyXG5cdC5wb3B1cCB7XHJcblx0XHRcclxuXHR9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///58\n"); /***/ }), /* 59 */ /*!******************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/mockdata/demodata.json ***! \******************************************************************/ /*! exports provided: localdata, localdataB, TLine, Scatter, Bubble, Column, ColumnA, Mix, Line, Pie, PieA, Radar, Arcbar1, Arcbar2, Gauge, Candle, CandleColumn, Word, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"localdata\\\":[{\\\"value\\\":35,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":36,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":27,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":31,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":21,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":33,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":24,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":13,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":6,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":34,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":28,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"完成量\\\"}],\\\"localdataB\\\":[{\\\"value\\\":50,\\\"text\\\":\\\"一班\\\"},{\\\"value\\\":30,\\\"text\\\":\\\"二班\\\"},{\\\"value\\\":20,\\\"text\\\":\\\"三班\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"四班\\\"},{\\\"value\\\":8,\\\"text\\\":\\\"五班\\\"}],\\\"TLine\\\":{\\\"series\\\":[{\\\"name\\\":\\\"时间轴1\\\",\\\"data\\\":[[10000,55],[30000,25],[50000,55],[70000,25],[90000,55]]},{\\\"name\\\":\\\"时间轴2\\\",\\\"data\\\":[[0,25],[20000,55],[40000,25],[60000,55],[80000,25]]},{\\\"name\\\":\\\"时间轴3\\\",\\\"data\\\":[[0,55],[15000,25],[30000,55],[45000,25],[60000,55]]}]},\\\"Scatter\\\":{\\\"series\\\":[{\\\"name\\\":\\\"散点一\\\",\\\"data\\\":[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82]]},{\\\"name\\\":\\\"散点二\\\",\\\"data\\\":[[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]]}]},\\\"Bubble\\\":{\\\"series\\\":[{\\\"name\\\":\\\"气泡一\\\",\\\"data\\\":[[95,95,23,\\\"标题1\\\"],[30,55,33,\\\"标题2\\\"]]},{\\\"name\\\":\\\"气泡二\\\",\\\"data\\\":[[130,30,30,\\\"标题3\\\"],[200,90,40,\\\"标题4\\\"]]}]},\\\"Column\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"目标值\\\",\\\"data\\\":[35,36,31,33,13,34]},{\\\"name\\\":\\\"完成量\\\",\\\"data\\\":[18,27,21,24,6,28]}]},\\\"ColumnA\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[15,{\\\"value\\\":20,\\\"color\\\":\\\"#f04864\\\"},45,37,43,34]},{\\\"name\\\":\\\"成交量2\\\",\\\"data\\\":[30,{\\\"value\\\":40,\\\"color\\\":\\\"#facc14\\\"},25,14,34,18]}]},\\\"Mix\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"曲面\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"area\\\",\\\"style\\\":\\\"curve\\\"},{\\\"name\\\":\\\"柱1\\\",\\\"index\\\":1,\\\"data\\\":[40,{\\\"value\\\":30,\\\"color\\\":\\\"#f04864\\\"},55,110,24,58],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"柱2\\\",\\\"index\\\":1,\\\"data\\\":[50,20,75,60,34,38],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"曲线\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"line\\\",\\\"style\\\":\\\"curve\\\",\\\"color\\\":\\\"#1890ff\\\",\\\"disableLegend\\\":true},{\\\"name\\\":\\\"折线\\\",\\\"data\\\":[120,140,105,170,95,160],\\\"type\\\":\\\"line\\\",\\\"color\\\":\\\"#2fc25b\\\"},{\\\"name\\\":\\\"点\\\",\\\"index\\\":2,\\\"data\\\":[100,80,125,150,112,132],\\\"type\\\":\\\"point\\\",\\\"color\\\":\\\"#f04864\\\"}]},\\\"Line\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量A\\\",\\\"data\\\":[35,8,25,37,4,20]},{\\\"name\\\":\\\"成交量B\\\",\\\"data\\\":[70,40,65,100,44,68]}]},\\\"Pie\\\":{\\\"series\\\":[{\\\"name\\\":\\\"一班\\\",\\\"data\\\":50},{\\\"name\\\":\\\"二班\\\",\\\"data\\\":30},{\\\"name\\\":\\\"三班\\\",\\\"data\\\":20},{\\\"name\\\":\\\"四班\\\",\\\"data\\\":18},{\\\"name\\\":\\\"五班\\\",\\\"data\\\":8}]},\\\"PieA\\\":{\\\"series\\\":[{\\\"data\\\":[{\\\"name\\\":\\\"在库\\\",\\\"value\\\":314},{\\\"name\\\":\\\"空\\\",\\\"value\\\":1175},{\\\"name\\\":\\\"禁用\\\",\\\"value\\\":96}]}]},\\\"Radar\\\":{\\\"categories\\\":[\\\"维度1\\\",\\\"维度2\\\",\\\"维度3\\\",\\\"维度4\\\",\\\"维度5\\\",\\\"维度6\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[90,110,165,195,187,172]},{\\\"name\\\":\\\"成交量2\\\",\\\"data\\\":[190,210,105,35,27,102]}]},\\\"Arcbar1\\\":{\\\"series\\\":[{\\\"name\\\":\\\"正确率\\\",\\\"data\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"}]},\\\"Arcbar2\\\":{\\\"series\\\":[{\\\"name\\\":\\\"一班\\\",\\\"data\\\":0.8},{\\\"name\\\":\\\"二班\\\",\\\"data\\\":0.6},{\\\"name\\\":\\\"三班\\\",\\\"data\\\":0.45},{\\\"name\\\":\\\"四班\\\",\\\"data\\\":0.3},{\\\"name\\\":\\\"五班\\\",\\\"data\\\":0.15}]},\\\"Gauge\\\":{\\\"categories\\\":[{\\\"value\\\":0.2,\\\"color\\\":\\\"#1890ff\\\"},{\\\"value\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"},{\\\"value\\\":1,\\\"color\\\":\\\"#f04864\\\"}],\\\"series\\\":[{\\\"name\\\":\\\"完成率\\\",\\\"data\\\":0.66}]},\\\"Candle\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"上证指数\\\",\\\"data\\\":[[2320.26,2302.6,2287.3,2362.94],[2300,2291.3,2288.26,2308.38],[2295.35,2346.5,2295.35,2346.92],[2347.22,2358.98,2337.35,2363.8],[2360.75,2382.48,2347.89,2383.76],[2383.43,2385.42,2371.23,2391.82],[2377.41,2419.02,2369.57,2421.15],[2425.92,2428.15,2417.58,2440.38],[2411,2433.13,2403.3,2437.42],[2432.68,2434.48,2427.7,2441.73],[2430.69,2418.53,2394.22,2433.89],[2416.62,2432.4,2414.4,2443.03],[2441.91,2421.56,2415.43,2444.8],[2420.26,2382.91,2373.53,2427.07],[2383.49,2397.18,2370.61,2397.94],[2378.82,2325.95,2309.17,2378.82],[2322.94,2314.16,2308.76,2330.88],[2320.62,2325.82,2315.01,2338.78],[2313.74,2293.34,2289.89,2340.71],[2297.77,2313.22,2292.03,2324.63],[2322.32,2365.59,2308.92,2366.16],[2364.54,2359.51,2330.86,2369.65],[2332.08,2273.4,2259.25,2333.54],[2274.81,2326.31,2270.1,2328.14],[2333.61,2347.18,2321.6,2351.44],[2340.44,2324.29,2304.27,2352.02],[2326.42,2318.61,2314.59,2333.67],[2314.68,2310.59,2296.58,2320.96],[2309.16,2286.6,2264.83,2333.29],[2282.17,2263.97,2253.25,2286.33],[2255.77,2270.28,2253.31,2276.22],[2269.31,2278.4,2250,2312.08],[2267.29,2240.02,2239.21,2276.05],[2244.26,2257.43,2232.02,2261.31],[2257.74,2317.37,2257.42,2317.86],[2318.21,2324.24,2311.6,2330.81],[2321.4,2328.28,2314.97,2332],[2334.74,2326.72,2319.91,2344.89],[2318.58,2297.67,2281.12,2319.99],[2299.38,2301.26,2289,2323.48],[2273.55,2236.3,2232.91,2273.55],[2238.49,2236.62,2228.81,2246.87],[2229.46,2234.4,2227.31,2243.95],[2234.9,2227.74,2220.44,2253.42],[2232.69,2225.29,2217.25,2241.34],[2196.24,2211.59,2180.67,2212.59],[2215.47,2225.77,2215.47,2234.73],[2224.93,2226.13,2212.56,2233.04],[2236.98,2219.55,2217.26,2242.48],[2218.09,2206.78,2204.44,2226.26],[2199.91,2181.94,2177.39,2204.99],[2169.63,2194.85,2165.78,2196.43],[2195.03,2193.8,2178.47,2197.51],[2181.82,2197.6,2175.44,2206.03],[2201.12,2244.64,2200.58,2250.11],[2236.4,2242.17,2232.26,2245.12],[2242.62,2184.54,2182.81,2242.62],[2187.35,2218.32,2184.11,2226.12],[2213.19,2199.31,2191.85,2224.63],[2203.89,2177.91,2173.86,2210.58],[2170.78,2174.12,2161.14,2179.65],[2179.05,2205.5,2179.05,2222.81],[2212.5,2231.17,2212.5,2236.07],[2227.86,2235.57,2219.44,2240.26],[2242.39,2246.3,2235.42,2255.21],[2246.96,2232.97,2221.38,2247.86],[2228.82,2246.83,2225.81,2247.67],[2247.68,2241.92,2231.36,2250.85],[2238.9,2217.01,2205.87,2239.93],[2217.09,2224.8,2213.58,2225.19],[2221.34,2251.81,2210.77,2252.87],[2249.81,2282.87,2248.41,2288.09],[2286.33,2299.99,2281.9,2309.39],[2297.11,2305.11,2290.12,2305.3],[2303.75,2302.4,2292.43,2314.18],[2293.81,2275.67,2274.1,2304.95],[2281.45,2288.53,2270.25,2292.59],[2286.66,2293.08,2283.94,2301.7],[2293.4,2321.32,2281.47,2322.1],[2323.54,2324.02,2321.17,2334.33],[2316.25,2317.75,2310.49,2325.72],[2320.74,2300.59,2299.37,2325.53],[2300.21,2299.25,2294.11,2313.43],[2297.1,2272.42,2264.76,2297.1],[2270.71,2270.93,2260.87,2276.86],[2264.43,2242.11,2240.07,2266.69],[2242.26,2210.9,2205.07,2250.63],[2190.1,2148.35,2126.22,2190.1]]}]},\\\"CandleColumn\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45]}]},\\\"Word\\\":{\\\"series\\\":[{\\\"name\\\":\\\"跨全端图表\\\",\\\"textSize\\\":25},{\\\"name\\\":\\\"微信小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"支付宝小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"百度小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"QQ小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"头条小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"抖音小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"360小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12}]}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI1OS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59\n"); /***/ }), /* 60 */ /*!*****************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index/data.json ***! \*****************************************************************/ /*! exports provided: dataInfo2, dataError2, dataError3, lineData, pieData, other, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"dataInfo2\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"title\\\":\\\"全板出库\\\",\\\"workNo\\\":8046,\\\"staNo\\\":4,\\\"sourceStaNo\\\":null,\\\"locNo\\\":null,\\\"sourceLocNo\\\":\\\"1500502\\\",\\\"barcode\\\":\\\"80009901\\\",\\\"matDtos\\\":[{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"itnum1\\\":\\\"4500\\\",\\\"itnum2\\\":\\\"补货中\\\",\\\"itnum3\\\":\\\"3200\\\",\\\"itnum4\\\":\\\"2024-2-20 13:13:55\\\",\\\"itnum5\\\":\\\"2024-2-20 13:13:55\\\"}],\\\"emptyMk\\\":false,\\\"ioType\\\":101}]}},\\\"dataError2\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":\\\"\\\"}},\\\"dataError3\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"maktx\\\":\\\"TD00091\\\",\\\"storeReplenishment\\\":\\\"123123\\\",\\\"storeAdd\\\":\\\"123123\\\",\\\"beBatch$\\\":\\\"123\\\",\\\"appeTime$\\\":\\\"2024年3月1日 21点14分\\\",\\\"overTime$\\\":\\\"2024年3月1日 21\\\"},{\\\"maktx\\\":\\\"TD00091\\\",\\\"storeReplenishment\\\":\\\"123123\\\",\\\"storeAdd\\\":\\\"123123\\\",\\\"beBatch$\\\":\\\"123\\\",\\\"appeTime$\\\":\\\"2024年3月1日 21点14分\\\",\\\"overTime$\\\":\\\"2024年3月1日 21\\\",\\\"inspectSts\\\":\\\"inspectRed\\\",\\\"inspect\\\":1}]}},\\\"lineData\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":{\\\"rows\\\":[{\\\"name\\\":\\\"入库数量\\\",\\\"data\\\":[0,0,0,0,1,1,0,0,4,4,0,4]},{\\\"name\\\":\\\"出库数量\\\",\\\"data\\\":[0,0,0,0,0,0,0,0,3,4,0,1]}]}},\\\"pieData\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":{\\\"emptyCount\\\":3582,\\\"noneCount\\\":256,\\\"total\\\":3840,\\\"stockCunt\\\":2,\\\"usedPr\\\":0.1,\\\"used\\\":2,\\\"pie\\\":[{\\\"name\\\":\\\"在库\\\",\\\"value\\\":2},{\\\"name\\\":\\\"空\\\",\\\"value\\\":3582},{\\\"name\\\":\\\"使用\\\",\\\"value\\\":0},{\\\"name\\\":\\\"禁用\\\",\\\"value\\\":256}]}},\\\"other\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":{\\\"xDistance\\\":15651,\\\"xSpeed\\\":32704,\\\"zSpeed\\\":32704,\\\"yDistance\\\":15,\\\"yDuration\\\":0,\\\"ySpeed\\\":32704,\\\"xDuration\\\":0,\\\"content\\\":\\\"\\\",\\\"forkPos\\\":1,\\\"isShow\\\":false}}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI2MC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///60\n"); /***/ }), /* 61 */ /*!***********************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index.vue?mpType=page ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2b59da0e&scoped=true&mpType=page */ 62);\n/* harmony import */ var _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&setup=true&lang=ts&mpType=page */ 64);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"2b59da0e\",\n null,\n false,\n _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUk7QUFDekk7QUFDK0U7QUFDTDs7O0FBRzFFO0FBQzBLO0FBQzFLLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLGlHQUFNO0FBQ1IsRUFBRSx1R0FBTTtBQUNSLEVBQUUsZ0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYjU5ZGEwZSZzY29wZWQ9dHJ1ZSZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIyYjU5ZGEwZVwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy9pbmRleC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///61\n"); /***/ }), /* 62 */ /*!*****************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index.vue?vue&type=template&id=2b59da0e&scoped=true&mpType=page ***! \*****************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2b59da0e&scoped=true&mpType=page */ 63); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 63 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/index.vue?vue&type=template&id=2b59da0e&scoped=true&mpType=page ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 }, }) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 64 */ /*!**********************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index.vue?vue&type=script&setup=true&lang=ts&mpType=page ***! \**********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/ts-loader??ref--8-1!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-2!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&mpType=page */ 65);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZxQixDQUFnQiwwcUJBQUcsRUFBQyIsImZpbGUiOiI2NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/cmVmLS04LTEhLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS04LTIhLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10cyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P3JlZi0tOC0xIS4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tOC0yIS4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///64\n"); /***/ }), /* 65 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--8-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-2!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/index.vue?vue&type=script&setup=true&lang=ts&mpType=page ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI2NS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///65\n"); /***/ }), /* 66 */ /*!*****************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index/index.vue?mpType=page ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 67);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 136);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZLO0FBQzdLLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYmU4NGEzYyZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy9pbmRleC9pbmRleC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///66\n"); /***/ }), /* 67 */ /*!***********************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***! \***********************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 68); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 68 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 69) .default, uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 31) .default, uniPopupDialog: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue */ 36) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "floor-screen"), class: _vm._$s(1, "c", _vm.floorMove), attrs: { _i: 1 }, }, [ _c( "view", { staticClass: _vm._$s(2, "sc", "head"), attrs: { _i: 2 } }, [ _c("text", { attrs: { _i: 3 }, on: { click: function ($event) { return _vm.port() }, }, }), _c( "view", { staticClass: _vm._$s(4, "sc", "time-tools"), attrs: { _i: 4 }, }, [ _vm._v( _vm._$s(4, "t0-0", _vm._s(_vm.year)) + _vm._$s(4, "t0-1", _vm._s(_vm.month)) + _vm._$s(4, "t0-2", _vm._s(_vm.day)) + _vm._$s(4, "t0-3", _vm._s(_vm.hours)) + _vm._$s(4, "t0-4", _vm._s(_vm.minutes)) + _vm._$s(4, "t0-5", _vm._s(_vm.seconds)) + _vm._$s(4, "t0-6", _vm._s(_vm.week)) ), ] ), _c("view", { staticClass: _vm._$s(5, "sc", "button-left"), attrs: { _i: 5 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c("view", { staticClass: _vm._$s(6, "sc", "button-right"), attrs: { _i: 6 }, on: { click: function ($event) { return _vm.ledId() }, }, }), ] ), _c( "view", { staticClass: _vm._$s(7, "sc", "main"), attrs: { _i: 7 } }, [ _c( "view", { staticClass: _vm._$s(8, "sc", "main-sides"), attrs: { _i: 8 }, }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "box"), attrs: { _i: 9 } }, [ _c("view", { staticClass: _vm._$s( 10, "sc", "box-border box-border1" ), attrs: { _i: 10 }, }), _c("view", { staticClass: _vm._$s( 11, "sc", "box-border box-border2" ), attrs: { _i: 11 }, }), _c("view", { staticClass: _vm._$s( 12, "sc", "box-border box-border3" ), attrs: { _i: 12 }, }), _c("view", { staticClass: _vm._$s( 13, "sc", "box-border box-border4" ), attrs: { _i: 13 }, }), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(14, "v-show", !_vm.errorShow), expression: "_$s(14,'v-show',!errorShow)", }, ], attrs: { _i: 14 }, }, [ _c( "view", { class: _vm._$s(15, "c", _vm.width), attrs: { _i: 15 }, }, [ _c( "view", { staticClass: _vm._$s(16, "sc", "box-items"), attrs: { _i: 16 }, }, [_vm._v(_vm._$s(16, "t0-0", _vm._s(_vm.title)))] ), _c( "view", { staticClass: _vm._$s(17, "sc", "box-items"), attrs: { _i: 17 }, }, [_vm._v(_vm._$s(17, "t0-0", _vm._s(_vm.staNo)))] ), _c( "view", { staticClass: _vm._$s(18, "sc", "box-items"), attrs: { _i: 18 }, }, [_vm._v(_vm._$s(18, "t0-0", _vm._s(_vm.maknx)))] ), _c( "view", { staticClass: _vm._$s(19, "sc", "box-items"), attrs: { _i: 19 }, }, [_vm._v(_vm._$s(19, "t0-0", _vm._s(_vm.specs)))] ), _c( "view", { staticClass: _vm._$s(20, "sc", "box-items"), attrs: { _i: 20 }, }, [_vm._v(_vm._$s(20, "t0-0", _vm._s(_vm.count)))] ), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(21, "v-show", _vm.orderShow), expression: "_$s(21,'v-show',orderShow)", }, ], attrs: { _i: 21 }, }, [ _c( "view", { staticClass: _vm._$s(22, "sc", "box-items"), attrs: { _i: 22 }, }, [ _vm._v( _vm._$s(22, "t0-0", _vm._s(_vm.orderNo)) ), ] ), _c( "view", { staticClass: _vm._$s(23, "sc", "box-items"), attrs: { _i: 23 }, }, [ _vm._v( _vm._$s(23, "t0-0", _vm._s(_vm.doneOfTray)) ), ] ), _c( "view", { staticClass: _vm._$s(24, "sc", "box-items"), attrs: { _i: 24 }, }, [ _vm._v( _vm._$s(24, "t0-0", _vm._s(_vm.totalOfTray)) ), ] ), _c( "view", { staticClass: _vm._$s(25, "sc", "box-items"), attrs: { _i: 25 }, }, [ _vm._v( _vm._$s(25, "t0-0", _vm._s(_vm.doneOfUnit)) ), ] ), _c( "view", { staticClass: _vm._$s(26, "sc", "box-items"), attrs: { _i: 26 }, }, [ _vm._v( _vm._$s(26, "t0-0", _vm._s(_vm.totalOfUnit)) ), ] ), ] ), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(27, "v-show", _vm.errorShow), expression: "_$s(27,'v-show',errorShow)", }, ], attrs: { _i: 27 }, }, [ _c("view", [ _vm._v(_vm._$s(28, "t0-0", _vm._s(_vm.errorMsg))), ]), ] ), ] ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(29, "sc", "top-screen"), class: _vm._$s(29, "c", _vm.topMove), attrs: { _i: 29 }, }, [ _c( "view", { staticClass: _vm._$s(30, "sc", "head"), attrs: { _i: 30 } }, [ _c("text", { attrs: { _i: 31 }, on: { click: function ($event) { return _vm.port() }, }, }), _c( "view", { staticClass: _vm._$s(32, "sc", "time-tools"), attrs: { _i: 32 }, }, [ _vm._v( _vm._$s(32, "t0-0", _vm._s(_vm.year)) + _vm._$s(32, "t0-1", _vm._s(_vm.month)) + _vm._$s(32, "t0-2", _vm._s(_vm.day)) + _vm._$s(32, "t0-3", _vm._s(_vm.hours)) + _vm._$s(32, "t0-4", _vm._s(_vm.minutes)) + _vm._$s(32, "t0-5", _vm._s(_vm.seconds)) + _vm._$s(32, "t0-6", _vm._s(_vm.week)) ), ] ), _c("view", { staticClass: _vm._$s(33, "sc", "button-left"), attrs: { _i: 33 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c("view", { staticClass: _vm._$s(34, "sc", "button-right"), attrs: { _i: 34 }, on: { click: function ($event) { return _vm.ledId() }, }, }), ] ), _c( "view", { staticClass: _vm._$s(35, "sc", "main"), attrs: { _i: 35 } }, [ _c( "view", { staticClass: _vm._$s(36, "sc", "main-sides"), attrs: { _i: 36 }, }, [ _c( "view", { staticClass: _vm._$s(37, "sc", "box box-lg"), attrs: { _i: 37 }, }, [ _c("view", { staticClass: _vm._$s( 38, "sc", "box-border box-border1" ), attrs: { _i: 38 }, }), _c("view", { staticClass: _vm._$s( 39, "sc", "box-border box-border2" ), attrs: { _i: 39 }, }), _c("view", { staticClass: _vm._$s( 40, "sc", "box-border box-border3" ), attrs: { _i: 40 }, }), _c("view", { staticClass: _vm._$s( 41, "sc", "box-border box-border4" ), attrs: { _i: 41 }, }), _c( "view", { staticClass: _vm._$s(42, "sc", "box-item introduce"), attrs: { _i: 42 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(44, "sc", "english"), attrs: { _i: 44 }, }), _c("p", { staticClass: _vm._$s(45, "sc", "introduce-content"), attrs: { _i: 45 }, }), ] ), _c( "view", { staticClass: _vm._$s( 46, "sc", "box-item charge-info" ), attrs: { _i: 46 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(48, "sc", "english"), attrs: { _i: 48 }, }), _c( "view", { staticClass: _vm._$s( 49, "sc", "charge-info-item" ), attrs: { _i: 49 }, }, [ _c("image", { attrs: { src: _vm._$s( 50, "a-src", __webpack_require__(/*! ../../static/a1.png */ 129) ), _i: 50, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(52, "sc", "count"), attrs: { _i: 52 }, }, [ _vm._v( _vm._$s(52, "t0-0", _vm._s(_vm.xDistance)) ), ] ), _c("text", { staticClass: _vm._$s(53, "sc", "unit"), attrs: { _i: 53 }, }), ]), _c("view"), ] ), _c( "view", { staticClass: _vm._$s( 55, "sc", "charge-info-item" ), attrs: { _i: 55 }, }, [ _c("image", { attrs: { src: _vm._$s( 56, "a-src", __webpack_require__(/*! ../../static/b1.png */ 130) ), _i: 56, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(58, "sc", "count"), attrs: { _i: 58 }, }, [ _vm._v( _vm._$s(58, "t0-0", _vm._s(_vm.yDistance)) ), ] ), _c("text", { staticClass: _vm._$s(59, "sc", "unit"), attrs: { _i: 59 }, }), ]), _c("view"), ] ), _c( "view", { staticClass: _vm._$s( 61, "sc", "charge-info-item" ), attrs: { _i: 61 }, }, [ _c("image", { attrs: { src: _vm._$s( 62, "a-src", __webpack_require__(/*! ../../static/c1.png */ 131) ), _i: 62, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(64, "sc", "count"), attrs: { _i: 64 }, }, [ _vm._v( _vm._$s(64, "t0-0", _vm._s(_vm.xDuration)) ), ] ), _c("text", { staticClass: _vm._$s(65, "sc", "unit"), attrs: { _i: 65 }, }), ]), _c("view"), ] ), _c( "view", { staticClass: _vm._$s( 67, "sc", "charge-info-item" ), attrs: { _i: 67 }, }, [ _c("image", { attrs: { src: _vm._$s( 68, "a-src", __webpack_require__(/*! ../../static/d1.png */ 132) ), _i: 68, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(70, "sc", "count"), attrs: { _i: 70 }, }, [ _vm._v( _vm._$s(70, "t0-0", _vm._s(_vm.yDuration)) ), ] ), _c("text", { staticClass: _vm._$s(71, "sc", "unit"), attrs: { _i: 71 }, }), ]), _c("view"), ] ), ] ), _c( "view", { staticClass: _vm._$s(73, "sc", "box-item use-info"), attrs: { _i: 73 }, }, [ _c( "view", { staticClass: _vm._$s(74, "sc", "use-left"), attrs: { _i: 74 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(76, "sc", "english"), attrs: { _i: 76 }, }), ] ), _c( "view", { staticClass: _vm._$s(77, "sc", "use-right"), attrs: { _i: 77 }, }, [ _c("h3", [ _vm._v(_vm._$s(78, "t0-0", _vm._s(_vm.usedPr))), ]), _c("p", { staticClass: _vm._$s(79, "sc", "english"), attrs: { _i: 79 }, }), ] ), _c( "view", { staticClass: _vm._$s(80, "sc", "use-main"), attrs: { _i: 80 }, }, [ _c( "view", { staticClass: _vm._$s(81, "sc", "left"), attrs: { _i: 81 }, }, [ _c( "view", { staticClass: _vm._$s( 82, "sc", "progressBar" ), attrs: { _i: 82 }, }, [ _c("view", { staticClass: _vm._$s( 83, "sc", "progress" ), style: _vm._$s( 83, "s", "width:" + _vm.usedPr + "%" ), attrs: { _i: 83 }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(84, "sc", "right"), attrs: { _i: 84 }, }, [_vm._v(_vm._$s(84, "t0-0", _vm._s(_vm.used)))] ), ] ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(85, "sc", "main-sides"), attrs: { _i: 85 }, }, [ _c( "view", { staticClass: _vm._$s(86, "sc", "box box-tp"), attrs: { _i: 86 }, }, [ _c("view", { staticClass: _vm._$s( 87, "sc", "box-border box-border1" ), attrs: { _i: 87 }, }), _c("view", { staticClass: _vm._$s( 88, "sc", "box-border box-border2" ), attrs: { _i: 88 }, }), _c("view", { staticClass: _vm._$s( 89, "sc", "box-border box-border3" ), attrs: { _i: 89 }, }), _c("view", { staticClass: _vm._$s( 90, "sc", "box-border box-border4" ), attrs: { _i: 90 }, }), _c( "view", { staticClass: _vm._$s(91, "sc", "box-item right-item"), attrs: { _i: 91 }, }, [ _c( "view", { staticClass: _vm._$s(92, "sc", "sub-left"), attrs: { _i: 92 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(94, "sc", "english"), attrs: { _i: 94 }, }), ] ), _c( "view", { staticClass: _vm._$s(95, "sc", "sub-right"), attrs: { _i: 95 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(97, "sc", "english"), attrs: { _i: 97 }, }), ] ), _c( "view", { staticClass: _vm._$s(98, "sc", "sub-main"), attrs: { _i: 98 }, }, [ _c( "view", { staticClass: _vm._$s(99, "sc", "charts-box"), attrs: { _i: 99 }, }, [ _c("qiun-data-charts", { attrs: { type: "line", chartData: _vm.chartsDataLine1, echartsH5: true, echartsApp: true, _i: 100, }, }), ], 1 ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(101, "sc", "box box-md"), attrs: { _i: 101 }, }, [ _c("view", { staticClass: _vm._$s( 102, "sc", "box-border box-border1" ), attrs: { _i: 102 }, }), _c("view", { staticClass: _vm._$s( 103, "sc", "box-border box-border2" ), attrs: { _i: 103 }, }), _c("view", { staticClass: _vm._$s( 104, "sc", "box-border box-border3" ), attrs: { _i: 104 }, }), _c("view", { staticClass: _vm._$s( 105, "sc", "box-border box-border4" ), attrs: { _i: 105 }, }), _c( "view", { staticClass: _vm._$s( 106, "sc", "box-item right-item" ), attrs: { _i: 106 }, }, [ _c( "view", { staticClass: _vm._$s(107, "sc", "sub-left"), attrs: { _i: 107 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(109, "sc", "english"), attrs: { _i: 109 }, }), ] ), _c( "view", { staticClass: _vm._$s(110, "sc", "sub-right"), attrs: { _i: 110 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(112, "sc", "english"), attrs: { _i: 112 }, }), ] ), _c( "view", { staticClass: _vm._$s(113, "sc", "sub-main"), attrs: { _i: 113 }, }, [ _c( "view", { staticClass: _vm._$s( 114, "sc", "charts-box ring" ), attrs: { _i: 114 }, }, [ _c("qiun-data-charts", { attrs: { type: "ring", opts: { legend: { position: "bottom" } }, eopts: _vm.ringOpts, chartData: _vm.chartsDataPie2, echartsH5: true, echartsApp: true, _i: 115, }, }), ], 1 ), _c( "view", { staticClass: _vm._$s( 116, "sc", "sub-main-right" ), attrs: { _i: 116 }, }, [ _c( "view", { staticClass: _vm._$s( 117, "sc", "sub-info" ), attrs: { _i: 117 }, }, [ _c("image", { attrs: { src: _vm._$s( 118, "a-src", __webpack_require__(/*! ../../static/g1.png */ 133) ), _i: 118, }, }), _c("text"), _c("text", [ _vm._v( _vm._$s( 120, "t0-0", _vm._s(_vm.stockCount) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s( 121, "sc", "sub-info" ), attrs: { _i: 121 }, }, [ _c("image", { attrs: { src: _vm._$s( 122, "a-src", __webpack_require__(/*! ../../static/f1.png */ 134) ), _i: 122, }, }), _c("text"), _c("text", [ _vm._v( _vm._$s( 124, "t0-0", _vm._s(_vm.emptyCount) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s( 125, "sc", "sub-info" ), attrs: { _i: 125 }, }, [ _c("image", { attrs: { src: _vm._$s( 126, "a-src", __webpack_require__(/*! ../../static/e1.png */ 135) ), _i: 126, }, }), _c("text"), _c("text", [ _vm._v( _vm._$s( 128, "t0-0", _vm._s(_vm.noneCount) ) ), ]), ] ), ] ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(129, "sc", "box box-bt"), attrs: { _i: 129 }, }, [ _c("view", { staticClass: _vm._$s( 130, "sc", "box-border box-border1" ), attrs: { _i: 130 }, }), _c("view", { staticClass: _vm._$s( 131, "sc", "box-border box-border2" ), attrs: { _i: 131 }, }), _c("view", { staticClass: _vm._$s( 132, "sc", "box-border box-border3" ), attrs: { _i: 132 }, }), _c("view", { staticClass: _vm._$s( 133, "sc", "box-border box-border4" ), attrs: { _i: 133 }, }), _c("view", { attrs: { _i: 134 }, on: { click: function ($event) { return _vm.crn() }, }, }), ] ), ] ), ] ), ] ), _c( "view", [ _c( "uni-popup", { ref: "url", attrs: { type: "dialog", _i: 136 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置url", value: _vm.baseIP, placeholder: "示例:192.168.1.1", _i: 137, }, on: { confirm: _vm.baseUrlConfirm }, }), ], 1 ), ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "ledId", attrs: { type: "dialog", _i: 139 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置ledId", value: _vm.baseLedId, placeholder: "示例:188", _i: 140, }, on: { confirm: _vm.ledIdConfirm }, }), ], 1 ), ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "port", attrs: { type: "dialog", _i: 142 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置端口号", value: _vm.basePort, placeholder: "示例:9090", _i: 143, }, on: { confirm: _vm.portConfirm }, }), ], 1 ), ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "crnId", attrs: { type: "dialog", _i: 145 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置堆垛机", value: _vm.crnId, placeholder: "示例:1", _i: 146, }, on: { confirm: _vm.crnConfirm }, }), ], 1 ), ], 1 ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(147, "v-show", _vm.ejectShow), expression: "_$s(147,'v-show',ejectShow)", }, ], staticClass: _vm._$s(147, "sc", "eject-mask"), attrs: { _i: 147 }, }, [ _c( "view", { staticClass: _vm._$s(148, "sc", "eject"), attrs: { _i: 148 } }, [ _c("view", { staticClass: _vm._$s(149, "sc", "eject-title"), attrs: { _i: 149 }, }), _c( "view", { staticClass: _vm._$s(150, "sc", "eject-input"), attrs: { _i: 150 }, }, [ _c( "view", { staticClass: _vm._$s(151, "sc", "item"), attrs: { _i: 151 }, }, [ _c("view", { staticClass: _vm._$s(152, "sc", "desc"), attrs: { _i: 152 }, }), _c( "view", { staticClass: _vm._$s(153, "sc", "input"), attrs: { _i: 153 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseIP, expression: "baseIP", }, ], attrs: { _i: 154 }, domProps: { value: _vm._$s(154, "v-model", _vm.baseIP), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseIP = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(155, "sc", "item"), attrs: { _i: 155 }, }, [ _c("view", { staticClass: _vm._$s(156, "sc", "desc"), attrs: { _i: 156 }, }), _c( "view", { staticClass: _vm._$s(157, "sc", "input"), attrs: { _i: 157 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.basePort, expression: "basePort", }, ], attrs: { _i: 158 }, domProps: { value: _vm._$s(158, "v-model", _vm.basePort), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.basePort = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(159, "sc", "item"), attrs: { _i: 159 }, }, [ _c("view", { staticClass: _vm._$s(160, "sc", "desc"), attrs: { _i: 160 }, }), _c( "view", { staticClass: _vm._$s(161, "sc", "input"), attrs: { _i: 161 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseLedId, expression: "baseLedId", }, ], attrs: { _i: 162 }, domProps: { value: _vm._$s(162, "v-model", _vm.baseLedId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseLedId = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(163, "sc", "item"), attrs: { _i: 163 }, }, [ _c("view", { staticClass: _vm._$s(164, "sc", "desc"), attrs: { _i: 164 }, }), _c( "view", { staticClass: _vm._$s(165, "sc", "input"), attrs: { _i: 165 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseCrnId, expression: "baseCrnId", }, ], attrs: { _i: 166 }, domProps: { value: _vm._$s(166, "v-model", _vm.baseCrnId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseCrnId = $event.target.value }, }, }), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(167, "sc", "eject-button"), attrs: { _i: 167 }, }, [ _c("view", { staticClass: _vm._$s(168, "sc", "button-item"), attrs: { _i: 168 }, on: { click: _vm.ejectClose }, }), _c("view", { staticClass: _vm._$s(169, "sc", "button-item"), attrs: { _i: 169 }, on: { click: _vm.ejectConfirm }, }), ] ), ] ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 69 */ /*!*************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue ***! \*************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 70);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 107);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"fe947b98\",\n null,\n false,\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbVQ7QUFDblQ7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSxpUkFBTTtBQUNSLEVBQUUsMFJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscVJBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWZlOTQ3Yjk4JnNjb3BlZD10cnVlJmZpbHRlci1tb2R1bGVzPWV5SnlaR05vWVhKMGN5STZleUowZVhCbElqb2ljbVZ1WkdWeWFuTWlMQ0pqYjI1MFpXNTBJam9pSWl3aWMzUmhjblFpT2pNNE9Ea3dMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUp5WkdOb1lYSjBjeUlzSW14aGJtY2lPaUpxY3lKOUxDSmxibVFpT2pVME5qY3lmWDAlM0QmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZmU5NDdiOThcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n"); /***/ }), /* 70 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 71); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 71 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 72) .default, qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 102) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "chartsview"), attrs: { id: _vm._$s(0, "a-id", "ChartBoxId" + _vm.cid), _i: 0 }, }, [ _vm._$s(1, "i", _vm.mixinDatacomLoading) ? _c( "view", [ _c("qiun-loading", { attrs: { loadingType: _vm.loadingType, _i: 2 }, }), ], 1 ) : _vm._e(), _vm._$s(3, "i", _vm.mixinDatacomErrorMessage && _vm.errorShow) ? _c( "view", { attrs: { _i: 3 }, on: { click: _vm.reloading } }, [ _c("qiun-error", { attrs: { errorMessage: _vm.errorMessage, _i: 4 }, }), ], 1 ) : _vm._e(), _vm._$s(5, "i", _vm.echarts) ? [ _c("view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(6, "v-show", _vm.showchart), expression: "_$s(6,'v-show',showchart)", }, ], wxsProps: { "change:resize": "echartsResize", "change:prop": "echartsOpts", }, style: _vm._$s(6, "s", { background: _vm.background }), attrs: { "data-directory": _vm._$s(6, "a-data-directory", _vm.directory), id: _vm._$s(6, "a-id", "EC" + _vm.cid), prop: _vm._$s(6, "change:echartsOpts", _vm.echartsOpts), resize: _vm._$s(6, "change:echartsResize", _vm.echartsResize), _i: 6, }, }), ] : [ _c( "view", { wxsProps: { "change:prop": "uchartsOpts" }, attrs: { id: _vm._$s(8, "a-id", "UC" + _vm.cid), prop: _vm._$s(8, "change:uchartsOpts", _vm.uchartsOpts), _i: 8, }, on: {}, }, [ _c("canvas", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(9, "v-show", _vm.showchart), expression: "_$s(9,'v-show',showchart)", }, ], style: _vm._$s(9, "s", { width: _vm.cWidth + "px", height: _vm.cHeight + "px", background: _vm.background, }), attrs: { id: _vm._$s(9, "a-id", _vm.cid), canvasId: _vm._$s(9, "a-canvasId", _vm.cid), "disable-scroll": _vm._$s( 9, "a-disable-scroll", _vm.disableScroll ), _i: 9, }, on: { error: _vm._error }, }), ] ), ], ], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 72 */ /*!*****************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue ***! \*****************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 73);\n/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 75);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM0ZmQ5OTgmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1sb2FkaW5nL3FpdW4tbG9hZGluZy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///72\n"); /***/ }), /* 73 */ /*!************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 74); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 74 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", [ _vm._$s(1, "i", _vm.loadingType == 1) ? _c("Loading1", { attrs: { _i: 1 } }) : _vm._e(), _vm._$s(2, "i", _vm.loadingType == 2) ? _c("Loading2", { attrs: { _i: 2 } }) : _vm._e(), _vm._$s(3, "i", _vm.loadingType == 3) ? _c("Loading3", { attrs: { _i: 3 } }) : _vm._e(), _vm._$s(4, "i", _vm.loadingType == 4) ? _c("Loading4", { attrs: { _i: 4 } }) : _vm._e(), _vm._$s(5, "i", _vm.loadingType == 5) ? _c("Loading5", { attrs: { _i: 5 } }) : _vm._e(), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 75 */ /*!******************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=script&lang=js& */ 76);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXdtQixDQUFnQixrbEJBQUcsRUFBQyIsImZpbGUiOiI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1sb2FkaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///75\n"); /***/ }), /* 76 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 77));\nvar _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 82));\nvar _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 87));\nvar _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 92));\nvar _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 97));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n components: {\n Loading1: _loading.default,\n Loading2: _loading2.default,\n Loading3: _loading3.default,\n Loading4: _loading4.default,\n Loading5: _loading5.default\n },\n name: 'qiun-loading',\n props: {\n loadingType: {\n type: Number,\n default: 2\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJMb2FkaW5nMSIsIkxvYWRpbmcyIiwiTG9hZGluZzMiLCJMb2FkaW5nNCIsIkxvYWRpbmc1IiwibmFtZSIsInByb3BzIiwibG9hZGluZ1R5cGUiLCJ0eXBlIiwiZGVmYXVsdCIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztlQUNBO0VBQ0FBO0lBQUFDO0lBQUFDO0lBQUFDO0lBQUFDO0lBQUFDO0VBQUE7RUFDQUM7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI3Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHQgPExvYWRpbmcxIHYtaWY9XCJsb2FkaW5nVHlwZT09MVwiLz5cclxuXHQgPExvYWRpbmcyIHYtaWY9XCJsb2FkaW5nVHlwZT09MlwiLz5cclxuXHQgPExvYWRpbmczIHYtaWY9XCJsb2FkaW5nVHlwZT09M1wiLz5cclxuXHQgPExvYWRpbmc0IHYtaWY9XCJsb2FkaW5nVHlwZT09NFwiLz5cclxuXHQgPExvYWRpbmc1IHYtaWY9XCJsb2FkaW5nVHlwZT09NVwiLz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBMb2FkaW5nMSBmcm9tIFwiLi9sb2FkaW5nMS52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzIgZnJvbSBcIi4vbG9hZGluZzIudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmczIGZyb20gXCIuL2xvYWRpbmczLnZ1ZVwiO1xyXG5cdGltcG9ydCBMb2FkaW5nNCBmcm9tIFwiLi9sb2FkaW5nNC52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzUgZnJvbSBcIi4vbG9hZGluZzUudnVlXCI7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czp7TG9hZGluZzEsTG9hZGluZzIsTG9hZGluZzMsTG9hZGluZzQsTG9hZGluZzV9LFxyXG5cdFx0bmFtZTogJ3FpdW4tbG9hZGluZycsXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHRsb2FkaW5nVHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAyXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///76\n"); /***/ }), /* 77 */ /*!*************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 78);\n/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 80);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4e769ee\",\n null,\n false,\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGU3NjllZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0ZTc2OWVlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzEudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///77\n"); /***/ }), /* 78 */ /*!********************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 79); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 79 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading1"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 80 */ /*!**************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=script&lang=js& */ 81);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9tQixDQUFnQiw4a0JBQUcsRUFBQyIsImZpbGUiOiI4MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///80\n"); /***/ }), /* 81 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading1',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI4MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzFcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcxJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzEgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAxNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzEgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcxIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMSAuc2hhcGU0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24xc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///81\n"); /***/ }), /* 82 */ /*!*************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 83);\n/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 85);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4cb3aec\",\n null,\n false,\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGNiM2FlYyZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0Y2IzYWVjXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzIudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///82\n"); /***/ }), /* 83 */ /*!********************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 84); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 84 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading2"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 85 */ /*!**************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=script&lang=js& */ 86);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9tQixDQUFnQiw4a0JBQUcsRUFBQyIsImZpbGUiOiI4NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n"); /***/ }), /* 86 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading2',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI4Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcyJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzIge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzIgLnNoYXBlIHtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMntcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nMiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzIgLnNoYXBlMyB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcyIC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///86\n"); /***/ }), /* 87 */ /*!*************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 88);\n/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 90);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4af0bea\",\n null,\n false,\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGFmMGJlYSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0YWYwYmVhXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzMudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///87\n"); /***/ }), /* 88 */ /*!********************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 89); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 89 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading3"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 90 */ /*!**************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=script&lang=js& */ 91);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9tQixDQUFnQiw4a0JBQUcsRUFBQyIsImZpbGUiOiI5MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///90\n"); /***/ }), /* 91 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading3',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI5MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzNcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmczJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAuY29udGFpbmVyLmxvYWRpbmczIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTIge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMyB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTQge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmczIC5zaGFwZTEge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMyAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmczIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzMgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///91\n"); /***/ }), /* 92 */ /*!*************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 93);\n/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 95);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e492dce8\",\n null,\n false,\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiOTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDkyZGNlOCZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0OTJkY2U4XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzQudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///92\n"); /***/ }), /* 93 */ /*!********************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 94); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 94 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading5"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 95 */ /*!**************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=script&lang=js& */ 96);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9tQixDQUFnQiw4a0JBQUcsRUFBQyIsImZpbGUiOiI5NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nNC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nNC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///95\n"); /***/ }), /* 96 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading5',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI5Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzVcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc1JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzUgLnNoYXBlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzUgLnNoYXBlMSB7XHJcbiAgYW5pbWF0aW9uOiBhbmltYXRpb241c2hhcGUxIDJzIGVhc2UgMHMgaW5maW5pdGUgcmV2ZXJzZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTIge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMiAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTMge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMyAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTQge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlNCAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96\n"); /***/ }), /* 97 */ /*!*************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 98);\n/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 100);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e476ade6\",\n null,\n false,\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiOTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDc2YWRlNiZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0NzZhZGU2XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzUudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\n"); /***/ }), /* 98 */ /*!********************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 99); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 99 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading6"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 100 */ /*!**************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=script&lang=js& */ 101);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9tQixDQUFnQiw4a0JBQUcsRUFBQyIsImZpbGUiOiIxMDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///100\n"); /***/ }), /* 101 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading6',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0IDx2aWV3IGNsYXNzPVwiY29udGFpbmVyIGxvYWRpbmc2XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUyXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlNFwiPjwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdsb2FkaW5nNicsXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzYge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nNiAuc2hhcGUge1xyXG4gIHdpZHRoOiAxMnB4O1xyXG4gIGhlaWdodDogMTJweDtcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTBweDtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMSB7XHJcbiAgbGVmdDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5MEZGO1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMiB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkxQ0I3NDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTMge1xyXG4gIGJvdHRvbTogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFDODU4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlNCB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTY2NjY7XHJcbn1cclxuXHJcblxyXG4ubG9hZGluZzYgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTEgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMSAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAxOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzYgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTIgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMiAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb242c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNiAuc2hhcGUzIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMyAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUzIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc2IC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGU0IDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTQgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTQge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTQge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///101\n"); /***/ }), /* 102 */ /*!*************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4& */ 103);\n/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 105);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUg7QUFDdkg7QUFDOEQ7QUFDTDs7O0FBR3pEO0FBQ21MO0FBQ25MLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLGdGQUFNO0FBQ1IsRUFBRSxxRkFBTTtBQUNSLEVBQUUsOEZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wNTA3ZjFmNCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///102\n"); /***/ }), /* 103 */ /*!********************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=template&id=0507f1f4& */ 104); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 104 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "chartsview"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "charts-error"), attrs: { _i: 1 }, }), _c( "view", { staticClass: _vm._$s(2, "sc", "charts-font"), attrs: { _i: 2 } }, [ _vm._v( _vm._$s( 2, "t0-0", _vm._s(_vm.errorMessage == null ? "请点击重试" : _vm.errorMessage) ) ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 105 */ /*!**************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=script&lang=js& */ 106);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXNtQixDQUFnQixnbEJBQUcsRUFBQyIsImZpbGUiOiIxMDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///105\n"); /***/ }), /* 106 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'qiun-error',\n props: {\n errorMessage: {\n type: String,\n default: null\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWUiXSwibmFtZXMiOlsibmFtZSIsInByb3BzIiwiZXJyb3JNZXNzYWdlIiwidHlwZSIsImRlZmF1bHQiLCJkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O2VBUUE7RUFDQUE7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIxMDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjaGFydHN2aWV3XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1lcnJvclwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWZvbnRcIj57e2Vycm9yTWVzc2FnZT09bnVsbD8n6K+354K55Ye76YeN6K+VJzplcnJvck1lc3NhZ2V9fTwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdxaXVuLWVycm9yJyxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdGVycm9yTWVzc2FnZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQuY2hhcnRzdmlldyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblx0LmNoYXJ0cy1mb250e1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0Y29sb3I6ICNDQ0NDQ0M7XHJcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdH1cclxuXHQuY2hhcnRzLWVycm9ye1xyXG5cdFx0d2lkdGg6IDEyOHB4O1xyXG5cdFx0aGVpZ2h0OiAxMjhweDtcclxuXHRcdGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUNBWUFBQUREUG1ITEFBQVV6MGxFUVZSNFh1MWRlM0JjMVgzK3ptcDNqWVZXZmtQQWdDV3dZOHpMRWdsTlFDU1cweVQ5bzJTUWFES2ROdWxVeWt3Zk0razA5cCtKM0ltWUlQSlhpOXlaekRTWlppd3lhWnVaQkN3bk5HMURNb2dFbVVBQXk3eHMvTUF5TmhDTWpXV3RzSzFkZVUvbjIzT3Z0THU2ajNQdjN0MjlkNzFueGpPU2RlNDU1LzUrMy9tOXo3a0NqUlk0QlI3ZUs3ZmtjbWhyYXNMVDM3aGJUQVkrUVlBRGlnREhhZ3dGWUdoYzdnWndITUFVZ0c0aE1Qek5lOFJvV0luVEFFQ0FuSGw0cit5UkV0MERYV0liaHgzY0o1ZkhQOFRZam50RlI0RFRCRHFVSXdCbU1ySkRDdHlQSERvUXcwUThqa2VYaW5DTHRFQ3A0M0d3aDU2UjIySXhUQmJ1K0tGeE9UYlFKYm85RGxXMTdyWUFTR2RsTnlTZUtsMkpBRHBia21LaWFpdDBtV2hvWEhaa216RTUyQ2tvY212YXZ2T3NiTXZsOE1oQWwramxRcmcyQ1F6dTZCSTlOVjJZdytUMkFKaVZvK0R1TDJrU2VMUTFLZnJDOGtMY1lia1lCdi9wYmpFV2hqVU5qVXZTcGs5S1NBaWNtMnRHWHhqQWFVY2Jld0JrSkFtNnhlTEJwMVBKMm9zMDZ0dGNEbDhIMENFRWFHbnZHZWdTZzJFQVFaVFc0QjBBRW50U1Myb3YwbWhnSmM1am13VDZJREVXaTJFMHpOWjJXRUZoQzRDWmpDUnhIN0d3QWZwYmttSWtMQzlFRlFCZzIwQlhlT3lTc05CR1p4Mk9Ya0I2Vmc1Q2dBYk1aZ0Q3QlREU2toVERPZ00zK2tTREFyN2lBTk56OG40aFFSZHhvalV1OWtUalZSdXJ0S0tBSndCSUtaZlBaUE91WVdGZ1k2d2xnVjRoYXUrR05WanNuUUtlQUpET1NJcC9XdDZsYlNLZVFHOGpTT1NkQWJWK3dpc0E3RnhEU0dBcUJtd05TNURJaUdJdWN5TndLaUdlZHV0VHozLzNCZ0NiNEpCSm9HcURJSjJWVzRSRW14Um9nMFMzbEdnVC9ObGZZM1J6Q2dKalFtSlNDa3hlRHVEd0JnQ2I4SEFodlFrQ0lkQ2JTZ1FmbVNQRG1XR0R6SHNtMVVxd2pCRVVBTWJxRVJDZUFFQkd6MlJrbndSMnVXMHlBWlFkTDZEUitXRVc5MHN5WExtanRXOFNvMEpnOU1vRTl0U0Q0ZXNaQU5VQUFkMU01TkFqR09VTGFhT2tBekNLR0VhajdBcjdBb0JIRUd4clNZcWRPbnhNWitXM1pBNTlaZWh4bldrQzd5TWxKa1VNSXkxeDdJeWFWUEFOQUFNRUhUbGdUQUNPMXJZRVJscVRvdCtKOG5icDU4QzVWY0VCRGZ0bk9FcEFLQXNBZ1lQQVBnTlpRYllGUDNRZUNBeWJKL0JnMkNWQzJRRHdDb0pVQXR1ZGlKS3VFeENRTG9aYlBLaXJBb09Ib3Z1SVRoVkJ5dVhpaTJqRS9DOUkyVGFYQllzZm1UaHlhaE10Q1d5MUE0RVJiajdydnZSSTlhQ2EzRjdwSU5tM241WGRYZ3RqRmdIQVlDUXJXNHY4YkJvNk1ZRmVwNWN3bUVlZnVTd1FwRE5TUm9xOStvc2RycVJhR0JxWE1oZkRWaThnV0FTQWRFYnVzd3V5R0NLTlNMYXRCeWdYQkhVcUFRb2hNbUhFU0FLcnF6U3JvNFRJUzJ5T3ExMGRWUVFBdXlLUVVvQzdCWG5JeEhRV3d3TDRheS9xSU0vOERIYUZKdWlqdjdNOTlRemFObUF4Nmh6UUZzdmhLU214dmFrSm83b0hVb29BNE1VQTB3SEJURFlmUW5WVUI2YkZuTGMxSkhxaUZnUHd4UG5TemhLakxVbjBCK1Vwc0RvcUZrT2ZMdk81SE44QU1ONWxPSlVVMisySU1EMG5lMFFPdENjcTBrN09BTmUxVkdUb2FnN3FhQlJYZWlGRkFKak95QkVOc1YyMEpxY2dqMkZRSGd2eUpXWXZBUWZQQUp1dkF2NzE5OEFEbTRETUhKQktBbXVhZzV5cGVtUHBHTmlWV2sycERjQ0RERFFDUFRVN0VPZ21qcnhNUmdBOGRnQlltd0pPWHdCdVdnSDg3bTNnejI2T0xnRHk2cTlHOVJTTHZJQXltRlpVR3NhQ2pKekU3cUIxK3Z2bmdYUkdRZWJHNVFCL1AzMGVhRjJpUUJIbGxrOHd4ZERmR3EvZVlWTExRSkJmRU9RTk9wazMvQmc4NmhiQThpQVp3dDIvYTc4YXNYOHpzS1JKL2Z6WVFlRHR0RklIVWJjSnFpMEpuTTRGYU9YOWcyU3c3bGdIVGdQVHMwREhSeFRqVDV3RHRxelRmVHI4L2FvSkFyZlR3WDA1NVAxNTE5cTZhcEdWNHY4L1hsVTZuenYvdm84Q3Z6d0szTDBXMkxTNldxdW8vRHpWQW9Gck1paXZ5elZTdnBVbnljSU1WQVVVLy8vMmtnSUM5YitwRHFxNWppck1WWEVYMFJVQWZNa3dnb0RyTW9GUUJVYlVjb3F4VkZKc3JkUUN0QUFRWmhCVWlqQ2hHbGZpd2RTU3lweDgxZ2FBQVFMTEE2T2hJbGFORjJNR3FyaU1tMWNGcUpvRXRsYWkwbG9iQUl6cVpiUFlGN1JyVjJOK0JUNzlMOTljOEVoK2R6STQ3NFJHWVNxQjlxRHlCdWFMYXdNZ25aRThFeGphdTI0QzU2VFBBWjgrdnNEMDU5NEdQckhXNTBEV2p3VnVEMmdCd0RnbS9xMUFYNlZPQi92NVllRFdOZXJsWG5zZitNS0dZRi9VTFF2cmRUWlhBRlFpb2VOMWtWSHFUeHVBZ1NvMnhpV0NkaytEVmdXdUFFalB5dDMxWHFBUkpZQVphOTJaU3FxN0NNdHRqZ0NvaDFyOWNna1UxdWVEdXE3UEVRRFRzL0pZME5tOHNCSTBndXNLeENDTVpESW9nc3lxekpJRGlBM1lBcUN4K3l2RHM0QkhMVnNLQkZvUEVQRExOWWJUb1VDWlVzQVNBRkhZL1NmVEN4V3RxNXFCSzR6aUVCMmExVm1mc3FUQUlnQlV1cExYTC9FdnNoajBOTkNhQk03TkFyODlzVERTcDY0SE9qL2lkK1RvUDFlT1I3QVlBRDRxZzZ0Qnd1ZmVBUmhhYlY4QmZQSmFGV3haRWdlU01XRFRtc3RhQXBEOHZ1TUNSUUFJNDdHczM3d0ZyRzRHcmtzQlI4ODJtRzIxMlZoVzNycEV0UHZaaUw2T2h2bVp5T3N6RlBtN0Q2cXFYKzc2TDZ4ZkdJSC9sN21rVk1HTkt5NzczWjhuakl5aDEwODFjZkhCa0pBRWZncVp2MmtWOENtajRIUC9INEFEWjFSQnFObVliZnZFdFY3aFZYLzkvWDdIWVI0QVlVcjZQUG1tWWpTWi83a2JsUlQ0N3lPSzhVeXU4RHhBNnhYcUhBRFZ3MlhzQVJRaHVTV0JGVjdyQmVZQm9Ic3l1Tko3NTgyendCTkhnTlZMZ2IrOFRUSC84WU9xL28rN2ZmUFZDd3lucEFpQytXK2NVZk9jbndPdXZsSWRPNHRpODZNRzVnR1FkcmtGdEZvRTJmVXlrSjRGK3U0QWtuSGd4NitwbmYvWmR1Q1cxUUQ5ZjNvRFBBL0E1dGNGcEEzeDhpbmd4WGNWdVBKNjFEZ3QyN01SdUtHMVdtOGM2RHlldllFOEFNSmsvZi9ucThCTks1VmVOMTAvazhtdm53WitaUncxcGZqbllkQ09xMVZadUpkMi9Cend2MGNYR0w5aHBkcjFQR05JZ01VRjhPZTNBcXVXZWhrMUZIMG5Va25SNldVbGVRQ0VOZTM3dlplVUZPaS9BeWhVRGJRTC9Kd0U1cTRuZ0k0WU54QnhsN05pWjVrQm9DZVBBYjkvUjRtQnE2NEVlamNHWDlEaGhUbCsrc1lUYVBkeWE3c0NnUG95U00xTHZ1anpNOER6ZDNjdU1OeTA4aWtaZUJxWXFvRTduanYxdDI4cDNjM2YvK2hhcFNMczJqc3pBSTFMdW80MEpNbjRqNjRzN3YzUHp5bXBRTmVTZ0x0bkxmRHhpSGtZWGt2R0ZBQTByMllqc2Yzc1BGMGttL3IvSCs5YUVQOFA4T1JQRWhoNWVjRXJJUE5wR0xKeEY3LzNvV0xjZmVzVjgwcmJvUStVeURmN2YzSFRZdVB4K1hlQVgwMEN0NjhCUG4wRDhPOFRhc3l2YmdaYWtycHZFSXArbnV5QVBBQ21NL0tzVzdrM2IrTjQvQUJBNWxTcThjSUgwL28zOWY5ZjNLb1lRWWFiMHVEblI0QmpaNEd2M0xZQWdCKzlxaVFCK3hlMlgwK3E0a3cyMmhMOFY5cm9UWHozQlRYUDF6Nm1WQUp6RGZ4SHFVSURORUxOMDJmOWhJNy9UNnY3elNrbGJtbDhNZkZDWHp6b1JwMVB2NTduL1dqNU0vUnJKbm4yL1FHNHJsVkpJUE00K0RmdldWakI5L1lwRmZGSkl6QkVadjdpTUhBaXJVVCs1OXFCTzJ6Y3U3enVmMWZ0ZnJPS3R4QVVWRWxCRjNjR1RUdHpQQmFOdGlhRmhSeTBubEhvR0lEYy9hK2ZVbGV6MERxL1pZMjZraVhvUm9DUjBHNVd2UmtvTW5mMC94d0ZYbndQaUFGSU5nRTNMQU9tTHdLbmpQRW9LZWpmVzdYajArcTBNZWY5MnNlTFZRTkx2Rjk1SC9pVG00Q05KZlpDME84ZTVIaGVBa0pDTndCa0hzdisrenVEWEtxL3NTZ2QvdXUxeGY0N2dmbldPUjVtVmVOZTFReDhhZE9DbFc4bCtuOHdvUXpETDk2ODJDaWs3ZkRUZzhEMUthRDNabjlycmRSVGxIQTBtbW12TEpKT0hvcEVSRmc4QUsrRUlnaW9tbzZkQXk3T0tkWHdOeDNBaVJuZ1J5OERPUWwwWGdOOFpwMTl0SkRNSlpNTFJYL3BPaDdlcXdoTU5SQ21adHBrVnJlaWVQRUVDQURMajBTSDZXV2Qxa0lnUFA2RzJzVnR5NEF2MzZwRS8rNDNnRE1YMUs2K2I4TmlFSmhHSHFYRVYyNjNCd205QVk3MzFRNmdKVkY3cW5EblQ3eW5iQ1M2ekR4OFFwWEpnTmk4SlBCd21sam91b0MxZjNYN0ZkREhIMzBEbU1zQkcxWW9zVSttMFZnOGV4RzRwa1Y1QjJiZWdDRmc1aHRJTUNmN2dET2Fkc0NYYmdHdXNiRWpxa2tiTXAraXY3UVI1UE9HK2VVR0FETC9yV21nU1FCekV1aTRDdmpUOWNCVUJuamlrUHFiQ1lKekY0RWZHQmROTVc1ZzV4bVlCS1kzY09nTXNHRVZjQ2xYVFZZN3orV2tBcnhVQ0lrb0ZJQTZrZUxYeDREWFRpdURiMnViaWhka2NzQ25EWitmRFB6WklSWCtwWXZKUkJQRjZHZmJWUFJRdDEyNEZFNEFVTEpaQk9lMFl3RlVBWkc5bXYyRmQ0RzlKNHRkT0ViMGZuTkNWUXh0dVFIb3VnNGdDSDV5QURneHJkanRaUFJaZVFxdm5GSVNnRW1pTURWNlpqYnVlUDBEZ0JtOVBZZXM5VGl6aHI4NG1yOThPbDlRd3BzNjZPc3paT3lGK1dTMkdTUUtpdzJnQ2NENkJrQk1BQlQ5RE5MWTZYRktnaWNuVldDSXVRUjZCTXdiME9qejBoaGlwZzN4NWRzaWxSNnVid0EweHdHQ2dEdmFMc0pISnRQUFAveUJLdlFnODYyU1FHNWdZQnlBclpJNUVMYzErUGk3UGdDbU01SmZ1QXJOUlpCdUwwdUdNa2RnNWRzWFBrdHdjUGZTNFBNcTlzMXh6REF4UzlLWmxZeFEwd2RBbE9JQUZPUFU1V3htMXM2S0tmVHpxYnZMWVQ3SE5XTUFOQ1paaXhpaFZwOEFZSFNQbHJ4ZFdwY01NaU44L1BtdWExUVcwRStMYWpiUWVOZjZBNEJaMU1HdzV6OThiREZMeWJBbkRxdllQcHRPa01jSkdCR3VCK0JyYVJlRlJDWVUvT1BYZ1ZNZldqT1crcDRHbjFudTVSYmVkWk1JSE9lN0w2cGV2SmErRXFsdnR6V1U5WGRQb2VDUTFBTTZ2YkNwKzB0M1AzYzk2d0paek1IRzZsNFdkSlI3VnVDUjU0RUxjNnE0eEV1MHNDeW1CZml3cDJ5Z2JqMUFnT3Z6UEJRamNVOGRMOWJwTlBRb3BzMWRUN3NnQ0dZeFNjU3hHVVJhMitydWJYaCttV284NEtrZUlDdTdJY0ZiUUVQYjZQcXg2bWRwWEJWOUh2bGdvUmlrdExTN25KY3c5WDRpcHVJTTlDSldYcUhTeFZGcVhrckRSWmdPaGRnUk9ac0R2djhTY01uTVdnaVY5dVdPWHhmQUNSNnFFcnA4QkpwVlk3S0YyVVczVXJVd2dFUUM1MXFUUXJ0aVUxVUZ6OHBKSVJEcWo2N016QUdQdmE1RVBzTzd6UGtId1h5Tzk4TlgxSWVvbUU0bXlGZ25RSEF4eXNpUU1rUEJMSVpsc1dvRW1yWUx5SGZ4ZEM2ZzFpL1B4ZkprRDlPL2JPV0lmL09hR2VwN051cjhlRXdCb05DRnBIUXc2d2IvOXM3eURjd3EwRkRiQlZ3QVFBUThnVUxDVVZTUG4xeTRKNEJsWCt1V3FmSXY4NWlYRmFITjRnN3VhSjRJTnI4NHd0THpyQVJlZUZzOTlWZTNGeDhPL1pmblZkM2hYZGVxYnhPRnVYbnhBT1lCRU5hTG9ad0lUV25BM2N0NkFQTjBML3RUYkZPRVh4RlhQM09uVDExVUk1SHhoWTJIUG5qWWhDcUZwZVk4KzhCV0dHbms4OS9mQjlBT1lXUFJDWE1MWVcxZURNQjVBUENIcUJhR0VBaXNEV0NJK1BEWjR0dERTcGxFWUt4Zm9keTc5dVVLS09hcEk1NUo0R2xnMmdJc0pxRjZJWUFJTXZaaC8yTUdRRzViQTN5bUxYZ0kwSUFUQWozbWwwRzhWbXhMaWVPdFM0U25sWVh1Zm9CeXlkb1VVd2RIZVVoa2RrNmRMcWJ6d0NObmRPOEtHNW5POERHWmJsWUhzMmJ3SndlTGdXUUdtRmdieURnQkcwOE9YeCtBQjFLMElBdi8zY3RIUFAxY0V4TzZHMExLQllEdTgyUStxNGE1MnluU1dUbFVHRUZrS3BodCtaSml1NEwvVDgvZzgrMUFjNkpZL2VqT2JkY3ZsUlNXUldjOHZTVWxSdDNTOW1YZEVLSnpSckRjRnd6TDg2eW5aN3FZelcrdEFBM0tueDVRaGFhMEdjb3RySFE3MDZmMTZUNkowWllrK3IzY0UxU0V1SFJHVGdEWUhCWkdWV0lkaGN6M1dobGN1SjdDZERHRFVuL2Nyb3pKY3ByYkR0WUNBZURwWTVQRkFJaVlPK2lWMk56MTV1ZGN5azBYYys3Q3FpUGVLUExBeHZKQW9QTzVXT09yN0tNdWdUdHRFQlFCb0o3VlFDSHpHUzl3cWlYMEFpeUN3S3hCcUJZSWpQQTl2OUx1SkswbjRnbjB1bDBYRTVtN2dyMHdwYlN2ZVlxbW5ERjBudzNxV2htM2dJNE9DSFFreWlJQTZOd1hvRXVNc1BTakg4L0lYMmF1c2l1aUljamF3WEp0QVhPVmdZQkFZaktWUktlZFlXajN2WURRSjRjcXk4cndqTzRHQXE1MDJ1V0dkeWZqc3ZIRmtQRHcybjRsQW9PcGhIalFhYWxPSUhBQ2tTVUFxRi9TV1V5NkJSNmlRTHQ2V2FNRVJscVRvdDhyQ0JoZVRpVFFZV2NNMmg1MzlCS0NyQmNpaC8wOWRFQkF2dVdBWVc1ZU1oOHg5Sm5YeUJ1NWhTMzU5eFFZYTRsanArTjUxeWdVaW9TZGFVR3ZqeUJJSmJEZExkcEhLVjdZeHlxeHhOeUJJd0RxMFNNSW1pRTFHazg3MEdPdXorb0VHTjFFMXhQdlVUbzZWaU5tMUdwYVR5Q3dDL083QW9DaFJ3bnNxOVZiTnVaMXBJQTJDQ3k5QklrOXJnRGc5T21NSEFidzlRWXpRa2tCTFJBWWtjTlJBTW9JQlBZTG9FOExBQVlJNmo1VEdFcjI2aTNLVXlGbzRaRGFBTkJNUmVvdHQ5RXJVQXE0MVJJNFRhWU5BQTRTaFdOa2dWSTJRb1BaVlJPNXZZSXRBSWJHWlljUVdKWlppdjJEbmNJb2g4eC9YQ0xTTjR1NkVTU3FmdzhVQUVQamVhT3ZqMStrQkxDdXFRbWQzN2hiOEdmeiswSnV1ZWlvMGpHUzYvWlRER3ErNkNJSk1MaFBMaytjeDlsWURPMWsra1BQeUJFaE1EblFKUWJOaDFnNGtzMWlvcEVycURoZTlzY1Q2Sm5MWUJnQzkxdk41aGJyZDF2aElnQjg1MW5abHN2aFdMWVpLeWo2RFdtQWdTNnhyWEN3aGxIb1J0cnkvczRhLzFRU0hXWTRsNkZjS2JDdGNOT3hUMHlncHlVcDZLSDVhcFkyZ0xIcnQxQUZDSUhPV0F3ZHBnb29uS1VSS3ZaRmM5ZUh1S3RqUUhjcFkvTWxlM05vUXc3ZHNna1RmcjRWWERxNXJSSDQ4Rjdaazh1aHJha0pvMWJNTndkcVpBMWQrZW1wZ3gzelBRM2lvYk1uTjlCdTNBWUlQRkRjb1d1MW1jK2xCQUlBRHNRRHBzaGhwR0VZK2dORExaZ2ZDQURvTlNRdnFQTGtUU3V4ZnVOcTdJd0poT0RUQ3Y0WVVZdW5zamtjM2Y4K0JvN000djhLWXk1Y2l4bVBLVnhYYVd5bW5EV1hMUUdHeGlWakFtYUNvWnkxWFBiUFNvbjlPKzRWSFNZaGFJZEppZDJsaEpFU1V6dnUxZjgwbkJOaHl3WUEzY1k1b09oSTh1cWxhTGsraGZXWFBVYzFDSEFpalNPbkwyQ0dYZVBBWktIQnpkMFBnRUc1MGpaUjZwWnJUR1hacFd3QStKMjQ4Vnc0S05BQVFEajRVTE5WQkE2QWJ6OHJ1OFVsOVNWeUlUQ1ZiVVkvRFJzanhMeExTbWhkWVNZRUhoM29FaU1jaDJybTBpWHNzcUhTeEk1N3hmWktVL0NoWitRakFPYjFjNlhuTStnM1Q0Tkt6UmM0QUliR1pSOFRTZWFDWXpIMFVhOFpJZVk4UXpYYlNCRUFjdmxTWnl2d0JLWVBuZGIxMExqa0JRMWE0TlY4UDUxdTh6VFE2ZXluVCtBQThMT0l4ak8xbzBBREFMV2pmU2htamh3QUNnTlBvYUNnc25XT08rVkx3ckpPcTNWRURnQ0dMcmJNamRlSzBFRUdacXI5RHBFRGdGWGdxZHBFSzUwdmxzUFVRSmYvbkh3dDEvLy84OWJxRGpDUFdQQUFBQUFBU1VWT1JLNUNZSUk9XCIpO1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///106\n"); /***/ }), /* 107 */ /*!**************************************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=script&lang=js& */ 108);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRtQixDQUFnQixzbEJBQUcsRUFBQyIsImZpbGUiOiIxMDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///107\n"); /***/ }), /* 108 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 126));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 127));\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 128));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nfunction deepCloneAssign() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n for (var i in args) {\n for (var key in args[i]) {\n if (args[i].hasOwnProperty(key)) {\n origin[key] = args[i][key] && (0, _typeof2.default)(args[i][key]) === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];\n }\n }\n }\n return origin;\n}\nfunction formatterAssign(args, formatter) {\n for (var key in args) {\n if (args.hasOwnProperty(key) && args[key] !== null && (0, _typeof2.default)(args[key]) === 'object') {\n formatterAssign(args[key], formatter);\n } else if (key === 'format' && typeof args[key] === 'string') {\n args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;\n }\n }\n return args;\n}\n\n// 时间转换函数,为了匹配uniClinetDB读取出的时间与categories不同\nfunction getFormatDate(date) {\n var seperator = \"-\";\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var strDate = date.getDate();\n if (month >= 1 && month <= 9) {\n month = \"0\" + month;\n }\n if (strDate >= 0 && strDate <= 9) {\n strDate = \"0\" + strDate;\n }\n var currentdate = year + seperator + month + seperator + strDate;\n return currentdate;\n}\nvar lastMoveTime = null;\n/**\r\n * 防抖\r\n *\r\n * @param { Function } fn 要执行的方法\r\n * @param { Number } wait 防抖多少毫秒\r\n *\r\n * 在 vue 中使用(注意:不能使用箭头函数,否则this指向不对,并且不能再次封装如:\r\n * move(){ // 错误调用方式\r\n * debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)});\r\n * 应该直接使用:// 正确调用方式\r\n * move: debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)\r\n */\nfunction debounce(fn, wait) {\n var timer = false;\n return function () {\n var _arguments = arguments,\n _this = this;\n clearTimeout(timer);\n timer && clearTimeout(timer);\n timer = setTimeout(function () {\n timer = false;\n fn.apply(_this, _arguments); // 把参数传进去\n }, wait);\n };\n}\nvar _default2 = {\n name: 'qiun-data-charts',\n mixins: [uniCloud.mixinDatacom],\n props: {\n type: {\n type: String,\n default: null\n },\n canvasId: {\n type: String,\n default: 'uchartsid'\n },\n canvas2d: {\n type: Boolean,\n default: false\n },\n background: {\n type: String,\n default: 'rgba(0,0,0,0)'\n },\n animation: {\n type: Boolean,\n default: true\n },\n chartData: {\n type: Object,\n default: function _default() {\n return {\n categories: [],\n series: []\n };\n }\n },\n opts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n eopts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n loadingType: {\n type: Number,\n default: 2\n },\n errorShow: {\n type: Boolean,\n default: true\n },\n errorReload: {\n type: Boolean,\n default: true\n },\n errorMessage: {\n type: String,\n default: null\n },\n inScrollView: {\n type: Boolean,\n default: false\n },\n reshow: {\n type: Boolean,\n default: false\n },\n reload: {\n type: Boolean,\n default: false\n },\n disableScroll: {\n type: Boolean,\n default: false\n },\n optsWatch: {\n type: Boolean,\n default: true\n },\n onzoom: {\n type: Boolean,\n default: false\n },\n ontap: {\n type: Boolean,\n default: true\n },\n ontouch: {\n type: Boolean,\n default: false\n },\n onmouse: {\n type: Boolean,\n default: true\n },\n onmovetip: {\n type: Boolean,\n default: false\n },\n echartsH5: {\n type: Boolean,\n default: false\n },\n echartsApp: {\n type: Boolean,\n default: false\n },\n tooltipShow: {\n type: Boolean,\n default: true\n },\n tooltipFormat: {\n type: String,\n default: undefined\n },\n tooltipCustom: {\n type: Object,\n default: undefined\n },\n startDate: {\n type: String,\n default: undefined\n },\n endDate: {\n type: String,\n default: undefined\n },\n textEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n groupEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n pageScrollTop: {\n type: Number,\n default: 0\n },\n directory: {\n type: String,\n default: '/'\n },\n tapLegend: {\n type: Boolean,\n default: true\n },\n menus: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n cid: 'uchartsid',\n inWx: false,\n inAli: false,\n inTt: false,\n inBd: false,\n inH5: false,\n inApp: false,\n inWin: false,\n type2d: true,\n disScroll: false,\n openmouse: false,\n pixel: 1,\n cWidth: 375,\n cHeight: 250,\n showchart: false,\n echarts: false,\n echartsResize: {\n state: false\n },\n uchartsOpts: {},\n echartsOpts: {},\n drawData: {},\n lastDrawTime: null\n };\n },\n created: function created() {\n this.cid = this.canvasId;\n if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n var len = t.length;\n var id = '';\n for (var i = 0; i < 32; i++) {\n id += t.charAt(Math.floor(Math.random() * len));\n }\n this.cid = id;\n }\n var systemInfo = uni.getSystemInfoSync();\n if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n this.inWin = true;\n }\n\n //非微信小程序端强制关闭canvas2d模式\n\n this.type2d = false;\n this.disScroll = this.disableScroll;\n },\n mounted: function mounted() {\n var _this2 = this;\n this.inApp = true;\n if (this.echartsApp === true) {\n this.echarts = true;\n this.openmouse = false;\n }\n this.$nextTick(function () {\n _this2.beforeInit();\n });\n },\n destroyed: function destroyed() {\n if (this.echarts === true) {\n delete _configEcharts.default.option[this.cid];\n delete _configEcharts.default.instance[this.cid];\n } else {\n delete _configUcharts.default.option[this.cid];\n delete _configUcharts.default.instance[this.cid];\n }\n uni.offWindowResize(function () {});\n },\n watch: {\n chartDataProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n this._clearChart();\n if (val.series && val.series.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:chartData数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n localdata: {\n handler: function handler(val, oldval) {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n if (val.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n },\n immediate: false,\n deep: true\n },\n optsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:opts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n eoptsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:eopts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n reshow: function reshow(val, oldval) {\n var _this3 = this;\n if (val === true && this.mixinDatacomLoading === false) {\n setTimeout(function () {\n _this3.mixinDatacomErrorMessage = null;\n _this3.echartsResize.state = !_this3.echartsResize.state;\n _this3.checkData(_this3.drawData);\n }, 200);\n }\n },\n reload: function reload(val, oldval) {\n if (val === true) {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n },\n mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n if (val) {\n this.emitMsg({\n name: 'error',\n params: {\n type: \"error\",\n errorShow: this.errorShow,\n msg: val,\n id: this.cid\n }\n });\n if (this.errorShow) {\n __f__(\"log\", '[秋云图表组件]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:611\");\n }\n }\n },\n errorMessage: function errorMessage(val, oldval) {\n if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n this.showchart = false;\n this.mixinDatacomLoading = false;\n this.mixinDatacomErrorMessage = val;\n } else {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n }\n },\n computed: {\n optsProps: function optsProps() {\n return JSON.parse(JSON.stringify(this.opts));\n },\n eoptsProps: function eoptsProps() {\n return JSON.parse(JSON.stringify(this.eopts));\n },\n chartDataProps: function chartDataProps() {\n return JSON.parse(JSON.stringify(this.chartData));\n }\n },\n methods: {\n beforeInit: function beforeInit() {\n this.mixinDatacomErrorMessage = null;\n if ((0, _typeof2.default)(this.chartData) === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, this.chartData);\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.checkData(this.chartData);\n } else if (this.localdata.length > 0) {\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.localdataInit(this.localdata);\n } else if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.getCloudData();\n } else {\n this.mixinDatacomLoading = true;\n }\n },\n localdataInit: function localdataInit(resdata) {\n //替换enum类型为正确的描述\n if (this.groupEnum.length > 0) {\n for (var i = 0; i < resdata.length; i++) {\n for (var j = 0; j < this.groupEnum.length; j++) {\n if (resdata[i].group === this.groupEnum[j].value) {\n resdata[i].group = this.groupEnum[j].text;\n }\n }\n }\n }\n if (this.textEnum.length > 0) {\n for (var _i = 0; _i < resdata.length; _i++) {\n for (var _j = 0; _j < this.textEnum.length; _j++) {\n if (resdata[_i].text === this.textEnum[_j].value) {\n resdata[_i].text = this.textEnum[_j].text;\n }\n }\n }\n }\n var needCategories = false;\n var tmpData = {\n categories: [],\n series: []\n };\n var tmpcategories = [];\n var tmpseries = [];\n //拼接categories\n if (this.echarts === true) {\n needCategories = _configEcharts.default.categories.includes(this.type);\n } else {\n needCategories = _configUcharts.default.categories.includes(this.type);\n }\n if (needCategories === true) {\n //如果props中的chartData带有categories,则优先使用chartData的categories\n if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n tmpcategories = this.chartData.categories;\n } else {\n //如果是日期类型的数据,不管是本地数据还是云数据,都按起止日期自动拼接categories\n if (this.startDate && this.endDate) {\n var idate = new Date(this.startDate);\n var edate = new Date(this.endDate);\n while (idate <= edate) {\n tmpcategories.push(getFormatDate(idate));\n idate = idate.setDate(idate.getDate() + 1);\n idate = new Date(idate);\n }\n //否则从结果中去重并拼接categories\n } else {\n var tempckey = {};\n resdata.map(function (item, index) {\n if (item.text != undefined && !tempckey[item.text]) {\n tmpcategories.push(item.text);\n tempckey[item.text] = true;\n }\n });\n }\n }\n tmpData.categories = tmpcategories;\n }\n //拼接series\n var tempskey = {};\n resdata.map(function (item, index) {\n if (item.group != undefined && !tempskey[item.group]) {\n tmpseries.push({\n name: item.group,\n data: []\n });\n tempskey[item.group] = true;\n }\n });\n //如果没有获取到分组名称(可能是带categories的数据,也可能是不带的饼图类)\n if (tmpseries.length == 0) {\n tmpseries = [{\n name: '默认分组',\n data: []\n }];\n //如果是需要categories的图表类型\n if (needCategories === true) {\n for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n var seriesdata = 0;\n for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n if (resdata[_i2].text == tmpcategories[_j2]) {\n seriesdata = resdata[_i2].value;\n }\n }\n tmpseries[0].data.push(seriesdata);\n }\n //如果是饼图类的图表类型\n } else {\n for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n tmpseries[0].data.push({\n \"name\": resdata[_i3].text,\n \"value\": resdata[_i3].value\n });\n }\n }\n //如果有分组名\n } else {\n for (var k = 0; k < tmpseries.length; k++) {\n //如果有categories\n if (tmpcategories.length > 0) {\n for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n var _seriesdata = 0;\n for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n _seriesdata = resdata[_i4].value;\n }\n }\n tmpseries[k].data.push(_seriesdata);\n }\n //如果传了group而没有传text,即没有categories(正常情况下这种数据是不符合数据要求规范的)\n } else {\n for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n if (tmpseries[k].name == resdata[_i5].group) {\n tmpseries[k].data.push(resdata[_i5].value);\n }\n }\n }\n }\n }\n tmpData.series = tmpseries;\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, tmpData);\n this.checkData(tmpData);\n },\n reloading: function reloading() {\n if (this.errorReload === false) {\n return;\n }\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.onMixinDatacomPropsChange(true);\n } else {\n this.beforeInit();\n }\n },\n checkData: function checkData(anyData) {\n var _this4 = this;\n var cid = this.cid;\n //复位opts或eopts\n if (this.echarts === true) {\n _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n _configEcharts.default.option[cid].id = cid;\n _configEcharts.default.option[cid].type = this.type;\n } else {\n if (this.type && _configUcharts.default.type.includes(this.type)) {\n _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n _configUcharts.default.option[cid].canvasId = cid;\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:props参数中type类型不正确';\n }\n }\n //挂载categories和series\n var newData = deepCloneAssign({}, anyData);\n if (newData.series !== undefined && newData.series.length > 0) {\n this.mixinDatacomErrorMessage = null;\n if (this.echarts === true) {\n _configEcharts.default.option[cid].chartData = newData;\n this.$nextTick(function () {\n _this4.init();\n });\n } else {\n _configUcharts.default.option[cid].categories = newData.categories;\n _configUcharts.default.option[cid].series = newData.series;\n this.$nextTick(function () {\n _this4.init();\n });\n }\n }\n },\n resizeHandler: function resizeHandler() {\n var _this5 = this;\n //渲染防抖\n var currTime = Date.now();\n var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n var duration = currTime - lastDrawTime;\n if (duration < 1000) return;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + this.cid).boundingClientRect(function (data) {\n _this5.showchart = true;\n if (data.width > 0 && data.height > 0) {\n if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n _this5.checkData(_this5.drawData);\n }\n }\n }).exec();\n },\n getCloudData: function getCloudData() {\n var _this6 = this;\n if (this.mixinDatacomLoading == true) {\n return;\n }\n this.mixinDatacomLoading = true;\n this.mixinDatacomGet().then(function (res) {\n _this6.mixinDatacomResData = res.result.data;\n _this6.localdataInit(_this6.mixinDatacomResData);\n }).catch(function (err) {\n _this6.mixinDatacomLoading = false;\n _this6.showchart = false;\n _this6.mixinDatacomErrorMessage = '请求错误:' + err;\n });\n },\n onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n if (needReset == true && this.collection !== '') {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this._clearChart();\n this.getCloudData();\n }\n },\n _clearChart: function _clearChart() {\n var cid = this.cid;\n if (this.echarts !== true && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].context) {\n var ctx = _configUcharts.default.option[cid].context;\n if ((0, _typeof2.default)(ctx) === \"object\" && !!!_configUcharts.default.option[cid].update) {\n ctx.clearRect(0, 0, this.cWidth * this.pixel, this.cHeight * this.pixel);\n ctx.draw();\n }\n }\n },\n init: function init() {\n var _this7 = this;\n var cid = this.cid;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + cid).boundingClientRect(function (data) {\n if (data.width > 0 && data.height > 0) {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.lastDrawTime = Date.now();\n _this7.cWidth = data.width;\n _this7.cHeight = data.height;\n if (_this7.echarts !== true) {\n _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n _configUcharts.default.option[cid].animation = _this7.animation;\n _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n _configUcharts.default.option[cid].onzoom = _this7.onzoom;\n _configUcharts.default.option[cid].ontap = _this7.ontap;\n _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n }\n //如果是H5或者App端,采用renderjs渲染图表\n if (_this7.inH5 || _this7.inApp) {\n if (_this7.echarts == true) {\n _configEcharts.default.option[cid].ontap = _this7.ontap;\n _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n } else {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n }\n //如果是小程序端,采用uCharts渲染\n } else {\n _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n _this7.mixinDatacomErrorMessage = null;\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.$nextTick(function () {\n if (_this7.type2d === true) {\n var query = uni.createSelectorQuery().in(_this7);\n query.select('#' + cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n var ctx = canvas.getContext('2d');\n _configUcharts.default.option[cid].context = ctx;\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n canvas.width = data.width * _this7.pixel;\n canvas.height = data.height * _this7.pixel;\n canvas._width = data.width * _this7.pixel;\n canvas._height = data.height * _this7.pixel;\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n } else {\n _this7.showchart = false;\n _this7.mixinDatacomErrorMessage = '参数错误:开启2d模式后,未获取到dom节点,canvas-id:' + cid;\n }\n });\n } else {\n if (_this7.inAli) {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n }\n _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n }\n });\n }\n } else {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = false;\n if (_this7.reshow == true) {\n _this7.mixinDatacomErrorMessage = '布局错误:未获取到父元素宽高尺寸!canvas-id:' + cid;\n }\n }\n }).exec();\n },\n saveImage: function saveImage() {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success() {\n uni.showToast({\n title: '保存成功',\n duration: 2000\n });\n }\n });\n }\n }, this);\n },\n getImage: function getImage() {\n var _this8 = this;\n if (this.type2d == false) {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: res.tempFilePath\n }\n });\n }\n }, this);\n } else {\n var query = uni.createSelectorQuery().in(this);\n query.select('#' + this.cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: canvas.toDataURL('image/png')\n }\n });\n }\n });\n }\n },\n _error: function _error(e) {\n this.mixinDatacomErrorMessage = e.detail.errMsg;\n },\n emitMsg: function emitMsg(msg) {\n this.$emit(msg.name, msg.params);\n },\n getRenderType: function getRenderType() {\n //防止如果开启echarts且父元素为v-if的情况renderjs监听不到prop变化的问题\n if (this.echarts === true && this.mixinDatacomLoading === false) {\n this.beforeInit();\n }\n },\n toJSON: function toJSON() {\n return this;\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 109)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOlsiYXJncyIsIm9yaWdpbiIsImZvcm1hdHRlckFzc2lnbiIsIm1vbnRoIiwic3RyRGF0ZSIsImNsZWFyVGltZW91dCIsInRpbWVyIiwiZm4iLCJuYW1lIiwibWl4aW5zIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNhbnZhc0lkIiwiY2FudmFzMmQiLCJiYWNrZ3JvdW5kIiwiYW5pbWF0aW9uIiwiY2hhcnREYXRhIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsIm9wdHMiLCJlb3B0cyIsImxvYWRpbmdUeXBlIiwiZXJyb3JTaG93IiwiZXJyb3JSZWxvYWQiLCJlcnJvck1lc3NhZ2UiLCJpblNjcm9sbFZpZXciLCJyZXNob3ciLCJyZWxvYWQiLCJkaXNhYmxlU2Nyb2xsIiwib3B0c1dhdGNoIiwib256b29tIiwib250YXAiLCJvbnRvdWNoIiwib25tb3VzZSIsIm9ubW92ZXRpcCIsImVjaGFydHNINSIsImVjaGFydHNBcHAiLCJ0b29sdGlwU2hvdyIsInRvb2x0aXBGb3JtYXQiLCJ0b29sdGlwQ3VzdG9tIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInRleHRFbnVtIiwiZ3JvdXBFbnVtIiwicGFnZVNjcm9sbFRvcCIsImRpcmVjdG9yeSIsInRhcExlZ2VuZCIsIm1lbnVzIiwiZGF0YSIsImNpZCIsImluV3giLCJpbkFsaSIsImluVHQiLCJpbkJkIiwiaW5INSIsImluQXBwIiwiaW5XaW4iLCJ0eXBlMmQiLCJkaXNTY3JvbGwiLCJvcGVubW91c2UiLCJwaXhlbCIsImNXaWR0aCIsImNIZWlnaHQiLCJzaG93Y2hhcnQiLCJlY2hhcnRzIiwiZWNoYXJ0c1Jlc2l6ZSIsInN0YXRlIiwidWNoYXJ0c09wdHMiLCJlY2hhcnRzT3B0cyIsImRyYXdEYXRhIiwibGFzdERyYXdUaW1lIiwiY3JlYXRlZCIsImlkIiwibW91bnRlZCIsImRlc3Ryb3llZCIsInVuaSIsIndhdGNoIiwiY2hhcnREYXRhUHJvcHMiLCJoYW5kbGVyIiwiaW1tZWRpYXRlIiwiZGVlcCIsImxvY2FsZGF0YSIsIm9wdHNQcm9wcyIsImVvcHRzUHJvcHMiLCJzZXRUaW1lb3V0IiwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlIiwicGFyYW1zIiwibXNnIiwiY29tcHV0ZWQiLCJtZXRob2RzIiwiYmVmb3JlSW5pdCIsImxvY2FsZGF0YUluaXQiLCJyZXNkYXRhIiwibmVlZENhdGVnb3JpZXMiLCJ0bXBjYXRlZ29yaWVzIiwiaWRhdGUiLCJ0ZW1wY2tleSIsInRtcERhdGEiLCJ0bXBzZXJpZXMiLCJ0ZW1wc2tleSIsInNlcmllc2RhdGEiLCJyZWxvYWRpbmciLCJjaGVja0RhdGEiLCJjZmUiLCJjZnUiLCJyZXNpemVIYW5kbGVyIiwiY3JlYXRlU2VsZWN0b3JRdWVyeSIsImluIiwic2VsZWN0IiwiYm91bmRpbmdDbGllbnRSZWN0IiwiZXhlYyIsImdldENsb3VkRGF0YSIsInRoZW4iLCJjYXRjaCIsIm9uTWl4aW5EYXRhY29tUHJvcHNDaGFuZ2UiLCJfY2xlYXJDaGFydCIsImN0eCIsImluaXQiLCJxdWVyeSIsImZpZWxkcyIsIm5vZGUiLCJzaXplIiwiY2FudmFzIiwic2F2ZUltYWdlIiwic3VjY2VzcyIsImZpbGVQYXRoIiwidGl0bGUiLCJkdXJhdGlvbiIsImdldEltYWdlIiwiYmFzZTY0IiwiX2Vycm9yIiwiZW1pdE1zZyIsImdldFJlbmRlclR5cGUiLCJ0b0pTT04iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBOEpBO0FBQ0E7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7RUFBQTtFQUFBO0lBQUFBO0VBQUE7RUFDQTtJQUNBO01BQ0E7UUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtJQUNBO01BQ0FDO0lBQ0E7TUFDQUY7SUFDQTtFQUNBO0VBQ0E7QUFDQTs7QUFFQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtJQUNBRztFQUNBO0VBQ0E7SUFDQUM7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7SUFBQTtNQUFBO0lBQ0FDO0lBQ0FDO0lBQ0FBO01BQ0FBO01BQ0FDO0lBQ0E7RUFDQTtBQUNBO0FBQUEsZ0JBRUE7RUFDQUM7RUFDQUM7RUFDQUM7SUFDQUM7TUFDQUE7TUFDQUM7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO1FBQ0E7VUFDQU07VUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQVQ7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQVM7TUFDQVY7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQVU7TUFDQVg7TUFDQUM7SUFDQTtJQUNBVztNQUNBWjtNQUNBQztJQUNBO0lBQ0FZO01BQ0FiO01BQ0FDO0lBQ0E7SUFDQWE7TUFDQWQ7TUFDQUM7SUFDQTtJQUNBYztNQUNBZjtNQUNBQztJQUNBO0lBQ0FlO01BQ0FoQjtNQUNBQztJQUNBO0lBQ0FnQjtNQUNBakI7TUFDQUM7SUFDQTtJQUNBaUI7TUFDQWxCO01BQ0FDO0lBQ0E7SUFDQWtCO01BQ0FuQjtNQUNBQztJQUNBO0lBQ0FtQjtNQUNBcEI7TUFDQUM7SUFDQTtJQUNBb0I7TUFDQXJCO01BQ0FDO0lBQ0E7SUFDQXFCO01BQ0F0QjtNQUNBQztJQUNBO0lBQ0FzQjtNQUNBdkI7TUFDQUM7SUFDQTtJQUNBdUI7TUFDQXhCO01BQ0FDO0lBQ0E7SUFDQXdCO01BQ0F6QjtNQUNBQztJQUNBO0lBQ0F5QjtNQUNBMUI7TUFDQUM7SUFDQTtJQUNBMEI7TUFDQTNCO01BQ0FDO0lBQ0E7SUFDQTJCO01BQ0E1QjtNQUNBQztJQUNBO0lBQ0E0QjtNQUNBN0I7TUFDQUM7SUFDQTtJQUNBNkI7TUFDQTlCO01BQ0FDO0lBQ0E7SUFDQThCO01BQ0EvQjtNQUNBQztJQUNBO0lBQ0ErQjtNQUNBaEM7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQWdDO01BQ0FqQztNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBaUM7TUFDQWxDO01BQ0FDO0lBQ0E7SUFDQWtDO01BQ0FuQztNQUNBQztJQUNBO0lBQ0FtQztNQUNBcEM7TUFDQUM7SUFDQTtJQUNBb0M7TUFDQXJDO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQXFDO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBO01BQ0E7SUFDQTs7SUFVQTs7SUFFQTtJQWVBO0VBQ0E7RUFDQUM7SUFBQTtJQUVBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFnQkE7TUFDQTtJQUNBO0VBcUJBO0VBQ0FDO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7RUFFQTtFQUNBQztJQUNBQztNQUNBQztRQUNBO1VBQ0E7WUFDQTtZQUNBO2NBQ0E7WUFDQTtjQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FDO01BQ0FIO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FFO01BQ0FKO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FHO01BQ0FMO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBdEQ7TUFBQTtNQUNBO1FBQ0EwRDtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBekQ7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTBEO01BQ0E7UUFDQTtVQUFBOUU7VUFBQStFO1lBQUE1RTtZQUFBWTtZQUFBaUU7WUFBQWY7VUFBQTtRQUFBO1FBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBaEQ7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FnRTtJQUNBTjtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FOO01BQ0E7SUFDQTtFQUNBO0VBQ0FZO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1VBQ0E7WUFDQTtjQUNBQztZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQ0E7Y0FDQUE7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQTNFO1FBQUFDO01BQUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBMkU7TUFDQTtRQUNBQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQ0FDO1FBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FBO2NBQ0FDO2NBQ0FB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QUFBK0U7Z0JBQUE1RTtnQkFBQXVIO2NBQUE7WUFBQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0FYLE1BQ0FWLHVCQUNBVztVQUFBQztVQUFBQztRQUFBLEdBQ0FYO1VBQ0E7WUFDQTtZQUNBO2NBQUF2RztjQUFBK0U7Z0JBQUE1RTtnQkFBQXVIO2NBQUE7WUFBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBb0tBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsNEIiLCJmaWxlIjoiMTA4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPCEtLSBcclxuICogcWl1bi1kYXRhLWNoYXJ0cyDnp4vkupHpq5jmgKfog73ot6jlhajnq6/lm77ooajnu4Tku7ZcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiDkuLrmlrnkvr/mm7TlpJrlvIDlj5HogIXkvb/nlKjvvIzlpoLmnInmm7Tlpb3nmoTlu7rorq7or7fmj5DkuqTnoIHkupEgUHVsbCBSZXF1ZXN0cyDvvIFcclxuICpcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIiA6aWQ9XCInQ2hhcnRCb3hJZCcrY2lkXCI+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tTG9hZGluZ1wiPlxyXG4gICAgICA8IS0tIOiHquWumuS5ieWKoOi9veeKtuaAge+8jOivt+aUuei/memHjCAtLT5cclxuICAgICAgPHFpdW4tbG9hZGluZyA6bG9hZGluZ1R5cGU9XCJsb2FkaW5nVHlwZVwiIC8+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlICYmIGVycm9yU2hvd1wiIEB0YXA9XCJyZWxvYWRpbmdcIj5cclxuICAgICAgPCEtLSDoh6rlrprkuYnplJnor6/mj5DnpLrvvIzor7fmlLnov5nph4wgLS0+XHJcbiAgICAgIDxxaXVuLWVycm9yIDplcnJvck1lc3NhZ2U9XCJlcnJvck1lc3NhZ2VcIiAvPlxyXG4gICAgPC92aWV3PlxyXG4gICAgPCEtLSBBUFDlkoxINemHh+eUqHJlbmRlcmpz5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuICAgIDxibG9jayB2LWlmPVwiZWNoYXJ0c1wiPlxyXG4gICAgICA8dmlld1xyXG4gICAgICAgIDpzdHlsZT1cInsgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIlxyXG4gICAgICAgIDpkYXRhLWRpcmVjdG9yeT1cImRpcmVjdG9yeVwiXHJcbiAgICAgICAgOmlkPVwiJ0VDJytjaWRcIiBcclxuICAgICAgICA6cHJvcD1cImVjaGFydHNPcHRzXCIgXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMuZWNpbml0XCIgXHJcbiAgICAgICAgOnJlc2l6ZT1cImVjaGFydHNSZXNpemVcIlxyXG4gICAgICAgIDpjaGFuZ2U6cmVzaXplPVwicmRjaGFydHMuZWNyZXNpemVcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtZWxzZT5cclxuICAgICAgPHZpZXdcclxuICAgICAgICB2LW9uOnRhcD1cInJkY2hhcnRzLnRhcFwiXHJcbiAgICAgICAgdi1vbjptb3VzZW1vdmU9XCJyZGNoYXJ0cy5tb3VzZU1vdmVcIlxyXG4gICAgICAgIHYtb246bW91c2Vkb3duPVwicmRjaGFydHMubW91c2VEb3duXCJcclxuICAgICAgICB2LW9uOm1vdXNldXA9XCJyZGNoYXJ0cy5tb3VzZVVwXCJcclxuICAgICAgICB2LW9uOnRvdWNoc3RhcnQ9XCJyZGNoYXJ0cy50b3VjaFN0YXJ0XCJcclxuICAgICAgICB2LW9uOnRvdWNobW92ZT1cInJkY2hhcnRzLnRvdWNoTW92ZVwiXHJcbiAgICAgICAgdi1vbjp0b3VjaGVuZD1cInJkY2hhcnRzLnRvdWNoRW5kXCJcclxuICAgICAgICA6aWQ9XCInVUMnK2NpZFwiXHJcbiAgICAgICAgOnByb3A9XCJ1Y2hhcnRzT3B0c1wiXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMudWNpbml0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc2FibGVTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gICAgPCEtLSDmlK/ku5jlrp3lsI/nqIvluo8gLS0+XHJcbiAgICA8IS0tICNpZmRlZiBNUC1BTElQQVkgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cIm9udG91Y2hcIj5cclxuICAgICAgPGNhbnZhc1xyXG4gICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICA6d2lkdGg9XCJjV2lkdGggKiBwaXhlbFwiXHJcbiAgICAgICAgOmhlaWdodD1cImNIZWlnaHQgKiBwaXhlbFwiXHJcbiAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgIEB0YXA9XCJfdGFwXCJcclxuICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhb250b3VjaFwiPlxyXG4gICAgICA8Y2FudmFzXHJcbiAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgIDp3aWR0aD1cImNXaWR0aCAqIHBpeGVsXCJcclxuICAgICAgICA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgLz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICAgIDwhLS0g5YW25LuW5bCP56iL5bqP6YCa6L+HdnVl5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgTVAtMzYwIHx8IE1QLUJBSURVIHx8IE1QLVFRIHx8IE1QLVRPVVRJQU8gfHwgTVAtV0VJWElOIHx8IE1QLUtVQUlTSE9VIHx8IE1QLUxBUksgfHwgTVAtSkQgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cInR5cGUyZFwiPlxyXG4gICAgICA8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCIhb250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhdHlwZTJkXCI+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCJvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtaWY9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgICAgPHZpZXcgdi1pZj1cIiFvbnRvdWNoXCIgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdGFwPVwiX3RhcFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1pZj1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gIDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB1Q2hhcnRzIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy91LWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZnUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy11Y2hhcnRzLmpzJztcclxuLy8gI2lmZGVmIEFQUC1WVUUgfHwgSDVcclxuaW1wb3J0IGNmZSBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMnO1xyXG4vLyAjZW5kaWZcclxuXHJcbmZ1bmN0aW9uIGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG4gIGZvciAobGV0IGkgaW4gYXJncykge1xyXG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3NbaV0pIHtcclxuICAgICAgaWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIG9yaWdpbltrZXldID0gYXJnc1tpXVtrZXldICYmIHR5cGVvZiBhcmdzW2ldW2tleV0gPT09ICdvYmplY3QnID8gZGVlcENsb25lQXNzaWduKEFycmF5LmlzQXJyYXkoYXJnc1tpXVtrZXldKSA/IFtdIDoge30sIG9yaWdpbltrZXldLCBhcmdzW2ldW2tleV0pIDogYXJnc1tpXVtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvcmlnaW47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSxmb3JtYXR0ZXIpXHJcbiAgICB9ZWxzZSBpZihrZXkgPT09ICdmb3JtYXQnICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdzdHJpbmcnKXtcclxuICAgICAgYXJnc1snZm9ybWF0dGVyJ10gPSBmb3JtYXR0ZXJbYXJnc1trZXldXSA/IGZvcm1hdHRlclthcmdzW2tleV1dIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYXJncztcclxufVxyXG5cclxuLy8g5pe26Ze06L2s5o2i5Ye95pWw77yM5Li65LqG5Yy56YWNdW5pQ2xpbmV0RELor7vlj5blh7rnmoTml7bpl7TkuI5jYXRlZ29yaWVz5LiN5ZCMXHJcbmZ1bmN0aW9uIGdldEZvcm1hdERhdGUoZGF0ZSkge1xyXG5cdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHR2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHR2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG5cdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0aWYgKG1vbnRoID49IDEgJiYgbW9udGggPD0gOSkge1xyXG5cdFx0XHRtb250aCA9IFwiMFwiICsgbW9udGg7XHJcblx0fVxyXG5cdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0fVxyXG5cdHZhciBjdXJyZW50ZGF0ZSA9IHllYXIgKyBzZXBlcmF0b3IgKyBtb250aCArIHNlcGVyYXRvciArIHN0ckRhdGU7XHJcblx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG59XHJcblxyXG52YXIgbGFzdE1vdmVUaW1lID0gbnVsbDtcclxuLyoqXHJcbiAqIOmYsuaKllxyXG4gKlxyXG4gKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG4gKiBAcGFyYW0geyBOdW1iZXIgfSB3YWl0ICDpmLLmipblpJrlsJHmr6vnp5JcclxuICpcclxuICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcbiAqIG1vdmUoKXsgIC8vIOmUmeivr+iwg+eUqOaWueW8j1xyXG4gKiAgIGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcclxuICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuICogfSwgMTAwMCl977yJO1xyXG4gKiDlupTor6Xnm7TmjqXkvb/nlKjvvJovLyDmraPnoa7osIPnlKjmlrnlvI9cclxuICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gKiAgIGNvbnNvbGUubG9nKHRoaXMudGl0bGUpO1xyXG4gKiB9LCAxMDAwKVxyXG4gKi9cclxuZnVuY3Rpb24gZGVib3VuY2UoZm4sIHdhaXQpIHtcclxuICBsZXQgdGltZXIgPSBmYWxzZTtcclxuICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgdGltZXIgJiYgY2xlYXJUaW1lb3V0KHRpbWVyKTtcclxuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRpbWVyID0gZmFsc2U7XHJcbiAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIOaKiuWPguaVsOS8oOi/m+WOu1xyXG4gICAgfSwgd2FpdCk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdxaXVuLWRhdGEtY2hhcnRzJyxcclxuICBtaXhpbnM6IFt1bmlDbG91ZC5taXhpbkRhdGFjb21dLFxyXG4gIHByb3BzOiB7XHJcbiAgICB0eXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGNhbnZhc0lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJ3VjaGFydHNpZCdcclxuICAgIH0sXHJcbiAgICBjYW52YXMyZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGJhY2tncm91bmQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuICAgIH0sXHJcbiAgICBhbmltYXRpb246IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGNoYXJ0RGF0YToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNhdGVnb3JpZXM6IFtdLFxyXG4gICAgICAgICAgc2VyaWVzOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvcHRzOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlb3B0czoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbG9hZGluZ1R5cGU6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAyXHJcbiAgICB9LFxyXG4gICAgZXJyb3JTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlcnJvclJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGluU2Nyb2xsVmlldzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlc2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGRpc2FibGVTY3JvbGw6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBvcHRzV2F0Y2g6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9uem9vbToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG9udGFwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBvbnRvdWNoOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgb25tb3VzZToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb25tb3ZldGlwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0g1OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0FwcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB0b29sdGlwRm9ybWF0OiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcEN1c3RvbToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIHN0YXJ0RGF0ZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIGVuZERhdGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICB0ZXh0RW51bToge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBncm91cEVudW06IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQgKCkge1xyXG4gICAgICAgIHJldHVybiBbXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcGFnZVNjcm9sbFRvcDoge1xyXG4gICAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICAgIGRlZmF1bHQ6IDBcclxuICAgIH0sXHJcbiAgICBkaXJlY3Rvcnk6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAnLydcclxuICAgIH0sXHJcbiAgICB0YXBMZWdlbmQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG1lbnVzOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0ICgpIHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNpZDogJ3VjaGFydHNpZCcsXHJcbiAgICAgIGluV3g6IGZhbHNlLFxyXG4gICAgICBpbkFsaTogZmFsc2UsXHJcbiAgICAgIGluVHQ6IGZhbHNlLFxyXG4gICAgICBpbkJkOiBmYWxzZSxcclxuICAgICAgaW5INTogZmFsc2UsXHJcbiAgICAgIGluQXBwOiBmYWxzZSxcclxuICAgICAgaW5XaW46IGZhbHNlLFxyXG4gICAgICB0eXBlMmQ6IHRydWUsXHJcbiAgICAgIGRpc1Njcm9sbDogZmFsc2UsXHJcbiAgICAgIG9wZW5tb3VzZTogZmFsc2UsXHJcbiAgICAgIHBpeGVsOiAxLFxyXG4gICAgICBjV2lkdGg6IDM3NSxcclxuICAgICAgY0hlaWdodDogMjUwLFxyXG4gICAgICBzaG93Y2hhcnQ6IGZhbHNlLFxyXG4gICAgICBlY2hhcnRzOiBmYWxzZSxcclxuICAgICAgZWNoYXJ0c1Jlc2l6ZTp7XHJcbiAgICAgICAgc3RhdGU6ZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgdWNoYXJ0c09wdHM6IHt9LFxyXG4gICAgICBlY2hhcnRzT3B0czoge30sXHJcbiAgICAgIGRyYXdEYXRhOnt9LFxyXG4gICAgICBsYXN0RHJhd1RpbWU6bnVsbCxcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCl7XHJcbiAgICB0aGlzLmNpZCA9IHRoaXMuY2FudmFzSWRcclxuICAgIGlmICh0aGlzLmNhbnZhc0lkID09ICd1Y2hhcnRzaWQnIHx8IHRoaXMuY2FudmFzSWQgPT0gJycpIHtcclxuICAgICAgbGV0IHQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidcclxuICAgICAgbGV0IGxlbiA9IHQubGVuZ3RoXHJcbiAgICAgIGxldCBpZCA9ICcnXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7IGkrKykge1xyXG4gICAgICAgIGlkICs9IHQuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbikpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaWQgPSBpZFxyXG4gICAgfVxyXG4gICAgY29uc3Qgc3lzdGVtSW5mbyA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcbiAgICBpZihzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnd2luZG93cycgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ21hYycpe1xyXG4gICAgICB0aGlzLmluV2luID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vICNpZmRlZiBNUC1XRUlYSU5cclxuICAgIHRoaXMuaW5XeCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jYW52YXMyZCA9PT0gZmFsc2UgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ3dpbmRvd3MnIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICdtYWMnKSB7XHJcbiAgICAgIHRoaXMudHlwZTJkID0gZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50eXBlMmQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBpeGVsID0gc3lzdGVtSW5mby5waXhlbFJhdGlvO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvL+mdnuW+ruS/oeWwj+eoi+W6j+err+W8uuWItuWFs+mXrWNhbnZhczJk5qih5byPXHJcbiAgICAvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG4gICAgdGhpcy50eXBlMmQgPSBmYWxzZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmICBNUC1UT1VUSUFPIHx8IE1QLUxBUksgfHwgTVAtQUxJUEFZXHJcbiAgICB0aGlzLnR5cGUyZCA9IHRoaXMuY2FudmFzMmQ7XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgIHRoaXMuaW5BbGkgPSB0cnVlO1xyXG4gICAgdGhpcy5waXhlbCA9IHN5c3RlbUluZm8ucGl4ZWxSYXRpbztcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIE1QLUJBSURVXHJcbiAgICB0aGlzLmluQmQgPSB0cnVlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG4gICAgdGhpcy5pblR0ID0gdHJ1ZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgdGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgLy8gI2lmZGVmIEFQUC1WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0FwcCA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmVjaGFydHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2VcclxuICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIEg1XHJcbiAgICB0aGlzLmluSDUgPSB0cnVlO1xyXG4gICAgaWYodGhpcy5pbldpbiA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0g1ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU8gfHwgQVBQLVZVRVxyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHVuaS5vbldpbmRvd1Jlc2l6ZShcclxuICAgICAgZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAgICAgaWYgKF90aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXJybXNnID0gX3RoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIGlmIChlcnJtc2cgIT09IG51bGwgJiYgZXJybXNnICE9PSAnbnVsbCcgJiYgZXJybXNnICE9PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoX3RoaXMuZWNoYXJ0cykge1xyXG4gICAgICAgICAgX3RoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBfdGhpcy5yZXNpemVIYW5kbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aW1lKVxyXG4gICAgKTtcclxuICAgIC8vICNlbmRpZlxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmZS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1lbHNle1xyXG4gICAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1cclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU9cclxuICAgIHVuaS5vZmZXaW5kb3dSZXNpemUoKCk9Pnt9KVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY2hhcnREYXRhUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICBpZiAodmFsLnNlcmllcyAmJiB2YWwuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJpjaGFydERhdGHmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2FsZGF0YTp7XHJcbiAgICAgIGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSkge1xyXG4gICAgICAgICAgaWYgKHZhbC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9wdHNQcm9wczoge1xyXG4gICAgICBoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSAmJiB0aGlzLmVjaGFydHMgPT09IGZhbHNlICYmIHRoaXMub3B0c1dhdGNoID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mm9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkgJiYgdGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJplb3B0c+aVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgcmVzaG93KHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZWxvYWQodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2Vycm9yJywgcGFyYW1zOiB7dHlwZTpcImVycm9yXCIsIGVycm9yU2hvdzogdGhpcy5lcnJvclNob3csIG1zZzogdmFsLCBpZDogdGhpcy5jaWR9fSk7XHJcbiAgICAgICAgaWYodGhpcy5lcnJvclNob3cpe1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgJiYgdGhpcy5lcnJvclNob3cgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gJ251bGwnICYmIHZhbCAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gdmFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuICAgIH0sXHJcbiAgICBjaGFydERhdGFQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBiZWZvcmVJbml0KCl7XHJcbiAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNoYXJ0RGF0YSA9PT0gJ29iamVjdCcgJiYgdGhpcy5jaGFydERhdGEgIT0gbnVsbCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICAgIHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuY2hhcnREYXRhKTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5jaGFydERhdGEpO1xyXG4gICAgICB9ZWxzZSBpZih0aGlzLmxvY2FsZGF0YS5sZW5ndGg+MCl7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9jYWxkYXRhSW5pdCh0aGlzLmxvY2FsZGF0YSk7XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMuY29sbGVjdGlvbiAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xvdWREYXRhKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBsb2NhbGRhdGFJbml0KHJlc2RhdGEpe1xyXG4gICAgICAvL+abv+aNomVudW3nsbvlnovkuLrmraPnoa7nmoTmj4/ov7BcclxuICAgICAgaWYodGhpcy5ncm91cEVudW0ubGVuZ3RoPjApe1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmdyb3VwRW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLmdyb3VwID09PSB0aGlzLmdyb3VwRW51bVtqXS52YWx1ZSl7XHJcbiAgICAgICAgICAgICAgcmVzZGF0YVtpXS5ncm91cCA9IHRoaXMuZ3JvdXBFbnVtW2pdLnRleHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLnRleHRFbnVtLmxlbmd0aD4wKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy50ZXh0RW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLnRleHQgPT09IHRoaXMudGV4dEVudW1bal0udmFsdWUpe1xyXG4gICAgICAgICAgICAgIHJlc2RhdGFbaV0udGV4dCA9IHRoaXMudGV4dEVudW1bal0udGV4dFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZWVkQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG4gICAgICBsZXQgdG1wRGF0YSA9IHtjYXRlZ29yaWVzOltdLCBzZXJpZXM6W119XHJcbiAgICAgIGxldCB0bXBjYXRlZ29yaWVzID0gW11cclxuICAgICAgbGV0IHRtcHNlcmllcyA9IFtdO1xyXG4gICAgICAvL+aLvOaOpWNhdGVnb3JpZXNcclxuICAgICAgaWYodGhpcy5lY2hhcnRzID09PSB0cnVlKXtcclxuICAgICAgICBuZWVkQ2F0ZWdvcmllcyA9IGNmZS5jYXRlZ29yaWVzLmluY2x1ZGVzKHRoaXMudHlwZSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbmVlZENhdGVnb3JpZXMgPSBjZnUuY2F0ZWdvcmllcy5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgIH1cclxuICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgIC8v5aaC5p6ccHJvcHPkuK3nmoRjaGFydERhdGHluKbmnIljYXRlZ29yaWVz77yM5YiZ5LyY5YWI5L2/55SoY2hhcnREYXRh55qEY2F0ZWdvcmllc1xyXG4gICAgICAgIGlmKHRoaXMuY2hhcnREYXRhICYmIHRoaXMuY2hhcnREYXRhLmNhdGVnb3JpZXMgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcy5sZW5ndGg+MCl7XHJcbiAgICAgICAgICB0bXBjYXRlZ29yaWVzID0gdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgLy/lpoLmnpzmmK/ml6XmnJ/nsbvlnovnmoTmlbDmja7vvIzkuI3nrqHmmK/mnKzlnLDmlbDmja7ov5jmmK/kupHmlbDmja7vvIzpg73mjInotbfmraLml6XmnJ/oh6rliqjmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICBpZih0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLmVuZERhdGUpe1xyXG4gICAgICAgICAgICBsZXQgaWRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSlcclxuICAgICAgICAgICAgbGV0IGVkYXRlID0gbmV3IERhdGUodGhpcy5lbmREYXRlKVxyXG4gICAgICAgICAgICB3aGlsZSAoaWRhdGUgPD0gZWRhdGUpIHtcclxuICAgICAgICAgICAgXHR0bXBjYXRlZ29yaWVzLnB1c2goZ2V0Rm9ybWF0RGF0ZShpZGF0ZSkpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBpZGF0ZS5zZXREYXRlKGlkYXRlLmdldERhdGUoKSArIDEpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBuZXcgRGF0ZShpZGF0ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgLy/lkKbliJnku47nu5PmnpzkuK3ljrvph43lubbmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbGV0IHRlbXBja2V5ID0ge307XHJcbiAgICAgICAgICAgIHJlc2RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0udGV4dCAhPSB1bmRlZmluZWQgJiYgIXRlbXBja2V5W2l0ZW0udGV4dF0pIHtcclxuICAgICAgICAgICAgICAgIHRtcGNhdGVnb3JpZXMucHVzaChpdGVtLnRleHQpXHJcbiAgICAgICAgICAgICAgICB0ZW1wY2tleVtpdGVtLnRleHRdID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRtcERhdGEuY2F0ZWdvcmllcyA9IHRtcGNhdGVnb3JpZXNcclxuICAgICAgfVxyXG4gICAgICAvL+aLvOaOpXNlcmllc1xyXG4gICAgICBsZXQgdGVtcHNrZXkgPSB7fTtcclxuICAgICAgcmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cCAhPSB1bmRlZmluZWQgJiYgIXRlbXBza2V5W2l0ZW0uZ3JvdXBdKSB7XHJcbiAgICAgICAgICB0bXBzZXJpZXMucHVzaCh7IG5hbWU6IGl0ZW0uZ3JvdXAsIGRhdGE6IFtdIH0pO1xyXG4gICAgICAgICAgdGVtcHNrZXlbaXRlbS5ncm91cF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIC8v5aaC5p6c5rKh5pyJ6I635Y+W5Yiw5YiG57uE5ZCN56ewKOWPr+iDveaYr+W4pmNhdGVnb3JpZXPnmoTmlbDmja7vvIzkuZ/lj6/og73mmK/kuI3luKbnmoTppbzlm77nsbspXHJcbiAgICAgIGlmICh0bXBzZXJpZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0bXBzZXJpZXMgPSBbeyBuYW1lOiAn6buY6K6k5YiG57uEJywgZGF0YTogW10gfV07XHJcbiAgICAgICAgLy/lpoLmnpzmmK/pnIDopoFjYXRlZ29yaWVz55qE5Zu+6KGo57G75Z6LXHJcbiAgICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBzZXJpZXNkYXRhID0gMDtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc2RhdGFbaV0udGV4dCA9PSB0bXBjYXRlZ29yaWVzW2pdKSB7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG1wc2VyaWVzWzBdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAvL+WmguaenOaYr+mlvOWbvuexu+eahOWbvuihqOexu+Wei1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRtcHNlcmllc1swXS5kYXRhLnB1c2goe1wibmFtZVwiOiByZXNkYXRhW2ldLnRleHQsXCJ2YWx1ZVwiOiByZXNkYXRhW2ldLnZhbHVlfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAvL+WmguaenOacieWIhue7hOWQjVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdG1wc2VyaWVzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAvL+WmguaenOaciWNhdGVnb3JpZXNcclxuICAgICAgICAgIGlmICh0bXBjYXRlZ29yaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHNlcmllc2RhdGEgPSAwO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXAgJiYgcmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuICAgICAgICAgICAgICAgICAgc2VyaWVzZGF0YSA9IHJlc2RhdGFbaV0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2goc2VyaWVzZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5aaC5p6c5Lyg5LqGZ3JvdXDogIzmsqHmnInkvKB0ZXh077yM5Y2z5rKh5pyJY2F0ZWdvcmllc++8iOato+W4uOaDheWGteS4i+i/meenjeaVsOaNruaYr+S4jeespuWQiOaVsOaNruimgeaxguinhOiMg+eahO+8iVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2gocmVzZGF0YVtpXS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRtcERhdGEuc2VyaWVzID0gdG1wc2VyaWVzXHJcbiAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICB0aGlzLmRyYXdEYXRhID0gZGVlcENsb25lQXNzaWduKHt9LCB0bXBEYXRhKTtcclxuICAgICAgdGhpcy5jaGVja0RhdGEodG1wRGF0YSlcclxuICAgIH0sXHJcbiAgICByZWxvYWRpbmcoKSB7XHJcbiAgICAgIGlmKHRoaXMuZXJyb3JSZWxvYWQgPT09IGZhbHNlKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25NaXhpbkRhdGFjb21Qcm9wc0NoYW5nZSh0cnVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNoZWNrRGF0YShhbnlEYXRhKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICAvL+WkjeS9jW9wdHPmiJZlb3B0c1xyXG4gICAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgdGhpcy5lb3B0cyk7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmlkID0gY2lkO1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAodGhpcy50eXBlICYmIGNmdS50eXBlLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1W3RoaXMudHlwZV0sIHRoaXMub3B0cyk7XHJcbiAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzSWQgPSBjaWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mnByb3Bz5Y+C5pWw5LitdHlwZeexu+Wei+S4jeato+ehric7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8v5oyC6L29Y2F0ZWdvcmllc+WSjHNlcmllc1xyXG4gICAgICBsZXQgbmV3RGF0YSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgYW55RGF0YSk7XHJcbiAgICAgIGlmIChuZXdEYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIG5ld0RhdGEuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmNoYXJ0RGF0YSA9IG5ld0RhdGE7XHJcbiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jYXRlZ29yaWVzID0gbmV3RGF0YS5jYXRlZ29yaWVzO1xyXG4gICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnNlcmllcyA9IG5ld0RhdGEuc2VyaWVzO1xyXG4gICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCk9PntcclxuICAgICAgICAgICAgdGhpcy5pbml0KClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcmVzaXplSGFuZGxlcigpIHtcclxuICAgICAgLy/muLLmn5PpmLLmipZcclxuICAgICAgbGV0IGN1cnJUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lP3RoaXMubGFzdERyYXdUaW1lOmN1cnJUaW1lLTMwMDA7XHJcbiAgICAgIGxldCBkdXJhdGlvbiA9IGN1cnJUaW1lIC0gbGFzdERyYXdUaW1lO1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCAxMDAwKSByZXR1cm47XHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJyt0aGlzLmNpZClcclxuICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEud2lkdGggPiAwICYmIGRhdGEuaGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS53aWR0aCAhPT0gdGhpcy5jV2lkdGggfHwgZGF0YS5oZWlnaHQgIT09IHRoaXMuY0hlaWdodCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0Q2xvdWREYXRhKCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21HZXQoKVxyXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbVJlc0RhdGEgPSByZXMucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmxvY2FsZGF0YUluaXQodGhpcy5taXhpbkRhdGFjb21SZXNEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn6K+35rGC6ZSZ6K+v77yaJyArIGVycjtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBvbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKG5lZWRSZXNldCwgY2hhbmdlZCkge1xyXG4gICAgICBpZiAobmVlZFJlc2V0ID09IHRydWUgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICB0aGlzLmdldENsb3VkRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX2NsZWFyQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZiAodGhpcy5lY2hhcnRzICE9PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0uY29udGV4dCkge1xyXG4gICAgICAgIGNvbnN0IGN0eCA9IGNmdS5vcHRpb25bY2lkXS5jb250ZXh0O1xyXG4gICAgICAgIGlmKHR5cGVvZiBjdHggPT09IFwib2JqZWN0XCIgJiYgISEhY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSl7XHJcbiAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY1dpZHRoKnRoaXMucGl4ZWwsIHRoaXMuY0hlaWdodCp0aGlzLnBpeGVsKTtcclxuICAgICAgICAgIGN0eC5kcmF3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgLmJvdW5kaW5nQ2xpZW50UmVjdChkYXRhID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhLndpZHRoID4gMCAmJiBkYXRhLmhlaWdodCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sYXN0RHJhd1RpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLmNXaWR0aCA9IGRhdGEud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuY0hlaWdodCA9IGRhdGEuaGVpZ2h0O1xyXG4gICAgICAgICAgICBpZih0aGlzLmVjaGFydHMgIT09IHRydWUpe1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5iYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kID09ICdyZ2JhKDAsMCwwLDApJyA/ICcjRkZGRkZGJyA6IHRoaXMuYmFja2dyb3VuZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzMmQgPSB0aGlzLnR5cGUyZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucGl4ZWxSYXRpbyA9IHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS53aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5oZWlnaHQgPSBkYXRhLmhlaWdodCAqIHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9IHRoaXMub256b29tO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9IHRoaXMub250YXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2ggPSB0aGlzLm9udG91Y2g7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID0gdGhpcy5vbm1vdmV0aXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID0gdGhpcy50b29sdGlwU2hvdztcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbSA9IHRoaXMudG9vbHRpcEN1c3RvbTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaW5TY3JvbGxWaWV3ID0gdGhpcy5pblNjcm9sbFZpZXc7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmQgPSB0aGlzLnRhcExlZ2VuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5INSB8fCB0aGlzLmluQXBwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlMmQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdCgnIycgKyBjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAuZXhlYyhyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1swXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGFVQ2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5fd2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZXdDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8muW8gOWQrzJk5qih5byP5ZCO77yM5pyq6I635Y+W5YiwZG9t6IqC54K577yMY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBpZih0aGlzLmluQWxpKXtcclxuICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSB1bmkuY3JlYXRlQ2FudmFzQ29udGV4dChjaWQsIHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5biD5bGA6ZSZ6K+v77ya5pyq6I635Y+W5Yiw54i25YWD57Sg5a696auY5bC65a+477yBY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgc2F2ZUltYWdlKCl7XHJcbiAgICBcdHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICBcdCAgY2FudmFzSWQ6IHRoaXMuY2lkLFxyXG4gICAgXHQgIHN1Y2Nlc3M6IHJlcz0+e1xyXG4gICAgXHQgICAgLy8jaWZkZWYgSDVcclxuICAgIFx0XHRcdHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBcdFx0XHRhLmhyZWYgPSByZXMudGVtcEZpbGVQYXRoO1xyXG4gICAgXHRcdFx0YS5kb3dubG9hZCA9IHRoaXMuY2lkO1xyXG4gICAgXHRcdFx0YS50YXJnZXQgPSAnX2JsYW5rJ1xyXG4gICAgXHRcdFx0YS5jbGljaygpO1xyXG4gICAgXHQgICAgLy8jZW5kaWZcclxuICAgIFx0ICAgIC8vI2lmbmRlZiBINVxyXG4gICAgXHQgICAgICB1bmkuc2F2ZUltYWdlVG9QaG90b3NBbGJ1bSh7XHJcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcbiAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJyxcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgIFx0ICAgICAgfSk7XHJcbiAgICBcdCAgICAvLyNlbmRpZlxyXG4gICAgXHQgIH0gXHJcbiAgICBcdH0sdGhpcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0SW1hZ2UoKXtcclxuICAgICAgaWYodGhpcy50eXBlMmQgPT0gZmFsc2Upe1xyXG4gICAgICAgIHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICAgICAgICBjYW52YXNJZDogdGhpcy5jaWQsXHJcbiAgICAgICAgICBzdWNjZXNzOiByZXM9PntcclxuICAgICAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZ2V0SW1hZ2UnLCBwYXJhbXM6IHt0eXBlOlwiZ2V0SW1hZ2VcIiwgYmFzZTY0OiByZXMudGVtcEZpbGVQYXRofX0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sdGhpcyk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG4gICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAuc2VsZWN0KCcjJyArIHRoaXMuY2lkKVxyXG4gICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgIC5leGVjKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNbMF0pIHtcclxuICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbWFnZScsIHBhcmFtczoge3R5cGU6XCJnZXRJbWFnZVwiLCBiYXNlNjQ6IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNpZm5kZWYgQVBQLVZVRSB8fCBINVxyXG4gICAgX25ld0NoYXJ0KGNpZCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzKGNmdS5vcHRpb25bY2lkXSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2NvbXBsZXRlJywgcGFyYW1zOiB7dHlwZTpcImNvbXBsZXRlXCIsIGNvbXBsZXRlOiB0cnVlLCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmRlbEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJylcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnc2Nyb2xsTGVmdCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxMZWZ0XCIsIHNjcm9sbExlZnQ6IHRydWUsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxSaWdodCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdzY3JvbGxSaWdodCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxSaWdodFwiLCBzY3JvbGxSaWdodDogdHJ1ZSwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgX3VwZGF0YVVDaGFydChjaWQpIHtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udXBkYXRlRGF0YShjZnUub3B0aW9uW2NpZF0pXHJcbiAgICB9LFxyXG4gICAgX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykge1xyXG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG4gICAgICAgIGlmKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2F0ZWdvcnkgKyAnICcgKyBpdGVtLm5hbWUgKyAnOicgKyBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BlcnRpZXMgJiYgaXRlbS5wcm9wZXJ0aWVzLm5hbWUpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnByb3BlcnRpZXMubmFtZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICc6JyArIGl0ZW0uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfc2hvd1Rvb2x0aXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuICAgICAgaWYgKHRjICYmIHRjICE9PSB1bmRlZmluZWQgJiYgdGMgIT09IG51bGwpIHtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcbiAgICAgICAgICBvZmZzZXQgPSB7IHg6IHRjLngsIHk6IHRjLnkgKyAxMCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBpbmRleDogdGMuaW5kZXgsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCxcclxuICAgICAgICAgIHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl90b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90YXAoZSxtb3ZlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY3VycmVudEluZGV4ID0gbnVsbDtcclxuICAgICAgbGV0IGxlZ2VuZEluZGV4ID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5TY3JvbGxWaWV3ID09PSB0cnVlIHx8IHRoaXMuaW5BbGkpIHtcclxuICAgICAgICBsZXQgY2hhcnRkb20gPSB1bmlcclxuICAgICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZXHJcbiAgICAgICAgICAuaW4odGhpcylcclxuICAgICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgICAgICAgIC5zZWxlY3QoJyMnK3RoaXMuY2lkKVxyXG4gICAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzPVtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbkFsaSkge1xyXG4gICAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLmNsaWVudFggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLmNsaWVudFkgLSBkYXRhLnRvcH0pO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoeyB4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LCB5OiBlLmRldGFpbC55IC0gZGF0YS50b3AgLSB0aGlzLnBhZ2VTY3JvbGxUb3B9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGxlZ2VuZEluZGV4ID0gY2Z1Lmluc3RhbmNlW2NpZF0uZ2V0TGVnZW5kRGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMudGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEluZGV4JywgcGFyYW1zOiB7IHR5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLnggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLnkgLSBkYXRhLnRvcCB9LCBjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCwgbGVnZW5kSW5kZXg6IGxlZ2VuZEluZGV4LCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmV4ZWMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3dUb29sdGlwKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcz1bXTtcclxuICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLnggLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0TGVmdCwgeTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgfSk7XHJcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgbGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICBpZih0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbmRleCcsIHBhcmFtczoge3R5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLngsIHk6IGUuZGV0YWlsLnkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIH0sIGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LCBsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoU3RhcnQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGFzdE1vdmVUaW1lPURhdGUubm93KCk7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6J2dldFRvdWNoU3RhcnQnLCBwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgIH0sXHJcbiAgICBfdG91Y2hNb3ZlKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICBsZXQgZHVyYXRpb24gPSBjdXJyTW92ZVRpbWUgLSBsYXN0TW92ZVRpbWU7XHJcbiAgICAgIGxldCB0b3VjaE1vdmVMaW1pdCA9IGNmdS5vcHRpb25bY2lkXS50b3VjaE1vdmVMaW1pdCB8fCAyNDtcclxuICAgICAgaWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gdG91Y2hNb3ZlTGltaXQpKSByZXR1cm47Ly/mr4/np5I2MOW4p1xyXG4gICAgICBsYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgdGhpcy5vbm1vdmV0aXAgPT09IHRydWUpe1xyXG4gICAgICAgIHRoaXMuX3RhcChlLHRydWUpXHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5vbnRvdWNoID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgdGhpcy5vbnpvb20gPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZG9idWxlWm9vbShlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRUb3VjaE1vdmUnLCBwYXJhbXM6IHt0eXBlOlwidG91Y2hNb3ZlXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaEVuZCcsIHBhcmFtczp7dHlwZTpcInRvdWNoRW5kXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNlbmRpZlxyXG4gICAgX2Vycm9yKGUpIHtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcbiAgICB9LFxyXG4gICAgZW1pdE1zZyhtc2cpIHtcclxuICAgICAgdGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UmVuZGVyVHlwZSgpIHtcclxuICAgICAgLy/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG4gICAgICBpZih0aGlzLmVjaGFydHM9PT10cnVlICYmIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZz09PWZhbHNlKXtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG9KU09OKCl7XHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjwhLS0gI2lmZGVmIEFQUC1WVUUgfHwgSDUgLS0+XHJcbjxzY3JpcHQgbW9kdWxlPVwicmRjaGFydHNcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuaW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuXHJcbnZhciB0aGF0ID0ge307XHJcbnZhciByb290ZG9tID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIHJkZGVlcENsb25lQXNzaWduKG9yaWdpbiA9IHt9LCAuLi5hcmdzKSB7XHJcbiAgZm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gYXJnc1tpXSkge1xyXG4gICAgICBpZiAoYXJnc1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgcmRmb3JtYXR0ZXJBc3NpZ24oYXJnc1trZXldLGZvcm1hdHRlcilcclxuICAgIH1lbHNlIGlmKGtleSA9PT0gJ2Zvcm1hdCcgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICBhcmdzWydmb3JtYXR0ZXInXSA9IGZvcm1hdHRlclthcmdzW2tleV1dID8gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBhcmdzO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJpZDpudWxsXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgcm9vdGRvbSA9IHt0b3A6MCxsZWZ0OjB9XHJcbiAgICAvLyAjaWZkZWYgSDVcclxuICAgIGxldCBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1tYWluJylbMF1cclxuICAgIGlmKGRtID09PSB1bmRlZmluZWQpe1xyXG4gICAgICBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1wYWdlLXdyYXBwZXInKVswXVxyXG4gICAgfVxyXG4gICAgcm9vdGRvbSA9IHt0b3A6ZG0ub2Zmc2V0VG9wLGxlZnQ6ZG0ub2Zmc2V0TGVmdH1cclxuICAgIC8vICNlbmRpZlxyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICBpZih0aGlzLnJpZCA9PT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy4kb3duZXJJbnN0YW5jZSAmJiB0aGlzLiRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2dldFJlbmRlclR5cGUnKVxyXG4gICAgICB9XHJcbiAgICB9LDIwMClcclxuICB9LFxyXG4gIGRlc3Ryb3llZCgpe1xyXG4gICAgZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2Z1Lmluc3RhbmNlW3RoaXMucmlkXVxyXG4gICAgZGVsZXRlIGNmZS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2ZlLmluc3RhbmNlW3RoaXMucmlkXVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLy89PT09PT09PT09PT09PeS7peS4i+aYr0VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG4gICAgZWNpbml0KG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBsZXQgY2lkID0gSlNPTi5zdHJpbmdpZnkobmV3VmFsLmlkKVxyXG4gICAgICB0aGlzLnJpZCA9IGNpZFxyXG4gICAgICB0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcbiAgICAgIGxldCBlb3B0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuICAgICAgbGV0IHR5cGUgPSBlb3B0cy50eXBlO1xyXG4gICAgICAvL+i9veWFpeW5tuimhueblum7mOiupOmFjee9rlxyXG4gICAgICBpZiAodHlwZSAmJiBjZmUudHlwZS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IHJkZGVlcENsb25lQXNzaWduKHt9LCBjZmVbdHlwZV0sIGVvcHRzKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sIGVvcHRzKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IGVvcHRzLmNoYXJ0RGF0YTtcclxuICAgICAgaWYobmV3RGF0YSl7XHJcbiAgICAgICAgLy/mjILovb1jYXRlZ29yaWVz5ZKMc2VyaWVzXHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLnhBeGlzICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlID09PSAnY2F0ZWdvcnknKXtcclxuICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS54QXhpcy5kYXRhID0gbmV3RGF0YS5jYXRlZ29yaWVzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS55QXhpcyAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSA9PT0gJ2NhdGVnb3J5Jyl7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ueUF4aXMuZGF0YSA9IG5ld0RhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzID0gW11cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld0RhdGEuc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPSBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPyBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgOiB7fVxyXG4gICAgICAgICAgbGV0IFRlbXBsYXRlID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLG5ld0RhdGEuc2VyaWVzW2ldKVxyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnNlcmllcy5wdXNoKFRlbXBsYXRlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuZWNoYXJ0cyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIHRoaXMubmV3RUNoYXJ0KClcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcclxuICAgICAgICAvLyAjaWZkZWYgQVBQLVZVRVxyXG4gICAgICAgIHNjcmlwdC5zcmMgPSAnLi91bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9hcHAtcGx1cy9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAvLyAjaWZkZWYgSDVcclxuICAgICAgICBjb25zdCB7IG9yaWdpbiB9ID0gd2luZG93LmxvY2F0aW9uXHJcbiAgICAgICAgY29uc3Qgcm9vdHVybCA9IG9yaWdpbiArIHByb2Nlc3MuZW52LkJBU0VfVVJMXHJcbiAgICAgICAgc2NyaXB0LnNyYyA9IHJvb3R1cmwgKyAndW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9zdGF0aWMvaDUvZWNoYXJ0cy5taW4uanMnXHJcbiAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHRoaXMubmV3RUNoYXJ0XHJcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlY3Jlc2l6ZShuZXdWYWwsIG9sZFZhbCwgb3duZXIsIGluc3RhbmNlKXtcclxuICAgICAgaWYoY2ZlLmluc3RhbmNlW3RoaXMucmlkXSl7XHJcbiAgICAgICAgY2ZlLmluc3RhbmNlW3RoaXMucmlkXS5yZXNpemUoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbmV3RUNoYXJ0KCl7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBpZihjZmUuaW5zdGFuY2VbY2lkXSA9PT0gdW5kZWZpbmVkKXtcclxuICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXSA9IGVjaGFydHMuaW5pdCh0aGF0W2NpZF0uJGVsLmNoaWxkcmVuWzBdKVxyXG4gICAgICAgIC8vb250YXDlvIDlkK/lkI7miY3op6blj5FjbGlja+S6i+S7tlxyXG4gICAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS5vbnRhcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignY2xpY2snLCByZXNkYXRhID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgeDpyZXNkYXRhLmV2ZW50Lm9mZnNldFgseTpyZXNkYXRhLmV2ZW50Lm9mZnNldFlcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEluZGV4XCIsIHBhcmFtczp7dHlwZTpcImdldEluZGV4XCIsIGV2ZW50OmV2ZW50LCBjdXJyZW50SW5kZXg6cmVzZGF0YS5kYXRhSW5kZXgsIHZhbHVlOnJlc2RhdGEuZGF0YSwgc2VyaWVzTmFtZTogcmVzZGF0YS5zZXJpZXNOYW1lLGlkOmNpZH19KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vIOWinuWKoEVDaGFydHPnmoRoaWdobGlnaHTmtojmga/vvIzlrp7njrDmjInkuIvnp7vliqjov5Tlm57ntKLlvJXlip/og73jgIJhZGQgYnkgb25lZmlzaCDliJvlu7rkuo4gMjAyMS0xMi0xMSAwOTo1MFxyXG4gICAgICAgICAgY2ZlLmluc3RhbmNlW2NpZF0ub24oJ2hpZ2hsaWdodCcsIHJlc2RhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRIaWdobGlnaHRcIiwgcGFyYW1zOnt0eXBlOlwiaGlnaGxpZ2h0XCIsIHJlczpyZXNkYXRhLCBpZDpjaWR9fSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB1cGRhdGFFQ2hhcnQoY2lkLG9wdGlvbil7XHJcbiAgICAgIC8v5pu/5o2ib3B0aW9u5YaFZm9ybWF05bGe5oCn5Li6Zm9ybWF0dGVy55qE6aKE5a6a5LmJ5pa55rOVXHJcbiAgICAgIG9wdGlvbiA9IHJkZm9ybWF0dGVyQXNzaWduKG9wdGlvbixjZmUuZm9ybWF0dGVyKVxyXG4gICAgICBpZihvcHRpb24udG9vbHRpcCl7XHJcbiAgICAgICAgb3B0aW9uLnRvb2x0aXAuc2hvdyA9IG9wdGlvbi50b29sdGlwU2hvdz90cnVlOmZhbHNlO1xyXG4gICAgICAgIG9wdGlvbi50b29sdGlwLnBvc2l0aW9uID0gdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG4gICAgICAgIC8vdG9vbHRpcEZvcm1hdOaWueazle+8jOabv+aNoue7hOS7tueahHRvb2x0aXBGb3JtYXTkuLpjb25maWctZWNoYXJ0cy5qc+WGheWvueW6lOeahOaWueazlVxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmZS5mb3JtYXR0ZXJbb3B0aW9uLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPSBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPyBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgOiBjZmUuZm9ybWF0dGVyW29wdGlvbi50b29sdGlwRm9ybWF0XVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyDpopzoibLmuJDlj5jmt7vliqDnmoTmlrnms5VcclxuICAgICAgaWYgKG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRmb3IgKGxldCBpIGluIG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRcdGxldCBsaW5lYXJHcmFkaWVudCA9IG9wdGlvbi5zZXJpZXNbaV0ubGluZWFyR3JhZGllbnRcclxuICAgICAgXHRcdGlmIChsaW5lYXJHcmFkaWVudCkge1xyXG4gICAgICBcdFx0XHRvcHRpb24uc2VyaWVzW2ldLmNvbG9yID0gbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudChsaW5lYXJHcmFkaWVudFswXSxsaW5lYXJHcmFkaWVudFsxXSxsaW5lYXJHcmFkaWVudFsyXSxsaW5lYXJHcmFkaWVudFszXSxsaW5lYXJHcmFkaWVudFs0XSlcclxuICAgICAgXHRcdH1cclxuICAgICAgXHR9XHJcbiAgICAgIH1cclxuICAgICAgY2ZlLmluc3RhbmNlW2NpZF0uc2V0T3B0aW9uKG9wdGlvbiwgb3B0aW9uLm5vdE1lcmdlKVxyXG4gICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignZmluaXNoZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZH19KVxyXG4gICAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9mZignZmluaXNoZWQnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL+S/ruWkjWluaXTliJ3lp4vljJblrp7kvovojrflj5blrr3pq5jkuI3mraPnoa7pl67pophcclxuICAgICAgaWYoXHJcbiAgICAgICAgdHlwZW9mIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggIT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgTWF0aC5hYnMoIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggLSBjZmUuaW5zdGFuY2VbY2lkXS5nZXRXaWR0aCgpICk+MyB8fFxyXG4gICAgICAgICAgICBNYXRoLmFicyggdGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQgLSBjZmUuaW5zdGFuY2VbY2lkXS5nZXRIZWlnaHQoKSApPjNcclxuICAgICAgICAgIClcclxuICAgICAgKXt0aGlzLmVjcmVzaXplKCk7fVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBQb3NpdGlvbigpe1xyXG4gICAgICByZXR1cm4gKHBvaW50LCBwYXJhbXMsIGRvbSwgcmVjdCwgc2l6ZSkgPT4ge1xyXG4gICAgICBcdGxldCB4ID0gcG9pbnRbMF1cclxuICAgICAgXHRsZXQgeSA9IHBvaW50WzFdXHJcbiAgICAgIFx0bGV0IHZpZXdXaWR0aCA9IHNpemUudmlld1NpemVbMF1cclxuICAgICAgXHRsZXQgdmlld0hlaWdodCA9IHNpemUudmlld1NpemVbMV1cclxuICAgICAgXHRsZXQgYm94V2lkdGggPSBzaXplLmNvbnRlbnRTaXplWzBdXHJcbiAgICAgIFx0bGV0IGJveEhlaWdodCA9IHNpemUuY29udGVudFNpemVbMV1cclxuICAgICAgXHRsZXQgcG9zWCA9IHggKyAzMCBcclxuICAgICAgXHRsZXQgcG9zWSA9IHkgKyAzMCBcclxuICAgICAgXHRpZiAocG9zWCArIGJveFdpZHRoID4gdmlld1dpZHRoKSB7IFxyXG4gICAgICBcdFx0cG9zWCA9IHggLSBib3hXaWR0aCAtIDMwXHJcbiAgICAgIFx0fVxyXG4gICAgICBcdGlmIChwb3NZICsgYm94SGVpZ2h0ID4gdmlld0hlaWdodCkge1xyXG4gICAgICBcdFx0cG9zWSA9IHkgLSBib3hIZWlnaHQgLSAzMFxyXG4gICAgICBcdH1cclxuICAgICAgXHRyZXR1cm4gW3Bvc1gsIHBvc1ldXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLz09PT09PT09PT09PT095Lul5LiL5pivdUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcbiAgICB1Y2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSl7XHJcbiAgICAgIGlmKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkgPT0gSlNPTi5zdHJpbmdpZnkob2xkVmFsKSl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCFuZXdWYWwuY2FudmFzSWQpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgY2lkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwuY2FudmFzSWQpKVxyXG4gICAgICB0aGlzLnJpZCA9IGNpZFxyXG4gICAgICB0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcbiAgICAgIGNmdS5vcHRpb25bY2lkXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdID0gcmRmb3JtYXR0ZXJBc3NpZ24oY2Z1Lm9wdGlvbltjaWRdLGNmdS5mb3JtYXR0ZXIpXHJcbiAgICAgIGxldCBjYW52YXNkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjaWQpXHJcbiAgICAgIGlmKGNhbnZhc2RvbSAmJiBjYW52YXNkb20uY2hpbGRyZW5bMF0pe1xyXG4gICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY2FudmFzZG9tLmNoaWxkcmVuWzBdLmdldENvbnRleHQoXCIyZFwiKVxyXG4gICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgIHRoaXMudXBkYXRhVUNoYXJ0KClcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgIHRoaXMubmV3VUNoYXJ0KClcclxuICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG5ld1VDaGFydCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHNSRChjZnUub3B0aW9uW2NpZF0pXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmRlbEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJylcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwic2Nyb2xsTGVmdFwiLHBhcmFtczp7dHlwZTpcInNjcm9sbExlZnRcIixzY3JvbGxMZWZ0OnRydWUsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxSaWdodCcsICgpID0+IHtcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJzY3JvbGxSaWdodFwiLHBhcmFtczp7dHlwZTpcInNjcm9sbFJpZ2h0XCIsc2Nyb2xsUmlnaHQ6dHJ1ZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRhVUNoYXJ0KCkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udXBkYXRlRGF0YShjZnUub3B0aW9uW2NpZF0pXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcbiAgICAgIGlmIChjYXRlZ29yeSkge1xyXG4gICAgICAgIGxldCBkYXRhID0gaXRlbS5kYXRhXHJcbiAgICAgICAgaWYodHlwZW9mIGl0ZW0uZGF0YSA9PT0gXCJvYmplY3RcIil7XHJcbiAgICAgICAgICBkYXRhID0gaXRlbS5kYXRhLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYXRlZ29yeSArICcgJyArIGl0ZW0ubmFtZSArICc6JyArIGRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ucHJvcGVydGllcy5uYW1lIDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICc6JyArIGl0ZW0uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzaG93VG9vbHRpcChlLGNpZCkge1xyXG4gICAgICBsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG4gICAgICBpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuICAgICAgICAgIG9mZnNldCA9IHsgeDogdGMueCwgeTogdGMueSArIDEwIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGluZGV4OiB0Yy5pbmRleCxcclxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxyXG4gICAgICAgICAgdGV4dExpc3Q6IHRjLnRleHRMaXN0LFxyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHRhcChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250YXAgPSBjZnUub3B0aW9uW2NpZF0ub250YXBcclxuICAgICAgbGV0IHRvb2x0aXBTaG93ID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93XHJcbiAgICAgIGxldCB0YXBMZWdlbmQgPSBjZnUub3B0aW9uW2NpZF0udGFwTGVnZW5kXHJcbiAgICAgIGlmKG9udGFwID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCBjdXJyZW50SW5kZXg9bnVsbFxyXG4gICAgICBsZXQgbGVnZW5kSW5kZXg9bnVsbFxyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgaWYoZS5kZXRhaWwueCl7Ly90YXDmiJbogIVjbGlja+eahOS6i+S7tlxyXG4gICAgICAgIHRtcGUgPSB7IHg6IGUuZGV0YWlsLnggLSByY2hhcnRkb20ubGVmdCwgeTplLmRldGFpbC55IC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICB9ZWxzZXsvL21vdXNl55qE5LqL5Lu2XHJcbiAgICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICB9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGN1cnJlbnRJbmRleD1jZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpXHJcbiAgICAgIGxlZ2VuZEluZGV4PWNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKVxyXG4gICAgICBpZih0YXBMZWdlbmQgPT09IHRydWUpe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRvb2x0aXBTaG93PT10cnVlKXtcclxuICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEluZGV4XCIscGFyYW1zOnt0eXBlOlwiZ2V0SW5kZXhcIixldmVudDp0bXBlLGN1cnJlbnRJbmRleDpjdXJyZW50SW5kZXgsbGVnZW5kSW5kZXg6bGVnZW5kSW5kZXgsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICB9LFxyXG4gICAgdG91Y2hTdGFydChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250b3VjaCA9IGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoXHJcbiAgICAgIGlmKG9udG91Y2ggPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLnRvdWNoZXMubGVuZ3RoID09IDEpe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICB0b3VjaE1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID09PSB0cnVlKXtcclxuICAgICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgICAgbGV0IHRtcGUgPSB7IHg6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgICBpZihjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3cgPT09IHRydWUpe1xyXG4gICAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYob250b3VjaCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5vbnpvb20gPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZG9idWxlWm9vbShlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaE1vdmVcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIHRvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRvdWNoID0gY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2hcclxuICAgICAgaWYob250b3VjaCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsRW5kKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoRW5kXCIscGFyYW1zOnt0eXBlOlwidG91Y2hFbmRcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIG1vdXNlRG93bihlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcbiAgICAgIGlmKG9ubW91c2UgPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgbGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycrY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICBsZXQgdG1wZSA9IHt9XHJcbiAgICAgIHRtcGUgPSB7IHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93bj10cnVlO1xyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaFN0YXJ0XCIscGFyYW1zOnt0eXBlOlwibW91c2VEb3duXCIsZXZlbnQ6dG1wZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICBtb3VzZU1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG4gICAgICBsZXQgdG9vbHRpcFNob3cgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3dcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGwoZSlcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJtb3VzZU1vdmVcIixldmVudDp0bXBlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICB9ZWxzZSBpZihjZnUuaW5zdGFuY2VbY2lkXSl7XHJcbiAgICAgICAgaWYodG9vbHRpcFNob3c9PXRydWUpe1xyXG4gICAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtb3VzZVVwKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93bj1mYWxzZTtcclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hFbmRcIixwYXJhbXM6e3R5cGU6XCJtb3VzZVVwXCIsZXZlbnQ6dG1wZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgfVxyXG59XHJcbjwvc2NyaXB0PlxyXG48IS0tICNlbmRpZiAtLT5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi5jaGFydHN2aWV3IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAxO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///108\n"); /***/ }), /* 109 */ /*!************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global, wx) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 112)); var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ 114)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 44)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4)); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 16)); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 115)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2)); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ 116)); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ 118)); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ 119)); var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ 120)); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24)); var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 42); var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 124)); function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e35) { throw _e35; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e36) { didErr = true; err = _e36; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self && self; function n(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; } function s(e, t, n) { return e(n = { path: t, exports: {}, require: function require(e, t) { return function () { throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); }(null == t && n.path); } }, n.exports), n.exports; } var r = s(function (e, t) { var n; e.exports = (n = n || function (e, t) { var n = Object.create || function () { function e() {} return function (t) { var n; return e.prototype = t, n = new e(), e.prototype = null, n; }; }(), s = {}, r = s.lib = {}, i = r.Base = { extend: function extend(e) { var t = n(this); return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function () { t.$super.init.apply(this, arguments); }), t.init.prototype = t, t.$super = this, t; }, create: function create() { var e = this.extend(); return e.init.apply(e, arguments), e; }, init: function init() {}, mixIn: function mixIn(e) { for (var t in e) { e.hasOwnProperty(t) && (this[t] = e[t]); } e.hasOwnProperty("toString") && (this.toString = e.toString); }, clone: function clone() { return this.init.prototype.extend(this); } }, o = r.WordArray = i.extend({ init: function init(e, n) { e = this.words = e || [], this.sigBytes = n != t ? n : 4 * e.length; }, toString: function toString(e) { return (e || c).stringify(this); }, concat: function concat(e) { var t = this.words, n = e.words, s = this.sigBytes, r = e.sigBytes; if (this.clamp(), s % 4) for (var i = 0; i < r; i++) { var o = n[i >>> 2] >>> 24 - i % 4 * 8 & 255; t[s + i >>> 2] |= o << 24 - (s + i) % 4 * 8; } else for (i = 0; i < r; i += 4) { t[s + i >>> 2] = n[i >>> 2]; } return this.sigBytes += r, this; }, clamp: function clamp() { var t = this.words, n = this.sigBytes; t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4); }, clone: function clone() { var e = i.clone.call(this); return e.words = this.words.slice(0), e; }, random: function random(t) { for (var n, s = [], r = function r(t) { t = t; var n = 987654321, s = 4294967295; return function () { var r = ((n = 36969 * (65535 & n) + (n >> 16) & s) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & s) & s; return r /= 4294967296, (r += .5) * (e.random() > .5 ? 1 : -1); }; }, i = 0; i < t; i += 4) { var a = r(4294967296 * (n || e.random())); n = 987654071 * a(), s.push(4294967296 * a() | 0); } return new o.init(s, t); } }), a = s.enc = {}, c = a.Hex = { stringify: function stringify(e) { for (var t = e.words, n = e.sigBytes, s = [], r = 0; r < n; r++) { var i = t[r >>> 2] >>> 24 - r % 4 * 8 & 255; s.push((i >>> 4).toString(16)), s.push((15 & i).toString(16)); } return s.join(""); }, parse: function parse(e) { for (var t = e.length, n = [], s = 0; s < t; s += 2) { n[s >>> 3] |= parseInt(e.substr(s, 2), 16) << 24 - s % 8 * 4; } return new o.init(n, t / 2); } }, u = a.Latin1 = { stringify: function stringify(e) { for (var t = e.words, n = e.sigBytes, s = [], r = 0; r < n; r++) { var i = t[r >>> 2] >>> 24 - r % 4 * 8 & 255; s.push(String.fromCharCode(i)); } return s.join(""); }, parse: function parse(e) { for (var t = e.length, n = [], s = 0; s < t; s++) { n[s >>> 2] |= (255 & e.charCodeAt(s)) << 24 - s % 4 * 8; } return new o.init(n, t); } }, h = a.Utf8 = { stringify: function stringify(e) { try { return decodeURIComponent(escape(u.stringify(e))); } catch (e) { throw new Error("Malformed UTF-8 data"); } }, parse: function parse(e) { return u.parse(unescape(encodeURIComponent(e))); } }, l = r.BufferedBlockAlgorithm = i.extend({ reset: function reset() { this._data = new o.init(), this._nDataBytes = 0; }, _append: function _append(e) { "string" == typeof e && (e = h.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes; }, _process: function _process(t) { var n = this._data, s = n.words, r = n.sigBytes, i = this.blockSize, a = r / (4 * i), c = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * i, u = e.min(4 * c, r); if (c) { for (var h = 0; h < c; h += i) { this._doProcessBlock(s, h); } var l = s.splice(0, c); n.sigBytes -= u; } return new o.init(l, u); }, clone: function clone() { var e = i.clone.call(this); return e._data = this._data.clone(), e; }, _minBufferSize: 0 }); r.Hasher = l.extend({ cfg: i.extend(), init: function init(e) { this.cfg = this.cfg.extend(e), this.reset(); }, reset: function reset() { l.reset.call(this), this._doReset(); }, update: function update(e) { return this._append(e), this._process(), this; }, finalize: function finalize(e) { return e && this._append(e), this._doFinalize(); }, blockSize: 16, _createHelper: function _createHelper(e) { return function (t, n) { return new e.init(n).finalize(t); }; }, _createHmacHelper: function _createHmacHelper(e) { return function (t, n) { return new d.HMAC.init(e, n).finalize(t); }; } }); var d = s.algo = {}; return s; }(Math), n); }), i = r, o = (s(function (e, t) { var n; e.exports = (n = i, function (e) { var t = n, s = t.lib, r = s.WordArray, i = s.Hasher, o = t.algo, a = []; !function () { for (var t = 0; t < 64; t++) { a[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0; } }(); var c = o.MD5 = i.extend({ _doReset: function _doReset() { this._hash = new r.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function _doProcessBlock(e, t) { for (var n = 0; n < 16; n++) { var s = t + n, r = e[s]; e[s] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8); } var i = this._hash.words, o = e[t + 0], c = e[t + 1], p = e[t + 2], f = e[t + 3], g = e[t + 4], m = e[t + 5], y = e[t + 6], _ = e[t + 7], w = e[t + 8], v = e[t + 9], I = e[t + 10], S = e[t + 11], b = e[t + 12], k = e[t + 13], C = e[t + 14], T = e[t + 15], P = i[0], A = i[1], E = i[2], O = i[3]; P = u(P, A, E, O, o, 7, a[0]), O = u(O, P, A, E, c, 12, a[1]), E = u(E, O, P, A, p, 17, a[2]), A = u(A, E, O, P, f, 22, a[3]), P = u(P, A, E, O, g, 7, a[4]), O = u(O, P, A, E, m, 12, a[5]), E = u(E, O, P, A, y, 17, a[6]), A = u(A, E, O, P, _, 22, a[7]), P = u(P, A, E, O, w, 7, a[8]), O = u(O, P, A, E, v, 12, a[9]), E = u(E, O, P, A, I, 17, a[10]), A = u(A, E, O, P, S, 22, a[11]), P = u(P, A, E, O, b, 7, a[12]), O = u(O, P, A, E, k, 12, a[13]), E = u(E, O, P, A, C, 17, a[14]), P = h(P, A = u(A, E, O, P, T, 22, a[15]), E, O, c, 5, a[16]), O = h(O, P, A, E, y, 9, a[17]), E = h(E, O, P, A, S, 14, a[18]), A = h(A, E, O, P, o, 20, a[19]), P = h(P, A, E, O, m, 5, a[20]), O = h(O, P, A, E, I, 9, a[21]), E = h(E, O, P, A, T, 14, a[22]), A = h(A, E, O, P, g, 20, a[23]), P = h(P, A, E, O, v, 5, a[24]), O = h(O, P, A, E, C, 9, a[25]), E = h(E, O, P, A, f, 14, a[26]), A = h(A, E, O, P, w, 20, a[27]), P = h(P, A, E, O, k, 5, a[28]), O = h(O, P, A, E, p, 9, a[29]), E = h(E, O, P, A, _, 14, a[30]), P = l(P, A = h(A, E, O, P, b, 20, a[31]), E, O, m, 4, a[32]), O = l(O, P, A, E, w, 11, a[33]), E = l(E, O, P, A, S, 16, a[34]), A = l(A, E, O, P, C, 23, a[35]), P = l(P, A, E, O, c, 4, a[36]), O = l(O, P, A, E, g, 11, a[37]), E = l(E, O, P, A, _, 16, a[38]), A = l(A, E, O, P, I, 23, a[39]), P = l(P, A, E, O, k, 4, a[40]), O = l(O, P, A, E, o, 11, a[41]), E = l(E, O, P, A, f, 16, a[42]), A = l(A, E, O, P, y, 23, a[43]), P = l(P, A, E, O, v, 4, a[44]), O = l(O, P, A, E, b, 11, a[45]), E = l(E, O, P, A, T, 16, a[46]), P = d(P, A = l(A, E, O, P, p, 23, a[47]), E, O, o, 6, a[48]), O = d(O, P, A, E, _, 10, a[49]), E = d(E, O, P, A, C, 15, a[50]), A = d(A, E, O, P, m, 21, a[51]), P = d(P, A, E, O, b, 6, a[52]), O = d(O, P, A, E, f, 10, a[53]), E = d(E, O, P, A, I, 15, a[54]), A = d(A, E, O, P, c, 21, a[55]), P = d(P, A, E, O, w, 6, a[56]), O = d(O, P, A, E, T, 10, a[57]), E = d(E, O, P, A, y, 15, a[58]), A = d(A, E, O, P, k, 21, a[59]), P = d(P, A, E, O, g, 6, a[60]), O = d(O, P, A, E, S, 10, a[61]), E = d(E, O, P, A, p, 15, a[62]), A = d(A, E, O, P, v, 21, a[63]), i[0] = i[0] + P | 0, i[1] = i[1] + A | 0, i[2] = i[2] + E | 0, i[3] = i[3] + O | 0; }, _doFinalize: function _doFinalize() { var t = this._data, n = t.words, s = 8 * this._nDataBytes, r = 8 * t.sigBytes; n[r >>> 5] |= 128 << 24 - r % 32; var i = e.floor(s / 4294967296), o = s; n[15 + (r + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), n[14 + (r + 64 >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), t.sigBytes = 4 * (n.length + 1), this._process(); for (var a = this._hash, c = a.words, u = 0; u < 4; u++) { var h = c[u]; c[u] = 16711935 & (h << 8 | h >>> 24) | 4278255360 & (h << 24 | h >>> 8); } return a; }, clone: function clone() { var e = i.clone.call(this); return e._hash = this._hash.clone(), e; } }); function u(e, t, n, s, r, i, o) { var a = e + (t & n | ~t & s) + r + o; return (a << i | a >>> 32 - i) + t; } function h(e, t, n, s, r, i, o) { var a = e + (t & s | n & ~s) + r + o; return (a << i | a >>> 32 - i) + t; } function l(e, t, n, s, r, i, o) { var a = e + (t ^ n ^ s) + r + o; return (a << i | a >>> 32 - i) + t; } function d(e, t, n, s, r, i, o) { var a = e + (n ^ (t | ~s)) + r + o; return (a << i | a >>> 32 - i) + t; } t.MD5 = i._createHelper(c), t.HmacMD5 = i._createHmacHelper(c); }(Math), n.MD5); }), s(function (e, t) { var n; e.exports = (n = i, void function () { var e = n, t = e.lib.Base, s = e.enc.Utf8; e.algo.HMAC = t.extend({ init: function init(e, t) { e = this._hasher = new e.init(), "string" == typeof t && (t = s.parse(t)); var n = e.blockSize, r = 4 * n; t.sigBytes > r && (t = e.finalize(t)), t.clamp(); for (var i = this._oKey = t.clone(), o = this._iKey = t.clone(), a = i.words, c = o.words, u = 0; u < n; u++) { a[u] ^= 1549556828, c[u] ^= 909522486; } i.sigBytes = o.sigBytes = r, this.reset(); }, reset: function reset() { var e = this._hasher; e.reset(), e.update(this._iKey); }, update: function update(e) { return this._hasher.update(e), this; }, finalize: function finalize(e) { var t = this._hasher, n = t.finalize(e); return t.reset(), t.finalize(this._oKey.clone().concat(n)); } }); }()); }), s(function (e, t) { e.exports = i.HmacMD5; })), a = s(function (e, t) { e.exports = i.enc.Utf8; }), c = s(function (e, t) { var n; e.exports = (n = i, function () { var e = n, t = e.lib.WordArray; function s(e, n, s) { for (var r = [], i = 0, o = 0; o < n; o++) { if (o % 4) { var a = s[e.charCodeAt(o - 1)] << o % 4 * 2, c = s[e.charCodeAt(o)] >>> 6 - o % 4 * 2; r[i >>> 2] |= (a | c) << 24 - i % 4 * 8, i++; } } return t.create(r, i); } e.enc.Base64 = { stringify: function stringify(e) { var t = e.words, n = e.sigBytes, s = this._map; e.clamp(); for (var r = [], i = 0; i < n; i += 3) { for (var o = (t[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (t[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | t[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < n; a++) { r.push(s.charAt(o >>> 6 * (3 - a) & 63)); } } var c = s.charAt(64); if (c) for (; r.length % 4;) { r.push(c); } return r.join(""); }, parse: function parse(e) { var t = e.length, n = this._map, r = this._reverseMap; if (!r) { r = this._reverseMap = []; for (var i = 0; i < n.length; i++) { r[n.charCodeAt(i)] = i; } } var o = n.charAt(64); if (o) { var a = e.indexOf(o); -1 !== a && (t = a); } return s(e, t, r); }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }; }(), n.enc.Base64); }); var u = "FUNCTION", h = "OBJECT", l = "CLIENT_DB", d = "pending", p = "fullfilled", f = "rejected"; function g(e) { return Object.prototype.toString.call(e).slice(8, -1).toLowerCase(); } function m(e) { return "object" === g(e); } function y(e) { return "function" == typeof e; } function _(e) { return function () { try { return e.apply(e, arguments); } catch (e) { console.error(e); } }; } var w = "REJECTED", v = "NOT_PENDING"; var I = /*#__PURE__*/function () { function I() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref.createPromise, _ref$retryRule = _ref.retryRule, t = _ref$retryRule === void 0 ? w : _ref$retryRule; (0, _classCallCheck2.default)(this, I); this.createPromise = e, this.status = null, this.promise = null, this.retryRule = t; } (0, _createClass2.default)(I, [{ key: "needRetry", get: function get() { if (!this.status) return !0; switch (this.retryRule) { case w: return this.status === f; case v: return this.status !== d; } } }, { key: "exec", value: function exec() { var _this = this; return this.needRetry ? (this.status = d, this.promise = this.createPromise().then(function (e) { return _this.status = p, Promise.resolve(e); }, function (e) { return _this.status = f, Promise.reject(e); }), this.promise) : this.promise; } }]); return I; }(); function S(e) { return e && "string" == typeof e ? JSON.parse(e) : e; } var b = "development" === "development", k = "app-plus", C = "true" === false || !0 === false, T = S([]), P = "h5" === k ? "web" : "app-plus" === k ? "app" : k, A = S(undefined), E = S([]) || [], O = true; var x = ""; try { x = (__webpack_require__(/*! uni-stat-config */ 125).default || __webpack_require__(/*! uni-stat-config */ 125)).appid; } catch (e) {} var R = {}; function U(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var n, s; return n = R, s = e, Object.prototype.hasOwnProperty.call(n, s) || (R[e] = t), R[e]; } "app" === P && (R = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}); var L = ["invoke", "success", "fail", "complete"], N = U("_globalUniCloudInterceptor"); function D(e, t) { N[e] || (N[e] = {}), m(t) && Object.keys(t).forEach(function (n) { L.indexOf(n) > -1 && function (e, t, n) { var s = N[e][t]; s || (s = N[e][t] = []), -1 === s.indexOf(n) && y(n) && s.push(n); }(e, n, t[n]); }); } function F(e, t) { N[e] || (N[e] = {}), m(t) ? Object.keys(t).forEach(function (n) { L.indexOf(n) > -1 && function (e, t, n) { var s = N[e][t]; if (!s) return; var r = s.indexOf(n); r > -1 && s.splice(r, 1); }(e, n, t[n]); }) : delete N[e]; } function q(e, t) { return e && 0 !== e.length ? e.reduce(function (e, n) { return e.then(function () { return n(t); }); }, Promise.resolve()) : Promise.resolve(); } function M(e, t) { return N[e] && N[e][t] || []; } function K(e) { D("callObject", e); } var j = U("_globalUniCloudListener"), B = "response", $ = "needLogin", W = "refreshToken", z = "clientdb", J = "cloudfunction", H = "cloudobject"; function G(e) { return j[e] || (j[e] = []), j[e]; } function V(e, t) { var n = G(e); n.includes(t) || n.push(t); } function Y(e, t) { var n = G(e), s = n.indexOf(t); -1 !== s && n.splice(s, 1); } function Q(e, t) { var n = G(e); for (var _e2 = 0; _e2 < n.length; _e2++) { (0, n[_e2])(t); } } var X, Z = !1; function ee() { return X || (X = new Promise(function (e) { Z && e(), function t() { if ("function" == typeof getCurrentPages) { var _t2 = getCurrentPages(); _t2 && _t2[0] && (Z = !0, e()); } Z || setTimeout(function () { t(); }, 30); }(); }), X); } function te(e) { var t = {}; for (var _n2 in e) { var _s2 = e[_n2]; y(_s2) && (t[_n2] = _(_s2)); } return t; } var ne = /*#__PURE__*/function (_Error) { (0, _inherits2.default)(ne, _Error); var _super = _createSuper(ne); function ne(e) { var _this2; (0, _classCallCheck2.default)(this, ne); _this2 = _super.call(this, e.message), _this2.errMsg = e.message || e.errMsg || "unknown system error", _this2.code = _this2.errCode = e.code || e.errCode || "SYSTEM_ERROR", _this2.errSubject = _this2.subject = e.subject || e.errSubject, _this2.cause = e.cause, _this2.requestId = e.requestId; return _this2; } (0, _createClass2.default)(ne, [{ key: "toJson", value: function toJson() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; if (!(e >= 10)) return e++, { errCode: this.errCode, errMsg: this.errMsg, errSubject: this.errSubject, cause: this.cause && this.cause.toJson ? this.cause.toJson(e) : this.cause }; } }]); return ne; }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error)); var se = { request: function request(e) { return uni.request(e); }, uploadFile: function uploadFile(e) { return uni.uploadFile(e); }, setStorageSync: function setStorageSync(e, t) { return uni.setStorageSync(e, t); }, getStorageSync: function getStorageSync(e) { return uni.getStorageSync(e); }, removeStorageSync: function removeStorageSync(e) { return uni.removeStorageSync(e); }, clearStorageSync: function clearStorageSync() { return uni.clearStorageSync(); } }; function re() { return { token: se.getStorageSync("uni_id_token") || se.getStorageSync("uniIdToken"), tokenExpired: se.getStorageSync("uni_id_token_expired") }; } function ie() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref2.token, t = _ref2.tokenExpired; e && se.setStorageSync("uni_id_token", e), t && se.setStorageSync("uni_id_token_expired", t); } var oe, ae; function ce() { return oe || (oe = uni.getSystemInfoSync()), oe; } function ue() { var e, t; try { if (uni.getLaunchOptionsSync) { if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return; var _uni$getLaunchOptions = uni.getLaunchOptionsSync(), _n3 = _uni$getLaunchOptions.scene, _s3 = _uni$getLaunchOptions.channel; e = _s3, t = _n3; } } catch (e) {} return { channel: e, scene: t }; } function he() { var e = uni.getLocale && uni.getLocale() || "en"; if (ae) return _objectSpread(_objectSpread({}, ae), {}, { locale: e, LOCALE: e }); var t = ce(), n = t.deviceId, s = t.osName, r = t.uniPlatform, i = t.appId, o = ["pixelRatio", "brand", "model", "system", "language", "version", "platform", "host", "SDKVersion", "swanNativeVersion", "app", "AppPlatform", "fontSizeSetting"]; for (var _e3 = 0; _e3 < o.length; _e3++) { delete t[o[_e3]]; } return ae = _objectSpread(_objectSpread({ PLATFORM: r, OS: s, APPID: i, DEVICEID: n }, ue()), t), _objectSpread(_objectSpread({}, ae), {}, { locale: e, LOCALE: e }); } var le = { sign: function sign(e, t) { var n = ""; return Object.keys(e).sort().forEach(function (t) { e[t] && (n = n + "&" + t + "=" + e[t]); }), n = n.slice(1), o(n, t).toString(); }, wrappedRequest: function wrappedRequest(e, t) { return new Promise(function (n, s) { t(Object.assign(e, { complete: function complete(e) { e || (e = {}), b && "web" === P && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5"); var t = e.data && e.data.header && e.data.header["x-serverless-request-id"] || e.header && e.header["request-id"]; if (!e.statusCode || e.statusCode >= 400) return s(new ne({ code: "SYS_ERR", message: e.errMsg || "request:fail", requestId: t })); var r = e.data; if (r.error) return s(new ne({ code: r.error.code, message: r.error.message, requestId: t })); r.result = r.data, r.requestId = t, delete r.data, n(r); } })); }); }, toBase64: function toBase64(e) { return c.stringify(a.parse(e)); } }, de = { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }; var _e4 = (0, _uniI18n.initVueI18n)({ "zh-Hans": { "uniCloud.init.paramRequired": "缺少参数:{param}", "uniCloud.uploadFile.fileError": "filePath应为File对象" }, "zh-Hant": { "uniCloud.init.paramRequired": "缺少参数:{param}", "uniCloud.uploadFile.fileError": "filePath应为File对象" }, en: de, fr: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, es: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, ja: de }, "zh-Hans"), pe = _e4.t; var fe = /*#__PURE__*/function () { function fe(e) { var _this3 = this; (0, _classCallCheck2.default)(this, fe); ["spaceId", "clientSecret"].forEach(function (t) { if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error(pe("uniCloud.init.paramRequired", { param: t })); }), this.config = Object.assign({}, { endpoint: 0 === e.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "https://api.bspapp.com" }, e), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = se, this._getAccessTokenPromiseHub = new I({ createPromise: function createPromise() { return _this3.requestAuth(_this3.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then(function (e) { if (!e.result || !e.result.accessToken) throw new ne({ code: "AUTH_FAILED", message: "获取accessToken失败" }); _this3.setAccessToken(e.result.accessToken); }); }, retryRule: v }); } (0, _createClass2.default)(fe, [{ key: "hasAccessToken", get: function get() { return !!this.accessToken; } }, { key: "setAccessToken", value: function setAccessToken(e) { this.accessToken = e; } }, { key: "requestWrapped", value: function requestWrapped(e) { return le.wrappedRequest(e, this.adapter.request); } }, { key: "requestAuth", value: function requestAuth(e) { return this.requestWrapped(e); } }, { key: "request", value: function request(e, t) { var _this4 = this; return Promise.resolve().then(function () { return _this4.hasAccessToken ? t ? _this4.requestWrapped(e) : _this4.requestWrapped(e).catch(function (t) { return new Promise(function (e, n) { !t || "GATEWAY_INVALID_TOKEN" !== t.code && "InvalidParameter.InvalidToken" !== t.code ? n(t) : e(); }).then(function () { return _this4.getAccessToken(); }).then(function () { var t = _this4.rebuildRequest(e); return _this4.request(t, !0); }); }) : _this4.getAccessToken().then(function () { var t = _this4.rebuildRequest(e); return _this4.request(t, !0); }); }); } }, { key: "rebuildRequest", value: function rebuildRequest(e) { var t = Object.assign({}, e); return t.data.token = this.accessToken, t.header["x-basement-token"] = this.accessToken, t.header["x-serverless-sign"] = le.sign(t.data, this.config.clientSecret), t; } }, { key: "setupRequest", value: function setupRequest(e, t) { var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }), s = { "Content-Type": "application/json" }; return "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = le.sign(n, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: s }; } }, { key: "getAccessToken", value: function getAccessToken() { return this._getAccessTokenPromiseHub.exec(); } }, { key: "authorize", value: function () { var _authorize = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.getAccessToken(); case 2: case "end": return _context.stop(); } } }, _callee, this); })); function authorize() { return _authorize.apply(this, arguments); } return authorize; }() }, { key: "callFunction", value: function callFunction(e) { var t = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e.name, functionArgs: e.data || {} }) }; return this.request(this.setupRequest(t)); } }, { key: "getOSSUploadOptionsFromPath", value: function getOSSUploadOptionsFromPath(e) { var t = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e) }; return this.request(this.setupRequest(t)); } }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref3) { var _this5 = this; var e = _ref3.url, t = _ref3.formData, n = _ref3.name, s = _ref3.filePath, r = _ref3.fileType, i = _ref3.onUploadProgress; return new Promise(function (o, a) { var c = _this5.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: r, header: { "X-OSS-server-side-encrpytion": "AES256" }, success: function success(e) { e && e.statusCode < 400 ? o(e) : a(new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail: function fail(e) { a(new ne({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" })); } }); "function" == typeof i && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { i({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend }); }); }); } }, { key: "reportOSSUpload", value: function reportOSSUpload(e) { var t = { method: "serverless.file.resource.report", params: JSON.stringify(e) }; return this.request(this.setupRequest(t)); } }, { key: "uploadFile", value: function () { var _uploadFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref4) { var e, t, _ref4$fileType, n, _ref4$cloudPathAsReal, s, r, i, o, a, c, u, h, l, d, p, f, m, y, _, _e5, w; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: e = _ref4.filePath, t = _ref4.cloudPath, _ref4$fileType = _ref4.fileType, n = _ref4$fileType === void 0 ? "image" : _ref4$fileType, _ref4$cloudPathAsReal = _ref4.cloudPathAsRealPath, s = _ref4$cloudPathAsReal === void 0 ? !1 : _ref4$cloudPathAsReal, r = _ref4.onUploadProgress, i = _ref4.config; if (!("string" !== g(t))) { _context2.next = 3; break; } throw new ne({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); case 3: if (t = t.trim()) { _context2.next = 5; break; } throw new ne({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); case 5: if (!/:\/\//.test(t)) { _context2.next = 7; break; } throw new ne({ code: "INVALID_PARAM", message: "cloudPath不合法" }); case 7: o = i && i.envType || this.config.envType; if (!(s && ("/" !== t[0] && (t = "/" + t), t.indexOf("\\") > -1))) { _context2.next = 10; break; } throw new ne({ code: "INVALID_PARAM", message: "使用cloudPath作为路径时,cloudPath不可包含“\\”" }); case 10: _context2.next = 12; return this.getOSSUploadOptionsFromPath({ env: o, filename: s ? t.split("/").pop() : t, fileId: s ? t : void 0 }); case 12: a = _context2.sent.result; c = "https://" + a.cdnDomain + "/" + a.ossPath; u = a.securityToken; h = a.accessKeyId; l = a.signature; d = a.host; p = a.ossPath; f = a.id; m = a.policy; y = a.ossCallbackUrl; _ = { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: h, Signature: l, host: d, id: f, key: p, policy: m, success_action_status: 200 }; if (u && (_["x-oss-security-token"] = u), y) { _e5 = JSON.stringify({ callbackUrl: y, callbackBody: JSON.stringify({ fileId: f, spaceId: this.config.spaceId }), callbackBodyType: "application/json" }); _.callback = le.toBase64(_e5); } w = { url: "https://" + a.host, formData: _, fileName: "file", name: "file", filePath: e, fileType: n }; _context2.next = 27; return this.uploadFileToOSS(Object.assign({}, w, { onUploadProgress: r })); case 27: if (!y) { _context2.next = 29; break; } return _context2.abrupt("return", { success: !0, filePath: e, fileID: c }); case 29: _context2.next = 31; return this.reportOSSUpload({ id: f }); case 31: if (!_context2.sent.success) { _context2.next = 33; break; } return _context2.abrupt("return", { success: !0, filePath: e, fileID: c }); case 33: throw new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" }); case 34: case "end": return _context2.stop(); } } }, _callee2, this); })); function uploadFile(_x) { return _uploadFile.apply(this, arguments); } return uploadFile; }() }, { key: "getTempFileURL", value: function getTempFileURL() { var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref5.fileList; return new Promise(function (t, n) { Array.isArray(e) && 0 !== e.length || n(new ne({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t({ fileList: e.map(function (e) { return { fileID: e, tempFileURL: e }; }) }); }); } }, { key: "getFileInfo", value: function () { var _getFileInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() { var _ref6, e, t, _args3 = arguments; return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _ref6 = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}, e = _ref6.fileList; if (!(!Array.isArray(e) || 0 === e.length)) { _context3.next = 3; break; } throw new ne({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); case 3: t = { method: "serverless.file.resource.info", params: JSON.stringify({ id: e.map(function (e) { return e.split("?")[0]; }).join(",") }) }; _context3.next = 6; return this.request(this.setupRequest(t)); case 6: _context3.t0 = _context3.sent.result; return _context3.abrupt("return", { fileList: _context3.t0 }); case 8: case "end": return _context3.stop(); } } }, _callee3, this); })); function getFileInfo() { return _getFileInfo.apply(this, arguments); } return getFileInfo; }() }]); return fe; }(); var ge = { init: function init(e) { var t = new fe(e), n = { signInAnonymously: function signInAnonymously() { return t.authorize(); }, getLoginState: function getLoginState() { return Promise.resolve(!1); } }; return t.auth = function () { return n; }, t.customAuth = t.auth, t; } }; var me = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:"; var ye; !function (e) { e.local = "local", e.none = "none", e.session = "session"; }(ye || (ye = {})); var _e = function _e() {}; var we = function we() { var e; if (!Promise) { e = function e() {}, e.promise = {}; var _t3 = function _t3() { throw new ne({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' }); }; return Object.defineProperty(e.promise, "then", { get: _t3 }), Object.defineProperty(e.promise, "catch", { get: _t3 }), e; } var t = new Promise(function (t, n) { e = function e(_e6, s) { return _e6 ? n(_e6) : t(s); }; }); return e.promise = t, e; }; function ve(e) { return void 0 === e; } function Ie(e) { return "[object Null]" === Object.prototype.toString.call(e); } var Se; function be(e) { var t = (n = e, "[object Array]" === Object.prototype.toString.call(n) ? e : [e]); var n; var _iterator = _createForOfIteratorHelper(t), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _e7 = _step.value; var _t4 = _e7.isMatch, _n4 = _e7.genAdapter, _s4 = _e7.runtime; if (_t4()) return { adapter: _n4(), runtime: _s4 }; } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } !function (e) { e.WEB = "web", e.WX_MP = "wx_mp"; }(Se || (Se = {})); var ke = { adapter: null, runtime: void 0 }, Ce = ["anonymousUuidKey"]; var Te = /*#__PURE__*/function (_e8) { (0, _inherits2.default)(Te, _e8); var _super2 = _createSuper(Te); function Te() { var _this6; (0, _classCallCheck2.default)(this, Te); _this6 = _super2.call(this), ke.adapter.root.tcbObject || (ke.adapter.root.tcbObject = {}); return _this6; } (0, _createClass2.default)(Te, [{ key: "setItem", value: function setItem(e, t) { ke.adapter.root.tcbObject[e] = t; } }, { key: "getItem", value: function getItem(e) { return ke.adapter.root.tcbObject[e]; } }, { key: "removeItem", value: function removeItem(e) { delete ke.adapter.root.tcbObject[e]; } }, { key: "clear", value: function clear() { delete ke.adapter.root.tcbObject; } }]); return Te; }(_e); function Pe(e, t) { switch (e) { case "local": return t.localStorage || new Te(); case "none": return new Te(); default: return t.sessionStorage || new Te(); } } var Ae = /*#__PURE__*/function () { function Ae(e) { (0, _classCallCheck2.default)(this, Ae); if (!this._storage) { this._persistence = ke.adapter.primaryStorage || e.persistence, this._storage = Pe(this._persistence, ke.adapter); var _t5 = "access_token_".concat(e.env), _n5 = "access_token_expire_".concat(e.env), _s5 = "refresh_token_".concat(e.env), _r = "anonymous_uuid_".concat(e.env), _i = "login_type_".concat(e.env), _o = "user_info_".concat(e.env); this.keys = { accessTokenKey: _t5, accessTokenExpireKey: _n5, refreshTokenKey: _s5, anonymousUuidKey: _r, loginTypeKey: _i, userInfoKey: _o }; } } (0, _createClass2.default)(Ae, [{ key: "updatePersistence", value: function updatePersistence(e) { if (e === this._persistence) return; var t = "local" === this._persistence; this._persistence = e; var n = Pe(e, ke.adapter); for (var _e9 in this.keys) { var _s6 = this.keys[_e9]; if (t && Ce.includes(_e9)) continue; var _r2 = this._storage.getItem(_s6); ve(_r2) || Ie(_r2) || (n.setItem(_s6, _r2), this._storage.removeItem(_s6)); } this._storage = n; } }, { key: "setStore", value: function setStore(e, t, n) { if (!this._storage) return; var s = { version: n || "localCachev1", content: t }, r = JSON.stringify(s); try { this._storage.setItem(e, r); } catch (e) { throw e; } } }, { key: "getStore", value: function getStore(e, t) { try { if (!this._storage) return; } catch (e) { return ""; } t = t || "localCachev1"; var n = this._storage.getItem(e); if (!n) return ""; if (n.indexOf(t) >= 0) { return JSON.parse(n).content; } return ""; } }, { key: "removeStore", value: function removeStore(e) { this._storage.removeItem(e); } }]); return Ae; }(); var Ee = {}, Oe = {}; function xe(e) { return Ee[e]; } var Re = /*#__PURE__*/(0, _createClass2.default)(function Re(e, t) { (0, _classCallCheck2.default)(this, Re); this.data = t || null, this.name = e; }); var Ue = /*#__PURE__*/function (_Re) { (0, _inherits2.default)(Ue, _Re); var _super3 = _createSuper(Ue); function Ue(e, t) { var _this7; (0, _classCallCheck2.default)(this, Ue); _this7 = _super3.call(this, "error", { error: e, data: t }), _this7.error = e; return _this7; } return (0, _createClass2.default)(Ue); }(Re); var Le = new ( /*#__PURE__*/function () { function _class() { (0, _classCallCheck2.default)(this, _class); this._listeners = {}; } (0, _createClass2.default)(_class, [{ key: "on", value: function on(e, t) { return function (e, t, n) { n[e] = n[e] || [], n[e].push(t); }(e, t, this._listeners), this; } }, { key: "off", value: function off(e, t) { return function (e, t, n) { if (n && n[e]) { var _s7 = n[e].indexOf(t); -1 !== _s7 && n[e].splice(_s7, 1); } }(e, t, this._listeners), this; } }, { key: "fire", value: function fire(e, t) { if (e instanceof Ue) return console.error(e.error), this; var n = "string" == typeof e ? new Re(e, t || {}) : e; var s = n.name; if (this._listens(s)) { n.target = this; var _e10 = this._listeners[s] ? (0, _toConsumableArray2.default)(this._listeners[s]) : []; var _iterator2 = _createForOfIteratorHelper(_e10), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _t6 = _step2.value; _t6.call(this, n); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } return this; } }, { key: "_listens", value: function _listens(e) { return this._listeners[e] && this._listeners[e].length > 0; } }]); return _class; }())(); function Ne(e, t) { Le.on(e, t); } function De(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; Le.fire(e, t); } function Fe(e, t) { Le.off(e, t); } var qe = "loginStateChanged", Me = "loginStateExpire", Ke = "loginTypeChanged", je = "anonymousConverted", Be = "refreshAccessToken"; var $e; !function (e) { e.ANONYMOUS = "ANONYMOUS", e.WECHAT = "WECHAT", e.WECHAT_PUBLIC = "WECHAT-PUBLIC", e.WECHAT_OPEN = "WECHAT-OPEN", e.CUSTOM = "CUSTOM", e.EMAIL = "EMAIL", e.USERNAME = "USERNAME", e.NULL = "NULL"; }($e || ($e = {})); var We = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], ze = { "X-SDK-Version": "1.3.5" }; function Je(e, t, n) { var s = e[t]; e[t] = function (t) { var r = {}, i = {}; n.forEach(function (n) { var _n$call = n.call(e, t), s = _n$call.data, o = _n$call.headers; Object.assign(r, s), Object.assign(i, o); }); var o = t.data; return o && function () { var e; if (e = o, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, o), r);else for (var _e11 in r) { o.append(_e11, r[_e11]); } }(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), i), s.call(e, t); }; } function He() { var e = Math.random().toString(16).slice(2); return { data: { seqId: e }, headers: _objectSpread(_objectSpread({}, ze), {}, { "x-seqid": e }) }; } var Ge = /*#__PURE__*/function () { function Ge() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck2.default)(this, Ge); var t; this.config = e, this._reqClass = new ke.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(this.config.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] }), this._cache = xe(this.config.env), this._localCache = (t = this.config.env, Oe[t]), Je(this._reqClass, "post", [He]), Je(this._reqClass, "upload", [He]), Je(this._reqClass, "download", [He]); } (0, _createClass2.default)(Ge, [{ key: "post", value: function () { var _post = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(e) { return _regenerator.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this._reqClass.post(e); case 2: return _context4.abrupt("return", _context4.sent); case 3: case "end": return _context4.stop(); } } }, _callee4, this); })); function post(_x2) { return _post.apply(this, arguments); } return post; }() }, { key: "upload", value: function () { var _upload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(e) { return _regenerator.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this._reqClass.upload(e); case 2: return _context5.abrupt("return", _context5.sent); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); function upload(_x3) { return _upload.apply(this, arguments); } return upload; }() }, { key: "download", value: function () { var _download = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(e) { return _regenerator.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this._reqClass.download(e); case 2: return _context6.abrupt("return", _context6.sent); case 3: case "end": return _context6.stop(); } } }, _callee6, this); })); function download(_x4) { return _download.apply(this, arguments); } return download; }() }, { key: "refreshAccessToken", value: function () { var _refreshAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() { var e, t; return _regenerator.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken()); _context7.prev = 1; _context7.next = 4; return this._refreshAccessTokenPromise; case 4: e = _context7.sent; _context7.next = 10; break; case 7: _context7.prev = 7; _context7.t0 = _context7["catch"](1); t = _context7.t0; case 10: if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) { _context7.next = 12; break; } throw t; case 12: return _context7.abrupt("return", e); case 13: case "end": return _context7.stop(); } } }, _callee7, this, [[1, 7]]); })); function refreshAccessToken() { return _refreshAccessToken2.apply(this, arguments); } return refreshAccessToken; }() }, { key: "_refreshAccessToken", value: function () { var _refreshAccessToken3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { var _this$_cache$keys, e, t, n, s, r, i, o, a, _e12, _e13, _t7, _s8; return _regenerator.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _this$_cache$keys = this._cache.keys, e = _this$_cache$keys.accessTokenKey, t = _this$_cache$keys.accessTokenExpireKey, n = _this$_cache$keys.refreshTokenKey, s = _this$_cache$keys.loginTypeKey, r = _this$_cache$keys.anonymousUuidKey; this._cache.removeStore(e), this._cache.removeStore(t); i = this._cache.getStore(n); if (i) { _context8.next = 5; break; } throw new ne({ message: "未登录CloudBase" }); case 5: o = { refresh_token: i }; _context8.next = 8; return this.request("auth.fetchAccessTokenWithRefreshToken", o); case 8: a = _context8.sent; if (!a.data.code) { _context8.next = 21; break; } _e12 = a.data.code; if (!("SIGN_PARAM_INVALID" === _e12 || "REFRESH_TOKEN_EXPIRED" === _e12 || "INVALID_REFRESH_TOKEN" === _e12)) { _context8.next = 20; break; } if (!(this._cache.getStore(s) === $e.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e12)) { _context8.next = 19; break; } _e13 = this._cache.getStore(r); _t7 = this._cache.getStore(n); _context8.next = 17; return this.send("auth.signInAnonymously", { anonymous_uuid: _e13, refresh_token: _t7 }); case 17: _s8 = _context8.sent; return _context8.abrupt("return", (this.setRefreshToken(_s8.refresh_token), this._refreshAccessToken())); case 19: De(Me), this._cache.removeStore(n); case 20: throw new ne({ code: a.data.code, message: "\u5237\u65B0access token\u5931\u8D25\uFF1A".concat(a.data.code) }); case 21: if (!a.data.access_token) { _context8.next = 23; break; } return _context8.abrupt("return", (De(Be), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { accessToken: a.data.access_token, accessTokenExpire: a.data.access_token_expire })); case 23: a.data.refresh_token && (this._cache.removeStore(n), this._cache.setStore(n, a.data.refresh_token), this._refreshAccessToken()); case 24: case "end": return _context8.stop(); } } }, _callee8, this); })); function _refreshAccessToken() { return _refreshAccessToken3.apply(this, arguments); } return _refreshAccessToken; }() }, { key: "getAccessToken", value: function () { var _getAccessToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() { var _this$_cache$keys2, e, t, n, s, r, i; return _regenerator.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = _this$_cache$keys2.refreshTokenKey; if (this._cache.getStore(n)) { _context9.next = 3; break; } throw new ne({ message: "refresh token不存在,登录状态异常" }); case 3: s = this._cache.getStore(e), r = this._cache.getStore(t), i = !0; _context9.t0 = this._shouldRefreshAccessTokenHook; if (!_context9.t0) { _context9.next = 9; break; } _context9.next = 8; return this._shouldRefreshAccessTokenHook(s, r); case 8: _context9.t0 = !_context9.sent; case 9: _context9.t1 = _context9.t0; if (!_context9.t1) { _context9.next = 12; break; } i = !1; case 12: return _context9.abrupt("return", (!s || !r || r < Date.now()) && i ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: r }); case 13: case "end": return _context9.stop(); } } }, _callee9, this); })); function getAccessToken() { return _getAccessToken.apply(this, arguments); } return getAccessToken; }() }, { key: "request", value: function () { var _request = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(e, t, n) { var s, r, i, _e14, o, _e15, _e16, a, c, u, h, l, d, p, f, g; return _regenerator.default.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: s = "x-tcb-trace_".concat(this.config.env); r = "application/x-www-form-urlencoded"; i = _objectSpread({ action: e, env: this.config.env, dataVersion: "2019-08-16" }, t); if (!(-1 === We.indexOf(e))) { _context10.next = 10; break; } _e14 = this._cache.keys.refreshTokenKey; _context10.t0 = this._cache.getStore(_e14); if (!_context10.t0) { _context10.next = 10; break; } _context10.next = 9; return this.getAccessToken(); case 9: i.access_token = _context10.sent.accessToken; case 10: if ("storage.uploadFile" === e) { o = new FormData(); for (_e15 in o) { o.hasOwnProperty(_e15) && void 0 !== o[_e15] && o.append(_e15, i[_e15]); } r = "multipart/form-data"; } else { r = "application/json", o = {}; for (_e16 in i) { void 0 !== i[_e16] && (o[_e16] = i[_e16]); } } a = { headers: { "content-type": r } }; n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress); c = this._localCache.getStore(s); c && (a.headers["X-TCB-Trace"] = c); u = t.parse, h = t.inQuery, l = t.search; d = { env: this.config.env }; u && (d.parse = !0), h && (d = _objectSpread(_objectSpread({}, h), d)); p = function (e, t) { var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var s = /\?/.test(t); var r = ""; for (var _e17 in n) { "" === r ? !s && (t += "?") : r += "&", r += "".concat(_e17, "=").concat(encodeURIComponent(n[_e17])); } return /^http(s)?\:\/\//.test(t += r) ? t : "".concat(e).concat(t); }(me, "//tcb-api.tencentcloudapi.com/web", d); l && (p += l); _context10.next = 22; return this.post(_objectSpread({ url: p, data: o }, a)); case 22: f = _context10.sent; g = f.header && f.header["x-tcb-trace"]; if (!(g && this._localCache.setStore(s, g), 200 !== Number(f.status) && 200 !== Number(f.statusCode) || !f.data)) { _context10.next = 26; break; } throw new ne({ code: "NETWORK_ERROR", message: "network request error" }); case 26: return _context10.abrupt("return", f); case 27: case "end": return _context10.stop(); } } }, _callee10, this); })); function request(_x5, _x6, _x7) { return _request.apply(this, arguments); } return request; }() }, { key: "send", value: function () { var _send = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) { var t, n, _n6, _args11 = arguments; return _regenerator.default.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: t = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : {}; _context11.next = 3; return this.request(e, t, { onUploadProgress: t.onUploadProgress }); case 3: n = _context11.sent; if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === We.indexOf(e))) { _context11.next = 13; break; } _context11.next = 7; return this.refreshAccessToken(); case 7: _context11.next = 9; return this.request(e, t, { onUploadProgress: t.onUploadProgress }); case 9: _n6 = _context11.sent; if (!_n6.data.code) { _context11.next = 12; break; } throw new ne({ code: _n6.data.code, message: _n6.data.message }); case 12: return _context11.abrupt("return", _n6.data); case 13: if (!n.data.code) { _context11.next = 15; break; } throw new ne({ code: n.data.code, message: n.data.message }); case 15: return _context11.abrupt("return", n.data); case 16: case "end": return _context11.stop(); } } }, _callee11, this); })); function send(_x8) { return _send.apply(this, arguments); } return send; }() }, { key: "setRefreshToken", value: function setRefreshToken(e) { var _this$_cache$keys3 = this._cache.keys, t = _this$_cache$keys3.accessTokenKey, n = _this$_cache$keys3.accessTokenExpireKey, s = _this$_cache$keys3.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }]); return Ge; }(); var Ve = {}; function Ye(e) { return Ve[e]; } var Qe = /*#__PURE__*/function () { function Qe(e) { (0, _classCallCheck2.default)(this, Qe); this.config = e, this._cache = xe(e.env), this._request = Ye(e.env); } (0, _createClass2.default)(Qe, [{ key: "setRefreshToken", value: function setRefreshToken(e) { var _this$_cache$keys4 = this._cache.keys, t = _this$_cache$keys4.accessTokenKey, n = _this$_cache$keys4.accessTokenExpireKey, s = _this$_cache$keys4.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }, { key: "setAccessToken", value: function setAccessToken(e, t) { var _this$_cache$keys5 = this._cache.keys, n = _this$_cache$keys5.accessTokenKey, s = _this$_cache$keys5.accessTokenExpireKey; this._cache.setStore(n, e), this._cache.setStore(s, t); } }, { key: "refreshUserInfo", value: function () { var _refreshUserInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() { var _yield$this$_request$, e; return _regenerator.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return this._request.send("auth.getUserInfo", {}); case 2: _yield$this$_request$ = _context12.sent; e = _yield$this$_request$.data; return _context12.abrupt("return", (this.setLocalUserInfo(e), e)); case 5: case "end": return _context12.stop(); } } }, _callee12, this); })); function refreshUserInfo() { return _refreshUserInfo.apply(this, arguments); } return refreshUserInfo; }() }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) { var t = this._cache.keys.userInfoKey; this._cache.setStore(t, e); } }]); return Qe; }(); var Xe = /*#__PURE__*/function () { function Xe(e) { (0, _classCallCheck2.default)(this, Xe); if (!e) throw new ne({ code: "PARAM_ERROR", message: "envId is not defined" }); this._envId = e, this._cache = xe(this._envId), this._request = Ye(this._envId), this.setUserInfo(); } (0, _createClass2.default)(Xe, [{ key: "linkWithTicket", value: function linkWithTicket(e) { if ("string" != typeof e) throw new ne({ code: "PARAM_ERROR", message: "ticket must be string" }); return this._request.send("auth.linkWithTicket", { ticket: e }); } }, { key: "linkWithRedirect", value: function linkWithRedirect(e) { e.signInWithRedirect(); } }, { key: "updatePassword", value: function updatePassword(e, t) { return this._request.send("auth.updatePassword", { oldPassword: t, newPassword: e }); } }, { key: "updateEmail", value: function updateEmail(e) { return this._request.send("auth.updateEmail", { newEmail: e }); } }, { key: "updateUsername", value: function updateUsername(e) { if ("string" != typeof e) throw new ne({ code: "PARAM_ERROR", message: "username must be a string" }); return this._request.send("auth.updateUsername", { username: e }); } }, { key: "getLinkedUidList", value: function () { var _getLinkedUidList = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() { var _yield$this$_request$2, e, t, n; return _regenerator.default.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: _context13.next = 2; return this._request.send("auth.getLinkedUidList", {}); case 2: _yield$this$_request$2 = _context13.sent; e = _yield$this$_request$2.data; t = !1; n = e.users; return _context13.abrupt("return", (n.forEach(function (e) { e.wxOpenId && e.wxPublicId && (t = !0); }), { users: n, hasPrimaryUid: t })); case 7: case "end": return _context13.stop(); } } }, _callee13, this); })); function getLinkedUidList() { return _getLinkedUidList.apply(this, arguments); } return getLinkedUidList; }() }, { key: "setPrimaryUid", value: function setPrimaryUid(e) { return this._request.send("auth.setPrimaryUid", { uid: e }); } }, { key: "unlink", value: function unlink(e) { return this._request.send("auth.unlink", { platform: e }); } }, { key: "update", value: function () { var _update = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) { var t, n, s, r, i, o, _yield$this$_request$3, a; return _regenerator.default.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: t = e.nickName; n = e.gender; s = e.avatarUrl; r = e.province; i = e.country; o = e.city; _context14.next = 8; return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, avatarUrl: s, province: r, country: i, city: o }); case 8: _yield$this$_request$3 = _context14.sent; a = _yield$this$_request$3.data; this.setLocalUserInfo(a); case 11: case "end": return _context14.stop(); } } }, _callee14, this); })); function update(_x9) { return _update.apply(this, arguments); } return update; }() }, { key: "refresh", value: function () { var _refresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() { var _yield$this$_request$4, e; return _regenerator.default.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.next = 2; return this._request.send("auth.getUserInfo", {}); case 2: _yield$this$_request$4 = _context15.sent; e = _yield$this$_request$4.data; return _context15.abrupt("return", (this.setLocalUserInfo(e), e)); case 5: case "end": return _context15.stop(); } } }, _callee15, this); })); function refresh() { return _refresh.apply(this, arguments); } return refresh; }() }, { key: "setUserInfo", value: function setUserInfo() { var _this8 = this; var e = this._cache.keys.userInfoKey, t = this._cache.getStore(e); ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach(function (e) { _this8[e] = t[e]; }), this.location = { country: t.country, province: t.province, city: t.city }; } }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) { var t = this._cache.keys.userInfoKey; this._cache.setStore(t, e), this.setUserInfo(); } }]); return Xe; }(); var Ze = /*#__PURE__*/function () { function Ze(e) { (0, _classCallCheck2.default)(this, Ze); if (!e) throw new ne({ code: "PARAM_ERROR", message: "envId is not defined" }); this._cache = xe(e); var _this$_cache$keys6 = this._cache.keys, t = _this$_cache$keys6.refreshTokenKey, n = _this$_cache$keys6.accessTokenKey, s = _this$_cache$keys6.accessTokenExpireKey, r = this._cache.getStore(t), i = this._cache.getStore(n), o = this._cache.getStore(s); this.credential = { refreshToken: r, accessToken: i, accessTokenExpire: o }, this.user = new Xe(e); } (0, _createClass2.default)(Ze, [{ key: "isAnonymousAuth", get: function get() { return this.loginType === $e.ANONYMOUS; } }, { key: "isCustomAuth", get: function get() { return this.loginType === $e.CUSTOM; } }, { key: "isWeixinAuth", get: function get() { return this.loginType === $e.WECHAT || this.loginType === $e.WECHAT_OPEN || this.loginType === $e.WECHAT_PUBLIC; } }, { key: "loginType", get: function get() { return this._cache.getStore(this._cache.keys.loginTypeKey); } }]); return Ze; }(); var et = /*#__PURE__*/function (_Qe) { (0, _inherits2.default)(et, _Qe); var _super4 = _createSuper(et); function et() { (0, _classCallCheck2.default)(this, et); return _super4.apply(this, arguments); } (0, _createClass2.default)(et, [{ key: "signIn", value: function () { var _signIn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() { var _this$_cache$keys7, e, t, n, s, r, _e18; return _regenerator.default.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: this._cache.updatePersistence("local"); _this$_cache$keys7 = this._cache.keys; e = _this$_cache$keys7.anonymousUuidKey; t = _this$_cache$keys7.refreshTokenKey; n = this._cache.getStore(e) || void 0; s = this._cache.getStore(t) || void 0; _context16.next = 8; return this._request.send("auth.signInAnonymously", { anonymous_uuid: n, refresh_token: s }); case 8: r = _context16.sent; if (!(r.uuid && r.refresh_token)) { _context16.next = 20; break; } this._setAnonymousUUID(r.uuid); this.setRefreshToken(r.refresh_token); _context16.next = 14; return this._request.refreshAccessToken(); case 14: De(qe); De(Ke, { env: this.config.env, loginType: $e.ANONYMOUS, persistence: "local" }); _e18 = new Ze(this.config.env); _context16.next = 19; return _e18.user.refresh(); case 19: return _context16.abrupt("return", _e18); case 20: throw new ne({ message: "匿名登录失败" }); case 21: case "end": return _context16.stop(); } } }, _callee16, this); })); function signIn() { return _signIn.apply(this, arguments); } return signIn; }() }, { key: "linkAndRetrieveDataWithTicket", value: function () { var _linkAndRetrieveDataWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) { var _this$_cache$keys8, t, n, s, r, i; return _regenerator.default.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _this$_cache$keys8 = this._cache.keys; t = _this$_cache$keys8.anonymousUuidKey; n = _this$_cache$keys8.refreshTokenKey; s = this._cache.getStore(t); r = this._cache.getStore(n); _context17.next = 7; return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: r, ticket: e }); case 7: i = _context17.sent; if (!i.refresh_token) { _context17.next = 16; break; } this._clearAnonymousUUID(); this.setRefreshToken(i.refresh_token); _context17.next = 13; return this._request.refreshAccessToken(); case 13: De(je, { env: this.config.env }); De(Ke, { loginType: $e.CUSTOM, persistence: "local" }); return _context17.abrupt("return", { credential: { refreshToken: i.refresh_token } }); case 16: throw new ne({ message: "匿名转化失败" }); case 17: case "end": return _context17.stop(); } } }, _callee17, this); })); function linkAndRetrieveDataWithTicket(_x10) { return _linkAndRetrieveDataWithTicket.apply(this, arguments); } return linkAndRetrieveDataWithTicket; }() }, { key: "_setAnonymousUUID", value: function _setAnonymousUUID(e) { var _this$_cache$keys9 = this._cache.keys, t = _this$_cache$keys9.anonymousUuidKey, n = _this$_cache$keys9.loginTypeKey; this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, $e.ANONYMOUS); } }, { key: "_clearAnonymousUUID", value: function _clearAnonymousUUID() { this._cache.removeStore(this._cache.keys.anonymousUuidKey); } }]); return et; }(Qe); var tt = /*#__PURE__*/function (_Qe2) { (0, _inherits2.default)(tt, _Qe2); var _super5 = _createSuper(tt); function tt() { (0, _classCallCheck2.default)(this, tt); return _super5.apply(this, arguments); } (0, _createClass2.default)(tt, [{ key: "signIn", value: function () { var _signIn2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(e) { var t, n; return _regenerator.default.wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: if (!("string" != typeof e)) { _context18.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "ticket must be a string" }); case 2: t = this._cache.keys.refreshTokenKey; _context18.next = 5; return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" }); case 5: n = _context18.sent; if (!n.refresh_token) { _context18.next = 15; break; } this.setRefreshToken(n.refresh_token); _context18.next = 10; return this._request.refreshAccessToken(); case 10: De(qe); De(Ke, { env: this.config.env, loginType: $e.CUSTOM, persistence: this.config.persistence }); _context18.next = 14; return this.refreshUserInfo(); case 14: return _context18.abrupt("return", new Ze(this.config.env)); case 15: throw new ne({ message: "自定义登录失败" }); case 16: case "end": return _context18.stop(); } } }, _callee18, this); })); function signIn(_x11) { return _signIn2.apply(this, arguments); } return signIn; }() }]); return tt; }(Qe); var nt = /*#__PURE__*/function (_Qe3) { (0, _inherits2.default)(nt, _Qe3); var _super6 = _createSuper(nt); function nt() { (0, _classCallCheck2.default)(this, nt); return _super6.apply(this, arguments); } (0, _createClass2.default)(nt, [{ key: "signIn", value: function () { var _signIn3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) { var n, s, r, i, o; return _regenerator.default.wrap(function _callee19$(_context19) { while (1) { switch (_context19.prev = _context19.next) { case 0: if (!("string" != typeof e)) { _context19.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "email must be a string" }); case 2: n = this._cache.keys.refreshTokenKey; _context19.next = 5; return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, password: t, refresh_token: this._cache.getStore(n) || "" }); case 5: s = _context19.sent; r = s.refresh_token; i = s.access_token; o = s.access_token_expire; if (!r) { _context19.next = 22; break; } this.setRefreshToken(r); if (!(i && o)) { _context19.next = 15; break; } this.setAccessToken(i, o); _context19.next = 17; break; case 15: _context19.next = 17; return this._request.refreshAccessToken(); case 17: _context19.next = 19; return this.refreshUserInfo(); case 19: De(qe); De(Ke, { env: this.config.env, loginType: $e.EMAIL, persistence: this.config.persistence }); return _context19.abrupt("return", new Ze(this.config.env)); case 22: throw s.code ? new ne({ code: s.code, message: "\u90AE\u7BB1\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new ne({ message: "邮箱登录失败" }); case 23: case "end": return _context19.stop(); } } }, _callee19, this); })); function signIn(_x12, _x13) { return _signIn3.apply(this, arguments); } return signIn; }() }, { key: "activate", value: function () { var _activate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(e) { return _regenerator.default.wrap(function _callee20$(_context20) { while (1) { switch (_context20.prev = _context20.next) { case 0: return _context20.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e })); case 1: case "end": return _context20.stop(); } } }, _callee20, this); })); function activate(_x14) { return _activate.apply(this, arguments); } return activate; }() }, { key: "resetPasswordWithToken", value: function () { var _resetPasswordWithToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(e, t) { return _regenerator.default.wrap(function _callee21$(_context21) { while (1) { switch (_context21.prev = _context21.next) { case 0: return _context21.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t })); case 1: case "end": return _context21.stop(); } } }, _callee21, this); })); function resetPasswordWithToken(_x15, _x16) { return _resetPasswordWithToken.apply(this, arguments); } return resetPasswordWithToken; }() }]); return nt; }(Qe); var st = /*#__PURE__*/function (_Qe4) { (0, _inherits2.default)(st, _Qe4); var _super7 = _createSuper(st); function st() { (0, _classCallCheck2.default)(this, st); return _super7.apply(this, arguments); } (0, _createClass2.default)(st, [{ key: "signIn", value: function () { var _signIn4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(e, t) { var n, s, r, i, o; return _regenerator.default.wrap(function _callee22$(_context22) { while (1) { switch (_context22.prev = _context22.next) { case 0: if (!("string" != typeof e)) { _context22.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "username must be a string" }); case 2: "string" != typeof t && (t = "", console.warn("password is empty")); n = this._cache.keys.refreshTokenKey; _context22.next = 6; return this._request.send("auth.signIn", { loginType: $e.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" }); case 6: s = _context22.sent; r = s.refresh_token; i = s.access_token_expire; o = s.access_token; if (!r) { _context22.next = 23; break; } this.setRefreshToken(r); if (!(o && i)) { _context22.next = 16; break; } this.setAccessToken(o, i); _context22.next = 18; break; case 16: _context22.next = 18; return this._request.refreshAccessToken(); case 18: _context22.next = 20; return this.refreshUserInfo(); case 20: De(qe); De(Ke, { env: this.config.env, loginType: $e.USERNAME, persistence: this.config.persistence }); return _context22.abrupt("return", new Ze(this.config.env)); case 23: throw s.code ? new ne({ code: s.code, message: "\u7528\u6237\u540D\u5BC6\u7801\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new ne({ message: "用户名密码登录失败" }); case 24: case "end": return _context22.stop(); } } }, _callee22, this); })); function signIn(_x17, _x18) { return _signIn4.apply(this, arguments); } return signIn; }() }]); return st; }(Qe); var rt = /*#__PURE__*/function () { function rt(e) { (0, _classCallCheck2.default)(this, rt); this.config = e, this._cache = xe(e.env), this._request = Ye(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), Ne(Ke, this._onLoginTypeChanged); } (0, _createClass2.default)(rt, [{ key: "currentUser", get: function get() { var e = this.hasLoginState(); return e && e.user || null; } }, { key: "loginType", get: function get() { return this._cache.getStore(this._cache.keys.loginTypeKey); } }, { key: "anonymousAuthProvider", value: function anonymousAuthProvider() { return new et(this.config); } }, { key: "customAuthProvider", value: function customAuthProvider() { return new tt(this.config); } }, { key: "emailAuthProvider", value: function emailAuthProvider() { return new nt(this.config); } }, { key: "usernameAuthProvider", value: function usernameAuthProvider() { return new st(this.config); } }, { key: "signInAnonymously", value: function () { var _signInAnonymously = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23() { return _regenerator.default.wrap(function _callee23$(_context23) { while (1) { switch (_context23.prev = _context23.next) { case 0: return _context23.abrupt("return", new et(this.config).signIn()); case 1: case "end": return _context23.stop(); } } }, _callee23, this); })); function signInAnonymously() { return _signInAnonymously.apply(this, arguments); } return signInAnonymously; }() }, { key: "signInWithEmailAndPassword", value: function () { var _signInWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(e, t) { return _regenerator.default.wrap(function _callee24$(_context24) { while (1) { switch (_context24.prev = _context24.next) { case 0: return _context24.abrupt("return", new nt(this.config).signIn(e, t)); case 1: case "end": return _context24.stop(); } } }, _callee24, this); })); function signInWithEmailAndPassword(_x19, _x20) { return _signInWithEmailAndPassword.apply(this, arguments); } return signInWithEmailAndPassword; }() }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) { return new st(this.config).signIn(e, t); } }, { key: "linkAndRetrieveDataWithTicket", value: function () { var _linkAndRetrieveDataWithTicket2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) { return _regenerator.default.wrap(function _callee25$(_context25) { while (1) { switch (_context25.prev = _context25.next) { case 0: this._anonymousAuthProvider || (this._anonymousAuthProvider = new et(this.config)), Ne(je, this._onAnonymousConverted); _context25.next = 3; return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e); case 3: return _context25.abrupt("return", _context25.sent); case 4: case "end": return _context25.stop(); } } }, _callee25, this); })); function linkAndRetrieveDataWithTicket(_x21) { return _linkAndRetrieveDataWithTicket2.apply(this, arguments); } return linkAndRetrieveDataWithTicket; }() }, { key: "signOut", value: function () { var _signOut = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26() { var _this$_cache$keys10, e, t, n, s, r; return _regenerator.default.wrap(function _callee26$(_context26) { while (1) { switch (_context26.prev = _context26.next) { case 0: if (!(this.loginType === $e.ANONYMOUS)) { _context26.next = 2; break; } throw new ne({ message: "匿名用户不支持登出操作" }); case 2: _this$_cache$keys10 = this._cache.keys, e = _this$_cache$keys10.refreshTokenKey, t = _this$_cache$keys10.accessTokenKey, n = _this$_cache$keys10.accessTokenExpireKey, s = this._cache.getStore(e); if (s) { _context26.next = 5; break; } return _context26.abrupt("return"); case 5: _context26.next = 7; return this._request.send("auth.logout", { refresh_token: s }); case 7: r = _context26.sent; return _context26.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), De(qe), De(Ke, { env: this.config.env, loginType: $e.NULL, persistence: this.config.persistence }), r)); case 9: case "end": return _context26.stop(); } } }, _callee26, this); })); function signOut() { return _signOut.apply(this, arguments); } return signOut; }() }, { key: "signUpWithEmailAndPassword", value: function () { var _signUpWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(e, t) { return _regenerator.default.wrap(function _callee27$(_context27) { while (1) { switch (_context27.prev = _context27.next) { case 0: return _context27.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t })); case 1: case "end": return _context27.stop(); } } }, _callee27, this); })); function signUpWithEmailAndPassword(_x22, _x23) { return _signUpWithEmailAndPassword.apply(this, arguments); } return signUpWithEmailAndPassword; }() }, { key: "sendPasswordResetEmail", value: function () { var _sendPasswordResetEmail = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(e) { return _regenerator.default.wrap(function _callee28$(_context28) { while (1) { switch (_context28.prev = _context28.next) { case 0: return _context28.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e })); case 1: case "end": return _context28.stop(); } } }, _callee28, this); })); function sendPasswordResetEmail(_x24) { return _sendPasswordResetEmail.apply(this, arguments); } return sendPasswordResetEmail; }() }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) { var _this9 = this; Ne(qe, function () { var t = _this9.hasLoginState(); e.call(_this9, t); }); var t = this.hasLoginState(); e.call(this, t); } }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) { Ne(Me, e.bind(this)); } }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) { Ne(Be, e.bind(this)); } }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) { Ne(je, e.bind(this)); } }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) { var _this10 = this; Ne(Ke, function () { var t = _this10.hasLoginState(); e.call(_this10, t); }); } }, { key: "getAccessToken", value: function () { var _getAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29() { return _regenerator.default.wrap(function _callee29$(_context29) { while (1) { switch (_context29.prev = _context29.next) { case 0: _context29.next = 2; return this._request.getAccessToken(); case 2: _context29.t0 = _context29.sent.accessToken; _context29.t1 = this.config.env; return _context29.abrupt("return", { accessToken: _context29.t0, env: _context29.t1 }); case 5: case "end": return _context29.stop(); } } }, _callee29, this); })); function getAccessToken() { return _getAccessToken2.apply(this, arguments); } return getAccessToken; }() }, { key: "hasLoginState", value: function hasLoginState() { var e = this._cache.keys.refreshTokenKey; return this._cache.getStore(e) ? new Ze(this.config.env) : null; } }, { key: "isUsernameRegistered", value: function () { var _isUsernameRegistered = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(e) { var _yield$this$_request$5, t; return _regenerator.default.wrap(function _callee30$(_context30) { while (1) { switch (_context30.prev = _context30.next) { case 0: if (!("string" != typeof e)) { _context30.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "username must be a string" }); case 2: _context30.next = 4; return this._request.send("auth.isUsernameRegistered", { username: e }); case 4: _yield$this$_request$5 = _context30.sent; t = _yield$this$_request$5.data; return _context30.abrupt("return", t && t.isRegistered); case 7: case "end": return _context30.stop(); } } }, _callee30, this); })); function isUsernameRegistered(_x25) { return _isUsernameRegistered.apply(this, arguments); } return isUsernameRegistered; }() }, { key: "getLoginState", value: function getLoginState() { return Promise.resolve(this.hasLoginState()); } }, { key: "signInWithTicket", value: function () { var _signInWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(e) { return _regenerator.default.wrap(function _callee31$(_context31) { while (1) { switch (_context31.prev = _context31.next) { case 0: return _context31.abrupt("return", new tt(this.config).signIn(e)); case 1: case "end": return _context31.stop(); } } }, _callee31, this); })); function signInWithTicket(_x26) { return _signInWithTicket.apply(this, arguments); } return signInWithTicket; }() }, { key: "shouldRefreshAccessToken", value: function shouldRefreshAccessToken(e) { this._request._shouldRefreshAccessTokenHook = e.bind(this); } }, { key: "getUserInfo", value: function getUserInfo() { return this._request.send("auth.getUserInfo", {}).then(function (e) { return e.code ? e : _objectSpread(_objectSpread({}, e.data), {}, { requestId: e.seqId }); }); } }, { key: "getAuthHeader", value: function getAuthHeader() { var _this$_cache$keys11 = this._cache.keys, e = _this$_cache$keys11.refreshTokenKey, t = _this$_cache$keys11.accessTokenKey, n = this._cache.getStore(e); return { "x-cloudbase-credentials": this._cache.getStore(t) + "/@@/" + n }; } }, { key: "_onAnonymousConverted", value: function _onAnonymousConverted(e) { var t = e.data.env; t === this.config.env && this._cache.updatePersistence(this.config.persistence); } }, { key: "_onLoginTypeChanged", value: function _onLoginTypeChanged(e) { var _e$data = e.data, t = _e$data.loginType, n = _e$data.persistence, s = _e$data.env; s === this.config.env && (this._cache.updatePersistence(n), this._cache.setStore(this._cache.keys.loginTypeKey, t)); } }]); return rt; }(); var it = function it(e, t) { t = t || we(); var n = Ye(this.config.env), s = e.cloudPath, r = e.filePath, i = e.onUploadProgress, _e$fileType = e.fileType, o = _e$fileType === void 0 ? "image" : _e$fileType; return n.send("storage.getUploadMetadata", { path: s }).then(function (e) { var _e$data2 = e.data, a = _e$data2.url, c = _e$data2.authorization, u = _e$data2.token, h = _e$data2.fileId, l = _e$data2.cosFileId, d = e.requestId, p = { key: s, signature: c, "x-cos-meta-fileid": l, success_action_status: "201", "x-cos-security-token": u }; n.upload({ url: a, data: p, file: r, name: s, fileType: o, onUploadProgress: i }).then(function (e) { 201 === e.statusCode ? t(null, { fileID: h, requestId: d }) : t(new ne({ code: "STORAGE_REQUEST_FAIL", message: "STORAGE_REQUEST_FAIL: ".concat(e.data) })); }).catch(function (e) { t(e); }); }).catch(function (e) { t(e); }), t.promise; }, ot = function ot(e, t) { t = t || we(); var n = Ye(this.config.env), s = e.cloudPath; return n.send("storage.getUploadMetadata", { path: s }).then(function (e) { t(null, e); }).catch(function (e) { t(e); }), t.promise; }, at = function at(_ref7, t) { var e = _ref7.fileList; if (t = t || we(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }; var _iterator3 = _createForOfIteratorHelper(e), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var _t8 = _step3.value; if (!_t8 || "string" != typeof _t8) return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }; } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } var n = { fileid_list: e }; return Ye(this.config.env).send("storage.batchDeleteFile", n).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.delete_list, requestId: e.requestId }); }).catch(function (e) { t(e); }), t.promise; }, ct = function ct(_ref8, t) { var e = _ref8.fileList; t = t || we(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }); var n = []; var _iterator4 = _createForOfIteratorHelper(e), _step4; try { for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var _s9 = _step4.value; "object" == (0, _typeof2.default)(_s9) ? (_s9.hasOwnProperty("fileID") && _s9.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n.push({ fileid: _s9.fileID, max_age: _s9.maxAge })) : "string" == typeof _s9 ? n.push({ fileid: _s9 }) : t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" }); } } catch (err) { _iterator4.e(err); } finally { _iterator4.f(); } var s = { file_list: n }; return Ye(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.download_list, requestId: e.requestId }); }).catch(function (e) { t(e); }), t.promise; }, ut = /*#__PURE__*/function () { var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(_ref9, t) { var e, n, s, r; return _regenerator.default.wrap(function _callee32$(_context32) { while (1) { switch (_context32.prev = _context32.next) { case 0: e = _ref9.fileID; _context32.next = 3; return ct.call(this, { fileList: [{ fileID: e, maxAge: 600 }] }); case 3: n = _context32.sent.fileList[0]; if (!("SUCCESS" !== n.code)) { _context32.next = 6; break; } return _context32.abrupt("return", t ? t(n) : new Promise(function (e) { e(n); })); case 6: s = Ye(this.config.env); r = n.download_url; if (!(r = encodeURI(r), !t)) { _context32.next = 10; break; } return _context32.abrupt("return", s.download({ url: r })); case 10: _context32.t0 = t; _context32.next = 13; return s.download({ url: r }); case 13: _context32.t1 = _context32.sent; (0, _context32.t0)(_context32.t1); case 15: case "end": return _context32.stop(); } } }, _callee32, this); })); return function ut(_x27, _x28) { return _ref10.apply(this, arguments); }; }(), ht = function ht(_ref11, i) { var e = _ref11.name, t = _ref11.data, n = _ref11.query, s = _ref11.parse, r = _ref11.search; var o = i || we(); var a; try { a = t ? JSON.stringify(t) : ""; } catch (e) { return Promise.reject(e); } if (!e) return Promise.reject(new ne({ code: "PARAM_ERROR", message: "函数名不能为空" })); var c = { inQuery: n, parse: s, search: r, function_name: e, request_data: a }; return Ye(this.config.env).send("functions.invokeFunction", c).then(function (e) { if (e.code) o(null, e);else { var _t9 = e.data.response_data; if (s) o(null, { result: _t9, requestId: e.requestId });else try { _t9 = JSON.parse(e.data.response_data), o(null, { result: _t9, requestId: e.requestId }); } catch (e) { o(new ne({ message: "response data must be json" })); } } return o.promise; }).catch(function (e) { o(e); }), o.promise; }, lt = { timeout: 15e3, persistence: "session" }, dt = {}; var pt = /*#__PURE__*/function () { function pt(e) { (0, _classCallCheck2.default)(this, pt); this.config = e || this.config, this.authObj = void 0; } (0, _createClass2.default)(pt, [{ key: "init", value: function init(e) { switch (ke.adapter || (this.requestClient = new ke.adapter.reqClass({ timeout: e.timeout || 5e3, timeoutMsg: "\u8BF7\u6C42\u5728".concat((e.timeout || 5e3) / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD") })), this.config = _objectSpread(_objectSpread({}, lt), e), !0) { case this.config.timeout > 6e5: console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5; break; case this.config.timeout < 100: console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100; } return new pt(this.config); } }, { key: "auth", value: function auth() { var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref12.persistence; if (this.authObj) return this.authObj; var t = e || ke.adapter.primaryStorage || lt.persistence; var n; return t !== this.config.persistence && (this.config.persistence = t), function (e) { var t = e.env; Ee[t] = new Ae(e), Oe[t] = new Ae(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" })); }(this.config), n = this.config, Ve[n.env] = new Ge(n), this.authObj = new rt(this.config), this.authObj; } }, { key: "on", value: function on(e, t) { return Ne.apply(this, [e, t]); } }, { key: "off", value: function off(e, t) { return Fe.apply(this, [e, t]); } }, { key: "callFunction", value: function callFunction(e, t) { return ht.apply(this, [e, t]); } }, { key: "deleteFile", value: function deleteFile(e, t) { return at.apply(this, [e, t]); } }, { key: "getTempFileURL", value: function getTempFileURL(e, t) { return ct.apply(this, [e, t]); } }, { key: "downloadFile", value: function downloadFile(e, t) { return ut.apply(this, [e, t]); } }, { key: "uploadFile", value: function uploadFile(e, t) { return it.apply(this, [e, t]); } }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) { return ot.apply(this, [e, t]); } }, { key: "registerExtension", value: function registerExtension(e) { dt[e.name] = e; } }, { key: "invokeExtension", value: function () { var _invokeExtension = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(e, t) { var n; return _regenerator.default.wrap(function _callee33$(_context33) { while (1) { switch (_context33.prev = _context33.next) { case 0: n = dt[e]; if (n) { _context33.next = 3; break; } throw new ne({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") }); case 3: _context33.next = 5; return n.invoke(t, this); case 5: return _context33.abrupt("return", _context33.sent); case 6: case "end": return _context33.stop(); } } }, _callee33, this); })); function invokeExtension(_x29, _x30) { return _invokeExtension.apply(this, arguments); } return invokeExtension; }() }, { key: "useAdapters", value: function useAdapters(e) { var _ref13 = be(e) || {}, t = _ref13.adapter, n = _ref13.runtime; t && (ke.adapter = t), n && (ke.runtime = n); } }]); return pt; }(); var ft = new pt(); function gt(e, t, n) { void 0 === n && (n = {}); var s = /\?/.test(t), r = ""; for (var i in n) { "" === r ? !s && (t += "?") : r += "&", r += i + "=" + encodeURIComponent(n[i]); } return /^http(s)?:\/\//.test(t += r) ? t : "" + e + t; } var mt = /*#__PURE__*/function () { function mt() { (0, _classCallCheck2.default)(this, mt); } (0, _createClass2.default)(mt, [{ key: "post", value: function post(e) { var t = e.url, n = e.data, s = e.headers; return new Promise(function (e, r) { se.request({ url: gt("https:", t), data: n, method: "POST", header: s, success: function success(t) { e(t); }, fail: function fail(e) { r(e); } }); }); } }, { key: "upload", value: function upload(e) { return new Promise(function (t, n) { var s = e.url, r = e.file, i = e.data, o = e.headers, a = e.fileType, c = se.uploadFile({ url: gt("https:", s), name: "file", formData: Object.assign({}, i), filePath: r, fileType: a, header: o, success: function success(e) { var n = { statusCode: e.statusCode, data: e.data || {} }; 200 === e.statusCode && i.success_action_status && (n.statusCode = parseInt(i.success_action_status, 10)), t(n); }, fail: function fail(e) { n(new Error(e.errMsg || "uploadFile:fail")); } }); "function" == typeof e.onUploadProgress && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (t) { e.onUploadProgress({ loaded: t.totalBytesSent, total: t.totalBytesExpectedToSend }); }); }); } }]); return mt; }(); var yt = { setItem: function setItem(e, t) { se.setStorageSync(e, t); }, getItem: function getItem(e) { return se.getStorageSync(e); }, removeItem: function removeItem(e) { se.removeStorageSync(e); }, clear: function clear() { se.clearStorageSync(); } }; var _t = { genAdapter: function genAdapter() { return { root: {}, reqClass: mt, localStorage: yt, primaryStorage: "local" }; }, isMatch: function isMatch() { return !0; }, runtime: "uni_app" }; ft.useAdapters(_t); var wt = ft, vt = wt.init; wt.init = function (e) { e.env = e.spaceId; var t = vt.call(this, e); t.config.provider = "tencent", t.config.spaceId = e.spaceId; var n = t.auth; return t.auth = function (e) { var t = n.call(this, e); return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach(function (e) { var n; t[e] = (n = t[e], function (e) { e = e || {}; var _te = te(e), t = _te.success, s = _te.fail, r = _te.complete; if (!(t || s || r)) return n.call(this, e); n.call(this, e).then(function (e) { t && t(e), r && r(e); }, function (e) { s && s(e), r && r(e); }); }).bind(t); }), t; }, t.customAuth = t.auth, t; }; var It = wt; var St = /*#__PURE__*/function (_fe) { (0, _inherits2.default)(St, _fe); var _super8 = _createSuper(St); function St() { (0, _classCallCheck2.default)(this, St); return _super8.apply(this, arguments); } (0, _createClass2.default)(St, [{ key: "getAccessToken", value: function getAccessToken() { var _this11 = this; return new Promise(function (e, t) { var n = "Anonymous_Access_token"; _this11.setAccessToken(n), e(n); }); } }, { key: "setupRequest", value: function setupRequest(e, t) { var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }), s = { "Content-Type": "application/json" }; "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = le.sign(n, this.config.clientSecret); var r = he(); s["x-client-info"] = encodeURIComponent(JSON.stringify(r)); var _re = re(), i = _re.token; return s["x-client-token"] = i, { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: JSON.parse(JSON.stringify(s)) }; } }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref14) { var _this12 = this; var e = _ref14.url, t = _ref14.formData, n = _ref14.name, s = _ref14.filePath, r = _ref14.fileType, i = _ref14.onUploadProgress; return new Promise(function (o, a) { var c = _this12.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: r, success: function success(e) { e && e.statusCode < 400 ? o(e) : a(new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail: function fail(e) { a(new ne({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" })); } }); "function" == typeof i && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { i({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend }); }); }); } }, { key: "uploadFile", value: function uploadFile(_ref15) { var _this13 = this; var e = _ref15.filePath, t = _ref15.cloudPath, _ref15$fileType = _ref15.fileType, n = _ref15$fileType === void 0 ? "image" : _ref15$fileType, s = _ref15.onUploadProgress; if (!t) throw new ne({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" }); var r; return this.getOSSUploadOptionsFromPath({ cloudPath: t }).then(function (t) { var _t$result = t.result, i = _t$result.url, o = _t$result.formData, a = _t$result.name; r = t.result.fileUrl; var c = { url: i, formData: o, name: a, filePath: e, fileType: n }; return _this13.uploadFileToOSS(Object.assign({}, c, { onUploadProgress: s })); }).then(function () { return _this13.reportOSSUpload({ cloudPath: t }); }).then(function (t) { return new Promise(function (n, s) { t.success ? n({ success: !0, filePath: e, fileID: r }) : s(new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }); }); } }, { key: "deleteFile", value: function deleteFile(_ref16) { var e = _ref16.fileList; var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) }; return this.request(this.setupRequest(t)).then(function (e) { if (e.success) return e.result; throw new ne({ code: "DELETE_FILE_FAILED", message: "删除文件失败" }); }); } }, { key: "getTempFileURL", value: function getTempFileURL() { var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref17.fileList; if (!Array.isArray(e) || 0 === e.length) throw new ne({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); var t = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e }) }; return this.request(this.setupRequest(t)).then(function (e) { if (e.success) return { fileList: e.result.fileList.map(function (e) { return { fileID: e.fileID, tempFileURL: e.tempFileURL }; }) }; throw new ne({ code: "GET_TEMP_FILE_URL_FAILED", message: "获取临时文件链接失败" }); }); } }]); return St; }(fe); var bt = { init: function init(e) { var t = new St(e), n = { signInAnonymously: function signInAnonymously() { return t.authorize(); }, getLoginState: function getLoginState() { return Promise.resolve(!1); } }; return t.auth = function () { return n; }, t.customAuth = t.auth, t; } }; function kt(_ref18) { var e = _ref18.data; var t; t = he(); var n = JSON.parse(JSON.stringify(e || {})); if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) { var _re2 = re(), _e19 = _re2.token; _e19 && (n.uniIdToken = _e19); } return n; } function Ct() { return _Ct.apply(this, arguments); } function _Ct() { _Ct = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee54() { var _this26 = this; var _ref60, e, t, _this$__dev__, n, s, r, i, o, a, _args6 = arguments; return _regenerator.default.wrap(function _callee54$(_context54) { while (1) { switch (_context54.prev = _context54.next) { case 0: _ref60 = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}, e = _ref60.name, t = _ref60.data; _context54.next = 3; return this.__dev__.initLocalNetwork(); case 3: _this$__dev__ = this.__dev__, n = _this$__dev__.localAddress, s = _this$__dev__.localPort, r = { aliyun: "aliyun", tencent: "tcb" }[this.config.provider], i = this.config.spaceId, o = "http://".concat(n, ":").concat(s, "/system/check-function"), a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e); return _context54.abrupt("return", new Promise(function (t, n) { se.request({ method: "POST", url: o, data: { name: e, platform: P, provider: r, spaceId: i }, timeout: 3e3, success: function success(e) { t(e); }, fail: function fail() { t({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } }); } }); }).then(function () { var _ref61 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref61.data; var _ref62 = e || {}, t = _ref62.code, n = _ref62.message; return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" }; }).then(function (_ref63) { var n = _ref63.code, s = _ref63.message; if (0 !== n) { switch (n) { case "MODULE_ENCRYPTED": console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "FUNCTION_ENCRYPTED": console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "ACTION_ENCRYPTED": console.error(s || "需要访问加密的uni-clientDB-action,自动切换为云端环境"); break; case "NETWORK_ERROR": { var _e31 = "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下"; throw console.error(_e31), new Error(_e31); } case "SWITCH_TO_CLOUD": break; default: { var _e32 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(s, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5"); throw console.error(_e32), new Error(_e32); } } return _this26._callCloudFunction({ name: e, data: t }); } return new Promise(function (e, n) { var s = kt.call(_this26, { data: t }); se.request({ method: "POST", url: a, data: { provider: r, platform: P, param: s }, success: function success() { var _ref64 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref64.statusCode, s = _ref64.data; return !t || t >= 400 ? n(new ne({ code: s.code || "SYS_ERR", message: s.message || "request:fail" })) : e({ result: s }); }, fail: function fail(e) { n(new ne({ code: e.code || e.errCode || "SYS_ERR", message: e.message || e.errMsg || "request:fail" })); } }); }); })); case 5: case "end": return _context54.stop(); } } }, _callee54, this); })); return _Ct.apply(this, arguments); } var Tt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }]; var Pt = /[\\^$.*+?()[\]{}|]/g, At = RegExp(Pt.source); function Et(e, t, n) { return e.replace(new RegExp((s = t) && At.test(s) ? s.replace(Pt, "\\$&") : s, "g"), n); var s; } var Ot = "none", xt = "request", Rt = "response", Ut = "both"; var Lt = /*#__PURE__*/function () { function Lt() { var _ref19 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref19.secretType, t = _ref19.uniCloudIns; (0, _classCallCheck2.default)(this, Lt); this.clientType = "", this.secretType = e || Ot, this.uniCloudIns = t; var _this$uniCloudIns$con = this.uniCloudIns.config, n = _this$uniCloudIns$con.provider, s = _this$uniCloudIns$con.spaceId; var r; this.provider = n, this.spaceId = s, this.scopedGlobalCache = (r = this.uniCloudIns, U("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", r.config.spaceId))); } (0, _createClass2.default)(Lt, [{ key: "getSystemInfo", value: function getSystemInfo() { return this._systemInfo || (this._systemInfo = ce()), this._systemInfo; } }, { key: "appId", get: function get() { return this.getSystemInfo().appId; } }, { key: "deviceId", get: function get() { return this.getSystemInfo().deviceId; } }, { key: "encryptData", value: function () { var _encryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(e) { return _regenerator.default.wrap(function _callee34$(_context34) { while (1) { switch (_context34.prev = _context34.next) { case 0: return _context34.abrupt("return", this.secretType === Ot ? e : this.platformEncryptData(e)); case 1: case "end": return _context34.stop(); } } }, _callee34, this); })); function encryptData(_x31) { return _encryptData.apply(this, arguments); } return encryptData; }() }, { key: "decryptResult", value: function () { var _decryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(e) { var _ref20, t, n; return _regenerator.default.wrap(function _callee35$(_context35) { while (1) { switch (_context35.prev = _context35.next) { case 0: if (!(this.secretType === Ot)) { _context35.next = 2; break; } return _context35.abrupt("return", e); case 2: _ref20 = e || {}, t = _ref20.errCode, n = _ref20.content; return _context35.abrupt("return", t || !n ? e : this.secretType === xt ? n : this.platformDecryptResult(e)); case 4: case "end": return _context35.stop(); } } }, _callee35, this); })); function decryptResult(_x32) { return _decryptResult.apply(this, arguments); } return decryptResult; }() }, { key: "wrapVerifyClientCallFunction", value: function wrapVerifyClientCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36() { var _ref22, n, _ref22$data, s, r, _args36 = arguments; return _regenerator.default.wrap(function _callee36$(_context36) { while (1) { switch (_context36.prev = _context36.next) { case 0: _ref22 = _args36.length > 0 && _args36[0] !== undefined ? _args36[0] : {}, n = _ref22.name, _ref22$data = _ref22.data, s = _ref22$data === void 0 ? {} : _ref22$data; _context36.next = 3; return t.prepare(); case 3: _context36.next = 5; return t.platformGetSignOption(); case 5: (s = JSON.parse(JSON.stringify(s)))._uniCloudOptions = _context36.sent; _context36.next = 8; return e({ name: n, data: s }); case 8: r = _context36.sent; _context36.t0 = t.isClientKeyNotFound(r); if (!_context36.t0) { _context36.next = 19; break; } _context36.next = 13; return t.prepare({ forceUpdate: !0 }); case 13: _context36.next = 15; return t.platformGetSignOption(); case 15: s._uniCloudOptions = _context36.sent; _context36.next = 18; return e({ name: n, data: s }); case 18: r = _context36.sent; case 19: return _context36.abrupt("return", r); case 20: case "end": return _context36.stop(); } } }, _callee36); })); } }, { key: "wrapEncryptDataCallFunction", value: function wrapEncryptDataCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37() { var _ref24, n, _ref24$data, s, r, i, _r3, _args37 = arguments; return _regenerator.default.wrap(function _callee37$(_context37) { while (1) { switch (_context37.prev = _context37.next) { case 0: _ref24 = _args37.length > 0 && _args37[0] !== undefined ? _args37[0] : {}, n = _ref24.name, _ref24$data = _ref24.data, s = _ref24$data === void 0 ? {} : _ref24$data; _context37.next = 3; return t.prepare(); case 3: _context37.next = 5; return t.encryptData(s); case 5: r = _context37.sent; _context37.next = 8; return e({ name: n, data: r }); case 8: i = _context37.sent; if (!t.isClientKeyNotFound(i)) { _context37.next = 21; break; } _context37.next = 12; return t.prepare({ forceUpdate: !0 }); case 12: _context37.next = 14; return t.encryptData(s); case 14: _r3 = _context37.sent; _context37.next = 17; return t.platformGetSignOption(); case 17: s._uniCloudOptions = _context37.sent; _context37.next = 20; return e({ name: n, data: _r3 }); case 20: i = _context37.sent; case 21: _context37.next = 23; return t.decryptResult(i.result); case 23: i.result = _context37.sent; return _context37.abrupt("return", i); case 25: case "end": return _context37.stop(); } } }, _callee37); })); } }]); return Lt; }(); /*! MIT License. Copyright 2015-2018 Richard Moore . See LICENSE.txt. */ function Nt(e) { return parseInt(e) === e; } function Dt(e) { if (!Nt(e.length)) return !1; for (var t = 0; t < e.length; t++) { if (!Nt(e[t]) || e[t] < 0 || e[t] > 255) return !1; } return !0; } function Ft(e, t) { if (e.buffer && "Uint8Array" === e.name) return t && (e = e.slice ? e.slice() : Array.prototype.slice.call(e)), e; if (Array.isArray(e)) { if (!Dt(e)) throw new Error("Array contains invalid value: " + e); return new Uint8Array(e); } if (Nt(e.length) && Dt(e)) return new Uint8Array(e); throw new Error("unsupported array-like object"); } function qt(e) { return new Uint8Array(e); } function Mt(e, t, n, s, r) { null == s && null == r || (e = e.slice ? e.slice(s, r) : Array.prototype.slice.call(e, s, r)), t.set(e, n); } var Kt, jt = { toBytes: function toBytes(e) { var t = [], n = 0; for (e = encodeURI(e); n < e.length;) { var s = e.charCodeAt(n++); 37 === s ? (t.push(parseInt(e.substr(n, 2), 16)), n += 2) : t.push(s); } return Ft(t); }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length;) { var s = e[n]; s < 128 ? (t.push(String.fromCharCode(s)), n++) : s > 191 && s < 224 ? (t.push(String.fromCharCode((31 & s) << 6 | 63 & e[n + 1])), n += 2) : (t.push(String.fromCharCode((15 & s) << 12 | (63 & e[n + 1]) << 6 | 63 & e[n + 2])), n += 3); } return t.join(""); } }, Bt = (Kt = "0123456789abcdef", { toBytes: function toBytes(e) { for (var t = [], n = 0; n < e.length; n += 2) { t.push(parseInt(e.substr(n, 2), 16)); } return t; }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length; n++) { var s = e[n]; t.push(Kt[(240 & s) >> 4] + Kt[15 & s]); } return t.join(""); } }), $t = { 16: 10, 24: 12, 32: 14 }, Wt = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], zt = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], Jt = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125], Ht = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986], Gt = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766], Vt = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126], Yt = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436], Qt = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890], Xt = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935], Zt = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600], en = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480], tn = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795], nn = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855], sn = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150], rn = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; function on(e) { for (var t = [], n = 0; n < e.length; n += 4) { t.push(e[n] << 24 | e[n + 1] << 16 | e[n + 2] << 8 | e[n + 3]); } return t; } var an = /*#__PURE__*/function () { function an(e) { (0, _classCallCheck2.default)(this, an); if (!(this instanceof an)) throw Error("AES must be instanitated with `new`"); Object.defineProperty(this, "key", { value: Ft(e, !0) }), this._prepare(); } (0, _createClass2.default)(an, [{ key: "_prepare", value: function _prepare() { var e = $t[this.key.length]; if (null == e) throw new Error("invalid key size (must be 16, 24 or 32 bytes)"); this._Ke = [], this._Kd = []; for (var t = 0; t <= e; t++) { this._Ke.push([0, 0, 0, 0]), this._Kd.push([0, 0, 0, 0]); } var n, s = 4 * (e + 1), r = this.key.length / 4, i = on(this.key); for (t = 0; t < r; t++) { n = t >> 2, this._Ke[n][t % 4] = i[t], this._Kd[e - n][t % 4] = i[t]; } for (var o, a = 0, c = r; c < s;) { if (o = i[r - 1], i[0] ^= zt[o >> 16 & 255] << 24 ^ zt[o >> 8 & 255] << 16 ^ zt[255 & o] << 8 ^ zt[o >> 24 & 255] ^ Wt[a] << 24, a += 1, 8 != r) for (t = 1; t < r; t++) { i[t] ^= i[t - 1]; } else { for (t = 1; t < r / 2; t++) { i[t] ^= i[t - 1]; } o = i[r / 2 - 1], i[r / 2] ^= zt[255 & o] ^ zt[o >> 8 & 255] << 8 ^ zt[o >> 16 & 255] << 16 ^ zt[o >> 24 & 255] << 24; for (t = r / 2 + 1; t < r; t++) { i[t] ^= i[t - 1]; } } for (t = 0; t < r && c < s;) { u = c >> 2, h = c % 4, this._Ke[u][h] = i[t], this._Kd[e - u][h] = i[t++], c++; } } for (var u = 1; u < e; u++) { for (var h = 0; h < 4; h++) { o = this._Kd[u][h], this._Kd[u][h] = tn[o >> 24 & 255] ^ nn[o >> 16 & 255] ^ sn[o >> 8 & 255] ^ rn[255 & o]; } } } }, { key: "encrypt", value: function encrypt(e) { if (16 != e.length) throw new Error("invalid plaintext size (must be 16 bytes)"); for (var t = this._Ke.length - 1, n = [0, 0, 0, 0], s = on(e), r = 0; r < 4; r++) { s[r] ^= this._Ke[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { n[r] = Ht[s[r] >> 24 & 255] ^ Gt[s[(r + 1) % 4] >> 16 & 255] ^ Vt[s[(r + 2) % 4] >> 8 & 255] ^ Yt[255 & s[(r + 3) % 4]] ^ this._Ke[i][r]; } s = n.slice(); } var o, a = qt(16); for (r = 0; r < 4; r++) { o = this._Ke[t][r], a[4 * r] = 255 & (zt[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (zt[s[(r + 1) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (zt[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (zt[255 & s[(r + 3) % 4]] ^ o); } return a; } }, { key: "decrypt", value: function decrypt(e) { if (16 != e.length) throw new Error("invalid ciphertext size (must be 16 bytes)"); for (var t = this._Kd.length - 1, n = [0, 0, 0, 0], s = on(e), r = 0; r < 4; r++) { s[r] ^= this._Kd[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { n[r] = Qt[s[r] >> 24 & 255] ^ Xt[s[(r + 3) % 4] >> 16 & 255] ^ Zt[s[(r + 2) % 4] >> 8 & 255] ^ en[255 & s[(r + 1) % 4]] ^ this._Kd[i][r]; } s = n.slice(); } var o, a = qt(16); for (r = 0; r < 4; r++) { o = this._Kd[t][r], a[4 * r] = 255 & (Jt[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (Jt[s[(r + 3) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (Jt[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (Jt[255 & s[(r + 1) % 4]] ^ o); } return a; } }]); return an; }(); var cn = /*#__PURE__*/function () { function cn(e) { (0, _classCallCheck2.default)(this, cn); if (!(this instanceof cn)) throw Error("AES must be instanitated with `new`"); this.description = "Electronic Code Block", this.name = "ecb", this._aes = new an(e); } (0, _createClass2.default)(cn, [{ key: "encrypt", value: function encrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16), Mt(n = this._aes.encrypt(n), t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16), Mt(n = this._aes.decrypt(n), t, s); } return t; } }]); return cn; }(); var un = /*#__PURE__*/function () { function un(e, t) { (0, _classCallCheck2.default)(this, un); if (!(this instanceof un)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Block Chaining", this.name = "cbc", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); } else t = qt(16); this._lastCipherblock = Ft(t, !0), this._aes = new an(e); } (0, _createClass2.default)(un, [{ key: "encrypt", value: function encrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16); for (var r = 0; r < 16; r++) { n[r] ^= this._lastCipherblock[r]; } this._lastCipherblock = this._aes.encrypt(n), Mt(this._lastCipherblock, t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16), n = this._aes.decrypt(n); for (var r = 0; r < 16; r++) { t[s + r] = n[r] ^ this._lastCipherblock[r]; } Mt(e, this._lastCipherblock, 0, s, s + 16); } return t; } }]); return un; }(); var hn = /*#__PURE__*/function () { function hn(e, t, n) { (0, _classCallCheck2.default)(this, hn); if (!(this instanceof hn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Feedback", this.name = "cfb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 size)"); } else t = qt(16); n || (n = 1), this.segmentSize = n, this._shiftRegister = Ft(t, !0), this._aes = new an(e); } (0, _createClass2.default)(hn, [{ key: "encrypt", value: function encrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid plaintext size (must be segmentSize bytes)"); for (var t, n = Ft(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } Mt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Mt(n, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }, { key: "decrypt", value: function decrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid ciphertext size (must be segmentSize bytes)"); for (var t, n = Ft(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } Mt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Mt(e, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }]); return hn; }(); var ln = /*#__PURE__*/function () { function ln(e, t) { (0, _classCallCheck2.default)(this, ln); if (!(this instanceof ln)) throw Error("AES must be instanitated with `new`"); if (this.description = "Output Feedback", this.name = "ofb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); } else t = qt(16); this._lastPrecipher = Ft(t, !0), this._lastPrecipherIndex = 16, this._aes = new an(e); } (0, _createClass2.default)(ln, [{ key: "encrypt", value: function encrypt(e) { for (var t = Ft(e, !0), n = 0; n < t.length; n++) { 16 === this._lastPrecipherIndex && (this._lastPrecipher = this._aes.encrypt(this._lastPrecipher), this._lastPrecipherIndex = 0), t[n] ^= this._lastPrecipher[this._lastPrecipherIndex++]; } return t; } }, { key: "decrypt", value: function decrypt(e) { return this.encrypt(e); } }]); return ln; }(); var dn = /*#__PURE__*/function () { function dn(e) { (0, _classCallCheck2.default)(this, dn); if (!(this instanceof dn)) throw Error("Counter must be instanitated with `new`"); 0 === e || e || (e = 1), "number" == typeof e ? (this._counter = qt(16), this.setValue(e)) : this.setBytes(e); } (0, _createClass2.default)(dn, [{ key: "setValue", value: function setValue(e) { if ("number" != typeof e || parseInt(e) != e) throw new Error("invalid counter value (must be an integer)"); if (e > Number.MAX_SAFE_INTEGER) throw new Error("integer value out of safe range"); for (var t = 15; t >= 0; --t) { this._counter[t] = e % 256, e = parseInt(e / 256); } } }, { key: "setBytes", value: function setBytes(e) { if (16 != (e = Ft(e, !0)).length) throw new Error("invalid counter bytes size (must be 16 bytes)"); this._counter = e; } }, { key: "increment", value: function increment() { for (var e = 15; e >= 0; e--) { if (255 !== this._counter[e]) { this._counter[e]++; break; } this._counter[e] = 0; } } }]); return dn; }(); var pn = /*#__PURE__*/function () { function pn(e, t) { (0, _classCallCheck2.default)(this, pn); if (!(this instanceof pn)) throw Error("AES must be instanitated with `new`"); this.description = "Counter", this.name = "ctr", t instanceof dn || (t = new dn(t)), this._counter = t, this._remainingCounter = null, this._remainingCounterIndex = 16, this._aes = new an(e); } (0, _createClass2.default)(pn, [{ key: "encrypt", value: function encrypt(e) { for (var t = Ft(e, !0), n = 0; n < t.length; n++) { 16 === this._remainingCounterIndex && (this._remainingCounter = this._aes.encrypt(this._counter._counter), this._remainingCounterIndex = 0, this._counter.increment()), t[n] ^= this._remainingCounter[this._remainingCounterIndex++]; } return t; } }, { key: "decrypt", value: function decrypt(e) { return this.encrypt(e); } }]); return pn; }(); var fn = { AES: an, Counter: dn, ModeOfOperation: { ecb: cn, cbc: un, cfb: hn, ofb: ln, ctr: pn }, utils: { hex: Bt, utf8: jt }, padding: { pkcs7: { pad: function pad(e) { var t = 16 - (e = Ft(e, !0)).length % 16, n = qt(e.length + t); Mt(e, n); for (var s = e.length; s < n.length; s++) { n[s] = t; } return n; }, strip: function strip(e) { if ((e = Ft(e, !0)).length < 16) throw new Error("PKCS#7 invalid length"); var t = e[e.length - 1]; if (t > 16) throw new Error("PKCS#7 padding byte out of range"); for (var n = e.length - t, s = 0; s < t; s++) { if (e[n + s] !== t) throw new Error("PKCS#7 invalid padding byte"); } var r = qt(n); return Mt(e, r, 0, 0, n), r; } } }, _arrayTest: { coerceArray: Ft, createArray: qt, copyArray: Mt } }; function gn(e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(t)), r = fn.utils.utf8.toBytes(n), i = fn.utils.utf8.toBytes(e), o = new fn.ModeOfOperation.cbc(s, r), a = fn.padding.pkcs7.pad(i), c = o.encrypt(a); return uni.arrayBufferToBase64(c); } var mn = { code: 2e4, message: "System error" }, yn = { code: 20101, message: "Invalid client" }, _n = { code: 20102, message: "Get encrypt key failed" }, wn = { 10001: "Secure network is not supported on current playground or unimpsdk", 10003: "Config missing in current app. If the problem pesist, please contact DCloud.", 10009: "Encrypt payload failed", 10010: "Decrypt response failed" }; function vn(e) { var _ref25 = e || {}, t = _ref25.errSubject, n = _ref25.subject, s = _ref25.errCode, r = _ref25.errMsg, i = _ref25.code, o = _ref25.message, a = _ref25.cause; return new ne({ subject: t || n || "uni-secure-network", code: s || i || mn.code, message: r || o, cause: a }); } var In, Sn, bn = null; var kn = /*#__PURE__*/function (_Lt) { (0, _inherits2.default)(kn, _Lt); var _super9 = _createSuper(kn); function kn(e) { var _this14; (0, _classCallCheck2.default)(this, kn); _this14 = _super9.call(this, e), _this14.clientType = "mp-weixin", _this14.userEncryptKey = null; return _this14; } (0, _createClass2.default)(kn, [{ key: "isLogin", value: function isLogin() { return !!this.scopedGlobalCache.mpWeixinCode || !!this.scopedGlobalCache.mpWeixinOpenid; } }, { key: "prepare", value: function () { var _prepare2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38() { return _regenerator.default.wrap(function _callee38$(_context38) { while (1) { switch (_context38.prev = _context38.next) { case 0: if (this.isLogin()) { _context38.next = 7; break; } if (this.scopedGlobalCache.initPromise) { _context38.next = 3; break; } throw new Error("`uniCloud.initSecureNetworkByWeixin` has not yet been called"); case 3: _context38.next = 5; return this.scopedGlobalCache.initPromise; case 5: if (this.isLogin()) { _context38.next = 7; break; } throw new Error("uniCloud.initSecureNetworkByWeixin` has not yet been called or successfully excuted"); case 7: case "end": return _context38.stop(); } } }, _callee38, this); })); function prepare() { return _prepare2.apply(this, arguments); } return prepare; }() }, { key: "getUserEncryptKey", value: function () { var _getUserEncryptKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39() { var _this15 = this; var e; return _regenerator.default.wrap(function _callee39$(_context39) { while (1) { switch (_context39.prev = _context39.next) { case 0: if (!this.userEncryptKey) { _context39.next = 2; break; } return _context39.abrupt("return", this.userEncryptKey); case 2: if (!(bn && bn.expireTime)) { _context39.next = 6; break; } e = Date.now(); if (!(bn.expireTime - e > 0)) { _context39.next = 6; break; } return _context39.abrupt("return", (this.userEncryptKey = bn, this.userEncryptKey)); case 6: return _context39.abrupt("return", new Promise(function (e, t) { uni.getUserCryptoManager().getLatestUserKey({ success: function success(t) { bn = t, _this15.userEncryptKey = t, e(_this15.userEncryptKey); }, fail: function fail(e) { t(vn(_objectSpread(_objectSpread({}, _n), {}, { cause: e }))); } }); })); case 7: case "end": return _context39.stop(); } } }, _callee39, this); })); function getUserEncryptKey() { return _getUserEncryptKey.apply(this, arguments); } return getUserEncryptKey; }() }, { key: "getWxAppId", value: function getWxAppId() { return wx.getAccountInfoSync().miniProgram.appId; } }, { key: "platformGetSignOption", value: function () { var _platformGetSignOption = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40() { var _yield$this$getUserEn, e, t, n; return _regenerator.default.wrap(function _callee40$(_context40) { while (1) { switch (_context40.prev = _context40.next) { case 0: _context40.next = 2; return this.getUserEncryptKey(); case 2: _yield$this$getUserEn = _context40.sent; e = _yield$this$getUserEn.encryptKey; t = _yield$this$getUserEn.iv; n = _yield$this$getUserEn.version; return _context40.abrupt("return", { verifyClientSign: gn(JSON.stringify({ data: JSON.stringify({}), appId: this.appId, deviceId: this.deviceId, wxAppId: this.getWxAppId(), simulator: "devtools" === ce().platform, timestamp: Date.now() }), e, t), encryptKeyId: n, mpWeixinCode: this.scopedGlobalCache.mpWeixinCode, mpWeixinOpenid: this.scopedGlobalCache.mpWeixinOpenid }); case 7: case "end": return _context40.stop(); } } }, _callee40, this); })); function platformGetSignOption() { return _platformGetSignOption.apply(this, arguments); } return platformGetSignOption; }() }, { key: "platformEncryptData", value: function () { var _platformEncryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41(e) { var _yield$this$getUserEn2, t, n, s, r; return _regenerator.default.wrap(function _callee41$(_context41) { while (1) { switch (_context41.prev = _context41.next) { case 0: _context41.next = 2; return this.getUserEncryptKey(); case 2: _yield$this$getUserEn2 = _context41.sent; t = _yield$this$getUserEn2.encryptKey; n = _yield$this$getUserEn2.iv; s = _yield$this$getUserEn2.version; r = { secretType: this.secretType, encryptKeyId: s, mpWeixinCode: this.scopedGlobalCache.mpWeixinCode, mpWeixinOpenid: this.scopedGlobalCache.mpWeixinOpenid }; return _context41.abrupt("return", this.secretType === Rt ? { content: e, _uniCloudOptions: r } : { content: gn(JSON.stringify({ data: JSON.stringify(e), appId: this.appId, deviceId: this.deviceId, wxAppId: this.getWxAppId(), simulator: "devtools" === ce().platform, timestamp: Date.now() }), t, n), _uniCloudOptions: r }); case 8: case "end": return _context41.stop(); } } }, _callee41, this); })); function platformEncryptData(_x33) { return _platformEncryptData.apply(this, arguments); } return platformEncryptData; }() }, { key: "platformDecryptResult", value: function () { var _platformDecryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42(e) { var t, _yield$this$getUserEn3, n, s; return _regenerator.default.wrap(function _callee42$(_context42) { while (1) { switch (_context42.prev = _context42.next) { case 0: t = e.content; _context42.next = 3; return this.getUserEncryptKey(); case 3: _yield$this$getUserEn3 = _context42.sent; n = _yield$this$getUserEn3.encryptKey; s = _yield$this$getUserEn3.iv; return _context42.abrupt("return", JSON.parse(function (e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(e)), r = new Uint8Array(uni.base64ToArrayBuffer(t)), i = fn.utils.utf8.toBytes(n), o = new fn.ModeOfOperation.cbc(r, i), a = fn.padding.pkcs7.strip(o.decrypt(s)); return fn.utils.utf8.fromBytes(a); }(t, n, s))); case 7: case "end": return _context42.stop(); } } }, _callee42, this); })); function platformDecryptResult(_x34) { return _platformDecryptResult.apply(this, arguments); } return platformDecryptResult; }() }, { key: "isClientKeyNotFound", value: function isClientKeyNotFound() { return !1; } }]); return kn; }(Lt); function Cn(e) { var t = ["hasClientKey", "encryptGetClientKeyPayload", "setClientKey", "encrypt", "decrypt"], n = {}; var _loop = function _loop(_s10) { var r = t[_s10]; n[r] = function () { for (var _len = arguments.length, t = new Array(_len), _key = 0; _key < _len; _key++) { t[_key] = arguments[_key]; } return new Promise(function (n, s) { "function" == typeof e[r] ? e[r].apply(e, t.concat([function () { var _ref26 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref26.type, t = _ref26.data, r = _ref26.errCode, i = _ref26.errMsg, o = _ref26.errSubject, a = _ref26.message; "success" === e ? n(t) : s(vn({ errCode: r, errMsg: wn[r] || i || a, errSubject: o })); }])) : s(vn({ message: "请检查manifest.json内是否开启安全网络模块,另外注意标准基座不支持安全网络模块" })); }); }; }; for (var _s10 = 0; _s10 < t.length; _s10++) { _loop(_s10); } return n; } var Tn = /*#__PURE__*/function (_Lt2) { (0, _inherits2.default)(Tn, _Lt2); var _super10 = _createSuper(Tn); function Tn(e) { var _this16; (0, _classCallCheck2.default)(this, Tn); _this16 = _super10.call(this, e), _this16.clientType = "app", _this16.appUtils = _objectSpread({}, Cn(uni.requireNativePlugin("plus"))), _this16.systemInfo = In || (In = ce()); return _this16; } (0, _createClass2.default)(Tn, [{ key: "hasClientKey", value: function () { var _hasClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee43() { return _regenerator.default.wrap(function _callee43$(_context43) { while (1) { switch (_context43.prev = _context43.next) { case 0: _context43.next = 2; return this.appUtils.hasClientKey({ provider: this.provider, spaceId: this.spaceId }); case 2: this._hasClientKey = _context43.sent; return _context43.abrupt("return", this._hasClientKey); case 4: case "end": return _context43.stop(); } } }, _callee43, this); })); function hasClientKey() { return _hasClientKey.apply(this, arguments); } return hasClientKey; }() }, { key: "getAppClientKey", value: function () { var _getAppClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee44() { var _yield$this$appUtils$, e, t, n, s, r; return _regenerator.default.wrap(function _callee44$(_context44) { while (1) { switch (_context44.prev = _context44.next) { case 0: _context44.next = 2; return this.appUtils.encryptGetClientKeyPayload({ data: JSON.stringify({}) }); case 2: _yield$this$appUtils$ = _context44.sent; e = _yield$this$appUtils$.data; t = _yield$this$appUtils$.key; _context44.next = 7; return this.uniCloudIns.callFunction({ name: "DCloud-clientDB", data: { redirectTo: "encryption", action: "getAppClientKey", data: e, key: t } }); case 7: _context44.t0 = _context44.sent.result; if (_context44.t0) { _context44.next = 10; break; } _context44.t0 = {}; case 10: n = _context44.t0; if (!(0 !== n.errCode)) { _context44.next = 13; break; } throw function (e) { return new ne({ subject: e.errSubject || "uni-secure-network", code: e.errCode || e.code || mn.code, message: e.errMsg || e.message }); }(n); case 13: s = n.clientKey, r = n.key; _context44.next = 16; return this.appUtils.setClientKey({ provider: this.provider, spaceId: this.spaceId, clientKey: s, key: r }); case 16: case "end": return _context44.stop(); } } }, _callee44, this); })); function getAppClientKey() { return _getAppClientKey.apply(this, arguments); } return getAppClientKey; }() }, { key: "ensureClientKey", value: function () { var _ensureClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee45() { var _this17 = this; var _ref27, _ref27$forceUpdate, e, _args45 = arguments; return _regenerator.default.wrap(function _callee45$(_context45) { while (1) { switch (_context45.prev = _context45.next) { case 0: _ref27 = _args45.length > 0 && _args45[0] !== undefined ? _args45[0] : {}, _ref27$forceUpdate = _ref27.forceUpdate, e = _ref27$forceUpdate === void 0 ? !1 : _ref27$forceUpdate; _context45.t1 = !0; _context45.next = 4; return this.hasClientKey(); case 4: _context45.t2 = _context45.sent; _context45.t0 = _context45.t1 !== _context45.t2; if (_context45.t0) { _context45.next = 8; break; } _context45.t0 = e; case 8: if (!_context45.t0) { _context45.next = 10; break; } return _context45.abrupt("return", (e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus === d || !e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus !== f || (this.scopedGlobalCache.initPromise = this.getAppClientKey(), this.scopedGlobalCache.initPromise.then(function (e) { _this17.scopedGlobalCache.initStatus = p; }).catch(function (e) { throw _this17.scopedGlobalCache.initStatus = f, e; }), this.scopedGlobalCache.initStatus = d), this.scopedGlobalCache.initPromise)); case 10: case "end": return _context45.stop(); } } }, _callee45, this); })); function ensureClientKey() { return _ensureClientKey.apply(this, arguments); } return ensureClientKey; }() }, { key: "prepare", value: function () { var _prepare3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee46() { var _ref28, _ref28$forceUpdate, e, _args46 = arguments; return _regenerator.default.wrap(function _callee46$(_context46) { while (1) { switch (_context46.prev = _context46.next) { case 0: _ref28 = _args46.length > 0 && _args46[0] !== undefined ? _args46[0] : {}, _ref28$forceUpdate = _ref28.forceUpdate, e = _ref28$forceUpdate === void 0 ? !1 : _ref28$forceUpdate; _context46.next = 3; return this.ensureClientKey({ forceUpdate: e }); case 3: case "end": return _context46.stop(); } } }, _callee46, this); })); function prepare() { return _prepare3.apply(this, arguments); } return prepare; }() }, { key: "platformGetSignOption", value: function () { var _platformGetSignOption2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee47() { var _yield$this$appUtils$2, e, t; return _regenerator.default.wrap(function _callee47$(_context47) { while (1) { switch (_context47.prev = _context47.next) { case 0: _context47.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify({}) }); case 2: _yield$this$appUtils$2 = _context47.sent; e = _yield$this$appUtils$2.data; t = _yield$this$appUtils$2.key; return _context47.abrupt("return", { verifyClientSign: e, encryptKeyId: t }); case 6: case "end": return _context47.stop(); } } }, _callee47, this); })); function platformGetSignOption() { return _platformGetSignOption2.apply(this, arguments); } return platformGetSignOption; }() }, { key: "platformEncryptData", value: function () { var _platformEncryptData2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee48(e) { var _yield$this$appUtils$3, t, n, s; return _regenerator.default.wrap(function _callee48$(_context48) { while (1) { switch (_context48.prev = _context48.next) { case 0: _context48.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify(e) }); case 2: _yield$this$appUtils$3 = _context48.sent; t = _yield$this$appUtils$3.data; n = _yield$this$appUtils$3.key; s = { secretType: this.secretType, encryptKeyId: n }; return _context48.abrupt("return", this.secretType === Rt ? { content: e, _uniCloudOptions: s } : { content: t, _uniCloudOptions: s }); case 7: case "end": return _context48.stop(); } } }, _callee48, this); })); function platformEncryptData(_x35) { return _platformEncryptData2.apply(this, arguments); } return platformEncryptData; }() }, { key: "platformDecryptResult", value: function () { var _platformDecryptResult2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee49(e) { var t, _e$_uniCloudOptions, n, s, r; return _regenerator.default.wrap(function _callee49$(_context49) { while (1) { switch (_context49.prev = _context49.next) { case 0: t = e.content; _e$_uniCloudOptions = e._uniCloudOptions; n = _e$_uniCloudOptions === void 0 ? {} : _e$_uniCloudOptions; s = n.encryptKeyId; _context49.next = 6; return this.appUtils.decrypt({ provider: this.provider, spaceId: this.spaceId, data: t, key: s }); case 6: r = _context49.sent; return _context49.abrupt("return", JSON.parse(r.data)); case 8: case "end": return _context49.stop(); } } }, _callee49, this); })); function platformDecryptResult(_x36) { return _platformDecryptResult2.apply(this, arguments); } return platformDecryptResult; }() }, { key: "isClientKeyNotFound", value: function isClientKeyNotFound() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = e.result || {}; return 70009 === t.errCode && "uni-secure-network" === t.errSubject; } }]); return Tn; }(Lt); function Pn() { var _ref29 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref29.secretType; return e === xt || e === Rt || e === Ut; } function An() { var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref30.name, _ref30$data = _ref30.data, t = _ref30$data === void 0 ? {} : _ref30$data; return "app" === P && "DCloud-clientDB" === e && "encryption" === t.redirectTo && "getAppClientKey" === t.action; } function En() { var _ref31 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref31.provider, t = _ref31.spaceId, n = _ref31.functionName; var _ce = ce(), s = _ce.appId, r = _ce.uniPlatform, i = _ce.osName; var o = r; "app" === r && (o = i); var a = function () { var _ref32 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref32.provider, t = _ref32.spaceId; var n = T; if (!n) return {}; e = function (e) { return "tencent" === e ? "tcb" : e; }(e); var s = n.find(function (n) { return n.provider === e && n.spaceId === t; }); return s && s.config; }({ provider: e, spaceId: t }); if (!a || !a.accessControl || !a.accessControl.enable) return !1; var c = a.accessControl.function || {}, u = Object.keys(c); if (0 === u.length) return !0; var h = function (e, t) { var n, s, r; for (var _i2 = 0; _i2 < e.length; _i2++) { var _o2 = e[_i2]; _o2 !== t ? "*" !== _o2 ? _o2.split(",").map(function (e) { return e.trim(); }).indexOf(t) > -1 && (s = _o2) : r = _o2 : n = _o2; } return n || s || r; }(u, n); if (!h) return !1; if ((c[h] || []).find(function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return e.appId === s && (e.platform || "").toLowerCase() === o.toLowerCase(); })) return !0; throw console.error("\u6B64\u5E94\u7528[appId: ".concat(s, ", platform: ").concat(o, "]\u4E0D\u5728\u4E91\u7AEF\u914D\u7F6E\u7684\u5141\u8BB8\u8BBF\u95EE\u7684\u5E94\u7528\u5217\u8868\u5185\uFF0C\u53C2\u8003\uFF1Ahttps://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client")), vn(yn); } function On(_ref33) { var e = _ref33.functionName, t = _ref33.result, n = _ref33.logPvd; if (b && this.__dev__.debugLog && t && t.requestId) { var _s11 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId }); console.log("[".concat(n, "-request]").concat(_s11, "[/").concat(n, "-request]")); } } function xn(e) { var t = e.callFunction, n = function n(_n7) { var _this18 = this; var s = _n7.name; _n7.data = kt.call(e, { data: _n7.data }); var r = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb" }[this.config.provider], i = Pn(_n7), o = An(_n7), a = i || o; return t.call(this, _n7).then(function (e) { return e.errCode = 0, !a && On.call(_this18, { functionName: s, result: e, logPvd: r }), Promise.resolve(e); }, function (e) { return !a && On.call(_this18, { functionName: s, result: e, logPvd: r }), e && e.message && (e.message = function () { var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref34$message = _ref34.message, e = _ref34$message === void 0 ? "" : _ref34$message, _ref34$extraInfo = _ref34.extraInfo, t = _ref34$extraInfo === void 0 ? {} : _ref34$extraInfo, _ref34$formatter = _ref34.formatter, n = _ref34$formatter === void 0 ? [] : _ref34$formatter; for (var _s12 = 0; _s12 < n.length; _s12++) { var _n$_s = n[_s12], _r4 = _n$_s.rule, _i3 = _n$_s.content, _o3 = _n$_s.mode, _a = e.match(_r4); if (!_a) continue; var _c = _i3; for (var _e20 = 1; _e20 < _a.length; _e20++) { _c = Et(_c, "{$".concat(_e20, "}"), _a[_e20]); } for (var _e21 in t) { _c = Et(_c, "{".concat(_e21, "}"), t[_e21]); } return "replace" === _o3 ? _c : e + _c; } return e; }({ message: "[".concat(_n7.name, "]: ").concat(e.message), formatter: Tt, extraInfo: { functionName: s } })), Promise.reject(e); }); }; e.callFunction = function (t) { var _e$config = e.config, s = _e$config.provider, r = _e$config.spaceId, i = t.name; var o, a; if (t.data = t.data || {}, b && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && E ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = Ct), o = Ct) : o = n, o = o.bind(e), An(t)) a = n.call(e, t);else if (function (_ref35) { var e = _ref35.name, _ref35$data = _ref35.data, t = _ref35$data === void 0 ? {} : _ref35$data; return "mp-weixin" === P && "uni-id-co" === e && "secureNetworkHandshakeByWeixin" === t.method; }(t)) a = o.call(e, t);else if (Pn(t)) { a = new Sn({ secretType: t.secretType, uniCloudIns: e }).wrapEncryptDataCallFunction(n.bind(e))(t); } else if (En({ provider: s, spaceId: r, functionName: i })) { a = new Sn({ secretType: t.secretType, uniCloudIns: e }).wrapVerifyClientCallFunction(n.bind(e))(t); } else a = o(t); return Object.defineProperty(a, "result", { get: function get() { return console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}; } }), a; }; } Sn = "mp-weixin" !== P && "app" !== P ? /*#__PURE__*/function () { function _class2() { (0, _classCallCheck2.default)(this, _class2); throw vn({ message: "Platform ".concat(P, " is not supported by secure network") }); } return (0, _createClass2.default)(_class2); }() : C ? "mp-weixin" === P ? kn : Tn : /*#__PURE__*/function () { function _class3() { (0, _classCallCheck2.default)(this, _class3); throw vn({ message: "Platform ".concat(P, " is not enabled, please check whether secure network module is enabled in your manifest.json") }); } return (0, _createClass2.default)(_class3); }(); var Rn = Symbol("CLIENT_DB_INTERNAL"); function Un(e, t) { return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = Rn, e.inspect = null, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) { if ("_uniClient" === n) return null; if ("symbol" == (0, _typeof2.default)(n)) return e[n]; if (n in e || "string" != typeof n) { var _t10 = e[n]; return "function" == typeof _t10 ? _t10.bind(e) : _t10; } return t.get(e, n, s); } }); } function Ln(e) { return { on: function on(t, n) { e[t] = e[t] || [], e[t].indexOf(n) > -1 || e[t].push(n); }, off: function off(t, n) { e[t] = e[t] || []; var s = e[t].indexOf(n); -1 !== s && e[t].splice(s, 1); } }; } var Nn = ["db.Geo", "db.command", "command.aggregate"]; function Dn(e, t) { return Nn.indexOf("".concat(e, ".").concat(t)) > -1; } function Fn(e) { switch (g(e)) { case "array": return e.map(function (e) { return Fn(e); }); case "object": return e._internalType === Rn || Object.keys(e).forEach(function (t) { e[t] = Fn(e[t]); }), e; case "regexp": return { $regexp: { source: e.source, flags: e.flags } }; case "date": return { $date: e.toISOString() }; default: return e; } } function qn(e) { return e && e.content && e.content.$method; } var Mn = /*#__PURE__*/function () { function Mn(e, t, n) { (0, _classCallCheck2.default)(this, Mn); this.content = e, this.prevStage = t || null, this.udb = null, this._database = n; } (0, _createClass2.default)(Mn, [{ key: "toJSON", value: function toJSON() { var e = this; var t = [e.content]; for (; e.prevStage;) { e = e.prevStage, t.push(e.content); } return { $db: t.reverse().map(function (e) { return { $method: e.$method, $param: Fn(e.$param) }; }) }; } }, { key: "toString", value: function toString() { return JSON.stringify(this.toJSON()); } }, { key: "getAction", value: function getAction() { var e = this.toJSON().$db.find(function (e) { return "action" === e.$method; }); return e && e.$param && e.$param[0]; } }, { key: "getCommand", value: function getCommand() { return { $db: this.toJSON().$db.filter(function (e) { return "action" !== e.$method; }) }; } }, { key: "isAggregate", get: function get() { var e = this; for (; e;) { var t = qn(e), _n8 = qn(e.prevStage); if ("aggregate" === t && "collection" === _n8 || "pipeline" === t) return !0; e = e.prevStage; } return !1; } }, { key: "isCommand", get: function get() { var e = this; for (; e;) { if ("command" === qn(e)) return !0; e = e.prevStage; } return !1; } }, { key: "isAggregateCommand", get: function get() { var e = this; for (; e;) { var t = qn(e), _n9 = qn(e.prevStage); if ("aggregate" === t && "command" === _n9) return !0; e = e.prevStage; } return !1; } }, { key: "getNextStageFn", value: function getNextStageFn(e) { var t = this; return function () { return Kn({ $method: e, $param: Fn(Array.from(arguments)) }, t, t._database); }; } }, { key: "count", get: function get() { return this.isAggregate ? this.getNextStageFn("count") : function () { return this._send("count", Array.from(arguments)); }; } }, { key: "remove", get: function get() { return this.isCommand ? this.getNextStageFn("remove") : function () { return this._send("remove", Array.from(arguments)); }; } }, { key: "get", value: function get() { return this._send("get", Array.from(arguments)); } }, { key: "add", get: function get() { return this.isCommand ? this.getNextStageFn("add") : function () { return this._send("add", Array.from(arguments)); }; } }, { key: "update", value: function update() { return this._send("update", Array.from(arguments)); } }, { key: "end", value: function end() { return this._send("end", Array.from(arguments)); } }, { key: "set", get: function get() { return this.isCommand ? this.getNextStageFn("set") : function () { throw new Error("JQL禁止使用set方法"); }; } }, { key: "_send", value: function _send(e, t) { var n = this.getAction(), s = this.getCommand(); if (s.$db.push({ $method: e, $param: Fn(t) }), b) { var _e22 = s.$db.find(function (e) { return "collection" === e.$method; }), _t11 = _e22 && _e22.$param; _t11 && 1 === _t11.length && "string" == typeof _e22.$param[0] && _e22.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。"); } return this._database._callCloudFunction({ action: n, command: s }); } }]); return Mn; }(); function Kn(e, t, n) { return Un(new Mn(e, t, n), { get: function get(e, t) { var s = "db"; return e && e.content && (s = e.content.$method), Dn(s, t) ? Kn({ $method: t }, e, n) : function () { return Kn({ $method: t, $param: Fn(Array.from(arguments)) }, e, n); }; } }); } function jn(_ref36) { var e = _ref36.path, t = _ref36.method; return /*#__PURE__*/function () { function _class4() { (0, _classCallCheck2.default)(this, _class4); this.param = Array.from(arguments); } (0, _createClass2.default)(_class4, [{ key: "toJSON", value: function toJSON() { return { $newDb: [].concat((0, _toConsumableArray2.default)(e.map(function (e) { return { $method: e }; })), [{ $method: t, $param: this.param }]) }; } }, { key: "toString", value: function toString() { return JSON.stringify(this.toJSON()); } }]); return _class4; }(); } function Bn(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return Un(new e(t), { get: function get(e, t) { return Dn("db", t) ? Kn({ $method: t }, null, e) : function () { return Kn({ $method: t, $param: Fn(Array.from(arguments)) }, null, e); }; } }); } var $n = /*#__PURE__*/function (_ref37) { (0, _inherits2.default)($n, _ref37); var _super11 = _createSuper($n); function $n() { (0, _classCallCheck2.default)(this, $n); return _super11.apply(this, arguments); } (0, _createClass2.default)($n, [{ key: "_parseResult", value: function _parseResult(e) { return this._isJQL ? e.result : e; } }, { key: "_callCloudFunction", value: function _callCloudFunction(_ref38) { var _this19 = this; var e = _ref38.action, t = _ref38.command, n = _ref38.multiCommand, s = _ref38.queryList; function r(e, t) { if (n && s) for (var _n10 = 0; _n10 < s.length; _n10++) { var _r5 = s[_n10]; _r5.udb && "function" == typeof _r5.udb.setResult && (t ? _r5.udb.setResult(t) : _r5.udb.setResult(e.result.dataList[_n10])); } } var i = this, o = this._isJQL ? "databaseForJQL" : "database"; function a(e) { return i._callback("error", [e]), q(M(o, "fail"), e).then(function () { return q(M(o, "complete"), e); }).then(function () { return r(null, e), Q(B, { type: z, content: e }), Promise.reject(e); }); } var c = q(M(o, "invoke")), u = this._uniClient; return c.then(function () { return u.callFunction({ name: "DCloud-clientDB", type: l, data: { action: e, command: t, multiCommand: n } }); }).then(function (e) { var _e$result = e.result, t = _e$result.code, n = _e$result.message, s = _e$result.token, c = _e$result.tokenExpired, _e$result$systemInfo = _e$result.systemInfo, u = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo; if (u) for (var _e23 = 0; _e23 < u.length; _e23++) { var _u$_e = u[_e23], _t12 = _u$_e.level, _n11 = _u$_e.message, _s13 = _u$_e.detail, _r6 = console["app" === P && "warn" === _t12 ? "error" : _t12] || console.log; var _i4 = "[System Info]" + _n11; _s13 && (_i4 = "".concat(_i4, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s13)), _r6(_i4); } if (t) { return a(new ne({ code: t, message: n, requestId: e.requestId })); } e.result.errCode = e.result.errCode || e.result.code, e.result.errMsg = e.result.errMsg || e.result.message, s && c && (ie({ token: s, tokenExpired: c }), _this19._callbackAuth("refreshToken", [{ token: s, tokenExpired: c }]), _this19._callback("refreshToken", [{ token: s, tokenExpired: c }]), Q(W, { token: s, tokenExpired: c })); var h = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }]; var _loop2 = function _loop2(_t13) { var _h$_t = h[_t13], n = _h$_t.prop, s = _h$_t.tips; if (n in e.result) { var _t14 = e.result[n]; Object.defineProperty(e.result, n, { get: function get() { return console.warn(s), _t14; } }); } }; for (var _t13 = 0; _t13 < h.length; _t13++) { _loop2(_t13); } return function (e) { return q(M(o, "success"), e).then(function () { return q(M(o, "complete"), e); }).then(function () { r(e, null); var t = i._parseResult(e); return Q(B, { type: z, content: t }), Promise.resolve(t); }); }(e); }, function (e) { /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB"); return a(new ne({ code: e.code || "SYSTEM_ERROR", message: e.message, requestId: e.requestId })); }); } }]); return $n; }( /*#__PURE__*/function () { function _class5() { var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref39$uniClient = _ref39.uniClient, e = _ref39$uniClient === void 0 ? {} : _ref39$uniClient, _ref39$isJQL = _ref39.isJQL, t = _ref39$isJQL === void 0 ? !1 : _ref39$isJQL; (0, _classCallCheck2.default)(this, _class5); this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e._isDefault && (this._dbCallBacks = U("_globalUniCloudDatabaseCallback")), t || (this.auth = Ln(this._authCallBacks)), this._isJQL = t, Object.assign(this, Ln(this._dbCallBacks)), this.env = Un({}, { get: function get(e, t) { return { $env: t }; } }), this.Geo = Un({}, { get: function get(e, t) { return jn({ path: ["Geo"], method: t }); } }), this.serverDate = jn({ path: [], method: "serverDate" }), this.RegExp = jn({ path: [], method: "RegExp" }); } (0, _createClass2.default)(_class5, [{ key: "getCloudEnv", value: function getCloudEnv(e) { if ("string" != typeof e || !e.trim()) throw new Error("getCloudEnv参数错误"); return { $env: e.replace("$cloudEnv_", "") }; } }, { key: "_callback", value: function _callback(e, t) { var n = this._dbCallBacks; n[e] && n[e].forEach(function (e) { e.apply(void 0, (0, _toConsumableArray2.default)(t)); }); } }, { key: "_callbackAuth", value: function _callbackAuth(e, t) { var n = this._authCallBacks; n[e] && n[e].forEach(function (e) { e.apply(void 0, (0, _toConsumableArray2.default)(t)); }); } }, { key: "multiSend", value: function multiSend() { var e = Array.from(arguments), t = e.map(function (e) { var t = e.getAction(), n = e.getCommand(); if ("getTemp" !== n.$db[n.$db.length - 1].$method) throw new Error("multiSend只支持子命令内使用getTemp"); return { action: t, command: n }; }); return this._callCloudFunction({ multiCommand: t, queryList: e }); } }]); return _class5; }()); var Wn = "token无效,跳转登录页面", zn = "token过期,跳转登录页面", Jn = { TOKEN_INVALID_TOKEN_EXPIRED: zn, TOKEN_INVALID_INVALID_CLIENTID: Wn, TOKEN_INVALID: Wn, TOKEN_INVALID_WRONG_TOKEN: Wn, TOKEN_INVALID_ANONYMOUS_USER: Wn }, Hn = { "uni-id-token-expired": zn, "uni-id-check-token-failed": Wn, "uni-id-token-not-exist": Wn, "uni-id-check-device-feature-failed": Wn }; function Gn(e, t) { var n = ""; return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, ""); } function Vn() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; var n = [], s = []; return e.forEach(function (e) { !0 === e.needLogin ? n.push(Gn(t, e.path)) : !1 === e.needLogin && s.push(Gn(t, e.path)); }), { needLoginPage: n, notNeedLoginPage: s }; } function Yn(e) { return e.split("?")[0].replace(/^\//, ""); } function Qn() { return function (e) { var t = e && e.$page && e.$page.fullPath || ""; return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t; }(function () { var e = getCurrentPages(); return e[e.length - 1]; }()); } function Xn() { return Yn(Qn()); } function Zn() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!e) return !1; if (!(t && t.list && t.list.length)) return !1; var n = t.list, s = Yn(e); return n.some(function (e) { return e.pagePath === s; }); } var es = !!_pages.default.uniIdRouter; var _ref40 = function () { var _ref21 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default, _ref21$pages = _ref21.pages, e = _ref21$pages === void 0 ? [] : _ref21$pages, _ref21$subPackages = _ref21.subPackages, n = _ref21$subPackages === void 0 ? [] : _ref21$subPackages, _ref21$uniIdRouter = _ref21.uniIdRouter, s = _ref21$uniIdRouter === void 0 ? {} : _ref21$uniIdRouter, _ref21$tabBar = _ref21.tabBar, r = _ref21$tabBar === void 0 ? {} : _ref21$tabBar; var i = s.loginPage, _s$needLogin = s.needLogin, o = _s$needLogin === void 0 ? [] : _s$needLogin, _s$resToLogin = s.resToLogin, a = _s$resToLogin === void 0 ? !0 : _s$resToLogin, _Vn = Vn(e), c = _Vn.needLoginPage, u = _Vn.notNeedLoginPage, _ref23 = function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = [], n = []; return e.forEach(function (e) { var s = e.root, _e$pages = e.pages, r = _e$pages === void 0 ? [] : _e$pages, _Vn2 = Vn(r, s), i = _Vn2.needLoginPage, o = _Vn2.notNeedLoginPage; t.push.apply(t, (0, _toConsumableArray2.default)(i)), n.push.apply(n, (0, _toConsumableArray2.default)(o)); }), { needLoginPage: t, notNeedLoginPage: n }; }(n), h = _ref23.needLoginPage, l = _ref23.notNeedLoginPage; return { loginPage: i, routerNeedLogin: o, resToLogin: a, needLoginPage: [].concat((0, _toConsumableArray2.default)(c), (0, _toConsumableArray2.default)(h)), notNeedLoginPage: [].concat((0, _toConsumableArray2.default)(u), (0, _toConsumableArray2.default)(l)), loginPageInTabBar: Zn(i, r) }; }(), ts = _ref40.loginPage, ns = _ref40.routerNeedLogin, ss = _ref40.resToLogin, rs = _ref40.needLoginPage, is = _ref40.notNeedLoginPage, os = _ref40.loginPageInTabBar; if (rs.indexOf(ts) > -1) throw new Error("Login page [".concat(ts, "] should not be \"needLogin\", please check your pages.json")); function as(e) { var t = Xn(); if ("/" === e.charAt(0)) return e; var _e$split = e.split("?"), _e$split2 = (0, _slicedToArray2.default)(_e$split, 2), n = _e$split2[0], s = _e$split2[1], r = n.replace(/^\//, "").split("/"), i = t.split("/"); i.pop(); for (var _e24 = 0; _e24 < r.length; _e24++) { var _t15 = r[_e24]; ".." === _t15 ? i.pop() : "." !== _t15 && i.push(_t15); } return "" === i[0] && i.shift(), "/" + i.join("/") + (s ? "?" + s : ""); } function cs(e) { var t = Yn(as(e)); return !(is.indexOf(t) > -1) && (rs.indexOf(t) > -1 || ns.some(function (t) { return function (e, t) { return new RegExp(t).test(e); }(e, t); })); } function us(_ref41) { var e = _ref41.redirect; var t = Yn(e), n = Yn(ts); return Xn() !== n && t !== n; } function hs() { var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref42.api, t = _ref42.redirect; if (!t || !us({ redirect: t })) return; var n = function (e, t) { return "/" !== e.charAt(0) && (e = "/" + e), t ? e.indexOf("?") > -1 ? e + "&uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e + "?uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e; }(ts, t); os ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"); var s = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, switchTab: uni.switchTab, reLaunch: uni.reLaunch }; setTimeout(function () { s[e]({ url: n }); }); } function ls() { var _ref43 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref43.url; var t = { abortLoginPageJump: !1, autoToLoginPage: !1 }, n = function () { var _re3 = re(), e = _re3.token, t = _re3.tokenExpired; var n; if (e) { if (t < Date.now()) { var _e25 = "uni-id-token-expired"; n = { errCode: _e25, errMsg: Hn[_e25] }; } } else { var _e26 = "uni-id-check-token-failed"; n = { errCode: _e26, errMsg: Hn[_e26] }; } return n; }(); if (cs(e) && n) { n.uniIdRedirectUrl = e; if (G($).length > 0) return setTimeout(function () { Q($, n); }, 0), t.abortLoginPageJump = !0, t; t.autoToLoginPage = !0; } return t; } function ds() { !function () { var e = Qn(), _ls = ls({ url: e }), t = _ls.abortLoginPageJump, n = _ls.autoToLoginPage; t || n && hs({ api: "redirectTo", redirect: e }); }(); var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]; var _loop3 = function _loop3(_t16) { var n = e[_t16]; uni.addInterceptor(n, { invoke: function invoke(e) { var _ls2 = ls({ url: e.url }), t = _ls2.abortLoginPageJump, s = _ls2.autoToLoginPage; return t ? e : s ? (hs({ api: n, redirect: as(e.url) }), !1) : e; } }); }; for (var _t16 = 0; _t16 < e.length; _t16++) { _loop3(_t16); } } function ps() { this.onResponse(function (e) { var t = e.type, n = e.content; var s = !1; switch (t) { case "cloudobject": s = function (e) { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref44 = e || {}, t = _ref44.errCode; return t in Hn; }(n); break; case "clientdb": s = function (e) { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref45 = e || {}, t = _ref45.errCode; return t in Jn; }(n); } s && function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = G($); ee().then(function () { var n = Qn(); if (n && us({ redirect: n })) return t.length > 0 ? Q($, Object.assign({ uniIdRedirectUrl: n }, e)) : void (ts && hs({ api: "navigateTo", redirect: n })); }); }(n); }); } function fs(e) { !function (e) { e.onResponse = function (e) { V(B, e); }, e.offResponse = function (e) { Y(B, e); }; }(e), function (e) { e.onNeedLogin = function (e) { V($, e); }, e.offNeedLogin = function (e) { Y($, e); }, es && (U("_globalUniCloudStatus").needLoginInit || (U("_globalUniCloudStatus").needLoginInit = !0, ee().then(function () { ds.call(e); }), ss && ps.call(e))); }(e), function (e) { e.onRefreshToken = function (e) { V(W, e); }, e.offRefreshToken = function (e) { Y(W, e); }; }(e); } var gs; var ms = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", ys = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; function _s() { var e = re().token || "", t = e.split("."); if (!e || 3 !== t.length) return { uid: null, role: [], permission: [], tokenExpired: 0 }; var n; try { n = JSON.parse((s = t[1], decodeURIComponent(gs(s).split("").map(function (e) { return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2); }).join("")))); } catch (e) { throw new Error("获取当前用户信息出错,详细错误信息为:" + e.message); } var s; return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n; } gs = "function" != typeof atob ? function (e) { if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !ys.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); var t; e += "==".slice(2 - (3 & e.length)); for (var n, s, r = "", i = 0; i < e.length;) { t = ms.indexOf(e.charAt(i++)) << 18 | ms.indexOf(e.charAt(i++)) << 12 | (n = ms.indexOf(e.charAt(i++))) << 6 | (s = ms.indexOf(e.charAt(i++))), r += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t); } return r; } : atob; var ws = s(function (e, t) { Object.defineProperty(t, "__esModule", { value: !0 }); var n = "chooseAndUploadFile:ok", s = "chooseAndUploadFile:fail"; function r(e, t) { return e.tempFiles.forEach(function (e, n) { e.name || (e.name = e.path.substring(e.path.lastIndexOf("/") + 1)), t && (e.fileType = t), e.cloudPath = Date.now() + "_" + n + e.name.substring(e.name.lastIndexOf(".")); }), e.tempFilePaths || (e.tempFilePaths = e.tempFiles.map(function (e) { return e.path; })), e; } function i(e, t, _ref46) { var s = _ref46.onChooseFile, r = _ref46.onUploadProgress; return t.then(function (e) { if (s) { var _t17 = s(e); if (void 0 !== _t17) return Promise.resolve(_t17).then(function (t) { return void 0 === t ? e : t; }); } return e; }).then(function (t) { return !1 === t ? { errMsg: n, tempFilePaths: [], tempFiles: [] } : function (e, t) { var s = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5; var r = arguments.length > 3 ? arguments[3] : undefined; (t = Object.assign({}, t)).errMsg = n; var i = t.tempFiles, o = i.length; var a = 0; return new Promise(function (n) { for (; a < s;) { c(); } function c() { var s = a++; if (s >= o) return void (!i.find(function (e) { return !e.url && !e.errMsg; }) && n(t)); var u = i[s]; e.uploadFile({ filePath: u.path, cloudPath: u.cloudPath, fileType: u.fileType, onUploadProgress: function onUploadProgress(e) { e.index = s, e.tempFile = u, e.tempFilePath = u.path, r && r(e); } }).then(function (e) { u.url = e.fileID, s < o && c(); }).catch(function (e) { u.errMsg = e.errMsg || e.message, s < o && c(); }); } }); }(e, t, 5, r); }); } t.initChooseAndUploadFile = function (e) { return function () { var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { type: "all" }; return "image" === t.type ? i(e, function (e) { var t = e.count, n = e.sizeType, _e$sourceType = e.sourceType, i = _e$sourceType === void 0 ? ["album", "camera"] : _e$sourceType, o = e.extension; return new Promise(function (e, a) { uni.chooseImage({ count: t, sizeType: n, sourceType: i, extension: o, success: function success(t) { e(r(t, "image")); }, fail: function fail(e) { a({ errMsg: e.errMsg.replace("chooseImage:fail", s) }); } }); }); }(t), t) : "video" === t.type ? i(e, function (e) { var t = e.camera, n = e.compressed, i = e.maxDuration, _e$sourceType2 = e.sourceType, o = _e$sourceType2 === void 0 ? ["album", "camera"] : _e$sourceType2, a = e.extension; return new Promise(function (e, c) { uni.chooseVideo({ camera: t, compressed: n, maxDuration: i, sourceType: o, extension: a, success: function success(t) { var n = t.tempFilePath, s = t.duration, i = t.size, o = t.height, a = t.width; e(r({ errMsg: "chooseVideo:ok", tempFilePaths: [n], tempFiles: [{ name: t.tempFile && t.tempFile.name || "", path: n, size: i, type: t.tempFile && t.tempFile.type || "", width: a, height: o, duration: s, fileType: "video", cloudPath: "" }] }, "video")); }, fail: function fail(e) { c({ errMsg: e.errMsg.replace("chooseVideo:fail", s) }); } }); }); }(t), t) : i(e, function (e) { var t = e.count, n = e.extension; return new Promise(function (e, i) { var o = uni.chooseFile; if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (o = wx.chooseMessageFile), "function" != typeof o) return i({ errMsg: s + " 请指定 type 类型,该平台仅支持选择 image 或 video。" }); o({ type: "all", count: t, extension: n, success: function success(t) { e(r(t)); }, fail: function fail(e) { i({ errMsg: e.errMsg.replace("chooseFile:fail", s) }); } }); }); }(t), t); }; }; }), vs = n(ws); var Is = "manual"; function Ss(e) { return { props: { localdata: { type: Array, default: function _default() { return []; } }, options: { type: [Object, Array], default: function _default() { return {}; } }, spaceInfo: { type: Object, default: function _default() { return {}; } }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: !1 }, gettree: { type: [Boolean, String], default: !1 }, gettreepath: { type: [Boolean, String], default: !1 }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: !1 }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: !1 } }, data: function data() { return { mixinDatacomLoading: !1, mixinDatacomHasMore: !1, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {} }; }, created: function created() { var _this20 = this; this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(function () { var e = []; return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach(function (t) { e.push(_this20[t]); }), e; }, function (e, t) { if (_this20.loadtime === Is) return; var n = !1; var s = []; for (var _r7 = 2; _r7 < e.length; _r7++) { e[_r7] !== t[_r7] && (s.push(e[_r7]), n = !0); } e[0] !== t[0] && (_this20.mixinDatacomPage.current = _this20.pageCurrent), _this20.mixinDatacomPage.size = _this20.pageSize, _this20.onMixinDatacomPropsChange(n, s); }); }, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() { var _this21 = this; var _ref47 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref47$getone = _ref47.getone, e = _ref47$getone === void 0 ? !1 : _ref47$getone, t = _ref47.success, n = _ref47.fail; this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomGet().then(function (n) { _this21.mixinDatacomLoading = !1; var _n$result = n.result, s = _n$result.data, r = _n$result.count; _this21.getcount && (_this21.mixinDatacomPage.count = r), _this21.mixinDatacomHasMore = s.length < _this21.pageSize; var i = e ? s.length ? s[0] : void 0 : s; _this21.mixinDatacomResData = i, t && t(i); }).catch(function (e) { _this21.mixinDatacomLoading = !1, _this21.mixinDatacomErrorMessage = e, n && n(e); })); }, mixinDatacomGet: function mixinDatacomGet() { var _n12; var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var n = e.database(this.spaceInfo); var s = t.action || this.action; s && (n = n.action(s)); var r = t.collection || this.collection; n = Array.isArray(r) ? (_n12 = n).collection.apply(_n12, (0, _toConsumableArray2.default)(r)) : n.collection(r); var i = t.where || this.where; i && Object.keys(i).length && (n = n.where(i)); var o = t.field || this.field; o && (n = n.field(o)); var a = t.foreignKey || this.foreignKey; a && (n = n.foreignKey(a)); var c = t.groupby || this.groupby; c && (n = n.groupBy(c)); var u = t.groupField || this.groupField; u && (n = n.groupField(u)); !0 === (void 0 !== t.distinct ? t.distinct : this.distinct) && (n = n.distinct()); var h = t.orderby || this.orderby; h && (n = n.orderBy(h)); var l = void 0 !== t.pageCurrent ? t.pageCurrent : this.mixinDatacomPage.current, d = void 0 !== t.pageSize ? t.pageSize : this.mixinDatacomPage.size, p = void 0 !== t.getcount ? t.getcount : this.getcount, f = void 0 !== t.gettree ? t.gettree : this.gettree, g = void 0 !== t.gettreepath ? t.gettreepath : this.gettreepath, m = { getCount: p }, y = { limitLevel: void 0 !== t.limitlevel ? t.limitlevel : this.limitlevel, startWith: void 0 !== t.startwith ? t.startwith : this.startwith }; return f && (m.getTree = y), g && (m.getTreePath = y), n = n.skip(d * (l - 1)).limit(d).get(m), n; } } }; } function bs(e) { return function (t) { var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; n = function (e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return e.customUI = t.customUI || e.customUI, e.parseSystemError = t.parseSystemError || e.parseSystemError, Object.assign(e.loadingOptions, t.loadingOptions), Object.assign(e.errorOptions, t.errorOptions), "object" == (0, _typeof2.default)(t.secretMethods) && (e.secretMethods = t.secretMethods), e; }({ customUI: !1, loadingOptions: { title: "加载中...", mask: !0 }, errorOptions: { type: "modal", retry: !1 } }, n); var _n13 = n, s = _n13.customUI, r = _n13.loadingOptions, i = _n13.errorOptions, o = _n13.parseSystemError, a = !s; return new Proxy({}, { get: function get(s, c) { return function () { var _ref48 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref48.fn, t = _ref48.interceptorName, n = _ref48.getCallbackArgs; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee50() { var _len2, s, _key2, r, i, o, _args = arguments; return _regenerator.default.wrap(function _callee50$(_context50) { while (1) { switch (_context50.prev = _context50.next) { case 0: for (_len2 = _args.length, s = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { s[_key2] = _args[_key2]; } r = n ? n({ params: s }) : {}; _context50.prev = 2; _context50.next = 5; return q(M(t, "invoke"), _objectSpread({}, r)); case 5: _context50.next = 7; return e.apply(void 0, s); case 7: i = _context50.sent; _context50.next = 10; return q(M(t, "success"), _objectSpread(_objectSpread({}, r), {}, { result: i })); case 10: return _context50.abrupt("return", i); case 13: _context50.prev = 13; _context50.t0 = _context50["catch"](2); o = _context50.t0; _context50.next = 18; return q(M(t, "fail"), _objectSpread(_objectSpread({}, r), {}, { error: o })); case 18: throw o; case 19: _context50.prev = 19; _context50.next = 22; return q(M(t, "complete"), o ? _objectSpread(_objectSpread({}, r), {}, { error: o }) : _objectSpread(_objectSpread({}, r), {}, { result: i })); case 22: return _context50.finish(19); case 23: case "end": return _context50.stop(); } } }, _callee50, null, [[2, 13, 19, 23]]); })); }({ fn: function () { var _s14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee52() { var l, _len3, u, _key3, d, p, _ref50, f, g, m, y, _e27, _yield, _t18, _n14, _args4 = arguments; return _regenerator.default.wrap(function _callee52$(_context52) { while (1) { switch (_context52.prev = _context52.next) { case 0: a && uni.showLoading({ title: r.title, mask: r.mask }); for (_len3 = _args4.length, u = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { u[_key3] = _args4[_key3]; } d = { name: t, type: h, data: { method: c, params: u } }; "object" == (0, _typeof2.default)(n.secretMethods) && function (e, t) { var n = t.data.method, s = e.secretMethods || {}, r = s[n] || s["*"]; r && (t.secretType = r); }(n, d); p = !1; _context52.prev = 5; _context52.next = 8; return e.callFunction(d); case 8: l = _context52.sent; _context52.next = 14; break; case 11: _context52.prev = 11; _context52.t0 = _context52["catch"](5); p = !0, l = { result: new ne(_context52.t0) }; case 14: _ref50 = l.result || {}, f = _ref50.errSubject, g = _ref50.errCode, m = _ref50.errMsg, y = _ref50.newToken; if (!(a && uni.hideLoading(), y && y.token && y.tokenExpired && (ie(y), Q(W, _objectSpread({}, y))), g)) { _context52.next = 39; break; } _e27 = m; if (!(p && o)) { _context52.next = 24; break; } _context52.next = 20; return o({ objectName: t, methodName: c, params: u, errSubject: f, errCode: g, errMsg: m }); case 20: _context52.t1 = _context52.sent.errMsg; if (_context52.t1) { _context52.next = 23; break; } _context52.t1 = m; case 23: _e27 = _context52.t1; case 24: if (!a) { _context52.next = 37; break; } if (!("toast" === i.type)) { _context52.next = 29; break; } uni.showToast({ title: _e27, icon: "none" }); _context52.next = 37; break; case 29: if (!("modal" !== i.type)) { _context52.next = 31; break; } throw new Error("Invalid errorOptions.type: ".concat(i.type)); case 31: _context52.next = 33; return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee51() { var _ref52, e, t, n, s, r, _args2 = arguments; return _regenerator.default.wrap(function _callee51$(_context51) { while (1) { switch (_context51.prev = _context51.next) { case 0: _ref52 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, e = _ref52.title, t = _ref52.content, n = _ref52.showCancel, s = _ref52.cancelText, r = _ref52.confirmText; return _context51.abrupt("return", new Promise(function (i, o) { uni.showModal({ title: e, content: t, showCancel: n, cancelText: s, confirmText: r, success: function success(e) { i(e); }, fail: function fail() { i({ confirm: !1, cancel: !0 }); } }); })); case 2: case "end": return _context51.stop(); } } }, _callee51); }))({ title: "提示", content: _e27, showCancel: i.retry, cancelText: "取消", confirmText: i.retry ? "重试" : "确定" }); case 33: _yield = _context52.sent; _t18 = _yield.confirm; if (!(i.retry && _t18)) { _context52.next = 37; break; } return _context52.abrupt("return", s.apply(void 0, u)); case 37: _n14 = new ne({ subject: f, code: g, message: m, requestId: l.requestId }); throw _n14.detail = l.result, Q(B, { type: H, content: _n14 }), _n14; case 39: return _context52.abrupt("return", (Q(B, { type: H, content: l.result }), l.result)); case 40: case "end": return _context52.stop(); } } }, _callee52, null, [[5, 11]]); })); function s() { return _s14.apply(this, arguments); } return s; }(), interceptorName: "callObject", getCallbackArgs: function getCallbackArgs() { var _ref53 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref53.params; return { objectName: t, methodName: c, params: e }; } }); } }); }; } function ks(e) { return U("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", e.config.spaceId)); } function Cs() { return _Cs.apply(this, arguments); } function _Cs() { _Cs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee55() { var _ref65, e, _ref65$callLoginByWei, t, n, s, r, _args7 = arguments; return _regenerator.default.wrap(function _callee55$(_context55) { while (1) { switch (_context55.prev = _context55.next) { case 0: _ref65 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, e = _ref65.openid, _ref65$callLoginByWei = _ref65.callLoginByWeixin, t = _ref65$callLoginByWei === void 0 ? !1 : _ref65$callLoginByWei; n = ks(this); if (!("mp-weixin" !== P)) { _context55.next = 4; break; } throw new Error("[SecureNetwork] API `initSecureNetworkByWeixin` is not supported on platform `".concat(P, "`")); case 4: if (!(e && t)) { _context55.next = 6; break; } throw new Error("[SecureNetwork] openid and callLoginByWeixin cannot be passed at the same time"); case 6: if (!e) { _context55.next = 8; break; } return _context55.abrupt("return", (n.mpWeixinOpenid = e, {})); case 8: _context55.next = 10; return new Promise(function (e, t) { uni.login({ success: function success(t) { e(t.code); }, fail: function fail(e) { t(new Error(e.errMsg)); } }); }); case 10: s = _context55.sent; r = this.importObject("uni-id-co", { customUI: !0 }); _context55.next = 14; return r.secureNetworkHandshakeByWeixin({ code: s, callLoginByWeixin: t }); case 14: n.mpWeixinCode = s; return _context55.abrupt("return", { code: s }); case 16: case "end": return _context55.stop(); } } }, _callee55, this); })); return _Cs.apply(this, arguments); } function Ts(_x37) { return _Ts.apply(this, arguments); } function _Ts() { _Ts = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee56(e) { var t; return _regenerator.default.wrap(function _callee56$(_context56) { while (1) { switch (_context56.prev = _context56.next) { case 0: t = ks(this); return _context56.abrupt("return", (t.initPromise || (t.initPromise = Cs.call(this, e)), t.initPromise)); case 2: case "end": return _context56.stop(); } } }, _callee56, this); })); return _Ts.apply(this, arguments); } function Ps(e) { return function () { var _ref54 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref54.openid, _ref54$callLoginByWei = _ref54.callLoginByWeixin, n = _ref54$callLoginByWei === void 0 ? !1 : _ref54$callLoginByWei; return Ts.call(e, { openid: t, callLoginByWeixin: n }); }; } function As(e) { var t = { getSystemInfo: uni.getSystemInfo, getPushClientId: uni.getPushClientId }; return function (n) { return new Promise(function (s, r) { t[e](_objectSpread(_objectSpread({}, n), {}, { success: function success(e) { s(e); }, fail: function fail(e) { r(e); } })); }); }; } var Es = /*#__PURE__*/function (_ref55) { (0, _inherits2.default)(Es, _ref55); var _super12 = _createSuper(Es); function Es() { var _this22; (0, _classCallCheck2.default)(this, Es); _this22 = _super12.call(this), _this22._uniPushMessageCallback = _this22._receivePushMessage.bind((0, _assertThisInitialized2.default)(_this22)), _this22._currentMessageId = -1, _this22._payloadQueue = []; return _this22; } (0, _createClass2.default)(Es, [{ key: "init", value: function init() { var _this23 = this; return Promise.all([As("getSystemInfo")(), As("getPushClientId")()]).then(function () { var _ref56 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [], _ref57 = (0, _slicedToArray2.default)(_ref56, 2), _ref57$ = _ref57[0]; _ref57$ = _ref57$ === void 0 ? {} : _ref57$; var e = _ref57$.appId, _ref57$2 = _ref57[1]; _ref57$2 = _ref57$2 === void 0 ? {} : _ref57$2; var t = _ref57$2.cid; if (!e) throw new Error("Invalid appId, please check the manifest.json file"); if (!t) throw new Error("Invalid push client id"); _this23._appId = e, _this23._pushClientId = t, _this23._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), _this23.emit("open"), _this23._initMessageListener(); }, function (e) { throw _this23.emit("error", e), _this23.close(), e; }); } }, { key: "open", value: function () { var _open = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee53() { return _regenerator.default.wrap(function _callee53$(_context53) { while (1) { switch (_context53.prev = _context53.next) { case 0: return _context53.abrupt("return", this.init()); case 1: case "end": return _context53.stop(); } } }, _callee53, this); })); function open() { return _open.apply(this, arguments); } return open; }() }, { key: "_isUniCloudSSE", value: function _isUniCloudSSE(e) { if ("receive" !== e.type) return !1; var t = e && e.data && e.data.payload; return !(!t || "UNI_CLOUD_SSE" !== t.channel || t.seqId !== this._seqId); } }, { key: "_receivePushMessage", value: function _receivePushMessage(e) { if (!this._isUniCloudSSE(e)) return; var t = e && e.data && e.data.payload, n = t.action, s = t.messageId, r = t.message; this._payloadQueue.push({ action: n, messageId: s, message: r }), this._consumMessage(); } }, { key: "_consumMessage", value: function _consumMessage() { var _this24 = this; for (;;) { var _e28 = this._payloadQueue.find(function (e) { return e.messageId === _this24._currentMessageId + 1; }); if (!_e28) break; this._currentMessageId++, this._parseMessagePayload(_e28); } } }, { key: "_parseMessagePayload", value: function _parseMessagePayload(e) { var t = e.action, n = e.messageId, s = e.message; "end" === t ? this._end({ messageId: n, message: s }) : "message" === t && this._appendMessage({ messageId: n, message: s }); } }, { key: "_appendMessage", value: function _appendMessage() { var _ref58 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref58.messageId, t = _ref58.message; this.emit("message", t); } }, { key: "_end", value: function _end() { var _ref59 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref59.messageId, t = _ref59.message; this.emit("end", t), this.close(); } }, { key: "_initMessageListener", value: function _initMessageListener() { uni.onPushMessage(this._uniPushMessageCallback); } }, { key: "_destroy", value: function _destroy() { uni.offPushMessage(this._uniPushMessageCallback); } }, { key: "toJSON", value: function toJSON() { return { appId: this._appId, pushClientId: this._pushClientId, seqId: this._seqId }; } }, { key: "close", value: function close() { this._destroy(), this.emit("close"); } }]); return Es; }( /*#__PURE__*/function () { function _class6() { (0, _classCallCheck2.default)(this, _class6); this._callback = {}; } (0, _createClass2.default)(_class6, [{ key: "addListener", value: function addListener(e, t) { this._callback[e] || (this._callback[e] = []), this._callback[e].push(t); } }, { key: "on", value: function on(e, t) { return this.addListener(e, t); } }, { key: "removeListener", value: function removeListener(e, t) { if (!t) throw new Error('The "listener" argument must be of type function. Received undefined'); var n = this._callback[e]; if (!n) return; var s = function (e, t) { for (var _n15 = e.length - 1; _n15 >= 0; _n15--) { if (e[_n15] === t) return _n15; } return -1; }(n, t); n.splice(s, 1); } }, { key: "off", value: function off(e, t) { return this.removeListener(e, t); } }, { key: "removeAllListener", value: function removeAllListener(e) { delete this._callback[e]; } }, { key: "emit", value: function emit(e) { var n = this._callback[e]; for (var _len4 = arguments.length, t = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { t[_key4 - 1] = arguments[_key4]; } if (n) for (var _e29 = 0; _e29 < n.length; _e29++) { n[_e29].apply(n, t); } } }]); return _class6; }()); function Os(_x38, _x39) { return _Os.apply(this, arguments); } function _Os() { _Os = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee57(e, t) { var n, _e33, s; return _regenerator.default.wrap(function _callee57$(_context57) { while (1) { switch (_context57.prev = _context57.next) { case 0: n = "http://".concat(e, ":").concat(t, "/system/ping"); _context57.prev = 1; _context57.next = 4; return s = { url: n, timeout: 500 }, new Promise(function (e, t) { se.request(_objectSpread(_objectSpread({}, s), {}, { success: function success(t) { e(t); }, fail: function fail(e) { t(e); } })); }); case 4: _e33 = _context57.sent; return _context57.abrupt("return", !(!_e33.data || 0 !== _e33.data.code)); case 8: _context57.prev = 8; _context57.t0 = _context57["catch"](1); return _context57.abrupt("return", !1); case 11: case "end": return _context57.stop(); } } }, _callee57, null, [[1, 8]]); })); return _Os.apply(this, arguments); } function xs(_x40) { return _xs.apply(this, arguments); } function _xs() { _xs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee59(e) { var _ce2, _e34, _t20, t, _t$debugInfo, n, s, _yield2, r, i, o; return _regenerator.default.wrap(function _callee59$(_context59) { while (1) { switch (_context59.prev = _context59.next) { case 0: if (b) { _context59.next = 2; break; } return _context59.abrupt("return", Promise.resolve()); case 2: if ("app" === P) { _ce2 = ce(), _e34 = _ce2.osName, _t20 = _ce2.osVersion; "ios" === _e34 && function (e) { if (!e || "string" != typeof e) return 0; var t = e.match(/^(\d+)./); return t && t[1] ? parseInt(t[1]) : 0; }(_t20) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发模式生效,发行模式会连接uniCloud云端服务)"); } t = e.__dev__; if (t.debugInfo) { _context59.next = 6; break; } return _context59.abrupt("return"); case 6: _t$debugInfo = t.debugInfo; n = _t$debugInfo.address; s = _t$debugInfo.servePort; _context59.next = 11; return function () { var _ref66 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee58(e, t) { var n, _s15, _r8; return _regenerator.default.wrap(function _callee58$(_context58) { while (1) { switch (_context58.prev = _context58.next) { case 0: _s15 = 0; case 1: if (!(_s15 < e.length)) { _context58.next = 11; break; } _r8 = e[_s15]; _context58.next = 5; return Os(_r8, t); case 5: if (!_context58.sent) { _context58.next = 8; break; } n = _r8; return _context58.abrupt("break", 11); case 8: _s15++; _context58.next = 1; break; case 11: return _context58.abrupt("return", { address: n, port: t }); case 12: case "end": return _context58.stop(); } } }, _callee58); })); return function (_x41, _x42) { return _ref66.apply(this, arguments); }; }()(n, s); case 11: _yield2 = _context59.sent; r = _yield2.address; if (!r) { _context59.next = 15; break; } return _context59.abrupt("return", (t.localAddress = r, void (t.localPort = s))); case 15: i = console["app" === P ? "error" : "warn"]; o = ""; if (!("remote" === t.debugInfo.initialLaunchType ? (t.debugInfo.forceRemote = !0, o = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", "web" === P && (o += "\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式"), 0 === P.indexOf("mp-") && (o += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t.debugInfo.forceRemote)) { _context59.next = 19; break; } throw new Error(o); case 19: i(o); case 20: case "end": return _context59.stop(); } } }, _callee59); })); return _xs.apply(this, arguments); } function Rs(e) { e._initPromiseHub || (e._initPromiseHub = new I({ createPromise: function createPromise() { var t = Promise.resolve(); var n; n = 1, t = new Promise(function (e) { setTimeout(function () { e(); }, n); }); var s = e.auth(); return t.then(function () { return s.getLoginState(); }).then(function (e) { return e ? Promise.resolve() : s.signInAnonymously(); }); } })); } var Us = { tcb: It, tencent: It, aliyun: ge, private: bt }; var Ls = new ( /*#__PURE__*/function () { function _class7() { (0, _classCallCheck2.default)(this, _class7); } (0, _createClass2.default)(_class7, [{ key: "init", value: function init(e) { var t = {}; var n = Us[e.provider]; if (!n) throw new Error("未提供正确的provider参数"); t = n.init(e), b && function (e) { if (!b) return; var t = {}; e.__dev__ = t, t.debugLog = b && ("web" === P && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === P); var n = A; n && !n.code && (t.debugInfo = n); var s = new I({ createPromise: function createPromise() { return xs(e); } }); t.initLocalNetwork = function () { return s.exec(); }; }(t), Rs(t), xn(t), function (e) { var t = e.uploadFile; e.uploadFile = function (e) { return t.call(this, e); }; }(t), function (e) { e.database = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).database(); if (this._database) return this._database; var n = Bn($n, { uniClient: e }); return this._database = n, n; }, e.databaseForJQL = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).databaseForJQL(); if (this._databaseForJQL) return this._databaseForJQL; var n = Bn($n, { uniClient: e, isJQL: !0 }); return this._databaseForJQL = n, n; }; }(t), function (e) { e.getCurrentUserInfo = _s, e.chooseAndUploadFile = vs.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() { return Ss(e); } }), e.SSEChannel = Es, e.initSecureNetworkByWeixin = Ps(e), e.importObject = bs(e); }(t); return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) { if (!t[e]) return; var n = t[e]; t[e] = function () { return n.apply(t, Array.from(arguments)); }, t[e] = function (e, t) { return function (n) { var _this25 = this; var s = !1; if ("callFunction" === t) { var _e30 = n && n.type || u; s = _e30 !== u; } var r = "callFunction" === t && !s, i = this._initPromiseHub.exec(); n = n || {}; var _te2 = te(n), o = _te2.success, a = _te2.fail, c = _te2.complete, h = i.then(function () { return s ? Promise.resolve() : q(M(t, "invoke"), n); }).then(function () { return e.call(_this25, n); }).then(function (e) { return s ? Promise.resolve(e) : q(M(t, "success"), e).then(function () { return q(M(t, "complete"), e); }).then(function () { return r && Q(B, { type: J, content: e }), Promise.resolve(e); }); }, function (e) { return s ? Promise.reject(e) : q(M(t, "fail"), e).then(function () { return q(M(t, "complete"), e); }).then(function () { return Q(B, { type: J, content: e }), Promise.reject(e); }); }); if (!(o || a || c)) return h; h.then(function (e) { o && o(e), c && c(e), r && Q(B, { type: J, content: e }); }, function (e) { a && a(e), c && c(e), r && Q(B, { type: J, content: e }); }); }; }(t[e], e).bind(t); }), t.init = this.init, t; } }]); return _class7; }())(); (function () { var e = E; var t = {}; if (e && 1 === e.length) t = e[0], Ls = Ls.init(t), Ls._isDefault = !0;else { var _t19 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"]; var _n16; _n16 = e && e.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : O ? "应用未关联服务空间,请在uniCloud目录右键关联服务空间" : "uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间", _t19.forEach(function (e) { Ls[e] = function () { return console.error(_n16), Promise.reject(new ne({ code: "SYS_ERR", message: _n16 })); }; }); } Object.assign(Ls, { get mixinDatacom() { return Ss(Ls); } }), fs(Ls), Ls.addInterceptor = D, Ls.removeInterceptor = F, Ls.interceptObject = K, b && "web" === P && (window.uniCloud = Ls); })(); var Ns = Ls; exports.default = Ns; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 43), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 110)["default"])) /***/ }), /* 110 */ /*!*********************************************************!*\ !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/mp.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.Behavior = Behavior; exports.Component = Component; exports.Page = Page; exports.nextTick = exports.default = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 44)); var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 111)); var _PROP_DEFAULT_VALUES; function parseData(data, vueComponentOptions) { if (!data) { return; } vueComponentOptions.mpOptions.data = data; } function parseComponents(vueComponentOptions) { vueComponentOptions.components = global.__wxVueOptions.components; } var _toString = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; function isFn(fn) { return typeof fn === 'function'; } function isPlainObject(obj) { return _toString.call(obj) === '[object Object]'; } function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); } function noop() {} /** * Create a cached version of a pure function. */ function cached(fn) { var cache = Object.create(null); return function cachedFn(str) { var hit = cache[str]; return hit || (cache[str] = fn(str)); }; } /** * Camelize a hyphen-delimited string. */ var camelizeRE = /-(\w)/g; var camelize = cached(function (str) { return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }); }); var SOURCE_KEY = '__data__'; var COMPONENT_LIFECYCLE = { created: 'onServiceCreated', attached: 'onServiceAttached', ready: 'mounted', moved: 'moved', detached: 'destroyed' }; var COMPONENT_LIFECYCLE_KEYS = Object.keys(COMPONENT_LIFECYCLE); var PAGE_LIFETIMES = { show: 'onPageShow', hide: 'onPageHide', resize: 'onPageResize' }; var PAGE_LIFETIMES_KEYS = Object.keys(PAGE_LIFETIMES); var PAGE_LIFECYCLE = ['onLoad', 'onShow', 'onReady', 'onHide', 'onUnload', 'onPullDownRefresh', 'onReachBottom', 'onShareAppMessage', 'onPageScroll', 'onResize', 'onTabItemTap']; function parsePageMethods(mpComponentOptions, vueComponentOptions) { var methods = Object.create(null); Object.keys(mpComponentOptions).forEach(function (key) { var value = mpComponentOptions[key]; if (isFn(value) && PAGE_LIFECYCLE.indexOf(key) === -1) { methods[key] = value; } }); vueComponentOptions.methods = methods; } function parsePageLifecycle(mpComponentOptions, vueComponentOptions) { Object.keys(mpComponentOptions).forEach(function (key) { if (PAGE_LIFECYCLE.indexOf(key) !== -1) { vueComponentOptions[key] = mpComponentOptions[key]; } }); } function parsePage(mpComponentOptions) { var vueComponentOptions = { mixins: [], mpOptions: {} }; parseComponents(vueComponentOptions); parseData(mpComponentOptions.data, vueComponentOptions); parsePageMethods(mpComponentOptions, vueComponentOptions); parsePageLifecycle(mpComponentOptions, vueComponentOptions); return vueComponentOptions; } function parseProperties(properties, vueComponentOptions) { if (!properties) { return; } vueComponentOptions.mpOptions.properties = properties; } function parseOptions(options, vueComponentOptions) { if (!options) { return; } vueComponentOptions.mpOptions.options = options; } function parseMethods(methods, vueComponentOptions) { if (!methods) { return; } if (methods.$emit) { console.warn('Method "$emit" conflicts with an existing Vue instance method'); delete methods.$emit; } vueComponentOptions.methods = methods; } function parseLifecycle(mpComponentOptions, vueComponentOptions) { COMPONENT_LIFECYCLE_KEYS.forEach(function (name) { if (hasOwn(mpComponentOptions, name)) { (vueComponentOptions[COMPONENT_LIFECYCLE[name]] || (vueComponentOptions[COMPONENT_LIFECYCLE[name]] = [])).push(mpComponentOptions[name]); } }); } var mpBehaviors = { 'wx://form-field': {}, 'wx://component-export': {} }; function callDefinitionFilter(mpComponentOptions) { var behaviors = mpComponentOptions.behaviors, definitionFilter = mpComponentOptions.definitionFilter; var behaviorDefinitionFilters = []; if (Array.isArray(behaviors)) { behaviors.forEach(function (behavior) { behavior = typeof behavior === 'string' ? mpBehaviors[behavior] : behavior; if (behavior.definitionFilter) { behaviorDefinitionFilters.push(behavior.definitionFilter); behavior.definitionFilter.call(null, mpComponentOptions, []); } }); } if (isFn(definitionFilter)) { return function (defFields) { definitionFilter(defFields, behaviorDefinitionFilters); }; } } function parseDefinitionFilter(mpComponentOptions, vueComponentOptions) { callDefinitionFilter(mpComponentOptions); } function parseBehavior(behavior) { var data = behavior.data, methods = behavior.methods, behaviors = behavior.behaviors, properties = behavior.properties; var vueComponentOptions = { watch: {}, mpOptions: { mpObservers: [] } }; parseData(data, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseProperties(properties, vueComponentOptions); parseLifecycle(behavior, vueComponentOptions); parseDefinitionFilter(behavior); return vueComponentOptions; } var BEHAVIORS = { 'wx://form-field': { beforeCreate: function beforeCreate() { var mpOptions = this.$options.mpOptions; if (!mpOptions.properties) { mpOptions.properties = Object.create(null); } var props = mpOptions.properties; // TODO form submit,reset if (!hasOwn(props, 'name')) { props.name = { type: String }; } if (!hasOwn(props, 'value')) { props.value = { type: String // 默认类型调整为 String,否则默认值为 null,导致一些自定义 input 显示不正确 }; } } } }; function parseBehaviors(behaviors, vueComponentOptions) { if (!behaviors) { return; } behaviors.forEach(function (behavior) { if (typeof behavior === 'string') { BEHAVIORS[behavior] && vueComponentOptions.mixins.push(BEHAVIORS[behavior]); } else { vueComponentOptions.mixins.push(parseBehavior(behavior)); } }); } function parseSinglePath(path) { return path.split('.'); } function parseMultiPaths(paths) { return paths.split(',').map(function (path) { return parseSinglePath(path); }); } function parseObservers(observers, vueComponentOptions) { if (!observers) { return; } var mpObservers = vueComponentOptions.mpOptions.mpObservers; Object.keys(observers).forEach(function (path) { mpObservers.push({ paths: parseMultiPaths(path), observer: observers[path] }); }); } function relative(from, to) { if (to.indexOf('/') === 0) { from = ''; } var fromArr = from.split('/'); var toArr = to.split('/'); fromArr.pop(); while (toArr.length) { var part = toArr.shift(); if (part !== '' && part !== '.') { if (part !== '..') { fromArr.push(part); } else { fromArr.pop(); } } } return fromArr.join('/'); } function parseRelations(relations, vueComponentOptions) { if (!relations) { return; } Object.keys(relations).forEach(function (name) { var relation = relations[name]; relation.name = name; relation.target = relation.target ? String(relation.target) : relative(global.__wxRoute, name); }); vueComponentOptions.mpOptions.relations = relations; } function parseExternalClasses(externalClasses, vueComponentOptions) { if (!externalClasses) { return; } if (!Array.isArray(externalClasses)) { externalClasses = [externalClasses]; } vueComponentOptions.mpOptions.externalClasses = externalClasses; if (!vueComponentOptions.mpOptions.properties) { vueComponentOptions.mpOptions.properties = Object.create(null); } externalClasses.forEach(function (externalClass) { vueComponentOptions.mpOptions.properties[camelize(externalClass)] = { type: String, value: '' }; }); } function parseLifetimes(lifetimes, vueComponentOptions) { if (!lifetimes) { return; } parseLifecycle(lifetimes, vueComponentOptions); } function parsePageLifetimes(pageLifetimes, vueComponentOptions) { if (!pageLifetimes) { return; } PAGE_LIFETIMES_KEYS.forEach(function (key) { var lifetimeFn = pageLifetimes[key]; isFn(lifetimeFn) && (vueComponentOptions[PAGE_LIFETIMES[key]] = lifetimeFn); }); } function parseComponent(mpComponentOptions) { var data = mpComponentOptions.data, options = mpComponentOptions.options, methods = mpComponentOptions.methods, behaviors = mpComponentOptions.behaviors, lifetimes = mpComponentOptions.lifetimes, observers = mpComponentOptions.observers, relations = mpComponentOptions.relations, properties = mpComponentOptions.properties, pageLifetimes = mpComponentOptions.pageLifetimes, externalClasses = mpComponentOptions.externalClasses; var vueComponentOptions = { mixins: [], props: {}, watch: {}, mpOptions: { mpObservers: [] } }; parseComponents(vueComponentOptions); parseData(data, vueComponentOptions); parseOptions(options, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseLifetimes(lifetimes, vueComponentOptions); parseObservers(observers, vueComponentOptions); parseRelations(relations, vueComponentOptions); parseProperties(properties, vueComponentOptions); parsePageLifetimes(pageLifetimes, vueComponentOptions); parseExternalClasses(externalClasses, vueComponentOptions); parseLifecycle(mpComponentOptions, vueComponentOptions); parseDefinitionFilter(mpComponentOptions); return vueComponentOptions; } function initRelationHandlers(type, handler, target, ctx) { if (!handler) { return; } var name = "_$".concat(type, "Handlers"); (ctx[name] || (ctx[name] = [])).push(function () { handler.call(ctx, target); }); } function initLinkedHandlers(relation, target, ctx) { var type = 'linked'; var name = relation.name; var relationNodes = ctx._$relationNodes || (ctx._$relationNodes = Object.create(null)); (relationNodes[name] || (relationNodes[name] = [])).push(target); initRelationHandlers(type, relation[type], target, ctx); } function initUnlinkedHandlers(relation, target, ctx) { var type = 'unlinked'; initRelationHandlers(type, relation[type], target, ctx); } function findParentRelation(parentVm, target, type) { var relations = parentVm && parentVm.$options.mpOptions && parentVm.$options.mpOptions.relations; if (!relations) { return []; } var name = Object.keys(relations).find(function (name) { var relation = relations[name]; return relation.target === target && relation.type === type; }); if (!name) { return []; } return [relations[name], parentVm]; } function initParentRelation(vm, childRelation, match) { var _match = match(vm, vm.$options.mpOptions.path), _match2 = (0, _slicedToArray2.default)(_match, 2), parentRelation = _match2[0], parentVm = _match2[1]; if (!parentRelation) { return; } initLinkedHandlers(parentRelation, vm, parentVm); initLinkedHandlers(childRelation, parentVm, vm); initUnlinkedHandlers(parentRelation, vm, parentVm); initUnlinkedHandlers(childRelation, parentVm, vm); } function initRelation(relation, vm) { var type = relation.type; if (type === 'parent') { initParentRelation(vm, relation, function matchParent(vm, target) { return findParentRelation(vm.$parent, target, 'child'); }); } else if (type === 'ancestor') { initParentRelation(vm, relation, function matchAncestor(vm, target) { var $parent = vm.$parent; while ($parent) { var ret = findParentRelation($parent, target, 'descendant'); if (ret.length) { return ret; } $parent = $parent.$parent; } return []; }); } } function initRelations(vm) { var _ref = vm.$options.mpOptions || {}, relations = _ref.relations; if (!relations) { return; } Object.keys(relations).forEach(function (name) { initRelation(relations[name], vm); }); } function handleRelations(vm, type) { // TODO 需要移除 relationNodes var handlers = vm["_$".concat(type, "Handlers")]; if (!handlers) { return; } handlers.forEach(function (handler) { return handler(); }); } var sharedPropertyDefinition = { enumerable: true, configurable: true, get: noop, set: noop }; function proxy(target, sourceKey, key) { sharedPropertyDefinition.get = function proxyGetter() { return this[sourceKey][key]; }; sharedPropertyDefinition.set = function proxySetter(val) { this[sourceKey][key] = val; }; Object.defineProperty(target, key, sharedPropertyDefinition); } function setDataByExprPath(exprPath, value, data) { var keys = exprPath.replace(/\[(\d+?)\]/g, '.$1').split('.'); keys.reduce(function (obj, key, idx) { if (idx === keys.length - 1) { obj[key] = value; } else { if (typeof obj[key] === 'undefined') { obj[key] = {}; } return obj[key]; } }, data); return keys.length === 1; } function setData(data, callback) { var _this = this; if (!isPlainObject(data)) { return; } Object.keys(data).forEach(function (key) { if (setDataByExprPath(key, data[key], _this.data)) { !hasOwn(_this, key) && proxy(_this, SOURCE_KEY, key); } }); this.$forceUpdate(); isFn(callback) && this.$nextTick(callback); } /** * https://github.com/swan-team/swan-js/blob/61e2a63f7aa576b5daafbe77fdfa7c65b977060c/src/utils/index.js */ var _toString$1 = Object.prototype.toString; /** * 深度assign的函数 * @param {Object} targetObject 要被拷贝的目标对象 * @param {Object} originObject 拷贝的源对象 * @return {Object} merge后的对象 */ var deepAssign = function deepAssign() { var targetObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var originObject = arguments.length > 1 ? arguments[1] : undefined; var originType = _toString$1.call(originObject); if (originType === '[object Array]') { targetObject = originObject.slice(0); return targetObject; } else if (originType === '[object Object]') { for (var key in originObject) { targetObject[key] = deepAssign(targetObject[key], originObject[key]); } return targetObject; } else if (originType === '[object Date]') { return new Date(originObject.getTime()); } else if (originType === '[object RegExp]') { var target = String(originObject); var lastIndex = target.lastIndexOf('/'); return new RegExp(target.slice(1, lastIndex), target.slice(lastIndex + 1)); } return originObject; }; /** * 深度拷贝逻辑,不同于lodash等库,但是与微信一致 * @param {*} [originObj] 原对象 * @return {Object|Array} 拷贝结果 */ var deepClone = function deepClone(originObj) { return deepAssign(_toString$1.call(originObj) === '[object Array]' ? [] : {}, originObj); }; var PROP_DEFAULT_VALUES = (_PROP_DEFAULT_VALUES = {}, (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, String, ''), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Number, 0), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Boolean, false), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Object, null), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Array, []), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, null, null), _PROP_DEFAULT_VALUES); function getDefaultVal(propType) { return PROP_DEFAULT_VALUES[propType]; } function getPropertyVal(options) { if (isPlainObject(options)) { if (hasOwn(options, 'value')) { return options.value; } return getDefaultVal(options.type); } return getDefaultVal(options); } function getType(propOptions) { return isPlainObject(propOptions) ? propOptions.type : propOptions; } function validateProp(key, propsOptions, propsData, vm) { var value = propsData[key]; if (value !== undefined) { var propOptions = propsOptions[key]; var type = getType(propOptions); value = formatVal(value, type); var observer = propOptions && propOptions.observer; if (observer) { // 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他 setTimeout(function () { observe(observer, vm, value); }, 4); } return value; } return getPropertyVal(propsOptions[key]); } function formatVal(val, type) { if (type === Boolean) { return !!val; } else if (type === String) { return String(val); } return val; } function observe(observer, vm, newVal, oldVal) { try { if (typeof observer === 'function') { observer.call(vm, newVal, oldVal); } else if (typeof observer === 'string' && typeof vm[observer] === 'function') { vm[observer](newVal, oldVal); } } catch (err) { console.error("execute observer ".concat(observer, " callback fail! err: ").concat(err)); } } function initProperties(vm, instanceData) { var properties = vm.$options.mpOptions.properties; if (!properties) { return; } var propsData = deepClone(vm.$options.propsData) || {}; var _loop = function _loop(key) { var observer = isPlainObject(properties[key]) ? properties[key].observer : false; var value = validateProp(key, properties, propsData, vm); Object.defineProperty(instanceData, key, { enumerable: true, configurable: true, get: function get() { return value; }, set: function set(newVal) { var oldVal = value; /* eslint-disable no-self-compare */ if (newVal === value || newVal !== newVal && value !== value) { return; } // TODO 临时方案,clone array value = Array.isArray(newVal) ? newVal.slice(0) : newVal; if (observer) { observe(observer, vm, newVal, oldVal); } // 触发渲染 vm.$forceUpdate(); } }); }; for (var key in properties) { _loop(key); } } function updateProperties(vm) { var properties = vm.$options.mpOptions && vm.$options.mpOptions.properties; var propsData = vm.$options.propsData; if (propsData && properties) { Object.keys(properties).forEach(function (key) { if (hasOwn(propsData, key)) { vm[key] = formatVal(propsData[key], getType(properties[key])); } }); } } function initState(vm) { var instanceData = JSON.parse(JSON.stringify(vm.$options.mpOptions.data || {})); vm[SOURCE_KEY] = instanceData; var propertyDefinition = { get: function get() { return vm[SOURCE_KEY]; }, set: function set(value) { vm[SOURCE_KEY] = value; } }; Object.defineProperties(vm, { data: propertyDefinition, properties: propertyDefinition }); vm.setData = setData; initProperties(vm, instanceData); Object.keys(instanceData).forEach(function (key) { proxy(vm, SOURCE_KEY, key); }); } function initMethods(vm) { var oldEmit = vm.$emit; vm.triggerEvent = function (eventName, detail, options) { var target = { dataset: vm.$el.dataset }; var event = { target: target, currentTarget: target, detail: detail, preventDefault: noop, stopPropagation: noop }; oldEmit.call(vm, eventName, event); }; // 主要是Vant 自己封装了 $emit,放到 methods 中会触发 Vue 的警告,索性,框架直接重写该方法 vm.$emit = function () { vm.triggerEvent.apply(vm, arguments); }; vm.getRelationNodes = function (relationKey) { // 需要过滤已被销毁的vm /* eslint-disable no-mixed-operators */ return (vm._$relationNodes && vm._$relationNodes[relationKey] || []).filter(function (vm) { return !vm._isDestroyed; }); }; vm._$updateProperties = updateProperties; } function handleObservers(vm) { var watch = vm.$options.watch; if (!watch) { return; } Object.keys(watch).forEach(function (name) { var observer = watch[name]; if (observer.mounted) { var val = vm[name]; var handler = observer.handler; if (typeof handler === 'string') { handler = vm[handler]; } handler && handler.call(vm, val, val); } }); } var polyfill = { beforeCreate: function beforeCreate() { // 取消 development 时的 Proxy,避免小程序组件模板中使用尚未定义的属性告警 this._renderProxy = this; this._$self = this; this._$noop = noop; }, created: function created() { // properties 中可能会访问 methods,故需要在 created 中初始化 initState(this); initMethods(this); initRelations(this); }, mounted: function mounted() { handleObservers(this); }, destroyed: function destroyed() { handleRelations(this, 'unlinked'); } }; global.__wxRoute = ''; global.__wxComponents = Object.create(null); global.__wxVueOptions = Object.create(null); function Page(options) { var pageOptions = parsePage(options); pageOptions.mixins.unshift(polyfill); pageOptions.mpOptions.path = global.__wxRoute; global.__wxComponents[global.__wxRoute] = pageOptions; } function initRelationsHandler(vueComponentOptions) { // linked 需要在当前组件 attached 之后再执行 if (!vueComponentOptions.onServiceAttached) { vueComponentOptions.onServiceAttached = []; } vueComponentOptions.onServiceAttached.push(function onServiceAttached() { handleRelations(this, 'linked'); }); } function Component(options) { var componentOptions = parseComponent(options); componentOptions.mixins.unshift(polyfill); componentOptions.mpOptions.path = global.__wxRoute; initRelationsHandler(componentOptions); global.__wxComponents[global.__wxRoute] = componentOptions; } function Behavior(options) { return options; } var nextTick = _vue.default.nextTick; exports.nextTick = nextTick; var index = uni.__$wx__; var _default = index; exports.default = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 43))) /***/ }), /* 111 */ /*!**********************!*\ !*** external "Vue" ***! \**********************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = Vue; /***/ }), /* 112 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/regenerator/index.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); // TODO(Babel 8): Remove this file. var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ 113)(); module.exports = runtime; // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= try { regeneratorRuntime = runtime; } catch (accidentalStrictMode) { if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") { globalThis.regeneratorRuntime = runtime; } else { Function("r", "regeneratorRuntime = r")(runtime); } } /***/ }), /* 113 */ /*!*******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ module.exports = _regeneratorRuntime = function _regeneratorRuntime() { return exports; }, module.exports.__esModule = true, module.exports["default"] = module.exports; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 114 */ /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 115 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 116 */ /*!*********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 117); function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) setPrototypeOf(subClass, superClass); } module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 117 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _setPrototypeOf(o, p) { module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _setPrototypeOf(o, p); } module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 118 */ /*!**************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ 114); function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return assertThisInitialized(self); } module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 119 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _getPrototypeOf(o) { module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _getPrototypeOf(o); } module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 120 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ 119); var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 117); var isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ 121); var construct = __webpack_require__(/*! ./construct.js */ 122); function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return construct(Class, arguments, getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return setPrototypeOf(Wrapper, Class); }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _wrapNativeSuper(Class); } module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 121 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 122 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/construct.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 117); var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ 123); function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports; } else { module.exports = _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) setPrototypeOf(instance, Class.prototype); return instance; }, module.exports.__esModule = true, module.exports["default"] = module.exports; } return _construct.apply(null, arguments); } module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 123 */ /*!*************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 124 */ /*!***********************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages.json?{"type":"origin-pages-json"} ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { "pages": [{ "path": "pages/home/home", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index/index", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index/monitor", "style": { "navigationStyle": "custom" } }], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "pageOrientation": "landscape" } }; exports.default = _default; /***/ }), /* 125 */ /*!**********************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages.json?{"type":"stat"} ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { "appid": "__UNI__CA903B7" }; exports.default = _default; /***/ }), /* 126 */ /*!****************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {/*\r\n * uCharts (R)\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (C) 2018-2022 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts (R) 官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 44));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar config = {\n version: 'v2.4.4-20221102',\n yAxisWidth: 15,\n xAxisHeight: 22,\n xAxisTextPadding: 3,\n padding: [10, 10, 10, 10],\n pixelRatio: 1,\n rotate: false,\n fontSize: 13,\n fontColor: '#666666',\n dataPointShape: ['circle', 'circle', 'circle', 'circle'],\n color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\n linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\n pieChartLinePadding: 15,\n pieChartTextPadding: 5,\n titleFontSize: 20,\n subtitleFontSize: 15,\n toolTipPadding: 3,\n toolTipBackground: '#000000',\n toolTipOpacity: 0.7,\n toolTipLineHeight: 20,\n radarLabelTextMargin: 13\n};\nvar assign = function assign(target) {\n for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n varArgs[_key2 - 1] = arguments[_key2];\n }\n if (target == null) {\n throw new TypeError('[uCharts] Cannot convert undefined or null to object');\n }\n if (!varArgs || varArgs.length <= 0) {\n return target;\n }\n // 深度合并对象\n function deepAssign(obj1, obj2) {\n for (var key in obj2) {\n obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ? deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\n }\n return obj1;\n }\n varArgs.forEach(function (val) {\n target = deepAssign(target, val);\n });\n return target;\n};\nvar util = {\n toFixed: function toFixed(num, limit) {\n limit = limit || 2;\n if (this.isFloat(num)) {\n num = num.toFixed(limit);\n }\n return num;\n },\n isFloat: function isFloat(num) {\n return num % 1 !== 0;\n },\n approximatelyEqual: function approximatelyEqual(num1, num2) {\n return Math.abs(num1 - num2) < 1e-10;\n },\n isSameSign: function isSameSign(num1, num2) {\n return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\n },\n isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\n return this.isSameSign(p1.x, p2.x);\n },\n isCollision: function isCollision(obj1, obj2) {\n obj1.end = {};\n obj1.end.x = obj1.start.x + obj1.width;\n obj1.end.y = obj1.start.y - obj1.height;\n obj2.end = {};\n obj2.end.x = obj2.start.x + obj2.width;\n obj2.end.y = obj2.start.y - obj2.height;\n var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\n return !flag;\n }\n};\n\n//兼容H5点击事件\nfunction getH5Offset(e) {\n e.mp = {\n changedTouches: []\n };\n e.mp.changedTouches.push({\n x: e.offsetX,\n y: e.offsetY\n });\n return e;\n}\n\n// hex 转 rgba\nfunction hexToRgb(hexValue, opc) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\n}\nfunction findRange(num, type, limit) {\n if (isNaN(num)) {\n throw new Error('[uCharts] series数据需为Number格式');\n }\n limit = limit || 10;\n type = type ? type : 'upper';\n var multiple = 1;\n while (limit < 1) {\n limit *= 10;\n multiple *= 10;\n }\n if (type === 'upper') {\n num = Math.ceil(num * multiple);\n } else {\n num = Math.floor(num * multiple);\n }\n while (num % limit !== 0) {\n if (type === 'upper') {\n if (num == num + 1) {\n //修复数据值过大num++无效的bug by 向日葵 @xrk_jy\n break;\n }\n num++;\n } else {\n num--;\n }\n }\n return num / multiple;\n}\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\n var seriesTemp = [];\n for (var k = 0; k < dayArr.length; k++) {\n var seriesItem = {\n data: [],\n name: nameArr[k],\n color: colorArr[k]\n };\n for (var i = 0, len = kdata.length; i < len; i++) {\n if (i < dayArr[k]) {\n seriesItem.data.push(null);\n continue;\n }\n var sum = 0;\n for (var j = 0; j < dayArr[k]; j++) {\n sum += kdata[i - j][1];\n }\n seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\n }\n seriesTemp.push(seriesItem);\n }\n return seriesTemp;\n}\nfunction calValidDistance(self, distance, chartData, config, opts) {\n var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\n var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n dataChartWidth += (opts.extra.mount.widthRatio - 1) * chartData.eachSpacing;\n }\n var validDistance = distance;\n if (distance >= 0) {\n validDistance = 0;\n self.uevent.trigger('scrollLeft');\n self.scrollOption.position = 'left';\n opts.xAxis.scrollPosition = 'left';\n } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\n validDistance = dataChartAreaWidth - dataChartWidth;\n self.uevent.trigger('scrollRight');\n self.scrollOption.position = 'right';\n opts.xAxis.scrollPosition = 'right';\n } else {\n self.scrollOption.position = distance;\n opts.xAxis.scrollPosition = distance;\n }\n return validDistance;\n}\nfunction isInAngleRange(angle, startAngle, endAngle) {\n function adjust(angle) {\n while (angle < 0) {\n angle += 2 * Math.PI;\n }\n while (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n }\n angle = adjust(angle);\n startAngle = adjust(startAngle);\n endAngle = adjust(endAngle);\n if (startAngle > endAngle) {\n endAngle += 2 * Math.PI;\n if (angle < startAngle) {\n angle += 2 * Math.PI;\n }\n }\n return angle >= startAngle && angle <= endAngle;\n}\nfunction createCurveControlPoints(points, i) {\n function isNotMiddlePoint(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y, points[i + 1].y);\n } else {\n return false;\n }\n }\n function isNotMiddlePointX(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x, points[i + 1].x);\n } else {\n return false;\n }\n }\n var a = 0.2;\n var b = 0.2;\n var pAx = null;\n var pAy = null;\n var pBx = null;\n var pBy = null;\n if (i < 1) {\n pAx = points[0].x + (points[1].x - points[0].x) * a;\n pAy = points[0].y + (points[1].y - points[0].y) * a;\n } else {\n pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\n pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\n }\n if (i > points.length - 3) {\n var last = points.length - 1;\n pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\n pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\n } else {\n pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\n pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\n }\n if (isNotMiddlePoint(points, i + 1)) {\n pBy = points[i + 1].y;\n }\n if (isNotMiddlePoint(points, i)) {\n pAy = points[i].y;\n }\n if (isNotMiddlePointX(points, i + 1)) {\n pBx = points[i + 1].x;\n }\n if (isNotMiddlePointX(points, i)) {\n pAx = points[i].x;\n }\n if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\n pAy = points[i].y;\n }\n if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\n pBy = points[i + 1].y;\n }\n if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\n pAx = points[i].x;\n }\n if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\n pBx = points[i + 1].x;\n }\n return {\n ctrA: {\n x: pAx,\n y: pAy\n },\n ctrB: {\n x: pBx,\n y: pBy\n }\n };\n}\nfunction convertCoordinateOrigin(x, y, center) {\n return {\n x: center.x + x,\n y: center.y - y\n };\n}\nfunction avoidCollision(obj, target) {\n if (target) {\n // is collision test\n while (util.isCollision(obj, target)) {\n if (obj.start.x > 0) {\n obj.start.y--;\n } else if (obj.start.x < 0) {\n obj.start.y++;\n } else {\n if (obj.start.y > 0) {\n obj.start.y++;\n } else {\n obj.start.y--;\n }\n }\n }\n }\n return obj;\n}\nfunction fixPieSeries(series, opts, config) {\n var pieSeriesArr = [];\n if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {\n opts._pieSeries_ = series;\n var oldseries = series[0].data;\n for (var i = 0; i < oldseries.length; i++) {\n oldseries[i].formatter = series[0].formatter;\n oldseries[i].data = oldseries[i].value;\n pieSeriesArr.push(oldseries[i]);\n }\n opts.series = pieSeriesArr;\n } else {\n pieSeriesArr = series;\n }\n return pieSeriesArr;\n}\nfunction fillSeries(series, opts, config) {\n var index = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (!item.color) {\n item.color = config.color[index];\n index = (index + 1) % config.color.length;\n }\n if (!item.linearIndex) {\n item.linearIndex = i;\n }\n if (!item.index) {\n item.index = 0;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (typeof item.show == \"undefined\") {\n item.show = true;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (!item.pointShape) {\n item.pointShape = \"circle\";\n }\n if (!item.legendShape) {\n switch (item.type) {\n case 'line':\n item.legendShape = \"line\";\n break;\n case 'column':\n case 'bar':\n item.legendShape = \"rect\";\n break;\n case 'area':\n case 'mount':\n item.legendShape = \"triangle\";\n break;\n default:\n item.legendShape = \"circle\";\n }\n }\n }\n return series;\n}\nfunction fillCustomColor(linearType, customColor, series, config) {\n var newcolor = customColor || [];\n if (linearType == 'custom' && newcolor.length == 0) {\n newcolor = config.linearColor;\n }\n if (linearType == 'custom' && newcolor.length < series.length) {\n var chazhi = series.length - newcolor.length;\n for (var i = 0; i < chazhi; i++) {\n newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\n }\n }\n return newcolor;\n}\nfunction getDataRange(minData, maxData) {\n var limit = 0;\n var range = maxData - minData;\n if (range >= 10000) {\n limit = 1000;\n } else if (range >= 1000) {\n limit = 100;\n } else if (range >= 100) {\n limit = 10;\n } else if (range >= 10) {\n limit = 5;\n } else if (range >= 1) {\n limit = 1;\n } else if (range >= 0.1) {\n limit = 0.1;\n } else if (range >= 0.01) {\n limit = 0.01;\n } else if (range >= 0.001) {\n limit = 0.001;\n } else if (range >= 0.0001) {\n limit = 0.0001;\n } else if (range >= 0.00001) {\n limit = 0.00001;\n } else {\n limit = 0.000001;\n }\n return {\n minRange: findRange(minData, 'lower', limit),\n maxRange: findRange(maxData, 'upper', limit)\n };\n}\nfunction measureText(text, fontSize, context) {\n var width = 0;\n text = String(text);\n if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\n context.setFontSize(fontSize);\n return context.measureText(text).width;\n } else {\n var text = text.split('');\n for (var i = 0; i < text.length; i++) {\n var item = text[i];\n if (/[a-zA-Z]/.test(item)) {\n width += 7;\n } else if (/[0-9]/.test(item)) {\n width += 5.5;\n } else if (/\\./.test(item)) {\n width += 2.7;\n } else if (/-/.test(item)) {\n width += 3.25;\n } else if (/:/.test(item)) {\n width += 2.5;\n } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\n width += 10;\n } else if (/\\(|\\)/.test(item)) {\n width += 3.73;\n } else if (/\\s/.test(item)) {\n width += 2.5;\n } else if (/%/.test(item)) {\n width += 8;\n } else {\n width += 10;\n }\n }\n return width * fontSize / 10;\n }\n}\nfunction dataCombine(series) {\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data);\n }, []);\n}\nfunction dataCombineStack(series, len) {\n var sum = new Array(len);\n for (var j = 0; j < sum.length; j++) {\n sum[j] = 0;\n }\n for (var i = 0; i < series.length; i++) {\n for (var j = 0; j < sum.length; j++) {\n sum[j] += series[i].data[j];\n }\n }\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data).concat(sum);\n }, []);\n}\nfunction getTouches(touches, opts, e) {\n var x, y;\n if (touches.clientX) {\n if (opts.rotate) {\n y = opts.height - touches.clientX * opts.pix;\n x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n } else {\n x = touches.clientX * opts.pix;\n y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n }\n } else {\n if (opts.rotate) {\n y = opts.height - touches.x * opts.pix;\n x = touches.y * opts.pix;\n } else {\n x = touches.x * opts.pix;\n y = touches.y * opts.pix;\n }\n }\n return {\n x: x,\n y: y\n };\n}\nfunction getSeriesDataItem(series, index, group) {\n var data = [];\n var newSeries = [];\n var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\n if (indexIsArr) {\n var tempSeries = filterSeries(series);\n for (var i = 0; i < group.length; i++) {\n newSeries.push(tempSeries[group[i]]);\n }\n } else {\n newSeries = series;\n }\n ;\n for (var _i = 0; _i < newSeries.length; _i++) {\n var item = newSeries[_i];\n var tmpindex = -1;\n if (indexIsArr) {\n tmpindex = index[_i];\n } else {\n tmpindex = index;\n }\n if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\n var seriesItem = {};\n seriesItem.color = item.color;\n seriesItem.type = item.type;\n seriesItem.style = item.style;\n seriesItem.pointShape = item.pointShape;\n seriesItem.disableLegend = item.disableLegend;\n seriesItem.name = item.name;\n seriesItem.show = item.show;\n seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\n data.push(seriesItem);\n }\n }\n return data;\n}\nfunction getMaxTextListLength(list, fontSize, context) {\n var lengthList = list.map(function (item) {\n return measureText(item, fontSize, context);\n });\n return Math.max.apply(null, lengthList);\n}\nfunction getRadarCoordinateSeries(length) {\n var eachAngle = 2 * Math.PI / length;\n var CoordinateSeries = [];\n for (var i = 0; i < length; i++) {\n CoordinateSeries.push(eachAngle * i);\n }\n return CoordinateSeries.map(function (item) {\n return -1 * item + Math.PI / 2;\n });\n}\nfunction getToolTipData(seriesData, opts, index, group, categories) {\n var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];\n var points = {};\n if (group.length > 0) {\n var filterPoints = [];\n for (var i = 0; i < group.length; i++) {\n filterPoints.push(calPoints[group[i]]);\n }\n points = filterPoints[0][index[0]];\n } else {\n for (var _i2 = 0; _i2 < calPoints.length; _i2++) {\n if (calPoints[_i2][index]) {\n points = calPoints[_i2][index];\n break;\n }\n }\n }\n ;\n var textList = seriesData.map(function (item) {\n var titleText = null;\n if (opts.categories && opts.categories.length > 0) {\n titleText = categories[index];\n }\n ;\n return {\n text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\n color: item.color\n };\n });\n var offset = {\n x: Math.round(points.x),\n y: Math.round(points.y)\n };\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction getMixToolTipData(seriesData, opts, index, categories) {\n var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\n color: item.color,\n disableLegend: item.disableLegend ? true : false\n };\n });\n textList = textList.filter(function (item) {\n if (item.disableLegend !== true) {\n return item;\n }\n });\n var offset = {\n x: Math.round(points),\n y: 0\n };\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\n var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var calPoints = opts.chartData.calPoints;\n var upColor = extra.color.upFill;\n var downColor = extra.color.downFill;\n //颜色顺序为开盘,收盘,最低,最高\n var color = [upColor, upColor, downColor, upColor];\n var textList = [];\n seriesData.map(function (item) {\n if (index == 0) {\n if (item.data[1] - item.data[0] < 0) {\n color[1] = downColor;\n } else {\n color[1] = upColor;\n }\n } else {\n if (item.data[0] < series[index - 1][1]) {\n color[0] = downColor;\n }\n if (item.data[1] < item.data[0]) {\n color[1] = downColor;\n }\n if (item.data[2] > series[index - 1][1]) {\n color[2] = upColor;\n }\n if (item.data[3] < series[index - 1][1]) {\n color[3] = downColor;\n }\n }\n var text1 = {\n text: '开盘:' + item.data[0],\n color: color[0]\n };\n var text2 = {\n text: '收盘:' + item.data[1],\n color: color[1]\n };\n var text3 = {\n text: '最低:' + item.data[2],\n color: color[2]\n };\n var text4 = {\n text: '最高:' + item.data[3],\n color: color[3]\n };\n textList.push(text1, text2, text3, text4);\n });\n var validCalPoints = [];\n var offset = {\n x: 0,\n y: 0\n };\n for (var i = 0; i < calPoints.length; i++) {\n var points = calPoints[i];\n if (typeof points[index] !== 'undefined' && points[index] !== null) {\n validCalPoints.push(points[index]);\n }\n }\n offset.x = Math.round(validCalPoints[0][0].x);\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction filterSeries(series) {\n var tempSeries = [];\n for (var i = 0; i < series.length; i++) {\n if (series[i].show == true) {\n tempSeries.push(series[i]);\n }\n }\n return tempSeries;\n}\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = {\n index: -1,\n group: []\n };\n var spacing = opts.chartData.eachSpacing / 2;\n var xAxisPoints = [];\n if (calPoints && calPoints.length > 0) {\n if (!opts.categories) {\n spacing = 0;\n } else {\n for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {\n xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\n }\n if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\n xAxisPoints = opts.chartData.xAxisPoints;\n }\n }\n if (isInExactChartArea(currentPoints, opts, config)) {\n if (!opts.categories) {\n var timePoints = Array(calPoints.length);\n for (var _i3 = 0; _i3 < calPoints.length; _i3++) {\n timePoints[_i3] = Array(calPoints[_i3].length);\n for (var j = 0; j < calPoints[_i3].length; j++) {\n timePoints[_i3][j] = Math.abs(calPoints[_i3][j].x - currentPoints.x);\n }\n }\n ;\n var pointValue = Array(timePoints.length);\n var pointIndex = Array(timePoints.length);\n for (var _i4 = 0; _i4 < timePoints.length; _i4++) {\n pointValue[_i4] = Math.min.apply(null, timePoints[_i4]);\n pointIndex[_i4] = timePoints[_i4].indexOf(pointValue[_i4]);\n }\n var minValue = Math.min.apply(null, pointValue);\n current.index = [];\n for (var _i5 = 0; _i5 < pointValue.length; _i5++) {\n if (pointValue[_i5] == minValue) {\n current.group.push(_i5);\n current.index.push(pointIndex[_i5]);\n }\n }\n ;\n } else {\n xAxisPoints.forEach(function (item, index) {\n if (currentPoints.x + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n }\n return current;\n}\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = {\n index: -1,\n group: []\n };\n var spacing = opts.chartData.eachSpacing / 2;\n var yAxisPoints = opts.chartData.yAxisPoints;\n if (calPoints && calPoints.length > 0) {\n if (isInExactChartArea(currentPoints, opts, config)) {\n yAxisPoints.forEach(function (item, index) {\n if (currentPoints.y + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n return current;\n}\nfunction findLegendIndex(currentPoints, legendData, opts) {\n var currentIndex = -1;\n var gap = 0;\n if (isInExactLegendArea(currentPoints, legendData.area)) {\n var points = legendData.points;\n var index = -1;\n for (var i = 0, len = points.length; i < len; i++) {\n var item = points[i];\n for (var j = 0; j < item.length; j++) {\n index += 1;\n var area = item[j]['area'];\n if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\n currentIndex = index;\n break;\n }\n }\n }\n return currentIndex;\n }\n return currentIndex;\n}\nfunction isInExactLegendArea(currentPoints, area) {\n return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\n}\nfunction isInExactChartArea(currentPoints, opts, config) {\n return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\n}\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\n var eachAngleArea = 2 * Math.PI / count;\n var currentIndex = -1;\n if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\n var fixAngle = function fixAngle(angle) {\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n if (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n };\n var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\n angle = -1 * angle;\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n var angleList = radarData.angleList.map(function (item) {\n item = fixAngle(-1 * item);\n return item;\n });\n angleList.forEach(function (item, index) {\n var rangeStart = fixAngle(item - eachAngleArea / 2);\n var rangeEnd = fixAngle(item + eachAngleArea / 2);\n if (rangeEnd < rangeStart) {\n rangeEnd += 2 * Math.PI;\n }\n if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\n currentIndex = index;\n }\n });\n }\n return currentIndex;\n}\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\n var currentIndex = -1;\n for (var i = 0, len = funnelData.series.length; i < len; i++) {\n var item = funnelData.series[i];\n if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\n var currentIndex = -1;\n for (var i = 0, len = wordData.length; i < len; i++) {\n var item = wordData[i];\n if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findMapChartCurrentIndex(currentPoints, opts) {\n var currentIndex = -1;\n var cData = opts.chartData.mapData;\n var data = opts.series;\n var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\n var poi = [tmp.x, tmp.y];\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i].geometry.coordinates;\n if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.rose && opts.extra.rose.offsetAngle) {\n angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getPieDataPoints(pieData.series);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.pie && opts.extra.pie.offsetAngle) {\n angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\n }\n if (opts.extra.ring && opts.extra.ring.offsetAngle) {\n angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\nfunction isInExactPieChartArea(currentPoints, center, radius) {\n return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\n}\nfunction splitPoints(points, eachSeries) {\n var newPoints = [];\n var items = [];\n points.forEach(function (item, index) {\n if (eachSeries.connectNulls) {\n if (item !== null) {\n items.push(item);\n }\n } else {\n if (item !== null) {\n items.push(item);\n } else {\n if (items.length) {\n newPoints.push(items);\n }\n items = [];\n }\n }\n });\n if (items.length) {\n newPoints.push(items);\n }\n return newPoints;\n}\nfunction calLegendData(series, opts, config, chartData, context) {\n var legendData = {\n area: {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: 0,\n y: 0\n },\n width: 0,\n height: 0,\n wholeWidth: 0,\n wholeHeight: 0\n },\n points: [],\n widthArr: [],\n heightArr: []\n };\n if (opts.legend.show === false) {\n chartData.legendData = legendData;\n return legendData;\n }\n var padding = opts.legend.padding * opts.pix;\n var margin = opts.legend.margin * opts.pix;\n var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n var legendList = [];\n var widthCount = 0;\n var widthCountArr = [];\n var currentRow = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var legendText = item.legendText ? item.legendText : item.name;\n var itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n widthCount = itemWidth;\n currentRow = [item];\n } else {\n widthCount += itemWidth;\n currentRow.push(item);\n }\n }\n if (currentRow.length) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n legendData.widthArr = widthCountArr;\n var legendWidth = Math.max.apply(null, widthCountArr);\n switch (opts.legend.float) {\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\n legendData.area.end.x = opts.width - opts.area[1];\n break;\n default:\n legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\n legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;\n }\n legendData.area.width = legendWidth + 2 * padding;\n legendData.area.wholeWidth = legendWidth + 2 * padding;\n legendData.area.height = legendList.length * lineHeight + 2 * padding;\n legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\n legendData.points = legendList;\n }\n } else {\n var len = series.length;\n var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\n var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\n legendData.area.height = maxLength * lineHeight + padding * 2;\n legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\n switch (opts.legend.float) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n default:\n legendData.area.start.y = (opts.height - legendData.area.height) / 2;\n legendData.area.end.y = (opts.height + legendData.area.height) / 2;\n }\n var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);\n var _currentRow = [];\n for (var _i6 = 0; _i6 < lineNum; _i6++) {\n var temp = series.slice(_i6 * maxLength, _i6 * maxLength + maxLength);\n _currentRow.push(temp);\n }\n legendData.points = _currentRow;\n if (_currentRow.length) {\n for (var _i7 = 0; _i7 < _currentRow.length; _i7++) {\n var _item = _currentRow[_i7];\n var maxWidth = 0;\n for (var j = 0; j < _item.length; j++) {\n var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (_itemWidth > maxWidth) {\n maxWidth = _itemWidth;\n }\n }\n legendData.widthArr.push(maxWidth);\n legendData.heightArr.push(_item.length * lineHeight + padding * 2);\n }\n var _legendWidth = 0;\n for (var _i8 = 0; _i8 < legendData.widthArr.length; _i8++) {\n _legendWidth += legendData.widthArr[_i8];\n }\n legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\n legendData.area.wholeWidth = legendData.area.width + padding;\n }\n }\n switch (opts.legend.position) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendData.area.width;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\n legendData.area.end.x = opts.width - opts.area[1];\n break;\n }\n chartData.legendData = legendData;\n return legendData;\n}\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\n var result = {\n angle: 0,\n xAxisHeight: config.xAxisHeight\n };\n var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n var categoriesTextLenth = categories.map(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n return measureText(String(xitem), fontSize, context);\n });\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\n if (opts.xAxis.rotateLabel == true) {\n result.angle = opts.xAxis.rotateAngle * Math.PI / 180;\n var tempHeight = 2 * config.xAxisTextPadding + Math.abs(maxTextLength * Math.sin(result.angle));\n tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;\n if (opts.enableScroll == true && opts.xAxis.scrollShow == true) {\n tempHeight += 12 * opts.pix;\n }\n result.xAxisHeight = tempHeight;\n }\n if (opts.xAxis.disabled) {\n result.xAxisHeight = 0;\n }\n return result;\n}\nfunction getXAxisTextList(series, opts, config, stack) {\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if ((0, _typeof2.default)(item) === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[0]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n var minData = 0;\n var maxData = 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n //为了兼容v1.9.0之前的项目\n if (index > -1) {\n if (typeof opts.xAxis.data[index].min === 'number') {\n minData = Math.min(opts.xAxis.data[index].min, minData);\n }\n if (typeof opts.xAxis.data[index].max === 'number') {\n maxData = Math.max(opts.xAxis.data[index].max, maxData);\n }\n } else {\n if (typeof opts.xAxis.min === 'number') {\n minData = Math.min(opts.xAxis.min, minData);\n }\n if (typeof opts.xAxis.max === 'number') {\n maxData = Math.max(opts.xAxis.max, maxData);\n }\n }\n if (minData === maxData) {\n var rangeSpan = maxData || 10;\n maxData += rangeSpan;\n }\n //var dataRange = getDataRange(minData, maxData);\n var minRange = minData;\n var maxRange = maxData;\n var range = [];\n var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\n for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range;\n}\nfunction calXAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\"\n }, opts.extra.bar);\n var result = {\n angle: 0,\n xAxisHeight: config.xAxisHeight\n };\n result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\n result.rangesFormat = result.ranges.map(function (item) {\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\n item = util.toFixed(item, 2);\n return item;\n });\n var xAxisScaleValues = result.ranges.map(function (item) {\n // 如果刻度值是浮点数,则保留两位小数\n item = util.toFixed(item, 2);\n // 若有自定义格式则调用自定义的格式化函数\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\n return item;\n });\n result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\n // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\\结束点以及总长\n var eachSpacing = result.eachSpacing;\n var textLength = xAxisScaleValues.map(function (item) {\n return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\n });\n // get max length of categories text\n var maxTextLength = Math.max.apply(this, textLength);\n // 如果刻度值文本内容过长,则将其逆时针旋转45°\n if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\n result.angle = 45 * Math.PI / 180;\n result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\n }\n if (opts.xAxis.disabled === true) {\n result.xAxisHeight = 0;\n }\n return result;\n}\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var radarOption = opts.extra.radar || {};\n radarOption.max = radarOption.max || 0;\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var data = [];\n var _loop2 = function _loop2(i) {\n var each = series[i];\n var listItem = {};\n listItem.color = each.color;\n listItem.legendShape = each.legendShape;\n listItem.pointShape = each.pointShape;\n listItem.data = [];\n each.data.forEach(function (item, index) {\n var tmp = {};\n tmp.angle = angleList[index];\n tmp.proportion = item / maxData;\n tmp.value = item;\n tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\n listItem.data.push(tmp);\n });\n data.push(listItem);\n };\n for (var i = 0; i < series.length; i++) {\n _loop2(i);\n }\n return data;\n}\nfunction getPieDataPoints(series, radius) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var count = 0;\n var _start_ = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n }\n for (var _i9 = 0; _i9 < series.length; _i9++) {\n var _item2 = series[_i9];\n _item2.data = _item2.data === null ? 0 : _item2.data;\n if (count === 0) {\n _item2._proportion_ = 1 / series.length * process;\n } else {\n _item2._proportion_ = _item2.data / count * process;\n }\n _item2._radius_ = radius;\n }\n for (var _i10 = 0; _i10 < series.length; _i10++) {\n var _item3 = series[_i10];\n _item3._start_ = _start_;\n _start_ += 2 * _item3._proportion_ * Math.PI;\n }\n return series;\n}\nfunction getFunnelDataPoints(series, radius, option, eachSpacing) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n for (var i = 0; i < series.length; i++) {\n if (option.type == 'funnel') {\n series[i].radius = series[i].data / series[0].data * radius * process;\n } else {\n series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;\n }\n series[i]._proportion_ = series[i].data / series[0].data;\n }\n // if(option.type !== 'pyramid'){\n // series.reverse();\n // }\n return series;\n}\nfunction getRoseDataPoints(series, type, minRadius, radius) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var count = 0;\n var _start_ = 0;\n var dataArr = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n dataArr.push(item.data);\n }\n var minData = Math.min.apply(null, dataArr);\n var maxData = Math.max.apply(null, dataArr);\n var radiusLength = radius - minRadius;\n for (var _i11 = 0; _i11 < series.length; _i11++) {\n var _item4 = series[_i11];\n _item4.data = _item4.data === null ? 0 : _item4.data;\n if (count === 0) {\n _item4._proportion_ = 1 / series.length * process;\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._proportion_ = _item4.data / count * process;\n if (type == 'area') {\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._rose_proportion_ = _item4.data / count * process;\n }\n }\n _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;\n }\n for (var _i12 = 0; _i12 < series.length; _i12++) {\n var _item5 = series[_i12];\n _item5._start_ = _start_;\n _start_ += 2 * _item5._rose_proportion_ * Math.PI;\n }\n return series;\n}\nfunction getArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.direction == 'ccw') {\n if (arcbarOption.startAngle < arcbarOption.endAngle) {\n totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (arcbarOption.direction == 'ccw') {\n item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getGaugeArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\n var totalAngle = startAngle - endAngle + 1;\n var tempStartAngle = startAngle;\n for (var i = 0; i < categories.length; i++) {\n categories[i].value = categories[i].value === null ? 0 : categories[i].value;\n categories[i]._startAngle_ = tempStartAngle;\n categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\n if (categories[i]._endAngle_ >= 2) {\n categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\n }\n tempStartAngle = categories[i]._endAngle_;\n }\n return categories;\n}\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\n var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n if (gaugeOption.pointer.color == 'auto') {\n for (var _i13 = 0; _i13 < categories.length; _i13++) {\n if (item.data <= categories[_i13].value) {\n item.color = categories[_i13].color;\n break;\n }\n }\n } else {\n item.color = gaugeOption.pointer.color;\n }\n var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\n item._oldAngle_ = gaugeOption.oldAngle;\n if (gaugeOption.oldAngle < gaugeOption.endAngle) {\n item._oldAngle_ += 2;\n }\n if (item.data >= gaugeOption.oldData) {\n item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\n } else {\n item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getPieTextMaxLength(series, config, context, opts) {\n series = getPieDataPoints(series);\n var maxLength = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\n maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\n }\n return maxLength;\n}\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n if (opts.type == 'mix') {\n seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\n } else {\n seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n }\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\n }\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n item.width = eachSpacing - 2 * categoryGap;\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (index > 0) {\n item.width -= border;\n }\n return item;\n });\n}\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\nfunction getXAxisPoints(categories, opts, config) {\n var spacingValid = opts.width - opts.area[1] - opts.area[3];\n var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\n if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\n dataCount -= 1;\n }\n var widthRatio = 0;\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n widthRatio = opts.extra.mount.widthRatio - 1;\n dataCount += widthRatio;\n }\n var eachSpacing = spacingValid / dataCount;\n var xAxisPoints = [];\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n categories.forEach(function (item, index) {\n xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);\n });\n if (opts.xAxis.boundaryGap !== 'justify') {\n if (opts.enableScroll === true) {\n xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);\n } else {\n xAxisPoints.push(endX);\n }\n }\n return {\n xAxisPoints: xAxisPoints,\n startX: startX,\n endX: endX,\n eachSpacing: eachSpacing\n };\n}\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var cPoints = [];\n item.forEach(function (items, indexs) {\n var point = {};\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n var value = items.value || items;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n cPoints.push(point);\n });\n points.push(cPoints);\n }\n });\n return points;\n}\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var boundaryGap = 'center';\n if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n var xranges, xminRange, xmaxRange;\n xranges = [].concat(opts.chartData.xAxisData.ranges);\n xminRange = xranges.shift();\n xmaxRange = xranges.pop();\n value = item[1];\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n if (opts.type == 'bubble') {\n point.r = item[2];\n point.t = item[3];\n }\n } else {\n value = item.value;\n }\n }\n if (boundaryGap == 'center') {\n point.x += eachSpacing / 2;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\nfunction getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n var mountWidth = eachSpacing * mountOption.widthRatio;\n series.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n point.x += eachSpacing / 2;\n var value = item.data;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n point.value = value;\n point.width = mountWidth;\n points.push(point);\n }\n });\n return points;\n}\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validWidth * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.height = height;\n point.value = value;\n point.x = height + opts.area[3];\n points.push(point);\n }\n });\n return points;\n}\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n point.y0 = opts.height - Math.round(heightc) - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.height = height - heightc;\n point.x = opts.area[3] + height;\n point.x0 = opts.area[3] + heightc;\n points.push(point);\n }\n });\n return points;\n}\nfunction getYAxisTextList(series, opts, config, stack, yData) {\n var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if ((0, _typeof2.default)(item) === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[1]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n var minData = yData.min || 0;\n var maxData = yData.max || 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n if (minData === maxData) {\n if (maxData == 0) {\n maxData = 10;\n } else {\n minData = 0;\n }\n }\n var dataRange = getDataRange(minData, maxData);\n var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;\n var maxRange = yData.max === undefined || yData.max === null ? dataRange.maxRange : yData.max;\n var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\n var range = [];\n for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range.reverse();\n}\nfunction calYAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\"\n }, opts.extra.column);\n //如果是多Y轴,重新计算\n var YLength = opts.yAxis.data.length;\n var newSeries = new Array(YLength);\n if (YLength > 0) {\n for (var i = 0; i < YLength; i++) {\n newSeries[i] = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].index == i) {\n newSeries[i].push(series[j]);\n }\n }\n }\n var rangesArr = new Array(YLength);\n var rangesFormatArr = new Array(YLength);\n var yAxisWidthArr = new Array(YLength);\n var _loop3 = function _loop3(_i14) {\n var yData = opts.yAxis.data[_i14];\n //如果总开关不显示,强制每个Y轴为不显示\n if (opts.yAxis.disabled == true) {\n yData.disabled = true;\n }\n if (yData.type === 'categories') {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {\n return val + (yData.unit || '');\n };\n }\n yData.categories = yData.categories || opts.categories;\n rangesArr[_i14] = yData.categories;\n } else {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {\n return util.toFixed(val, yData.tofix || 0) + (yData.unit || '');\n };\n }\n rangesArr[_i14] = getYAxisTextList(newSeries[_i14], opts, config, columnstyle.type, yData, _i14);\n }\n var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\n yAxisWidthArr[_i14] = {\n position: yData.position ? yData.position : 'left',\n width: 0\n };\n rangesFormatArr[_i14] = rangesArr[_i14].map(function (items, index) {\n items = yData.formatter(items, index, opts);\n yAxisWidthArr[_i14].width = Math.max(yAxisWidthArr[_i14].width, measureText(items, yAxisFontSizes, context) + 5);\n return items;\n });\n var calibration = yData.calibration ? 4 * opts.pix : 0;\n yAxisWidthArr[_i14].width += calibration + 3 * opts.pix;\n if (yData.disabled === true) {\n yAxisWidthArr[_i14].width = 0;\n }\n };\n for (var _i14 = 0; _i14 < YLength; _i14++) {\n _loop3(_i14);\n }\n } else {\n var rangesArr = new Array(1);\n var rangesFormatArr = new Array(1);\n var yAxisWidthArr = new Array(1);\n if (opts.type === 'bar') {\n rangesArr[0] = opts.categories;\n } else {\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\n }\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0\n };\n if (opts.yAxis.disabled === true) {\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0\n };\n opts.yAxis.data[0] = {\n disabled: true\n };\n } else {\n opts.yAxis.data[0] = {\n disabled: false,\n position: 'left',\n max: opts.yAxis.max,\n min: opts.yAxis.min,\n formatter: function formatter(val, index, opts) {\n return val;\n }\n };\n if (opts.type === 'bar') {\n opts.yAxis.data[0].categories = opts.categories;\n opts.yAxis.data[0].type = 'categories';\n }\n }\n var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\n rangesFormatArr[0] = rangesArr[0].map(function (item, index) {\n item = opts.yAxis.data[0].formatter(item, index, opts);\n yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\n return item;\n });\n yAxisWidthArr[0].width += 3 * opts.pix;\n }\n return {\n rangesFormat: rangesFormatArr,\n ranges: rangesArr,\n yAxisWidth: yAxisWidthArr\n };\n}\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\n var ranges = [].concat(opts.chartData.yAxisData.ranges);\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var minAxis = opts.area[0];\n var items = [];\n for (var i = 0; i < ranges.length; i++) {\n var maxVal = Math.max.apply(this, ranges[i]);\n var minVal = Math.min.apply(this, ranges[i]);\n var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\n item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0);\n items.push(String(item));\n }\n return items;\n}\nfunction calMarkLineData(points, opts) {\n var minRange, maxRange;\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n for (var i = 0; i < points.length; i++) {\n points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\n var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\n minRange = range.pop();\n maxRange = range.shift();\n var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\n points[i].y = opts.height - Math.round(height) - opts.area[2];\n }\n return points;\n}\nfunction contextRotate(context, opts) {\n if (opts.rotateLock !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n } else if (opts._rotate_ !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n opts._rotate_ = true;\n }\n}\nfunction drawPointShape(points, color, shape, context, opts) {\n context.beginPath();\n if (opts.dataPointShapeType == 'hollow') {\n context.setStrokeStyle(color);\n context.setFillStyle(opts.background);\n context.setLineWidth(2 * opts.pix);\n } else {\n context.setStrokeStyle(\"#ffffff\");\n context.setFillStyle(color);\n context.setLineWidth(1 * opts.pix);\n }\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'none') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n}\nfunction drawRingTitle(opts, config, context, center) {\n var titlefontSize = opts.title.fontSize || config.titleFontSize;\n var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\n var title = opts.title.name || '';\n var subtitle = opts.subtitle.name || '';\n var titleFontColor = opts.title.color || opts.fontColor;\n var subtitleFontColor = opts.subtitle.color || opts.fontColor;\n var titleHeight = title ? titlefontSize : 0;\n var subtitleHeight = subtitle ? subtitlefontSize : 0;\n var margin = 5;\n if (subtitle) {\n var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\n var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;\n var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\n if (title) {\n startY += (titleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(subtitlefontSize * opts.pix);\n context.setFillStyle(subtitleFontColor);\n context.fillText(subtitle, startX, startY);\n context.closePath();\n context.stroke();\n }\n if (title) {\n var _textWidth = measureText(title, titlefontSize * opts.pix, context);\n var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\n var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\n if (subtitle) {\n _startY -= (subtitleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(titlefontSize * opts.pix);\n context.setFillStyle(titleFontColor);\n context.fillText(title, _startX, _startY);\n context.closePath();\n context.stroke();\n }\n}\nfunction drawPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if ((0, _typeof2.default)(data[index]) === 'object' && data[index] !== null) {\n if (data[index].constructor.toString().indexOf('Array') > -1) {\n value = data[index][1];\n } else {\n value = data[index].value;\n }\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\nfunction drawMountPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series[index].textColor || opts.fontColor);\n var value = item.value;\n var formatVal = series[index].formatter ? series[index].formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\nfunction drawBarPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if ((0, _typeof2.default)(data[index]) === 'object' && data[index] !== null) {\n value = data[index].value;\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('left');\n context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);\n context.closePath();\n context.stroke();\n }\n });\n}\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\n radius = radius < 10 ? 10 : radius;\n var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\n var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\n var nowAngle = gaugeOption.startAngle;\n var nowNumber = gaugeOption.startNumber;\n for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\n var pos = {\n x: radius * Math.cos(nowAngle * Math.PI),\n y: radius * Math.sin(nowAngle * Math.PI)\n };\n var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber, i, opts) : nowNumber;\n pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\n pos.y += centerPosition.y;\n var startX = pos.x;\n var startY = pos.y;\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\n context.fillText(labelText, startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n nowAngle += splitAngle;\n if (nowAngle >= 2) {\n nowAngle = nowAngle % 2;\n }\n nowNumber += splitNumber;\n }\n}\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\n var radarOption = opts.extra.radar || {};\n angleList.forEach(function (angle, index) {\n if (radarOption.labelPointShow === true && opts.categories[index] !== '') {\n var posPoint = {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle)\n };\n var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);\n context.setFillStyle(radarOption.labelPointColor);\n context.beginPath();\n context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);\n context.closePath();\n context.fill();\n }\n var pos = {\n x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),\n y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle)\n };\n var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\n var startX = posRelativeCanvas.x;\n var startY = posRelativeCanvas.y;\n if (util.approximatelyEqual(pos.x, 0)) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\n } else if (pos.x < 0) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context);\n }\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(radarOption.labelColor || opts.fontColor);\n context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n });\n}\nfunction drawPieText(series, opts, config, context, radius, center) {\n var lineRadius = config.pieChartLinePadding;\n var textObjectCollection = [];\n var lastTextObject = null;\n var seriesConvert = series.map(function (item, index) {\n var text = item.formatter ? item.formatter(item, index, series, opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\n text = item.labelText ? item.labelText : text;\n var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\n if (item._rose_proportion_) {\n arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\n }\n var color = item.color;\n var radius = item._radius_;\n return {\n arc: arc,\n text: text,\n color: color,\n radius: radius,\n textColor: item.textColor,\n textSize: item.textSize,\n labelShow: item.labelShow\n };\n });\n for (var i = 0; i < seriesConvert.length; i++) {\n var item = seriesConvert[i];\n // line end\n var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\n var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\n // line start\n var orginX2 = Math.cos(item.arc) * item.radius;\n var orginY2 = Math.sin(item.arc) * item.radius;\n // text start\n var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\n var orginY3 = orginY1;\n var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\n var startY = orginY3;\n if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\n x: orginX3\n })) {\n if (orginX3 > 0) {\n startY = Math.min(orginY3, lastTextObject.start.y);\n } else if (orginX1 < 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n if (orginY3 > 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n startY = Math.min(orginY3, lastTextObject.start.y);\n }\n }\n }\n if (orginX3 < 0) {\n orginX3 -= textWidth;\n }\n var textObject = {\n lineStart: {\n x: orginX2,\n y: orginY2\n },\n lineEnd: {\n x: orginX1,\n y: orginY1\n },\n start: {\n x: orginX3,\n y: startY\n },\n width: textWidth,\n height: config.fontSize,\n text: item.text,\n color: item.color,\n textColor: item.textColor,\n textSize: item.textSize\n };\n lastTextObject = avoidCollision(textObject, lastTextObject);\n textObjectCollection.push(lastTextObject);\n }\n for (var _i15 = 0; _i15 < textObjectCollection.length; _i15++) {\n if (seriesConvert[_i15].labelShow === false) {\n continue;\n }\n var _item6 = textObjectCollection[_i15];\n var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);\n var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);\n var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);\n context.setLineWidth(1 * opts.pix);\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.beginPath();\n context.setStrokeStyle(_item6.color);\n context.setFillStyle(_item6.color);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;\n var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\n context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(textPosition.x + _item6.width, textPosition.y);\n context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.setFillStyle(_item6.textColor || opts.fontColor);\n context.fillText(_item6.text, textStartX, textPosition.y + 3);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n}\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\n var toolTipOption = opts.extra.tooltip || {};\n toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\n toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(offsetX, startY);\n context.lineTo(offsetX, endY);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.xAxisLabel) {\n var labelText = opts.categories[opts.tooltip.index];\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var textX = offsetX - 0.5 * textWidth;\n var textY = endY + 2 * opts.pix;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);\n context.closePath();\n context.stroke();\n }\n}\nfunction drawMarkLine(opts, config, context) {\n var markLineOption = assign({}, {\n type: 'solid',\n dashLength: 4,\n data: []\n }, opts.extra.markLine);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var points = calMarkLineData(markLineOption.data, opts);\n for (var i = 0; i < points.length; i++) {\n var item = assign({}, {\n lineColor: '#DE4A42',\n showLabel: false,\n labelFontColor: '#666666',\n labelBgColor: '#DFE8FF',\n labelBgOpacity: 0.8,\n labelAlign: 'left',\n labelOffsetX: 0,\n labelOffsetY: 0\n }, points[i]);\n if (markLineOption.type == 'dash') {\n context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\n }\n context.setStrokeStyle(item.lineColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, item.y);\n context.lineTo(endX, item.y);\n context.stroke();\n context.setLineDash([]);\n if (item.showLabel) {\n var labelText = item.labelText ? item.labelText : item.value;\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var bgWidth = textWidth + config.toolTipPadding * 2;\n var bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];\n bgStartX += item.labelOffsetX;\n var bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;\n bgStartY += item.labelOffsetY;\n var textX = bgStartX + config.toolTipPadding;\n var textY = item.y;\n context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\n context.setStrokeStyle(item.labelBgColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.setFontSize(config.fontSize);\n context.setTextAlign('left');\n context.setFillStyle(item.labelFontColor);\n context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding / 2);\n context.stroke();\n context.setTextAlign('left');\n }\n }\n}\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n gridType: 'solid',\n dashLength: 4\n }, opts.extra.tooltip);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, opts.tooltip.offset.y);\n context.lineTo(endX, opts.tooltip.offset.y);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.yAxisLabel) {\n var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\n var widthArr = opts.chartData.yAxisData.yAxisWidth;\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n for (var i = 0; i < labelText.length; i++) {\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText[i], config.fontSize, context);\n var bgStartX = void 0,\n bgEndX = void 0,\n bgWidth = void 0;\n if (widthArr[i].position == 'left') {\n bgStartX = tStartLeft - (textWidth + config.toolTipPadding * 2) - 2 * opts.pix;\n bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\n } else {\n bgStartX = tStartRight + 2 * opts.pix;\n bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);\n }\n bgWidth = bgEndX - bgStartX;\n var textX = bgStartX + (bgWidth - textWidth) / 2;\n var textY = opts.tooltip.offset.y;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\n context.closePath();\n context.stroke();\n if (widthArr[i].position == 'left') {\n tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\n }\n }\n }\n}\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08,\n activeWidth: eachSpacing\n }, opts.extra.column);\n toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08\n }, opts.extra.bar);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n showBox: true,\n showArrow: true,\n showCategory: false,\n bgColor: '#000000',\n bgOpacity: 0.7,\n borderColor: '#000000',\n borderWidth: 0,\n borderRadius: 0,\n borderOpacity: 0.7,\n fontColor: '#FFFFFF',\n splitLine: true\n }, opts.extra.tooltip);\n if (toolTipOption.showCategory == true && opts.categories) {\n textList.unshift({\n text: opts.categories[opts.tooltip.index],\n color: null\n });\n }\n var legendWidth = 4 * opts.pix;\n var legendMarginRight = 5 * opts.pix;\n var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\n var isOverRightBorder = false;\n if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\n if (toolTipOption.splitLine == true) {\n drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\n }\n }\n offset = assign({\n x: 0,\n y: 0\n }, offset);\n offset.y -= 8 * opts.pix;\n var textWidth = textList.map(function (item) {\n return measureText(item.text, config.fontSize, context);\n });\n var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);\n var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;\n if (toolTipOption.showBox == false) {\n return;\n }\n // if beyond the right border\n if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\n isOverRightBorder = true;\n }\n if (toolTipHeight + offset.y > opts.height) {\n offset.y = opts.height - toolTipHeight;\n }\n // draw background rect\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));\n context.setLineWidth(toolTipOption.borderWidth * opts.pix);\n context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\n var radius = toolTipOption.borderRadius;\n if (isOverRightBorder) {\n // 增加左侧仍然超出的判断\n if (toolTipWidth + arrowWidth > opts.width) {\n offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width);\n }\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n }\n context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n } else {\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n }\n context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n }\n context.closePath();\n context.fill();\n if (toolTipOption.borderWidth > 0) {\n context.stroke();\n }\n // draw legend\n textList.forEach(function (item, index) {\n if (item.color !== null) {\n context.beginPath();\n context.setFillStyle(item.color);\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;\n }\n context.fillRect(startX, startY, legendWidth, config.fontSize);\n // 圆形图例请注释上行,并把下行取消注释\n // context.arc(startX + legendWidth / 2 , startY + opts.fontSize / 2, 4 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n }\n });\n // draw text list\n textList.forEach(function (item, index) {\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;\n }\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.fontColor);\n context.fillText(item.text, startX, startY + config.fontSize);\n context.closePath();\n context.stroke();\n });\n}\nfunction drawColumnDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.column);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord[0],\n r1 = _columnOption$barBord[1],\n r2 = _columnOption$barBord[2],\n r3 = _columnOption$barBord[3];\n var minRadius = Math.min(width / 2, _height / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n }\n ;\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i16 = 0; _i16 < points.length; _i16++) {\n var _item7 = points[_i16];\n if (_item7 !== null && _i16 > leftNum && _i16 < rightNum) {\n context.beginPath();\n var fillColor = _item7.color || eachSeries.color;\n var startX = _item7.x - _item7.width / 2 + 1;\n var height = opts.height - _item7.y - opts.area[2];\n var height0 = opts.height - _item7.y0 - opts.area[2];\n if (seriesIndex > 0) {\n height -= height0;\n }\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item7.y);\n context.fillRect(startX, _item7.y, _item7.width, height);\n context.closePath();\n context.fill();\n }\n }\n ;\n break;\n case 'meter':\n // 绘制温度计数据图\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\n for (var _i17 = 0; _i17 < points.length; _i17++) {\n var _item8 = points[_i17];\n if (_item8 !== null && _i17 > leftNum && _i17 < rightNum) {\n //画背景颜色\n context.beginPath();\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(columnOption.meterBorder * opts.pix);\n }\n if (seriesIndex == 0) {\n context.setFillStyle(columnOption.meterFillColor);\n } else {\n context.setFillStyle(_item8.color || eachSeries.color);\n }\n var startX = _item8.x - _item8.width / 2;\n var height = opts.height - _item8.y - opts.area[2];\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var _left = startX;\n var _top = _item8.y;\n var _width = _item8.width;\n var _height2 = opts.height - opts.area[2] - _item8.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [_width / 2, _width / 2, 0, 0];\n }\n var _columnOption$barBord2 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n _r = _columnOption$barBord2[0],\n _r2 = _columnOption$barBord2[1],\n _r3 = _columnOption$barBord2[2],\n _r4 = _columnOption$barBord2[3];\n var _minRadius = Math.min(_width / 2, _height2 / 2);\n _r = _r > _minRadius ? _minRadius : _r;\n _r2 = _r2 > _minRadius ? _minRadius : _r2;\n _r3 = _r3 > _minRadius ? _minRadius : _r3;\n _r4 = _r4 > _minRadius ? _minRadius : _r4;\n _r = _r < 0 ? 0 : _r;\n _r2 = _r2 < 0 ? 0 : _r2;\n _r3 = _r3 < 0 ? 0 : _r3;\n _r4 = _r4 < 0 ? 0 : _r4;\n context.arc(_left + _r, _top + _r, _r, -Math.PI, -Math.PI / 2);\n context.arc(_left + _width - _r2, _top + _r2, _r2, -Math.PI / 2, 0);\n context.arc(_left + _width - _r3, _top + _height2 - _r3, _r3, 0, Math.PI / 2);\n context.arc(_left + _r4, _top + _height2 - _r4, _r4, Math.PI / 2, Math.PI);\n context.fill();\n } else {\n context.moveTo(startX, _item8.y);\n context.lineTo(startX + _item8.width, _item8.y);\n context.lineTo(startX + _item8.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, _item8.y);\n context.fill();\n }\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.closePath();\n context.stroke();\n }\n }\n }\n break;\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n case 'meter':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n }\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawMountDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var mountOption = assign({}, {\n type: 'mount',\n widthRatio: 1,\n borderWidth: 1,\n barBorderCircle: false,\n barBorderRadius: [],\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.mount);\n mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;\n mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n switch (mountOption.type) {\n case 'bar':\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || series[i].color;\n var strokeColor = item.color || series[i].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4 || mountOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height3 = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2;\n if (mountOption.barBorderCircle) {\n mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _mountOption$barBorde = (0, _slicedToArray2.default)(mountOption.barBorderRadius, 4),\n r0 = _mountOption$barBorde[0],\n r1 = _mountOption$barBorde[1],\n r2 = _mountOption$barBorde[2],\n r3 = _mountOption$barBorde[3];\n var minRadius = Math.min(width / 2, _height3 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n }\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.closePath();\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'triangle':\n for (var _i18 = 0; _i18 < points.length; _i18++) {\n var _item9 = points[_i18];\n if (_item9 !== null && _i18 > leftNum && _i18 < rightNum) {\n var startX = _item9.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item9.y - opts.area[2];\n context.beginPath();\n var fillColor = _item9.color || series[_i18].color;\n var strokeColor = _item9.color || series[_i18].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item9.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.lineTo(_item9.x, _item9.y);\n context.lineTo(startX + _item9.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'mount':\n for (var _i19 = 0; _i19 < points.length; _i19++) {\n var _item10 = points[_i19];\n if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {\n var startX = _item10.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item10.y - opts.area[2];\n context.beginPath();\n var fillColor = _item10.color || series[_i19].color;\n var strokeColor = _item10.color || series[_i19].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item10.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.bezierCurveTo(_item10.x - _item10.width / 4, opts.height - opts.area[2], _item10.x - _item10.width / 4, _item10.y, _item10.x, _item10.y);\n context.bezierCurveTo(_item10.x + _item10.width / 4, _item10.y, _item10.x + _item10.width / 4, opts.height - opts.area[2], startX + _item10.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'sharp':\n for (var _i20 = 0; _i20 < points.length; _i20++) {\n var _item11 = points[_i20];\n if (_item11 !== null && _i20 > leftNum && _i20 < rightNum) {\n var startX = _item11.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item11.y - opts.area[2];\n context.beginPath();\n var fillColor = _item11.color || series[_i20].color;\n var strokeColor = _item11.color || series[_i20].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item11.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.quadraticCurveTo(_item11.x - 0, opts.height - opts.area[2] - height / 4, _item11.x, _item11.y);\n context.quadraticCurveTo(_item11.x + 0, opts.height - opts.area[2] - height / 4, startX + _item11.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n }\n if (opts.dataLabel !== false && process === 1) {\n var _ranges, _minRange, _maxRange;\n _ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n _minRange = _ranges.pop();\n _maxRange = _ranges.shift();\n var points = getMountDataPoints(series, _minRange, _maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n drawMountPointText(points, series, config, context, opts);\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: points,\n eachSpacing: eachSpacing\n };\n}\nfunction drawBarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var yAxisPoints = [];\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;\n for (var i = 0; i < opts.categories.length; i++) {\n yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\n }\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.bar);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = yAxisPoints.length + 2;\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var _i21 = 0; _i21 < points.length; _i21++) {\n var item = points[_i21];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && _i21 > leftNum && _i21 < rightNum) {\n //var startX = item.x - item.width / 2;\n var startX = opts.area[3];\n var startY = item.y - item.width / 2;\n var height = item.height;\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var width = item.width;\n var top = item.y - item.width / 2;\n var _height4 = item.height;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord3 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord3[0],\n r1 = _columnOption$barBord3[1],\n r2 = _columnOption$barBord3[2],\n r3 = _columnOption$barBord3[3];\n var minRadius = Math.min(width / 2, _height4 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\n context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\n context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\n context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, startY);\n context.lineTo(item.x, startY);\n context.lineTo(item.x, startY + item.width);\n context.lineTo(startX, startY + item.width);\n context.lineTo(startX, startY);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n }\n ;\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i22 = 0; _i22 < points.length; _i22++) {\n var _item12 = points[_i22];\n if (_item12 !== null && _i22 > leftNum && _i22 < rightNum) {\n context.beginPath();\n var fillColor = _item12.color || eachSeries.color;\n var startX = _item12.x0;\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item12.y - _item12.width / 2);\n context.fillRect(startX, _item12.y - _item12.width / 2, _item12.height, _item12.width);\n context.closePath();\n context.fill();\n }\n }\n ;\n break;\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;\n }\n });\n }\n return {\n yAxisPoints: yAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var candleOption = assign({}, {\n color: {},\n average: {}\n }, opts.extra.candle);\n candleOption.color = assign({}, {\n upLine: '#f04864',\n upFill: '#f04864',\n downLine: '#2fc25b',\n downFill: '#2fc25b'\n }, candleOption.color);\n candleOption.average = assign({}, {\n show: false,\n name: [],\n day: [],\n color: config.color\n }, candleOption.average);\n opts.extra.candle = candleOption;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n //画均线\n if (candleOption.average.show || seriesMA) {\n //Merge pull request !12 from 邱贵翔\n seriesMA.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points = splitPointList[i];\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(1);\n if (_points.length === 1) {\n context.moveTo(_points[0].x, _points[0].y);\n context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points[0].x, _points[0].y);\n var startPoint = 0;\n for (var j = 0; j < _points.length; j++) {\n var item = _points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n context.moveTo(_points[0].x, _points[0].y);\n }\n context.closePath();\n context.stroke();\n }\n });\n }\n //画K线\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList[0].length; i++) {\n if (i > leftNum && i < rightNum) {\n var item = splitPointList[0][i];\n context.beginPath();\n //如果上涨\n if (data[i][1] - data[i][0] > 0) {\n context.setStrokeStyle(candleOption.color.upLine);\n context.setFillStyle(candleOption.color.upFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n } else {\n context.setStrokeStyle(candleOption.color.downLine);\n context.setFillStyle(candleOption.color.downFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n }\n\n context.closePath();\n context.fill();\n context.stroke();\n }\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawAreaDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var areaOption = assign({}, {\n type: 'straight',\n opacity: 0.2,\n addLine: false,\n width: 2,\n gradient: false\n }, opts.extra.area);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points2 = splitPointList[i];\n // 绘制区域数\n context.beginPath();\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length > 1) {\n var firstPoint = _points2[0];\n var lastPoint = _points2[_points2.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var j = 0; j < _points2.length; j++) {\n var item = _points2[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points2, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n ;\n }\n if (areaOption.type === 'straight') {\n for (var _j = 0; _j < _points2.length; _j++) {\n var _item13 = _points2[_j];\n if (startPoint == 0 && _item13.x > leftSpace) {\n context.moveTo(_item13.x, _item13.y);\n startPoint = 1;\n }\n if (_j > 0 && _item13.x > leftSpace && _item13.x < rightSpace) {\n context.lineTo(_item13.x, _item13.y);\n }\n }\n ;\n }\n if (areaOption.type === 'step') {\n for (var _j2 = 0; _j2 < _points2.length; _j2++) {\n var _item14 = _points2[_j2];\n if (startPoint == 0 && _item14.x > leftSpace) {\n context.moveTo(_item14.x, _item14.y);\n startPoint = 1;\n }\n if (_j2 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {\n context.lineTo(_item14.x, _points2[_j2 - 1].y);\n context.lineTo(_item14.x, _item14.y);\n }\n }\n ;\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item15 = _points2[0];\n context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n context.lineTo(_item15.x + eachSpacing / 2, _item15.y);\n context.lineTo(_item15.x + eachSpacing / 2, endY);\n context.lineTo(_item15.x - eachSpacing / 2, endY);\n context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n }\n context.closePath();\n context.fill();\n //画连线\n if (areaOption.addLine) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length === 1) {\n context.moveTo(_points2[0].x, _points2[0].y);\n context.arc(_points2[0].x, _points2[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points2[0].x, _points2[0].y);\n var _startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var _j3 = 0; _j3 < _points2.length; _j3++) {\n var _item16 = _points2[_j3];\n if (_startPoint == 0 && _item16.x > leftSpace) {\n context.moveTo(_item16.x, _item16.y);\n _startPoint = 1;\n }\n if (_j3 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {\n var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);\n context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item16.x, _item16.y);\n }\n }\n ;\n }\n if (areaOption.type === 'straight') {\n for (var _j4 = 0; _j4 < _points2.length; _j4++) {\n var _item17 = _points2[_j4];\n if (_startPoint == 0 && _item17.x > leftSpace) {\n context.moveTo(_item17.x, _item17.y);\n _startPoint = 1;\n }\n if (_j4 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {\n context.lineTo(_item17.x, _item17.y);\n }\n }\n ;\n }\n if (areaOption.type === 'step') {\n for (var _j5 = 0; _j5 < _points2.length; _j5++) {\n var _item18 = _points2[_j5];\n if (_startPoint == 0 && _item18.x > leftSpace) {\n context.moveTo(_item18.x, _item18.y);\n _startPoint = 1;\n }\n if (_j5 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {\n context.lineTo(_item18.x, _points2[_j5 - 1].y);\n context.lineTo(_item18.x, _item18.y);\n }\n }\n ;\n }\n context.moveTo(_points2[0].x, _points2[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n }\n }\n //画点\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawScatterDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var scatterOption = assign({}, {\n type: 'circle'\n }, opts.extra.scatter);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setFillStyle(eachSeries.color);\n context.setLineWidth(1 * opts.pix);\n var shape = eachSeries.pointShape;\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'triangle') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawBubbleDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var bubbleOption = assign({}, {\n opacity: 1,\n border: 2\n }, opts.extra.bubble);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(bubbleOption.border * opts.pix);\n context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\n points.forEach(function (item, index) {\n context.moveTo(item.x + item.r, item.y);\n context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\n });\n context.closePath();\n context.fill();\n context.stroke();\n if (opts.dataLabel !== false && process === 1) {\n points.forEach(function (item, index) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || \"#FFFFFF\");\n context.setTextAlign('center');\n context.fillText(String(item.t), item.x, item.y + fontSize / 2);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawLineDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var lineOption = assign({}, {\n type: 'straight',\n width: 2\n }, opts.extra.line);\n lineOption.width *= opts.pix;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(lineOption.width);\n splitPointList.forEach(function (points, index) {\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var startPoint = 0;\n if (lineOption.type === 'curve') {\n for (var j = 0; j < points.length; j++) {\n var item = points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n ;\n }\n if (lineOption.type === 'straight') {\n for (var _j6 = 0; _j6 < points.length; _j6++) {\n var _item19 = points[_j6];\n if (startPoint == 0 && _item19.x > leftSpace) {\n context.moveTo(_item19.x, _item19.y);\n startPoint = 1;\n }\n if (_j6 > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {\n context.lineTo(_item19.x, _item19.y);\n }\n }\n ;\n }\n if (lineOption.type === 'step') {\n for (var _j7 = 0; _j7 < points.length; _j7++) {\n var _item20 = points[_j7];\n if (startPoint == 0 && _item20.x > leftSpace) {\n context.moveTo(_item20.x, _item20.y);\n startPoint = 1;\n }\n if (_j7 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {\n context.lineTo(_item20.x, points[_j7 - 1].y);\n context.lineTo(_item20.x, _item20.y);\n }\n }\n ;\n }\n context.moveTo(points[0].x, points[0].y);\n }\n });\n context.stroke();\n context.setLineDash([]);\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawMixDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n width: eachSpacing / 2,\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.mix.column);\n var areaOption = assign({}, {\n opacity: 0.2,\n gradient: false\n }, opts.extra.mix.area);\n var lineOption = assign({}, {\n width: 2\n }, opts.extra.mix.line);\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n var columnIndex = 0;\n var columnLength = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n if (eachSeries.type == 'column') {\n columnLength += 1;\n }\n });\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n // 绘制柱状数据图\n if (eachSeries.type == 'column') {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height5 = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord4 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord4[0],\n r1 = _columnOption$barBord4[1],\n r2 = _columnOption$barBord4[2],\n r3 = _columnOption$barBord4[3];\n var minRadius = Math.min(width / 2, _height5 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height5 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height5 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n context.fill();\n }\n }\n columnIndex += 1;\n }\n //绘制区域图数据\n if (eachSeries.type == 'area') {\n var _splitPointList = splitPoints(points, eachSeries);\n for (var _i23 = 0; _i23 < _splitPointList.length; _i23++) {\n var _points3 = _splitPointList[_i23];\n // 绘制区域数据\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(2 * opts.pix);\n if (_points3.length > 1) {\n var firstPoint = _points3[0];\n var lastPoint = _points3[_points3.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (eachSeries.style === 'curve') {\n for (var j = 0; j < _points3.length; j++) {\n var _item21 = _points3[j];\n if (startPoint == 0 && _item21.x > leftSpace) {\n context.moveTo(_item21.x, _item21.y);\n startPoint = 1;\n }\n if (j > 0 && _item21.x > leftSpace && _item21.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points3, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item21.x, _item21.y);\n }\n }\n ;\n } else {\n for (var _j8 = 0; _j8 < _points3.length; _j8++) {\n var _item22 = _points3[_j8];\n if (startPoint == 0 && _item22.x > leftSpace) {\n context.moveTo(_item22.x, _item22.y);\n startPoint = 1;\n }\n if (_j8 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {\n context.lineTo(_item22.x, _item22.y);\n }\n }\n ;\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item23 = _points3[0];\n context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n context.lineTo(_item23.x + eachSpacing / 2, _item23.y);\n context.lineTo(_item23.x + eachSpacing / 2, endY);\n context.lineTo(_item23.x - eachSpacing / 2, endY);\n context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n }\n context.closePath();\n context.fill();\n }\n }\n // 绘制折线数据图\n if (eachSeries.type == 'line') {\n var splitPointList = splitPoints(points, eachSeries);\n splitPointList.forEach(function (points, index) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(lineOption.width * opts.pix);\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var _startPoint2 = 0;\n if (eachSeries.style == 'curve') {\n for (var _j9 = 0; _j9 < points.length; _j9++) {\n var _item24 = points[_j9];\n if (_startPoint2 == 0 && _item24.x > leftSpace) {\n context.moveTo(_item24.x, _item24.y);\n _startPoint2 = 1;\n }\n if (_j9 > 0 && _item24.x > leftSpace && _item24.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, _j9 - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item24.x, _item24.y);\n }\n }\n } else {\n for (var _j10 = 0; _j10 < points.length; _j10++) {\n var _item25 = points[_j10];\n if (_startPoint2 == 0 && _item25.x > leftSpace) {\n context.moveTo(_item25.x, _item25.y);\n _startPoint2 = 1;\n }\n if (_j10 > 0 && _item25.x > leftSpace && _item25.x < rightSpace) {\n context.lineTo(_item25.x, _item25.y);\n }\n }\n }\n context.moveTo(points[0].x, points[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n });\n }\n // 绘制点数据图\n if (eachSeries.type == 'point') {\n eachSeries.addPoint = true;\n }\n if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n var columnIndex = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n if (eachSeries.type !== 'column') {\n drawPointText(points, eachSeries, config, context, opts);\n } else {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n drawPointText(points, eachSeries, config, context, opts);\n columnIndex += 1;\n }\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\n var toolTipOption = opts.extra.tooltip || {};\n if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {\n drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\n }\n context.restore();\n}\nfunction drawXAxis(categories, opts, config, context) {\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n startX = xAxisData.startX,\n endX = xAxisData.endX,\n eachSpacing = xAxisData.eachSpacing;\n var boundaryGap = 'center';\n if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var startY = opts.height - opts.area[2];\n var endY = opts.area[0];\n\n //绘制滚动条\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\n var scrollScreenWidth = endX - startX;\n var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n scrollTotalWidth += (opts.extra.mount.widthRatio - 1) * eachSpacing;\n }\n var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\n var scrollLeft = 0;\n if (opts._scrollDistance_) {\n scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;\n }\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\n context.moveTo(startX, scrollY);\n context.lineTo(endX, scrollY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\n context.moveTo(startX + scrollLeft, scrollY);\n context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\n context.stroke();\n context.closePath();\n context.setLineCap('butt');\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n //绘制X轴刻度线\n if (opts.xAxis.calibration === true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n xAxisPoints.forEach(function (item, index) {\n if (index > 0) {\n context.beginPath();\n context.moveTo(item - eachSpacing / 2, startY);\n context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\n context.closePath();\n context.stroke();\n }\n });\n }\n //绘制X轴网格\n if (opts.xAxis.disableGrid !== true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n if (opts.xAxis.gridType == 'dash') {\n context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\n }\n opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\n xAxisPoints.forEach(function (item, index) {\n if (index % opts.xAxis.gridEval == 0) {\n context.beginPath();\n context.moveTo(item, startY);\n context.lineTo(item, endY);\n context.stroke();\n }\n });\n context.setLineDash([]);\n }\n //绘制X轴文案\n if (opts.xAxis.disabled !== true) {\n // 对X轴列表做抽稀处理\n //默认全部显示X轴标签\n var maxXAxisListLength = categories.length;\n //如果设置了X轴单屏数量\n if (opts.xAxis.labelCount) {\n //如果设置X轴密度\n if (opts.xAxis.itemCount) {\n maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\n } else {\n maxXAxisListLength = opts.xAxis.labelCount;\n }\n maxXAxisListLength -= 1;\n }\n var ratio = Math.ceil(categories.length / maxXAxisListLength);\n var newCategories = [];\n var cgLength = categories.length;\n for (var i = 0; i < cgLength; i++) {\n if (i % ratio !== 0) {\n newCategories.push(\"\");\n } else {\n newCategories.push(categories[i]);\n }\n }\n newCategories[cgLength - 1] = categories[cgLength - 1];\n var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n if (config._xAxisTextAngle_ === 0) {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\n if (boundaryGap == 'center') {\n offset += eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);\n context.closePath();\n context.stroke();\n }\n });\n } else {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n context.save();\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n var textWidth = measureText(String(xitem), xAxisFontSize, context);\n var offsetX = xAxisPoints[index];\n if (boundaryGap == 'center') {\n offsetX = xAxisPoints[index] + eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));\n if (opts.xAxis.rotateAngle < 0) {\n offsetX -= xAxisFontSize / 2;\n textWidth = 0;\n } else {\n offsetX += xAxisFontSize / 2;\n textWidth = -textWidth;\n }\n context.translate(offsetX, offsetY);\n context.rotate(-1 * config._xAxisTextAngle_);\n context.fillText(String(xitem), textWidth, 0);\n context.closePath();\n context.stroke();\n context.restore();\n }\n });\n }\n }\n context.restore();\n //绘制X轴轴线\n if (opts.xAxis.axisLine) {\n context.beginPath();\n context.setStrokeStyle(opts.xAxis.axisLineColor);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(startX, opts.height - opts.area[2]);\n context.lineTo(endX, opts.height - opts.area[2]);\n context.stroke();\n }\n}\nfunction drawYAxisGrid(categories, opts, config, context) {\n if (opts.yAxis.disableGrid === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\n var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n TotalWidth += (opts.extra.mount.widthRatio - 1) * xAxiseachSpacing;\n }\n var endX = startX + TotalWidth;\n var points = [];\n var startY = 1;\n if (opts.xAxis.axisLine === false) {\n startY = 0;\n }\n for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {\n points.push(opts.height - opts.area[2] - eachSpacing * i);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.yAxis.gridType == 'dash') {\n context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\n }\n context.setStrokeStyle(opts.yAxis.gridColor);\n context.setLineWidth(1 * opts.pix);\n points.forEach(function (item, index) {\n context.beginPath();\n context.moveTo(startX, item);\n context.lineTo(endX, item);\n context.stroke();\n });\n context.setLineDash([]);\n context.restore();\n}\nfunction drawYAxis(series, opts, config, context) {\n if (opts.yAxis.disabled === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var endY = opts.height - opts.area[2];\n // set YAxis background\n context.beginPath();\n context.setFillStyle(opts.background);\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\n context.fillRect(0, 0, startX, endY + 2 * opts.pix);\n }\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\n context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix);\n }\n context.closePath();\n context.stroke();\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\n if (opts.yAxis.data) {\n var _loop4 = function _loop4(i) {\n var yData = opts.yAxis.data[i];\n points = [];\n if (yData.type === 'categories') {\n for (var _i24 = 0; _i24 <= yData.categories.length; _i24++) {\n points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i24);\n }\n } else {\n for (var _i25 = 0; _i25 <= opts.yAxis.splitNumber; _i25++) {\n points.push(opts.area[0] + eachSpacing * _i25);\n }\n }\n if (yData.disabled !== true) {\n var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\n var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\n var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\n var textAlign = yData.textAlign || \"right\";\n //画Y轴刻度及文案\n rangesFormat.forEach(function (item, index) {\n var pos = points[index];\n context.beginPath();\n context.setFontSize(yAxisFontSize);\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setFillStyle(yData.fontColor || opts.fontColor);\n var tmpstrat = 0;\n var gapwidth = 4 * opts.pix;\n if (yAxisWidth.position == 'left') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartLeft, pos);\n context.lineTo(tStartLeft - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartLeft - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartLeft - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartLeft - yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n } else if (yAxisWidth.position == 'right') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartRight, pos);\n context.lineTo(tStartRight + 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartRight + gapwidth;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartRight + yAxisWidth.width;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartRight + yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartCenter, pos);\n context.lineTo(tStartCenter - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartCenter - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartCenter - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartCenter - yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n }\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n //画Y轴轴线\n if (yData.axisLine !== false) {\n context.beginPath();\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n if (yAxisWidth.position == 'left') {\n context.moveTo(tStartLeft, opts.height - opts.area[2]);\n context.lineTo(tStartLeft, opts.area[0]);\n } else if (yAxisWidth.position == 'right') {\n context.moveTo(tStartRight, opts.height - opts.area[2]);\n context.lineTo(tStartRight, opts.area[0]);\n } else if (yAxisWidth.position == 'center') {\n context.moveTo(tStartCenter, opts.height - opts.area[2]);\n context.lineTo(tStartCenter, opts.area[0]);\n }\n context.stroke();\n }\n //画Y轴标题\n if (opts.yAxis.showTitle) {\n var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\n var title = yData.title;\n context.beginPath();\n context.setFontSize(titleFontSize);\n context.setFillStyle(yData.titleFontColor || opts.fontColor);\n if (yAxisWidth.position == 'left') {\n context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'right') {\n context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n }\n context.closePath();\n context.stroke();\n }\n if (yAxisWidth.position == 'left') {\n tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\n }\n }\n };\n for (var i = 0; i < opts.yAxis.data.length; i++) {\n var points;\n _loop4(i);\n }\n }\n}\nfunction drawLegend(series, opts, config, context, chartData) {\n if (opts.legend.show === false) {\n return;\n }\n var legendData = chartData.legendData;\n var legendList = legendData.points;\n var legendArea = legendData.area;\n var padding = opts.legend.padding * opts.pix;\n var fontSize = opts.legend.fontSize * opts.pix;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var itemGap = opts.legend.itemGap * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n //画背景及边框\n context.beginPath();\n context.setLineWidth(opts.legend.borderWidth * opts.pix);\n context.setStrokeStyle(opts.legend.borderColor);\n context.setFillStyle(opts.legend.backgroundColor);\n context.moveTo(legendArea.start.x, legendArea.start.y);\n context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\n context.closePath();\n context.fill();\n context.stroke();\n legendList.forEach(function (itemList, listIndex) {\n var width = 0;\n var height = 0;\n width = legendData.widthArr[listIndex];\n height = legendData.heightArr[listIndex];\n var startX = 0;\n var startY = 0;\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n switch (opts.legend.float) {\n case 'left':\n startX = legendArea.start.x + padding;\n break;\n case 'right':\n startX = legendArea.start.x + legendArea.width - width;\n break;\n default:\n startX = legendArea.start.x + (legendArea.width - width) / 2;\n }\n startY = legendArea.start.y + padding + listIndex * lineHeight;\n } else {\n if (listIndex == 0) {\n width = 0;\n } else {\n width = legendData.widthArr[listIndex - 1];\n }\n startX = legendArea.start.x + padding + width;\n startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\n }\n context.setFontSize(config.fontSize);\n for (var i = 0; i < itemList.length; i++) {\n var item = itemList[i];\n item.area = [0, 0, 0, 0];\n item.area[0] = startX;\n item.area[1] = startY;\n item.area[3] = startY + lineHeight;\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\n context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\n switch (item.legendShape) {\n case 'line':\n context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\n break;\n case 'triangle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'diamond':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'circle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\n context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\n break;\n case 'rect':\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n break;\n case 'square':\n context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\n break;\n case 'none':\n break;\n default:\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n }\n context.closePath();\n context.fill();\n context.stroke();\n startX += shapeWidth + shapeRight;\n var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\n var legendText = item.legendText ? item.legendText : item.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\n context.fillText(legendText, startX, startY + fontTrans);\n context.closePath();\n context.stroke();\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n startX += measureText(legendText, fontSize, context) + itemGap;\n item.area[2] = startX;\n } else {\n item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;\n ;\n startX -= shapeWidth + shapeRight;\n startY += lineHeight;\n }\n }\n });\n}\nfunction drawPieDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var pieOption = assign({}, {\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n ringWidth: 30,\n customRadius: 0,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n centerColor: '#FFFFFF',\n linearType: 'none',\n customColor: []\n }, opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\n }\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n if (pieOption.customRadius > 0) {\n radius = pieOption.customRadius * opts.pix;\n }\n series = getPieDataPoints(series, radius, process);\n var activeRadius = pieOption.activeRadius * opts.pix;\n pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(pieOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(pieOption.borderColor);\n var fillcolor = eachSeries.color;\n if (pieOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (pieOption.border == true) {\n context.stroke();\n }\n });\n if (opts.type === 'ring') {\n var innerPieWidth = radius * 0.6;\n if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\n innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\n }\n context.beginPath();\n context.setFillStyle(pieOption.centerColor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n }\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n if (process === 1 && opts.type === 'ring') {\n drawRingTitle(opts, config, context, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawRoseDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var roseOption = assign({}, {\n type: 'area',\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n linearType: 'none',\n customColor: []\n }, opts.extra.rose);\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\n }\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n var minRadius = roseOption.minRadius || radius * 0.5;\n series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\n var activeRadius = roseOption.activeRadius * opts.pix;\n roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(roseOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(roseOption.borderColor);\n var fillcolor = eachSeries.color;\n if (roseOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (roseOption.border == true) {\n context.stroke();\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawArcbarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var arcbarOption = assign({}, {\n startAngle: 0.75,\n endAngle: 0.25,\n type: 'default',\n direction: 'cw',\n lineCap: 'round',\n width: 12,\n gap: 2,\n linearType: 'none',\n customColor: []\n }, opts.extra.arcbar);\n series = getArcbarDataPoints(series, arcbarOption, process);\n var centerPosition;\n if (arcbarOption.centerX || arcbarOption.centerY) {\n centerPosition = {\n x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\n y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2\n };\n } else {\n centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2\n };\n }\n var radius;\n if (arcbarOption.radius) {\n radius = arcbarOption.radius;\n } else {\n radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= arcbarOption.width / 2;\n }\n radius = radius < 10 ? 10 : radius;\n arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\n for (var i = 0; i < series.length; i++) {\n var eachSeries = series[i];\n //背景颜色\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n if (arcbarOption.type == 'default') {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw');\n } else {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw');\n }\n context.stroke();\n //进度条\n var fillColor = eachSeries.color;\n if (arcbarOption.linearType == 'custom') {\n var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\n grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(0, hexToRgb(eachSeries.color, 1));\n fillColor = grd;\n }\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(fillColor);\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw');\n context.stroke();\n }\n drawRingTitle(opts, config, context, centerPosition);\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var gaugeOption = assign({}, {\n type: 'default',\n startAngle: 0.75,\n endAngle: 0.25,\n width: 15,\n labelOffset: 13,\n splitLine: {\n fixRadius: 0,\n splitNumber: 10,\n width: 15,\n color: '#FFFFFF',\n childNumber: 5,\n childWidth: 5\n },\n pointer: {\n width: 15,\n color: 'auto'\n }\n }, opts.extra.gauge);\n if (gaugeOption.oldAngle == undefined) {\n gaugeOption.oldAngle = gaugeOption.startAngle;\n }\n if (gaugeOption.oldData == undefined) {\n gaugeOption.oldData = 0;\n }\n categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\n var centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2\n };\n var radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= gaugeOption.width / 2;\n radius = radius < 10 ? 10 : radius;\n var innerRadius = radius - gaugeOption.width;\n var totalAngle = 0;\n //判断仪表盘的样式:default百度样式,progress新样式\n if (gaugeOption.type == 'progress') {\n //## 第一步画中心圆形背景和进度条背景\n //中心圆形背景\n var pieRadius = radius - gaugeOption.width * 3;\n context.beginPath();\n var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\n //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径)\n gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\n context.fill();\n //画进度条背景\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\n context.stroke();\n //## 第二步画刻度线\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\n var proc = series[0].data * process;\n for (var i = 0; i < len; i++) {\n context.beginPath();\n //刻度线随进度变色\n if (proc > i / len) {\n context.setStrokeStyle(hexToRgb(series[0].color, 1));\n } else {\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n }\n context.setLineWidth(3 * opts.pix);\n context.moveTo(startX, 0);\n context.lineTo(endX, 0);\n context.stroke();\n context.rotate(childAngle * Math.PI);\n }\n context.restore();\n //## 第三步画进度条\n series = getGaugeArcbarDataPoints(series, gaugeOption, process);\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(series[0].color);\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\n context.stroke();\n //## 第四步画指针\n var pointerRadius = radius - gaugeOption.width * 2.5;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((series[0]._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setLineWidth(gaugeOption.width / 3);\n var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\n gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\n gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\n gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\n context.setStrokeStyle(gradient3);\n context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\n context.stroke();\n context.beginPath();\n context.setLineWidth(1);\n context.setStrokeStyle(series[0].color);\n context.setFillStyle(series[0].color);\n context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.stroke();\n context.fill();\n context.restore();\n //default百度样式\n } else {\n //画背景\n context.setLineWidth(gaugeOption.width);\n context.setLineCap('butt');\n for (var _i26 = 0; _i26 < categories.length; _i26++) {\n var eachCategories = categories[_i26];\n context.beginPath();\n context.setStrokeStyle(eachCategories.color);\n context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\n context.stroke();\n }\n context.save();\n //画刻度线\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i27 = 0; _i27 < gaugeOption.splitLine.splitNumber + 1; _i27++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(2 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(_endX, 0);\n context.stroke();\n context.rotate(_splitAngle * Math.PI);\n }\n context.restore();\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i28 = 0; _i28 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i28++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(childendX, 0);\n context.stroke();\n context.rotate(_childAngle * Math.PI);\n }\n context.restore();\n //画指针\n series = getGaugeDataPoints(series, categories, gaugeOption, process);\n for (var _i29 = 0; _i29 < series.length; _i29++) {\n var eachSeries = series[_i29];\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((eachSeries._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setFillStyle(eachSeries.color);\n context.moveTo(gaugeOption.pointer.width, 0);\n context.lineTo(0, -gaugeOption.pointer.width / 2);\n context.lineTo(-innerRadius, 0);\n context.lineTo(0, gaugeOption.pointer.width / 2);\n context.lineTo(gaugeOption.pointer.width, 0);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFillStyle('#FFFFFF');\n context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\n context.fill();\n context.restore();\n }\n if (opts.dataLabel !== false) {\n drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\n }\n }\n //画仪表盘标题,副标题\n drawRingTitle(opts, config, context, centerPosition);\n if (process === 1 && opts.type === 'gauge') {\n opts.extra.gauge.oldAngle = series[0]._proportion_;\n opts.extra.gauge.oldData = series[0].data;\n }\n return {\n center: centerPosition,\n radius: radius,\n innerRadius: innerRadius,\n categories: categories,\n totalAngle: totalAngle\n };\n}\nfunction drawRadarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var radarOption = assign({}, {\n gridColor: '#cccccc',\n gridType: 'radar',\n gridEval: 1,\n axisLabel: false,\n axisLabelTofix: 0,\n labelColor: '#666666',\n labelPointShow: false,\n labelPointRadius: 3,\n labelPointColor: '#cccccc',\n opacity: 0.2,\n gridCount: 3,\n border: false,\n borderWidth: 2,\n linearType: 'none',\n customColor: []\n }, opts.extra.radar);\n var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;\n var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;\n var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\n radius -= config.radarLabelTextMargin * opts.pix;\n radius = radius < 10 ? 10 : radius;\n // 画分割线\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\n context.moveTo(centerPosition.x, centerPosition.y);\n if (index % radarOption.gridEval == 0) {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.stroke();\n context.closePath();\n\n // 画背景网格\n var _loop = function _loop(i) {\n var startPos = {};\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n if (radarOption.gridType == 'radar') {\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius / radarOption.gridCount * i * Math.sin(angle), centerPosition);\n if (index === 0) {\n startPos = pos;\n context.moveTo(pos.x, pos.y);\n } else {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.lineTo(startPos.x, startPos.y);\n } else {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\n context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\n }\n context.stroke();\n context.closePath();\n };\n for (var i = 1; i <= radarOption.gridCount; i++) {\n _loop(i);\n }\n radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);\n var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n // 绘制区域数据\n context.beginPath();\n context.setLineWidth(radarOption.borderWidth * opts.pix);\n context.setStrokeStyle(eachSeries.color);\n var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);\n if (radarOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, radius);\n }\n grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity));\n grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n eachSeries.data.forEach(function (item, index) {\n if (index === 0) {\n context.moveTo(item.position.x, item.position.y);\n } else {\n context.lineTo(item.position.x, item.position.y);\n }\n });\n context.closePath();\n context.fill();\n if (radarOption.border === true) {\n context.stroke();\n }\n context.closePath();\n if (opts.dataPointShape !== false) {\n var points = eachSeries.data.map(function (item) {\n return item.position;\n });\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n // 画刻度值\n if (radarOption.axisLabel === true) {\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var stepLength = radius / radarOption.gridCount;\n var fontSize = opts.fontSize * opts.pix;\n context.setFontSize(fontSize);\n context.setFillStyle(opts.fontColor);\n context.setTextAlign('left');\n for (var i = 0; i < radarOption.gridCount + 1; i++) {\n var label = i * maxData / radarOption.gridCount;\n label = label.toFixed(radarOption.axisLabelTofix);\n context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);\n }\n }\n\n // draw label text\n drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\n\n // draw dataLabel\n if (opts.dataLabel !== false && process === 1) {\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || opts.fontColor);\n eachSeries.data.forEach(function (item, index) {\n //如果是中心点垂直的上下点位\n if (Math.abs(item.position.x - centerPosition.x) < 2) {\n //如果在上面\n if (item.position.y < centerPosition.y) {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y - 4);\n } else {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\n }\n } else {\n //如果在左侧\n if (item.position.x < centerPosition.x) {\n context.setTextAlign('right');\n context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\n } else {\n context.setTextAlign('left');\n context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\n }\n }\n });\n context.closePath();\n context.stroke();\n });\n context.setTextAlign('left');\n }\n return {\n center: centerPosition,\n radius: radius,\n angleList: coordinateAngle\n };\n}\n\n// 经纬度转墨卡托\nfunction lonlat2mercator(longitude, latitude) {\n var mercator = Array(2);\n var x = longitude * 20037508.34 / 180;\n var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\n y = y * 20037508.34 / 180;\n mercator[0] = x;\n mercator[1] = y;\n return mercator;\n}\n\n// 墨卡托转经纬度\nfunction mercator2lonlat(longitude, latitude) {\n var lonlat = Array(2);\n var x = longitude / 20037508.34 * 180;\n var y = latitude / 20037508.34 * 180;\n y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\n lonlat[0] = x;\n lonlat[1] = y;\n return lonlat;\n}\nfunction getBoundingBox(data) {\n var bounds = {},\n coords;\n bounds.xMin = 180;\n bounds.xMax = 0;\n bounds.yMin = 90;\n bounds.yMax = 0;\n for (var i = 0; i < data.length; i++) {\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var longitude = coords[j][0];\n var latitude = coords[j][1];\n var point = {\n x: longitude,\n y: latitude\n };\n bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\n bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\n bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\n bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\n }\n }\n }\n return bounds;\n}\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\n return {\n x: (longitude - bounds.xMin) * scale + xoffset,\n y: (bounds.yMax - latitude) * scale + yoffset\n };\n}\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\n return {\n x: (pointX - xoffset) / scale + bounds.xMin,\n y: bounds.yMax - (pointY - yoffset) / scale\n };\n}\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\n if (s_poi[1] == e_poi[1]) {\n return false;\n }\n if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\n return false;\n }\n if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\n return false;\n }\n var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\n if (xseg < poi[0]) {\n return false;\n } else {\n return true;\n }\n}\nfunction isPoiWithinPoly(poi, poly, mercator) {\n var sinsc = 0;\n for (var i = 0; i < poly.length; i++) {\n var epoly = poly[i][0];\n if (poly.length == 1) {\n epoly = poly[i][0];\n }\n for (var j = 0; j < epoly.length - 1; j++) {\n var s_poi = epoly[j];\n var e_poi = epoly[j + 1];\n if (mercator) {\n s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\n e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\n }\n if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\n sinsc += 1;\n }\n }\n }\n if (sinsc % 2 == 1) {\n return true;\n } else {\n return false;\n }\n}\nfunction drawMapDataPoints(series, opts, config, context) {\n var mapOption = assign({}, {\n border: true,\n mercator: false,\n borderWidth: 1,\n active: true,\n borderColor: '#666666',\n fillOpacity: 0.6,\n activeBorderColor: '#f04864',\n activeFillColor: '#facc14',\n activeFillOpacity: 1\n }, opts.extra.map);\n var coords, point;\n var data = series;\n var bounds = getBoundingBox(data);\n if (mapOption.mercator) {\n var max = lonlat2mercator(bounds.xMax, bounds.yMax);\n var min = lonlat2mercator(bounds.xMin, bounds.yMin);\n bounds.xMax = max[0];\n bounds.yMax = max[1];\n bounds.xMin = min[0];\n bounds.yMin = min[1];\n }\n var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\n var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\n var scale = xScale < yScale ? xScale : yScale;\n var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\n var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\n for (var i = 0; i < data.length; i++) {\n context.beginPath();\n context.setLineWidth(mapOption.borderWidth * opts.pix);\n context.setStrokeStyle(mapOption.borderColor);\n context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity || mapOption.fillOpacity));\n if (mapOption.active == true && opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.setStrokeStyle(mapOption.activeBorderColor);\n context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\n }\n }\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var gaosi = Array(2);\n if (mapOption.mercator) {\n gaosi = lonlat2mercator(coords[j][0], coords[j][1]);\n } else {\n gaosi = coords[j];\n }\n point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);\n if (j === 0) {\n context.beginPath();\n context.moveTo(point.x, point.y);\n } else {\n context.lineTo(point.x, point.y);\n }\n }\n context.fill();\n if (mapOption.border == true) {\n context.stroke();\n }\n }\n }\n if (opts.dataLabel == true) {\n for (var i = 0; i < data.length; i++) {\n var centerPoint = data[i].properties.centroid;\n if (centerPoint) {\n if (mapOption.mercator) {\n centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);\n }\n point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\n var fontSize = data[i].textSize * opts.pix || config.fontSize;\n var fontColor = data[i].textColor || opts.fontColor;\n if (mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i) {\n fontColor = mapOption.activeTextColor;\n }\n var text = data[i].properties.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(fontColor);\n context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\n context.closePath();\n context.stroke();\n }\n }\n }\n opts.chartData.mapData = {\n bounds: bounds,\n scale: scale,\n xoffset: xoffset,\n yoffset: yoffset,\n mercator: mapOption.mercator\n };\n drawToolTipBridge(opts, config, context, 1);\n context.draw();\n}\nfunction normalInt(min, max, iter) {\n iter = iter == 0 ? 1 : iter;\n var arr = [];\n for (var i = 0; i < iter; i++) {\n arr[i] = Math.random();\n }\n ;\n return Math.floor(arr.reduce(function (i, j) {\n return i + j;\n }) / iter * (max - min)) + min;\n}\n;\nfunction collisionNew(area, points, width, height) {\n var isIn = false;\n for (var i = 0; i < points.length; i++) {\n if (points[i].area) {\n if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\n if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\n isIn = true;\n break;\n } else {\n isIn = false;\n }\n } else {\n isIn = true;\n break;\n }\n }\n }\n return isIn;\n}\n;\nfunction getWordCloudPoint(opts, type, context) {\n var points = opts.series;\n switch (type) {\n case 'normal':\n for (var i = 0; i < points.length; i++) {\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n var x = void 0,\n y = void 0;\n var area = void 0;\n var breaknum = 0;\n while (true) {\n breaknum++;\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 + opts.height / 2];\n var isCollision = collisionNew(area, points, opts.width, opts.height);\n if (!isCollision) break;\n if (breaknum == 1000) {\n area = [-100, -100, -100, -100];\n break;\n }\n }\n ;\n points[i].area = area;\n }\n break;\n case 'vertical':\n var Spin = function Spin() {\n //获取均匀随机值,是否旋转,旋转的概率为(1-0.5)\n if (Math.random() > 0.7) {\n return true;\n } else {\n return false;\n }\n ;\n };\n ;\n for (var _i30 = 0; _i30 < points.length; _i30++) {\n var _text = points[_i30].name;\n var _tHeight = points[_i30].textSize * opts.pix;\n var _tWidth = measureText(_text, _tHeight, context);\n var isSpin = Spin();\n var _x = void 0,\n _y = void 0,\n _area = void 0,\n areav = void 0;\n var _breaknum = 0;\n while (true) {\n _breaknum++;\n var _isCollision = void 0;\n if (isSpin) {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];\n areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];\n _isCollision = collisionNew(areav, points, opts.height, opts.width);\n } else {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];\n _isCollision = collisionNew(_area, points, opts.width, opts.height);\n }\n if (!_isCollision) break;\n if (_breaknum == 1000) {\n _area = [-1000, -1000, -1000, -1000];\n break;\n }\n }\n ;\n if (isSpin) {\n points[_i30].area = areav;\n points[_i30].areav = _area;\n } else {\n points[_i30].area = _area;\n }\n points[_i30].rotate = isSpin;\n }\n ;\n break;\n }\n return points;\n}\nfunction drawWordCloudDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var wordOption = assign({}, {\n type: 'normal',\n autoColors: true\n }, opts.extra.word);\n if (!opts.chartData.wordCloudData) {\n opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\n }\n context.beginPath();\n context.setFillStyle(opts.background);\n context.rect(0, 0, opts.width, opts.height);\n context.fill();\n context.save();\n var points = opts.chartData.wordCloudData;\n context.translate(opts.width / 2, opts.height / 2);\n for (var i = 0; i < points.length; i++) {\n context.save();\n if (points[i].rotate) {\n context.rotate(90 * Math.PI / 180);\n }\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n context.beginPath();\n context.setStrokeStyle(points[i].color);\n context.setFillStyle(points[i].color);\n context.setFontSize(tHeight);\n if (points[i].rotate) {\n if (points[i].areav[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n } else {\n if (points[i].area[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n }\n context.stroke();\n context.restore();\n }\n context.restore();\n}\nfunction drawFunnelDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var funnelOption = assign({}, {\n type: 'funnel',\n activeWidth: 10,\n activeOpacity: 0.3,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n fillOpacity: 1,\n minSize: 0,\n labelAlign: 'right',\n linearType: 'none',\n customColor: []\n }, opts.extra.funnel);\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.height - opts.area[2]\n };\n var activeWidth = funnelOption.activeWidth * opts.pix;\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\n var seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process);\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\n if (funnelOption.type == 'pyramid') {\n for (var i = 0; i < seriesNew.length; i++) {\n if (i == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth, -eachSpacing);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(activeWidth, -eachSpacing);\n context.lineTo(-activeWidth, -eachSpacing);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, -eachSpacing);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, -eachSpacing);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(-seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, -eachSpacing);\n }\n } else {\n context.translate(0, -(seriesNew.length - 1) * eachSpacing);\n for (var _i31 = 0; _i31 < seriesNew.length; _i31++) {\n if (_i31 == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(activeWidth + funnelOption.minSize / 2, 0);\n context.lineTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[_i31].radius, centerPosition.y];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(funnelOption.minSize / 2, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius - activeWidth, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31), centerPosition.x + seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31 - 1)];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, eachSpacing);\n }\n }\n context.restore();\n if (opts.dataLabel !== false && process === 1) {\n drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n if (process === 1) {\n drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: seriesNew\n };\n}\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (item.labelShow === false) {\n continue;\n }\n var startX = void 0,\n endX = void 0,\n startY = void 0,\n fontSize = void 0;\n var text = item.formatter ? item.formatter(item, i, series, opts) : util.toFixed(item._proportion_ * 100) + '%';\n text = item.labelText ? item.labelText : text;\n if (labelAlign == 'right') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\n }\n endX = startX + activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n if (labelAlign == 'left') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\n }\n endX = startX - activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\nfunction drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var startY = void 0,\n fontSize = void 0;\n if (item.centerText) {\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.centerTextColor || \"#FFFFFF\");\n context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\nfunction drawCanvas(opts, context) {\n context.draw();\n}\nvar Timing = {\n easeIn: function easeIn(pos) {\n return Math.pow(pos, 3);\n },\n easeOut: function easeOut(pos) {\n return Math.pow(pos - 1, 3) + 1;\n },\n easeInOut: function easeInOut(pos) {\n if ((pos /= 0.5) < 1) {\n return 0.5 * Math.pow(pos, 3);\n } else {\n return 0.5 * (Math.pow(pos - 2, 3) + 2);\n }\n },\n linear: function linear(pos) {\n return pos;\n }\n};\nfunction Animation(opts) {\n this.isStop = false;\n opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\n opts.timing = opts.timing || 'easeInOut';\n var delay = 17;\n function createAnimationFrame() {\n if (typeof setTimeout !== 'undefined') {\n return function (step, delay) {\n setTimeout(function () {\n var timeStamp = +new Date();\n step(timeStamp);\n }, delay);\n };\n } else if (typeof requestAnimationFrame !== 'undefined') {\n return requestAnimationFrame;\n } else {\n return function (step) {\n step(null);\n };\n }\n }\n ;\n var animationFrame = createAnimationFrame();\n var startTimeStamp = null;\n var _step = function step(timestamp) {\n if (timestamp === null || this.isStop === true) {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n return;\n }\n if (startTimeStamp === null) {\n startTimeStamp = timestamp;\n }\n if (timestamp - startTimeStamp < opts.duration) {\n var process = (timestamp - startTimeStamp) / opts.duration;\n var timingFunction = Timing[opts.timing];\n process = timingFunction(process);\n opts.onProcess && opts.onProcess(process);\n animationFrame(_step, delay);\n } else {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n }\n };\n _step = _step.bind(this);\n animationFrame(_step, delay);\n}\nAnimation.prototype.stop = function () {\n this.isStop = true;\n};\nfunction drawCharts(type, opts, config, context) {\n var _this2 = this;\n var _this = this;\n var series = opts.series;\n //兼容ECharts饼图类数据格式\n if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {\n series = fixPieSeries(series, opts, config);\n }\n var categories = opts.categories;\n if (type === 'mount') {\n categories = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].show !== false) categories.push(series[j].name);\n }\n opts.categories = categories;\n }\n series = fillSeries(series, opts, config);\n var duration = opts.animation ? opts.duration : 0;\n _this.animationInstance && _this.animationInstance.stop();\n var seriesMA = null;\n if (type == 'candle') {\n var average = assign({}, opts.extra.candle.average);\n if (average.show) {\n seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\n seriesMA = fillSeries(seriesMA, opts, config);\n opts.seriesMA = seriesMA;\n } else if (opts.seriesMA) {\n seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\n } else {\n seriesMA = series;\n }\n } else {\n seriesMA = series;\n }\n /* 过滤掉show=false的series */\n opts._series_ = series = filterSeries(series);\n //重新计算图表区域\n opts.area = new Array(4);\n //复位绘图区域\n for (var _j11 = 0; _j11 < 4; _j11++) {\n opts.area[_j11] = opts.padding[_j11] * opts.pix;\n }\n //通过计算三大区域:图例、X轴、Y轴的大小,确定绘图区域\n var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\n legendHeight = _calLegendData.area.wholeHeight,\n legendWidth = _calLegendData.area.wholeWidth;\n switch (opts.legend.position) {\n case 'top':\n opts.area[0] += legendHeight;\n break;\n case 'bottom':\n opts.area[2] += legendHeight;\n break;\n case 'left':\n opts.area[3] += legendWidth;\n break;\n case 'right':\n opts.area[1] += legendWidth;\n break;\n }\n var _calYAxisData = {},\n yAxisWidth = 0;\n if (opts.type === 'line' || opts.type === 'column' || opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n _calYAxisData = calYAxisData(series, opts, config, context);\n yAxisWidth = _calYAxisData.yAxisWidth;\n //如果显示Y轴标题\n if (opts.yAxis.showTitle) {\n var maxTitleHeight = 0;\n for (var i = 0; i < opts.yAxis.data.length; i++) {\n maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);\n }\n opts.area[0] += maxTitleHeight;\n }\n var rightIndex = 0,\n leftIndex = 0;\n //计算主绘图区域左右位置\n for (var _i32 = 0; _i32 < yAxisWidth.length; _i32++) {\n if (yAxisWidth[_i32].position == 'left') {\n if (leftIndex > 0) {\n opts.area[3] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[3] += yAxisWidth[_i32].width;\n }\n leftIndex += 1;\n } else if (yAxisWidth[_i32].position == 'right') {\n if (rightIndex > 0) {\n opts.area[1] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[1] += yAxisWidth[_i32].width;\n }\n rightIndex += 1;\n }\n }\n } else {\n config.yAxisWidth = yAxisWidth;\n }\n opts.chartData.yAxisData = _calYAxisData;\n if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\n opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\n var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n xAxisHeight = _calCategoriesData.xAxisHeight,\n angle = _calCategoriesData.angle;\n config.xAxisHeight = xAxisHeight;\n config._xAxisTextAngle_ = angle;\n opts.area[2] += xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData;\n } else {\n if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\n categories = opts.chartData.xAxisData.rangesFormat;\n var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n _xAxisHeight = _calCategoriesData2.xAxisHeight,\n _angle = _calCategoriesData2.angle;\n config.xAxisHeight = _xAxisHeight;\n config._xAxisTextAngle_ = _angle;\n opts.area[2] += _xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData2;\n } else {\n opts.chartData.xAxisData = {\n xAxisPoints: []\n };\n }\n }\n\n //计算右对齐偏移距离\n if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\n var offsetLeft = 0,\n xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n startX = opts.chartData.xAxisData.startX,\n endX = opts.chartData.xAxisData.endX,\n eachSpacing = opts.chartData.xAxisData.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n _this.scrollOption.currentOffset = offsetLeft;\n _this.scrollOption.startTouchX = offsetLeft;\n _this.scrollOption.distance = 0;\n _this.scrollOption.lastMoveTime = 0;\n opts._scrollDistance_ = offsetLeft;\n }\n if (type === 'pie' || type === 'ring' || type === 'rose') {\n config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\n }\n switch (type) {\n case 'word':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawWordCloudDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'map':\n context.clearRect(0, 0, opts.width, opts.height);\n drawMapDataPoints(series, opts, config, context);\n setTimeout(function () {\n _this2.uevent.trigger('renderComplete');\n }, 50);\n break;\n case 'funnel':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'line':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawLineDataPoints.xAxisPoints,\n calPoints = _drawLineDataPoints.calPoints,\n eachSpacing = _drawLineDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'scatter':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawScatterDataPoints.xAxisPoints,\n calPoints = _drawScatterDataPoints.calPoints,\n eachSpacing = _drawScatterDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'bubble':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\n calPoints = _drawBubbleDataPoints.calPoints,\n eachSpacing = _drawBubbleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'mix':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMixDataPoints.xAxisPoints,\n calPoints = _drawMixDataPoints.calPoints,\n eachSpacing = _drawMixDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'column':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawColumnDataPoints.xAxisPoints,\n calPoints = _drawColumnDataPoints.calPoints,\n eachSpacing = _drawColumnDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'mount':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMountDataPoints.xAxisPoints,\n calPoints = _drawMountDataPoints.calPoints,\n eachSpacing = _drawMountDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'bar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawXAxis(categories, opts, config, context);\n var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\n yAxisPoints = _drawBarDataPoints.yAxisPoints,\n calPoints = _drawBarDataPoints.calPoints,\n eachSpacing = _drawBarDataPoints.eachSpacing;\n opts.chartData.yAxisPoints = yAxisPoints;\n opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'area':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawAreaDataPoints.xAxisPoints,\n calPoints = _drawAreaDataPoints.calPoints,\n eachSpacing = _drawAreaDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'ring':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'pie':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'rose':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'radar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'arcbar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'gauge':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'candle':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\n xAxisPoints = _drawCandleDataPoints.xAxisPoints,\n calPoints = _drawCandleDataPoints.calPoints,\n eachSpacing = _drawCandleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n if (seriesMA) {\n drawLegend(seriesMA, opts, config, context, opts.chartData);\n } else {\n drawLegend(opts.series, opts, config, context, opts.chartData);\n }\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n }\n}\nfunction uChartsEvent() {\n this.events = {};\n}\nuChartsEvent.prototype.addEventListener = function (type, listener) {\n this.events[type] = this.events[type] || [];\n this.events[type].push(listener);\n};\nuChartsEvent.prototype.delEventListener = function (type) {\n this.events[type] = [];\n};\nuChartsEvent.prototype.trigger = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var type = args[0];\n var params = args.slice(1);\n if (!!this.events[type]) {\n this.events[type].forEach(function (listener) {\n try {\n listener.apply(null, params);\n } catch (e) {\n //console.log('[uCharts] '+e);\n }\n });\n }\n};\nvar uCharts = function uCharts(opts) {\n opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\n opts.fontSize = opts.fontSize ? opts.fontSize : 13;\n opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\n if (opts.background == \"\" || opts.background == \"none\") {\n opts.background = \"#FFFFFF\";\n }\n opts.title = assign({}, opts.title);\n opts.subtitle = assign({}, opts.subtitle);\n opts.duration = opts.duration ? opts.duration : 1000;\n opts.yAxis = assign({}, {\n data: [],\n showTitle: false,\n disabled: false,\n disableGrid: false,\n gridSet: 'number',\n splitNumber: 5,\n gridType: 'solid',\n dashLength: 4 * opts.pix,\n gridColor: '#cccccc',\n padding: 10,\n fontColor: '#666666'\n }, opts.yAxis);\n opts.xAxis = assign({}, {\n rotateLabel: false,\n rotateAngle: 45,\n disabled: false,\n disableGrid: false,\n splitNumber: 5,\n calibration: false,\n gridType: 'solid',\n dashLength: 4,\n scrollAlign: 'left',\n boundaryGap: 'center',\n axisLine: true,\n axisLineColor: '#cccccc'\n }, opts.xAxis);\n opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\n opts.legend = assign({}, {\n show: true,\n position: 'bottom',\n float: 'center',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n padding: 5,\n margin: 5,\n itemGap: 10,\n fontSize: opts.fontSize,\n lineHeight: opts.fontSize,\n fontColor: opts.fontColor,\n formatter: {},\n hiddenColor: '#CECECE'\n }, opts.legend);\n opts.extra = assign({}, opts.extra);\n opts.rotate = opts.rotate ? true : false;\n opts.animation = opts.animation ? true : false;\n opts.rotate = opts.rotate ? true : false;\n opts.canvas2d = opts.canvas2d ? true : false;\n var config$$1 = assign({}, config);\n config$$1.color = opts.color ? opts.color : config$$1.color;\n if (opts.type == 'pie') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'ring') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'rose') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\n\n //屏幕旋转\n config$$1.rotate = opts.rotate;\n if (opts.rotate) {\n var tempWidth = opts.width;\n var tempHeight = opts.height;\n opts.width = tempHeight;\n opts.height = tempWidth;\n }\n\n //适配高分屏\n opts.padding = opts.padding ? opts.padding : config$$1.padding;\n config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\n config$$1.xAxisHeight = config.xAxisHeight * opts.pix;\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n config$$1.xAxisHeight += 6 * opts.pix;\n }\n config$$1.fontSize = opts.fontSize * opts.pix;\n config$$1.titleFontSize = config.titleFontSize * opts.pix;\n config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\n config$$1.toolTipPadding = config.toolTipPadding * opts.pix;\n config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;\n if (!opts.context) {\n throw new Error('[uCharts] 未获取到context!注意:v2.0版本后,需要自行获取canvas的绘图上下文并传入opts.context!');\n }\n this.context = opts.context;\n if (!this.context.setTextAlign) {\n this.context.setStrokeStyle = function (e) {\n return this.strokeStyle = e;\n };\n this.context.setLineWidth = function (e) {\n return this.lineWidth = e;\n };\n this.context.setLineCap = function (e) {\n return this.lineCap = e;\n };\n this.context.setFontSize = function (e) {\n return this.font = e + \"px sans-serif\";\n };\n this.context.setFillStyle = function (e) {\n return this.fillStyle = e;\n };\n this.context.setTextAlign = function (e) {\n return this.textAlign = e;\n };\n this.context.draw = function () {};\n }\n //兼容NVUEsetLineDash\n if (!this.context.setLineDash) {\n this.context.setLineDash = function (e) {};\n }\n opts.chartData = {};\n this.uevent = new uChartsEvent();\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n this.opts = opts;\n this.config = config$$1;\n drawCharts.call(this, opts.type, opts, config$$1, this.context);\n};\nuCharts.prototype.updateData = function () {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.opts = assign({}, this.opts, data);\n this.opts.updateData = true;\n var scrollPosition = data.scrollPosition || 'current';\n switch (scrollPosition) {\n case 'current':\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n break;\n case 'left':\n this.opts._scrollDistance_ = 0;\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n break;\n case 'right':\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: offsetLeft,\n distance: 0,\n lastMoveTime: 0\n };\n this.opts._scrollDistance_ = offsetLeft;\n break;\n }\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.zoom = function () {\n var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6828\");\n return;\n }\n //当前屏幕中间点\n var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\n this.opts.animation = false;\n this.opts.xAxis.itemCount = val.itemCount;\n //重新计算x轴偏移距离\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var centerLeft = eachSpacing * centerPoint;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = screenWidth / 2 - centerLeft;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.dobuleZoom = function (e) {\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6868\");\n return;\n }\n var tcs = e.changedTouches;\n if (tcs.length < 2) {\n return;\n }\n for (var i = 0; i < tcs.length; i++) {\n tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;\n tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;\n }\n var ntcs = [getTouches(tcs[0], this.opts, e), getTouches(tcs[1], this.opts, e)];\n var xlength = Math.abs(ntcs[0].x - ntcs[1].x);\n // 记录初始的两指之间的数据\n if (!this.scrollOption.moveCount) {\n var cts0 = {\n changedTouches: [{\n x: tcs[0].x,\n y: this.opts.area[0] / this.opts.pix + 2\n }]\n };\n var cts1 = {\n changedTouches: [{\n x: tcs[1].x,\n y: this.opts.area[0] / this.opts.pix + 2\n }]\n };\n if (this.opts.rotate) {\n cts0 = {\n changedTouches: [{\n x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,\n y: tcs[0].y\n }]\n };\n cts1 = {\n changedTouches: [{\n x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,\n y: tcs[1].y\n }]\n };\n }\n var moveCurrent1 = this.getCurrentDataIndex(cts0).index;\n var moveCurrent2 = this.getCurrentDataIndex(cts1).index;\n var moveCount = Math.abs(moveCurrent1 - moveCurrent2);\n this.scrollOption.moveCount = moveCount;\n this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);\n this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);\n return;\n }\n var currentEachSpacing = xlength / this.scrollOption.moveCount;\n var itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;\n itemCount = itemCount <= 2 ? 2 : itemCount;\n itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;\n this.opts.animation = false;\n this.opts.xAxis.itemCount = itemCount;\n // 重新计算滚动条偏移距离\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var currentLeft = eachSpacing * this.scrollOption.moveCurrent1;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = -currentLeft + Math.min(ntcs[0].x, ntcs[1].x) - this.opts.area[3] - eachSpacing;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption.currentOffset = offsetLeft;\n this.scrollOption.startTouchX = 0;\n this.scrollOption.distance = 0;\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.stopAnimation = function () {\n this.animationInstance && this.animationInstance.stop();\n};\nuCharts.prototype.addEventListener = function (type, listener) {\n this.uevent.addEventListener(type, listener);\n};\nuCharts.prototype.delEventListener = function (type) {\n this.uevent.delEventListener(type);\n};\nuCharts.prototype.getCurrentDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n if (this.opts.type === 'pie' || this.opts.type === 'ring') {\n return findPieChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'rose') {\n return findRoseChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'radar') {\n return findRadarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.radarData, this.opts.categories.length);\n } else if (this.opts.type === 'funnel') {\n return findFunnelChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.funnelData);\n } else if (this.opts.type === 'map') {\n return findMapChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts);\n } else if (this.opts.type === 'word') {\n return findWordChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.wordCloudData);\n } else if (this.opts.type === 'bar') {\n return findBarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n } else {\n return findCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n }\n }\n return -1;\n};\nuCharts.prototype.getLegendDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n return findLegendIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.legendData);\n }\n return -1;\n};\nuCharts.prototype.touchLegend = function (e) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n var index = this.getLegendDataIndex(e);\n if (index >= 0) {\n if (this.opts.type == 'candle') {\n this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\n } else {\n this.opts.series[index].show = !this.opts.series[index].show;\n }\n this.opts.animation = option.animation ? true : false;\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n }\n }\n};\nuCharts.prototype.showToolTip = function (e) {\n var _this3 = this;\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (!touches) {\n __f__(\"log\", \"[uCharts] 未获取到event坐标信息\", \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7046\");\n }\n var _touches$ = getTouches(touches, this.opts, e);\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mount') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color\n }];\n var offset = {\n x: opts.chartData.calPoints[index].x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'bar') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.x = _touches$.x;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mix') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\n textList = _getMixToolTipData.textList,\n offset = _getMixToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'candle') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'map') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, this.opts.series[index]);\n seriesData.name = seriesData.properties.name;\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'word') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, this.opts.series[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'radar') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, _this3.opts.categories[index], index, _this3.opts) : item.name + ': ' + item.data,\n color: item.color\n };\n });\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n};\nuCharts.prototype.translate = function (distance) {\n this.scrollOption = {\n currentOffset: distance,\n startTouchX: distance,\n distance: 0,\n lastMoveTime: 0\n };\n var opts = assign({}, this.opts, {\n _scrollDistance_: distance,\n animation: false\n });\n drawCharts.call(this, this.opts.type, opts, this.config, this.context);\n};\nuCharts.prototype.scrollStart = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n var _touches$ = getTouches(touches, this.opts, e);\n if (touches && this.opts.enableScroll === true) {\n this.scrollOption.startTouchX = _touches$.x;\n }\n};\nuCharts.prototype.scroll = function (e) {\n if (this.scrollOption.lastMoveTime === 0) {\n this.scrollOption.lastMoveTime = Date.now();\n }\n var Limit = this.opts.touchMoveLimit || 60;\n var currMoveTime = Date.now();\n var duration = currMoveTime - this.scrollOption.lastMoveTime;\n if (duration < Math.floor(1000 / Limit)) return;\n if (this.scrollOption.startTouchX == 0) return;\n this.scrollOption.lastMoveTime = currMoveTime;\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches && this.opts.enableScroll === true) {\n var _touches$ = getTouches(touches, this.opts, e);\n var _distance;\n _distance = _touches$.x - this.scrollOption.startTouchX;\n var currentOffset = this.scrollOption.currentOffset;\n var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\n this.scrollOption.distance = _distance = validDistance - currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset + _distance,\n animation: false\n });\n this.opts = opts;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n return currentOffset + _distance;\n }\n};\nuCharts.prototype.scrollEnd = function (e) {\n if (this.opts.enableScroll === true) {\n var _scrollOption = this.scrollOption,\n currentOffset = _scrollOption.currentOffset,\n distance = _scrollOption.distance;\n this.scrollOption.currentOffset = currentOffset + distance;\n this.scrollOption.distance = 0;\n this.scrollOption.moveCount = 0;\n }\n};\nvar _default = uCharts;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMiXSwibmFtZXMiOlsiY29uZmlnIiwidmVyc2lvbiIsInlBeGlzV2lkdGgiLCJ4QXhpc0hlaWdodCIsInhBeGlzVGV4dFBhZGRpbmciLCJwYWRkaW5nIiwicGl4ZWxSYXRpbyIsInJvdGF0ZSIsImZvbnRTaXplIiwiZm9udENvbG9yIiwiZGF0YVBvaW50U2hhcGUiLCJjb2xvciIsImxpbmVhckNvbG9yIiwicGllQ2hhcnRMaW5lUGFkZGluZyIsInBpZUNoYXJ0VGV4dFBhZGRpbmciLCJ0aXRsZUZvbnRTaXplIiwic3VidGl0bGVGb250U2l6ZSIsInRvb2xUaXBQYWRkaW5nIiwidG9vbFRpcEJhY2tncm91bmQiLCJ0b29sVGlwT3BhY2l0eSIsInRvb2xUaXBMaW5lSGVpZ2h0IiwicmFkYXJMYWJlbFRleHRNYXJnaW4iLCJhc3NpZ24iLCJ0YXJnZXQiLCJ2YXJBcmdzIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiZGVlcEFzc2lnbiIsIm9iajEiLCJvYmoyIiwia2V5IiwidG9TdHJpbmciLCJmb3JFYWNoIiwidmFsIiwidXRpbCIsInRvRml4ZWQiLCJudW0iLCJsaW1pdCIsImlzRmxvYXQiLCJhcHByb3hpbWF0ZWx5RXF1YWwiLCJudW0xIiwibnVtMiIsIk1hdGgiLCJhYnMiLCJpc1NhbWVTaWduIiwiaXNTYW1lWENvb3JkaW5hdGVBcmVhIiwicDEiLCJwMiIsIngiLCJpc0NvbGxpc2lvbiIsImVuZCIsInN0YXJ0Iiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwiZmxhZyIsImdldEg1T2Zmc2V0IiwiZSIsIm1wIiwiY2hhbmdlZFRvdWNoZXMiLCJwdXNoIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJoZXhUb1JnYiIsImhleFZhbHVlIiwib3BjIiwicmd4IiwiaGV4IiwicmVwbGFjZSIsIm0iLCJyIiwiZyIsImIiLCJyZ2IiLCJleGVjIiwicGFyc2VJbnQiLCJmaW5kUmFuZ2UiLCJ0eXBlIiwiaXNOYU4iLCJFcnJvciIsIm11bHRpcGxlIiwiY2VpbCIsImZsb29yIiwiY2FsQ2FuZGxlTUEiLCJkYXlBcnIiLCJuYW1lQXJyIiwiY29sb3JBcnIiLCJrZGF0YSIsInNlcmllc1RlbXAiLCJrIiwic2VyaWVzSXRlbSIsImRhdGEiLCJuYW1lIiwiaSIsImxlbiIsInN1bSIsImoiLCJjYWxWYWxpZERpc3RhbmNlIiwic2VsZiIsImRpc3RhbmNlIiwiY2hhcnREYXRhIiwib3B0cyIsImRhdGFDaGFydEFyZWFXaWR0aCIsImFyZWEiLCJkYXRhQ2hhcnRXaWR0aCIsImVhY2hTcGFjaW5nIiwieEF4aXNEYXRhIiwieEF4aXNQb2ludHMiLCJleHRyYSIsIm1vdW50Iiwid2lkdGhSYXRpbyIsInZhbGlkRGlzdGFuY2UiLCJ1ZXZlbnQiLCJ0cmlnZ2VyIiwic2Nyb2xsT3B0aW9uIiwicG9zaXRpb24iLCJ4QXhpcyIsInNjcm9sbFBvc2l0aW9uIiwiaXNJbkFuZ2xlUmFuZ2UiLCJhbmdsZSIsInN0YXJ0QW5nbGUiLCJlbmRBbmdsZSIsImFkanVzdCIsIlBJIiwiY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzIiwicG9pbnRzIiwiaXNOb3RNaWRkbGVQb2ludCIsIm1heCIsIm1pbiIsImlzTm90TWlkZGxlUG9pbnRYIiwiYSIsInBBeCIsInBBeSIsInBCeCIsInBCeSIsImxhc3QiLCJjdHJBIiwiY3RyQiIsImNvbnZlcnRDb29yZGluYXRlT3JpZ2luIiwiY2VudGVyIiwiYXZvaWRDb2xsaXNpb24iLCJvYmoiLCJmaXhQaWVTZXJpZXMiLCJzZXJpZXMiLCJwaWVTZXJpZXNBcnIiLCJjb25zdHJ1Y3RvciIsImluZGV4T2YiLCJfcGllU2VyaWVzXyIsIm9sZHNlcmllcyIsImZvcm1hdHRlciIsInZhbHVlIiwiZmlsbFNlcmllcyIsImluZGV4IiwiaXRlbSIsImxpbmVhckluZGV4Iiwic2hvdyIsInBvaW50U2hhcGUiLCJsZWdlbmRTaGFwZSIsImZpbGxDdXN0b21Db2xvciIsImxpbmVhclR5cGUiLCJjdXN0b21Db2xvciIsIm5ld2NvbG9yIiwiY2hhemhpIiwiZ2V0RGF0YVJhbmdlIiwibWluRGF0YSIsIm1heERhdGEiLCJyYW5nZSIsIm1pblJhbmdlIiwibWF4UmFuZ2UiLCJtZWFzdXJlVGV4dCIsInRleHQiLCJjb250ZXh0IiwiU3RyaW5nIiwidW5kZWZpbmVkIiwic2V0Rm9udFNpemUiLCJzcGxpdCIsInRlc3QiLCJkYXRhQ29tYmluZSIsInJlZHVjZSIsImNvbmNhdCIsImRhdGFDb21iaW5lU3RhY2siLCJBcnJheSIsImdldFRvdWNoZXMiLCJ0b3VjaGVzIiwiY2xpZW50WCIsInBpeCIsInBhZ2VZIiwiY3VycmVudFRhcmdldCIsIm9mZnNldFRvcCIsImdldFNlcmllc0RhdGFJdGVtIiwiZ3JvdXAiLCJuZXdTZXJpZXMiLCJpbmRleElzQXJyIiwidGVtcFNlcmllcyIsImZpbHRlclNlcmllcyIsInRtcGluZGV4Iiwic3R5bGUiLCJkaXNhYmxlTGVnZW5kIiwiZ2V0TWF4VGV4dExpc3RMZW5ndGgiLCJsaXN0IiwibGVuZ3RoTGlzdCIsIm1hcCIsImFwcGx5IiwiZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzIiwiZWFjaEFuZ2xlIiwiQ29vcmRpbmF0ZVNlcmllcyIsImdldFRvb2xUaXBEYXRhIiwic2VyaWVzRGF0YSIsImNhdGVnb3JpZXMiLCJvcHRpb24iLCJhcmd1bWVudHMiLCJjYWxQb2ludHMiLCJmaWx0ZXJQb2ludHMiLCJ0ZXh0TGlzdCIsInRpdGxlVGV4dCIsIm9mZnNldCIsInJvdW5kIiwiZ2V0TWl4VG9vbFRpcERhdGEiLCJmaWx0ZXIiLCJnZXRDYW5kbGVUb29sVGlwRGF0YSIsInVwQ29sb3IiLCJ1cEZpbGwiLCJkb3duQ29sb3IiLCJkb3duRmlsbCIsInRleHQxIiwidGV4dDIiLCJ0ZXh0MyIsInRleHQ0IiwidmFsaWRDYWxQb2ludHMiLCJmaW5kQ3VycmVudEluZGV4IiwiY3VycmVudFBvaW50cyIsImN1cnJlbnQiLCJzcGFjaW5nIiwiYm91bmRhcnlHYXAiLCJpc0luRXhhY3RDaGFydEFyZWEiLCJ0aW1lUG9pbnRzIiwicG9pbnRWYWx1ZSIsInBvaW50SW5kZXgiLCJtaW5WYWx1ZSIsImZpbmRCYXJDaGFydEN1cnJlbnRJbmRleCIsInlBeGlzUG9pbnRzIiwiZmluZExlZ2VuZEluZGV4IiwibGVnZW5kRGF0YSIsImN1cnJlbnRJbmRleCIsImdhcCIsImlzSW5FeGFjdExlZ2VuZEFyZWEiLCJmaW5kUmFkYXJDaGFydEN1cnJlbnRJbmRleCIsInJhZGFyRGF0YSIsImNvdW50IiwiZWFjaEFuZ2xlQXJlYSIsImlzSW5FeGFjdFBpZUNoYXJ0QXJlYSIsInJhZGl1cyIsImZpeEFuZ2xlIiwiYXRhbjIiLCJhbmdsZUxpc3QiLCJyYW5nZVN0YXJ0IiwicmFuZ2VFbmQiLCJmaW5kRnVubmVsQ2hhcnRDdXJyZW50SW5kZXgiLCJmdW5uZWxEYXRhIiwiZnVubmVsQXJlYSIsImZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgiLCJ3b3JkRGF0YSIsImZpbmRNYXBDaGFydEN1cnJlbnRJbmRleCIsImNEYXRhIiwibWFwRGF0YSIsInRtcCIsInBvaW50VG9Db29yZGluYXRlIiwiYm91bmRzIiwic2NhbGUiLCJ4b2Zmc2V0IiwieW9mZnNldCIsInBvaSIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJpc1BvaVdpdGhpblBvbHkiLCJtZXJjYXRvciIsImZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgiLCJwaWVEYXRhIiwiZ2V0Um9zZURhdGFQb2ludHMiLCJfc2VyaWVzXyIsInJvc2UiLCJvZmZzZXRBbmdsZSIsIl9zdGFydF8iLCJfcm9zZV9wcm9wb3J0aW9uXyIsImZpbmRQaWVDaGFydEN1cnJlbnRJbmRleCIsImdldFBpZURhdGFQb2ludHMiLCJwaWUiLCJyaW5nIiwiX3Byb3BvcnRpb25fIiwicG93Iiwic3BsaXRQb2ludHMiLCJlYWNoU2VyaWVzIiwibmV3UG9pbnRzIiwiaXRlbXMiLCJjb25uZWN0TnVsbHMiLCJjYWxMZWdlbmREYXRhIiwid2hvbGVXaWR0aCIsIndob2xlSGVpZ2h0Iiwid2lkdGhBcnIiLCJoZWlnaHRBcnIiLCJsZWdlbmQiLCJtYXJnaW4iLCJzaGFwZVdpZHRoIiwic2hhcGVSaWdodCIsImxpbmVIZWlnaHQiLCJsZWdlbmRMaXN0Iiwid2lkdGhDb3VudCIsIndpZHRoQ291bnRBcnIiLCJjdXJyZW50Um93IiwibGVnZW5kVGV4dCIsIml0ZW1XaWR0aCIsIml0ZW1HYXAiLCJsZWdlbmRXaWR0aCIsImZsb2F0IiwibWF4SGVpZ2h0IiwibWF4TGVuZ3RoIiwibGluZU51bSIsInRlbXAiLCJzbGljZSIsIm1heFdpZHRoIiwiY2FsQ2F0ZWdvcmllc0RhdGEiLCJyZXN1bHQiLCJjYXRlZ29yaWVzVGV4dExlbnRoIiwieGl0ZW0iLCJtYXhUZXh0TGVuZ3RoIiwicm90YXRlTGFiZWwiLCJyb3RhdGVBbmdsZSIsInRlbXBIZWlnaHQiLCJzaW4iLCJlbmFibGVTY3JvbGwiLCJzY3JvbGxTaG93IiwiZGlzYWJsZWQiLCJnZXRYQXhpc1RleHRMaXN0Iiwic3RhY2siLCJzb3J0ZWQiLCJzdWJpdGVtIiwicmFuZ2VTcGFuIiwiZWFjaFJhbmdlIiwic3BsaXROdW1iZXIiLCJjYWxYQXhpc0RhdGEiLCJjb2x1bW5zdHlsZSIsImJhciIsInJhbmdlcyIsInJhbmdlc0Zvcm1hdCIsInhBeGlzU2NhbGVWYWx1ZXMiLCJPYmplY3QiLCJnZXRYQXhpc1BvaW50cyIsInRleHRMZW5ndGgiLCJnZXRSYWRhckRhdGFQb2ludHMiLCJwcm9jZXNzIiwicmFkYXJPcHRpb24iLCJyYWRhciIsImVhY2giLCJsaXN0SXRlbSIsInByb3BvcnRpb24iLCJjb3MiLCJfcmFkaXVzXyIsImdldEZ1bm5lbERhdGFQb2ludHMiLCJtaW5SYWRpdXMiLCJkYXRhQXJyIiwicmFkaXVzTGVuZ3RoIiwiZ2V0QXJjYmFyRGF0YVBvaW50cyIsImFyY2Jhck9wdGlvbiIsInRvdGFsQW5nbGUiLCJkaXJlY3Rpb24iLCJnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMiLCJnZXRHYXVnZUF4aXNQb2ludHMiLCJ0ZW1wU3RhcnRBbmdsZSIsIl9zdGFydEFuZ2xlXyIsIl9lbmRBbmdsZV8iLCJnZXRHYXVnZURhdGFQb2ludHMiLCJnYXVnZU9wdGlvbiIsInBvaW50ZXIiLCJfb2xkQW5nbGVfIiwib2xkQW5nbGUiLCJvbGREYXRhIiwiZ2V0UGllVGV4dE1heExlbmd0aCIsInRleHRTaXplIiwiZml4Q29sdW1lRGF0YSIsImNvbHVtbkxlbiIsInNlcmllc0dhcCIsImNhdGVnb3J5R2FwIiwibWl4IiwiY29sdW1uIiwiZml4QmFyRGF0YSIsImZpeENvbHVtZU1ldGVyRGF0YSIsImJvcmRlciIsImZpeENvbHVtZVN0YWNrRGF0YSIsImluZGV4biIsImZpeEJhclN0YWNrRGF0YSIsInNwYWNpbmdWYWxpZCIsImRhdGFDb3VudCIsIml0ZW1Db3VudCIsInN0YXJ0WCIsImVuZFgiLCJnZXRDYW5kbGVEYXRhUG9pbnRzIiwidmFsaWRIZWlnaHQiLCJjUG9pbnRzIiwiaW5kZXhzIiwicG9pbnQiLCJnZXREYXRhUG9pbnRzIiwidmFsaWRXaWR0aCIsInhyYW5nZXMiLCJ4bWluUmFuZ2UiLCJ4bWF4UmFuZ2UiLCJzaGlmdCIsInBvcCIsInQiLCJnZXRNb3VudERhdGFQb2ludHMiLCJtb3VudE9wdGlvbiIsIm1vdW50V2lkdGgiLCJnZXRCYXJEYXRhUG9pbnRzIiwiZ2V0U3RhY2tEYXRhUG9pbnRzIiwic2VyaWVzSW5kZXgiLCJzdGFja1NlcmllcyIsInZhbHVlMCIsImhlaWdodDAiLCJoZWlnaHRjIiwieTAiLCJnZXRCYXJTdGFja0RhdGFQb2ludHMiLCJ4MCIsImdldFlBeGlzVGV4dExpc3QiLCJ5RGF0YSIsImRhdGFSYW5nZSIsInlBeGlzIiwicmV2ZXJzZSIsImNhbFlBeGlzRGF0YSIsIllMZW5ndGgiLCJyYW5nZXNBcnIiLCJyYW5nZXNGb3JtYXRBcnIiLCJ5QXhpc1dpZHRoQXJyIiwidW5pdCIsInRvZml4IiwieUF4aXNGb250U2l6ZXMiLCJjYWxpYnJhdGlvbiIsInlBeGlzRm9udFNpemUiLCJjYWxUb29sdGlwWUF4aXNEYXRhIiwieUF4aXNEYXRhIiwibWluQXhpcyIsIm1heFZhbCIsIm1pblZhbCIsImNhbE1hcmtMaW5lRGF0YSIsInlBeGlzSW5kZXgiLCJjb250ZXh0Um90YXRlIiwicm90YXRlTG9jayIsInRyYW5zbGF0ZSIsIl9yb3RhdGVfIiwiZHJhd1BvaW50U2hhcGUiLCJzaGFwZSIsImJlZ2luUGF0aCIsImRhdGFQb2ludFNoYXBlVHlwZSIsInNldFN0cm9rZVN0eWxlIiwic2V0RmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsInNldExpbmVXaWR0aCIsIm1vdmVUbyIsImxpbmVUbyIsImFyYyIsInJlY3QiLCJjbG9zZVBhdGgiLCJmaWxsIiwic3Ryb2tlIiwiZHJhd1JpbmdUaXRsZSIsInRpdGxlZm9udFNpemUiLCJ0aXRsZSIsInN1YnRpdGxlZm9udFNpemUiLCJzdWJ0aXRsZSIsInRpdGxlRm9udENvbG9yIiwic3VidGl0bGVGb250Q29sb3IiLCJ0aXRsZUhlaWdodCIsInN1YnRpdGxlSGVpZ2h0IiwidGV4dFdpZHRoIiwic3RhcnRZIiwiZmlsbFRleHQiLCJfdGV4dFdpZHRoIiwiX3N0YXJ0WCIsIl9zdGFydFkiLCJkcmF3UG9pbnRUZXh0IiwidGV4dE9mZnNldCIsInRleHRDb2xvciIsImZvcm1hdFZhbCIsInNldFRleHRBbGlnbiIsImRyYXdNb3VudFBvaW50VGV4dCIsImRyYXdCYXJQb2ludFRleHQiLCJkcmF3R2F1Z2VMYWJlbCIsImNlbnRlclBvc2l0aW9uIiwibGFiZWxPZmZzZXQiLCJzcGxpdEFuZ2xlIiwic3BsaXRMaW5lIiwidG90YWxOdW1iZXIiLCJlbmROdW1iZXIiLCJzdGFydE51bWJlciIsIm5vd0FuZ2xlIiwibm93TnVtYmVyIiwicG9zIiwibGFiZWxUZXh0IiwibGFiZWxDb2xvciIsImRyYXdSYWRhckxhYmVsIiwibGFiZWxQb2ludFNob3ciLCJwb3NQb2ludCIsInBvc1BvaW50QXhpcyIsImxhYmVsUG9pbnRDb2xvciIsImxhYmVsUG9pbnRSYWRpdXMiLCJwb3NSZWxhdGl2ZUNhbnZhcyIsImRyYXdQaWVUZXh0IiwibGluZVJhZGl1cyIsInRleHRPYmplY3RDb2xsZWN0aW9uIiwibGFzdFRleHRPYmplY3QiLCJzZXJpZXNDb252ZXJ0IiwibGFiZWxTaG93Iiwib3JnaW5YMSIsIm9yZ2luWTEiLCJvcmdpblgyIiwib3JnaW5ZMiIsIm9yZ2luWDMiLCJvcmdpblkzIiwidGV4dE9iamVjdCIsImxpbmVTdGFydCIsImxpbmVFbmQiLCJsaW5lU3RhcnRQb2lzdGlvbiIsImxpbmVFbmRQb2lzdGlvbiIsInRleHRQb3NpdGlvbiIsImN1cnZlU3RhcnRYIiwidGV4dFN0YXJ0WCIsInF1YWRyYXRpY0N1cnZlVG8iLCJkcmF3VG9vbFRpcFNwbGl0TGluZSIsInRvb2xUaXBPcHRpb24iLCJ0b29sdGlwIiwiZ3JpZFR5cGUiLCJkYXNoTGVuZ3RoIiwiZW5kWSIsInNldExpbmVEYXNoIiwiZ3JpZENvbG9yIiwieEF4aXNMYWJlbCIsInRleHRYIiwidGV4dFkiLCJsYWJlbEJnQ29sb3IiLCJsYWJlbEJnT3BhY2l0eSIsImxhYmVsRm9udENvbG9yIiwiZHJhd01hcmtMaW5lIiwibWFya0xpbmVPcHRpb24iLCJtYXJrTGluZSIsImxpbmVDb2xvciIsInNob3dMYWJlbCIsImxhYmVsQWxpZ24iLCJsYWJlbE9mZnNldFgiLCJsYWJlbE9mZnNldFkiLCJiZ1dpZHRoIiwiYmdTdGFydFgiLCJiZ1N0YXJ0WSIsImRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUiLCJ5QXhpc0xhYmVsIiwidFN0YXJ0TGVmdCIsInRTdGFydFJpZ2h0IiwiYmdFbmRYIiwiZHJhd1Rvb2xUaXBTcGxpdEFyZWEiLCJhY3RpdmVCZ0NvbG9yIiwiYWN0aXZlQmdPcGFjaXR5IiwiYWN0aXZlV2lkdGgiLCJkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYSIsImRyYXdUb29sVGlwIiwic2hvd0JveCIsInNob3dBcnJvdyIsInNob3dDYXRlZ29yeSIsImJnQ29sb3IiLCJiZ09wYWNpdHkiLCJib3JkZXJDb2xvciIsImJvcmRlcldpZHRoIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyT3BhY2l0eSIsInVuc2hpZnQiLCJsZWdlbmRNYXJnaW5SaWdodCIsImFycm93V2lkdGgiLCJpc092ZXJSaWdodEJvcmRlciIsInRvb2xUaXBXaWR0aCIsInRvb2xUaXBIZWlnaHQiLCJfc2Nyb2xsRGlzdGFuY2VfIiwiZmlsbFJlY3QiLCJkcmF3Q29sdW1uRGF0YVBvaW50cyIsImNvbHVtbk9wdGlvbiIsIm1ldGVyQm9yZGVyIiwibWV0ZXJGaWxsQ29sb3IiLCJiYXJCb3JkZXJDaXJjbGUiLCJiYXJCb3JkZXJSYWRpdXMiLCJsaW5lYXJPcGFjaXR5IiwiY29sb3JTdG9wIiwic2F2ZSIsImxlZnROdW0iLCJyaWdodE51bSIsInRvb2x0aXBQb2ludHMiLCJmaWxsQ29sb3IiLCJzdHJva2VDb2xvciIsImdyZCIsImNyZWF0ZUxpbmVhckdyYWRpZW50IiwiYWRkQ29sb3JTdG9wIiwibGVmdCIsInRvcCIsInIwIiwicjEiLCJyMiIsInIzIiwiZGF0YUxhYmVsIiwicmVzdG9yZSIsImRyYXdNb3VudERhdGFQb2ludHMiLCJiZXppZXJDdXJ2ZVRvIiwiZHJhd0JhckRhdGFQb2ludHMiLCJkcmF3Q2FuZGxlRGF0YVBvaW50cyIsInNlcmllc01BIiwiY2FuZGxlT3B0aW9uIiwiYXZlcmFnZSIsImNhbmRsZSIsInVwTGluZSIsImRvd25MaW5lIiwiZGF5IiwibGVmdFNwYWNlIiwicmlnaHRTcGFjZSIsInNwbGl0UG9pbnRMaXN0Iiwic3RhcnRQb2ludCIsImN0cmxQb2ludCIsImRyYXdBcmVhRGF0YVBvaW50cyIsImFyZWFPcHRpb24iLCJvcGFjaXR5IiwiYWRkTGluZSIsImdyYWRpZW50IiwiZmlyc3RQb2ludCIsImxhc3RQb2ludCIsImxpbmVUeXBlIiwiZHJhd1NjYXR0ZXJEYXRhUG9pbnRzIiwic2NhdHRlck9wdGlvbiIsInNjYXR0ZXIiLCJkcmF3QnViYmxlRGF0YVBvaW50cyIsImJ1YmJsZU9wdGlvbiIsImJ1YmJsZSIsImRyYXdMaW5lRGF0YVBvaW50cyIsImxpbmVPcHRpb24iLCJsaW5lIiwiZHJhd01peERhdGFQb2ludHMiLCJjb2x1bW5JbmRleCIsImNvbHVtbkxlbmd0aCIsImFkZFBvaW50IiwiZHJhd1Rvb2xUaXBCcmlkZ2UiLCJob3JpemVudGFsTGluZSIsImRyYXdYQXhpcyIsInNjcm9sbFkiLCJzY3JvbGxTY3JlZW5XaWR0aCIsInNjcm9sbFRvdGFsV2lkdGgiLCJzY3JvbGxXaWR0aCIsInNjcm9sbExlZnQiLCJzZXRMaW5lQ2FwIiwic2Nyb2xsQmFja2dyb3VuZENvbG9yIiwic2Nyb2xsQ29sb3IiLCJkaXNhYmxlR3JpZCIsImdyaWRFdmFsIiwibWF4WEF4aXNMaXN0TGVuZ3RoIiwibGFiZWxDb3VudCIsInJhdGlvIiwibmV3Q2F0ZWdvcmllcyIsImNnTGVuZ3RoIiwieEF4aXNGb250U2l6ZSIsIl94QXhpc1RleHRBbmdsZV8iLCJzY3JvbGxIZWlnaHQiLCJ0cnVlUG9pbnRzIiwiYXhpc0xpbmUiLCJheGlzTGluZUNvbG9yIiwiZHJhd1lBeGlzR3JpZCIsInhBeGlzZWFjaFNwYWNpbmciLCJUb3RhbFdpZHRoIiwiZHJhd1lBeGlzIiwidFN0YXJ0Q2VudGVyIiwidGV4dEFsaWduIiwidG1wc3RyYXQiLCJnYXB3aWR0aCIsInNob3dUaXRsZSIsInRpdGxlT2Zmc2V0WCIsInRpdGxlT2Zmc2V0WSIsImRyYXdMZWdlbmQiLCJsZWdlbmRBcmVhIiwiYmFja2dyb3VuZENvbG9yIiwiaXRlbUxpc3QiLCJsaXN0SW5kZXgiLCJoaWRkZW5Db2xvciIsImZvbnRUcmFucyIsImRyYXdQaWVEYXRhUG9pbnRzIiwicGllT3B0aW9uIiwiYWN0aXZlT3BhY2l0eSIsImFjdGl2ZVJhZGl1cyIsImxhYmVsV2lkdGgiLCJyaW5nV2lkdGgiLCJjdXN0b21SYWRpdXMiLCJjZW50ZXJDb2xvciIsIl9waWVUZXh0TWF4TGVuZ3RoXyIsImxpbmVKb2luIiwiZmlsbGNvbG9yIiwiY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCIsImNyZWF0ZVJhZGlhbEdyYWRpZW50IiwiaW5uZXJQaWVXaWR0aCIsImRyYXdSb3NlRGF0YVBvaW50cyIsInJvc2VPcHRpb24iLCJkcmF3QXJjYmFyRGF0YVBvaW50cyIsImxpbmVDYXAiLCJhcmNiYXIiLCJjZW50ZXJYIiwiY2VudGVyWSIsImRyYXdHYXVnZURhdGFQb2ludHMiLCJmaXhSYWRpdXMiLCJjaGlsZE51bWJlciIsImNoaWxkV2lkdGgiLCJnYXVnZSIsImlubmVyUmFkaXVzIiwicGllUmFkaXVzIiwiY2hpbGRBbmdsZSIsInByb2MiLCJwb2ludGVyUmFkaXVzIiwiZ3JhZGllbnQzIiwiZWFjaENhdGVnb3JpZXMiLCJjaGlsZGVuZFgiLCJkcmF3UmFkYXJEYXRhUG9pbnRzIiwiYXhpc0xhYmVsIiwiYXhpc0xhYmVsVG9maXgiLCJncmlkQ291bnQiLCJjb29yZGluYXRlQW5nbGUiLCJ4ciIsInlyIiwiX2xvb3AiLCJzdGFydFBvcyIsInJhZGFyRGF0YVBvaW50cyIsInN0ZXBMZW5ndGgiLCJsYWJlbCIsImxvbmxhdDJtZXJjYXRvciIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibG9nIiwidGFuIiwibWVyY2F0b3IybG9ubGF0IiwibG9ubGF0IiwiYXRhbiIsImV4cCIsImdldEJvdW5kaW5nQm94IiwiY29vcmRzIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsImNvb3JkYSIsImNvb3JkaW5hdGVUb1BvaW50IiwicG9pbnRZIiwicG9pbnRYIiwiaXNSYXlJbnRlcnNlY3RzU2VnbWVudCIsInNfcG9pIiwiZV9wb2kiLCJ4c2VnIiwicG9seSIsInNpbnNjIiwiZXBvbHkiLCJkcmF3TWFwRGF0YVBvaW50cyIsIm1hcE9wdGlvbiIsImFjdGl2ZSIsImZpbGxPcGFjaXR5IiwiYWN0aXZlQm9yZGVyQ29sb3IiLCJhY3RpdmVGaWxsQ29sb3IiLCJhY3RpdmVGaWxsT3BhY2l0eSIsInhTY2FsZSIsInlTY2FsZSIsImdhb3NpIiwiY2VudGVyUG9pbnQiLCJwcm9wZXJ0aWVzIiwiY2VudHJvaWQiLCJhY3RpdmVUZXh0Q29sb3IiLCJkcmF3Iiwibm9ybWFsSW50IiwiaXRlciIsImFyciIsInJhbmRvbSIsImNvbGxpc2lvbk5ldyIsImlzSW4iLCJnZXRXb3JkQ2xvdWRQb2ludCIsInRIZWlnaHQiLCJ0V2lkdGgiLCJicmVha251bSIsIlNwaW4iLCJpc1NwaW4iLCJhcmVhdiIsImRyYXdXb3JkQ2xvdWREYXRhUG9pbnRzIiwid29yZE9wdGlvbiIsImF1dG9Db2xvcnMiLCJ3b3JkIiwid29yZENsb3VkRGF0YSIsInN0cm9rZVRleHQiLCJkcmF3RnVubmVsRGF0YVBvaW50cyIsImZ1bm5lbE9wdGlvbiIsIm1pblNpemUiLCJmdW5uZWwiLCJzZXJpZXNOZXciLCJkcmF3RnVubmVsVGV4dCIsImRyYXdGdW5uZWxDZW50ZXJUZXh0IiwiY2VudGVyVGV4dCIsImNlbnRlclRleHRTaXplIiwiY2VudGVyVGV4dENvbG9yIiwiZHJhd0NhbnZhcyIsIlRpbWluZyIsImVhc2VJbiIsImVhc2VPdXQiLCJlYXNlSW5PdXQiLCJsaW5lYXIiLCJBbmltYXRpb24iLCJpc1N0b3AiLCJkdXJhdGlvbiIsInRpbWluZyIsImRlbGF5IiwiY3JlYXRlQW5pbWF0aW9uRnJhbWUiLCJzZXRUaW1lb3V0Iiwic3RlcCIsInRpbWVTdGFtcCIsIkRhdGUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJhbmltYXRpb25GcmFtZSIsInN0YXJ0VGltZVN0YW1wIiwiX3N0ZXAiLCJ0aW1lc3RhbXAiLCJvblByb2Nlc3MiLCJvbkFuaW1hdGlvbkZpbmlzaCIsInRpbWluZ0Z1bmN0aW9uIiwiYmluZCIsInByb3RvdHlwZSIsInN0b3AiLCJkcmF3Q2hhcnRzIiwiX3RoaXMiLCJhbmltYXRpb24iLCJhbmltYXRpb25JbnN0YW5jZSIsIl9jYWxMZWdlbmREYXRhIiwibGVnZW5kSGVpZ2h0IiwiX2NhbFlBeGlzRGF0YSIsIm1heFRpdGxlSGVpZ2h0IiwicmlnaHRJbmRleCIsImxlZnRJbmRleCIsIl9jYWxDYXRlZ29yaWVzRGF0YSIsImNhdGVnb3JpZXNEYXRhIiwic2Nyb2xsQWxpZ24iLCJvZmZzZXRMZWZ0IiwidG90YWxXaWR0aCIsInNjcmVlbldpZHRoIiwiY3VycmVudE9mZnNldCIsInN0YXJ0VG91Y2hYIiwibGFzdE1vdmVUaW1lIiwiY2xlYXJSZWN0IiwiX2RyYXdMaW5lRGF0YVBvaW50cyIsImVuYWJsZU1hcmtMaW5lIiwiX2RyYXdTY2F0dGVyRGF0YVBvaW50cyIsIl9kcmF3QnViYmxlRGF0YVBvaW50cyIsIl9kcmF3TWl4RGF0YVBvaW50cyIsIl9kcmF3Q29sdW1uRGF0YVBvaW50cyIsIl9kcmF3TW91bnREYXRhUG9pbnRzIiwiX2RyYXdCYXJEYXRhUG9pbnRzIiwiX2RyYXdBcmVhRGF0YVBvaW50cyIsImFyY2JhckRhdGEiLCJnYXVnZURhdGEiLCJfZHJhd0NhbmRsZURhdGFQb2ludHMiLCJ1Q2hhcnRzRXZlbnQiLCJldmVudHMiLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuZXIiLCJkZWxFdmVudExpc3RlbmVyIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwicGFyYW1zIiwidUNoYXJ0cyIsImdyaWRTZXQiLCJjYW52YXMyZCIsImNvbmZpZyQkMSIsInRlbXBXaWR0aCIsInN0cm9rZVN0eWxlIiwibGluZVdpZHRoIiwiZm9udCIsImZpbGxTdHlsZSIsImNhbGwiLCJ1cGRhdGVEYXRhIiwiX2dldFhBeGlzUG9pbnRzMCIsInpvb20iLCJjZW50ZXJMZWZ0IiwiTWF4TGVmdCIsImRvYnVsZVpvb20iLCJ0Y3MiLCJjbGllbnRZIiwibnRjcyIsInhsZW5ndGgiLCJtb3ZlQ291bnQiLCJjdHMwIiwiY3RzMSIsIm1vdmVDdXJyZW50MSIsImdldEN1cnJlbnREYXRhSW5kZXgiLCJtb3ZlQ3VycmVudDIiLCJjdXJyZW50RWFjaFNwYWNpbmciLCJjdXJyZW50TGVmdCIsInN0b3BBbmltYXRpb24iLCJfdG91Y2hlcyQiLCJnZXRMZWdlbmREYXRhSW5kZXgiLCJ0b3VjaExlZ2VuZCIsInNob3dUb29sVGlwIiwiX2dldFRvb2xUaXBEYXRhIiwiX2dldE1peFRvb2xUaXBEYXRhIiwic2Nyb2xsU3RhcnQiLCJzY3JvbGwiLCJub3ciLCJMaW1pdCIsInRvdWNoTW92ZUxpbWl0IiwiY3Vyck1vdmVUaW1lIiwiX2Rpc3RhbmNlIiwic2Nyb2xsRW5kIiwiX3Njcm9sbE9wdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUViLElBQUlBLE1BQU0sR0FBRztFQUNYQyxPQUFPLEVBQUUsaUJBQWlCO0VBQzFCQyxVQUFVLEVBQUUsRUFBRTtFQUNkQyxXQUFXLEVBQUUsRUFBRTtFQUNmQyxnQkFBZ0IsRUFBRSxDQUFDO0VBQ25CQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDekJDLFVBQVUsRUFBRSxDQUFDO0VBQ2JDLE1BQU0sRUFBRSxLQUFLO0VBQ2JDLFFBQVEsRUFBRSxFQUFFO0VBQ1pDLFNBQVMsRUFBRSxTQUFTO0VBQ3BCQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7RUFDeERDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0VBQzFHQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztFQUNoSEMsbUJBQW1CLEVBQUUsRUFBRTtFQUN2QkMsbUJBQW1CLEVBQUUsQ0FBQztFQUN0QkMsYUFBYSxFQUFFLEVBQUU7RUFDakJDLGdCQUFnQixFQUFFLEVBQUU7RUFDcEJDLGNBQWMsRUFBRSxDQUFDO0VBQ2pCQyxpQkFBaUIsRUFBRSxTQUFTO0VBQzVCQyxjQUFjLEVB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LElBQUksQ0FBQ2UsWUFBWSxDQUFDb3dCLFNBQVMsR0FBRyxDQUFDO0VBQ2pDO0FBQ0YsQ0FBQztBQUFDLGVBRWFwQixPQUFPO0FBQUEsMkIiLCJmaWxlIjoiMTI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogdUNoYXJ0cyAoUilcclxuICog6auY5oCn6IO96Leo5bmz5Y+w5Zu+6KGo5bqT77yM5pSv5oyBSDXjgIFBUFDjgIHlsI/nqIvluo/vvIjlvq7kv6Ev5pSv5LuY5a6dL+eZvuW6pi/lpLTmnaEvUVEvMzYwL+W/q+aJi++8ieOAgVZ1ZeOAgVRhcm/nrYnmlK/mjIFjYW52YXPnmoTmoYbmnrblubPlj7BcclxuICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjIgUUlVTiAoUikg56eL5LqRIGh0dHBzOi8vd3d3LnVjaGFydHMuY24gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxyXG4gKiDlpI3liLbkvb/nlKjor7fkv53nlZnmnKzmrrXms6jph4rvvIzmhJ/osKLmlK/mjIHlvIDmupDvvIFcclxuICogXHJcbiAqIHVDaGFydHMgKFIpIOWumOaWuee9keermVxyXG4gKiBodHRwczovL3d3dy51Q2hhcnRzLmNuXHJcbiAqIFxyXG4gKiDlvIDmupDlnLDlnYA6XHJcbiAqIGh0dHBzOi8vZ2l0ZWUuY29tL3VDaGFydHMvdUNoYXJ0c1xyXG4gKiBcclxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxyXG4gKiBodHRwOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI3MVxyXG4gKiBcclxuICovXHJcblxyXG4ndXNlIHN0cmljdCc7XHJcblxyXG52YXIgY29uZmlnID0ge1xyXG4gIHZlcnNpb246ICd2Mi40LjQtMjAyMjExMDInLFxyXG4gIHlBeGlzV2lkdGg6IDE1LFxyXG4gIHhBeGlzSGVpZ2h0OiAyMixcclxuICB4QXhpc1RleHRQYWRkaW5nOiAzLFxyXG4gIHBhZGRpbmc6IFsxMCwgMTAsIDEwLCAxMF0sXHJcbiAgcGl4ZWxSYXRpbzogMSxcclxuICByb3RhdGU6IGZhbHNlLFxyXG4gIGZvbnRTaXplOiAxMyxcclxuICBmb250Q29sb3I6ICcjNjY2NjY2JyxcclxuICBkYXRhUG9pbnRTaGFwZTogWydjaXJjbGUnLCAnY2lyY2xlJywgJ2NpcmNsZScsICdjaXJjbGUnXSxcclxuICBjb2xvcjogWycjMTg5MEZGJywgJyM5MUNCNzQnLCAnI0ZBQzg1OCcsICcjRUU2NjY2JywgJyM3M0MwREUnLCAnIzNDQTI3MicsICcjRkM4NDUyJywgJyM5QTYwQjQnLCAnI2VhN2NjYyddLFxyXG4gIGxpbmVhckNvbG9yOiBbJyMwRUUyRjgnLCAnIzJCRENBOCcsICcjRkE3RDhEJywgJyNFQjg4RTInLCAnIzJBRTNBMCcsICcjMEVFMkY4JywgJyNFQjg4RTInLCAnIzY3NzNFMycsICcjRjc4QTg1J10sXHJcbiAgcGllQ2hhcnRMaW5lUGFkZGluZzogMTUsXHJcbiAgcGllQ2hhcnRUZXh0UGFkZGluZzogNSxcclxuICB0aXRsZUZvbnRTaXplOiAyMCxcclxuICBzdWJ0aXRsZUZvbnRTaXplOiAxNSxcclxuICB0b29sVGlwUGFkZGluZzogMyxcclxuICB0b29sVGlwQmFja2dyb3VuZDogJyMwMDAwMDAnLFxyXG4gIHRvb2xUaXBPcGFjaXR5OiAwLjcsXHJcbiAgdG9vbFRpcExpbmVIZWlnaHQ6IDIwLFxyXG4gIHJhZGFyTGFiZWxUZXh0TWFyZ2luOiAxMyxcclxufTtcclxuXHJcbnZhciBhc3NpZ24gPSBmdW5jdGlvbih0YXJnZXQsIC4uLnZhckFyZ3MpIHtcclxuICBpZiAodGFyZ2V0ID09IG51bGwpIHtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1t1Q2hhcnRzXSBDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QnKTtcclxuICB9XHJcbiAgaWYgKCF2YXJBcmdzIHx8IHZhckFyZ3MubGVuZ3RoIDw9IDApIHtcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgfVxyXG4gIC8vIOa3seW6puWQiOW5tuWvueixoVxyXG4gIGZ1bmN0aW9uIGRlZXBBc3NpZ24ob2JqMSwgb2JqMikge1xyXG4gICAgZm9yIChsZXQga2V5IGluIG9iajIpIHtcclxuICAgICAgb2JqMVtrZXldID0gb2JqMVtrZXldICYmIG9iajFba2V5XS50b1N0cmluZygpID09PSBcIltvYmplY3QgT2JqZWN0XVwiID9cclxuICAgICAgICBkZWVwQXNzaWduKG9iajFba2V5XSwgb2JqMltrZXldKSA6IG9iajFba2V5XSA9IG9iajJba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmoxO1xyXG4gIH1cclxuICB2YXJBcmdzLmZvckVhY2godmFsID0+IHtcclxuICAgIHRhcmdldCA9IGRlZXBBc3NpZ24odGFyZ2V0LCB2YWwpO1xyXG4gIH0pO1xyXG4gIHJldHVybiB0YXJnZXQ7XHJcbn07XHJcblxyXG52YXIgdXRpbCA9IHtcclxuICB0b0ZpeGVkOiBmdW5jdGlvbiB0b0ZpeGVkKG51bSwgbGltaXQpIHtcclxuICAgIGxpbWl0ID0gbGltaXQgfHwgMjtcclxuICAgIGlmICh0aGlzLmlzRmxvYXQobnVtKSkge1xyXG4gICAgICBudW0gPSBudW0udG9GaXhlZChsaW1pdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVtO1xyXG4gIH0sXHJcbiAgaXNGbG9hdDogZnVuY3Rpb24gaXNGbG9hdChudW0pIHtcclxuICAgIHJldHVybiBudW0gJSAxICE9PSAwO1xyXG4gIH0sXHJcbiAgYXBwcm94aW1hdGVseUVxdWFsOiBmdW5jdGlvbiBhcHByb3hpbWF0ZWx5RXF1YWwobnVtMSwgbnVtMikge1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKG51bTEgLSBudW0yKSA8IDFlLTEwO1xyXG4gIH0sXHJcbiAgaXNTYW1lU2lnbjogZnVuY3Rpb24gaXNTYW1lU2lnbihudW0xLCBudW0yKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMobnVtMSkgPT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgPT09IG51bTIgfHwgTWF0aC5hYnMobnVtMSkgIT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgIT09IG51bTI7XHJcbiAgfSxcclxuICBpc1NhbWVYQ29vcmRpbmF0ZUFyZWE6IGZ1bmN0aW9uIGlzU2FtZVhDb29yZGluYXRlQXJlYShwMSwgcDIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzU2FtZVNpZ24ocDEueCwgcDIueCk7XHJcbiAgfSxcclxuICBpc0NvbGxpc2lvbjogZnVuY3Rpb24gaXNDb2xsaXNpb24ob2JqMSwgb2JqMikge1xyXG4gICAgb2JqMS5lbmQgPSB7fTtcclxuICAgIG9iajEuZW5kLnggPSBvYmoxLnN0YXJ0LnggKyBvYmoxLndpZHRoO1xyXG4gICAgb2JqMS5lbmQueSA9IG9iajEuc3RhcnQueSAtIG9iajEuaGVpZ2h0O1xyXG4gICAgb2JqMi5lbmQgPSB7fTtcclxuICAgIG9iajIuZW5kLnggPSBvYmoyLnN0YXJ0LnggKyBvYmoyLndpZHRoO1xyXG4gICAgb2JqMi5lbmQueSA9IG9iajIuc3RhcnQueSAtIG9iajIuaGVpZ2h0O1xyXG4gICAgdmFyIGZsYWcgPSBvYmoyLnN0YXJ0LnggPiBvYmoxLmVuZC54IHx8IG9iajIuZW5kLnggPCBvYmoxLnN0YXJ0LnggfHwgb2JqMi5lbmQueSA+IG9iajEuc3RhcnQueSB8fCBvYmoyLnN0YXJ0LnkgPCBvYmoxLmVuZC55O1xyXG4gICAgcmV0dXJuICFmbGFnO1xyXG4gIH1cclxufTtcclxuXHJcbi8v5YW85a65SDXngrnlh7vkuovku7ZcclxuZnVuY3Rpb24gZ2V0SDVPZmZzZXQoZSkge1xyXG4gIGUubXAgPSB7XHJcbiAgICBjaGFuZ2VkVG91Y2hlczogW11cclxuICB9O1xyXG4gIGUubXAuY2hhbmdlZFRvdWNoZXMucHVzaCh7XHJcbiAgICB4OiBlLm9mZnNldFgsXHJcbiAgICB5OiBlLm9mZnNldFlcclxuICB9KTtcclxuICByZXR1cm4gZTtcclxufVxyXG5cclxuLy8gaGV4IOi9rCByZ2JhXHJcbmZ1bmN0aW9uIGhleFRvUmdiKGhleFZhbHVlLCBvcGMpIHtcclxuICB2YXIgcmd4ID0gL14jPyhbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKSQvaTtcclxuICB2YXIgaGV4ID0gaGV4VmFsdWUucmVwbGFjZShyZ3gsIGZ1bmN0aW9uKG0sIHIsIGcsIGIpIHtcclxuICAgIHJldHVybiByICsgciArIGcgKyBnICsgYiArIGI7XHJcbiAgfSk7XHJcbiAgdmFyIHJnYiA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXgpO1xyXG4gIHZhciByID0gcGFyc2VJbnQocmdiWzFdLCAxNik7XHJcbiAgdmFyIGcgPSBwYXJzZUludChyZ2JbMl0sIDE2KTtcclxuICB2YXIgYiA9IHBhcnNlSW50KHJnYlszXSwgMTYpO1xyXG4gIHJldHVybiAncmdiYSgnICsgciArICcsJyArIGcgKyAnLCcgKyBiICsgJywnICsgb3BjICsgJyknO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kUmFuZ2UobnVtLCB0eXBlLCBsaW1pdCkge1xyXG4gIGlmIChpc05hTihudW0pKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t1Q2hhcnRzXSBzZXJpZXPmlbDmja7pnIDkuLpOdW1iZXLmoLzlvI8nKTtcclxuICB9XHJcbiAgbGltaXQgPSBsaW1pdCB8fCAxMDtcclxuICB0eXBlID0gdHlwZSA/IHR5cGUgOiAndXBwZXInO1xyXG4gIHZhciBtdWx0aXBsZSA9IDE7XHJcbiAgd2hpbGUgKGxpbWl0IDwgMSkge1xyXG4gICAgbGltaXQgKj0gMTA7XHJcbiAgICBtdWx0aXBsZSAqPSAxMDtcclxuICB9XHJcbiAgaWYgKHR5cGUgPT09ICd1cHBlcicpIHtcclxuICAgIG51bSA9IE1hdGguY2VpbChudW0gKiBtdWx0aXBsZSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIG51bSA9IE1hdGguZmxvb3IobnVtICogbXVsdGlwbGUpO1xyXG4gIH1cclxuICB3aGlsZSAobnVtICUgbGltaXQgIT09IDApIHtcclxuICAgIGlmICh0eXBlID09PSAndXBwZXInKSB7XHJcbiAgICAgIGlmIChudW0gPT0gbnVtICsgMSkgeyAvL+S/ruWkjeaVsOaNruWAvOi/h+Wkp251bSsr5peg5pWI55qEYnVnIGJ5IOWQkeaXpeiRtSBAeHJrX2p5XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgbnVtKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBudW0tLTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG51bSAvIG11bHRpcGxlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxDYW5kbGVNQShkYXlBcnIsIG5hbWVBcnIsIGNvbG9yQXJyLCBrZGF0YSkge1xyXG4gIGxldCBzZXJpZXNUZW1wID0gW107XHJcbiAgZm9yIChsZXQgayA9IDA7IGsgPCBkYXlBcnIubGVuZ3RoOyBrKyspIHtcclxuICAgIGxldCBzZXJpZXNJdGVtID0ge1xyXG4gICAgICBkYXRhOiBbXSxcclxuICAgICAgbmFtZTogbmFtZUFycltrXSxcclxuICAgICAgY29sb3I6IGNvbG9yQXJyW2tdXHJcbiAgICB9O1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGtkYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChpIDwgZGF5QXJyW2tdKSB7XHJcbiAgICAgICAgc2VyaWVzSXRlbS5kYXRhLnB1c2gobnVsbCk7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHN1bSA9IDA7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGF5QXJyW2tdOyBqKyspIHtcclxuICAgICAgICBzdW0gKz0ga2RhdGFbaSAtIGpdWzFdO1xyXG4gICAgICB9XHJcbiAgICAgIHNlcmllc0l0ZW0uZGF0YS5wdXNoKCsoc3VtIC8gZGF5QXJyW2tdKS50b0ZpeGVkKDMpKTtcclxuICAgIH1cclxuICAgIHNlcmllc1RlbXAucHVzaChzZXJpZXNJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIHNlcmllc1RlbXA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFZhbGlkRGlzdGFuY2Uoc2VsZiwgZGlzdGFuY2UsIGNoYXJ0RGF0YSwgY29uZmlnLCBvcHRzKSB7XHJcbiAgdmFyIGRhdGFDaGFydEFyZWFXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGRhdGFDaGFydFdpZHRoID0gY2hhcnREYXRhLmVhY2hTcGFjaW5nICogKG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS54QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICBpZihvcHRzLnR5cGUgPT0gJ21vdW50JyAmJiBvcHRzLmV4dHJhICYmIG9wdHMuZXh0cmEubW91bnQgJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA+IDEpe1xyXG4gICAgaWYob3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvPjIpIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA9IDJcclxuICAgIGRhdGFDaGFydFdpZHRoICs9IChvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gLSAxKSpjaGFydERhdGEuZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHZhciB2YWxpZERpc3RhbmNlID0gZGlzdGFuY2U7XHJcbiAgaWYgKGRpc3RhbmNlID49IDApIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSAwO1xyXG4gICAgc2VsZi51ZXZlbnQudHJpZ2dlcignc2Nyb2xsTGVmdCcpO1xyXG4gICAgc2VsZi5zY3JvbGxPcHRpb24ucG9zaXRpb24gPSAnbGVmdCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAnbGVmdCc7XHJcbiAgfSBlbHNlIGlmIChNYXRoLmFicyhkaXN0YW5jZSkgPj0gZGF0YUNoYXJ0V2lkdGggLSBkYXRhQ2hhcnRBcmVhV2lkdGgpIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSBkYXRhQ2hhcnRBcmVhV2lkdGggLSBkYXRhQ2hhcnRXaWR0aDtcclxuICAgIHNlbGYudWV2ZW50LnRyaWdnZXIoJ3Njcm9sbFJpZ2h0Jyk7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9ICdyaWdodCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAncmlnaHQnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9IGRpc3RhbmNlXHJcbiAgICBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uID0gZGlzdGFuY2U7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZERpc3RhbmNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0luQW5nbGVSYW5nZShhbmdsZSwgc3RhcnRBbmdsZSwgZW5kQW5nbGUpIHtcclxuICBmdW5jdGlvbiBhZGp1c3QoYW5nbGUpIHtcclxuICAgIHdoaWxlIChhbmdsZSA8IDApIHtcclxuICAgICAgYW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoYW5nbGUgPiAyICogTWF0aC5QSSkge1xyXG4gICAgICBhbmdsZSAtPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbmdsZTtcclxuICB9XHJcbiAgYW5nbGUgPSBhZGp1c3QoYW5nbGUpO1xyXG4gIHN0YXJ0QW5nbGUgPSBhZGp1c3Qoc3RhcnRBbmdsZSk7XHJcbiAgZW5kQW5nbGUgPSBhZGp1c3QoZW5kQW5nbGUpO1xyXG4gIGlmIChzdGFydEFuZ2xlID4gZW5kQW5nbGUpIHtcclxuICAgIGVuZEFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgaWYgKGFuZ2xlIDwgc3RhcnRBbmdsZSkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGFuZ2xlID49IHN0YXJ0QW5nbGUgJiYgYW5nbGUgPD0gZW5kQW5nbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGkpIHtcclxuICBmdW5jdGlvbiBpc05vdE1pZGRsZVBvaW50KHBvaW50cywgaSkge1xyXG4gICAgaWYgKHBvaW50c1tpIC0gMV0gJiYgcG9pbnRzW2kgKyAxXSkge1xyXG4gICAgICByZXR1cm4gcG9pbnRzW2ldLnkgPj0gTWF0aC5tYXgocG9pbnRzW2kgLSAxXS55LCBwb2ludHNbaSArIDFdLnkpIHx8IHBvaW50c1tpXS55IDw9IE1hdGgubWluKHBvaW50c1tpIC0gMV0ueSxcclxuICAgICAgICBwb2ludHNbaSArIDFdLnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBmdW5jdGlvbiBpc05vdE1pZGRsZVBvaW50WChwb2ludHMsIGkpIHtcclxuICAgIGlmIChwb2ludHNbaSAtIDFdICYmIHBvaW50c1tpICsgMV0pIHtcclxuICAgICAgcmV0dXJuIHBvaW50c1tpXS54ID49IE1hdGgubWF4KHBvaW50c1tpIC0gMV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwb2ludHNbaV0ueCA8PSBNYXRoLm1pbihwb2ludHNbaSAtIDFdLngsXHJcbiAgICAgICAgcG9pbnRzW2kgKyAxXS54KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgdmFyIGEgPSAwLjI7XHJcbiAgdmFyIGIgPSAwLjI7XHJcbiAgdmFyIHBBeCA9IG51bGw7XHJcbiAgdmFyIHBBeSA9IG51bGw7XHJcbiAgdmFyIHBCeCA9IG51bGw7XHJcbiAgdmFyIHBCeSA9IG51bGw7XHJcbiAgaWYgKGkgPCAxKSB7XHJcbiAgICBwQXggPSBwb2ludHNbMF0ueCArIChwb2ludHNbMV0ueCAtIHBvaW50c1swXS54KSAqIGE7XHJcbiAgICBwQXkgPSBwb2ludHNbMF0ueSArIChwb2ludHNbMV0ueSAtIHBvaW50c1swXS55KSAqIGE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54ICsgKHBvaW50c1tpICsgMV0ueCAtIHBvaW50c1tpIC0gMV0ueCkgKiBhO1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnkgKyAocG9pbnRzW2kgKyAxXS55IC0gcG9pbnRzW2kgLSAxXS55KSAqIGE7XHJcbiAgfVxyXG5cclxuICBpZiAoaSA+IHBvaW50cy5sZW5ndGggLSAzKSB7XHJcbiAgICB2YXIgbGFzdCA9IHBvaW50cy5sZW5ndGggLSAxO1xyXG4gICAgcEJ4ID0gcG9pbnRzW2xhc3RdLnggLSAocG9pbnRzW2xhc3RdLnggLSBwb2ludHNbbGFzdCAtIDFdLngpICogYjtcclxuICAgIHBCeSA9IHBvaW50c1tsYXN0XS55IC0gKHBvaW50c1tsYXN0XS55IC0gcG9pbnRzW2xhc3QgLSAxXS55KSAqIGI7XHJcbiAgfSBlbHNlIHtcclxuICAgIHBCeCA9IHBvaW50c1tpICsgMV0ueCAtIChwb2ludHNbaSArIDJdLnggLSBwb2ludHNbaV0ueCkgKiBiO1xyXG4gICAgcEJ5ID0gcG9pbnRzW2kgKyAxXS55IC0gKHBvaW50c1tpICsgMl0ueSAtIHBvaW50c1tpXS55KSAqIGI7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50KHBvaW50cywgaSArIDEpKSB7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnk7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50KHBvaW50cywgaSkpIHtcclxuICAgIHBBeSA9IHBvaW50c1tpXS55O1xyXG4gIH1cclxuICBpZiAoaXNOb3RNaWRkbGVQb2ludFgocG9pbnRzLCBpICsgMSkpIHtcclxuICAgIHBCeCA9IHBvaW50c1tpICsgMV0ueDtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnRYKHBvaW50cywgaSkpIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54O1xyXG4gIH1cclxuICBpZiAocEF5ID49IE1hdGgubWF4KHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpIHx8IHBBeSA8PSBNYXRoLm1pbihwb2ludHNbaV0ueSwgcG9pbnRzW2kgKyAxXS55KSkge1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnk7XHJcbiAgfVxyXG4gIGlmIChwQnkgPj0gTWF0aC5tYXgocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcEJ5IDw9IE1hdGgubWluKHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpKSB7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnk7XHJcbiAgfVxyXG4gIGlmIChwQXggPj0gTWF0aC5tYXgocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkgfHwgcEF4IDw9IE1hdGgubWluKHBvaW50c1tpXS54LCBwb2ludHNbaSArIDFdLngpKSB7XHJcbiAgICBwQXggPSBwb2ludHNbaV0ueDtcclxuICB9XHJcbiAgaWYgKHBCeCA+PSBNYXRoLm1heChwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwQnggPD0gTWF0aC5taW4ocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkpIHtcclxuICAgIHBCeCA9IHBvaW50c1tpICsgMV0ueDtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGN0ckE6IHtcclxuICAgICAgeDogcEF4LFxyXG4gICAgICB5OiBwQXlcclxuICAgIH0sXHJcbiAgICBjdHJCOiB7XHJcbiAgICAgIHg6IHBCeCxcclxuICAgICAgeTogcEJ5XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKHgsIHksIGNlbnRlcikge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiBjZW50ZXIueCArIHgsXHJcbiAgICB5OiBjZW50ZXIueSAtIHlcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBhdm9pZENvbGxpc2lvbihvYmosIHRhcmdldCkge1xyXG4gIGlmICh0YXJnZXQpIHtcclxuICAgIC8vIGlzIGNvbGxpc2lvbiB0ZXN0XHJcbiAgICB3aGlsZSAodXRpbC5pc0NvbGxpc2lvbihvYmosIHRhcmdldCkpIHtcclxuICAgICAgaWYgKG9iai5zdGFydC54ID4gMCkge1xyXG4gICAgICAgIG9iai5zdGFydC55LS07XHJcbiAgICAgIH0gZWxzZSBpZiAob2JqLnN0YXJ0LnggPCAwKSB7XHJcbiAgICAgICAgb2JqLnN0YXJ0LnkrKztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAob2JqLnN0YXJ0LnkgPiAwKSB7XHJcbiAgICAgICAgICBvYmouc3RhcnQueSsrO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmouc3RhcnQueS0tO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhQaWVTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpe1xyXG4gIGxldCBwaWVTZXJpZXNBcnIgPSBbXTtcclxuICBpZihzZXJpZXMubGVuZ3RoPjAgJiYgc2VyaWVzWzBdLmRhdGEuY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpe1xyXG4gICAgb3B0cy5fcGllU2VyaWVzXyA9IHNlcmllcztcclxuICAgIGxldCBvbGRzZXJpZXMgPSBzZXJpZXNbMF0uZGF0YTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2xkc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG9sZHNlcmllc1tpXS5mb3JtYXR0ZXIgPSBzZXJpZXNbMF0uZm9ybWF0dGVyO1xyXG4gICAgICBvbGRzZXJpZXNbaV0uZGF0YSA9IG9sZHNlcmllc1tpXS52YWx1ZTtcclxuICAgICAgcGllU2VyaWVzQXJyLnB1c2gob2xkc2VyaWVzW2ldKTtcclxuICAgIH1cclxuICAgIG9wdHMuc2VyaWVzID0gcGllU2VyaWVzQXJyO1xyXG4gIH1lbHNle1xyXG4gICAgcGllU2VyaWVzQXJyID0gc2VyaWVzO1xyXG4gIH1cclxuICByZXR1cm4gcGllU2VyaWVzQXJyO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxsU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIGluZGV4ID0gMDtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpZiAoIWl0ZW0uY29sb3IpIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGNvbmZpZy5jb2xvcltpbmRleF07XHJcbiAgICAgIGluZGV4ID0gKGluZGV4ICsgMSkgJSBjb25maWcuY29sb3IubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmxpbmVhckluZGV4KSB7XHJcbiAgICAgIGl0ZW0ubGluZWFySW5kZXggPSBpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmluZGV4KSB7XHJcbiAgICAgIGl0ZW0uaW5kZXggPSAwO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLnR5cGUpIHtcclxuICAgICAgaXRlbS50eXBlID0gb3B0cy50eXBlO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBpdGVtLnNob3cgPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICBpdGVtLnNob3cgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLnR5cGUpIHtcclxuICAgICAgaXRlbS50eXBlID0gb3B0cy50eXBlO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLnBvaW50U2hhcGUpIHtcclxuICAgICAgaXRlbS5wb2ludFNoYXBlID0gXCJjaXJjbGVcIjtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5sZWdlbmRTaGFwZSkge1xyXG4gICAgICBzd2l0Y2ggKGl0ZW0udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwibGluZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY29sdW1uJzpcclxuICAgICAgICBjYXNlICdiYXInOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwicmVjdFwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYXJlYSc6XHJcbiAgICAgICAgY2FzZSAnbW91bnQnOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwidHJpYW5nbGVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJjaXJjbGVcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxsQ3VzdG9tQ29sb3IobGluZWFyVHlwZSwgY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKSB7XHJcbiAgdmFyIG5ld2NvbG9yID0gY3VzdG9tQ29sb3IgfHwgW107XHJcbiAgaWYgKGxpbmVhclR5cGUgPT0gJ2N1c3RvbScgJiYgbmV3Y29sb3IubGVuZ3RoID09IDAgKSB7XHJcbiAgICBuZXdjb2xvciA9IGNvbmZpZy5saW5lYXJDb2xvcjtcclxuICB9XHJcbiAgaWYgKGxpbmVhclR5cGUgPT0gJ2N1c3RvbScgJiYgbmV3Y29sb3IubGVuZ3RoIDwgc2VyaWVzLmxlbmd0aCkge1xyXG4gICAgbGV0IGNoYXpoaSA9IHNlcmllcy5sZW5ndGggLSBuZXdjb2xvci5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXpoaTsgaSsrKSB7XHJcbiAgICAgIG5ld2NvbG9yLnB1c2goY29uZmlnLmxpbmVhckNvbG9yWyhpICsgMSkgJSBjb25maWcubGluZWFyQ29sb3IubGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBuZXdjb2xvcjtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0RGF0YVJhbmdlKG1pbkRhdGEsIG1heERhdGEpIHtcclxuICB2YXIgbGltaXQgPSAwO1xyXG4gIHZhciByYW5nZSA9IG1heERhdGEgLSBtaW5EYXRhO1xyXG4gIGlmIChyYW5nZSA+PSAxMDAwMCkge1xyXG4gICAgbGltaXQgPSAxMDAwO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMTAwMCkge1xyXG4gICAgbGltaXQgPSAxMDA7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxMDApIHtcclxuICAgIGxpbWl0ID0gMTA7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxMCkge1xyXG4gICAgbGltaXQgPSA1O1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMSkge1xyXG4gICAgbGltaXQgPSAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4xKSB7XHJcbiAgICBsaW1pdCA9IDAuMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDAwMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDAwMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDAwMTtcclxuICB9IGVsc2Uge1xyXG4gICAgbGltaXQgPSAwLjAwMDAwMTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIG1pblJhbmdlOiBmaW5kUmFuZ2UobWluRGF0YSwgJ2xvd2VyJywgbGltaXQpLFxyXG4gICAgbWF4UmFuZ2U6IGZpbmRSYW5nZShtYXhEYXRhLCAndXBwZXInLCBsaW1pdClcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCkge1xyXG4gIHZhciB3aWR0aCA9IDA7XHJcbiAgdGV4dCA9IFN0cmluZyh0ZXh0KTtcclxuXHJcblxyXG5cclxuICBpZiAoY29udGV4dCAhPT0gZmFsc2UgJiYgY29udGV4dCAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQuc2V0Rm9udFNpemUgJiYgY29udGV4dC5tZWFzdXJlVGV4dCkge1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICByZXR1cm4gY29udGV4dC5tZWFzdXJlVGV4dCh0ZXh0KS53aWR0aDtcclxuICB9IGVsc2Uge1xyXG4gICAgdmFyIHRleHQgPSB0ZXh0LnNwbGl0KCcnKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IHRleHRbaV07XHJcbiAgICAgIGlmICgvW2EtekEtWl0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSA3O1xyXG4gICAgICB9IGVsc2UgaWYgKC9bMC05XS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDUuNTtcclxuICAgICAgfSBlbHNlIGlmICgvXFwuLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi43O1xyXG4gICAgICB9IGVsc2UgaWYgKC8tLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMy4yNTtcclxuICAgICAgfSBlbHNlIGlmICgvOi8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDIuNTtcclxuICAgICAgfSBlbHNlIGlmICgvW1xcdTRlMDAtXFx1OWZhNV0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAxMDtcclxuICAgICAgfSBlbHNlIGlmICgvXFwofFxcKS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDMuNzM7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1xccy8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDIuNTtcclxuICAgICAgfSBlbHNlIGlmICgvJS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2lkdGggKz0gMTA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB3aWR0aCAqIGZvbnRTaXplIC8gMTA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkYXRhQ29tYmluZShzZXJpZXMpIHtcclxuICByZXR1cm4gc2VyaWVzLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7XHJcbiAgICByZXR1cm4gKGEuZGF0YSA/IGEuZGF0YSA6IGEpLmNvbmNhdChiLmRhdGEpO1xyXG4gIH0sIFtdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGF0YUNvbWJpbmVTdGFjayhzZXJpZXMsIGxlbikge1xyXG4gIHZhciBzdW0gPSBuZXcgQXJyYXkobGVuKTtcclxuICBmb3IgKHZhciBqID0gMDsgaiA8IHN1bS5sZW5ndGg7IGorKykge1xyXG4gICAgc3VtW2pdID0gMDtcclxuICB9XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3VtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgIHN1bVtqXSArPSBzZXJpZXNbaV0uZGF0YVtqXTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikge1xyXG4gICAgcmV0dXJuIChhLmRhdGEgPyBhLmRhdGEgOiBhKS5jb25jYXQoYi5kYXRhKS5jb25jYXQoc3VtKTtcclxuICB9LCBbXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFRvdWNoZXModG91Y2hlcywgb3B0cywgZSkge1xyXG4gIGxldCB4LCB5O1xyXG4gIGlmICh0b3VjaGVzLmNsaWVudFgpIHtcclxuICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICB5ID0gb3B0cy5oZWlnaHQgLSB0b3VjaGVzLmNsaWVudFggKiBvcHRzLnBpeDtcclxuICAgICAgeCA9ICh0b3VjaGVzLnBhZ2VZIC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcCAtIChvcHRzLmhlaWdodCAvIG9wdHMucGl4IC8gMikgKiAob3B0cy5waXggLSAxKSkgKiBvcHRzLnBpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHggPSB0b3VjaGVzLmNsaWVudFggKiBvcHRzLnBpeDtcclxuICAgICAgeSA9ICh0b3VjaGVzLnBhZ2VZIC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcCAtIChvcHRzLmhlaWdodCAvIG9wdHMucGl4IC8gMikgKiAob3B0cy5waXggLSAxKSkgKiBvcHRzLnBpeDtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgIHkgPSBvcHRzLmhlaWdodCAtIHRvdWNoZXMueCAqIG9wdHMucGl4O1xyXG4gICAgICB4ID0gdG91Y2hlcy55ICogb3B0cy5waXg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB4ID0gdG91Y2hlcy54ICogb3B0cy5waXg7XHJcbiAgICAgIHkgPSB0b3VjaGVzLnkgKiBvcHRzLnBpeDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IHgsXHJcbiAgICB5OiB5XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTZXJpZXNEYXRhSXRlbShzZXJpZXMsIGluZGV4LCBncm91cCkge1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgdmFyIG5ld1NlcmllcyA9IFtdO1xyXG4gIHZhciBpbmRleElzQXJyID0gaW5kZXguY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTE7XHJcbiAgaWYoaW5kZXhJc0Fycil7XHJcbiAgICBsZXQgdGVtcFNlcmllcyA9IGZpbHRlclNlcmllcyhzZXJpZXMpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBuZXdTZXJpZXMucHVzaCh0ZW1wU2VyaWVzW2dyb3VwW2ldXSk7XHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBuZXdTZXJpZXMgPSBzZXJpZXM7XHJcbiAgfTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1Nlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBuZXdTZXJpZXNbaV07XHJcbiAgICBsZXQgdG1waW5kZXggPSAtMTtcclxuICAgIGlmKGluZGV4SXNBcnIpe1xyXG4gICAgICB0bXBpbmRleCA9IGluZGV4W2ldO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRtcGluZGV4ID0gaW5kZXg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhW3RtcGluZGV4XSAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlbS5kYXRhW3RtcGluZGV4XSAhPT0gJ3VuZGVmaW5lZCcgJiYgaXRlbS5zaG93KSB7XHJcbiAgICAgIGxldCBzZXJpZXNJdGVtID0ge307XHJcbiAgICAgIHNlcmllc0l0ZW0uY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBzZXJpZXNJdGVtLnR5cGUgPSBpdGVtLnR5cGU7XHJcbiAgICAgIHNlcmllc0l0ZW0uc3R5bGUgPSBpdGVtLnN0eWxlO1xyXG4gICAgICBzZXJpZXNJdGVtLnBvaW50U2hhcGUgPSBpdGVtLnBvaW50U2hhcGU7XHJcbiAgICAgIHNlcmllc0l0ZW0uZGlzYWJsZUxlZ2VuZCA9IGl0ZW0uZGlzYWJsZUxlZ2VuZDtcclxuICAgICAgc2VyaWVzSXRlbS5uYW1lID0gaXRlbS5uYW1lO1xyXG4gICAgICBzZXJpZXNJdGVtLnNob3cgPSBpdGVtLnNob3c7XHJcbiAgICAgIHNlcmllc0l0ZW0uZGF0YSA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbS5kYXRhW3RtcGluZGV4XSkgOiBpdGVtLmRhdGFbdG1waW5kZXhdO1xyXG4gICAgICBkYXRhLnB1c2goc2VyaWVzSXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBkYXRhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNYXhUZXh0TGlzdExlbmd0aChsaXN0LCBmb250U2l6ZSwgY29udGV4dCkge1xyXG4gIHZhciBsZW5ndGhMaXN0ID0gbGlzdC5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgcmV0dXJuIG1lYXN1cmVUZXh0KGl0ZW0sIGZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICByZXR1cm4gTWF0aC5tYXguYXBwbHkobnVsbCwgbGVuZ3RoTGlzdCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFJhZGFyQ29vcmRpbmF0ZVNlcmllcyhsZW5ndGgpIHtcclxuICB2YXIgZWFjaEFuZ2xlID0gMiAqIE1hdGguUEkgLyBsZW5ndGg7XHJcbiAgdmFyIENvb3JkaW5hdGVTZXJpZXMgPSBbXTtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICBDb29yZGluYXRlU2VyaWVzLnB1c2goZWFjaEFuZ2xlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiBDb29yZGluYXRlU2VyaWVzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4gLTEgKiBpdGVtICsgTWF0aC5QSSAvIDI7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIG9wdHMsIGluZGV4LCBncm91cCwgY2F0ZWdvcmllcykge1xyXG4gIHZhciBvcHRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IHt9O1xyXG4gIHZhciBjYWxQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHM/b3B0cy5jaGFydERhdGEuY2FsUG9pbnRzOltdO1xyXG4gIGxldCBwb2ludHMgPSB7fTtcclxuICBpZihncm91cC5sZW5ndGggPiAwKXtcclxuICAgIGxldCBmaWx0ZXJQb2ludHMgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgZmlsdGVyUG9pbnRzLnB1c2goY2FsUG9pbnRzW2dyb3VwW2ldXSlcclxuICAgIH1cclxuICAgIHBvaW50cyA9IGZpbHRlclBvaW50c1swXVtpbmRleFswXV07XHJcbiAgfWVsc2V7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZihjYWxQb2ludHNbaV1baW5kZXhdKXtcclxuICAgICAgICBwb2ludHMgPSBjYWxQb2ludHNbaV1baW5kZXhdO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICB2YXIgdGV4dExpc3QgPSBzZXJpZXNEYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBsZXQgdGl0bGVUZXh0ID0gbnVsbDtcclxuICAgIGlmIChvcHRzLmNhdGVnb3JpZXMgJiYgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aD4wKSB7XHJcbiAgICAgIHRpdGxlVGV4dCA9IGNhdGVnb3JpZXNbaW5kZXhdO1xyXG4gICAgfTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIHRpdGxlVGV4dCwgaW5kZXgsIG9wdHMpIDogaXRlbS5uYW1lICsgJzogJyArIGl0ZW0uZGF0YSxcclxuICAgICAgY29sb3I6IGl0ZW0uY29sb3JcclxuICAgIH07XHJcbiAgfSk7XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IE1hdGgucm91bmQocG9pbnRzLngpLFxyXG4gICAgeTogTWF0aC5yb3VuZChwb2ludHMueSlcclxuICB9O1xyXG4gIHJldHVybiB7XHJcbiAgICB0ZXh0TGlzdDogdGV4dExpc3QsXHJcbiAgICBvZmZzZXQ6IG9mZnNldFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1peFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIG9wdHMsIGluZGV4LCBjYXRlZ29yaWVzKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDoge307XHJcbiAgdmFyIHBvaW50cyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzW2luZGV4XSArIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nIC8gMjtcclxuICB2YXIgdGV4dExpc3QgPSBzZXJpZXNEYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0ZXh0OiBvcHRpb24uZm9ybWF0dGVyID8gb3B0aW9uLmZvcm1hdHRlcihpdGVtLCBjYXRlZ29yaWVzW2luZGV4XSwgaW5kZXgsIG9wdHMpIDogaXRlbS5uYW1lICsgJzogJyArIGl0ZW0uZGF0YSxcclxuICAgICAgY29sb3I6IGl0ZW0uY29sb3IsXHJcbiAgICAgIGRpc2FibGVMZWdlbmQ6IGl0ZW0uZGlzYWJsZUxlZ2VuZCA/IHRydWUgOiBmYWxzZVxyXG4gICAgfTtcclxuICB9KTtcclxuICB0ZXh0TGlzdCA9IHRleHRMaXN0LmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbS5kaXNhYmxlTGVnZW5kICE9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHZhciBvZmZzZXQgPSB7XHJcbiAgICB4OiBNYXRoLnJvdW5kKHBvaW50cyksXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuICByZXR1cm4ge1xyXG4gICAgdGV4dExpc3Q6IHRleHRMaXN0LFxyXG4gICAgb2Zmc2V0OiBvZmZzZXRcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDYW5kbGVUb29sVGlwRGF0YShzZXJpZXMsIHNlcmllc0RhdGEsIG9wdHMsIGluZGV4LCBjYXRlZ29yaWVzLCBleHRyYSkge1xyXG4gIHZhciBvcHRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gNiAmJiBhcmd1bWVudHNbNl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s2XSA6IHt9O1xyXG4gIHZhciBjYWxQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHM7XHJcbiAgbGV0IHVwQ29sb3IgPSBleHRyYS5jb2xvci51cEZpbGw7XHJcbiAgbGV0IGRvd25Db2xvciA9IGV4dHJhLmNvbG9yLmRvd25GaWxsO1xyXG4gIC8v6aKc6Imy6aG65bqP5Li65byA55uY77yM5pS255uY77yM5pyA5L2O77yM5pyA6auYXHJcbiAgbGV0IGNvbG9yID0gW3VwQ29sb3IsIHVwQ29sb3IsIGRvd25Db2xvciwgdXBDb2xvcl07XHJcbiAgdmFyIHRleHRMaXN0ID0gW107XHJcbiAgc2VyaWVzRGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGluZGV4ID09IDApIHtcclxuICAgICAgaWYgKGl0ZW0uZGF0YVsxXSAtIGl0ZW0uZGF0YVswXSA8IDApIHtcclxuICAgICAgICBjb2xvclsxXSA9IGRvd25Db2xvcjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xvclsxXSA9IHVwQ29sb3I7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMF0gPCBzZXJpZXNbaW5kZXggLSAxXVsxXSkge1xyXG4gICAgICAgIGNvbG9yWzBdID0gZG93bkNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMV0gPCBpdGVtLmRhdGFbMF0pIHtcclxuICAgICAgICBjb2xvclsxXSA9IGRvd25Db2xvcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5kYXRhWzJdID4gc2VyaWVzW2luZGV4IC0gMV1bMV0pIHtcclxuICAgICAgICBjb2xvclsyXSA9IHVwQ29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uZGF0YVszXSA8IHNlcmllc1tpbmRleCAtIDFdWzFdKSB7XHJcbiAgICAgICAgY29sb3JbM10gPSBkb3duQ29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCB0ZXh0MSA9IHtcclxuICAgICAgdGV4dDogJ+W8gOebmO+8micgKyBpdGVtLmRhdGFbMF0sXHJcbiAgICAgIGNvbG9yOiBjb2xvclswXVxyXG4gICAgfTtcclxuICAgIGxldCB0ZXh0MiA9IHtcclxuICAgICAgdGV4dDogJ+aUtuebmO+8micgKyBpdGVtLmRhdGFbMV0sXHJcbiAgICAgIGNvbG9yOiBjb2xvclsxXVxyXG4gICAgfTtcclxuICAgIGxldCB0ZXh0MyA9IHtcclxuICAgICAgdGV4dDogJ+acgOS9ju+8micgKyBpdGVtLmRhdGFbMl0sXHJcbiAgICAgIGNvbG9yOiBjb2xvclsyXVxyXG4gICAgfTtcclxuICAgIGxldCB0ZXh0NCA9IHtcclxuICAgICAgdGV4dDogJ+acgOmrmO+8micgKyBpdGVtLmRhdGFbM10sXHJcbiAgICAgIGNvbG9yOiBjb2xvclszXVxyXG4gICAgfTtcclxuICAgIHRleHRMaXN0LnB1c2godGV4dDEsIHRleHQyLCB0ZXh0MywgdGV4dDQpO1xyXG4gIH0pO1xyXG4gIHZhciB2YWxpZENhbFBvaW50cyA9IFtdO1xyXG4gIHZhciBvZmZzZXQgPSB7XHJcbiAgICB4OiAwLFxyXG4gICAgeTogMFxyXG4gIH07XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYWxQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBwb2ludHMgPSBjYWxQb2ludHNbaV07XHJcbiAgICBpZiAodHlwZW9mIHBvaW50c1tpbmRleF0gIT09ICd1bmRlZmluZWQnICYmIHBvaW50c1tpbmRleF0gIT09IG51bGwpIHtcclxuICAgICAgdmFsaWRDYWxQb2ludHMucHVzaChwb2ludHNbaW5kZXhdKTtcclxuICAgIH1cclxuICB9XHJcbiAgb2Zmc2V0LnggPSBNYXRoLnJvdW5kKHZhbGlkQ2FsUG9pbnRzWzBdWzBdLngpO1xyXG4gIHJldHVybiB7XHJcbiAgICB0ZXh0TGlzdDogdGV4dExpc3QsXHJcbiAgICBvZmZzZXQ6IG9mZnNldFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbHRlclNlcmllcyhzZXJpZXMpIHtcclxuICBsZXQgdGVtcFNlcmllcyA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAoc2VyaWVzW2ldLnNob3cgPT0gdHJ1ZSkge1xyXG4gICAgICB0ZW1wU2VyaWVzLnB1c2goc2VyaWVzW2ldKVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gdGVtcFNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBjYWxQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDA7XHJcbiAgdmFyIGN1cnJlbnQ9eyBpbmRleDotMSwgZ3JvdXA6W10gfTtcclxuICB2YXIgc3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nIC8gMjtcclxuICBsZXQgeEF4aXNQb2ludHMgPSBbXTtcclxuICBpZiAoY2FsUG9pbnRzICYmIGNhbFBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIW9wdHMuY2F0ZWdvcmllcykge1xyXG4gICAgICBzcGFjaW5nID0gMDtcclxuICAgIH1lbHNle1xyXG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHMucHVzaChvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50c1tpXSAtIHNwYWNpbmcpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICgob3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnKSAmJiBvcHRzLnhBeGlzLmJvdW5kYXJ5R2FwID09ICdqdXN0aWZ5Jykge1xyXG4gICAgICAgIHhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChpc0luRXhhY3RDaGFydEFyZWEoY3VycmVudFBvaW50cywgb3B0cywgY29uZmlnKSkge1xyXG4gICAgICBpZiAoIW9wdHMuY2F0ZWdvcmllcykge1xyXG4gICAgICAgIGxldCB0aW1lUG9pbnRzID0gQXJyYXkoY2FsUG9pbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYWxQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRpbWVQb2ludHNbaV0gPSBBcnJheShjYWxQb2ludHNbaV0ubGVuZ3RoKVxyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjYWxQb2ludHNbaV0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgdGltZVBvaW50c1tpXVtqXSA9IChNYXRoLmFicyhjYWxQb2ludHNbaV1bal0ueCAtIGN1cnJlbnRQb2ludHMueCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHBvaW50VmFsdWUgPSAgQXJyYXkodGltZVBvaW50cy5sZW5ndGgpO1xyXG4gICAgICAgIGxldCBwb2ludEluZGV4ID0gIEFycmF5KHRpbWVQb2ludHMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRpbWVQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHBvaW50VmFsdWVbaV0gPSBNYXRoLm1pbi5hcHBseShudWxsLCB0aW1lUG9pbnRzW2ldKTtcclxuICAgICAgICAgIHBvaW50SW5kZXhbaV0gPSB0aW1lUG9pbnRzW2ldLmluZGV4T2YocG9pbnRWYWx1ZVtpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtaW5WYWx1ZSA9IE1hdGgubWluLmFwcGx5KG51bGwsIHBvaW50VmFsdWUpO1xyXG4gICAgICAgIGN1cnJlbnQuaW5kZXggPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50VmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmKHBvaW50VmFsdWVbaV0gPT0gbWluVmFsdWUpe1xyXG4gICAgICAgICAgICBjdXJyZW50Lmdyb3VwLnB1c2goaSk7XHJcbiAgICAgICAgICAgIGN1cnJlbnQuaW5kZXgucHVzaChwb2ludEluZGV4W2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB4QXhpc1BvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICBpZiAoY3VycmVudFBvaW50cy54ICsgb2Zmc2V0ICsgc3BhY2luZyA+IGl0ZW0pIHtcclxuICAgICAgICAgICAgY3VycmVudC5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kQmFyQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgY2FsUG9pbnRzLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAwO1xyXG4gIHZhciBjdXJyZW50PXsgaW5kZXg6LTEsIGdyb3VwOltdIH07XHJcbiAgdmFyIHNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyAvIDI7XHJcbiAgbGV0IHlBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueUF4aXNQb2ludHM7XHJcbiAgaWYgKGNhbFBvaW50cyAmJiBjYWxQb2ludHMubGVuZ3RoID4gMCkge1xyXG4gICAgaWYgKGlzSW5FeGFjdENoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBvcHRzLCBjb25maWcpKSB7XHJcbiAgICAgIHlBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoY3VycmVudFBvaW50cy55ICsgb2Zmc2V0ICsgc3BhY2luZyA+IGl0ZW0pIHtcclxuICAgICAgICAgIGN1cnJlbnQuaW5kZXggPSBpbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY3VycmVudDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZExlZ2VuZEluZGV4KGN1cnJlbnRQb2ludHMsIGxlZ2VuZERhdGEsIG9wdHMpIHtcclxuICBsZXQgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgbGV0IGdhcCA9IDA7XHJcbiAgaWYgKGlzSW5FeGFjdExlZ2VuZEFyZWEoY3VycmVudFBvaW50cywgbGVnZW5kRGF0YS5hcmVhKSkge1xyXG4gICAgbGV0IHBvaW50cyA9IGxlZ2VuZERhdGEucG9pbnRzO1xyXG4gICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gcG9pbnRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGl0ZW0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpbmRleCArPSAxO1xyXG4gICAgICAgIGxldCBhcmVhID0gaXRlbVtqXVsnYXJlYSddO1xyXG4gICAgICAgIGlmIChhcmVhICYmIGN1cnJlbnRQb2ludHMueCA+IGFyZWFbMF0gLSBnYXAgJiYgY3VycmVudFBvaW50cy54IDwgYXJlYVsyXSArIGdhcCAmJiBjdXJyZW50UG9pbnRzLnkgPiBhcmVhWzFdIC0gZ2FwICYmIGN1cnJlbnRQb2ludHMueSA8IGFyZWFbM10gKyBnYXApIHtcclxuICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3VycmVudEluZGV4O1xyXG4gIH1cclxuICByZXR1cm4gY3VycmVudEluZGV4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0luRXhhY3RMZWdlbmRBcmVhKGN1cnJlbnRQb2ludHMsIGFyZWEpIHtcclxuICByZXR1cm4gY3VycmVudFBvaW50cy54ID4gYXJlYS5zdGFydC54ICYmIGN1cnJlbnRQb2ludHMueCA8IGFyZWEuZW5kLnggJiYgY3VycmVudFBvaW50cy55ID4gYXJlYS5zdGFydC55ICYmIGN1cnJlbnRQb2ludHMueSA8IGFyZWEuZW5kLnk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdENoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBvcHRzLCBjb25maWcpIHtcclxuICByZXR1cm4gY3VycmVudFBvaW50cy54IDw9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gKyAxMCAmJiBjdXJyZW50UG9pbnRzLnggPj0gb3B0cy5hcmVhWzNdIC0gMTAgJiYgY3VycmVudFBvaW50cy55ID49IG9wdHMuYXJlYVswXSAmJiBjdXJyZW50UG9pbnRzLnkgPD0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSYWRhckNoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIHJhZGFyRGF0YSwgY291bnQpIHtcclxuICB2YXIgZWFjaEFuZ2xlQXJlYSA9IDIgKiBNYXRoLlBJIC8gY291bnQ7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGlmIChpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgcmFkYXJEYXRhLmNlbnRlciwgcmFkYXJEYXRhLnJhZGl1cykpIHtcclxuICAgIHZhciBmaXhBbmdsZSA9IGZ1bmN0aW9uIGZpeEFuZ2xlKGFuZ2xlKSB7XHJcbiAgICAgIGlmIChhbmdsZSA8IDApIHtcclxuICAgICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYW5nbGUgPiAyICogTWF0aC5QSSkge1xyXG4gICAgICAgIGFuZ2xlIC09IDIgKiBNYXRoLlBJO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhbmdsZTtcclxuICAgIH07XHJcbiAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHJhZGFyRGF0YS5jZW50ZXIueSAtIGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54IC0gcmFkYXJEYXRhLmNlbnRlci54KTtcclxuICAgIGFuZ2xlID0gLTEgKiBhbmdsZTtcclxuICAgIGlmIChhbmdsZSA8IDApIHtcclxuICAgICAgYW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICB9XHJcbiAgICB2YXIgYW5nbGVMaXN0ID0gcmFkYXJEYXRhLmFuZ2xlTGlzdC5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICBpdGVtID0gZml4QW5nbGUoLTEgKiBpdGVtKTtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9KTtcclxuICAgIGFuZ2xlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIHZhciByYW5nZVN0YXJ0ID0gZml4QW5nbGUoaXRlbSAtIGVhY2hBbmdsZUFyZWEgLyAyKTtcclxuICAgICAgdmFyIHJhbmdlRW5kID0gZml4QW5nbGUoaXRlbSArIGVhY2hBbmdsZUFyZWEgLyAyKTtcclxuICAgICAgaWYgKHJhbmdlRW5kIDwgcmFuZ2VTdGFydCkge1xyXG4gICAgICAgIHJhbmdlRW5kICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbmdsZSA+PSByYW5nZVN0YXJ0ICYmIGFuZ2xlIDw9IHJhbmdlRW5kIHx8IGFuZ2xlICsgMiAqIE1hdGguUEkgPj0gcmFuZ2VTdGFydCAmJiBhbmdsZSArIDIgKiBNYXRoLlBJIDw9IHJhbmdlRW5kKSB7XHJcbiAgICAgICAgY3VycmVudEluZGV4ID0gaW5kZXg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gY3VycmVudEluZGV4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kRnVubmVsQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgZnVubmVsRGF0YSkge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gZnVubmVsRGF0YS5zZXJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgIHZhciBpdGVtID0gZnVubmVsRGF0YS5zZXJpZXNbaV07XHJcbiAgICBpZiAoY3VycmVudFBvaW50cy54ID4gaXRlbS5mdW5uZWxBcmVhWzBdICYmIGN1cnJlbnRQb2ludHMueCA8IGl0ZW0uZnVubmVsQXJlYVsyXSAmJiBjdXJyZW50UG9pbnRzLnkgPiBpdGVtLmZ1bm5lbEFyZWFbMV0gJiYgY3VycmVudFBvaW50cy55IDwgaXRlbS5mdW5uZWxBcmVhWzNdKSB7XHJcbiAgICAgIGN1cnJlbnRJbmRleCA9IGk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY3VycmVudEluZGV4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kV29yZENoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIHdvcmREYXRhKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSB3b3JkRGF0YS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIGl0ZW0gPSB3b3JkRGF0YVtpXTtcclxuICAgIGlmIChjdXJyZW50UG9pbnRzLnggPiBpdGVtLmFyZWFbMF0gJiYgY3VycmVudFBvaW50cy54IDwgaXRlbS5hcmVhWzJdICYmIGN1cnJlbnRQb2ludHMueSA+IGl0ZW0uYXJlYVsxXSAmJiBjdXJyZW50UG9pbnRzLnkgPCBpdGVtLmFyZWFbM10pIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRNYXBDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBvcHRzKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIHZhciBjRGF0YSA9IG9wdHMuY2hhcnREYXRhLm1hcERhdGE7XHJcbiAgdmFyIGRhdGEgPSBvcHRzLnNlcmllcztcclxuICB2YXIgdG1wID0gcG9pbnRUb0Nvb3JkaW5hdGUoY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLngsIGNEYXRhLmJvdW5kcywgY0RhdGEuc2NhbGUsIGNEYXRhLnhvZmZzZXQsIGNEYXRhLnlvZmZzZXQpO1xyXG4gIHZhciBwb2kgPSBbdG1wLngsIHRtcC55XTtcclxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gZGF0YS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIGl0ZW0gPSBkYXRhW2ldLmdlb21ldHJ5LmNvb3JkaW5hdGVzO1xyXG4gICAgaWYgKGlzUG9pV2l0aGluUG9seShwb2ksIGl0ZW0sIG9wdHMuY2hhcnREYXRhLm1hcERhdGEubWVyY2F0b3IpKSB7XHJcbiAgICAgIGN1cnJlbnRJbmRleCA9IGk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY3VycmVudEluZGV4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kUm9zZUNoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIHBpZURhdGEsIG9wdHMpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgdmFyIHNlcmllcyA9IGdldFJvc2VEYXRhUG9pbnRzKG9wdHMuX3Nlcmllc18sIG9wdHMuZXh0cmEucm9zZS50eXBlLCBwaWVEYXRhLnJhZGl1cywgcGllRGF0YS5yYWRpdXMpO1xyXG4gIGlmIChwaWVEYXRhICYmIHBpZURhdGEuY2VudGVyICYmIGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBwaWVEYXRhLmNlbnRlciwgcGllRGF0YS5yYWRpdXMpKSB7XHJcbiAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHBpZURhdGEuY2VudGVyLnkgLSBjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCAtIHBpZURhdGEuY2VudGVyLngpO1xyXG4gICAgYW5nbGUgPSAtYW5nbGU7XHJcbiAgICBpZihvcHRzLmV4dHJhLnJvc2UgJiYgb3B0cy5leHRyYS5yb3NlLm9mZnNldEFuZ2xlKXtcclxuICAgICAgYW5nbGUgPSBhbmdsZSAtIG9wdHMuZXh0cmEucm9zZS5vZmZzZXRBbmdsZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc2VyaWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChpc0luQW5nbGVSYW5nZShhbmdsZSwgc2VyaWVzW2ldLl9zdGFydF8sIHNlcmllc1tpXS5fc3RhcnRfICsgc2VyaWVzW2ldLl9yb3NlX3Byb3BvcnRpb25fICogMiAqIE1hdGguUEkpKSB7XHJcbiAgICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY3VycmVudEluZGV4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kUGllQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcGllRGF0YSwgb3B0cykge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICB2YXIgc2VyaWVzID0gZ2V0UGllRGF0YVBvaW50cyhwaWVEYXRhLnNlcmllcyk7XHJcbiAgaWYgKHBpZURhdGEgJiYgcGllRGF0YS5jZW50ZXIgJiYgaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIHBpZURhdGEuY2VudGVyLCBwaWVEYXRhLnJhZGl1cykpIHtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocGllRGF0YS5jZW50ZXIueSAtIGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54IC0gcGllRGF0YS5jZW50ZXIueCk7XHJcbiAgICBhbmdsZSA9IC1hbmdsZTtcclxuICAgIGlmKG9wdHMuZXh0cmEucGllICYmIG9wdHMuZXh0cmEucGllLm9mZnNldEFuZ2xlKXtcclxuICAgICAgYW5nbGUgPSBhbmdsZSAtIG9wdHMuZXh0cmEucGllLm9mZnNldEFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIH1cclxuICAgIGlmKG9wdHMuZXh0cmEucmluZyAmJiBvcHRzLmV4dHJhLnJpbmcub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5yaW5nLm9mZnNldEFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIH1cclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzZXJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzZXJpZXNbaV0uX3N0YXJ0Xywgc2VyaWVzW2ldLl9zdGFydF8gKyBzZXJpZXNbaV0uX3Byb3BvcnRpb25fICogMiAqIE1hdGguUEkpKSB7XHJcbiAgICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY3VycmVudEluZGV4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgY2VudGVyLCByYWRpdXMpIHtcclxuICByZXR1cm4gTWF0aC5wb3coY3VycmVudFBvaW50cy54IC0gY2VudGVyLngsIDIpICsgTWF0aC5wb3coY3VycmVudFBvaW50cy55IC0gY2VudGVyLnksIDIpIDw9IE1hdGgucG93KHJhZGl1cywgMik7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcykge1xyXG4gIHZhciBuZXdQb2ludHMgPSBbXTtcclxuICB2YXIgaXRlbXMgPSBbXTtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYoZWFjaFNlcmllcy5jb25uZWN0TnVsbHMpe1xyXG4gICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgbmV3UG9pbnRzLnB1c2goaXRlbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpdGVtcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICB9KTtcclxuICBpZiAoaXRlbXMubGVuZ3RoKSB7XHJcbiAgICBuZXdQb2ludHMucHVzaChpdGVtcyk7XHJcbiAgfVxyXG4gIHJldHVybiBuZXdQb2ludHM7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBjYWxMZWdlbmREYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjaGFydERhdGEsIGNvbnRleHQpIHtcclxuICBsZXQgbGVnZW5kRGF0YSA9IHtcclxuICAgIGFyZWE6IHtcclxuICAgICAgc3RhcnQ6IHtcclxuICAgICAgICB4OiAwLFxyXG4gICAgICAgIHk6IDBcclxuICAgICAgfSxcclxuICAgICAgZW5kOiB7XHJcbiAgICAgICAgeDogMCxcclxuICAgICAgICB5OiAwXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpZHRoOiAwLFxyXG4gICAgICBoZWlnaHQ6IDAsXHJcbiAgICAgIHdob2xlV2lkdGg6IDAsXHJcbiAgICAgIHdob2xlSGVpZ2h0OiAwXHJcbiAgICB9LFxyXG4gICAgcG9pbnRzOiBbXSxcclxuICAgIHdpZHRoQXJyOiBbXSxcclxuICAgIGhlaWdodEFycjogW11cclxuICB9O1xyXG4gIGlmIChvcHRzLmxlZ2VuZC5zaG93ID09PSBmYWxzZSkge1xyXG4gICAgY2hhcnREYXRhLmxlZ2VuZERhdGEgPSBsZWdlbmREYXRhO1xyXG4gICAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbiAgfVxyXG4gIGxldCBwYWRkaW5nID0gb3B0cy5sZWdlbmQucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIGxldCBtYXJnaW4gPSBvcHRzLmxlZ2VuZC5tYXJnaW4gKiBvcHRzLnBpeDtcclxuICBsZXQgZm9udFNpemUgPSBvcHRzLmxlZ2VuZC5mb250U2l6ZSA/IG9wdHMubGVnZW5kLmZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgbGV0IHNoYXBlV2lkdGggPSAxNSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIGxldCBsaW5lSGVpZ2h0ID0gTWF0aC5tYXgob3B0cy5sZWdlbmQubGluZUhlaWdodCAqIG9wdHMucGl4LCBmb250U2l6ZSk7XHJcbiAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICBsZXQgbGVnZW5kTGlzdCA9IFtdO1xyXG4gICAgbGV0IHdpZHRoQ291bnQgPSAwO1xyXG4gICAgbGV0IHdpZHRoQ291bnRBcnIgPSBbXTtcclxuICAgIGxldCBjdXJyZW50Um93ID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgICAgY29uc3QgbGVnZW5kVGV4dCA9IGl0ZW0ubGVnZW5kVGV4dCA/IGl0ZW0ubGVnZW5kVGV4dCA6IGl0ZW0ubmFtZTtcclxuICAgICAgbGV0IGl0ZW1XaWR0aCA9IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0ICsgbWVhc3VyZVRleHQobGVnZW5kVGV4dCB8fCAndW5kZWZpbmVkJywgZm9udFNpemUsIGNvbnRleHQpICsgb3B0cy5sZWdlbmQuaXRlbUdhcCAqIG9wdHMucGl4O1xyXG4gICAgICBpZiAod2lkdGhDb3VudCArIGl0ZW1XaWR0aCA+IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIHtcclxuICAgICAgICBsZWdlbmRMaXN0LnB1c2goY3VycmVudFJvdyk7XHJcbiAgICAgICAgd2lkdGhDb3VudEFyci5wdXNoKHdpZHRoQ291bnQgLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXgpO1xyXG4gICAgICAgIHdpZHRoQ291bnQgPSBpdGVtV2lkdGg7XHJcbiAgICAgICAgY3VycmVudFJvdyA9IFtpdGVtXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3aWR0aENvdW50ICs9IGl0ZW1XaWR0aDtcclxuICAgICAgICBjdXJyZW50Um93LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChjdXJyZW50Um93Lmxlbmd0aCkge1xyXG4gICAgICBsZWdlbmRMaXN0LnB1c2goY3VycmVudFJvdyk7XHJcbiAgICAgIHdpZHRoQ291bnRBcnIucHVzaCh3aWR0aENvdW50IC0gb3B0cy5sZWdlbmQuaXRlbUdhcCAqIG9wdHMucGl4KTtcclxuICAgICAgbGVnZW5kRGF0YS53aWR0aEFyciA9IHdpZHRoQ291bnRBcnI7XHJcbiAgICAgIGxldCBsZWdlbmRXaWR0aCA9IE1hdGgubWF4LmFwcGx5KG51bGwsIHdpZHRoQ291bnRBcnIpO1xyXG4gICAgICBzd2l0Y2ggKG9wdHMubGVnZW5kLmZsb2F0KSB7XHJcbiAgICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMuYXJlYVszXTtcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMuYXJlYVszXSArIGxlZ2VuZFdpZHRoICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBsZWdlbmRXaWR0aCAtIDIgKiBwYWRkaW5nO1xyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IChvcHRzLndpZHRoIC0gbGVnZW5kV2lkdGgpIC8gMiAtIHBhZGRpbmc7XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSAob3B0cy53aWR0aCArIGxlZ2VuZFdpZHRoKSAvIDIgKyBwYWRkaW5nO1xyXG4gICAgICB9XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aWR0aCA9IGxlZ2VuZFdpZHRoICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZVdpZHRoID0gbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmhlaWdodCA9IGxlZ2VuZExpc3QubGVuZ3RoICogbGluZUhlaWdodCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEud2hvbGVIZWlnaHQgPSBsZWdlbmRMaXN0Lmxlbmd0aCAqIGxpbmVIZWlnaHQgKyAyICogcGFkZGluZyArIDIgKiBtYXJnaW47XHJcbiAgICAgIGxlZ2VuZERhdGEucG9pbnRzID0gbGVnZW5kTGlzdDtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgbGV0IGxlbiA9IHNlcmllcy5sZW5ndGg7XHJcbiAgICBsZXQgbWF4SGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0gLSAyICogbWFyZ2luIC0gMiAqIHBhZGRpbmc7XHJcbiAgICBsZXQgbWF4TGVuZ3RoID0gTWF0aC5taW4oTWF0aC5mbG9vcihtYXhIZWlnaHQgLyBsaW5lSGVpZ2h0KSwgbGVuKTtcclxuICAgIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQgPSBtYXhMZW5ndGggKiBsaW5lSGVpZ2h0ICsgcGFkZGluZyAqIDI7XHJcbiAgICBsZWdlbmREYXRhLmFyZWEud2hvbGVIZWlnaHQgPSBtYXhMZW5ndGggKiBsaW5lSGVpZ2h0ICsgcGFkZGluZyAqIDI7XHJcbiAgICBzd2l0Y2ggKG9wdHMubGVnZW5kLmZsb2F0KSB7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW47XHJcbiAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luICsgbGVnZW5kRGF0YS5hcmVhLmhlaWdodDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbWFyZ2luIC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodDtcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIG1hcmdpbjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IChvcHRzLmhlaWdodCAtIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQpIC8gMjtcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSAob3B0cy5oZWlnaHQgKyBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0KSAvIDI7XHJcbiAgICB9XHJcbiAgICBsZXQgbGluZU51bSA9IGxlbiAlIG1heExlbmd0aCA9PT0gMCA/IGxlbiAvIG1heExlbmd0aCA6IE1hdGguZmxvb3IoKGxlbiAvIG1heExlbmd0aCkgKyAxKTtcclxuICAgIGxldCBjdXJyZW50Um93ID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVOdW07IGkrKykge1xyXG4gICAgICBsZXQgdGVtcCA9IHNlcmllcy5zbGljZShpICogbWF4TGVuZ3RoLCBpICogbWF4TGVuZ3RoICsgbWF4TGVuZ3RoKTtcclxuICAgICAgY3VycmVudFJvdy5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgbGVnZW5kRGF0YS5wb2ludHMgPSBjdXJyZW50Um93O1xyXG4gICAgaWYgKGN1cnJlbnRSb3cubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY3VycmVudFJvdy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBpdGVtID0gY3VycmVudFJvd1tpXTtcclxuICAgICAgICBsZXQgbWF4V2lkdGggPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW1XaWR0aCA9IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0ICsgbWVhc3VyZVRleHQoaXRlbVtqXS5uYW1lIHx8ICd1bmRlZmluZWQnLCBmb250U2l6ZSwgY29udGV4dCkgKyBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgICAgICAgICBpZiAoaXRlbVdpZHRoID4gbWF4V2lkdGgpIHtcclxuICAgICAgICAgICAgbWF4V2lkdGggPSBpdGVtV2lkdGg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxlZ2VuZERhdGEud2lkdGhBcnIucHVzaChtYXhXaWR0aCk7XHJcbiAgICAgICAgbGVnZW5kRGF0YS5oZWlnaHRBcnIucHVzaChpdGVtLmxlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGxlZ2VuZFdpZHRoID0gMFxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlZ2VuZERhdGEud2lkdGhBcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZWdlbmRXaWR0aCArPSBsZWdlbmREYXRhLndpZHRoQXJyW2ldO1xyXG4gICAgICB9XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aWR0aCA9IGxlZ2VuZFdpZHRoIC0gb3B0cy5sZWdlbmQuaXRlbUdhcCAqIG9wdHMucGl4ICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZVdpZHRoID0gbGVnZW5kRGF0YS5hcmVhLndpZHRoICsgcGFkZGluZztcclxuICAgIH1cclxuICB9XHJcbiAgc3dpdGNoIChvcHRzLmxlZ2VuZC5wb3NpdGlvbikge1xyXG4gICAgY2FzZSAndG9wJzpcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW47XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbiArIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQgLSBtYXJnaW47XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbWFyZ2luO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMuYXJlYVszXTtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy5hcmVhWzNdICsgbGVnZW5kRGF0YS5hcmVhLndpZHRoO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gbGVnZW5kRGF0YS5hcmVhLndpZHRoO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgY2hhcnREYXRhLmxlZ2VuZERhdGEgPSBsZWdlbmREYXRhO1xyXG4gIHJldHVybiBsZWdlbmREYXRhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxDYXRlZ29yaWVzRGF0YShjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGVhY2hTcGFjaW5nLCBjb250ZXh0KSB7XHJcbiAgdmFyIHJlc3VsdCA9IHtcclxuICAgIGFuZ2xlOiAwLFxyXG4gICAgeEF4aXNIZWlnaHQ6IGNvbmZpZy54QXhpc0hlaWdodFxyXG4gIH07XHJcbiAgdmFyIGZvbnRTaXplID0gb3B0cy54QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICB2YXIgY2F0ZWdvcmllc1RleHRMZW50aCA9IGNhdGVnb3JpZXMubWFwKGZ1bmN0aW9uKGl0ZW0saW5kZXgpIHtcclxuICAgIHZhciB4aXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoaXRlbSxpbmRleCxvcHRzKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoU3RyaW5nKHhpdGVtKSwgZm9udFNpemUsIGNvbnRleHQpO1xyXG4gIH0pO1xyXG4gIFxyXG4gIHZhciBtYXhUZXh0TGVuZ3RoID0gTWF0aC5tYXguYXBwbHkodGhpcywgY2F0ZWdvcmllc1RleHRMZW50aCk7XHJcbiAgaWYgKG9wdHMueEF4aXMucm90YXRlTGFiZWwgPT0gdHJ1ZSkge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gb3B0cy54QXhpcy5yb3RhdGVBbmdsZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICBsZXQgdGVtcEhlaWdodCA9IDIgKiBjb25maWcueEF4aXNUZXh0UGFkZGluZyArICBNYXRoLmFicyhtYXhUZXh0TGVuZ3RoICogTWF0aC5zaW4ocmVzdWx0LmFuZ2xlKSlcclxuICAgIHRlbXBIZWlnaHQgPSB0ZW1wSGVpZ2h0IDwgZm9udFNpemUgKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPyB0ZW1wSGVpZ2h0ICsgMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nIDogdGVtcEhlaWdodDtcclxuICAgIGlmKG9wdHMuZW5hYmxlU2Nyb2xsID09IHRydWUgJiYgb3B0cy54QXhpcy5zY3JvbGxTaG93ID09IHRydWUpe1xyXG4gICAgICB0ZW1wSGVpZ2h0ICs9IDEyICogb3B0cy5waXg7XHJcbiAgICB9XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSB0ZW1wSGVpZ2h0O1xyXG4gIH1cclxuICBpZiAob3B0cy54QXhpcy5kaXNhYmxlZCl7XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSAwO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRYQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBzdGFjaykge1xyXG4gIHZhciBpbmRleCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogLTE7XHJcbiAgdmFyIGRhdGE7XHJcbiAgaWYgKHN0YWNrID09ICdzdGFjaycpIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZVN0YWNrKHNlcmllcywgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZShzZXJpZXMpO1xyXG4gIH1cclxuICB2YXIgc29ydGVkID0gW107XHJcbiAgLy8gcmVtb3ZlIG51bGwgZnJvbSBkYXRhXHJcbiAgZGF0YSA9IGRhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbS52YWx1ZSAhPT0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIGlmIChvcHRzLnR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKGZ1bmN0aW9uKHN1Yml0ZW0pIHtcclxuICAgICAgICAgICAgc29ydGVkLnB1c2goc3ViaXRlbSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3J0ZWQucHVzaChpdGVtWzBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc29ydGVkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNvcnRlZC5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG4gIH0pXHJcblxyXG4gIHZhciBtaW5EYXRhID0gMDtcclxuICB2YXIgbWF4RGF0YSA9IDA7XHJcbiAgaWYgKHNvcnRlZC5sZW5ndGggPiAwKSB7XHJcbiAgICBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkodGhpcywgc29ydGVkKTtcclxuICAgIG1heERhdGEgPSBNYXRoLm1heC5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gIH1cclxuICAvL+S4uuS6huWFvOWuuXYxLjkuMOS5i+WJjeeahOmhueebrlxyXG4gIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy54QXhpcy5kYXRhW2luZGV4XS5taW4sIG1pbkRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLmRhdGFbaW5kZXhdLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWF4LCBtYXhEYXRhKTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLm1pbiA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWluRGF0YSA9IE1hdGgubWluKG9wdHMueEF4aXMubWluLCBtaW5EYXRhKTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2Ygb3B0cy54QXhpcy5tYXggPT09ICdudW1iZXInKSB7XHJcbiAgICAgIG1heERhdGEgPSBNYXRoLm1heChvcHRzLnhBeGlzLm1heCwgbWF4RGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlmIChtaW5EYXRhID09PSBtYXhEYXRhKSB7XHJcbiAgICB2YXIgcmFuZ2VTcGFuID0gbWF4RGF0YSB8fCAxMDtcclxuICAgIG1heERhdGEgKz0gcmFuZ2VTcGFuO1xyXG4gIH1cclxuICAvL3ZhciBkYXRhUmFuZ2UgPSBnZXREYXRhUmFuZ2UobWluRGF0YSwgbWF4RGF0YSk7XHJcbiAgdmFyIG1pblJhbmdlID0gbWluRGF0YTtcclxuICB2YXIgbWF4UmFuZ2UgPSBtYXhEYXRhO1xyXG4gIHZhciByYW5nZSA9IFtdO1xyXG4gIHZhciBlYWNoUmFuZ2UgPSAobWF4UmFuZ2UgLSBtaW5SYW5nZSkgLyBvcHRzLnhBeGlzLnNwbGl0TnVtYmVyO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDw9IG9wdHMueEF4aXMuc3BsaXROdW1iZXI7IGkrKykge1xyXG4gICAgcmFuZ2UucHVzaChtaW5SYW5nZSArIGVhY2hSYW5nZSAqIGkpO1xyXG4gIH1cclxuICByZXR1cm4gcmFuZ2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFhBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIC8v5aCG5Y+g5Zu+6YeN566XWei9tFxyXG4gIHZhciBjb2x1bW5zdHlsZSA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogXCJcIlxyXG4gIH0sIG9wdHMuZXh0cmEuYmFyKTtcclxuICB2YXIgcmVzdWx0ID0ge1xyXG4gICAgYW5nbGU6IDAsXHJcbiAgICB4QXhpc0hlaWdodDogY29uZmlnLnhBeGlzSGVpZ2h0XHJcbiAgfTtcclxuICByZXN1bHQucmFuZ2VzID0gZ2V0WEF4aXNUZXh0TGlzdChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29sdW1uc3R5bGUudHlwZSk7XHJcbiAgcmVzdWx0LnJhbmdlc0Zvcm1hdCA9IHJlc3VsdC5yYW5nZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vaXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoaXRlbSkgOiB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICBpdGVtID0gdXRpbC50b0ZpeGVkKGl0ZW0sIDIpO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbiAgdmFyIHhBeGlzU2NhbGVWYWx1ZXMgPSByZXN1bHQucmFuZ2VzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAvLyDlpoLmnpzliLvluqblgLzmmK/mta7ngrnmlbAs5YiZ5L+d55WZ5Lik5L2N5bCP5pWwXHJcbiAgICBpdGVtID0gdXRpbC50b0ZpeGVkKGl0ZW0sIDIpO1xyXG4gICAgLy8g6Iul5pyJ6Ieq5a6a5LmJ5qC85byP5YiZ6LCD55So6Ieq5a6a5LmJ55qE5qC85byP5YyW5Ye95pWwXHJcbiAgICAvL2l0ZW0gPSBvcHRzLnhBeGlzLmZvcm1hdHRlciA/IG9wdHMueEF4aXMuZm9ybWF0dGVyKE51bWJlcihpdGVtKSkgOiBpdGVtO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbiAgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihyZXN1bHQsIGdldFhBeGlzUG9pbnRzKHhBeGlzU2NhbGVWYWx1ZXMsIG9wdHMsIGNvbmZpZykpO1xyXG4gIC8vIOiuoeeul1jovbTliLvluqbnmoTlsZ7mgKforazlpoLmr4/kuKrliLvluqbnmoTpl7TpmpQs5Yi75bqm55qE6LW35aeL54K5XFznu5PmnZ/ngrnku6Xlj4rmgLvplb9cclxuICB2YXIgZWFjaFNwYWNpbmcgPSByZXN1bHQuZWFjaFNwYWNpbmc7XHJcbiAgdmFyIHRleHRMZW5ndGggPSB4QXhpc1NjYWxlVmFsdWVzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoaXRlbSwgb3B0cy54QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgLy8gZ2V0IG1heCBsZW5ndGggb2YgY2F0ZWdvcmllcyB0ZXh0XHJcbiAgdmFyIG1heFRleHRMZW5ndGggPSBNYXRoLm1heC5hcHBseSh0aGlzLCB0ZXh0TGVuZ3RoKTtcclxuICAvLyDlpoLmnpzliLvluqblgLzmlofmnKzlhoXlrrnov4fplb8s5YiZ5bCG5YW26YCG5pe26ZKI5peL6L2sNDXCsFxyXG4gIGlmIChtYXhUZXh0TGVuZ3RoICsgMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nID4gZWFjaFNwYWNpbmcpIHtcclxuICAgIHJlc3VsdC5hbmdsZSA9IDQ1ICogTWF0aC5QSSAvIDE4MDtcclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IDIgKiBjb25maWcueEF4aXNUZXh0UGFkZGluZyArIG1heFRleHRMZW5ndGggKiBNYXRoLnNpbihyZXN1bHQuYW5nbGUpO1xyXG4gIH1cclxuICBpZiAob3B0cy54QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMDtcclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UmFkYXJEYXRhUG9pbnRzKGFuZ2xlTGlzdCwgY2VudGVyLCByYWRpdXMsIHNlcmllcywgb3B0cykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAxO1xyXG4gIHZhciByYWRhck9wdGlvbiA9IG9wdHMuZXh0cmEucmFkYXIgfHwge307XHJcbiAgcmFkYXJPcHRpb24ubWF4ID0gcmFkYXJPcHRpb24ubWF4IHx8IDA7XHJcbiAgdmFyIG1heERhdGEgPSBNYXRoLm1heChyYWRhck9wdGlvbi5tYXgsIE1hdGgubWF4LmFwcGx5KG51bGwsIGRhdGFDb21iaW5lKHNlcmllcykpKTtcclxuICB2YXIgZGF0YSA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgZWFjaCA9IHNlcmllc1tpXTtcclxuICAgIGxldCBsaXN0SXRlbSA9IHt9O1xyXG4gICAgbGlzdEl0ZW0uY29sb3IgPSBlYWNoLmNvbG9yO1xyXG4gICAgbGlzdEl0ZW0ubGVnZW5kU2hhcGUgPSBlYWNoLmxlZ2VuZFNoYXBlO1xyXG4gICAgbGlzdEl0ZW0ucG9pbnRTaGFwZSA9IGVhY2gucG9pbnRTaGFwZTtcclxuICAgIGxpc3RJdGVtLmRhdGEgPSBbXTtcclxuICAgIGVhY2guZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGxldCB0bXAgPSB7fTtcclxuICAgICAgdG1wLmFuZ2xlID0gYW5nbGVMaXN0W2luZGV4XTtcclxuICAgICAgdG1wLnByb3BvcnRpb24gPSBpdGVtIC8gbWF4RGF0YTtcclxuICAgICAgdG1wLnZhbHVlID0gaXRlbTtcclxuICAgICAgdG1wLnBvc2l0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzICogdG1wLnByb3BvcnRpb24gKiBwcm9jZXNzICogTWF0aC5jb3ModG1wLmFuZ2xlKSwgcmFkaXVzICogdG1wLnByb3BvcnRpb24gKiBwcm9jZXNzICogTWF0aC5zaW4odG1wLmFuZ2xlKSwgY2VudGVyKTtcclxuICAgICAgbGlzdEl0ZW0uZGF0YS5wdXNoKHRtcCk7XHJcbiAgICB9KTtcclxuICAgIGRhdGEucHVzaChsaXN0SXRlbSk7XHJcbiAgfVxyXG4gIHJldHVybiBkYXRhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDE7XHJcbiAgdmFyIGNvdW50ID0gMDtcclxuICB2YXIgX3N0YXJ0XyA9IDA7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaXRlbS5kYXRhID0gaXRlbS5kYXRhID09PSBudWxsID8gMCA6IGl0ZW0uZGF0YTtcclxuICAgIGNvdW50ICs9IGl0ZW0uZGF0YTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaXRlbS5kYXRhID0gaXRlbS5kYXRhID09PSBudWxsID8gMCA6IGl0ZW0uZGF0YTtcclxuICAgIGlmIChjb3VudCA9PT0gMCkge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IDEgLyBzZXJpZXMubGVuZ3RoICogcHJvY2VzcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5kYXRhIC8gY291bnQgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgaXRlbS5fcmFkaXVzXyA9IHJhZGl1cztcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaXRlbS5fc3RhcnRfID0gX3N0YXJ0XztcclxuICAgIF9zdGFydF8gKz0gMiAqIGl0ZW0uX3Byb3BvcnRpb25fICogTWF0aC5QSTtcclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0RnVubmVsRGF0YVBvaW50cyhzZXJpZXMsIHJhZGl1cywgb3B0aW9uLCBlYWNoU3BhY2luZykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZihvcHRpb24udHlwZSA9PSAnZnVubmVsJyl7XHJcbiAgICAgIHNlcmllc1tpXS5yYWRpdXMgPSBzZXJpZXNbaV0uZGF0YSAvIHNlcmllc1swXS5kYXRhICogcmFkaXVzICogcHJvY2VzcztcclxuICAgIH1lbHNle1xyXG4gICAgICBzZXJpZXNbaV0ucmFkaXVzID0gIChlYWNoU3BhY2luZyAqIChzZXJpZXMubGVuZ3RoIC0gaSkpIC8gKGVhY2hTcGFjaW5nICogc2VyaWVzLmxlbmd0aCkgKiByYWRpdXMgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzW2ldLl9wcm9wb3J0aW9uXyA9IHNlcmllc1tpXS5kYXRhIC8gc2VyaWVzWzBdLmRhdGE7XHJcbiAgfVxyXG4gIC8vIGlmKG9wdGlvbi50eXBlICE9PSAncHlyYW1pZCcpe1xyXG4gIC8vICAgc2VyaWVzLnJldmVyc2UoKTtcclxuICAvLyB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Um9zZURhdGFQb2ludHMoc2VyaWVzLCB0eXBlLCBtaW5SYWRpdXMsIHJhZGl1cykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBjb3VudCA9IDA7XHJcbiAgdmFyIF9zdGFydF8gPSAwO1xyXG4gIHZhciBkYXRhQXJyID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaXRlbS5kYXRhID0gaXRlbS5kYXRhID09PSBudWxsID8gMCA6IGl0ZW0uZGF0YTtcclxuICAgIGNvdW50ICs9IGl0ZW0uZGF0YTtcclxuICAgIGRhdGFBcnIucHVzaChpdGVtLmRhdGEpO1xyXG4gIH1cclxuICB2YXIgbWluRGF0YSA9IE1hdGgubWluLmFwcGx5KG51bGwsIGRhdGFBcnIpO1xyXG4gIHZhciBtYXhEYXRhID0gTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUFycik7XHJcbiAgdmFyIHJhZGl1c0xlbmd0aCA9IHJhZGl1cyAtIG1pblJhZGl1cztcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGNvdW50ID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgICBpdGVtLl9yb3NlX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICAgIGlmKHR5cGUgPT0gJ2FyZWEnKXtcclxuICAgICAgICBpdGVtLl9yb3NlX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpdGVtLl9yb3NlX3Byb3BvcnRpb25fID0gaXRlbS5kYXRhIC8gY291bnQgKiBwcm9jZXNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9yYWRpdXNfID0gbWluUmFkaXVzICsgcmFkaXVzTGVuZ3RoICogKChpdGVtLmRhdGEgLSBtaW5EYXRhKSAvIChtYXhEYXRhIC0gbWluRGF0YSkpIHx8IHJhZGl1cztcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaXRlbS5fc3RhcnRfID0gX3N0YXJ0XztcclxuICAgIF9zdGFydF8gKz0gMiAqIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gKiBNYXRoLlBJO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgYXJjYmFyT3B0aW9uKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDE7XHJcbiAgaWYgKHByb2Nlc3MgPT0gMSkge1xyXG4gICAgcHJvY2VzcyA9IDAuOTk5OTk5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgbGV0IHRvdGFsQW5nbGU7XHJcbiAgICBpZiAoYXJjYmFyT3B0aW9uLnR5cGUgPT0gJ2NpcmNsZScpIHtcclxuICAgICAgdG90YWxBbmdsZSA9IDI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZihhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKXtcclxuICAgICAgICBpZiAoYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgPCBhcmNiYXJPcHRpb24uZW5kQW5nbGUpIHtcclxuICAgICAgICAgIHRvdGFsQW5nbGUgPSAyICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgLSBhcmNiYXJPcHRpb24uZW5kQW5nbGU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRvdGFsQW5nbGUgPSBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIGFyY2Jhck9wdGlvbi5lbmRBbmdsZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmIChhcmNiYXJPcHRpb24uZW5kQW5nbGUgPCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IDIgKyBhcmNiYXJPcHRpb24uZW5kQW5nbGUgLSBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaXRlbS5fcHJvcG9ydGlvbl8gPSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICogcHJvY2VzcyArIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgaWYoYXJjYmFyT3B0aW9uLmRpcmVjdGlvbiA9PSAnY2N3Jyl7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgLSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICogcHJvY2VzcyA7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5fcHJvcG9ydGlvbl8gPj0gMikge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX3Byb3BvcnRpb25fICUgMjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgYXJjYmFyT3B0aW9uKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDE7XHJcbiAgaWYgKHByb2Nlc3MgPT0gMSkge1xyXG4gICAgcHJvY2VzcyA9IDAuOTk5OTk5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgbGV0IHRvdGFsQW5nbGU7XHJcbiAgICBpZiAoYXJjYmFyT3B0aW9uLnR5cGUgPT0gJ2NpcmNsZScpIHtcclxuICAgICAgdG90YWxBbmdsZSA9IDI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoYXJjYmFyT3B0aW9uLmVuZEFuZ2xlIDwgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUpIHtcclxuICAgICAgICB0b3RhbEFuZ2xlID0gMiArIGFyY2Jhck9wdGlvbi5lbmRBbmdsZSAtIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRvdGFsQW5nbGUgPSBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIGFyY2Jhck9wdGlvbi5lbmRBbmdsZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaXRlbS5fcHJvcG9ydGlvbl8gPSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICogcHJvY2VzcyArIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgaWYgKGl0ZW0uX3Byb3BvcnRpb25fID49IDIpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLl9wcm9wb3J0aW9uXyAlIDI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEdhdWdlQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSkge1xyXG4gIGxldCB0b3RhbEFuZ2xlID0gc3RhcnRBbmdsZSAtIGVuZEFuZ2xlICsgMTtcclxuICBsZXQgdGVtcFN0YXJ0QW5nbGUgPSBzdGFydEFuZ2xlO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgY2F0ZWdvcmllc1tpXS52YWx1ZSA9IGNhdGVnb3JpZXNbaV0udmFsdWUgPT09IG51bGwgPyAwIDogY2F0ZWdvcmllc1tpXS52YWx1ZTtcclxuICAgIGNhdGVnb3JpZXNbaV0uX3N0YXJ0QW5nbGVfID0gdGVtcFN0YXJ0QW5nbGU7XHJcbiAgICBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPSB0b3RhbEFuZ2xlICogY2F0ZWdvcmllc1tpXS52YWx1ZSArIHN0YXJ0QW5nbGU7XHJcbiAgICBpZiAoY2F0ZWdvcmllc1tpXS5fZW5kQW5nbGVfID49IDIpIHtcclxuICAgICAgY2F0ZWdvcmllc1tpXS5fZW5kQW5nbGVfID0gY2F0ZWdvcmllc1tpXS5fZW5kQW5nbGVfICUgMjtcclxuICAgIH1cclxuICAgIHRlbXBTdGFydEFuZ2xlID0gY2F0ZWdvcmllc1tpXS5fZW5kQW5nbGVfO1xyXG4gIH1cclxuICByZXR1cm4gY2F0ZWdvcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VEYXRhUG9pbnRzKHNlcmllcywgY2F0ZWdvcmllcywgZ2F1Z2VPcHRpb24pIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogMTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGdhdWdlT3B0aW9uLnBvaW50ZXIuY29sb3IgPT0gJ2F1dG8nKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChpdGVtLmRhdGEgPD0gY2F0ZWdvcmllc1tpXS52YWx1ZSkge1xyXG4gICAgICAgICAgaXRlbS5jb2xvciA9IGNhdGVnb3JpZXNbaV0uY29sb3I7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0uY29sb3IgPSBnYXVnZU9wdGlvbi5wb2ludGVyLmNvbG9yO1xyXG4gICAgfVxyXG4gICAgbGV0IHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKyAxO1xyXG4gICAgaXRlbS5fZW5kQW5nbGVfID0gdG90YWxBbmdsZSAqIGl0ZW0uZGF0YSArIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpdGVtLl9vbGRBbmdsZV8gPSBnYXVnZU9wdGlvbi5vbGRBbmdsZTtcclxuICAgIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA8IGdhdWdlT3B0aW9uLmVuZEFuZ2xlKSB7XHJcbiAgICAgIGl0ZW0uX29sZEFuZ2xlXyArPSAyO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uZGF0YSA+PSBnYXVnZU9wdGlvbi5vbGREYXRhKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gKGl0ZW0uX2VuZEFuZ2xlXyAtIGl0ZW0uX29sZEFuZ2xlXykgKiBwcm9jZXNzICsgZ2F1Z2VPcHRpb24ub2xkQW5nbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX29sZEFuZ2xlXyAtIChpdGVtLl9vbGRBbmdsZV8gLSBpdGVtLl9lbmRBbmdsZV8pICogcHJvY2VzcztcclxuICAgIH1cclxuICAgIGlmIChpdGVtLl9wcm9wb3J0aW9uXyA+PSAyKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fcHJvcG9ydGlvbl8gJSAyO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRQaWVUZXh0TWF4TGVuZ3RoKHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgc2VyaWVzID0gZ2V0UGllRGF0YVBvaW50cyhzZXJpZXMpO1xyXG4gIGxldCBtYXhMZW5ndGggPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGxldCB0ZXh0ID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcigraXRlbS5fcHJvcG9ydGlvbl8udG9GaXhlZCgyKSkgOiB1dGlsLnRvRml4ZWQoaXRlbS5fcHJvcG9ydGlvbl8gKiAxMDApICsgJyUnO1xyXG4gICAgbWF4TGVuZ3RoID0gTWF0aC5tYXgobWF4TGVuZ3RoLCBtZWFzdXJlVGV4dCh0ZXh0LCBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KSk7XHJcbiAgfVxyXG4gIHJldHVybiBtYXhMZW5ndGg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzKSB7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB2YXIgc2VyaWVzR2FwID0gMDtcclxuICAgIHZhciBjYXRlZ29yeUdhcCA9IDA7XHJcbiAgICBpZiAob3B0cy50eXBlID09ICdtaXgnKSB7XHJcbiAgICAgIHNlcmllc0dhcCA9IG9wdHMuZXh0cmEubWl4LmNvbHVtbi5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgICBjYXRlZ29yeUdhcCA9IG9wdHMuZXh0cmEubWl4LmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXJpZXNHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgICBjYXRlZ29yeUdhcCA9IG9wdHMuZXh0cmEuY29sdW1uLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIH1cclxuICAgIHNlcmllc0dhcCA9ICBNYXRoLm1pbihzZXJpZXNHYXAsIGVhY2hTcGFjaW5nIC8gY29sdW1uTGVuKVxyXG4gICAgY2F0ZWdvcnlHYXAgPSAgTWF0aC5taW4oY2F0ZWdvcnlHYXAsIGVhY2hTcGFjaW5nIC8gY29sdW1uTGVuKVxyXG4gICAgaXRlbS53aWR0aCA9IE1hdGguY2VpbCgoZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXAgLSBzZXJpZXNHYXAgKiAoY29sdW1uTGVuIC0gMSkpIC8gY29sdW1uTGVuKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLm1peCAmJiBvcHRzLmV4dHJhLm1peC5jb2x1bW4ud2lkdGggJiYgK29wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLm1peC5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0cy5leHRyYS5jb2x1bW4gJiYgb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggJiYgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIGl0ZW0ueCArPSAoaW5kZXggKyAwLjUgLSBjb2x1bW5MZW4gLyAyKSAqIChpdGVtLndpZHRoICsgc2VyaWVzR2FwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhCYXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cykge1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgdmFyIHNlcmllc0dhcCA9IDA7XHJcbiAgICB2YXIgY2F0ZWdvcnlHYXAgPSAwO1xyXG4gICAgc2VyaWVzR2FwID0gb3B0cy5leHRyYS5iYXIuc2VyaWVzR2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5iYXIuY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgc2VyaWVzR2FwID0gIE1hdGgubWluKHNlcmllc0dhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBjYXRlZ29yeUdhcCA9ICBNYXRoLm1pbihjYXRlZ29yeUdhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCAtIHNlcmllc0dhcCAqIChjb2x1bW5MZW4gLSAxKSkgLyBjb2x1bW5MZW4pO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuYmFyICYmIG9wdHMuZXh0cmEuYmFyLndpZHRoICYmICtvcHRzLmV4dHJhLmJhci53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmJhci53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLndpZHRoIDw9IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IDE7XHJcbiAgICB9XHJcbiAgICBpdGVtLnkgKz0gKGluZGV4ICsgMC41IC0gY29sdW1uTGVuIC8gMikgKiAoaXRlbS53aWR0aCArIHNlcmllc0dhcCk7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgYm9yZGVyKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaXRlbS53aWR0aCA9IGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuY29sdW1uICYmIG9wdHMuZXh0cmEuY29sdW1uLndpZHRoICYmICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCAtPSBib3JkZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4bikge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeEJhclN0YWNrRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW4sIGluZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcykge1xyXG4gIHZhciBjYXRlZ29yeUdhcCA9IG9wdHMuZXh0cmEuYmFyLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICByZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleG4pIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaXRlbS53aWR0aCA9IE1hdGguY2VpbChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCk7XHJcbiAgICBpZiAob3B0cy5leHRyYS5iYXIgJiYgb3B0cy5leHRyYS5iYXIud2lkdGggJiYgK29wdHMuZXh0cmEuYmFyLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuYmFyLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRYQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgc3BhY2luZ1ZhbGlkID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICB2YXIgZGF0YUNvdW50ID0gb3B0cy5lbmFibGVTY3JvbGwgPyBNYXRoLm1pbihvcHRzLnhBeGlzLml0ZW1Db3VudCwgY2F0ZWdvcmllcy5sZW5ndGgpIDogY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgaWYgKChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT0gJ2J1YmJsZScgfHwgb3B0cy50eXBlID09ICdiYXInKSAmJiBkYXRhQ291bnQgPiAxICYmIG9wdHMueEF4aXMuYm91bmRhcnlHYXAgPT0gJ2p1c3RpZnknKSB7XHJcbiAgICBkYXRhQ291bnQgLT0gMTtcclxuICB9XHJcbiAgdmFyIHdpZHRoUmF0aW8gPSAwO1xyXG4gIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgd2lkdGhSYXRpbyA9IG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDE7XHJcbiAgICBkYXRhQ291bnQgKz0gd2lkdGhSYXRpbztcclxuICB9XHJcbiAgdmFyIGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gZGF0YUNvdW50O1xyXG4gIHZhciB4QXhpc1BvaW50cyA9IFtdO1xyXG4gIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIGNhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgeEF4aXNQb2ludHMucHVzaChzdGFydFggKyB3aWR0aFJhdGlvIC8gMiAqIGVhY2hTcGFjaW5nICsgaW5kZXggKiBlYWNoU3BhY2luZyk7XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMueEF4aXMuYm91bmRhcnlHYXAgIT09ICdqdXN0aWZ5Jykge1xyXG4gICAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICAgIHhBeGlzUG9pbnRzLnB1c2goc3RhcnRYICsgd2lkdGhSYXRpbyAqIGVhY2hTcGFjaW5nICsgY2F0ZWdvcmllcy5sZW5ndGggKiBlYWNoU3BhY2luZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB4QXhpc1BvaW50cy5wdXNoKGVuZFgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYOiBzdGFydFgsXHJcbiAgICBlbmRYOiBlbmRYLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2FuZGxlRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgY1BvaW50cyA9IFtdO1xyXG4gICAgICBpdGVtLmZvckVhY2goZnVuY3Rpb24oaXRlbXMsIGluZGV4cykge1xyXG4gICAgICAgIHZhciBwb2ludCA9IHt9O1xyXG4gICAgICAgIHBvaW50LnggPSB4QXhpc1BvaW50c1tpbmRleF0gKyBNYXRoLnJvdW5kKGVhY2hTcGFjaW5nIC8gMik7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbXMudmFsdWUgfHwgaXRlbXM7XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICAgIHBvaW50LnkgPSBvcHRzLmhlaWdodCAtIE1hdGgucm91bmQoaGVpZ2h0KSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICBjUG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgICB9KTtcclxuICAgICAgcG9pbnRzLnB1c2goY1BvaW50cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIGJvdW5kYXJ5R2FwID0gJ2NlbnRlcic7XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PSAnYnViYmxlJyApIHtcclxuICAgIGJvdW5kYXJ5R2FwID0gb3B0cy54QXhpcy5ib3VuZGFyeUdhcDtcclxuICB9XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciB2YWxpZFdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICAgIGxldCB4cmFuZ2VzLCB4bWluUmFuZ2UsIHhtYXhSYW5nZTtcclxuICAgICAgICAgIHhyYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICAgICAgICB4bWluUmFuZ2UgPSB4cmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgICAgICB4bWF4UmFuZ2UgPSB4cmFuZ2VzLnBvcCgpO1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtWzFdO1xyXG4gICAgICAgICAgcG9pbnQueCA9IG9wdHMuYXJlYVszXSArIHZhbGlkV2lkdGggKiAoaXRlbVswXSAtIHhtaW5SYW5nZSkgLyAoeG1heFJhbmdlIC0geG1pblJhbmdlKTtcclxuICAgICAgICAgIGlmKG9wdHMudHlwZSA9PSAnYnViYmxlJyl7XHJcbiAgICAgICAgICAgIHBvaW50LnIgPSBpdGVtWzJdO1xyXG4gICAgICAgICAgICBwb2ludC50ID0gaXRlbVszXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICBwb2ludC54ICs9IGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgfVxyXG4gICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBoZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNb3VudERhdGFQb2ludHMoc2VyaWVzLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgbW91bnRPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBtb3VudFdpZHRoID0gZWFjaFNwYWNpbmcgKiBtb3VudE9wdGlvbi53aWR0aFJhdGlvO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb2ludCA9IHt9O1xyXG4gICAgICBwb2ludC5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIHBvaW50LnggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgIHBvaW50LnggKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtLmRhdGE7XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIHBvaW50LnkgPSBvcHRzLmhlaWdodCAtIGhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgcG9pbnQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgcG9pbnQud2lkdGggPSBtb3VudFdpZHRoO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciB2YWxpZFdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueSA9IHlBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZFdpZHRoICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICBwb2ludC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICBwb2ludC54ID0gaGVpZ2h0ICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIE1hdGgucm91bmQoZWFjaFNwYWNpbmcgLyAyKTtcclxuXHJcbiAgICAgIGlmIChzZXJpZXNJbmRleCA+IDApIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHNlcmllc0luZGV4OyBpKyspIHtcclxuICAgICAgICAgIHZhbHVlICs9IHN0YWNrU2VyaWVzW2ldLmRhdGFbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgdmFsdWUwID0gdmFsdWUgLSBpdGVtO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlMCAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHRjID0gaGVpZ2h0MDtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIGhlaWdodGMgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludC55MCA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHRjKSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc3RhY2tTZXJpZXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA5ICYmIGFyZ3VtZW50c1s5XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzldIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueSA9IHlBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gc2VyaWVzSW5kZXg7IGkrKykge1xyXG4gICAgICAgICAgdmFsdWUgKz0gc3RhY2tTZXJpZXNbaV0uZGF0YVtpbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB2YWx1ZTAgPSB2YWx1ZSAtIGl0ZW07XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gdmFsaWRIZWlnaHQgKiAodmFsdWUwIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodGMgPSBoZWlnaHQwO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgaGVpZ2h0YyAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC5oZWlnaHQgPSBoZWlnaHQgLSBoZWlnaHRjO1xyXG4gICAgICBwb2ludC54ID0gb3B0cy5hcmVhWzNdICsgaGVpZ2h0O1xyXG4gICAgICBwb2ludC54MCA9IG9wdHMuYXJlYVszXSArIGhlaWdodGM7XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRZQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBzdGFjaywgeURhdGEpIHtcclxuICB2YXIgaW5kZXggPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IC0xO1xyXG4gIHZhciBkYXRhO1xyXG4gIGlmIChzdGFjayA9PSAnc3RhY2snKSB7XHJcbiAgICBkYXRhID0gZGF0YUNvbWJpbmVTdGFjayhzZXJpZXMsIG9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBkYXRhID0gZGF0YUNvbWJpbmUoc2VyaWVzKTtcclxuICB9XHJcbiAgdmFyIHNvcnRlZCA9IFtdO1xyXG4gIC8vIHJlbW92ZSBudWxsIGZyb20gZGF0YVxyXG4gIGRhdGEgPSBkYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAvL3JldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWUgIT09IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGRhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICBpZiAob3B0cy50eXBlID09ICdjYW5kbGUnKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcChmdW5jdGlvbihzdWJpdGVtKSB7XHJcbiAgICAgICAgICAgIHNvcnRlZC5wdXNoKHN1Yml0ZW0pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc29ydGVkLnB1c2goaXRlbVsxXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvcnRlZC5wdXNoKGl0ZW0udmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzb3J0ZWQucHVzaChpdGVtKTtcclxuICAgIH1cclxuICB9KVxyXG4gIHZhciBtaW5EYXRhID0geURhdGEubWluIHx8IDA7XHJcbiAgdmFyIG1heERhdGEgPSB5RGF0YS5tYXggfHwgMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIGlmIChtaW5EYXRhID09PSBtYXhEYXRhKSB7XHJcbiAgICBpZihtYXhEYXRhID09IDApe1xyXG4gICAgICBtYXhEYXRhID0gMTA7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbWluRGF0YSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHZhciBkYXRhUmFuZ2UgPSBnZXREYXRhUmFuZ2UobWluRGF0YSwgbWF4RGF0YSk7XHJcbiAgdmFyIG1pblJhbmdlID0gKHlEYXRhLm1pbiA9PT0gdW5kZWZpbmVkIHx8IHlEYXRhLm1pbiA9PT0gbnVsbCkgPyBkYXRhUmFuZ2UubWluUmFuZ2UgOiB5RGF0YS5taW47XHJcbiAgdmFyIG1heFJhbmdlID0gKHlEYXRhLm1heCA9PT0gdW5kZWZpbmVkIHx8IHlEYXRhLm1heCA9PT0gbnVsbCkgPyBkYXRhUmFuZ2UubWF4UmFuZ2UgOiB5RGF0YS5tYXg7XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueUF4aXMuc3BsaXROdW1iZXI7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZS5yZXZlcnNlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFlBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIC8v5aCG5Y+g5Zu+6YeN566XWei9tFxyXG4gIHZhciBjb2x1bW5zdHlsZSA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogXCJcIlxyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICAvL+WmguaenOaYr+WkmlnovbTvvIzph43mlrDorqHnrpdcclxuICB2YXIgWUxlbmd0aCA9IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7XHJcbiAgdmFyIG5ld1NlcmllcyA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuICBpZiAoWUxlbmd0aCA+IDApIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgWUxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG5ld1Nlcmllc1tpXSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlcmllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmIChzZXJpZXNbal0uaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgbmV3U2VyaWVzW2ldLnB1c2goc2VyaWVzW2pdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByYW5nZXNBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcbiAgICB2YXIgcmFuZ2VzRm9ybWF0QXJyID0gbmV3IEFycmF5KFlMZW5ndGgpO1xyXG4gICAgdmFyIHlBeGlzV2lkdGhBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBZTGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHlEYXRhID0gb3B0cy55QXhpcy5kYXRhW2ldO1xyXG4gICAgICAvL+WmguaenOaAu+W8gOWFs+S4jeaYvuekuu+8jOW8uuWItuavj+S4qlnovbTkuLrkuI3mmL7npLpcclxuICAgICAgaWYgKG9wdHMueUF4aXMuZGlzYWJsZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHlEYXRhLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZih5RGF0YS50eXBlID09PSAnY2F0ZWdvcmllcycpe1xyXG4gICAgICAgIGlmKCF5RGF0YS5mb3JtYXR0ZXIpe1xyXG4gICAgICAgICAgeURhdGEuZm9ybWF0dGVyID0gKHZhbCxpbmRleCxvcHRzKSA9PiB7cmV0dXJuIHZhbCArICh5RGF0YS51bml0IHx8ICcnKX07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHlEYXRhLmNhdGVnb3JpZXMgPSB5RGF0YS5jYXRlZ29yaWVzIHx8IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgICByYW5nZXNBcnJbaV0gPSB5RGF0YS5jYXRlZ29yaWVzO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZigheURhdGEuZm9ybWF0dGVyKXtcclxuICAgICAgICAgIHlEYXRhLmZvcm1hdHRlciA9ICh2YWwsaW5kZXgsb3B0cykgPT4ge3JldHVybiB1dGlsLnRvRml4ZWQodmFsLCB5RGF0YS50b2ZpeCB8fCAwKSArICh5RGF0YS51bml0IHx8ICcnKX07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJhbmdlc0FycltpXSA9IGdldFlBeGlzVGV4dExpc3QobmV3U2VyaWVzW2ldLCBvcHRzLCBjb25maWcsIGNvbHVtbnN0eWxlLnR5cGUsIHlEYXRhLCBpKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgeUF4aXNGb250U2l6ZXMgPSB5RGF0YS5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgeUF4aXNXaWR0aEFycltpXSA9IHtcclxuICAgICAgICBwb3NpdGlvbjogeURhdGEucG9zaXRpb24gPyB5RGF0YS5wb3NpdGlvbiA6ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICByYW5nZXNGb3JtYXRBcnJbaV0gPSByYW5nZXNBcnJbaV0ubWFwKGZ1bmN0aW9uKGl0ZW1zLGluZGV4KSB7XHJcbiAgICAgICAgaXRlbXMgPSB5RGF0YS5mb3JtYXR0ZXIoaXRlbXMsaW5kZXgsb3B0cyk7XHJcbiAgICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCA9IE1hdGgubWF4KHlBeGlzV2lkdGhBcnJbaV0ud2lkdGgsIG1lYXN1cmVUZXh0KGl0ZW1zLCB5QXhpc0ZvbnRTaXplcywgY29udGV4dCkgKyA1KTtcclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgY2FsaWJyYXRpb24gPSB5RGF0YS5jYWxpYnJhdGlvbiA/IDQgKiBvcHRzLnBpeCA6IDA7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbaV0ud2lkdGggKz0gY2FsaWJyYXRpb24gKyAzICogb3B0cy5waXg7XHJcbiAgICAgIGlmICh5RGF0YS5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHlBeGlzV2lkdGhBcnJbaV0ud2lkdGggPSAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHZhciByYW5nZXNBcnIgPSBuZXcgQXJyYXkoMSk7XHJcbiAgICB2YXIgcmFuZ2VzRm9ybWF0QXJyID0gbmV3IEFycmF5KDEpO1xyXG4gICAgdmFyIHlBeGlzV2lkdGhBcnIgPSBuZXcgQXJyYXkoMSk7XHJcbiAgICBpZihvcHRzLnR5cGUgPT09ICdiYXInKXtcclxuICAgICAgcmFuZ2VzQXJyWzBdID0gb3B0cy5jYXRlZ29yaWVzO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJhbmdlc0FyclswXSA9IGdldFlBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbHVtbnN0eWxlLnR5cGUsIHt9KTtcclxuICAgIH1cclxuICAgIHlBeGlzV2lkdGhBcnJbMF0gPSB7XHJcbiAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAwXHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICB5QXhpc1dpZHRoQXJyWzBdID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgICAgd2lkdGg6IDBcclxuICAgICAgfTtcclxuICAgICAgb3B0cy55QXhpcy5kYXRhWzBdID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRzLnlBeGlzLmRhdGFbMF0gPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgICAgbWF4OiBvcHRzLnlBeGlzLm1heCxcclxuICAgICAgICBtaW46IG9wdHMueUF4aXMubWluLFxyXG4gICAgICAgIGZvcm1hdHRlcjogKHZhbCxpbmRleCxvcHRzKSA9PiB7cmV0dXJuIHZhbH1cclxuICAgICAgfTtcclxuICAgICAgaWYob3B0cy50eXBlID09PSAnYmFyJyl7XHJcbiAgICAgICAgb3B0cy55QXhpcy5kYXRhWzBdLmNhdGVnb3JpZXMgPSBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICAgICAgb3B0cy55QXhpcy5kYXRhWzBdLnR5cGUgPSAnY2F0ZWdvcmllcyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciB5QXhpc0ZvbnRTaXplID0gb3B0cy55QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgIHJhbmdlc0Zvcm1hdEFyclswXSA9IHJhbmdlc0FyclswXS5tYXAoZnVuY3Rpb24oaXRlbSxpbmRleCkge1xyXG4gICAgICBpdGVtID0gb3B0cy55QXhpcy5kYXRhWzBdLmZvcm1hdHRlcihpdGVtLGluZGV4LG9wdHMpO1xyXG4gICAgICB5QXhpc1dpZHRoQXJyWzBdLndpZHRoID0gTWF0aC5tYXgoeUF4aXNXaWR0aEFyclswXS53aWR0aCwgbWVhc3VyZVRleHQoaXRlbSwgeUF4aXNGb250U2l6ZSwgY29udGV4dCkgKyA1KTtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9KTtcclxuICAgIHlBeGlzV2lkdGhBcnJbMF0ud2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgcmFuZ2VzRm9ybWF0OiByYW5nZXNGb3JtYXRBcnIsXHJcbiAgICByYW5nZXM6IHJhbmdlc0FycixcclxuICAgIHlBeGlzV2lkdGg6IHlBeGlzV2lkdGhBcnJcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxUb29sdGlwWUF4aXNEYXRhKHBvaW50LCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcpIHtcclxuICBsZXQgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXMpO1xyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgbWluQXhpcyA9IG9wdHMuYXJlYVswXTtcclxuICBsZXQgaXRlbXMgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IG1heFZhbCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHJhbmdlc1tpXSk7XHJcbiAgICBsZXQgbWluVmFsID0gTWF0aC5taW4uYXBwbHkodGhpcywgcmFuZ2VzW2ldKTtcclxuICAgIGxldCBpdGVtID0gbWF4VmFsIC0gKG1heFZhbCAtIG1pblZhbCkgKiAocG9pbnQgLSBtaW5BeGlzKSAvIHNwYWNpbmdWYWxpZDtcclxuICAgIGl0ZW0gPSBvcHRzLnlBeGlzLmRhdGEgJiYgb3B0cy55QXhpcy5kYXRhW2ldLmZvcm1hdHRlciA/IG9wdHMueUF4aXMuZGF0YVtpXS5mb3JtYXR0ZXIoaXRlbSwgaSwgb3B0cykgOiBpdGVtLnRvRml4ZWQoMCk7XHJcbiAgICBpdGVtcy5wdXNoKFN0cmluZyhpdGVtKSlcclxuICB9XHJcbiAgcmV0dXJuIGl0ZW1zO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxNYXJrTGluZURhdGEocG9pbnRzLCBvcHRzKSB7XHJcbiAgbGV0IG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIHBvaW50c1tpXS55QXhpc0luZGV4ID0gcG9pbnRzW2ldLnlBeGlzSW5kZXggPyBwb2ludHNbaV0ueUF4aXNJbmRleCA6IDA7XHJcbiAgICBsZXQgcmFuZ2UgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1twb2ludHNbaV0ueUF4aXNJbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZS5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2Uuc2hpZnQoKTtcclxuICAgIGxldCBoZWlnaHQgPSBzcGFjaW5nVmFsaWQgKiAocG9pbnRzW2ldLnZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgcG9pbnRzW2ldLnkgPSBvcHRzLmhlaWdodCAtIE1hdGgucm91bmQoaGVpZ2h0KSAtIG9wdHMuYXJlYVsyXTtcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKSB7XHJcbiAgaWYgKG9wdHMucm90YXRlTG9jayAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5oZWlnaHQsIDApO1xyXG4gICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICB9IGVsc2UgaWYgKG9wdHMuX3JvdGF0ZV8gIT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuaGVpZ2h0LCAwKTtcclxuICAgIGNvbnRleHQucm90YXRlKDkwICogTWF0aC5QSSAvIDE4MCk7XHJcbiAgICBvcHRzLl9yb3RhdGVfID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQb2ludFNoYXBlKHBvaW50cywgY29sb3IsIHNoYXBlLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZVR5cGUgPT0gJ2hvbGxvdycpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5iYWNrZ3JvdW5kKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoXCIjZmZmZmZmXCIpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgaWYgKHNoYXBlID09PSAnZGlhbW9uZCcpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgNC41LCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUpO1xyXG4gICAgICAgIGNvbnRleHQucmVjdChpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSwgNywgNyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICd0cmlhbmdsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnbm9uZScpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyKSB7XHJcbiAgdmFyIHRpdGxlZm9udFNpemUgPSBvcHRzLnRpdGxlLmZvbnRTaXplIHx8IGNvbmZpZy50aXRsZUZvbnRTaXplO1xyXG4gIHZhciBzdWJ0aXRsZWZvbnRTaXplID0gb3B0cy5zdWJ0aXRsZS5mb250U2l6ZSB8fCBjb25maWcuc3VidGl0bGVGb250U2l6ZTtcclxuICB2YXIgdGl0bGUgPSBvcHRzLnRpdGxlLm5hbWUgfHwgJyc7XHJcbiAgdmFyIHN1YnRpdGxlID0gb3B0cy5zdWJ0aXRsZS5uYW1lIHx8ICcnO1xyXG4gIHZhciB0aXRsZUZvbnRDb2xvciA9IG9wdHMudGl0bGUuY29sb3IgfHwgb3B0cy5mb250Q29sb3I7XHJcbiAgdmFyIHN1YnRpdGxlRm9udENvbG9yID0gb3B0cy5zdWJ0aXRsZS5jb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICB2YXIgdGl0bGVIZWlnaHQgPSB0aXRsZSA/IHRpdGxlZm9udFNpemUgOiAwO1xyXG4gIHZhciBzdWJ0aXRsZUhlaWdodCA9IHN1YnRpdGxlID8gc3VidGl0bGVmb250U2l6ZSA6IDA7XHJcbiAgdmFyIG1hcmdpbiA9IDU7XHJcbiAgaWYgKHN1YnRpdGxlKSB7XHJcbiAgICB2YXIgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoc3VidGl0bGUsIHN1YnRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCwgY29udGV4dCk7XHJcbiAgICB2YXIgc3RhcnRYID0gY2VudGVyLnggLSB0ZXh0V2lkdGggLyAyICsgKG9wdHMuc3VidGl0bGUub2Zmc2V0WHx8IDApICogb3B0cy5waXggO1xyXG4gICAgdmFyIHN0YXJ0WSA9IGNlbnRlci55ICsgc3VidGl0bGVmb250U2l6ZSAqIG9wdHMucGl4IC8gMiArIChvcHRzLnN1YnRpdGxlLm9mZnNldFkgfHwgMCkgKiBvcHRzLnBpeDtcclxuICAgIGlmICh0aXRsZSkge1xyXG4gICAgICBzdGFydFkgKz0gKHRpdGxlSGVpZ2h0ICogb3B0cy5waXggKyBtYXJnaW4pIC8gMjtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKHN1YnRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzdWJ0aXRsZUZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KHN1YnRpdGxlLCBzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbiAgaWYgKHRpdGxlKSB7XHJcbiAgICB2YXIgX3RleHRXaWR0aCA9IG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZWZvbnRTaXplICogb3B0cy5waXgsIGNvbnRleHQpO1xyXG4gICAgdmFyIF9zdGFydFggPSBjZW50ZXIueCAtIF90ZXh0V2lkdGggLyAyICsgKG9wdHMudGl0bGUub2Zmc2V0WCB8fCAwKTtcclxuICAgIHZhciBfc3RhcnRZID0gY2VudGVyLnkgKyB0aXRsZWZvbnRTaXplICogb3B0cy5waXggLyAyICsgKG9wdHMudGl0bGUub2Zmc2V0WSB8fCAwKSAqIG9wdHMucGl4O1xyXG4gICAgaWYgKHN1YnRpdGxlKSB7XHJcbiAgICAgIF9zdGFydFkgLT0gKHN1YnRpdGxlSGVpZ2h0ICogb3B0cy5waXggKyBtYXJnaW4pIC8gMjtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKHRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0aXRsZUZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCBfc3RhcnRYLCBfc3RhcnRZKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgLy8g57uY5Yi25pWw5o2u5paH5qGIXHJcbiAgdmFyIGRhdGEgPSBzZXJpZXMuZGF0YTtcclxuICB2YXIgdGV4dE9mZnNldCA9IHNlcmllcy50ZXh0T2Zmc2V0ID8gc2VyaWVzLnRleHRPZmZzZXQgOiAwO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICB2YXIgZm9udFNpemUgPSBzZXJpZXMudGV4dFNpemUgPyBzZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllcy50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICB2YXIgdmFsdWUgPSBkYXRhW2luZGV4XVxyXG4gICAgICBpZiAodHlwZW9mIGRhdGFbaW5kZXhdID09PSAnb2JqZWN0JyAmJiBkYXRhW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChkYXRhW2luZGV4XS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5Jyk+LTEpIHtcclxuICAgICAgICAgIHZhbHVlID0gZGF0YVtpbmRleF1bMV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbHVlID0gZGF0YVtpbmRleF0udmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGZvcm1hdFZhbCA9IHNlcmllcy5mb3JtYXR0ZXIgPyBzZXJpZXMuZm9ybWF0dGVyKHZhbHVlLGluZGV4LHNlcmllcyxvcHRzKSA6IHZhbHVlO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGZvcm1hdFZhbCksIGl0ZW0ueCwgaXRlbS55IC0gNCArIHRleHRPZmZzZXQgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdNb3VudFBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgLy8g57uY5Yi25pWw5o2u5paH5qGIXHJcbiAgdmFyIGRhdGEgPSBzZXJpZXMuZGF0YTtcclxuICB2YXIgdGV4dE9mZnNldCA9IHNlcmllcy50ZXh0T2Zmc2V0ID8gc2VyaWVzLnRleHRPZmZzZXQgOiAwO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICB2YXIgZm9udFNpemUgPSBzZXJpZXNbaW5kZXhdLnRleHRTaXplID8gc2VyaWVzW2luZGV4XS50ZXh0U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzW2luZGV4XS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtLnZhbHVlXHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXNbaW5kZXhdLmZvcm1hdHRlciA/IHNlcmllc1tpbmRleF0uZm9ybWF0dGVyKHZhbHVlLGluZGV4LHNlcmllcyxvcHRzKSA6IHZhbHVlO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGZvcm1hdFZhbCksIGl0ZW0ueCwgaXRlbS55IC0gNCArIHRleHRPZmZzZXQgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBzZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cykge1xyXG4gIC8vIOe7mOWItuaVsOaNruaWh+ahiFxyXG4gIHZhciBkYXRhID0gc2VyaWVzLmRhdGE7XHJcbiAgdmFyIHRleHRPZmZzZXQgPSBzZXJpZXMudGV4dE9mZnNldCA/IHNlcmllcy50ZXh0T2Zmc2V0IDogMDtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gc2VyaWVzLnRleHRTaXplID8gc2VyaWVzLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgdmFyIHZhbHVlID0gZGF0YVtpbmRleF1cclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2luZGV4XSA9PT0gJ29iamVjdCcgJiYgZGF0YVtpbmRleF0gIT09IG51bGwpIHtcclxuICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdLnZhbHVlIDtcclxuICAgICAgfVxyXG4gICAgICB2YXIgZm9ybWF0VmFsID0gc2VyaWVzLmZvcm1hdHRlciA/IHNlcmllcy5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGZvcm1hdFZhbCksIGl0ZW0ueCArIDQgKiBvcHRzLnBpeCAsIGl0ZW0ueSArIGZvbnRTaXplIC8gMiAtIDMgKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlTGFiZWwoZ2F1Z2VPcHRpb24sIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDIgKyBnYXVnZU9wdGlvbi5sYWJlbE9mZnNldCAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgbGV0IHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKyAxO1xyXG4gIGxldCBzcGxpdEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICBsZXQgdG90YWxOdW1iZXIgPSBnYXVnZU9wdGlvbi5lbmROdW1iZXIgLSBnYXVnZU9wdGlvbi5zdGFydE51bWJlcjtcclxuICBsZXQgc3BsaXROdW1iZXIgPSB0b3RhbE51bWJlciAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICBsZXQgbm93QW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gIGxldCBub3dOdW1iZXIgPSBnYXVnZU9wdGlvbi5zdGFydE51bWJlcjtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciArIDE7IGkrKykge1xyXG4gICAgdmFyIHBvcyA9IHtcclxuICAgICAgeDogcmFkaXVzICogTWF0aC5jb3Mobm93QW5nbGUgKiBNYXRoLlBJKSxcclxuICAgICAgeTogcmFkaXVzICogTWF0aC5zaW4obm93QW5nbGUgKiBNYXRoLlBJKVxyXG4gICAgfTtcclxuICAgIHZhciBsYWJlbFRleHQgPSBnYXVnZU9wdGlvbi5mb3JtYXR0ZXIgPyBnYXVnZU9wdGlvbi5mb3JtYXR0ZXIobm93TnVtYmVyLGksb3B0cykgOiBub3dOdW1iZXI7XHJcbiAgICBwb3MueCArPSBjZW50ZXJQb3NpdGlvbi54IC0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpIC8gMjtcclxuICAgIHBvcy55ICs9IGNlbnRlclBvc2l0aW9uLnk7XHJcbiAgICB2YXIgc3RhcnRYID0gcG9zLng7XHJcbiAgICB2YXIgc3RhcnRZID0gcG9zLnk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZ2F1Z2VPcHRpb24ubGFiZWxDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGxhYmVsVGV4dCwgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUgLyAyKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgbm93QW5nbGUgKz0gc3BsaXRBbmdsZTtcclxuICAgIGlmIChub3dBbmdsZSA+PSAyKSB7XHJcbiAgICAgIG5vd0FuZ2xlID0gbm93QW5nbGUgJSAyO1xyXG4gICAgfVxyXG4gICAgbm93TnVtYmVyICs9IHNwbGl0TnVtYmVyO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JhZGFyTGFiZWwoYW5nbGVMaXN0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcmFkYXJPcHRpb24gPSBvcHRzLmV4dHJhLnJhZGFyIHx8IHt9O1xyXG4gIGFuZ2xlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlLCBpbmRleCkge1xyXG4gICAgaWYocmFkYXJPcHRpb24ubGFiZWxQb2ludFNob3cgPT09IHRydWUgJiYgb3B0cy5jYXRlZ29yaWVzW2luZGV4XSAhPT0gJycpe1xyXG4gICAgICB2YXIgcG9zUG9pbnQgPSB7XHJcbiAgICAgICAgeDogcmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLFxyXG4gICAgICAgIHk6IHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKVxyXG4gICAgICB9O1xyXG4gICAgICB2YXIgcG9zUG9pbnRBeGlzID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocG9zUG9pbnQueCwgcG9zUG9pbnQueSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShyYWRhck9wdGlvbi5sYWJlbFBvaW50Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmFyYyhwb3NQb2ludEF4aXMueCwgcG9zUG9pbnRBeGlzLnksIHJhZGFyT3B0aW9uLmxhYmVsUG9pbnRSYWRpdXMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICB9XHJcbiAgICB2YXIgcG9zID0ge1xyXG4gICAgICB4OiAocmFkaXVzICsgY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luICogb3B0cy5waXgpICogTWF0aC5jb3MoYW5nbGUpLFxyXG4gICAgICB5OiAocmFkaXVzICsgY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luICogb3B0cy5waXgpICogTWF0aC5zaW4oYW5nbGUpXHJcbiAgICB9O1xyXG4gICAgdmFyIHBvc1JlbGF0aXZlQ2FudmFzID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocG9zLngsIHBvcy55LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgICB2YXIgc3RhcnRYID0gcG9zUmVsYXRpdmVDYW52YXMueDtcclxuICAgIHZhciBzdGFydFkgPSBwb3NSZWxhdGl2ZUNhbnZhcy55O1xyXG4gICAgaWYgKHV0aWwuYXBwcm94aW1hdGVseUVxdWFsKHBvcy54LCAwKSkge1xyXG4gICAgICBzdGFydFggLT0gbWVhc3VyZVRleHQob3B0cy5jYXRlZ29yaWVzW2luZGV4XSB8fCAnJywgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICB9IGVsc2UgaWYgKHBvcy54IDwgMCkge1xyXG4gICAgICBzdGFydFggLT0gbWVhc3VyZVRleHQob3B0cy5jYXRlZ29yaWVzW2luZGV4XSB8fCAnJywgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShyYWRhck9wdGlvbi5sYWJlbENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQob3B0cy5jYXRlZ29yaWVzW2luZGV4XSB8fCAnJywgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUgLyAyKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BpZVRleHQoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHJhZGl1cywgY2VudGVyKSB7XHJcbiAgdmFyIGxpbmVSYWRpdXMgPSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZztcclxuICB2YXIgdGV4dE9iamVjdENvbGxlY3Rpb24gPSBbXTtcclxuICB2YXIgbGFzdFRleHRPYmplY3QgPSBudWxsO1xyXG4gIHZhciBzZXJpZXNDb252ZXJ0ID0gc2VyaWVzLm1hcChmdW5jdGlvbihpdGVtLGluZGV4KSB7XHJcbiAgICB2YXIgdGV4dCA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbSxpbmRleCxzZXJpZXMsb3B0cykgOiB1dGlsLnRvRml4ZWQoaXRlbS5fcHJvcG9ydGlvbl8udG9GaXhlZCg0KSAqIDEwMCkgKyAnJSc7XHJcbiAgICB0ZXh0ID0gaXRlbS5sYWJlbFRleHQgPyBpdGVtLmxhYmVsVGV4dCA6IHRleHQ7XHJcbiAgICB2YXIgYXJjID0gMiAqIE1hdGguUEkgLSAoaXRlbS5fc3RhcnRfICsgMiAqIE1hdGguUEkgKiBpdGVtLl9wcm9wb3J0aW9uXyAvIDIpO1xyXG4gICAgaWYgKGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8pIHtcclxuICAgICAgYXJjID0gMiAqIE1hdGguUEkgLSAoaXRlbS5fc3RhcnRfICsgMiAqIE1hdGguUEkgKiBpdGVtLl9yb3NlX3Byb3BvcnRpb25fIC8gMik7XHJcbiAgICB9XHJcbiAgICB2YXIgY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgdmFyIHJhZGl1cyA9IGl0ZW0uX3JhZGl1c187XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcmM6IGFyYyxcclxuICAgICAgdGV4dDogdGV4dCxcclxuICAgICAgY29sb3I6IGNvbG9yLFxyXG4gICAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgICAgdGV4dENvbG9yOiBpdGVtLnRleHRDb2xvcixcclxuICAgICAgdGV4dFNpemU6IGl0ZW0udGV4dFNpemUsXHJcbiAgICAgIGxhYmVsU2hvdzogaXRlbS5sYWJlbFNob3dcclxuICAgIH07XHJcbiAgfSk7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXNDb252ZXJ0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc0NvbnZlcnRbaV07XHJcbiAgICAvLyBsaW5lIGVuZFxyXG4gICAgbGV0IG9yZ2luWDEgPSBNYXRoLmNvcyhpdGVtLmFyYykgKiAoaXRlbS5yYWRpdXMgKyBsaW5lUmFkaXVzKTtcclxuICAgIGxldCBvcmdpblkxID0gTWF0aC5zaW4oaXRlbS5hcmMpICogKGl0ZW0ucmFkaXVzICsgbGluZVJhZGl1cyk7XHJcbiAgICAvLyBsaW5lIHN0YXJ0XHJcbiAgICBsZXQgb3JnaW5YMiA9IE1hdGguY29zKGl0ZW0uYXJjKSAqIGl0ZW0ucmFkaXVzO1xyXG4gICAgbGV0IG9yZ2luWTIgPSBNYXRoLnNpbihpdGVtLmFyYykgKiBpdGVtLnJhZGl1cztcclxuICAgIC8vIHRleHQgc3RhcnRcclxuICAgIGxldCBvcmdpblgzID0gb3JnaW5YMSA+PSAwID8gb3JnaW5YMSArIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nIDogb3JnaW5YMSAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nO1xyXG4gICAgbGV0IG9yZ2luWTMgPSBvcmdpblkxO1xyXG4gICAgbGV0IHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KGl0ZW0udGV4dCwgaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICBsZXQgc3RhcnRZID0gb3JnaW5ZMztcclxuICAgIGlmIChsYXN0VGV4dE9iamVjdCAmJiB1dGlsLmlzU2FtZVhDb29yZGluYXRlQXJlYShsYXN0VGV4dE9iamVjdC5zdGFydCwge1xyXG4gICAgICAgIHg6IG9yZ2luWDNcclxuICAgICAgfSkpIHtcclxuICAgICAgaWYgKG9yZ2luWDMgPiAwKSB7XHJcbiAgICAgICAgc3RhcnRZID0gTWF0aC5taW4ob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgIH0gZWxzZSBpZiAob3JnaW5YMSA8IDApIHtcclxuICAgICAgICBzdGFydFkgPSBNYXRoLm1heChvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAob3JnaW5ZMyA+IDApIHtcclxuICAgICAgICAgIHN0YXJ0WSA9IE1hdGgubWF4KG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFkgPSBNYXRoLm1pbihvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChvcmdpblgzIDwgMCkge1xyXG4gICAgICBvcmdpblgzIC09IHRleHRXaWR0aDtcclxuICAgIH1cclxuICAgIGxldCB0ZXh0T2JqZWN0ID0ge1xyXG4gICAgICBsaW5lU3RhcnQ6IHtcclxuICAgICAgICB4OiBvcmdpblgyLFxyXG4gICAgICAgIHk6IG9yZ2luWTJcclxuICAgICAgfSxcclxuICAgICAgbGluZUVuZDoge1xyXG4gICAgICAgIHg6IG9yZ2luWDEsXHJcbiAgICAgICAgeTogb3JnaW5ZMVxyXG4gICAgICB9LFxyXG4gICAgICBzdGFydDoge1xyXG4gICAgICAgIHg6IG9yZ2luWDMsXHJcbiAgICAgICAgeTogc3RhcnRZXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpZHRoOiB0ZXh0V2lkdGgsXHJcbiAgICAgIGhlaWdodDogY29uZmlnLmZvbnRTaXplLFxyXG4gICAgICB0ZXh0OiBpdGVtLnRleHQsXHJcbiAgICAgIGNvbG9yOiBpdGVtLmNvbG9yLFxyXG4gICAgICB0ZXh0Q29sb3I6IGl0ZW0udGV4dENvbG9yLFxyXG4gICAgICB0ZXh0U2l6ZTogaXRlbS50ZXh0U2l6ZVxyXG4gICAgfTtcclxuICAgIGxhc3RUZXh0T2JqZWN0ID0gYXZvaWRDb2xsaXNpb24odGV4dE9iamVjdCwgbGFzdFRleHRPYmplY3QpO1xyXG4gICAgdGV4dE9iamVjdENvbGxlY3Rpb24ucHVzaChsYXN0VGV4dE9iamVjdCk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dE9iamVjdENvbGxlY3Rpb24ubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmKHNlcmllc0NvbnZlcnRbaV0ubGFiZWxTaG93ID09PSBmYWxzZSl7XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG4gICAgbGV0IGl0ZW0gPSB0ZXh0T2JqZWN0Q29sbGVjdGlvbltpXTtcclxuICAgIGxldCBsaW5lU3RhcnRQb2lzdGlvbiA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKGl0ZW0ubGluZVN0YXJ0LngsIGl0ZW0ubGluZVN0YXJ0LnksIGNlbnRlcik7XHJcbiAgICBsZXQgbGluZUVuZFBvaXN0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5saW5lRW5kLngsIGl0ZW0ubGluZUVuZC55LCBjZW50ZXIpO1xyXG4gICAgbGV0IHRleHRQb3NpdGlvbiA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKGl0ZW0uc3RhcnQueCwgaXRlbS5zdGFydC55LCBjZW50ZXIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8obGluZVN0YXJ0UG9pc3Rpb24ueCwgbGluZVN0YXJ0UG9pc3Rpb24ueSk7XHJcbiAgICBsZXQgY3VydmVTdGFydFggPSBpdGVtLnN0YXJ0LnggPCAwID8gdGV4dFBvc2l0aW9uLnggKyBpdGVtLndpZHRoIDogdGV4dFBvc2l0aW9uLng7XHJcbiAgICBsZXQgdGV4dFN0YXJ0WCA9IGl0ZW0uc3RhcnQueCA8IDAgPyB0ZXh0UG9zaXRpb24ueCAtIDUgOiB0ZXh0UG9zaXRpb24ueCArIDU7XHJcbiAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8obGluZUVuZFBvaXN0aW9uLngsIGxpbmVFbmRQb2lzdGlvbi55LCBjdXJ2ZVN0YXJ0WCwgdGV4dFBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8obGluZVN0YXJ0UG9pc3Rpb24ueCwgbGluZVN0YXJ0UG9pc3Rpb24ueSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyh0ZXh0UG9zaXRpb24ueCArIGl0ZW0ud2lkdGgsIHRleHRQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGN1cnZlU3RhcnRYLCB0ZXh0UG9zaXRpb24ueSwgMiAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0udGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS50ZXh0LCB0ZXh0U3RhcnRYLCB0ZXh0UG9zaXRpb24ueSArIDMpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Rvb2xUaXBTcGxpdExpbmUob2Zmc2V0WCwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBvcHRzLmV4dHJhLnRvb2x0aXAgfHwge307XHJcbiAgdG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9IHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPT0gdW5kZWZpbmVkID8gJ3NvbGlkJyA6IHRvb2xUaXBPcHRpb24uZ3JpZFR5cGU7XHJcbiAgdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoID0gdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoID09IHVuZGVmaW5lZCA/IDQgOiB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGg7XHJcbiAgdmFyIHN0YXJ0WSA9IG9wdHMuYXJlYVswXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoLCB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGhdKTtcclxuICB9XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmdyaWRDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0Lm1vdmVUbyhvZmZzZXRYLCBzdGFydFkpO1xyXG4gIGNvbnRleHQubGluZVRvKG9mZnNldFgsIGVuZFkpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24ueEF4aXNMYWJlbCkge1xyXG4gICAgbGV0IGxhYmVsVGV4dCA9IG9wdHMuY2F0ZWdvcmllc1tvcHRzLnRvb2x0aXAuaW5kZXhdO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgbGV0IHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KGxhYmVsVGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgIGxldCB0ZXh0WCA9IG9mZnNldFggLSAwLjUgKiB0ZXh0V2lkdGg7XHJcbiAgICBsZXQgdGV4dFkgPSBlbmRZICsgMiAqIG9wdHMucGl4O1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCwgdG9vbFRpcE9wdGlvbi5sYWJlbEJnT3BhY2l0eSB8fCBjb25maWcudG9vbFRpcE9wYWNpdHkpKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnJlY3QodGV4dFggLSBjb25maWcudG9vbFRpcFBhZGRpbmcsIHRleHRZLCB0ZXh0V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nLCBjb25maWcuZm9udFNpemUgKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUodG9vbFRpcE9wdGlvbi5sYWJlbEZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhsYWJlbFRleHQpLCB0ZXh0WCwgdGV4dFkgKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKyBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IG1hcmtMaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNCxcclxuICAgIGRhdGE6IFtdXHJcbiAgfSwgb3B0cy5leHRyYS5tYXJrTGluZSk7XHJcbiAgbGV0IHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICBsZXQgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgbGV0IHBvaW50cyA9IGNhbE1hcmtMaW5lRGF0YShtYXJrTGluZU9wdGlvbi5kYXRhLCBvcHRzKTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBhc3NpZ24oe30sIHtcclxuICAgICAgbGluZUNvbG9yOiAnI0RFNEE0MicsXHJcbiAgICAgIHNob3dMYWJlbDogZmFsc2UsXHJcbiAgICAgIGxhYmVsRm9udENvbG9yOiAnIzY2NjY2NicsXHJcbiAgICAgIGxhYmVsQmdDb2xvcjogJyNERkU4RkYnLFxyXG4gICAgICBsYWJlbEJnT3BhY2l0eTogMC44LFxyXG4gICAgICBsYWJlbEFsaWduOiAnbGVmdCcsXHJcbiAgICAgIGxhYmVsT2Zmc2V0WDogMCxcclxuICAgICAgbGFiZWxPZmZzZXRZOiAwLFxyXG4gICAgfSwgcG9pbnRzW2ldKTtcclxuICAgIGlmIChtYXJrTGluZU9wdGlvbi50eXBlID09ICdkYXNoJykge1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFttYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoLCBtYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0ubGluZUNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbS55KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChpdGVtLnNob3dMYWJlbCkge1xyXG4gICAgICBsZXQgbGFiZWxUZXh0ID0gaXRlbS5sYWJlbFRleHQgPyBpdGVtLmxhYmVsVGV4dCA6IGl0ZW0udmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgbGV0IHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KGxhYmVsVGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgICAgbGV0IGJnV2lkdGggPSB0ZXh0V2lkdGggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKiAyO1xyXG4gICAgICBsZXQgYmdTdGFydFggPSBpdGVtLmxhYmVsQWxpZ24gPT0gJ2xlZnQnID8gb3B0cy5hcmVhWzNdIC0gYmdXaWR0aCA6IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgIGJnU3RhcnRYICs9IGl0ZW0ubGFiZWxPZmZzZXRYO1xyXG4gICAgICBsZXQgYmdTdGFydFkgPSBpdGVtLnkgLSAwLjUgKiBjb25maWcuZm9udFNpemUgLSBjb25maWcudG9vbFRpcFBhZGRpbmc7XHJcbiAgICAgIGJnU3RhcnRZICs9IGl0ZW0ubGFiZWxPZmZzZXRZO1xyXG4gICAgICBsZXQgdGV4dFggPSBiZ1N0YXJ0WCArIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgbGV0IHRleHRZID0gaXRlbS55O1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihpdGVtLmxhYmVsQmdDb2xvciwgaXRlbS5sYWJlbEJnT3BhY2l0eSkpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0ubGFiZWxCZ0NvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5yZWN0KGJnU3RhcnRYLCBiZ1N0YXJ0WSwgYmdXaWR0aCwgY29uZmlnLmZvbnRTaXplICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZyk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0ubGFiZWxGb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhsYWJlbFRleHQpLCB0ZXh0WCwgYmdTdGFydFkgKyBjb25maWcuZm9udFNpemUgKyBjb25maWcudG9vbFRpcFBhZGRpbmcvMik7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGdyaWRUeXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNFxyXG4gIH0sIG9wdHMuZXh0cmEudG9vbHRpcCk7XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFt0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGgsIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aF0pO1xyXG4gIH1cclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24uZ3JpZENvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy50b29sdGlwLm9mZnNldC55KTtcclxuICBjb250ZXh0LmxpbmVUbyhlbmRYLCBvcHRzLnRvb2x0aXAub2Zmc2V0LnkpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24ueUF4aXNMYWJlbCkge1xyXG4gICAgbGV0IGxhYmVsVGV4dCA9IGNhbFRvb2x0aXBZQXhpc0RhdGEob3B0cy50b29sdGlwLm9mZnNldC55LCBvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBlYWNoU3BhY2luZyk7XHJcbiAgICBsZXQgd2lkdGhBcnIgPSBvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICAgIGxldCB0U3RhcnRMZWZ0ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgbGV0IHRTdGFydFJpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGFiZWxUZXh0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgbGV0IHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KGxhYmVsVGV4dFtpXSwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgICAgbGV0IGJnU3RhcnRYLCBiZ0VuZFgsIGJnV2lkdGg7XHJcbiAgICAgIGlmICh3aWR0aEFycltpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICBiZ1N0YXJ0WCA9IHRTdGFydExlZnQgLSAodGV4dFdpZHRoICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMikgLSAyICogb3B0cy5waXg7XHJcbiAgICAgICAgYmdFbmRYID0gTWF0aC5tYXgoYmdTdGFydFgsIGJnU3RhcnRYICsgdGV4dFdpZHRoICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYmdTdGFydFggPSB0U3RhcnRSaWdodCArIDIgKiBvcHRzLnBpeDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCArIHdpZHRoQXJyW2ldLndpZHRoLCBiZ1N0YXJ0WCArIHRleHRXaWR0aCArIGNvbmZpZy50b29sVGlwUGFkZGluZyAqIDIpO1xyXG4gICAgICB9XHJcbiAgICAgIGJnV2lkdGggPSBiZ0VuZFggLSBiZ1N0YXJ0WDtcclxuICAgICAgbGV0IHRleHRYID0gYmdTdGFydFggKyAoYmdXaWR0aCAtIHRleHRXaWR0aCkgLyAyO1xyXG4gICAgICBsZXQgdGV4dFkgPSBvcHRzLnRvb2x0aXAub2Zmc2V0Lnk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCwgdG9vbFRpcE9wdGlvbi5sYWJlbEJnT3BhY2l0eSB8fCBjb25maWcudG9vbFRpcE9wYWNpdHkpKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIHRleHRZIC0gMC41ICogY29uZmlnLmZvbnRTaXplIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUodG9vbFRpcE9wdGlvbi5sYWJlbEZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQobGFiZWxUZXh0W2ldLCB0ZXh0WCwgdGV4dFkgKyAwLjUgKiBjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBpZiAod2lkdGhBcnJbaV0ucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgdFN0YXJ0TGVmdCAtPSAod2lkdGhBcnJbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdFN0YXJ0UmlnaHQgKz0gd2lkdGhBcnJbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Rvb2xUaXBTcGxpdEFyZWEob2Zmc2V0WCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBhY3RpdmVCZ0NvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBhY3RpdmVCZ09wYWNpdHk6IDAuMDgsXHJcbiAgICBhY3RpdmVXaWR0aDogZWFjaFNwYWNpbmdcclxuICB9LCBvcHRzLmV4dHJhLmNvbHVtbik7XHJcbiAgdG9vbFRpcE9wdGlvbi5hY3RpdmVXaWR0aCA9IHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGggPiBlYWNoU3BhY2luZyA/IGVhY2hTcGFjaW5nIDogdG9vbFRpcE9wdGlvbi5hY3RpdmVXaWR0aDtcclxuICB2YXIgc3RhcnRZID0gb3B0cy5hcmVhWzBdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmFjdGl2ZUJnQ29sb3IsIHRvb2xUaXBPcHRpb24uYWN0aXZlQmdPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5yZWN0KG9mZnNldFggLSB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoIC8gMiwgc3RhcnRZLCB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoLCBlbmRZIC0gc3RhcnRZKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKFwiI0ZGRkZGRlwiKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhclRvb2xUaXBTcGxpdEFyZWEob2Zmc2V0WCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBhY3RpdmVCZ0NvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBhY3RpdmVCZ09wYWNpdHk6IDAuMDhcclxuICB9LCBvcHRzLmV4dHJhLmJhcik7XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmFjdGl2ZUJnQ29sb3IsIHRvb2xUaXBPcHRpb24uYWN0aXZlQmdPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5yZWN0KCBzdGFydFggLG9mZnNldFggLSBlYWNoU3BhY2luZyAvIDIgLCAgZW5kWCAtIHN0YXJ0WCxlYWNoU3BhY2luZyk7XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShcIiNGRkZGRkZcIik7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcCh0ZXh0TGlzdCwgb2Zmc2V0LCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93Qm94OiB0cnVlLFxyXG4gICAgc2hvd0Fycm93OiB0cnVlLFxyXG4gICAgc2hvd0NhdGVnb3J5OiBmYWxzZSxcclxuICAgIGJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGJnT3BhY2l0eTogMC43LFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGJvcmRlcldpZHRoOiAwLFxyXG4gICAgYm9yZGVyUmFkaXVzOiAwLFxyXG4gICAgYm9yZGVyT3BhY2l0eTogMC43LFxyXG4gICAgZm9udENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBzcGxpdExpbmU6IHRydWUsXHJcbiAgfSwgb3B0cy5leHRyYS50b29sdGlwKTtcclxuICBpZih0b29sVGlwT3B0aW9uLnNob3dDYXRlZ29yeT09dHJ1ZSAmJiBvcHRzLmNhdGVnb3JpZXMpe1xyXG4gICAgdGV4dExpc3QudW5zaGlmdCh7dGV4dDpvcHRzLmNhdGVnb3JpZXNbb3B0cy50b29sdGlwLmluZGV4XSxjb2xvcjpudWxsfSlcclxuICB9XHJcbiAgdmFyIGxlZ2VuZFdpZHRoID0gNCAqIG9wdHMucGl4O1xyXG4gIHZhciBsZWdlbmRNYXJnaW5SaWdodCA9IDUgKiBvcHRzLnBpeDtcclxuICB2YXIgYXJyb3dXaWR0aCA9IHRvb2xUaXBPcHRpb24uc2hvd0Fycm93ID8gOCAqIG9wdHMucGl4IDogMDtcclxuICB2YXIgaXNPdmVyUmlnaHRCb3JkZXIgPSBmYWxzZTtcclxuICBpZiAob3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ21vdW50JyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT0gJ21peCcpIHtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNwbGl0TGluZSA9PSB0cnVlKSB7XHJcbiAgICAgIGRyYXdUb29sVGlwU3BsaXRMaW5lKG9wdHMudG9vbHRpcC5vZmZzZXQueCwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcbiAgb2Zmc2V0ID0gYXNzaWduKHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfSwgb2Zmc2V0KTtcclxuICBvZmZzZXQueSAtPSA4ICogb3B0cy5waXg7XHJcbiAgdmFyIHRleHRXaWR0aCA9IHRleHRMaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoaXRlbS50ZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gIH0pO1xyXG4gIHZhciB0b29sVGlwV2lkdGggPSBsZWdlbmRXaWR0aCArIGxlZ2VuZE1hcmdpblJpZ2h0ICsgNCAqIGNvbmZpZy50b29sVGlwUGFkZGluZyArIE1hdGgubWF4LmFwcGx5KG51bGwsIHRleHRXaWR0aCk7XHJcbiAgdmFyIHRvb2xUaXBIZWlnaHQgPSAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgdGV4dExpc3QubGVuZ3RoICogY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0O1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLnNob3dCb3ggPT0gZmFsc2UpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICAvLyBpZiBiZXlvbmQgdGhlIHJpZ2h0IGJvcmRlclxyXG4gIGlmIChvZmZzZXQueCAtIE1hdGguYWJzKG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwKSArIGFycm93V2lkdGggKyB0b29sVGlwV2lkdGggPiBvcHRzLndpZHRoKSB7XHJcbiAgICBpc092ZXJSaWdodEJvcmRlciA9IHRydWU7XHJcbiAgfVxyXG4gIGlmICh0b29sVGlwSGVpZ2h0ICsgb2Zmc2V0LnkgPiBvcHRzLmhlaWdodCkge1xyXG4gICAgb2Zmc2V0LnkgPSBvcHRzLmhlaWdodCAtIHRvb2xUaXBIZWlnaHQ7XHJcbiAgfVxyXG4gIC8vIGRyYXcgYmFja2dyb3VuZCByZWN0XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kLCB0b29sVGlwT3B0aW9uLmJnT3BhY2l0eSB8fCBjb25maWcudG9vbFRpcE9wYWNpdHkpKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCh0b29sVGlwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5ib3JkZXJDb2xvciwgdG9vbFRpcE9wdGlvbi5ib3JkZXJPcGFjaXR5KSk7XHJcbiAgdmFyIHJhZGl1cyA9IHRvb2xUaXBPcHRpb24uYm9yZGVyUmFkaXVzO1xyXG4gIGlmIChpc092ZXJSaWdodEJvcmRlcikge1xyXG4gICAgLy8g5aKe5Yqg5bem5L6n5LuN54S26LaF5Ye655qE5Yik5patXHJcbiAgICBpZih0b29sVGlwV2lkdGggKyBhcnJvd1dpZHRoID4gb3B0cy53aWR0aCl7XHJcbiAgICAgIG9mZnNldC54ID0gb3B0cy53aWR0aCArIE1hdGguYWJzKG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwKSArIGFycm93V2lkdGggKyAodG9vbFRpcFdpZHRoIC0gb3B0cy53aWR0aClcclxuICAgIH1cclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhvZmZzZXQueCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LnggLSBhcnJvd1dpZHRoLCBvZmZzZXQueSArIDEwICogb3B0cy5waXggKyA1ICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cywgMCwgTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSArIHJhZGl1cywgb2Zmc2V0LnkgKyB0b29sVGlwSGVpZ2h0IC0gcmFkaXVzLCByYWRpdXMsXHJcbiAgICAgIE1hdGguUEkgLyAyLCBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCAtIGFycm93V2lkdGggLSBNYXRoLnJvdW5kKHRvb2xUaXBXaWR0aCkgKyByYWRpdXMsIG9mZnNldC55ICsgcmFkaXVzLCByYWRpdXMsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEkgLyAyLCAwLCBmYWxzZSk7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zaG93QXJyb3cpIHtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LnggLSBhcnJvd1dpZHRoLCBvZmZzZXQueSArIDEwICogb3B0cy5waXggLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCArIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyByYWRpdXMsIG9mZnNldC55ICsgcmFkaXVzLCByYWRpdXMsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSAtIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEkgLyAyLCAwLFxyXG4gICAgICBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyBNYXRoLnJvdW5kKHRvb2xUaXBXaWR0aCkgLSByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCAwLFxyXG4gICAgICBNYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cywgTWF0aC5QSSAvIDIsIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCArIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmJvcmRlcldpZHRoID4gMCkge1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbiAgLy8gZHJhdyBsZWdlbmRcclxuICB0ZXh0TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbS5jb2xvciAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgdmFyIHN0YXJ0WCA9IG9mZnNldC54ICsgYXJyb3dXaWR0aCArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmc7XHJcbiAgICAgIHZhciBzdGFydFkgPSBvZmZzZXQueSArIChjb25maWcudG9vbFRpcExpbmVIZWlnaHQgLSBjb25maWcuZm9udFNpemUpIC8gMiArIGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAqIGluZGV4ICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgMTtcclxuICAgICAgaWYgKGlzT3ZlclJpZ2h0Qm9yZGVyKSB7XHJcbiAgICAgICAgc3RhcnRYID0gb2Zmc2V0LnggLSB0b29sVGlwV2lkdGggLSBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZLCBsZWdlbmRXaWR0aCwgY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgLy8g5ZyG5b2i5Zu+5L6L6K+35rOo6YeK5LiK6KGM77yM5bm25oqK5LiL6KGM5Y+W5raI5rOo6YeKXHJcbiAgICAgIC8vIGNvbnRleHQuYXJjKHN0YXJ0WCArIGxlZ2VuZFdpZHRoIC8gMiAsIHN0YXJ0WSArIG9wdHMuZm9udFNpemUgLyAyLCA0ICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgLy8gZHJhdyB0ZXh0IGxpc3RcclxuICB0ZXh0TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICB2YXIgc3RhcnRYID0gb2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZyArIGxlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQ7XHJcbiAgICBpZiAoaXNPdmVyUmlnaHRCb3JkZXIpIHtcclxuICAgICAgc3RhcnRYID0gb2Zmc2V0LnggLSB0b29sVGlwV2lkdGggLSBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZyArICtsZWdlbmRXaWR0aCArIGxlZ2VuZE1hcmdpblJpZ2h0O1xyXG4gICAgfVxyXG4gICAgdmFyIHN0YXJ0WSA9IG9mZnNldC55ICsgKGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAtIGNvbmZpZy5mb250U2l6ZSkgLyAyICsgY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogaW5kZXggKyBjb25maWcudG9vbFRpcFBhZGRpbmc7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUodG9vbFRpcE9wdGlvbi5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChpdGVtLnRleHQsIHN0YXJ0WCwgc3RhcnRZICsgY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Q29sdW1uRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjb2x1bW5PcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdncm91cCcsXHJcbiAgICB3aWR0aDogZWFjaFNwYWNpbmcgLyAyLFxyXG4gICAgbWV0ZXJCb3JkZXI6IDQsXHJcbiAgICBtZXRlckZpbGxDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBzZXJpZXNHYXA6IDIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnRvb2x0aXAgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0ICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdC5sZW5ndGggJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgZHJhd1Rvb2xUaXBTcGxpdEFyZWEob3B0cy50b29sdGlwLm9mZnNldC54LCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKTtcclxuICB9XHJcbiAgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlLCBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICB2YXIgdG9vbHRpcFBvaW50cyA9IGdldFN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICBjYWxQb2ludHMucHVzaCh0b29sdGlwUG9pbnRzKTtcclxuICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgIC8vZml4IGlzc3Vlcy9JMjdCMU4geXlvaW5nZSAmIEpvZXNodVxyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKGNvbHVtbk9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSxjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgoY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzLmxlbmd0aCA9PT0gNCkgfHwgY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueTtcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAvL2NvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAvLyDnu5jliLbloIblj6DmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMiArIDE7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgdmFyIGhlaWdodDAgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueTAgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIGlmIChzZXJpZXNJbmRleCA+IDApIHtcclxuICAgICAgICAgICAgICBoZWlnaHQgLT0gaGVpZ2h0MDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnksIGl0ZW0ud2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21ldGVyJzpcclxuICAgICAgICAvLyDnu5jliLbmuKnluqborqHmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZU1ldGVyRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzLCBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIpO1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICAgIC8v55S76IOM5pmv6aKc6ImyXHJcbiAgICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgICBpZiAoc2VyaWVzSW5kZXggPT0gMCAmJiBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZihzZXJpZXNJbmRleCA9PSAwKXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNvbHVtbk9wdGlvbi5tZXRlckZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICAgIGlmICgoY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzLmxlbmd0aCA9PT0gNCkgfHwgY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvcCA9IGl0ZW0ueTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMiwgdG9wICsgaGVpZ2h0IC0gcjIsIHIyLCAwLCBNYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHNlcmllc0luZGV4ID09IDAgJiYgY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldFN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbWV0ZXInOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01vdW50RGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBtb3VudE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ21vdW50JyxcclxuICAgIHdpZHRoUmF0aW86IDEsXHJcbiAgICBib3JkZXJXaWR0aDogMSxcclxuICAgIGJhckJvcmRlckNpcmNsZTogZmFsc2UsXHJcbiAgICBiYXJCb3JkZXJSYWRpdXM6IFtdLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgbGluZWFyT3BhY2l0eTogMSxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICAgIGNvbG9yU3RvcDogMCxcclxuICB9LCBvcHRzLmV4dHJhLm1vdW50KTtcclxuICBtb3VudE9wdGlvbi53aWR0aFJhdGlvID0gbW91bnRPcHRpb24ud2lkdGhSYXRpbyA8PSAwID8gMCA6IG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgbW91bnRPcHRpb24ud2lkdGhSYXRpbyA9IG1vdW50T3B0aW9uLndpZHRoUmF0aW8gPj0gMiA/IDIgOiBtb3VudE9wdGlvbi53aWR0aFJhdGlvO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICB9XHJcbiAgbW91bnRPcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IobW91bnRPcHRpb24ubGluZWFyVHlwZSwgbW91bnRPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzWzBdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBwb2ludHMgPSBnZXRNb3VudERhdGFQb2ludHMoc2VyaWVzLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgbW91bnRPcHRpb24sIHByb2Nlc3MpO1xyXG4gICAgc3dpdGNoIChtb3VudE9wdGlvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AobW91bnRPcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgICBpZiAoKG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBtb3VudE9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBtb3VudE9wdGlvbi5iYXJCb3JkZXJDaXJjbGUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRvcCA9IGl0ZW0ueTtcclxuICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IGl0ZW0ud2lkdGg7XHJcbiAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBpdGVtLnkgLSBtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4IC8gMjsgXHJcbiAgICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgbW91bnRPcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBtb3VudE9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjEsIHRvcCArIHIxLCByMSwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMiwgdG9wICsgaGVpZ2h0IC0gcjIsIHIyLCAwLCBNYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIzLCB0b3AgKyBoZWlnaHQgLSByMywgcjMsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBpZihtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCA+IDApe1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0cmlhbmdsZSc6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AobW91bnRPcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb3VudCc6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AobW91bnRPcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oaXRlbS54IC0gaXRlbS53aWR0aC80LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSwgaXRlbS54IC0gaXRlbS53aWR0aC80LCBpdGVtLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGl0ZW0ueCArIGl0ZW0ud2lkdGgvNCwgaXRlbS55LCBpdGVtLnggKyBpdGVtLndpZHRoLzQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdLCBzdGFydFggKyBpdGVtLndpZHRoLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBpZihtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCA+IDApe1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc2hhcnAnOlxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gZWFjaFNwYWNpbmcqbW91bnRPcHRpb24ud2lkdGhSYXRpby8yO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IHNlcmllc1tpXS5jb2xvclxyXG4gICAgICAgICAgICB2YXIgc3Ryb2tlQ29sb3IgPSBpdGVtLmNvbG9yIHx8IHNlcmllc1tpXS5jb2xvclxyXG4gICAgICAgICAgICBpZiAobW91bnRPcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKG1vdW50T3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSxtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKGl0ZW0ueCAtIDAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaGVpZ2h0LzQsIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKGl0ZW0ueCArIDAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaGVpZ2h0LzQsIHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgaWYobW91bnRPcHRpb24uYm9yZGVyV2lkdGggPiAwKXtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbMF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldE1vdW50RGF0YVBvaW50cyhzZXJpZXMsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBtb3VudE9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBkcmF3TW91bnRQb2ludFRleHQocG9pbnRzLCBzZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IHBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdCYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHlBeGlzUG9pbnRzID0gW107XHJcbiAgbGV0IGVhY2hTcGFjaW5nID0gKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKS9vcHRzLmNhdGVnb3JpZXMubGVuZ3RoO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICB5QXhpc1BvaW50cy5wdXNoKG9wdHMuYXJlYVswXSArIGVhY2hTcGFjaW5nIC8gMiArIGVhY2hTcGFjaW5nICogaSk7XHJcbiAgfVxyXG4gIGxldCBjb2x1bW5PcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdncm91cCcsXHJcbiAgICB3aWR0aDogZWFjaFNwYWNpbmcgLyAyLFxyXG4gICAgbWV0ZXJCb3JkZXI6IDQsXHJcbiAgICBtZXRlckZpbGxDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBzZXJpZXNHYXA6IDIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEuYmFyKTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB5QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGlmIChvcHRzLnRvb2x0aXAgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0ICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdC5sZW5ndGggJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgZHJhd0JhclRvb2xUaXBTcGxpdEFyZWEob3B0cy50b29sdGlwLm9mZnNldC55LCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKTtcclxuICB9XHJcbiAgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlLCBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXMpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICB2YXIgdG9vbHRpcFBvaW50cyA9IGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICBjYWxQb2ludHMucHVzaCh0b29sdGlwUG9pbnRzKTtcclxuICAgICAgICBwb2ludHMgPSBmaXhCYXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgIC8vZml4IGlzc3Vlcy9JMjdCMU4geXlvaW5nZSAmIEpvZXNodVxyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIC8vdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRZID0gaXRlbS55IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBpdGVtLmhlaWdodDtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgICB2YXIgc3Ryb2tlQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IGl0ZW0ud2lkdGg7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gaXRlbS5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIHIzLCByMywgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMoaXRlbS54IC0gcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLnggLSByMSwgdG9wICsgd2lkdGggLSByMSwgcjEsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjIsIHRvcCArIHdpZHRoIC0gcjIsIHIyLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgc3RhcnRZKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHN0YXJ0WSArIGl0ZW0ud2lkdGgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgc3RhcnRZICsgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpXHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgLy9jb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgLy8g57uY5Yi25aCG5Y+g5pWw5o2u5Zu+XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeEJhclN0YWNrRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yO1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54MDtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkgLSBpdGVtLndpZHRoLzIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgaXRlbS55IC0gaXRlbS53aWR0aC8yLCBpdGVtLmhlaWdodCAsIGl0ZW0ud2lkdGgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXMpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdncm91cCc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIHBvaW50cyA9IGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgICBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB5QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHlBeGlzUG9pbnRzOiB5QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0NhbmRsZURhdGFQb2ludHMoc2VyaWVzLCBzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIGNhbmRsZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgY29sb3I6IHt9LFxyXG4gICAgYXZlcmFnZToge31cclxuICB9LCBvcHRzLmV4dHJhLmNhbmRsZSk7XHJcbiAgY2FuZGxlT3B0aW9uLmNvbG9yID0gYXNzaWduKHt9LCB7XHJcbiAgICB1cExpbmU6ICcjZjA0ODY0JyxcclxuICAgIHVwRmlsbDogJyNmMDQ4NjQnLFxyXG4gICAgZG93bkxpbmU6ICcjMmZjMjViJyxcclxuICAgIGRvd25GaWxsOiAnIzJmYzI1YidcclxuICB9LCBjYW5kbGVPcHRpb24uY29sb3IpO1xyXG4gIGNhbmRsZU9wdGlvbi5hdmVyYWdlID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93OiBmYWxzZSxcclxuICAgIG5hbWU6IFtdLFxyXG4gICAgZGF5OiBbXSxcclxuICAgIGNvbG9yOiBjb25maWcuY29sb3JcclxuICB9LCBjYW5kbGVPcHRpb24uYXZlcmFnZSk7XHJcbiAgb3B0cy5leHRyYS5jYW5kbGUgPSBjYW5kbGVPcHRpb247XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICAvL+eUu+Wdh+e6v1xyXG4gIGlmIChjYW5kbGVPcHRpb24uYXZlcmFnZS5zaG93IHx8IHNlcmllc01BKSB7IC8vTWVyZ2UgcHVsbCByZXF1ZXN0ICExMiBmcm9tIOmCsei0tee/lFxyXG4gICAgc2VyaWVzTUEuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0UG9pbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHBvaW50cyA9IHNwbGl0UG9pbnRMaXN0W2ldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCxcclxuICAgICAgICAgICAgICAgIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v55S7S+e6v1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXRDYW5kbGVEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIHZhciBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3RbMF0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gc3BsaXRQb2ludExpc3RbMF1baV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAvL+WmguaenOS4iua2qFxyXG4gICAgICAgIGlmIChkYXRhW2ldWzFdIC0gZGF0YVtpXVswXSA+IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLnVwTGluZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShjYW5kbGVPcHRpb24uY29sb3IudXBGaWxsKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzJdLngsIGl0ZW1bMl0ueSk7IC8v5bqV54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLmRvd25MaW5lKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNhbmRsZU9wdGlvbi5jb2xvci5kb3duRmlsbCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbVszXS54LCBpdGVtWzNdLnkpOyAvL+mhtueCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54LCBpdGVtWzBdLnkpOyAvL+W8gOebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54IC0gZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzBdLnkpOyAvL+W8gOebmOW3puS+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54IC0gZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzFdLnkpOyAvL+aUtuebmOW3puS+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54LCBpdGVtWzFdLnkpOyAvL+aUtuebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsyXS54LCBpdGVtWzJdLnkpOyAvL+W6leeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54LCBpdGVtWzFdLnkpOyAvL+aUtuebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54ICsgZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzFdLnkpOyAvL+aUtuebmOWPs+S+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54ICsgZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzBdLnkpOyAvL+W8gOebmOWPs+S+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54LCBpdGVtWzBdLnkpOyAvL+W8gOebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbVszXS54LCBpdGVtWzNdLnkpOyAvL+mhtueCuVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QXJlYURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgYXJlYU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ3N0cmFpZ2h0JyxcclxuICAgIG9wYWNpdHk6IDAuMixcclxuICAgIGFkZExpbmU6IGZhbHNlLFxyXG4gICAgd2lkdGg6IDIsXHJcbiAgICBncmFkaWVudDogZmFsc2VcclxuICB9LCBvcHRzLmV4dHJhLmFyZWEpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgbGV0IGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICBsZXQgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICBsZXQgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0UG9pbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBwb2ludHMgPSBzcGxpdFBvaW50TGlzdFtpXTtcclxuICAgICAgLy8g57uY5Yi25Yy65Z+f5pWwXHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYXJlYU9wdGlvbi5vcGFjaXR5KSk7XHJcbiAgICAgIGlmIChhcmVhT3B0aW9uLmdyYWRpZW50KSB7XHJcbiAgICAgICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCBvcHRzLmFyZWFbMF0sIDAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzEuMCcsIGhleFRvUmdiKFwiI0ZGRkZGRlwiLCAwLjEpKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYXJlYU9wdGlvbi5vcGFjaXR5KSk7XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoYXJlYU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgaWYgKHBvaW50cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgbGV0IGZpcnN0UG9pbnQgPSBwb2ludHNbMF07XHJcbiAgICAgICAgbGV0IGxhc3RQb2ludCA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0cmFpZ2h0Jykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0ZXAnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBwb2ludHNbaiAtIDFdLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8obGFzdFBvaW50LngsIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGZpcnN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBpdGVtID0gcG9pbnRzWzBdO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgZWFjaFNwYWNpbmcgLyAyLCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgLy/nlLvov57nur9cclxuICAgICAgaWYgKGFyZWFPcHRpb24uYWRkTGluZSkge1xyXG4gICAgICAgIGlmIChlYWNoU2VyaWVzLmxpbmVUeXBlID09ICdkYXNoJykge1xyXG4gICAgICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICAgICAgZGFzaExlbmd0aCAqPSBvcHRzLnBpeDtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW2Rhc2hMZW5ndGgsIGRhc2hMZW5ndGhdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyZWFPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgaWYgKHBvaW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICAgIGlmIChhcmVhT3B0aW9uLnR5cGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0cmFpZ2h0Jykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0ZXAnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgcG9pbnRzW2ogLSAxXS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+eUu+eCuVxyXG4gICAgaWYgKG9wdHMuZGF0YVBvaW50U2hhcGUgIT09IGZhbHNlKSB7XHJcbiAgICAgIGRyYXdQb2ludFNoYXBlKHBvaW50cywgZWFjaFNlcmllcy5jb2xvciwgZWFjaFNlcmllcy5wb2ludFNoYXBlLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1NjYXR0ZXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHNjYXR0ZXJPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdjaXJjbGUnXHJcbiAgfSwgb3B0cy5leHRyYS5zY2F0dGVyKTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICB2YXIgc2hhcGUgPSBlYWNoU2VyaWVzLnBvaW50U2hhcGU7XHJcbiAgICBpZiAoc2hhcGUgPT09ICdkaWFtb25kJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdjaXJjbGUnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCArIDIuNSAqIG9wdHMucGl4LCBpdGVtLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUpO1xyXG4gICAgICAgICAgY29udGV4dC5yZWN0KGl0ZW0ueCAtIDMuNSwgaXRlbS55IC0gMy41LCA3LCA3KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICd0cmlhbmdsZScpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9KTtcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QnViYmxlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBidWJibGVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICBib3JkZXI6MlxyXG4gIH0sIG9wdHMuZXh0cmEuYnViYmxlKTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChidWJibGVPcHRpb24uYm9yZGVyICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYnViYmxlT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCArIGl0ZW0uciwgaXRlbS55KTtcclxuICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIGl0ZW0uciAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgXHJcbiAgICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHZhciBmb250U2l6ZSA9IGVhY2hTZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZWFjaFNlcmllcy50ZXh0Q29sb3IgfHwgXCIjRkZGRkZGXCIpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtLnQpLCBpdGVtLngsIGl0ZW0ueSArIGZvbnRTaXplLzIpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9KTtcclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TGluZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgbGluZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ3N0cmFpZ2h0JyxcclxuICAgIHdpZHRoOiAyXHJcbiAgfSwgb3B0cy5leHRyYS5saW5lKTtcclxuICBsaW5lT3B0aW9uLndpZHRoICo9IG9wdHMucGl4O1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgIGxldCBkYXNoTGVuZ3RoID0gZWFjaFNlcmllcy5kYXNoTGVuZ3RoID8gZWFjaFNlcmllcy5kYXNoTGVuZ3RoIDogODtcclxuICAgICAgZGFzaExlbmd0aCAqPSBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChsaW5lT3B0aW9uLndpZHRoKTtcclxuICAgIHNwbGl0UG9pbnRMaXN0LmZvckVhY2goZnVuY3Rpb24ocG9pbnRzLCBpbmRleCkge1xyXG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMocG9pbnRzWzBdLngsIHBvaW50c1swXS55LCAxLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgaWYgKGxpbmVPcHRpb24udHlwZSA9PT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxpbmVPcHRpb24udHlwZSA9PT0gJ3N0cmFpZ2h0Jykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxpbmVPcHRpb24udHlwZSA9PT0gJ3N0ZXAnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBwb2ludHNbaiAtIDFdLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdNaXhEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgd2lkdGg6IGVhY2hTcGFjaW5nIC8gMixcclxuICAgIGJhckJvcmRlckNpcmNsZTogZmFsc2UsXHJcbiAgICBiYXJCb3JkZXJSYWRpdXM6IFtdLFxyXG4gICAgc2VyaWVzR2FwOiAyLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgbGluZWFyT3BhY2l0eTogMSxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICAgIGNvbG9yU3RvcDogMCxcclxuICB9LCBvcHRzLmV4dHJhLm1peC5jb2x1bW4pO1xyXG4gIGxldCBhcmVhT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBvcGFjaXR5OiAwLjIsXHJcbiAgICBncmFkaWVudDogZmFsc2VcclxuICB9LCBvcHRzLmV4dHJhLm1peC5hcmVhKTtcclxuICBsZXQgbGluZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgd2lkdGg6IDJcclxuICB9LCBvcHRzLmV4dHJhLm1peC5saW5lKTtcclxuICBsZXQgZW5kWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICB2YXIgY29sdW1uSW5kZXggPSAwO1xyXG4gIHZhciBjb2x1bW5MZW5ndGggPSAwO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdjb2x1bW4nKSB7XHJcbiAgICAgIGNvbHVtbkxlbmd0aCArPSAxO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIC8vIOe7mOWItuafseeKtuaVsOaNruWbvlxyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAnY29sdW1uJykge1xyXG4gICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbmd0aCwgY29sdW1uSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgIGlmICgoY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzLmxlbmd0aCA9PT0gNCkgfHwgY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnk7XHJcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBpdGVtLnk7XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjEsIHRvcCArIHIxLCByMSwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29sdW1uSW5kZXggKz0gMTtcclxuICAgIH1cclxuICAgIC8v57uY5Yi25Yy65Z+f5Zu+5pWw5o2uXHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdhcmVhJykge1xyXG4gICAgICBsZXQgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgLy8g57uY5Yi25Yy65Z+f5pWw5o2uXHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYXJlYU9wdGlvbi5vcGFjaXR5KSk7XHJcbiAgICAgICAgaWYgKGFyZWFPcHRpb24uZ3JhZGllbnQpIHtcclxuICAgICAgICAgIGxldCBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgb3B0cy5hcmVhWzBdLCAwLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZ3JhZGllbnQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMiAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHZhciBmaXJzdFBvaW50ID0gcG9pbnRzWzBdO1xyXG4gICAgICAgICAgbGV0IGxhc3RQb2ludCA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBpZiAoZWFjaFNlcmllcy5zdHlsZSA9PT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8obGFzdFBvaW50LngsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGZpcnN0UG9pbnQueCwgZmlyc3RQb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbMF07XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBlbmRZKTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8g57uY5Yi25oqY57q/5pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdsaW5lJykge1xyXG4gICAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIHNwbGl0UG9pbnRMaXN0LmZvckVhY2goZnVuY3Rpb24ocG9pbnRzLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChlYWNoU2VyaWVzLmxpbmVUeXBlID09ICdkYXNoJykge1xyXG4gICAgICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICAgICAgZGFzaExlbmd0aCAqPSBvcHRzLnBpeDtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW2Rhc2hMZW5ndGgsIGRhc2hMZW5ndGhdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgaWYgKHBvaW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICAgIGlmIChlYWNoU2VyaWVzLnN0eWxlID09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LFxyXG4gICAgICAgICAgICAgICAgICBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIOe7mOWItueCueaVsOaNruWbvlxyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAncG9pbnQnKSB7XHJcbiAgICAgIGVhY2hTZXJpZXMuYWRkUG9pbnQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGVhY2hTZXJpZXMuYWRkUG9pbnQgPT0gdHJ1ZSAmJiBlYWNoU2VyaWVzLnR5cGUgIT09ICdjb2x1bW4nKSB7XHJcbiAgICAgIGRyYXdQb2ludFNoYXBlKHBvaW50cywgZWFjaFNlcmllcy5jb2xvciwgZWFjaFNlcmllcy5wb2ludFNoYXBlLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHZhciBjb2x1bW5JbmRleCA9IDA7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgaWYgKGVhY2hTZXJpZXMudHlwZSAhPT0gJ2NvbHVtbicpIHtcclxuICAgICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbmd0aCwgY29sdW1uSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgY29sdW1uSW5kZXggKz0gMTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZyxcclxuICB9XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gb3B0cy5leHRyYS50b29sdGlwIHx8IHt9O1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmhvcml6ZW50YWxMaW5lICYmIG9wdHMudG9vbHRpcCAmJiBwcm9jZXNzID09PSAxICYmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdjb2x1bW4nIHx8IG9wdHMudHlwZSA9PSAnbW91bnQnIHx8IG9wdHMudHlwZSA9PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT0gJ21peCcpKSB7XHJcbiAgICBkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKVxyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcChvcHRzLnRvb2x0aXAudGV4dExpc3QsIG9wdHMudG9vbHRpcC5vZmZzZXQsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcblxyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIHN0YXJ0WCA9IHhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICBlbmRYID0geEF4aXNEYXRhLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgYm91bmRhcnlHYXAgPSAnY2VudGVyJztcclxuICBpZiAob3B0cy50eXBlID09ICdiYXInIHx8IG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJ3x8IG9wdHMudHlwZSA9PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09ICdidWJibGUnKSB7XHJcbiAgICBib3VuZGFyeUdhcCA9IG9wdHMueEF4aXMuYm91bmRhcnlHYXA7XHJcbiAgfVxyXG4gIHZhciBzdGFydFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuYXJlYVswXTtcclxuXHJcbiAgLy/nu5jliLbmu5rliqjmnaFcclxuICBpZiAob3B0cy5lbmFibGVTY3JvbGwgJiYgb3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICB2YXIgc2Nyb2xsWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdICsgY29uZmlnLnhBeGlzSGVpZ2h0O1xyXG4gICAgdmFyIHNjcm9sbFNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIHZhciBzY3JvbGxUb3RhbFdpZHRoID0gZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgICBpZihvcHRzLnR5cGUgPT0gJ21vdW50JyAmJiBvcHRzLmV4dHJhICYmIG9wdHMuZXh0cmEubW91bnQgJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA+IDEpe1xyXG4gICAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgICBzY3JvbGxUb3RhbFdpZHRoICs9IChvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gLSAxKSplYWNoU3BhY2luZztcclxuICAgIH1cclxuICAgIHZhciBzY3JvbGxXaWR0aCA9IHNjcm9sbFNjcmVlbldpZHRoICogc2Nyb2xsU2NyZWVuV2lkdGggLyBzY3JvbGxUb3RhbFdpZHRoO1xyXG4gICAgdmFyIHNjcm9sbExlZnQgPSAwO1xyXG4gICAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXykge1xyXG4gICAgICBzY3JvbGxMZWZ0ID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAqIChzY3JvbGxTY3JlZW5XaWR0aCkgLyBzY3JvbGxUb3RhbFdpZHRoO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDYgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuc2Nyb2xsQmFja2dyb3VuZENvbG9yIHx8IFwiI0VGRUJFRlwiKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDYgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuc2Nyb2xsQ29sb3IgfHwgXCIjQTZBNkE2XCIpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgc2Nyb2xsTGVmdCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBzY3JvbGxMZWZ0ICsgc2Nyb2xsV2lkdGgsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ2J1dHQnKTtcclxuICB9XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDApIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgfVxyXG4gIC8v57uY5Yi2WOi9tOWIu+W6pue6v1xyXG4gIGlmIChvcHRzLnhBeGlzLmNhbGlicmF0aW9uID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuZ3JpZENvbG9yIHx8IFwiI2NjY2NjY1wiKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbSAtIGVhY2hTcGFjaW5nIC8gMiwgc3RhcnRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtIC0gZWFjaFNwYWNpbmcgLyAyLCBzdGFydFkgKyAzICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v57uY5Yi2WOi9tOe9keagvFxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVHcmlkICE9PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuZ3JpZENvbG9yIHx8IFwiI2NjY2NjY1wiKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGlmIChvcHRzLnhBeGlzLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtvcHRzLnhBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeCwgb3B0cy54QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXhdKTtcclxuICAgIH1cclxuICAgIG9wdHMueEF4aXMuZ3JpZEV2YWwgPSBvcHRzLnhBeGlzLmdyaWRFdmFsIHx8IDE7XHJcbiAgICB4QXhpc1BvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCAlIG9wdHMueEF4aXMuZ3JpZEV2YWwgPT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbSwgc3RhcnRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIH1cclxuICAvL+e7mOWItljovbTmlofmoYhcclxuICBpZiAob3B0cy54QXhpcy5kaXNhYmxlZCAhPT0gdHJ1ZSkge1xyXG4gICAgLy8g5a+5WOi9tOWIl+ihqOWBmuaKveeogOWkhOeQhlxyXG4gICAgLy/pu5jorqTlhajpg6jmmL7npLpY6L205qCH562+XHJcbiAgICBsZXQgbWF4WEF4aXNMaXN0TGVuZ3RoID0gY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgICAvL+WmguaenOiuvue9ruS6hljovbTljZXlsY/mlbDph49cclxuICAgIGlmIChvcHRzLnhBeGlzLmxhYmVsQ291bnQpIHtcclxuICAgICAgLy/lpoLmnpzorr7nva5Y6L205a+G5bqmXHJcbiAgICAgIGlmIChvcHRzLnhBeGlzLml0ZW1Db3VudCkge1xyXG4gICAgICAgIG1heFhBeGlzTGlzdExlbmd0aCA9IE1hdGguY2VpbChjYXRlZ29yaWVzLmxlbmd0aCAvIG9wdHMueEF4aXMuaXRlbUNvdW50ICogb3B0cy54QXhpcy5sYWJlbENvdW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtYXhYQXhpc0xpc3RMZW5ndGggPSBvcHRzLnhBeGlzLmxhYmVsQ291bnQ7XHJcbiAgICAgIH1cclxuICAgICAgbWF4WEF4aXNMaXN0TGVuZ3RoIC09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJhdGlvID0gTWF0aC5jZWlsKGNhdGVnb3JpZXMubGVuZ3RoIC8gbWF4WEF4aXNMaXN0TGVuZ3RoKTtcclxuXHJcbiAgICBsZXQgbmV3Q2F0ZWdvcmllcyA9IFtdO1xyXG4gICAgbGV0IGNnTGVuZ3RoID0gY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNnTGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgJSByYXRpbyAhPT0gMCkge1xyXG4gICAgICAgIG5ld0NhdGVnb3JpZXMucHVzaChcIlwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdDYXRlZ29yaWVzLnB1c2goY2F0ZWdvcmllc1tpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG5ld0NhdGVnb3JpZXNbY2dMZW5ndGggLSAxXSA9IGNhdGVnb3JpZXNbY2dMZW5ndGggLSAxXTtcclxuICAgIHZhciB4QXhpc0ZvbnRTaXplID0gb3B0cy54QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgIGlmIChjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9PT0gMCkge1xyXG4gICAgICBuZXdDYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgeGl0ZW0gPSBvcHRzLnhBeGlzLmZvcm1hdHRlciA/IG9wdHMueEF4aXMuZm9ybWF0dGVyKGl0ZW0saW5kZXgsb3B0cykgOiBpdGVtO1xyXG4gICAgICAgIHZhciBvZmZzZXQgPSAtbWVhc3VyZVRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNGb250U2l6ZSwgY29udGV4dCkgLyAyO1xyXG4gICAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgb2Zmc2V0ICs9IGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHNjcm9sbEhlaWdodCA9IDA7XHJcbiAgICAgICAgaWYgKG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gNiAqIG9wdHMucGl4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDlpoLmnpzlnKjkuLvop4blm77ljLrln5/lhoVcclxuICAgICAgICB2YXIgX3Njcm9sbERpc3RhbmNlXyA9IG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwO1xyXG4gICAgICAgIHZhciB0cnVlUG9pbnRzID0gYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicgPyB4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDIgOiB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgaWYoKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPj0gb3B0cy5hcmVhWzNdICYmICh0cnVlUG9pbnRzIC0gTWF0aC5hYnMoX3Njcm9sbERpc3RhbmNlXykpIDw9IChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdKSl7XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh4QXhpc0ZvbnRTaXplKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMueEF4aXMuZm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNQb2ludHNbaW5kZXhdICsgb2Zmc2V0LCBzdGFydFkgKyB4QXhpc0ZvbnRTaXplICsgKGNvbmZpZy54QXhpc0hlaWdodCAtIHNjcm9sbEhlaWdodCAtIHhBeGlzRm9udFNpemUpIC8gMik7XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IGl0ZW07XHJcbiAgICAgICAgLy8g5aaC5p6c5Zyo5Li76KeG5Zu+5Yy65Z+f5YaFXHJcbiAgICAgICAgdmFyIF9zY3JvbGxEaXN0YW5jZV8gPSBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gfHwgMDtcclxuICAgICAgICB2YXIgdHJ1ZVBvaW50cyA9IGJvdW5kYXJ5R2FwID09ICdjZW50ZXInID8geEF4aXNQb2ludHNbaW5kZXhdICsgZWFjaFNwYWNpbmcgLyAyIDogeEF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICAgIGlmKCh0cnVlUG9pbnRzIC0gTWF0aC5hYnMoX3Njcm9sbERpc3RhbmNlXykpID49IG9wdHMuYXJlYVszXSAmJiAodHJ1ZVBvaW50cyAtIE1hdGguYWJzKF9zY3JvbGxEaXN0YW5jZV8pKSA8PSAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSkpe1xyXG4gICAgICAgICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh4QXhpc0ZvbnRTaXplKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMueEF4aXMuZm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICAgIHZhciB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc0ZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBvZmZzZXRYID0geEF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIG9mZnNldFggPSB4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgICAgIGlmIChvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gNiAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIG9mZnNldFkgPSBzdGFydFkgKyA2ICogb3B0cy5waXggKyB4QXhpc0ZvbnRTaXplIC0geEF4aXNGb250U2l6ZSAqIE1hdGguYWJzKE1hdGguc2luKGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfKSk7XHJcbiAgICAgICAgICBpZihvcHRzLnhBeGlzLnJvdGF0ZUFuZ2xlIDwgMCl7XHJcbiAgICAgICAgICAgIG9mZnNldFggLT0geEF4aXNGb250U2l6ZSAvIDI7XHJcbiAgICAgICAgICAgIHRleHRXaWR0aCA9IDA7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgb2Zmc2V0WCArPSB4QXhpc0ZvbnRTaXplIC8gMjtcclxuICAgICAgICAgICAgdGV4dFdpZHRoID0gLXRleHRXaWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKG9mZnNldFgsIG9mZnNldFkpO1xyXG4gICAgICAgICAgY29udGV4dC5yb3RhdGUoLTEgKiBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyh4aXRlbSksIHRleHRXaWR0aCAsIDAgKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgLy/nu5jliLZY6L206L2057q/XHJcbiAgaWYgKG9wdHMueEF4aXMuYXhpc0xpbmUpIHtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuYXhpc0xpbmVDb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBpZiAob3B0cy55QXhpcy5kaXNhYmxlR3JpZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICBsZXQgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIHhBeGlzZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IFRvdGFsV2lkdGggPSB4QXhpc2VhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSApe1xyXG4gICAgaWYob3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvPjIpIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA9IDJcclxuICAgIFRvdGFsV2lkdGggKz0gKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDEpKnhBeGlzZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIGxldCBlbmRYID0gc3RhcnRYICsgVG90YWxXaWR0aDtcclxuICBsZXQgcG9pbnRzID0gW107XHJcbiAgbGV0IHN0YXJ0WSA9IDFcclxuICBpZiAob3B0cy54QXhpcy5heGlzTGluZSA9PT0gZmFsc2UpIHtcclxuICAgIHN0YXJ0WSA9IDBcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IHN0YXJ0WTsgaSA8IG9wdHMueUF4aXMuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgIHBvaW50cy5wdXNoKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDApIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnlBeGlzLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbb3B0cy55QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXgsIG9wdHMueUF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4XSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy55QXhpcy5ncmlkQ29sb3IpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0pO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICB2YXIgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIC8vIHNldCBZQXhpcyBiYWNrZ3JvdW5kXHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PSB0cnVlICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAhPT0gJ2xlZnQnKSB7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIHN0YXJ0WCwgZW5kWSArIDIgKiBvcHRzLnBpeCk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PSB0cnVlICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAhPT0gJ3JpZ2h0Jykge1xyXG4gICAgY29udGV4dC5maWxsUmVjdChlbmRYLCAwLCBvcHRzLndpZHRoLCBlbmRZICsgMiAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIFxyXG4gIGxldCB0U3RhcnRMZWZ0ID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCB0U3RhcnRSaWdodCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgbGV0IHRTdGFydENlbnRlciA9IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDI7XHJcbiAgaWYgKG9wdHMueUF4aXMuZGF0YSkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLnlBeGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHlEYXRhID0gb3B0cy55QXhpcy5kYXRhW2ldO1xyXG4gICAgICB2YXIgcG9pbnRzID0gW107XHJcbiAgICAgIGlmKHlEYXRhLnR5cGUgPT09ICdjYXRlZ29yaWVzJyl7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0geURhdGEuY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgc3BhY2luZ1ZhbGlkIC8geURhdGEuY2F0ZWdvcmllcy5sZW5ndGggLyAyICsgc3BhY2luZ1ZhbGlkIC8geURhdGEuY2F0ZWdvcmllcy5sZW5ndGggKiBpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG9wdHMueUF4aXMuc3BsaXROdW1iZXI7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgZWFjaFNwYWNpbmcgKiBpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHlEYXRhLmRpc2FibGVkICE9PSB0cnVlKSB7XHJcbiAgICAgICAgbGV0IHJhbmdlc0Zvcm1hdCA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNGb3JtYXRbaV07XHJcbiAgICAgICAgbGV0IHlBeGlzRm9udFNpemUgPSB5RGF0YS5mb250U2l6ZSA/IHlEYXRhLmZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgbGV0IHlBeGlzV2lkdGggPSBvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEueUF4aXNXaWR0aFtpXTtcclxuICAgICAgICBsZXQgdGV4dEFsaWduID0geURhdGEudGV4dEFsaWduIHx8IFwicmlnaHRcIjtcclxuICAgICAgICAvL+eUu1novbTliLvluqblj4rmlofmoYhcclxuICAgICAgICByYW5nZXNGb3JtYXQuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgICAgdmFyIHBvcyA9IHBvaW50c1tpbmRleF07XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh5QXhpc0ZvbnRTaXplKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHlEYXRhLmF4aXNMaW5lQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHlEYXRhLmZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgICBsZXQgdG1wc3RyYXQgPSAwO1xyXG4gICAgICAgICAgbGV0IGdhcHdpZHRoID0gNCAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0TGVmdCwgcG9zKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRMZWZ0IC0gMyAqIG9wdHMucGl4LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGdhcHdpZHRoICs9IDMgKiBvcHRzLnBpeDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+eUu+aWh+Wtl1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRleHRBbGlnbikge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRMZWZ0IC0geUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0TGVmdCAtIGdhcHdpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRMZWZ0IC0geUF4aXNXaWR0aC53aWR0aCAvIDJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtKSwgdG1wc3RyYXQsIHBvcyArIHlBeGlzRm9udFNpemUgLyAyIC0gMyAqIG9wdHMucGl4KTtcclxuXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAvL+eUu+WIu+W6pue6v1xyXG4gICAgICAgICAgICBpZiAoeURhdGEuY2FsaWJyYXRpb24gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydFJpZ2h0LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydFJpZ2h0ICsgMyAqIG9wdHMucGl4LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGdhcHdpZHRoICs9IDMgKiBvcHRzLnBpeDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzd2l0Y2ggKHRleHRBbGlnbikge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRSaWdodCArIGdhcHdpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRSaWdodCArIHlBeGlzV2lkdGgud2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgeUF4aXNXaWR0aC53aWR0aCAvIDJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtKSwgdG1wc3RyYXQsIHBvcyArIHlBeGlzRm9udFNpemUgLyAyIC0gMyAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICAvL+eUu+WIu+W6pue6v1xyXG4gICAgICAgICAgICBpZiAoeURhdGEuY2FsaWJyYXRpb24gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydENlbnRlciwgcG9zKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRDZW50ZXIgLSAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v55S75paH5a2XXHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydENlbnRlciAtIHlBeGlzV2lkdGgud2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydENlbnRlciAtIGdhcHdpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRDZW50ZXIgLSB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v55S7Wei9tOi9tOe6v1xyXG4gICAgICAgIGlmICh5RGF0YS5heGlzTGluZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHlEYXRhLmF4aXNMaW5lQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0TGVmdCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRMZWZ0LCBvcHRzLmFyZWFbMF0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0UmlnaHQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0UmlnaHQsIG9wdHMuYXJlYVswXSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0Q2VudGVyLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydENlbnRlciwgb3B0cy5hcmVhWzBdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8v55S7Wei9tOagh+mimFxyXG4gICAgICAgIGlmIChvcHRzLnlBeGlzLnNob3dUaXRsZSkge1xyXG4gICAgICAgICAgbGV0IHRpdGxlRm9udFNpemUgPSB5RGF0YS50aXRsZUZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICAgICAgbGV0IHRpdGxlID0geURhdGEudGl0bGU7XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh0aXRsZUZvbnRTaXplKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHlEYXRhLnRpdGxlRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRMZWZ0IC0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlRm9udFNpemUsIGNvbnRleHQpIC8gMiArICh5RGF0YS50aXRsZU9mZnNldFggfHwgMCksIG9wdHMuYXJlYVswXSAtICgxMCAtICh5RGF0YS50aXRsZU9mZnNldFkgfHwgMCkpICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgdFN0YXJ0UmlnaHQgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgdFN0YXJ0Q2VudGVyIC0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlRm9udFNpemUsIGNvbnRleHQpIC8gMiArICh5RGF0YS50aXRsZU9mZnNldFggfHwgMCksIG9wdHMuYXJlYVswXSAtICgxMCAtICh5RGF0YS50aXRsZU9mZnNldFkgfHwgMCkpICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgdFN0YXJ0TGVmdCAtPSAoeUF4aXNXaWR0aC53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdFN0YXJ0UmlnaHQgKz0geUF4aXNXaWR0aC53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdMZWdlbmQoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGNoYXJ0RGF0YSkge1xyXG4gIGlmIChvcHRzLmxlZ2VuZC5zaG93ID09PSBmYWxzZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBsZXQgbGVnZW5kRGF0YSA9IGNoYXJ0RGF0YS5sZWdlbmREYXRhO1xyXG4gIGxldCBsZWdlbmRMaXN0ID0gbGVnZW5kRGF0YS5wb2ludHM7XHJcbiAgbGV0IGxlZ2VuZEFyZWEgPSBsZWdlbmREYXRhLmFyZWE7XHJcbiAgbGV0IHBhZGRpbmcgPSBvcHRzLmxlZ2VuZC5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgbGV0IGZvbnRTaXplID0gb3B0cy5sZWdlbmQuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBsZXQgc2hhcGVXaWR0aCA9IDE1ICogb3B0cy5waXg7XHJcbiAgbGV0IHNoYXBlUmlnaHQgPSA1ICogb3B0cy5waXg7XHJcbiAgbGV0IGl0ZW1HYXAgPSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgbGV0IGxpbmVIZWlnaHQgPSBNYXRoLm1heChvcHRzLmxlZ2VuZC5saW5lSGVpZ2h0ICogb3B0cy5waXgsIGZvbnRTaXplKTtcclxuICAvL+eUu+iDjOaZr+WPiui+ueahhlxyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgob3B0cy5sZWdlbmQuYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLmxlZ2VuZC5ib3JkZXJDb2xvcik7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5sZWdlbmQuYmFja2dyb3VuZENvbG9yKTtcclxuICBjb250ZXh0Lm1vdmVUbyhsZWdlbmRBcmVhLnN0YXJ0LngsIGxlZ2VuZEFyZWEuc3RhcnQueSk7XHJcbiAgY29udGV4dC5yZWN0KGxlZ2VuZEFyZWEuc3RhcnQueCwgbGVnZW5kQXJlYS5zdGFydC55LCBsZWdlbmRBcmVhLndpZHRoLCBsZWdlbmRBcmVhLmhlaWdodCk7XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGxlZ2VuZExpc3QuZm9yRWFjaChmdW5jdGlvbihpdGVtTGlzdCwgbGlzdEluZGV4KSB7XHJcbiAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgbGV0IGhlaWdodCA9IDA7XHJcbiAgICB3aWR0aCA9IGxlZ2VuZERhdGEud2lkdGhBcnJbbGlzdEluZGV4XTtcclxuICAgIGhlaWdodCA9IGxlZ2VuZERhdGEuaGVpZ2h0QXJyW2xpc3RJbmRleF07XHJcbiAgICBsZXQgc3RhcnRYID0gMDtcclxuICAgIGxldCBzdGFydFkgPSAwO1xyXG4gICAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIHBhZGRpbmc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgbGVnZW5kQXJlYS53aWR0aCAtIHdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgKGxlZ2VuZEFyZWEud2lkdGggLSB3aWR0aCkgLyAyO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0WSA9IGxlZ2VuZEFyZWEuc3RhcnQueSArIHBhZGRpbmcgKyBsaXN0SW5kZXggKiBsaW5lSGVpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGxpc3RJbmRleCA9PSAwKSB7XHJcbiAgICAgICAgd2lkdGggPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoID0gbGVnZW5kRGF0YS53aWR0aEFycltsaXN0SW5kZXggLSAxXTtcclxuICAgICAgfVxyXG4gICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyBwYWRkaW5nICsgd2lkdGg7XHJcbiAgICAgIHN0YXJ0WSA9IGxlZ2VuZEFyZWEuc3RhcnQueSArIHBhZGRpbmcgKyAobGVnZW5kQXJlYS5oZWlnaHQgLSBoZWlnaHQpIC8gMjtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBpdGVtTGlzdFtpXTtcclxuICAgICAgaXRlbS5hcmVhID0gWzAsIDAsIDAsIDBdO1xyXG4gICAgICBpdGVtLmFyZWFbMF0gPSBzdGFydFg7XHJcbiAgICAgIGl0ZW0uYXJlYVsxXSA9IHN0YXJ0WTtcclxuICAgICAgaXRlbS5hcmVhWzNdID0gc3RhcnRZICsgbGluZUhlaWdodDtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLnNob3cgPyBpdGVtLmNvbG9yIDogb3B0cy5sZWdlbmQuaGlkZGVuQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnNob3cgPyBpdGVtLmNvbG9yIDogb3B0cy5sZWdlbmQuaGlkZGVuQ29sb3IpO1xyXG4gICAgICBzd2l0Y2ggKGl0ZW0ubGVnZW5kU2hhcGUpIHtcclxuICAgICAgICBjYXNlICdsaW5lJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDIgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgNCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyaWFuZ2xlJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDEyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdkaWFtb25kJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDEyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdjaXJjbGUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMoc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQsIDUgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncmVjdCc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgsIDE1ICogb3B0cy5waXgsIDEwICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3F1YXJlJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCArIDUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdub25lJzpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgsIDE1ICogb3B0cy5waXgsIDEwICogb3B0cy5waXgpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBzdGFydFggKz0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQ7XHJcbiAgICAgIGxldCBmb250VHJhbnMgPSAwLjUgKiBsaW5lSGVpZ2h0ICsgMC41ICogZm9udFNpemUgLSAyO1xyXG4gICAgICBjb25zdCBsZWdlbmRUZXh0ID0gaXRlbS5sZWdlbmRUZXh0ID8gaXRlbS5sZWdlbmRUZXh0IDogaXRlbS5uYW1lO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5zaG93ID8gb3B0cy5sZWdlbmQuZm9udENvbG9yIDogb3B0cy5sZWdlbmQuaGlkZGVuQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KGxlZ2VuZFRleHQsIHN0YXJ0WCwgc3RhcnRZICsgZm9udFRyYW5zKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICAgICAgc3RhcnRYICs9IG1lYXN1cmVUZXh0KGxlZ2VuZFRleHQsIGZvbnRTaXplLCBjb250ZXh0KSArIGl0ZW1HYXA7XHJcbiAgICAgICAgaXRlbS5hcmVhWzJdID0gc3RhcnRYO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0ZW0uYXJlYVsyXSA9IHN0YXJ0WCArIG1lYXN1cmVUZXh0KGxlZ2VuZFRleHQsIGZvbnRTaXplLCBjb250ZXh0KSArIGl0ZW1HYXA7O1xyXG4gICAgICAgIHN0YXJ0WCAtPSBzaGFwZVdpZHRoICsgc2hhcGVSaWdodDtcclxuICAgICAgICBzdGFydFkgKz0gbGluZUhlaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBwaWVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZU9wYWNpdHk6IDAuNSxcclxuICAgIGFjdGl2ZVJhZGl1czogMTAsXHJcbiAgICBvZmZzZXRBbmdsZTogMCxcclxuICAgIGxhYmVsV2lkdGg6IDE1LFxyXG4gICAgcmluZ1dpZHRoOiAzMCxcclxuICAgIGN1c3RvbVJhZGl1czogMCxcclxuICAgIGJvcmRlcjogZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDogMixcclxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBjZW50ZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMudHlwZSA9PSBcInBpZVwiID8gb3B0cy5leHRyYS5waWUgOiBvcHRzLmV4dHJhLnJpbmcpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmFyZWFbMF0gKyAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMlxyXG4gIH07XHJcbiAgaWYgKGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID09IDApIHtcclxuICAgIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID0gcGllT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIH1cclxuXHJcbiAgdmFyIHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nIC0gY29uZmlnLl9waWVUZXh0TWF4TGVuZ3RoXywgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nKTtcclxuICByYWRpdXMgPSByYWRpdXMgPCAxMCA/IDEwIDogcmFkaXVzO1xyXG4gIGlmIChwaWVPcHRpb24uY3VzdG9tUmFkaXVzID4gMCkge1xyXG4gICAgcmFkaXVzID0gcGllT3B0aW9uLmN1c3RvbVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCBwcm9jZXNzKTtcclxuICB2YXIgYWN0aXZlUmFkaXVzID0gcGllT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIHBpZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihwaWVPcHRpb24ubGluZWFyVHlwZSwgcGllT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzID0gc2VyaWVzLm1hcChmdW5jdGlvbihlYWNoU2VyaWVzKSB7XHJcbiAgICBlYWNoU2VyaWVzLl9zdGFydF8gKz0gKHBpZU9wdGlvbi5vZmZzZXRBbmdsZSkgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmV0dXJuIGVhY2hTZXJpZXM7XHJcbiAgfSk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBzZXJpZXNJbmRleCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgcGllT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXyArIGFjdGl2ZVJhZGl1cywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgocGllT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocGllT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgIHZhciBmaWxsY29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yO1xyXG4gICAgaWYgKHBpZU9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgIHZhciBncmQ7XHJcbiAgICAgIGlmKGNvbnRleHQuY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCl7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGdyZCA9IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgMCxjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfKVxyXG4gICAgICB9XHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IocGllT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYgKHBpZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChvcHRzLnR5cGUgPT09ICdyaW5nJykge1xyXG4gICAgdmFyIGlubmVyUGllV2lkdGggPSByYWRpdXMgKiAwLjY7XHJcbiAgICBpZiAodHlwZW9mIHBpZU9wdGlvbi5yaW5nV2lkdGggPT09ICdudW1iZXInICYmIHBpZU9wdGlvbi5yaW5nV2lkdGggPiAwKSB7XHJcbiAgICAgIGlubmVyUGllV2lkdGggPSBNYXRoLm1heCgwLCByYWRpdXMgLSBwaWVPcHRpb24ucmluZ1dpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHBpZU9wdGlvbi5jZW50ZXJDb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGlubmVyUGllV2lkdGgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICB9XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgfVxyXG4gIGlmIChwcm9jZXNzID09PSAxICYmIG9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Um9zZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgcm9zZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2FyZWEnLFxyXG4gICAgYWN0aXZlT3BhY2l0eTogMC41LFxyXG4gICAgYWN0aXZlUmFkaXVzOiAxMCxcclxuICAgIG9mZnNldEFuZ2xlOiAwLFxyXG4gICAgbGFiZWxXaWR0aDogMTUsXHJcbiAgICBib3JkZXI6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICBib3JkZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEucm9zZSk7XHJcbiAgaWYgKGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID09IDApIHtcclxuICAgIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID0gcm9zZU9wdGlvbi5hY3RpdmVSYWRpdXMgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgLSBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfLCAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcpO1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgdmFyIG1pblJhZGl1cyA9IHJvc2VPcHRpb24ubWluUmFkaXVzIHx8IHJhZGl1cyAqIDAuNTtcclxuICBzZXJpZXMgPSBnZXRSb3NlRGF0YVBvaW50cyhzZXJpZXMsIHJvc2VPcHRpb24udHlwZSwgbWluUmFkaXVzLCByYWRpdXMsIHByb2Nlc3MpO1xyXG4gIHZhciBhY3RpdmVSYWRpdXMgPSByb3NlT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIHJvc2VPcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3Iocm9zZU9wdGlvbi5saW5lYXJUeXBlLCByb3NlT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzID0gc2VyaWVzLm1hcChmdW5jdGlvbihlYWNoU2VyaWVzKSB7XHJcbiAgICBlYWNoU2VyaWVzLl9zdGFydF8gKz0gKHJvc2VPcHRpb24ub2Zmc2V0QW5nbGUgfHwgMCkgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmV0dXJuIGVhY2hTZXJpZXM7XHJcbiAgfSk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBzZXJpZXNJbmRleCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgcm9zZU9wdGlvbi5hY3RpdmVPcGFjaXR5IHx8IDAuNSkpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGFjdGl2ZVJhZGl1cyArIGVhY2hTZXJpZXMuX3JhZGl1c18sIGVhY2hTZXJpZXMuX3N0YXJ0XywgZWFjaFNlcmllcy5fc3RhcnRfICsgMiAqIGVhY2hTZXJpZXMuX3Jvc2VfcHJvcG9ydGlvbl8gKiBNYXRoLlBJKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgocm9zZU9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQubGluZUpvaW4gPSBcInJvdW5kXCI7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJvc2VPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgdmFyIGZpbGxjb2xvciA9IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICBpZiAocm9zZU9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgIHZhciBncmQ7XHJcbiAgICAgIGlmKGNvbnRleHQuY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCl7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGdyZCA9IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgMCxjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfKVxyXG4gICAgICB9XHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Iocm9zZU9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgMSkpXHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgMSkpXHJcbiAgICAgIGZpbGxjb2xvciA9IGdyZFxyXG4gICAgfVxyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbGNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYgKHJvc2VPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBzZXJpZXM6IHNlcmllc1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGFyY2Jhck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgc3RhcnRBbmdsZTogMC43NSxcclxuICAgIGVuZEFuZ2xlOiAwLjI1LFxyXG4gICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgZGlyZWN0aW9uOiAnY3cnLFxyXG4gICAgbGluZUNhcDogJ3JvdW5kJyxcclxuICAgIHdpZHRoOiAxMiAsXHJcbiAgICBnYXA6IDIgLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEuYXJjYmFyKTtcclxuICBzZXJpZXMgPSBnZXRBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgYXJjYmFyT3B0aW9uLCBwcm9jZXNzKTtcclxuICB2YXIgY2VudGVyUG9zaXRpb247XHJcbiAgaWYgKGFyY2Jhck9wdGlvbi5jZW50ZXJYIHx8IGFyY2Jhck9wdGlvbi5jZW50ZXJZKSB7XHJcbiAgICBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgICAgeDogYXJjYmFyT3B0aW9uLmNlbnRlclggPyBhcmNiYXJPcHRpb24uY2VudGVyWCA6IG9wdHMud2lkdGggLyAyLFxyXG4gICAgICB5OiBhcmNiYXJPcHRpb24uY2VudGVyWSA/IGFyY2Jhck9wdGlvbi5jZW50ZXJZIDogb3B0cy5oZWlnaHQgLyAyXHJcbiAgICB9O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICAgIHk6IG9wdHMuaGVpZ2h0IC8gMlxyXG4gICAgfTtcclxuICB9XHJcbiAgdmFyIHJhZGl1cztcclxuICBpZiAoYXJjYmFyT3B0aW9uLnJhZGl1cykge1xyXG4gICAgcmFkaXVzID0gYXJjYmFyT3B0aW9uLnJhZGl1cztcclxuICB9IGVsc2Uge1xyXG4gICAgcmFkaXVzID0gTWF0aC5taW4oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gICAgcmFkaXVzIC09IGFyY2Jhck9wdGlvbi53aWR0aCAvIDI7XHJcbiAgfVxyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgYXJjYmFyT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKGFyY2Jhck9wdGlvbi5saW5lYXJUeXBlLCBhcmNiYXJPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGVhY2hTZXJpZXMgPSBzZXJpZXNbaV07XHJcbiAgICAvL+iDjOaZr+minOiJslxyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShhcmNiYXJPcHRpb24uYmFja2dyb3VuZENvbG9yIHx8ICcjRTlFOUU5Jyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoYXJjYmFyT3B0aW9uLmxpbmVDYXApO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnZGVmYXVsdCcpIHtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmRpcmVjdGlvbiA9PSAnY2N3Jyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMgLSAoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXggKyBhcmNiYXJPcHRpb24uZ2FwICogb3B0cy5waXgpICogaSwgMCwgMiAqIE1hdGguUEksIGFyY2Jhck9wdGlvbi5kaXJlY3Rpb24gPT0gJ2NjdycpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIC8v6L+b5bqm5p2hXHJcbiAgICB2YXIgZmlsbENvbG9yID0gZWFjaFNlcmllcy5jb2xvclxyXG4gICAgaWYoYXJjYmFyT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpe1xyXG4gICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54IC0gcmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55LCBjZW50ZXJQb3NpdGlvbi54ICsgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihhcmNiYXJPcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIDEpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDEpKVxyXG4gICAgICBmaWxsQ29sb3IgPSBncmQ7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoYXJjYmFyT3B0aW9uLmxpbmVDYXApO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cyAtIChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCArIGFyY2Jhck9wdGlvbi5nYXAgKiBvcHRzLnBpeCkgKiBpLCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAqIE1hdGguUEksIGVhY2hTZXJpZXMuX3Byb3BvcnRpb25fICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmRpcmVjdGlvbiA9PSAnY2N3Jyk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBzZXJpZXM6IHNlcmllc1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdHYXVnZURhdGFQb2ludHMoY2F0ZWdvcmllcywgc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogMTtcclxuICB2YXIgZ2F1Z2VPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdkZWZhdWx0JyxcclxuICAgIHN0YXJ0QW5nbGU6IDAuNzUsXHJcbiAgICBlbmRBbmdsZTogMC4yNSxcclxuICAgIHdpZHRoOiAxNSxcclxuICAgIGxhYmVsT2Zmc2V0OjEzLFxyXG4gICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgIGZpeFJhZGl1czogMCxcclxuICAgICAgc3BsaXROdW1iZXI6IDEwLFxyXG4gICAgICB3aWR0aDogMTUsXHJcbiAgICAgIGNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICAgIGNoaWxkTnVtYmVyOiA1LFxyXG4gICAgICBjaGlsZFdpZHRoOiA1XHJcbiAgICB9LFxyXG4gICAgcG9pbnRlcjoge1xyXG4gICAgICB3aWR0aDogMTUsXHJcbiAgICAgIGNvbG9yOiAnYXV0bydcclxuICAgIH1cclxuICB9LCBvcHRzLmV4dHJhLmdhdWdlKTtcclxuICBpZiAoZ2F1Z2VPcHRpb24ub2xkQW5nbGUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBnYXVnZU9wdGlvbi5vbGRBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgfVxyXG4gIGlmIChnYXVnZU9wdGlvbi5vbGREYXRhID09IHVuZGVmaW5lZCkge1xyXG4gICAgZ2F1Z2VPcHRpb24ub2xkRGF0YSA9IDA7XHJcbiAgfVxyXG4gIGNhdGVnb3JpZXMgPSBnZXRHYXVnZUF4aXNQb2ludHMoY2F0ZWdvcmllcywgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMud2lkdGggLyAyLFxyXG4gICAgeTogb3B0cy5oZWlnaHQgLyAyXHJcbiAgfTtcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgcmFkaXVzIC09IDUgKiBvcHRzLnBpeDtcclxuICByYWRpdXMgLT0gZ2F1Z2VPcHRpb24ud2lkdGggLyAyO1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgdmFyIGlubmVyUmFkaXVzID0gcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGg7XHJcbiAgdmFyIHRvdGFsQW5nbGUgPSAwO1xyXG4gIC8v5Yik5pat5Luq6KGo55uY55qE5qC35byP77yaZGVmYXVsdOeZvuW6puagt+W8j++8jHByb2dyZXNz5paw5qC35byPXHJcbiAgaWYgKGdhdWdlT3B0aW9uLnR5cGUgPT0gJ3Byb2dyZXNzJykge1xyXG4gICAgLy8jIyDnrKzkuIDmraXnlLvkuK3lv4PlnIblvaLog4zmma/lkozov5vluqbmnaHog4zmma9cclxuICAgIC8v5Lit5b+D5ZyG5b2i6IOM5pmvXHJcbiAgICB2YXIgcGllUmFkaXVzID0gcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAzO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGxldCBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSAtIHBpZVJhZGl1cywgY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSArIHBpZVJhZGl1cyk7XHJcbiAgICAvL+mFjee9rua4kOWPmOWhq+WFhe+8iOi1t+eCue+8muS4reW/g+eCueWQkeS4iuWHj+WNiuW+hO+8m+e7k+adn+eCueS4reW/g+eCueWQkeS4i+WKoOWNiuW+hO+8iVxyXG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcwJywgaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAwLjMpKTtcclxuICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZ3JhZGllbnQpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcGllUmFkaXVzLCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAvL+eUu+i/m+W6puadoeiDjOaZr1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZ2F1Z2VPcHRpb24ud2lkdGgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGlubmVyUmFkaXVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy8jIyDnrKzkuozmraXnlLvliLvluqbnur9cclxuICAgIHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKyAxO1xyXG4gICAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gICAgbGV0IGNoaWxkQW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyO1xyXG4gICAgbGV0IHN0YXJ0WCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXM7XHJcbiAgICBsZXQgZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUud2lkdGg7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgbGV0IGxlbiA9IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAqIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlciArIDE7XHJcbiAgICBsZXQgcHJvYyA9IHNlcmllc1swXS5kYXRhICogcHJvY2VzcztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgLy/liLvluqbnur/pmo/ov5vluqblj5joibJcclxuICAgICAgaWYgKHByb2MgPiAoaSAvIGxlbikpIHtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHNlcmllc1swXS5jb2xvciwgMSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAwLjMpKTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgzICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCAwKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoY2hpbGRBbmdsZSAqIE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAvLyMjIOesrOS4ieatpeeUu+i/m+W6puadoVxyXG4gICAgc2VyaWVzID0gZ2V0R2F1Z2VBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgZ2F1Z2VPcHRpb24sIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZ2F1Z2VPcHRpb24ud2lkdGgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzZXJpZXNbMF0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGlubmVyUmFkaXVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgc2VyaWVzWzBdLl9wcm9wb3J0aW9uXyAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAvLyMjIOesrOWbm+atpeeUu+aMh+mSiFxyXG4gICAgbGV0IHBvaW50ZXJSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDIuNTtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoc2VyaWVzWzBdLl9wcm9wb3J0aW9uXyAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZ2F1Z2VPcHRpb24ud2lkdGggLyAzKTtcclxuICAgIGxldCBncmFkaWVudDMgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIC1wb2ludGVyUmFkaXVzICogMC42LCAwLCBwb2ludGVyUmFkaXVzICogMC42KTtcclxuICAgIGdyYWRpZW50My5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYignI0ZGRkZGRicsIDApKTtcclxuICAgIGdyYWRpZW50My5hZGRDb2xvclN0b3AoJzAuNScsIGhleFRvUmdiKHNlcmllc1swXS5jb2xvciwgMSkpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoJyNGRkZGRkYnLCAwKSk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGdyYWRpZW50Myk7XHJcbiAgICBjb250ZXh0LmFyYygwLCAwLCBwb2ludGVyUmFkaXVzLCAwLjg1ICogTWF0aC5QSSwgMS4xNSAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXNbMF0uY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyLCAtNCk7XHJcbiAgICBjb250ZXh0LmxpbmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIgLSA0LCAwKTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiwgNCk7XHJcbiAgICBjb250ZXh0LmxpbmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIsIC00KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgLy9kZWZhdWx055m+5bqm5qC35byPXHJcbiAgfSBlbHNlIHtcclxuICAgIC8v55S76IOM5pmvXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ2J1dHQnKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWFjaENhdGVnb3JpZXMgPSBjYXRlZ29yaWVzW2ldO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hDYXRlZ29yaWVzLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzLCBlYWNoQ2F0ZWdvcmllcy5fc3RhcnRBbmdsZV8gKiBNYXRoLlBJLCBlYWNoQ2F0ZWdvcmllcy5fZW5kQW5nbGVfICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAvL+eUu+WIu+W6pue6v1xyXG4gICAgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBsZXQgc3BsaXRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXI7XHJcbiAgICBsZXQgY2hpbGRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXI7XHJcbiAgICBsZXQgc3RhcnRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cztcclxuICAgIGxldCBlbmRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cyArIGdhdWdlT3B0aW9uLnNwbGl0TGluZS53aWR0aDtcclxuICAgIGxldCBjaGlsZGVuZFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzICsgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkV2lkdGg7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQucm90YXRlKChnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gMSkgKiBNYXRoLlBJKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICsgMTsgaSsrKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMiAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCAwKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgMCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQucm90YXRlKHNwbGl0QW5nbGUgKiBNYXRoLlBJKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQucm90YXRlKChnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gMSkgKiBNYXRoLlBJKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICogZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyICsgMTsgaSsrKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCAwKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oY2hpbGRlbmRYLCAwKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoY2hpbGRBbmdsZSAqIE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAvL+eUu+aMh+mSiFxyXG4gICAgc2VyaWVzID0gZ2V0R2F1Z2VEYXRhUG9pbnRzKHNlcmllcywgY2F0ZWdvcmllcywgZ2F1Z2VPcHRpb24sIHByb2Nlc3MpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGVhY2hTZXJpZXMgPSBzZXJpZXNbaV07XHJcbiAgICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoKGVhY2hTZXJpZXMuX3Byb3BvcnRpb25fIC0gMSkgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbygwLCAtZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCAvIDIpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbygtaW5uZXJSYWRpdXMsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbygwLCBnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gMik7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGgsIDApO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoJyNGRkZGRkYnKTtcclxuICAgICAgY29udGV4dC5hcmMoMCwgMCwgZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCAvIDYsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIH1cclxuICAgIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UpIHtcclxuICAgICAgZHJhd0dhdWdlTGFiZWwoZ2F1Z2VPcHRpb24sIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8v55S75Luq6KGo55uY5qCH6aKY77yM5Ymv5qCH6aKYXHJcbiAgZHJhd1JpbmdUaXRsZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGNlbnRlclBvc2l0aW9uKTtcclxuICBpZiAocHJvY2VzcyA9PT0gMSAmJiBvcHRzLnR5cGUgPT09ICdnYXVnZScpIHtcclxuICAgIG9wdHMuZXh0cmEuZ2F1Z2Uub2xkQW5nbGUgPSBzZXJpZXNbMF0uX3Byb3BvcnRpb25fO1xyXG4gICAgb3B0cy5leHRyYS5nYXVnZS5vbGREYXRhID0gc2VyaWVzWzBdLmRhdGE7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBpbm5lclJhZGl1czogaW5uZXJSYWRpdXMsXHJcbiAgICBjYXRlZ29yaWVzOiBjYXRlZ29yaWVzLFxyXG4gICAgdG90YWxBbmdsZTogdG90YWxBbmdsZVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdSYWRhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgcmFkYXJPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGdyaWRDb2xvcjogJyNjY2NjY2MnLFxyXG4gICAgZ3JpZFR5cGU6ICdyYWRhcicsXHJcbiAgICBncmlkRXZhbDoxLFxyXG4gICAgYXhpc0xhYmVsOmZhbHNlLFxyXG4gICAgYXhpc0xhYmVsVG9maXg6MCxcclxuICAgIGxhYmVsQ29sb3I6JyM2NjY2NjYnLFxyXG4gICAgbGFiZWxQb2ludFNob3c6ZmFsc2UsXHJcbiAgICBsYWJlbFBvaW50UmFkaXVzOjMsXHJcbiAgICBsYWJlbFBvaW50Q29sb3I6JyNjY2NjY2MnLFxyXG4gICAgb3BhY2l0eTogMC4yLFxyXG4gICAgZ3JpZENvdW50OiAzLFxyXG4gICAgYm9yZGVyOmZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6MixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICB9LCBvcHRzLmV4dHJhLnJhZGFyKTtcclxuICB2YXIgY29vcmRpbmF0ZUFuZ2xlID0gZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzKG9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmFyZWFbMF0gKyAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMlxyXG4gIH07XHJcbiAgdmFyIHhyID0gKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMlxyXG4gIHZhciB5ciA9IChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgdmFyIHJhZGl1cyA9IE1hdGgubWluKHhyIC0gKGdldE1heFRleHRMaXN0TGVuZ3RoKG9wdHMuY2F0ZWdvcmllcywgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KSArIGNvbmZpZy5yYWRhckxhYmVsVGV4dE1hcmdpbiksIHlyIC0gY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luKTtcclxuICByYWRpdXMgLT0gY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luICogb3B0cy5waXg7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICAvLyDnlLvliIblibLnur9cclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShyYWRhck9wdGlvbi5ncmlkQ29sb3IpO1xyXG4gIGNvb3JkaW5hdGVBbmdsZS5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlLGluZGV4KSB7XHJcbiAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLCByYWRpdXMgKiBNYXRoLnNpbihhbmdsZSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgaWYgKGluZGV4ICUgcmFkYXJPcHRpb24uZ3JpZEV2YWwgPT0gMCkge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhwb3MueCwgcG9zLnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBcclxuICAvLyDnlLvog4zmma/nvZHmoLxcclxuICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChpKSB7XHJcbiAgICB2YXIgc3RhcnRQb3MgPSB7fTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShyYWRhck9wdGlvbi5ncmlkQ29sb3IpO1xyXG4gICAgaWYgKHJhZGFyT3B0aW9uLmdyaWRUeXBlID09ICdyYWRhcicpIHtcclxuICAgICAgY29vcmRpbmF0ZUFuZ2xlLmZvckVhY2goZnVuY3Rpb24oYW5nbGUsIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIHBvcyA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKHJhZGl1cyAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLmNvcyhhbmdsZSksIHJhZGl1cyAvXHJcbiAgICAgICAgICByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5zaW4oYW5nbGUpLCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgICBzdGFydFBvcyA9IHBvcztcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvcy54LCBwb3MueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHBvcy54LCBwb3MueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRQb3MueCwgc3RhcnRQb3MueSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguY29zKDEuNSksIHJhZGl1cyAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLnNpbigxLjUpLCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGNlbnRlclBvc2l0aW9uLnkgLSBwb3MueSwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIH07XHJcbiAgZm9yICh2YXIgaSA9IDE7IGkgPD0gcmFkYXJPcHRpb24uZ3JpZENvdW50OyBpKyspIHtcclxuICAgIF9sb29wKGkpO1xyXG4gIH1cclxuICByYWRhck9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihyYWRhck9wdGlvbi5saW5lYXJUeXBlLCByYWRhck9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHZhciByYWRhckRhdGFQb2ludHMgPSBnZXRSYWRhckRhdGFQb2ludHMoY29vcmRpbmF0ZUFuZ2xlLCBjZW50ZXJQb3NpdGlvbiwgcmFkaXVzLCBzZXJpZXMsIG9wdHMsIHByb2Nlc3MpO1xyXG4gIHJhZGFyRGF0YVBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAvLyDnu5jliLbljLrln5/mlbDmja5cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChyYWRhck9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBcclxuICAgIHZhciBmaWxsY29sb3IgPSBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByYWRhck9wdGlvbi5vcGFjaXR5KTtcclxuICAgIGlmIChyYWRhck9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgIHZhciBncmQ7XHJcbiAgICAgIGlmKGNvbnRleHQuY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCl7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cylcclxuICAgICAgfVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tzZXJpZXNJbmRleF0ubGluZWFySW5kZXhdLCByYWRhck9wdGlvbi5vcGFjaXR5KSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByYWRhck9wdGlvbi5vcGFjaXR5KSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxjb2xvcik7XHJcbiAgICBlYWNoU2VyaWVzLmRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS5wb3NpdGlvbi54LCBpdGVtLnBvc2l0aW9uLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGlmKHJhZGFyT3B0aW9uLmJvcmRlciA9PT0gdHJ1ZSl7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgaWYgKG9wdHMuZGF0YVBvaW50U2hhcGUgIT09IGZhbHNlKSB7XHJcbiAgICAgIHZhciBwb2ludHMgPSBlYWNoU2VyaWVzLmRhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5wb3NpdGlvbjtcclxuICAgICAgfSk7XHJcbiAgICAgIGRyYXdQb2ludFNoYXBlKHBvaW50cywgZWFjaFNlcmllcy5jb2xvciwgZWFjaFNlcmllcy5wb2ludFNoYXBlLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH1cclxuICB9KTtcclxuICAvLyDnlLvliLvluqblgLxcclxuICBpZihyYWRhck9wdGlvbi5heGlzTGFiZWwgPT09IHRydWUpe1xyXG4gICAgY29uc3QgbWF4RGF0YSA9IE1hdGgubWF4KHJhZGFyT3B0aW9uLm1heCwgTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUNvbWJpbmUoc2VyaWVzKSkpO1xyXG4gICAgY29uc3Qgc3RlcExlbmd0aCA9IHJhZGl1cyAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudDtcclxuICAgIGNvbnN0IGZvbnRTaXplID0gb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYWRhck9wdGlvbi5ncmlkQ291bnQgKyAxOyBpKyspIHtcclxuICAgICAgbGV0IGxhYmVsID0gaSAqIG1heERhdGEgLyByYWRhck9wdGlvbi5ncmlkQ291bnQ7XHJcbiAgICAgIGxhYmVsID0gbGFiZWwudG9GaXhlZChyYWRhck9wdGlvbi5heGlzTGFiZWxUb2ZpeCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGxhYmVsKSwgY2VudGVyUG9zaXRpb24ueCArIDMgKiBvcHRzLnBpeCwgY2VudGVyUG9zaXRpb24ueSAtIGkgKiBzdGVwTGVuZ3RoICsgZm9udFNpemUgLyAyKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLy8gZHJhdyBsYWJlbCB0ZXh0XHJcbiAgZHJhd1JhZGFyTGFiZWwoY29vcmRpbmF0ZUFuZ2xlLCByYWRpdXMsIGNlbnRlclBvc2l0aW9uLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gIFxyXG4gIC8vIGRyYXcgZGF0YUxhYmVsXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICByYWRhckRhdGFQb2ludHMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICB2YXIgZm9udFNpemUgPSBlYWNoU2VyaWVzLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZWFjaFNlcmllcy50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICBlYWNoU2VyaWVzLmRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIC8v5aaC5p6c5piv5Lit5b+D54K55Z6C55u055qE5LiK5LiL54K55L2NXHJcbiAgICAgICAgaWYoTWF0aC5hYnMoaXRlbS5wb3NpdGlvbi54IC0gY2VudGVyUG9zaXRpb24ueCk8Mil7XHJcbiAgICAgICAgICAvL+WmguaenOWcqOS4iumdolxyXG4gICAgICAgICAgaWYoaXRlbS5wb3NpdGlvbi55IDwgY2VudGVyUG9zaXRpb24ueSl7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSAtIDQpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSArIGZvbnRTaXplICsgMik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAvL+WmguaenOWcqOW3puS+p1xyXG4gICAgICAgICAgaWYoaXRlbS5wb3NpdGlvbi54IDwgY2VudGVyUG9zaXRpb24ueCl7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCAtIDQsIGl0ZW0ucG9zaXRpb24ueSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54ICsgNCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgLyAyIC0gMik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICB9XHJcbiAgXHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIGFuZ2xlTGlzdDogY29vcmRpbmF0ZUFuZ2xlXHJcbiAgfTtcclxufVxyXG5cclxuLy8g57uP57qs5bqm6L2s5aKo5Y2h5omYXHJcbmZ1bmN0aW9uIGxvbmxhdDJtZXJjYXRvcihsb25naXR1ZGUsIGxhdGl0dWRlKSB7XHJcbiAgdmFyIG1lcmNhdG9yID0gQXJyYXkoMik7XHJcbiAgdmFyIHggPSBsb25naXR1ZGUgKiAyMDAzNzUwOC4zNCAvIDE4MDtcclxuICB2YXIgeSA9IE1hdGgubG9nKE1hdGgudGFuKCg5MCArIGxhdGl0dWRlKSAqIE1hdGguUEkgLyAzNjApKSAvIChNYXRoLlBJIC8gMTgwKTtcclxuICB5ID0geSAqIDIwMDM3NTA4LjM0IC8gMTgwO1xyXG4gIG1lcmNhdG9yWzBdID0geDtcclxuICBtZXJjYXRvclsxXSA9IHk7XHJcbiAgcmV0dXJuIG1lcmNhdG9yO1xyXG59XHJcblxyXG4vLyDloqjljaHmiZjovaznu4/nuqzluqZcclxuZnVuY3Rpb24gbWVyY2F0b3IybG9ubGF0KGxvbmdpdHVkZSwgbGF0aXR1ZGUpIHtcclxuICB2YXIgbG9ubGF0ID0gQXJyYXkoMilcclxuICB2YXIgeCA9IGxvbmdpdHVkZSAvIDIwMDM3NTA4LjM0ICogMTgwO1xyXG4gIHZhciB5ID0gbGF0aXR1ZGUgLyAyMDAzNzUwOC4zNCAqIDE4MDtcclxuICB5ID0gMTgwIC8gTWF0aC5QSSAqICgyICogTWF0aC5hdGFuKE1hdGguZXhwKHkgKiBNYXRoLlBJIC8gMTgwKSkgLSBNYXRoLlBJIC8gMik7XHJcbiAgbG9ubGF0WzBdID0geDtcclxuICBsb25sYXRbMV0gPSB5O1xyXG4gIHJldHVybiBsb25sYXQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEJvdW5kaW5nQm94KGRhdGEpIHtcclxuICB2YXIgYm91bmRzID0ge30sY29vcmRzO1xyXG4gIGJvdW5kcy54TWluID0gMTgwO1xyXG4gIGJvdW5kcy54TWF4ID0gMDtcclxuICBib3VuZHMueU1pbiA9IDkwO1xyXG4gIGJvdW5kcy55TWF4ID0gMFxyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgdmFyIGNvb3JkYSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXNcclxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgY29vcmRhLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgIGNvb3JkcyA9IGNvb3JkYVtrXTtcclxuICAgICAgaWYgKGNvb3Jkcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGNvb3JkcyA9IGNvb3Jkc1swXVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29vcmRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgdmFyIGxvbmdpdHVkZSA9IGNvb3Jkc1tqXVswXTtcclxuICAgICAgICB2YXIgbGF0aXR1ZGUgPSBjb29yZHNbal1bMV07XHJcbiAgICAgICAgdmFyIHBvaW50ID0ge1xyXG4gICAgICAgICAgeDogbG9uZ2l0dWRlLFxyXG4gICAgICAgICAgeTogbGF0aXR1ZGVcclxuICAgICAgICB9XHJcbiAgICAgICAgYm91bmRzLnhNaW4gPSBib3VuZHMueE1pbiA8IHBvaW50LnggPyBib3VuZHMueE1pbiA6IHBvaW50Lng7XHJcbiAgICAgICAgYm91bmRzLnhNYXggPSBib3VuZHMueE1heCA+IHBvaW50LnggPyBib3VuZHMueE1heCA6IHBvaW50Lng7XHJcbiAgICAgICAgYm91bmRzLnlNaW4gPSBib3VuZHMueU1pbiA8IHBvaW50LnkgPyBib3VuZHMueU1pbiA6IHBvaW50Lnk7XHJcbiAgICAgICAgYm91bmRzLnlNYXggPSBib3VuZHMueU1heCA+IHBvaW50LnkgPyBib3VuZHMueU1heCA6IHBvaW50Lnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGJvdW5kcztcclxufVxyXG5cclxuZnVuY3Rpb24gY29vcmRpbmF0ZVRvUG9pbnQobGF0aXR1ZGUsIGxvbmdpdHVkZSwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCkge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiAobG9uZ2l0dWRlIC0gYm91bmRzLnhNaW4pICogc2NhbGUgKyB4b2Zmc2V0LFxyXG4gICAgeTogKGJvdW5kcy55TWF4IC0gbGF0aXR1ZGUpICogc2NhbGUgKyB5b2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gcG9pbnRUb0Nvb3JkaW5hdGUocG9pbnRZLCBwb2ludFgsIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpIHtcclxuICByZXR1cm4ge1xyXG4gICAgeDogKHBvaW50WCAtIHhvZmZzZXQpIC8gc2NhbGUgKyBib3VuZHMueE1pbixcclxuICAgIHk6IGJvdW5kcy55TWF4IC0gKHBvaW50WSAtIHlvZmZzZXQpIC8gc2NhbGVcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1JheUludGVyc2VjdHNTZWdtZW50KHBvaSwgc19wb2ksIGVfcG9pKSB7XHJcbiAgaWYgKHNfcG9pWzFdID09IGVfcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVsxXSA+IHBvaVsxXSAmJiBlX3BvaVsxXSA+IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoc19wb2lbMV0gPCBwb2lbMV0gJiYgZV9wb2lbMV0gPCBwb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzFdID09IHBvaVsxXSAmJiBlX3BvaVsxXSA+IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoZV9wb2lbMV0gPT0gcG9pWzFdICYmIHNfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVswXSA8IHBvaVswXSAmJiBlX3BvaVsxXSA8IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBsZXQgeHNlZyA9IGVfcG9pWzBdIC0gKGVfcG9pWzBdIC0gc19wb2lbMF0pICogKGVfcG9pWzFdIC0gcG9pWzFdKSAvIChlX3BvaVsxXSAtIHNfcG9pWzFdKTtcclxuICBpZiAoeHNlZyA8IHBvaVswXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUG9pV2l0aGluUG9seShwb2ksIHBvbHksIG1lcmNhdG9yKSB7XHJcbiAgbGV0IHNpbnNjID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvbHkubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlcG9seSA9IHBvbHlbaV1bMF07XHJcbiAgICBpZiAocG9seS5sZW5ndGggPT0gMSkge1xyXG4gICAgICBlcG9seSA9IHBvbHlbaV1bMF1cclxuICAgIH1cclxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgZXBvbHkubGVuZ3RoIC0gMTsgaisrKSB7XHJcbiAgICAgIGxldCBzX3BvaSA9IGVwb2x5W2pdO1xyXG4gICAgICBsZXQgZV9wb2kgPSBlcG9seVtqICsgMV07XHJcbiAgICAgIGlmIChtZXJjYXRvcikge1xyXG4gICAgICAgIHNfcG9pID0gbG9ubGF0Mm1lcmNhdG9yKGVwb2x5W2pdWzBdLCBlcG9seVtqXVsxXSk7XHJcbiAgICAgICAgZV9wb2kgPSBsb25sYXQybWVyY2F0b3IoZXBvbHlbaiArIDFdWzBdLCBlcG9seVtqICsgMV1bMV0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc1JheUludGVyc2VjdHNTZWdtZW50KHBvaSwgc19wb2ksIGVfcG9pKSkge1xyXG4gICAgICAgIHNpbnNjICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHNpbnNjICUgMiA9PSAxKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01hcERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgbWFwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBib3JkZXI6IHRydWUsXHJcbiAgICBtZXJjYXRvcjogZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDogMSxcclxuICAgIGFjdGl2ZTp0cnVlLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjNjY2NjY2JyxcclxuICAgIGZpbGxPcGFjaXR5OiAwLjYsXHJcbiAgICBhY3RpdmVCb3JkZXJDb2xvcjogJyNmMDQ4NjQnLFxyXG4gICAgYWN0aXZlRmlsbENvbG9yOiAnI2ZhY2MxNCcsXHJcbiAgICBhY3RpdmVGaWxsT3BhY2l0eTogMVxyXG4gIH0sIG9wdHMuZXh0cmEubWFwKTtcclxuICB2YXIgY29vcmRzLCBwb2ludDtcclxuICB2YXIgZGF0YSA9IHNlcmllcztcclxuICB2YXIgYm91bmRzID0gZ2V0Qm91bmRpbmdCb3goZGF0YSk7XHJcbiAgaWYgKG1hcE9wdGlvbi5tZXJjYXRvcikge1xyXG4gICAgdmFyIG1heCA9IGxvbmxhdDJtZXJjYXRvcihib3VuZHMueE1heCwgYm91bmRzLnlNYXgpXHJcbiAgICB2YXIgbWluID0gbG9ubGF0Mm1lcmNhdG9yKGJvdW5kcy54TWluLCBib3VuZHMueU1pbilcclxuICAgIGJvdW5kcy54TWF4ID0gbWF4WzBdXHJcbiAgICBib3VuZHMueU1heCA9IG1heFsxXVxyXG4gICAgYm91bmRzLnhNaW4gPSBtaW5bMF1cclxuICAgIGJvdW5kcy55TWluID0gbWluWzFdXHJcbiAgfVxyXG4gIHZhciB4U2NhbGUgPSBvcHRzLndpZHRoIC8gTWF0aC5hYnMoYm91bmRzLnhNYXggLSBib3VuZHMueE1pbik7XHJcbiAgdmFyIHlTY2FsZSA9IG9wdHMuaGVpZ2h0IC8gTWF0aC5hYnMoYm91bmRzLnlNYXggLSBib3VuZHMueU1pbik7XHJcbiAgdmFyIHNjYWxlID0geFNjYWxlIDwgeVNjYWxlID8geFNjYWxlIDogeVNjYWxlO1xyXG4gIHZhciB4b2Zmc2V0ID0gb3B0cy53aWR0aCAvIDIgLSBNYXRoLmFicyhib3VuZHMueE1heCAtIGJvdW5kcy54TWluKSAvIDIgKiBzY2FsZTtcclxuICB2YXIgeW9mZnNldCA9IG9wdHMuaGVpZ2h0IC8gMiAtIE1hdGguYWJzKGJvdW5kcy55TWF4IC0gYm91bmRzLnlNaW4pIC8gMiAqIHNjYWxlO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1hcE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUobWFwT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgc2VyaWVzW2ldLmZpbGxPcGFjaXR5fHxtYXBPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgIGlmIChtYXBPcHRpb24uYWN0aXZlID09IHRydWUgJiYgb3B0cy50b29sdGlwKSB7XHJcbiAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUobWFwT3B0aW9uLmFjdGl2ZUJvcmRlckNvbG9yKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihtYXBPcHRpb24uYWN0aXZlRmlsbENvbG9yLCBtYXBPcHRpb24uYWN0aXZlRmlsbE9wYWNpdHkpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIGNvb3JkYSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXNcclxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgY29vcmRhLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgIGNvb3JkcyA9IGNvb3JkYVtrXTtcclxuICAgICAgaWYgKGNvb3Jkcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGNvb3JkcyA9IGNvb3Jkc1swXVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29vcmRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgdmFyIGdhb3NpID0gQXJyYXkoMik7XHJcbiAgICAgICAgaWYgKG1hcE9wdGlvbi5tZXJjYXRvcikge1xyXG4gICAgICAgICAgZ2Fvc2kgPSBsb25sYXQybWVyY2F0b3IoY29vcmRzW2pdWzBdLCBjb29yZHNbal1bMV0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGdhb3NpID0gY29vcmRzW2pdXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBvaW50ID0gY29vcmRpbmF0ZVRvUG9pbnQoZ2Fvc2lbMV0sIGdhb3NpWzBdLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KVxyXG4gICAgICAgIGlmIChqID09PSAwKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnQueCwgcG9pbnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHBvaW50LngsIHBvaW50LnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgaWYgKG1hcE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsID09IHRydWUpIHtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgY2VudGVyUG9pbnQgPSBkYXRhW2ldLnByb3BlcnRpZXMuY2VudHJvaWQ7XHJcbiAgICAgIGlmIChjZW50ZXJQb2ludCkge1xyXG4gICAgICAgIGlmIChtYXBPcHRpb24ubWVyY2F0b3IpIHtcclxuICAgICAgICAgIGNlbnRlclBvaW50ID0gbG9ubGF0Mm1lcmNhdG9yKGRhdGFbaV0ucHJvcGVydGllcy5jZW50cm9pZFswXSwgZGF0YVtpXS5wcm9wZXJ0aWVzLmNlbnRyb2lkWzFdKVxyXG4gICAgICAgIH1cclxuICAgICAgICBwb2ludCA9IGNvb3JkaW5hdGVUb1BvaW50KGNlbnRlclBvaW50WzFdLCBjZW50ZXJQb2ludFswXSwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCk7XHJcbiAgICAgICAgbGV0IGZvbnRTaXplID0gZGF0YVtpXS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBsZXQgZm9udENvbG9yID0gZGF0YVtpXS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3I7XHJcbiAgICAgICAgaWYobWFwT3B0aW9uLmFjdGl2ZSAmJiBtYXBPcHRpb24uYWN0aXZlVGV4dENvbG9yICYmIG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSl7XHJcbiAgICAgICAgICBmb250Q29sb3IgPSBtYXBPcHRpb24uYWN0aXZlVGV4dENvbG9yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGV4dCA9IGRhdGFbaV0ucHJvcGVydGllcy5uYW1lO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSlcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmb250Q29sb3IpXHJcbiAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCBwb2ludC54IC0gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpIC8gMiwgcG9pbnQueSArIGZvbnRTaXplIC8gMik7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wdHMuY2hhcnREYXRhLm1hcERhdGEgPSB7XHJcbiAgICBib3VuZHM6IGJvdW5kcyxcclxuICAgIHNjYWxlOiBzY2FsZSxcclxuICAgIHhvZmZzZXQ6IHhvZmZzZXQsXHJcbiAgICB5b2Zmc2V0OiB5b2Zmc2V0LFxyXG4gICAgbWVyY2F0b3I6IG1hcE9wdGlvbi5tZXJjYXRvclxyXG4gIH1cclxuICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIDEpO1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBub3JtYWxJbnQobWluLCBtYXgsIGl0ZXIpIHtcclxuICBpdGVyID0gaXRlciA9PSAwID8gMSA6IGl0ZXI7XHJcbiAgdmFyIGFyciA9IFtdO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlcjsgaSsrKSB7XHJcbiAgICBhcnJbaV0gPSBNYXRoLnJhbmRvbSgpO1xyXG4gIH07XHJcbiAgcmV0dXJuIE1hdGguZmxvb3IoYXJyLnJlZHVjZShmdW5jdGlvbihpLCBqKSB7XHJcbiAgICByZXR1cm4gaSArIGpcclxuICB9KSAvIGl0ZXIgKiAobWF4IC0gbWluKSkgKyBtaW47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBjb2xsaXNpb25OZXcoYXJlYSwgcG9pbnRzLCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgdmFyIGlzSW4gPSBmYWxzZTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYgKHBvaW50c1tpXS5hcmVhKSB7XHJcbiAgICAgIGlmIChhcmVhWzNdIDwgcG9pbnRzW2ldLmFyZWFbMV0gfHwgYXJlYVswXSA+IHBvaW50c1tpXS5hcmVhWzJdIHx8IGFyZWFbMV0gPiBwb2ludHNbaV0uYXJlYVszXSB8fCBhcmVhWzJdIDwgcG9pbnRzW2ldLmFyZWFbMF0pIHtcclxuICAgICAgICBpZiAoYXJlYVswXSA8IDAgfHwgYXJlYVsxXSA8IDAgfHwgYXJlYVsyXSA+IHdpZHRoIHx8IGFyZWFbM10gPiBoZWlnaHQpIHtcclxuICAgICAgICAgIGlzSW4gPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXNJbiA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGlzSW47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBnZXRXb3JkQ2xvdWRQb2ludChvcHRzLCB0eXBlLCBjb250ZXh0KSB7XHJcbiAgbGV0IHBvaW50cyA9IG9wdHMuc2VyaWVzO1xyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGV4dCA9IHBvaW50c1tpXS5uYW1lO1xyXG4gICAgICAgIGxldCB0SGVpZ2h0ID0gcG9pbnRzW2ldLnRleHRTaXplICogb3B0cy5waXg7XHJcbiAgICAgICAgbGV0IHRXaWR0aCA9IG1lYXN1cmVUZXh0KHRleHQsIHRIZWlnaHQsIGNvbnRleHQpO1xyXG4gICAgICAgIGxldCB4LCB5O1xyXG4gICAgICAgIGxldCBhcmVhO1xyXG4gICAgICAgIGxldCBicmVha251bSA9IDA7XHJcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgIGJyZWFrbnVtKys7XHJcbiAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgYXJlYSA9IFt4IC0gNSArIG9wdHMud2lkdGggLyAyLCB5IC0gNSAtIHRIZWlnaHQgKyBvcHRzLmhlaWdodCAvIDIsIHggKyB0V2lkdGggKyA1ICsgb3B0cy53aWR0aCAvIDIsIHkgKyA1ICtcclxuICAgICAgICAgICAgb3B0cy5oZWlnaHQgLyAyXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgICAgbGV0IGlzQ29sbGlzaW9uID0gY29sbGlzaW9uTmV3KGFyZWEsIHBvaW50cywgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKCFpc0NvbGxpc2lvbikgYnJlYWs7XHJcbiAgICAgICAgICBpZiAoYnJlYWtudW0gPT0gMTAwMCkge1xyXG4gICAgICAgICAgICBhcmVhID0gWy0xMDAsIC0xMDAsIC0xMDAsIC0xMDBdO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHBvaW50c1tpXS5hcmVhID0gYXJlYTtcclxuICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3ZlcnRpY2FsJzpcclxuICAgICAgZnVuY3Rpb24gU3BpbigpIHtcclxuICAgICAgICAvL+iOt+WPluWdh+WMgOmaj+acuuWAvO+8jOaYr+WQpuaXi+i9rO+8jOaXi+i9rOeahOamgueOh+S4uu+8iDEtMC4177yJXHJcbiAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPiAwLjcpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICB9O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICAgICAgbGV0IGlzU3BpbiA9IFNwaW4oKTtcclxuICAgICAgICBsZXQgeCwgeSwgYXJlYSwgYXJlYXY7XHJcbiAgICAgICAgbGV0IGJyZWFrbnVtID0gMDtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgYnJlYWtudW0rKztcclxuICAgICAgICAgIGxldCBpc0NvbGxpc2lvbjtcclxuICAgICAgICAgIGlmIChpc1NwaW4pIHtcclxuICAgICAgICAgICAgeCA9IG5vcm1hbEludCgtb3B0cy53aWR0aCAvIDIsIG9wdHMud2lkdGggLyAyLCA1KSAtIHRXaWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBhcmVhID0gW3kgLSA1IC0gdFdpZHRoICsgb3B0cy53aWR0aCAvIDIsICgteCAtIDUgKyBvcHRzLmhlaWdodCAvIDIpLCB5ICsgNSArIG9wdHMud2lkdGggLyAyLCAoLXggKyB0SGVpZ2h0ICsgNSArIG9wdHMuaGVpZ2h0IC8gMildO1xyXG4gICAgICAgICAgICBhcmVhdiA9IFtvcHRzLndpZHRoIC0gKG9wdHMud2lkdGggLyAyIC0gb3B0cy5oZWlnaHQgLyAyKSAtICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKSAtIDUsIChvcHRzLmhlaWdodCAvIDIgLSBvcHRzLndpZHRoIC8gMikgKyAoeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMikgLSA1LCBvcHRzLndpZHRoIC0gKG9wdHMud2lkdGggLyAyIC0gb3B0cy5oZWlnaHQgLyAyKSAtICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKSArIHRIZWlnaHQsIChvcHRzLmhlaWdodCAvIDIgLSBvcHRzLndpZHRoIC8gMikgKyAoeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMikgKyB0V2lkdGggKyA1XTtcclxuICAgICAgICAgICAgaXNDb2xsaXNpb24gPSBjb2xsaXNpb25OZXcoYXJlYXYsIHBvaW50cywgb3B0cy5oZWlnaHQsIG9wdHMud2lkdGgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgeCA9IG5vcm1hbEludCgtb3B0cy53aWR0aCAvIDIsIG9wdHMud2lkdGggLyAyLCA1KSAtIHRXaWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBhcmVhID0gW3ggLSA1ICsgb3B0cy53aWR0aCAvIDIsIHkgLSA1IC0gdEhlaWdodCArIG9wdHMuaGVpZ2h0IC8gMiwgeCArIHRXaWR0aCArIDUgKyBvcHRzLndpZHRoIC8gMiwgeSArIDUgKyBvcHRzLmhlaWdodCAvIDJdO1xyXG4gICAgICAgICAgICBpc0NvbGxpc2lvbiA9IGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghaXNDb2xsaXNpb24pIGJyZWFrO1xyXG4gICAgICAgICAgaWYgKGJyZWFrbnVtID09IDEwMDApIHtcclxuICAgICAgICAgICAgYXJlYSA9IFstMTAwMCwgLTEwMDAsIC0xMDAwLCAtMTAwMF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKGlzU3Bpbikge1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhdjtcclxuICAgICAgICAgIHBvaW50c1tpXS5hcmVhdiA9IGFyZWE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBvaW50c1tpXS5hcmVhID0gYXJlYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnRzW2ldLnJvdGF0ZSA9IGlzU3BpbjtcclxuICAgICAgfTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdXb3JkQ2xvdWREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHdvcmRPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdub3JtYWwnLFxyXG4gICAgYXV0b0NvbG9yczogdHJ1ZVxyXG4gIH0sIG9wdHMuZXh0cmEud29yZCk7XHJcbiAgaWYgKCFvcHRzLmNoYXJ0RGF0YS53b3JkQ2xvdWREYXRhKSB7XHJcbiAgICBvcHRzLmNoYXJ0RGF0YS53b3JkQ2xvdWREYXRhID0gZ2V0V29yZENsb3VkUG9pbnQob3B0cywgd29yZE9wdGlvbi50eXBlLCBjb250ZXh0KTtcclxuICB9XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gIGNvbnRleHQucmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IHBvaW50cyA9IG9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGE7XHJcbiAgY29udGV4dC50cmFuc2xhdGUob3B0cy53aWR0aCAvIDIsIG9wdHMuaGVpZ2h0IC8gMik7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgaWYgKHBvaW50c1tpXS5yb3RhdGUpIHtcclxuICAgICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICAgIH1cclxuICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICBsZXQgdEhlaWdodCA9IHBvaW50c1tpXS50ZXh0U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgbGV0IHRXaWR0aCA9IG1lYXN1cmVUZXh0KHRleHQsIHRIZWlnaHQsIGNvbnRleHQpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocG9pbnRzW2ldLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHBvaW50c1tpXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKHRIZWlnaHQpO1xyXG4gICAgaWYgKHBvaW50c1tpXS5yb3RhdGUpIHtcclxuICAgICAgaWYgKHBvaW50c1tpXS5hcmVhdlswXSA+IDApIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5zdHJva2VUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYXZbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWF2WzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYXZbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWF2WzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwb2ludHNbaV0uYXJlYVswXSA+IDApIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5zdHJva2VUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWFbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWFbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWFbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWFbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IGZ1bm5lbE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTonZnVubmVsJyxcclxuICAgIGFjdGl2ZVdpZHRoOiAxMCxcclxuICAgIGFjdGl2ZU9wYWNpdHk6IDAuMyxcclxuICAgIGJvcmRlcjogZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDogMixcclxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBmaWxsT3BhY2l0eTogMSxcclxuICAgIG1pblNpemU6IDAsXHJcbiAgICBsYWJlbEFsaWduOiAncmlnaHQnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEuZnVubmVsKTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gc2VyaWVzLmxlbmd0aDtcclxuICBsZXQgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl1cclxuICB9O1xyXG4gIGxldCBhY3RpdmVXaWR0aCA9IGZ1bm5lbE9wdGlvbi5hY3RpdmVXaWR0aCAqIG9wdHMucGl4O1xyXG4gIGxldCByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gYWN0aXZlV2lkdGgsIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gYWN0aXZlV2lkdGgpO1xyXG4gIGxldCBzZXJpZXNOZXcgPSBnZXRGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCBmdW5uZWxPcHRpb24sIGVhY2hTcGFjaW5nLCBwcm9jZXNzKTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICBmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUsIGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIGlmKGZ1bm5lbE9wdGlvbi50eXBlID09ICdweXJhbWlkJyl7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllc05ldy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA9PSBzZXJpZXNOZXcubGVuZ3RoIC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oLWFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1hY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlcmllc05ld1tpXS5mdW5uZWxBcmVhID0gW2NlbnRlclBvc2l0aW9uLnggLSBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiAoaSArIDEpLCBjZW50ZXJQb3NpdGlvbi54ICsgc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogaV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChmdW5uZWxPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShmdW5uZWxPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIHZhciBmaWxsQ29sb3IgPSBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcsIC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUsIGhleFRvUmdiKGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNOZXdbaV0ubGluZWFySW5kZXhdLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKDAsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uYWN0aXZlT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlcmllc05ld1tpXS5mdW5uZWxBcmVhID0gW2NlbnRlclBvc2l0aW9uLnggLSBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiAoaSArIDEpLCBjZW50ZXJQb3NpdGlvbi54ICsgc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogaV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChmdW5uZWxPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShmdW5uZWxPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIHZhciBmaWxsQ29sb3IgPSBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcsIC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUsIGhleFRvUmdiKGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNOZXdbaV0ubGluZWFySW5kZXhdLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCAtZWFjaFNwYWNpbmcpXHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCAtIChzZXJpZXNOZXcubGVuZ3RoIC0gMSkgKiBlYWNoU3BhY2luZyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllc05ldy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA9PSBzZXJpZXNOZXcubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKC1hY3RpdmVXaWR0aCAtIGZ1bm5lbE9wdGlvbi5taW5TaXplLzIsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGFjdGl2ZVdpZHRoICsgZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1hY3RpdmVXaWR0aCAtIGZ1bm5lbE9wdGlvbi5taW5TaXplLzIsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZywgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLWZ1bm5lbE9wdGlvbi5taW5TaXplLzIsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uYWN0aXZlT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpICsgMV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpICsgMV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlcmllc05ld1tpXS5mdW5uZWxBcmVhID0gW2NlbnRlclBvc2l0aW9uLnggLSBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiAoc2VyaWVzTmV3Lmxlbmd0aCAtIGkpLCBjZW50ZXJQb3NpdGlvbi54ICsgc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogKHNlcmllc05ldy5sZW5ndGggLSBpIC0gMSldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzTmV3W2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgZWFjaFNwYWNpbmcpXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgZHJhd0Z1bm5lbFRleHQoc2VyaWVzTmV3LCBvcHRzLCBjb250ZXh0LCBlYWNoU3BhY2luZywgZnVubmVsT3B0aW9uLmxhYmVsQWxpZ24sIGFjdGl2ZVdpZHRoLCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgfVxyXG4gIGlmIChwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3RnVubmVsQ2VudGVyVGV4dChzZXJpZXNOZXcsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBmdW5uZWxPcHRpb24ubGFiZWxBbGlnbiwgYWN0aXZlV2lkdGgsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzTmV3XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0Z1bm5lbFRleHQoc2VyaWVzLCBvcHRzLCBjb250ZXh0LCBlYWNoU3BhY2luZywgbGFiZWxBbGlnbiwgYWN0aXZlV2lkdGgsIGNlbnRlclBvc2l0aW9uKSB7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaWYoaXRlbS5sYWJlbFNob3cgPT09IGZhbHNlKXtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBsZXQgc3RhcnRYLCBlbmRYLCBzdGFydFksIGZvbnRTaXplO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKGl0ZW0saSxzZXJpZXMsb3B0cykgOiB1dGlsLnRvRml4ZWQoaXRlbS5fcHJvcG9ydGlvbl8gKiAxMDApICsgJyUnO1xyXG4gICAgdGV4dCA9IGl0ZW0ubGFiZWxUZXh0ID8gaXRlbS5sYWJlbFRleHQgOiB0ZXh0O1xyXG4gICAgaWYgKGxhYmVsQWxpZ24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICBpZiAoaSA9PSBzZXJpZXMubGVuZ3RoIC0xKSB7XHJcbiAgICAgICAgc3RhcnRYID0gKGl0ZW0uZnVubmVsQXJlYVsyXSArIGNlbnRlclBvc2l0aW9uLngpIC8gMjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgc2VyaWVzW2kgKyAxXS5mdW5uZWxBcmVhWzJdKSAvIDI7XHJcbiAgICAgIH1cclxuICAgICAgZW5kWCA9IHN0YXJ0WCArIGFjdGl2ZVdpZHRoICogMjtcclxuICAgICAgc3RhcnRZID0gaXRlbS5mdW5uZWxBcmVhWzFdICsgZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICBmb250U2l6ZSA9IGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBvcHRzLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKGVuZFgsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQuYXJjKGVuZFgsIHN0YXJ0WSwgMiAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIGVuZFggKyA1LCBzdGFydFkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICAgIGlmIChsYWJlbEFsaWduID09ICdsZWZ0Jykge1xyXG4gICAgICBpZiAoaSA9PSBzZXJpZXMubGVuZ3RoIC0xKSB7XHJcbiAgICAgICAgc3RhcnRYID0gKGl0ZW0uZnVubmVsQXJlYVswXSArIGNlbnRlclBvc2l0aW9uLngpIC8gMjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgc2VyaWVzW2kgKyAxXS5mdW5uZWxBcmVhWzBdKSAvIDI7XHJcbiAgICAgIH1cclxuICAgICAgZW5kWCA9IHN0YXJ0WCAtIGFjdGl2ZVdpZHRoICogMjtcclxuICAgICAgc3RhcnRZID0gaXRlbS5mdW5uZWxBcmVhWzFdICsgZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICBmb250U2l6ZSA9IGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBvcHRzLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKGVuZFgsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQuYXJjKGVuZFgsIHN0YXJ0WSwgMiwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0udGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCBlbmRYIC0gNSAtIG1lYXN1cmVUZXh0KHRleHQsIGZvbnRTaXplLCBjb250ZXh0KSwgc3RhcnRZICsgZm9udFNpemUgLyAyIC0gMik7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsQ2VudGVyVGV4dChzZXJpZXMsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBsYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBsZXQgc3RhcnRZLCBmb250U2l6ZTtcclxuICAgIGlmIChpdGVtLmNlbnRlclRleHQpIHtcclxuICAgICAgc3RhcnRZID0gaXRlbS5mdW5uZWxBcmVhWzFdICsgZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICBmb250U2l6ZSA9IGl0ZW0uY2VudGVyVGV4dFNpemUgKiBvcHRzLnBpeCB8fCBvcHRzLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNlbnRlclRleHRDb2xvciB8fCBcIiNGRkZGRkZcIik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS5jZW50ZXJUZXh0LCBjZW50ZXJQb3NpdGlvbi54IC0gbWVhc3VyZVRleHQoaXRlbS5jZW50ZXJUZXh0LCBmb250U2l6ZSwgY29udGV4dCkgLyAyLCBzdGFydFkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpIHtcclxuICBjb250ZXh0LmRyYXcoKTtcclxufVxyXG5cclxudmFyIFRpbWluZyA9IHtcclxuICBlYXNlSW46IGZ1bmN0aW9uIGVhc2VJbihwb3MpIHtcclxuICAgIHJldHVybiBNYXRoLnBvdyhwb3MsIDMpO1xyXG4gIH0sXHJcbiAgZWFzZU91dDogZnVuY3Rpb24gZWFzZU91dChwb3MpIHtcclxuICAgIHJldHVybiBNYXRoLnBvdyhwb3MgLSAxLCAzKSArIDE7XHJcbiAgfSxcclxuICBlYXNlSW5PdXQ6IGZ1bmN0aW9uIGVhc2VJbk91dChwb3MpIHtcclxuICAgIGlmICgocG9zIC89IDAuNSkgPCAxKSB7XHJcbiAgICAgIHJldHVybiAwLjUgKiBNYXRoLnBvdyhwb3MsIDMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDAuNSAqIChNYXRoLnBvdyhwb3MgLSAyLCAzKSArIDIpO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgbGluZWFyOiBmdW5jdGlvbiBsaW5lYXIocG9zKSB7XHJcbiAgICByZXR1cm4gcG9zO1xyXG4gIH1cclxufTtcclxuXHJcbmZ1bmN0aW9uIEFuaW1hdGlvbihvcHRzKSB7XHJcbiAgdGhpcy5pc1N0b3AgPSBmYWxzZTtcclxuICBvcHRzLmR1cmF0aW9uID0gdHlwZW9mIG9wdHMuZHVyYXRpb24gPT09ICd1bmRlZmluZWQnID8gMTAwMCA6IG9wdHMuZHVyYXRpb247XHJcbiAgb3B0cy50aW1pbmcgPSBvcHRzLnRpbWluZyB8fCAnZWFzZUluT3V0JztcclxuICB2YXIgZGVsYXkgPSAxNztcclxuICBmdW5jdGlvbiBjcmVhdGVBbmltYXRpb25GcmFtZSgpIHtcclxuICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0ZXAsIGRlbGF5KSB7XHJcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuICAgICAgICAgIHZhciB0aW1lU3RhbXAgPSArbmV3IERhdGUoKTtcclxuICAgICAgICAgIHN0ZXAodGltZVN0YW1wKTtcclxuICAgICAgICB9LCBkZWxheSk7XHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RlcCkge1xyXG4gICAgICAgIHN0ZXAobnVsbCk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfTtcclxuICB2YXIgYW5pbWF0aW9uRnJhbWUgPSBjcmVhdGVBbmltYXRpb25GcmFtZSgpO1xyXG4gIHZhciBzdGFydFRpbWVTdGFtcCA9IG51bGw7XHJcbiAgdmFyIF9zdGVwID0gZnVuY3Rpb24gc3RlcCh0aW1lc3RhbXApIHtcclxuICAgIGlmICh0aW1lc3RhbXAgPT09IG51bGwgfHwgdGhpcy5pc1N0b3AgPT09IHRydWUpIHtcclxuICAgICAgb3B0cy5vblByb2Nlc3MgJiYgb3B0cy5vblByb2Nlc3MoMSk7XHJcbiAgICAgIG9wdHMub25BbmltYXRpb25GaW5pc2ggJiYgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoc3RhcnRUaW1lU3RhbXAgPT09IG51bGwpIHtcclxuICAgICAgc3RhcnRUaW1lU3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICB9XHJcbiAgICBpZiAodGltZXN0YW1wIC0gc3RhcnRUaW1lU3RhbXAgPCBvcHRzLmR1cmF0aW9uKSB7XHJcbiAgICAgIHZhciBwcm9jZXNzID0gKHRpbWVzdGFtcCAtIHN0YXJ0VGltZVN0YW1wKSAvIG9wdHMuZHVyYXRpb247XHJcbiAgICAgIHZhciB0aW1pbmdGdW5jdGlvbiA9IFRpbWluZ1tvcHRzLnRpbWluZ107XHJcbiAgICAgIHByb2Nlc3MgPSB0aW1pbmdGdW5jdGlvbihwcm9jZXNzKTtcclxuICAgICAgb3B0cy5vblByb2Nlc3MgJiYgb3B0cy5vblByb2Nlc3MocHJvY2Vzcyk7XHJcbiAgICAgIGFuaW1hdGlvbkZyYW1lKF9zdGVwLCBkZWxheSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2VzcygxKTtcclxuICAgICAgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCAmJiBvcHRzLm9uQW5pbWF0aW9uRmluaXNoKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBfc3RlcCA9IF9zdGVwLmJpbmQodGhpcyk7XHJcbiAgYW5pbWF0aW9uRnJhbWUoX3N0ZXAsIGRlbGF5KTtcclxufVxyXG5cclxuQW5pbWF0aW9uLnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24oKSB7XHJcbiAgdGhpcy5pc1N0b3AgPSB0cnVlO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gZHJhd0NoYXJ0cyh0eXBlLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gIHZhciBzZXJpZXMgPSBvcHRzLnNlcmllcztcclxuICAvL+WFvOWuuUVDaGFydHPppbzlm77nsbvmlbDmja7moLzlvI9cclxuICBpZiAodHlwZSA9PT0gJ3BpZScgfHwgdHlwZSA9PT0gJ3JpbmcnIHx8IHR5cGUgPT09ICdtb3VudCcgfHwgdHlwZSA9PT0gJ3Jvc2UnIHx8IHR5cGUgPT09ICdmdW5uZWwnKSB7XHJcbiAgICBzZXJpZXMgPSBmaXhQaWVTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gIH1cclxuICB2YXIgY2F0ZWdvcmllcyA9IG9wdHMuY2F0ZWdvcmllcztcclxuICBpZiAodHlwZSA9PT0gJ21vdW50Jykge1xyXG4gICAgY2F0ZWdvcmllcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBzZXJpZXMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgaWYoc2VyaWVzW2pdLnNob3cgIT09IGZhbHNlKSBjYXRlZ29yaWVzLnB1c2goc2VyaWVzW2pdLm5hbWUpXHJcbiAgICB9XHJcbiAgICBvcHRzLmNhdGVnb3JpZXMgPSBjYXRlZ29yaWVzO1xyXG4gIH1cclxuICBzZXJpZXMgPSBmaWxsU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKTtcclxuICB2YXIgZHVyYXRpb24gPSBvcHRzLmFuaW1hdGlvbiA/IG9wdHMuZHVyYXRpb24gOiAwO1xyXG4gIF90aGlzLmFuaW1hdGlvbkluc3RhbmNlICYmIF90aGlzLmFuaW1hdGlvbkluc3RhbmNlLnN0b3AoKTtcclxuICB2YXIgc2VyaWVzTUEgPSBudWxsO1xyXG4gIGlmICh0eXBlID09ICdjYW5kbGUnKSB7XHJcbiAgICBsZXQgYXZlcmFnZSA9IGFzc2lnbih7fSwgb3B0cy5leHRyYS5jYW5kbGUuYXZlcmFnZSk7XHJcbiAgICBpZiAoYXZlcmFnZS5zaG93KSB7XHJcbiAgICAgIHNlcmllc01BID0gY2FsQ2FuZGxlTUEoYXZlcmFnZS5kYXksIGF2ZXJhZ2UubmFtZSwgYXZlcmFnZS5jb2xvciwgc2VyaWVzWzBdLmRhdGEpO1xyXG4gICAgICBzZXJpZXNNQSA9IGZpbGxTZXJpZXMoc2VyaWVzTUEsIG9wdHMsIGNvbmZpZyk7XHJcbiAgICAgIG9wdHMuc2VyaWVzTUEgPSBzZXJpZXNNQTtcclxuICAgIH0gZWxzZSBpZiAob3B0cy5zZXJpZXNNQSkge1xyXG4gICAgICBzZXJpZXNNQSA9IG9wdHMuc2VyaWVzTUEgPSBmaWxsU2VyaWVzKG9wdHMuc2VyaWVzTUEsIG9wdHMsIGNvbmZpZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXJpZXNNQSA9IHNlcmllcztcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgc2VyaWVzTUEgPSBzZXJpZXM7XHJcbiAgfVxyXG4gIC8qIOi/h+a7pOaOiXNob3c9ZmFsc2XnmoRzZXJpZXMgKi9cclxuICBvcHRzLl9zZXJpZXNfID0gc2VyaWVzID0gZmlsdGVyU2VyaWVzKHNlcmllcyk7XHJcbiAgLy/ph43mlrDorqHnrpflm77ooajljLrln59cclxuICBvcHRzLmFyZWEgPSBuZXcgQXJyYXkoNCk7XHJcbiAgLy/lpI3kvY3nu5jlm77ljLrln59cclxuICBmb3IgKGxldCBqID0gMDsgaiA8IDQ7IGorKykge1xyXG4gICAgb3B0cy5hcmVhW2pdID0gb3B0cy5wYWRkaW5nW2pdICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIC8v6YCa6L+H6K6h566X5LiJ5aSn5Yy65Z+f77ya5Zu+5L6L44CBWOi9tOOAgVnovbTnmoTlpKflsI/vvIznoa7lrprnu5jlm77ljLrln59cclxuICB2YXIgX2NhbExlZ2VuZERhdGEgPSBjYWxMZWdlbmREYXRhKHNlcmllc01BLCBvcHRzLCBjb25maWcsIG9wdHMuY2hhcnREYXRhLCBjb250ZXh0KSxcclxuICAgIGxlZ2VuZEhlaWdodCA9IF9jYWxMZWdlbmREYXRhLmFyZWEud2hvbGVIZWlnaHQsXHJcbiAgICBsZWdlbmRXaWR0aCA9IF9jYWxMZWdlbmREYXRhLmFyZWEud2hvbGVXaWR0aDtcclxuXHJcbiAgc3dpdGNoIChvcHRzLmxlZ2VuZC5wb3NpdGlvbikge1xyXG4gICAgY2FzZSAndG9wJzpcclxuICAgICAgb3B0cy5hcmVhWzBdICs9IGxlZ2VuZEhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBvcHRzLmFyZWFbMl0gKz0gbGVnZW5kSGVpZ2h0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICBvcHRzLmFyZWFbM10gKz0gbGVnZW5kV2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBvcHRzLmFyZWFbMV0gKz0gbGVnZW5kV2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuXHJcbiAgbGV0IF9jYWxZQXhpc0RhdGEgPSB7fSxcclxuICAgIHlBeGlzV2lkdGggPSAwO1xyXG4gIGlmIChvcHRzLnR5cGUgPT09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT09ICdjb2x1bW4nfHwgb3B0cy50eXBlID09PSAnbW91bnQnIHx8IG9wdHMudHlwZSA9PT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PT0gJ21peCcgfHwgb3B0cy50eXBlID09PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT09ICdzY2F0dGVyJyAgfHwgb3B0cy50eXBlID09PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICAgIF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICB5QXhpc1dpZHRoID0gX2NhbFlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgLy/lpoLmnpzmmL7npLpZ6L205qCH6aKYXHJcbiAgICBpZiAob3B0cy55QXhpcy5zaG93VGl0bGUpIHtcclxuICAgICAgbGV0IG1heFRpdGxlSGVpZ2h0ID0gMDtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLnlBeGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBtYXhUaXRsZUhlaWdodCA9IE1hdGgubWF4KG1heFRpdGxlSGVpZ2h0LCBvcHRzLnlBeGlzLmRhdGFbaV0udGl0bGVGb250U2l6ZSA/IG9wdHMueUF4aXMuZGF0YVtpXS50aXRsZUZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemUpXHJcbiAgICAgIH1cclxuICAgICAgb3B0cy5hcmVhWzBdICs9IG1heFRpdGxlSGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgbGV0IHJpZ2h0SW5kZXggPSAwLFxyXG4gICAgICBsZWZ0SW5kZXggPSAwO1xyXG4gICAgLy/orqHnrpfkuLvnu5jlm77ljLrln5/lt6blj7PkvY3nva5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeUF4aXNXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoeUF4aXNXaWR0aFtpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICBpZiAobGVmdEluZGV4ID4gMCkge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzNdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzNdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxlZnRJbmRleCArPSAxO1xyXG4gICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGhbaV0ucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgIGlmIChyaWdodEluZGV4ID4gMCkge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzFdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzFdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJpZ2h0SW5kZXggKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgfVxyXG4gIG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YSA9IF9jYWxZQXhpc0RhdGE7XHJcblxyXG4gIGlmIChvcHRzLmNhdGVnb3JpZXMgJiYgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aCAmJiBvcHRzLnR5cGUgIT09ICdyYWRhcicgJiYgb3B0cy50eXBlICE9PSAnZ2F1Z2UnICYmIG9wdHMudHlwZSAhPT0gJ2JhcicpIHtcclxuICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSA9IGdldFhBeGlzUG9pbnRzKG9wdHMuY2F0ZWdvcmllcywgb3B0cywgY29uZmlnKTtcclxuICAgIGxldCBfY2FsQ2F0ZWdvcmllc0RhdGEgPSBjYWxDYXRlZ29yaWVzRGF0YShvcHRzLmNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nLCBjb250ZXh0KSxcclxuICAgICAgeEF4aXNIZWlnaHQgPSBfY2FsQ2F0ZWdvcmllc0RhdGEueEF4aXNIZWlnaHQsXHJcbiAgICAgIGFuZ2xlID0gX2NhbENhdGVnb3JpZXNEYXRhLmFuZ2xlO1xyXG4gICAgY29uZmlnLnhBeGlzSGVpZ2h0ID0geEF4aXNIZWlnaHQ7XHJcbiAgICBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9IGFuZ2xlO1xyXG4gICAgb3B0cy5hcmVhWzJdICs9IHhBeGlzSGVpZ2h0O1xyXG4gICAgb3B0cy5jaGFydERhdGEuY2F0ZWdvcmllc0RhdGEgPSBfY2FsQ2F0ZWdvcmllc0RhdGE7XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmIChvcHRzLnR5cGUgPT09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT09ICdidWJibGUnIHx8IG9wdHMudHlwZSA9PT0gJ2JhcicpIHtcclxuICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgY2F0ZWdvcmllcyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXNGb3JtYXQ7XHJcbiAgICAgIGxldCBfY2FsQ2F0ZWdvcmllc0RhdGEgPSBjYWxDYXRlZ29yaWVzRGF0YShjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZywgY29udGV4dCksXHJcbiAgICAgICAgeEF4aXNIZWlnaHQgPSBfY2FsQ2F0ZWdvcmllc0RhdGEueEF4aXNIZWlnaHQsXHJcbiAgICAgICAgYW5nbGUgPSBfY2FsQ2F0ZWdvcmllc0RhdGEuYW5nbGU7XHJcbiAgICAgIGNvbmZpZy54QXhpc0hlaWdodCA9IHhBeGlzSGVpZ2h0O1xyXG4gICAgICBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9IGFuZ2xlO1xyXG4gICAgICBvcHRzLmFyZWFbMl0gKz0geEF4aXNIZWlnaHQ7XHJcbiAgICAgIG9wdHMuY2hhcnREYXRhLmNhdGVnb3JpZXNEYXRhID0gX2NhbENhdGVnb3JpZXNEYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0ge1xyXG4gICAgICAgIHhBeGlzUG9pbnRzOiBbXVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy/orqHnrpflj7Plr7npvZDlgY/np7vot53nprtcclxuICBpZiAob3B0cy5lbmFibGVTY3JvbGwgJiYgb3B0cy54QXhpcy5zY3JvbGxBbGlnbiA9PSAncmlnaHQnICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICBsZXQgb2Zmc2V0TGVmdCA9IDAsXHJcbiAgICAgIHhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgICBzdGFydFggPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuc3RhcnRYLFxyXG4gICAgICBlbmRYID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVuZFgsXHJcbiAgICAgIGVhY2hTcGFjaW5nID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gICAgbGV0IHRvdGFsV2lkdGggPSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICAgIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLSB0b3RhbFdpZHRoO1xyXG4gICAgX3RoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQgPSBvZmZzZXRMZWZ0O1xyXG4gICAgX3RoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYID0gb2Zmc2V0TGVmdDtcclxuICAgIF90aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZSA9IDA7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24ubGFzdE1vdmVUaW1lID0gMDtcclxuICAgIG9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IG9mZnNldExlZnQ7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZSA9PT0gJ3BpZScgfHwgdHlwZSA9PT0gJ3JpbmcnIHx8IHR5cGUgPT09ICdyb3NlJykge1xyXG4gICAgY29uZmlnLl9waWVUZXh0TWF4TGVuZ3RoXyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBnZXRQaWVUZXh0TWF4TGVuZ3RoKHNlcmllc01BLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gIH1cclxuICBcclxuICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgIGNhc2UgJ3dvcmQnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbihwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdXb3JkQ2xvdWREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ21hcCc6XHJcbiAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgZHJhd01hcERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgfSw1MClcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdmdW5uZWwnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbihwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmZ1bm5lbERhdGEgPSBkcmF3RnVubmVsRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdsaW5lJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdMaW5lRGF0YVBvaW50cyA9IGRyYXdMaW5lRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdMaW5lRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdMaW5lRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdMaW5lRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdzY2F0dGVyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdTY2F0dGVyRGF0YVBvaW50cyA9IGRyYXdTY2F0dGVyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdTY2F0dGVyRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdTY2F0dGVyRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdTY2F0dGVyRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdidWJibGUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0J1YmJsZURhdGFQb2ludHMgPSBkcmF3QnViYmxlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdCdWJibGVEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0J1YmJsZURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3QnViYmxlRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdtaXgnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd01peERhdGFQb2ludHMgPSBkcmF3TWl4RGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdNaXhEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd01peERhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3TWl4RGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdjb2x1bW4nOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0NvbHVtbkRhdGFQb2ludHMgPSBkcmF3Q29sdW1uRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdDb2x1bW5EYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0NvbHVtbkRhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3Q29sdW1uRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdtb3VudCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3TW91bnREYXRhUG9pbnRzID0gZHJhd01vdW50RGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdNb3VudERhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3TW91bnREYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd01vdW50RGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdiYXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0JhckRhdGFQb2ludHMgPSBkcmF3QmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHlBeGlzUG9pbnRzID0gX2RyYXdCYXJEYXRhUG9pbnRzLnlBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0JhckRhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3QmFyRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnlBeGlzUG9pbnRzID0geUF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS54QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHlBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2FyZWEnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0FyZWFEYXRhUG9pbnRzID0gZHJhd0FyZWFEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0FyZWFEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0FyZWFEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0FyZWFEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3JpbmcnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5waWVEYXRhID0gZHJhd1BpZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncGllJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEucGllRGF0YSA9IGRyYXdQaWVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3Jvc2UnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5waWVEYXRhID0gZHJhd1Jvc2VEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3JhZGFyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEucmFkYXJEYXRhID0gZHJhd1JhZGFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdhcmNiYXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5hcmNiYXJEYXRhID0gZHJhd0FyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnZ2F1Z2UnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5nYXVnZURhdGEgPSBkcmF3R2F1Z2VEYXRhUG9pbnRzKGNhdGVnb3JpZXMsIHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2NhbmRsZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3Q2FuZGxlRGF0YVBvaW50cyA9IGRyYXdDYW5kbGVEYXRhUG9pbnRzKHNlcmllcywgc2VyaWVzTUEsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdDYW5kbGVEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0NhbmRsZURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3Q2FuZGxlRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHNlcmllc01BKSB7XHJcbiAgICAgICAgICAgIGRyYXdMZWdlbmQoc2VyaWVzTUEsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB1Q2hhcnRzRXZlbnQoKSB7XHJcbiAgdGhpcy5ldmVudHMgPSB7fTtcclxufVxyXG5cclxudUNoYXJ0c0V2ZW50LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcclxuICB0aGlzLmV2ZW50c1t0eXBlXSA9IHRoaXMuZXZlbnRzW3R5cGVdIHx8IFtdO1xyXG4gIHRoaXMuZXZlbnRzW3R5cGVdLnB1c2gobGlzdGVuZXIpO1xyXG59O1xyXG5cclxudUNoYXJ0c0V2ZW50LnByb3RvdHlwZS5kZWxFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSkge1xyXG4gIHRoaXMuZXZlbnRzW3R5cGVdID0gW107XHJcbn07XHJcblxyXG51Q2hhcnRzRXZlbnQucHJvdG90eXBlLnRyaWdnZXIgPSBmdW5jdGlvbigpIHtcclxuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xyXG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcclxuICB9XHJcbiAgdmFyIHR5cGUgPSBhcmdzWzBdO1xyXG4gIHZhciBwYXJhbXMgPSBhcmdzLnNsaWNlKDEpO1xyXG4gIGlmICghIXRoaXMuZXZlbnRzW3R5cGVdKSB7XHJcbiAgICB0aGlzLmV2ZW50c1t0eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbGlzdGVuZXIuYXBwbHkobnVsbCwgcGFyYW1zKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZygnW3VDaGFydHNdICcrZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbnZhciB1Q2hhcnRzID0gZnVuY3Rpb24gdUNoYXJ0cyhvcHRzKSB7XHJcbiAgb3B0cy5waXggPSBvcHRzLnBpeGVsUmF0aW8gPyBvcHRzLnBpeGVsUmF0aW8gOiAxO1xyXG4gIG9wdHMuZm9udFNpemUgPSBvcHRzLmZvbnRTaXplID8gb3B0cy5mb250U2l6ZSA6IDEzO1xyXG4gIG9wdHMuZm9udENvbG9yID0gb3B0cy5mb250Q29sb3IgPyBvcHRzLmZvbnRDb2xvciA6IGNvbmZpZy5mb250Q29sb3I7XHJcbiAgaWYgKG9wdHMuYmFja2dyb3VuZCA9PSBcIlwiIHx8IG9wdHMuYmFja2dyb3VuZCA9PSBcIm5vbmVcIikge1xyXG4gICAgb3B0cy5iYWNrZ3JvdW5kID0gXCIjRkZGRkZGXCJcclxuICB9XHJcbiAgb3B0cy50aXRsZSA9IGFzc2lnbih7fSwgb3B0cy50aXRsZSk7XHJcbiAgb3B0cy5zdWJ0aXRsZSA9IGFzc2lnbih7fSwgb3B0cy5zdWJ0aXRsZSk7XHJcbiAgb3B0cy5kdXJhdGlvbiA9IG9wdHMuZHVyYXRpb24gPyBvcHRzLmR1cmF0aW9uIDogMTAwMDtcclxuICBvcHRzLnlBeGlzID0gYXNzaWduKHt9LCB7XHJcbiAgICBkYXRhOiBbXSxcclxuICAgIHNob3dUaXRsZTogZmFsc2UsXHJcbiAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICBkaXNhYmxlR3JpZDogZmFsc2UsXHJcbiAgICBncmlkU2V0OiAnbnVtYmVyJyxcclxuICAgIHNwbGl0TnVtYmVyOiA1LFxyXG4gICAgZ3JpZFR5cGU6ICdzb2xpZCcsXHJcbiAgICBkYXNoTGVuZ3RoOiA0ICogb3B0cy5waXgsXHJcbiAgICBncmlkQ29sb3I6ICcjY2NjY2NjJyxcclxuICAgIHBhZGRpbmc6IDEwLFxyXG4gICAgZm9udENvbG9yOiAnIzY2NjY2NidcclxuICB9LCBvcHRzLnlBeGlzKTtcclxuICBvcHRzLnhBeGlzID0gYXNzaWduKHt9LCB7XHJcbiAgICByb3RhdGVMYWJlbDogZmFsc2UsXHJcbiAgICByb3RhdGVBbmdsZTo0NSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRpc2FibGVHcmlkOiBmYWxzZSxcclxuICAgIHNwbGl0TnVtYmVyOiA1LFxyXG4gICAgY2FsaWJyYXRpb246ZmFsc2UsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQsXHJcbiAgICBzY3JvbGxBbGlnbjogJ2xlZnQnLFxyXG4gICAgYm91bmRhcnlHYXA6ICdjZW50ZXInLFxyXG4gICAgYXhpc0xpbmU6IHRydWUsXHJcbiAgICBheGlzTGluZUNvbG9yOiAnI2NjY2NjYydcclxuICB9LCBvcHRzLnhBeGlzKTtcclxuICBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uID0gb3B0cy54QXhpcy5zY3JvbGxBbGlnbjtcclxuICBvcHRzLmxlZ2VuZCA9IGFzc2lnbih7fSwge1xyXG4gICAgc2hvdzogdHJ1ZSxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAgIGZsb2F0OiAnY2VudGVyJyxcclxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxyXG4gICAgYm9yZGVyQ29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcclxuICAgIGJvcmRlcldpZHRoOiAwLFxyXG4gICAgcGFkZGluZzogNSxcclxuICAgIG1hcmdpbjogNSxcclxuICAgIGl0ZW1HYXA6IDEwLFxyXG4gICAgZm9udFNpemU6IG9wdHMuZm9udFNpemUsXHJcbiAgICBsaW5lSGVpZ2h0OiBvcHRzLmZvbnRTaXplLFxyXG4gICAgZm9udENvbG9yOiBvcHRzLmZvbnRDb2xvcixcclxuICAgIGZvcm1hdHRlcjoge30sXHJcbiAgICBoaWRkZW5Db2xvcjogJyNDRUNFQ0UnXHJcbiAgfSwgb3B0cy5sZWdlbmQpO1xyXG4gIG9wdHMuZXh0cmEgPSBhc3NpZ24oe30sIG9wdHMuZXh0cmEpO1xyXG4gIG9wdHMucm90YXRlID0gb3B0cy5yb3RhdGUgPyB0cnVlIDogZmFsc2U7XHJcbiAgb3B0cy5hbmltYXRpb24gPSBvcHRzLmFuaW1hdGlvbiA/IHRydWUgOiBmYWxzZTtcclxuICBvcHRzLnJvdGF0ZSA9IG9wdHMucm90YXRlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIG9wdHMuY2FudmFzMmQgPSBvcHRzLmNhbnZhczJkID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIFxyXG4gIGxldCBjb25maWckJDEgPSBhc3NpZ24oe30sIGNvbmZpZyk7XHJcbiAgY29uZmlnJCQxLmNvbG9yID0gb3B0cy5jb2xvciA/IG9wdHMuY29sb3IgOiBjb25maWckJDEuY29sb3I7XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncGllJykge1xyXG4gICAgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogb3B0cy5leHRyYS5waWUubGFiZWxXaWR0aCAqIG9wdHMucGl4IHx8IGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ3JpbmcnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnJpbmcubGFiZWxXaWR0aCAqIG9wdHMucGl4IHx8IGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ3Jvc2UnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnJvc2UubGFiZWxXaWR0aCAqIG9wdHMucGl4IHx8IGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGNvbmZpZyQkMS5waWVDaGFydFRleHRQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IGNvbmZpZyQkMS5waWVDaGFydFRleHRQYWRkaW5nICogb3B0cy5waXg7XHJcblxyXG4gIC8v5bGP5bmV5peL6L2sXHJcbiAgY29uZmlnJCQxLnJvdGF0ZSA9IG9wdHMucm90YXRlO1xyXG4gIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgbGV0IHRlbXBXaWR0aCA9IG9wdHMud2lkdGg7XHJcbiAgICBsZXQgdGVtcEhlaWdodCA9IG9wdHMuaGVpZ2h0O1xyXG4gICAgb3B0cy53aWR0aCA9IHRlbXBIZWlnaHQ7XHJcbiAgICBvcHRzLmhlaWdodCA9IHRlbXBXaWR0aDtcclxuICB9XHJcblxyXG4gIC8v6YCC6YWN6auY5YiG5bGPXHJcbiAgb3B0cy5wYWRkaW5nID0gb3B0cy5wYWRkaW5nID8gb3B0cy5wYWRkaW5nIDogY29uZmlnJCQxLnBhZGRpbmc7XHJcbiAgY29uZmlnJCQxLnlBeGlzV2lkdGggPSBjb25maWcueUF4aXNXaWR0aCAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS54QXhpc0hlaWdodCA9IGNvbmZpZy54QXhpc0hlaWdodCAqIG9wdHMucGl4O1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgIGNvbmZpZyQkMS54QXhpc0hlaWdodCArPSA2ICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGNvbmZpZyQkMS5mb250U2l6ZSA9IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEudGl0bGVGb250U2l6ZSA9IGNvbmZpZy50aXRsZUZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnN1YnRpdGxlRm9udFNpemUgPSBjb25maWcuc3VidGl0bGVGb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS50b29sVGlwUGFkZGluZyA9IGNvbmZpZy50b29sVGlwUGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS50b29sVGlwTGluZUhlaWdodCA9IGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAqIG9wdHMucGl4O1xyXG4gIGlmKCFvcHRzLmNvbnRleHQpe1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdbdUNoYXJ0c10g5pyq6I635Y+W5YiwY29udGV4dO+8geazqOaEj++8mnYyLjDniYjmnKzlkI7vvIzpnIDopoHoh6rooYzojrflj5ZjYW52YXPnmoTnu5jlm77kuIrkuIvmloflubbkvKDlhaVvcHRzLmNvbnRleHTvvIEnKTtcclxuICB9XHJcbiAgdGhpcy5jb250ZXh0ID0gb3B0cy5jb250ZXh0O1xyXG4gIGlmICghdGhpcy5jb250ZXh0LnNldFRleHRBbGlnbikge1xyXG4gICAgdGhpcy5jb250ZXh0LnNldFN0cm9rZVN0eWxlID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdHJva2VTdHlsZSA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0TGluZVdpZHRoID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5saW5lV2lkdGggPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVDYXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxpbmVDYXAgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldEZvbnRTaXplID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb250ID0gZSArIFwicHggc2Fucy1zZXJpZlwiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldEZpbGxTdHlsZSA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsbFN0eWxlID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRUZXh0QWxpZ24gPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRleHRBbGlnbiA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuZHJhdyA9IGZ1bmN0aW9uKCkge31cclxuICB9XHJcbiAgLy/lhbzlrrlOVlVFc2V0TGluZURhc2hcclxuICBpZighdGhpcy5jb250ZXh0LnNldExpbmVEYXNoKXtcclxuICAgIHRoaXMuY29udGV4dC5zZXRMaW5lRGFzaCA9IGZ1bmN0aW9uKGUpIHt9XHJcbiAgfVxyXG4gIG9wdHMuY2hhcnREYXRhID0ge307XHJcbiAgdGhpcy51ZXZlbnQgPSBuZXcgdUNoYXJ0c0V2ZW50KCk7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICBjdXJyZW50T2Zmc2V0OiAwLFxyXG4gICAgc3RhcnRUb3VjaFg6IDAsXHJcbiAgICBkaXN0YW5jZTogMCxcclxuICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gIH07XHJcbiAgdGhpcy5vcHRzID0gb3B0cztcclxuICB0aGlzLmNvbmZpZyA9IGNvbmZpZyQkMTtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCBjb25maWckJDEsIHRoaXMuY29udGV4dCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS51cGRhdGVEYXRhID0gZnVuY3Rpb24oKSB7XHJcbiAgbGV0IGRhdGEgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xyXG4gIHRoaXMub3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCBkYXRhKTtcclxuICB0aGlzLm9wdHMudXBkYXRlRGF0YSA9IHRydWU7XHJcbiAgbGV0IHNjcm9sbFBvc2l0aW9uID0gZGF0YS5zY3JvbGxQb3NpdGlvbiB8fCAnY3VycmVudCc7XHJcbiAgc3dpdGNoIChzY3JvbGxQb3NpdGlvbikge1xyXG4gICAgY2FzZSAnY3VycmVudCc6XHJcbiAgICAgIHRoaXMub3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSAwO1xyXG4gICAgICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgICAgICBjdXJyZW50T2Zmc2V0OiAwLFxyXG4gICAgICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgbGV0IF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEodGhpcy5vcHRzLnNlcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KSwgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICAgICAgdGhpcy5jb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgICAgIGxldCBvZmZzZXRMZWZ0ID0gMDtcclxuICAgICAgbGV0IF9nZXRYQXhpc1BvaW50czAgPSBnZXRYQXhpc1BvaW50cyh0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZyksIHhBeGlzUG9pbnRzID0gX2dldFhBeGlzUG9pbnRzMC54QXhpc1BvaW50cyxcclxuICAgICAgICBzdGFydFggPSBfZ2V0WEF4aXNQb2ludHMwLnN0YXJ0WCxcclxuICAgICAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgICAgIGVhY2hTcGFjaW5nID0gX2dldFhBeGlzUG9pbnRzMC5lYWNoU3BhY2luZztcclxuICAgICAgbGV0IHRvdGFsV2lkdGggPSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICAgICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgICAgb2Zmc2V0TGVmdCA9IHNjcmVlbldpZHRoIC0gdG90YWxXaWR0aDtcclxuICAgICAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICAgICAgY3VycmVudE9mZnNldDogb2Zmc2V0TGVmdCxcclxuICAgICAgICBzdGFydFRvdWNoWDogb2Zmc2V0TGVmdCxcclxuICAgICAgICBkaXN0YW5jZTogMCxcclxuICAgICAgICBsYXN0TW92ZVRpbWU6IDBcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIHRoaXMub3B0cy50eXBlLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuem9vbSA9IGZ1bmN0aW9uKCkge1xyXG4gIHZhciB2YWwgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQ7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgIT09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdbdUNoYXJ0c10g6K+35ZCv55So5rua5Yqo5p2h5ZCO5L2/55SoJylcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgLy/lvZPliY3lsY/luZXkuK3pl7TngrlcclxuICBsZXQgY2VudGVyUG9pbnQgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQpIC8gdGhpcy5vcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZykgKyBNYXRoLnJvdW5kKHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQgLyAyKTtcclxuICB0aGlzLm9wdHMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgdGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudCA9IHZhbC5pdGVtQ291bnQ7XHJcbiAgLy/ph43mlrDorqHnrpd46L205YGP56e76Led56a7XHJcbiAgbGV0IF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEodGhpcy5vcHRzLnNlcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KSxcclxuICAgIHlBeGlzV2lkdGggPSBfY2FsWUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgdGhpcy5jb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gIGxldCBfZ2V0WEF4aXNQb2ludHMwID0gZ2V0WEF4aXNQb2ludHModGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cywgdGhpcy5jb25maWcpLFxyXG4gICAgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0gX2dldFhBeGlzUG9pbnRzMC5zdGFydFgsXHJcbiAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjZW50ZXJMZWZ0ID0gZWFjaFNwYWNpbmcgKiBjZW50ZXJQb2ludDtcclxuICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gIGxldCBNYXhMZWZ0ID0gc2NyZWVuV2lkdGggLSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLyAyIC0gY2VudGVyTGVmdDtcclxuICBpZiAob2Zmc2V0TGVmdCA+IDApIHtcclxuICAgIG9mZnNldExlZnQgPSAwO1xyXG4gIH1cclxuICBpZiAob2Zmc2V0TGVmdCA8IE1heExlZnQpIHtcclxuICAgIG9mZnNldExlZnQgPSBNYXhMZWZ0O1xyXG4gIH1cclxuICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgIGN1cnJlbnRPZmZzZXQ6IG9mZnNldExlZnQsXHJcbiAgICBzdGFydFRvdWNoWDogMCxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICBjYWxWYWxpZERpc3RhbmNlKHRoaXMsIG9mZnNldExlZnQsIHRoaXMub3B0cy5jaGFydERhdGEsIHRoaXMuY29uZmlnLCB0aGlzLm9wdHMpO1xyXG4gIHRoaXMub3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gb2Zmc2V0TGVmdDtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5kb2J1bGVab29tID0gZnVuY3Rpb24oZSkge1xyXG4gIGlmICh0aGlzLm9wdHMuZW5hYmxlU2Nyb2xsICE9PSB0cnVlKSB7XHJcbiAgICBjb25zb2xlLmxvZygnW3VDaGFydHNdIOivt+WQr+eUqOa7muWKqOadoeWQjuS9v+eUqCcpXHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnN0IHRjcyA9IGUuY2hhbmdlZFRvdWNoZXM7XHJcbiAgaWYgKHRjcy5sZW5ndGggPCAyKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGNzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICB0Y3NbaV0ueCA9IHRjc1tpXS54ID8gdGNzW2ldLnggOiB0Y3NbaV0uY2xpZW50WDtcclxuICAgIHRjc1tpXS55ID0gdGNzW2ldLnkgPyB0Y3NbaV0ueSA6IHRjc1tpXS5jbGllbnRZO1xyXG4gIH1cclxuICBjb25zdCBudGNzID0gW2dldFRvdWNoZXModGNzWzBdLCB0aGlzLm9wdHMsIGUpLGdldFRvdWNoZXModGNzWzFdLCB0aGlzLm9wdHMsIGUpXTsgXHJcbiAgY29uc3QgeGxlbmd0aCA9IE1hdGguYWJzKG50Y3NbMF0ueCAtIG50Y3NbMV0ueCk7XHJcbiAgLy8g6K6w5b2V5Yid5aeL55qE5Lik5oyH5LmL6Ze055qE5pWw5o2uXHJcbiAgaWYoIXRoaXMuc2Nyb2xsT3B0aW9uLm1vdmVDb3VudCl7XHJcbiAgICBsZXQgY3RzMCA9IHtjaGFuZ2VkVG91Y2hlczpbe3g6dGNzWzBdLngseTp0aGlzLm9wdHMuYXJlYVswXSAvIHRoaXMub3B0cy5waXggKyAyfV19O1xyXG4gICAgbGV0IGN0czEgPSB7Y2hhbmdlZFRvdWNoZXM6W3t4OnRjc1sxXS54LHk6dGhpcy5vcHRzLmFyZWFbMF0gLyB0aGlzLm9wdHMucGl4ICsgMn1dfTtcclxuICAgIGlmKHRoaXMub3B0cy5yb3RhdGUpe1xyXG4gICAgICBjdHMwID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0aGlzLm9wdHMuaGVpZ2h0IC8gdGhpcy5vcHRzLnBpeCAtIHRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCAtIDIseTp0Y3NbMF0ueX1dfTtcclxuICAgICAgY3RzMSA9IHtjaGFuZ2VkVG91Y2hlczpbe3g6dGhpcy5vcHRzLmhlaWdodCAvIHRoaXMub3B0cy5waXggLSB0aGlzLm9wdHMuYXJlYVswXSAvIHRoaXMub3B0cy5waXggLSAyLHk6dGNzWzFdLnl9XX07XHJcbiAgICB9XHJcbiAgICBjb25zdCBtb3ZlQ3VycmVudDEgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoY3RzMCkuaW5kZXg7XHJcbiAgICBjb25zdCBtb3ZlQ3VycmVudDIgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoY3RzMSkuaW5kZXg7XHJcbiAgICBjb25zdCBtb3ZlQ291bnQgPSBNYXRoLmFicyhtb3ZlQ3VycmVudDEgLSBtb3ZlQ3VycmVudDIpO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50ID0gbW92ZUNvdW50O1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubW92ZUN1cnJlbnQxID0gTWF0aC5taW4obW92ZUN1cnJlbnQxLCBtb3ZlQ3VycmVudDIpO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubW92ZUN1cnJlbnQyID0gTWF0aC5tYXgobW92ZUN1cnJlbnQxLCBtb3ZlQ3VycmVudDIpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBcclxuICBsZXQgY3VycmVudEVhY2hTcGFjaW5nID0geGxlbmd0aCAvIHRoaXMuc2Nyb2xsT3B0aW9uLm1vdmVDb3VudDtcclxuICBsZXQgaXRlbUNvdW50ID0gKHRoaXMub3B0cy53aWR0aCAtIHRoaXMub3B0cy5hcmVhWzFdIC0gdGhpcy5vcHRzLmFyZWFbM10pIC8gY3VycmVudEVhY2hTcGFjaW5nO1xyXG4gIGl0ZW1Db3VudCA9IGl0ZW1Db3VudCA8PSAyID8gMiA6IGl0ZW1Db3VudDtcclxuICBpdGVtQ291bnQgPSBpdGVtQ291bnQgPj0gdGhpcy5vcHRzLmNhdGVnb3JpZXMubGVuZ3RoID8gdGhpcy5vcHRzLmNhdGVnb3JpZXMubGVuZ3RoIDogaXRlbUNvdW50O1xyXG4gIHRoaXMub3B0cy5hbmltYXRpb24gPSBmYWxzZTtcclxuICB0aGlzLm9wdHMueEF4aXMuaXRlbUNvdW50ID0gaXRlbUNvdW50O1xyXG4gIC8vIOmHjeaWsOiuoeeul+a7muWKqOadoeWBj+enu+i3neemu1xyXG4gIGxldCBvZmZzZXRMZWZ0ID0gMDtcclxuICBsZXQgX2dldFhBeGlzUG9pbnRzMCA9IGdldFhBeGlzUG9pbnRzKHRoaXMub3B0cy5jYXRlZ29yaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnKSxcclxuICAgIHhBeGlzUG9pbnRzID0gX2dldFhBeGlzUG9pbnRzMC54QXhpc1BvaW50cyxcclxuICAgIHN0YXJ0WCA9IF9nZXRYQXhpc1BvaW50czAuc3RhcnRYLFxyXG4gICAgZW5kWCA9IF9nZXRYQXhpc1BvaW50czAuZW5kWCxcclxuICAgIGVhY2hTcGFjaW5nID0gX2dldFhBeGlzUG9pbnRzMC5lYWNoU3BhY2luZztcclxuICBsZXQgY3VycmVudExlZnQgPSBlYWNoU3BhY2luZyAqIHRoaXMuc2Nyb2xsT3B0aW9uLm1vdmVDdXJyZW50MTtcclxuICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gIGxldCBNYXhMZWZ0ID0gc2NyZWVuV2lkdGggLSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICBvZmZzZXRMZWZ0ID0gLWN1cnJlbnRMZWZ0K01hdGgubWluKG50Y3NbMF0ueCxudGNzWzFdLngpLXRoaXMub3B0cy5hcmVhWzNdLWVhY2hTcGFjaW5nO1xyXG4gIGlmIChvZmZzZXRMZWZ0ID4gMCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgfVxyXG4gIGlmIChvZmZzZXRMZWZ0IDwgTWF4TGVmdCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IE1heExlZnQ7XHJcbiAgfVxyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ9IG9mZnNldExlZnQ7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFg9IDA7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2U9MDtcclxuICBjYWxWYWxpZERpc3RhbmNlKHRoaXMsIG9mZnNldExlZnQsIHRoaXMub3B0cy5jaGFydERhdGEsIHRoaXMuY29uZmlnLCB0aGlzLm9wdHMpO1xyXG4gIHRoaXMub3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gb2Zmc2V0TGVmdDtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbn1cclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnN0b3BBbmltYXRpb24gPSBmdW5jdGlvbigpIHtcclxuICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlICYmIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2Uuc3RvcCgpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XHJcbiAgdGhpcy51ZXZlbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcik7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5kZWxFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSkge1xyXG4gIHRoaXMudWV2ZW50LmRlbEV2ZW50TGlzdGVuZXIodHlwZSk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5nZXRDdXJyZW50RGF0YUluZGV4ID0gZnVuY3Rpb24oZSkge1xyXG4gIHZhciB0b3VjaGVzID0gbnVsbDtcclxuICBpZiAoZS5jaGFuZ2VkVG91Y2hlcykge1xyXG4gICAgdG91Y2hlcyA9IGUuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfSBlbHNlIHtcclxuICAgIHRvdWNoZXMgPSBlLm1wLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH1cclxuICBpZiAodG91Y2hlcykge1xyXG4gICAgbGV0IF90b3VjaGVzJCA9IGdldFRvdWNoZXModG91Y2hlcywgdGhpcy5vcHRzLCBlKTtcclxuICAgIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3BpZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyaW5nJykge1xyXG4gICAgICByZXR1cm4gZmluZFBpZUNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLnBpZURhdGEsIHRoaXMub3B0cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAncm9zZScpIHtcclxuICAgICAgcmV0dXJuIGZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucGllRGF0YSwgdGhpcy5vcHRzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyYWRhcicpIHtcclxuICAgICAgcmV0dXJuIGZpbmRSYWRhckNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLnJhZGFyRGF0YSwgdGhpcy5vcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdmdW5uZWwnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kRnVubmVsQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEuZnVubmVsRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbWFwJykge1xyXG4gICAgICByZXR1cm4gZmluZE1hcENoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3dvcmQnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kV29yZENoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2JhcicpIHtcclxuICAgICAgcmV0dXJuIGZpbmRCYXJDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIE1hdGguYWJzKHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmaW5kQ3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmNhbFBvaW50cywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gLTE7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5nZXRMZWdlbmREYXRhSW5kZXggPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICBsZXQgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgcmV0dXJuIGZpbmRMZWdlbmRJbmRleCh7XHJcbiAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5sZWdlbmREYXRhKTtcclxuICB9XHJcbiAgcmV0dXJuIC0xO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUudG91Y2hMZWdlbmQgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICB2YXIgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgdmFyIGluZGV4ID0gdGhpcy5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICBpZiAodGhpcy5vcHRzLnR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgICAgICB0aGlzLm9wdHMuc2VyaWVzTUFbaW5kZXhdLnNob3cgPSAhdGhpcy5vcHRzLnNlcmllc01BW2luZGV4XS5zaG93O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub3B0cy5zZXJpZXNbaW5kZXhdLnNob3cgPSAhdGhpcy5vcHRzLnNlcmllc1tpbmRleF0uc2hvdztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9wdHMuYW5pbWF0aW9uID0gb3B0aW9uLmFuaW1hdGlvbiA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnNob3dUb29sVGlwID0gZnVuY3Rpb24oZSkge1xyXG4gIHZhciBvcHRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xyXG4gIHZhciB0b3VjaGVzID0gbnVsbDtcclxuICBpZiAoZS5jaGFuZ2VkVG91Y2hlcykge1xyXG4gICAgdG91Y2hlcyA9IGUuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfSBlbHNlIHtcclxuICAgIHRvdWNoZXMgPSBlLm1wLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH1cclxuICBpZiAoIXRvdWNoZXMpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiW3VDaGFydHNdIOacquiOt+WPluWIsGV2ZW505Z2Q5qCH5L+h5oGvXCIpO1xyXG4gIH1cclxuICB2YXIgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gIH0pO1xyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2xpbmUnIHx8IHRoaXMub3B0cy50eXBlID09PSAnYXJlYScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdjb2x1bW4nIHx8IHRoaXMub3B0cy50eXBlID09PSAnc2NhdHRlcicgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdidWJibGUnKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEgfHwgaW5kZXgubGVuZ3RoPjApIHtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCwgY3VycmVudC5ncm91cCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0VG9vbFRpcERhdGEgPSBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCBjdXJyZW50Lmdyb3VwLCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbW91bnQnKSB7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpLmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge2FuaW1hdGlvbjogZmFsc2V9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBhc3NpZ24oe30sIG9wdHMuX3Nlcmllc19baW5kZXhdKTtcclxuICAgICAgdmFyIHRleHRMaXN0ID0gW3tcclxuICAgICAgICB0ZXh0OiBvcHRpb24uZm9ybWF0dGVyID8gb3B0aW9uLmZvcm1hdHRlcihzZXJpZXNEYXRhLCB1bmRlZmluZWQsIGluZGV4LCBvcHRzKSA6IHNlcmllc0RhdGEubmFtZSArICc6ICcgKyBzZXJpZXNEYXRhLmRhdGEsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3JcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzW2luZGV4XS54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gY3VycmVudC5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xIHx8IGluZGV4Lmxlbmd0aD4wKSB7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgsIGN1cnJlbnQuZ3JvdXApO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldFRvb2xUaXBEYXRhID0gZ2V0VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgdGhpcy5vcHRzLCBpbmRleCwgY3VycmVudC5ncm91cCwgdGhpcy5vcHRzLmNhdGVnb3JpZXMsIG9wdGlvbiksXHJcbiAgICAgICAgICB0ZXh0TGlzdCA9IF9nZXRUb29sVGlwRGF0YS50ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldCA9IF9nZXRUb29sVGlwRGF0YS5vZmZzZXQ7XHJcbiAgICAgICAgb2Zmc2V0LnggPSBfdG91Y2hlcyQueDtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21peCcpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgY3VycmVudE9mZnNldCA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldE1peFRvb2xUaXBEYXRhID0gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgdGhpcy5vcHRzLCBpbmRleCwgdGhpcy5vcHRzLmNhdGVnb3JpZXMsIG9wdGlvbiksXHJcbiAgICAgICAgICB0ZXh0TGlzdCA9IF9nZXRNaXhUb29sVGlwRGF0YS50ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldCA9IF9nZXRNaXhUb29sVGlwRGF0YS5vZmZzZXQ7XHJcbiAgICAgICAgb2Zmc2V0LnkgPSBfdG91Y2hlcyQueTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdjYW5kbGUnKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICAgICAgX3Njcm9sbERpc3RhbmNlXzogY3VycmVudE9mZnNldCxcclxuICAgICAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4KTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldENhbmRsZVRvb2xUaXBEYXRhKHRoaXMub3B0cy5zZXJpZXNbMF0uZGF0YSwgc2VyaWVzRGF0YSwgdGhpcy5vcHRzLCBpbmRleCwgdGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cy5leHRyYS5jYW5kbGUsIG9wdGlvbiksXHJcbiAgICAgICAgICB0ZXh0TGlzdCA9IF9nZXRUb29sVGlwRGF0YS50ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldCA9IF9nZXRUb29sVGlwRGF0YS5vZmZzZXQ7XHJcbiAgICAgICAgb2Zmc2V0LnkgPSBfdG91Y2hlcyQueTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdwaWUnIHx8IHRoaXMub3B0cy50eXBlID09PSAncmluZycgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgb3B0cy5fc2VyaWVzX1tpbmRleF0pO1xyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIG9wdHMpIDogc2VyaWVzRGF0YS5uYW1lICsgJzogJyArIHNlcmllc0RhdGEuZGF0YSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtYXAnKSB7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpIDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge2FuaW1hdGlvbjogZmFsc2V9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBhc3NpZ24oe30sIHRoaXMub3B0cy5zZXJpZXNbaW5kZXhdKTtcclxuICAgICAgc2VyaWVzRGF0YS5uYW1lID0gc2VyaWVzRGF0YS5wcm9wZXJ0aWVzLm5hbWVcclxuICAgICAgdmFyIHRleHRMaXN0ID0gW3tcclxuICAgICAgICB0ZXh0OiBvcHRpb24uZm9ybWF0dGVyID8gb3B0aW9uLmZvcm1hdHRlcihzZXJpZXNEYXRhLCB1bmRlZmluZWQsIGluZGV4LCB0aGlzLm9wdHMpIDogc2VyaWVzRGF0YS5uYW1lLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yXHJcbiAgICAgIH1dO1xyXG4gICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgb3B0cy51cGRhdGVEYXRhID0gZmFsc2U7XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnd29yZCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0pO1xyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIHRoaXMub3B0cykgOiBzZXJpZXNEYXRhLm5hbWUsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3JcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvcHRzLnVwZGF0ZURhdGEgPSBmYWxzZTtcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyYWRhcicpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4KTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIHRleHRMaXN0ID0gc2VyaWVzRGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIHRoaXMub3B0cy5jYXRlZ29yaWVzW2luZGV4XSwgaW5kZXgsIHRoaXMub3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICAgICAgICBjb2xvcjogaXRlbS5jb2xvclxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50cmFuc2xhdGUgPSBmdW5jdGlvbihkaXN0YW5jZSkge1xyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogZGlzdGFuY2UsXHJcbiAgICBzdGFydFRvdWNoWDogZGlzdGFuY2UsXHJcbiAgICBkaXN0YW5jZTogMCxcclxuICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gIH07XHJcbiAgbGV0IG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge1xyXG4gICAgX3Njcm9sbERpc3RhbmNlXzogZGlzdGFuY2UsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIHRoaXMub3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnNjcm9sbFN0YXJ0ID0gZnVuY3Rpb24oZSkge1xyXG4gIHZhciB0b3VjaGVzID0gbnVsbDtcclxuICBpZiAoZS5jaGFuZ2VkVG91Y2hlcykge1xyXG4gICAgdG91Y2hlcyA9IGUuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfSBlbHNlIHtcclxuICAgIHRvdWNoZXMgPSBlLm1wLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH1cclxuICB2YXIgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gIGlmICh0b3VjaGVzICYmIHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYID0gX3RvdWNoZXMkLng7XHJcbiAgfVxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsID0gZnVuY3Rpb24oZSkge1xyXG4gIGlmICh0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPT09IDApIHtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9IERhdGUubm93KCk7XHJcbiAgfVxyXG4gIGxldCBMaW1pdCA9IHRoaXMub3B0cy50b3VjaE1vdmVMaW1pdCB8fCA2MDtcclxuICBsZXQgY3Vyck1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICBsZXQgZHVyYXRpb24gPSBjdXJyTW92ZVRpbWUgLSB0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWU7XHJcbiAgaWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gTGltaXQpKSByZXR1cm47XHJcbiAgaWYgKHRoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYID09IDApIHJldHVybjtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzICYmIHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgX2Rpc3RhbmNlO1xyXG4gICAgX2Rpc3RhbmNlID0gX3RvdWNoZXMkLnggLSB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWDtcclxuICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgIHZhciB2YWxpZERpc3RhbmNlID0gY2FsVmFsaWREaXN0YW5jZSh0aGlzLCBjdXJyZW50T2Zmc2V0ICsgX2Rpc3RhbmNlLCB0aGlzLm9wdHMuY2hhcnREYXRhLCB0aGlzLmNvbmZpZywgdGhpcy5vcHRzKTtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmRpc3RhbmNlID0gX2Rpc3RhbmNlID0gdmFsaWREaXN0YW5jZSAtIGN1cnJlbnRPZmZzZXQ7XHJcbiAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2UsXHJcbiAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgIH0pO1xyXG5cdFx0dGhpcy5vcHRzID0gb3B0cztcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2U7XHJcbiAgfVxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsRW5kID0gZnVuY3Rpb24oZSkge1xyXG4gIGlmICh0aGlzLm9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICB2YXIgX3Njcm9sbE9wdGlvbiA9IHRoaXMuc2Nyb2xsT3B0aW9uLFxyXG4gICAgICBjdXJyZW50T2Zmc2V0ID0gX3Njcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0LFxyXG4gICAgICBkaXN0YW5jZSA9IF9zY3JvbGxPcHRpb24uZGlzdGFuY2U7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGRpc3RhbmNlO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSAwO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50ID0gMDtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCB1Q2hhcnRzOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///126\n"); /***/ }), /* 127 */ /*!**********************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js ***! \**********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\n//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改\nvar formatDateTime = function formatDateTime(timeStamp, returnType) {\n var date = new Date();\n date.setTime(timeStamp * 1000);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n var d = date.getDate();\n d = d < 10 ? '0' + d : d;\n var h = date.getHours();\n h = h < 10 ? '0' + h : h;\n var minute = date.getMinutes();\n var second = date.getSeconds();\n minute = minute < 10 ? '0' + minute : minute;\n second = second < 10 ? '0' + second : second;\n if (returnType == 'full') {\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\n }\n if (returnType == 'y-m-d') {\n return y + '-' + m + '-' + d;\n }\n if (returnType == 'h:m') {\n return h + ':' + minute;\n }\n if (returnType == 'h:m:s') {\n return h + ':' + minute + ':' + second;\n }\n return [y, m, d, h, minute, second];\n};\nvar cfu = {\n //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\n \"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"tline\", \"tarea\", \"scatter\", \"bubble\", \"demotype\"],\n \"range\": [\"饼状图\", \"圆环图\", \"玫瑰图\", \"词云图\", \"漏斗图\", \"地图\", \"圆弧进度条\", \"折线图\", \"柱状图\", \"山峰图\", \"条状图\", \"区域图\", \"雷达图\", \"仪表盘\", \"K线图\", \"混合图\", \"时间轴折线\", \"时间轴区域\", \"散点图\", \"气泡图\", \"自定义类型\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的\"demotype\"\n //自定义类型时需要注意\"tline\",\"tarea\",\"scatter\",\"bubble\"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories\n \"categories\": [\"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"demotype\"],\n //instance为实例变量承载属性,不要删除\n \"instance\": {},\n //option为opts及eopts承载属性,不要删除\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"yAxisDemo1\": function yAxisDemo1(val, index, opts) {\n return val + '元';\n },\n \"yAxisDemo2\": function yAxisDemo2(val, index, opts) {\n return val.toFixed(2);\n },\n \"xAxisDemo1\": function xAxisDemo1(val, index, opts) {\n return val + '年';\n },\n \"xAxisDemo2\": function xAxisDemo2(val, index, opts) {\n return formatDateTime(val, 'h:m');\n },\n \"seriesDemo1\": function seriesDemo1(val, index, series, opts) {\n return val + '元';\n },\n \"tooltipDemo1\": function tooltipDemo1(item, category, index, opts) {\n if (index == 0) {\n return '随便用' + item.data + '年';\n } else {\n return '其他我没改' + item.data + '天';\n }\n },\n \"pieDemo\": function pieDemo(val, index, series, opts) {\n if (index !== undefined) {\n return series[index].name + ':' + series[index].data + '元';\n }\n }\n },\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。\n \"demotype\": {\n //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2\n }\n }\n },\n //下面是自定义配置,请添加项目所需的通用配置\n \"pie\": {\n \"type\": \"pie\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"extra\": {\n \"pie\": {\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"ring\": {\n \"type\": \"ring\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"rotate\": false,\n \"dataLabel\": true,\n \"legend\": {\n \"show\": true,\n \"position\": \"right\",\n \"lineHeight\": 25\n },\n \"title\": {\n \"name\": \"收益率\",\n \"fontSize\": 15,\n \"color\": \"#666666\"\n },\n \"subtitle\": {\n \"name\": \"70%\",\n \"fontSize\": 25,\n \"color\": \"#7cb5ec\"\n },\n \"extra\": {\n \"ring\": {\n \"ringWidth\": 50,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"rose\": {\n \"type\": \"rose\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"legend\": {\n \"show\": true,\n \"position\": \"left\",\n \"lineHeight\": 25\n },\n \"extra\": {\n \"rose\": {\n \"type\": \"area\",\n \"minRadius\": 50,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": false,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"word\": {\n \"type\": \"word\",\n \"color\": color,\n \"extra\": {\n \"word\": {\n \"type\": \"normal\",\n \"autoColors\": false\n }\n }\n },\n \"funnel\": {\n \"type\": \"funnel\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"extra\": {\n \"funnel\": {\n \"activeOpacity\": 0.3,\n \"activeWidth\": 10,\n \"border\": true,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\",\n \"fillOpacity\": 1,\n \"labelAlign\": \"right\"\n }\n }\n },\n \"map\": {\n \"type\": \"map\",\n \"color\": color,\n \"padding\": [0, 0, 0, 0],\n \"dataLabel\": true,\n \"extra\": {\n \"map\": {\n \"border\": true,\n \"borderWidth\": 1,\n \"borderColor\": \"#666666\",\n \"fillOpacity\": 0.6,\n \"activeBorderColor\": \"#F04864\",\n \"activeFillColor\": \"#FACC14\",\n \"activeFillOpacity\": 1\n }\n }\n },\n \"arcbar\": {\n \"type\": \"arcbar\",\n \"color\": color,\n \"title\": {\n \"name\": \"百分比\",\n \"fontSize\": 25,\n \"color\": \"#00FF00\"\n },\n \"subtitle\": {\n \"name\": \"默认标题\",\n \"fontSize\": 15,\n \"color\": \"#666666\"\n },\n \"extra\": {\n \"arcbar\": {\n \"type\": \"default\",\n \"width\": 12,\n \"backgroundColor\": \"#E9E9E9\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"gap\": 2\n }\n }\n },\n \"line\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"straight\",\n \"width\": 2\n }\n }\n },\n \"tline\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"boundaryGap\": \"justify\"\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [{\n \"min\": 0,\n \"max\": 80\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2\n }\n }\n },\n \"tarea\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true,\n \"boundaryGap\": \"justify\"\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [{\n \"min\": 0,\n \"max\": 80\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"area\": {\n \"type\": \"curve\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": true\n }\n }\n },\n \"column\": {\n \"type\": \"column\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"data\": [{\n \"min\": 0\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"column\": {\n \"type\": \"group\",\n \"width\": 30,\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08\n }\n }\n },\n \"mount\": {\n \"type\": \"mount\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"data\": [{\n \"min\": 0\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"mount\": {\n \"type\": \"mount\",\n \"widthRatio\": 1.5\n }\n }\n },\n \"bar\": {\n \"type\": \"bar\",\n \"color\": color,\n \"padding\": [15, 30, 0, 5],\n \"xAxis\": {\n \"boundaryGap\": \"justify\",\n \"disableGrid\": false,\n \"min\": 0,\n \"axisLine\": false\n },\n \"yAxis\": {},\n \"legend\": {},\n \"extra\": {\n \"bar\": {\n \"type\": \"group\",\n \"width\": 30,\n \"meterBorde\": 1,\n \"meterFillColor\": \"#FFFFFF\",\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08\n }\n }\n },\n \"area\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"area\": {\n \"type\": \"straight\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": false\n }\n }\n },\n \"radar\": {\n \"type\": \"radar\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"dataLabel\": false,\n \"legend\": {\n \"show\": true,\n \"position\": \"right\",\n \"lineHeight\": 25\n },\n \"extra\": {\n \"radar\": {\n \"gridType\": \"radar\",\n \"gridColor\": \"#CCCCCC\",\n \"gridCount\": 3,\n \"opacity\": 0.2,\n \"max\": 200\n }\n }\n },\n \"gauge\": {\n \"type\": \"gauge\",\n \"color\": color,\n \"title\": {\n \"name\": \"66Km/H\",\n \"fontSize\": 25,\n \"color\": \"#2fc25b\",\n \"offsetY\": 50\n },\n \"subtitle\": {\n \"name\": \"实时速度\",\n \"fontSize\": 15,\n \"color\": \"#1890ff\",\n \"offsetY\": -50\n },\n \"extra\": {\n \"gauge\": {\n \"type\": \"default\",\n \"width\": 30,\n \"labelColor\": \"#666666\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"startNumber\": 0,\n \"endNumber\": 100,\n \"labelFormat\": \"\",\n \"splitLine\": {\n \"fixRadius\": 0,\n \"splitNumber\": 10,\n \"width\": 30,\n \"color\": \"#FFFFFF\",\n \"childNumber\": 5,\n \"childWidth\": 12\n },\n \"pointer\": {\n \"width\": 24,\n \"color\": \"auto\"\n }\n }\n }\n },\n \"candle\": {\n \"type\": \"candle\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"enableScroll\": true,\n \"enableMarkLine\": true,\n \"dataLabel\": false,\n \"xAxis\": {\n \"labelCount\": 4,\n \"itemCount\": 40,\n \"disableGrid\": true,\n \"gridColor\": \"#CCCCCC\",\n \"gridType\": \"solid\",\n \"dashLength\": 4,\n \"scrollShow\": true,\n \"scrollAlign\": \"left\",\n \"scrollColor\": \"#A6A6A6\",\n \"scrollBackgroundColor\": \"#EFEBEF\"\n },\n \"yAxis\": {},\n \"legend\": {},\n \"extra\": {\n \"candle\": {\n \"color\": {\n \"upLine\": \"#f04864\",\n \"upFill\": \"#f04864\",\n \"downLine\": \"#2fc25b\",\n \"downFill\": \"#2fc25b\"\n },\n \"average\": {\n \"show\": true,\n \"name\": [\"MA5\", \"MA10\", \"MA30\"],\n \"day\": [5, 10, 20],\n \"color\": [\"#1890ff\", \"#2fc25b\", \"#facc14\"]\n }\n },\n \"markLine\": {\n \"type\": \"dash\",\n \"dashLength\": 5,\n \"data\": [{\n \"value\": 2150,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true\n }, {\n \"value\": 2350,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true\n }]\n }\n }\n },\n \"mix\": {\n \"type\": \"mix\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"disabled\": false,\n \"disableGrid\": false,\n \"splitNumber\": 5,\n \"gridType\": \"dash\",\n \"dashLength\": 4,\n \"gridColor\": \"#CCCCCC\",\n \"padding\": 10,\n \"showTitle\": true,\n \"data\": []\n },\n \"legend\": {},\n \"extra\": {\n \"mix\": {\n \"column\": {\n \"width\": 20\n }\n }\n }\n },\n \"scatter\": {\n \"type\": \"scatter\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"dataLabel\": false,\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0\n },\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\"\n },\n \"legend\": {},\n \"extra\": {\n \"scatter\": {}\n }\n },\n \"bubble\": {\n \"type\": \"bubble\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0,\n \"max\": 250\n },\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"data\": [{\n \"min\": 0,\n \"max\": 150\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"bubble\": {\n \"border\": 2,\n \"opacity\": 0.5\n }\n }\n }\n};\nvar _default = cfu;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJmb3JtYXREYXRlVGltZSIsInRpbWVTdGFtcCIsInJldHVyblR5cGUiLCJkYXRlIiwiRGF0ZSIsInNldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsIm1pbnV0ZSIsImdldE1pbnV0ZXMiLCJzZWNvbmQiLCJnZXRTZWNvbmRzIiwiY2Z1IiwidmFsIiwiaW5kZXgiLCJvcHRzIiwidG9GaXhlZCIsInNlcmllcyIsIml0ZW0iLCJjYXRlZ29yeSIsImRhdGEiLCJ1bmRlZmluZWQiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBTUEsS0FBSyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7O0FBRWpIO0FBQ0EsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjLENBQUlDLFNBQVMsRUFBRUMsVUFBVSxFQUFHO0VBQzlDLElBQUlDLElBQUksR0FBRyxJQUFJQyxJQUFJLEVBQUU7RUFDckJELElBQUksQ0FBQ0UsT0FBTyxDQUFDSixTQUFTLEdBQUcsSUFBSSxDQUFDO0VBQzlCLElBQUlLLENBQUMsR0FBR0gsSUFBSSxDQUFDSSxXQUFXLEVBQUU7RUFDMUIsSUFBSUMsQ0FBQyxHQUFHTCxJQUFJLENBQUNNLFFBQVEsRUFBRSxHQUFHLENBQUM7RUFDM0JELENBQUMsR0FBR0EsQ0FBQyxHQUFHLEVBQUUsR0FBSSxHQUFH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RTtNQUNkO0lBQ0Q7RUFDSDtBQUNELENBQUM7QUFBQSxlQUVjbUIsR0FBRztBQUFBIiwiZmlsZSI6IjEyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjDvvInjgIFWdWXjgIFUYXJv562J5pSv5oyBY2FudmFz55qE5qGG5p625bmz5Y+wXHJcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbi8vIOS4u+mimOminOiJsumFjee9ru+8muWmguavj+S4quWbvuihqOexu+Wei+mcgOimgeS4jeWQjOS4u+mimO+8jOivt+WcqOWvueW6lOWbvuihqOexu+Wei+S4iuabtOaUuWNvbG9y5bGe5oCnXHJcbmNvbnN0IGNvbG9yID0gWycjMTg5MEZGJywgJyM5MUNCNzQnLCAnI0ZBQzg1OCcsICcjRUU2NjY2JywgJyM3M0MwREUnLCAnIzNDQTI3MicsICcjRkM4NDUyJywgJyM5QTYwQjQnLCAnI2VhN2NjYyddO1xyXG5cclxuLy/kuovku7bovazmjaLlh73mlbDvvIzkuLvopoHnlKjkvZzmoLzlvI/ljJZ46L205Li65pe26Ze06L2077yM5qC55o2u6ZyA5rGC6Ieq6KGM5L+u5pS5XHJcbmNvbnN0IGZvcm1hdERhdGVUaW1lID0gKHRpbWVTdGFtcCwgcmV0dXJuVHlwZSk9PntcclxuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgZGF0ZS5zZXRUaW1lKHRpbWVTdGFtcCAqIDEwMDApO1xyXG4gIHZhciB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gIHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICBtID0gbSA8IDEwID8gKCcwJyArIG0pIDogbTtcclxuICB2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gIGQgPSBkIDwgMTAgPyAoJzAnICsgZCkgOiBkO1xyXG4gIHZhciBoID0gZGF0ZS5nZXRIb3VycygpO1xyXG4gIGggPSBoIDwgMTAgPyAoJzAnICsgaCkgOiBoO1xyXG4gIHZhciBtaW51dGUgPSBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICB2YXIgc2Vjb25kID0gZGF0ZS5nZXRTZWNvbmRzKCk7XHJcbiAgbWludXRlID0gbWludXRlIDwgMTAgPyAoJzAnICsgbWludXRlKSA6IG1pbnV0ZTtcclxuICBzZWNvbmQgPSBzZWNvbmQgPCAxMCA/ICgnMCcgKyBzZWNvbmQpIDogc2Vjb25kO1xyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2Z1bGwnKXtyZXR1cm4geSArICctJyArIG0gKyAnLScgKyBkICsgJyAnKyBoICsnOicgKyBtaW51dGUgKyAnOicgKyBzZWNvbmQ7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ3ktbS1kJyl7cmV0dXJuIHkgKyAnLScgKyBtICsgJy0nICsgZDt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnaDptJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGU7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2g6bTpzJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGUgKyc6JyArIHNlY29uZDt9XHJcbiAgcmV0dXJuIFt5LCBtLCBkLCBoLCBtaW51dGUsIHNlY29uZF07XHJcbn1cclxuXHJcbmNvbnN0IGNmdSA9IHtcclxuICAvL2RlbW90eXBl5Li66Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5LiA6Iis5LiN6ZyA6KaB6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5Y+q6ZyA6KaB5pS55qC56IqC54K55LiK5a+55bqU55qE57G75Z6L5Y2z5Y+vXHJcblx0XCJ0eXBlXCI6W1wicGllXCIsXCJyaW5nXCIsXCJyb3NlXCIsXCJ3b3JkXCIsXCJmdW5uZWxcIixcIm1hcFwiLFwiYXJjYmFyXCIsXCJsaW5lXCIsXCJjb2x1bW5cIixcIm1vdW50XCIsXCJiYXJcIixcImFyZWFcIixcInJhZGFyXCIsXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJtaXhcIixcInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCIsXCJkZW1vdHlwZVwiXSxcclxuXHRcInJhbmdlXCI6W1wi6aW854q25Zu+XCIsXCLlnIbnjq/lm75cIixcIueOq+eRsOWbvlwiLFwi6K+N5LqR5Zu+XCIsXCLmvI/mlpflm75cIixcIuWcsOWbvlwiLFwi5ZyG5byn6L+b5bqm5p2hXCIsXCLmipjnur/lm75cIixcIuafseeKtuWbvlwiLFwi5bGx5bOw5Zu+XCIsXCLmnaHnirblm75cIixcIuWMuuWfn+WbvlwiLFwi6Zu36L6+5Zu+XCIsXCLku6rooajnm5hcIixcIkvnur/lm75cIixcIua3t+WQiOWbvlwiLFwi5pe26Ze06L205oqY57q/XCIsXCLml7bpl7TovbTljLrln59cIixcIuaVo+eCueWbvlwiLFwi5rCU5rOh5Zu+XCIsXCLoh6rlrprkuYnnsbvlnotcIl0sXHJcbiAgLy/lop7liqDoh6rlrprkuYnlm77ooajnsbvlnovvvIzlpoLmnpzpnIDopoFjYXRlZ29yaWVz77yM6K+35Zyo6L+Z6YeM5Yqg5YWl5oKo55qE5Zu+6KGo57G75Z6L77yM5L6L5aaC5pyA5ZCO55qEXCJkZW1vdHlwZVwiXHJcbiAgLy/oh6rlrprkuYnnsbvlnovml7bpnIDopoHms6jmhI9cInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCLnrYnml7bpl7TovbTvvIjnn6Lph4946L2077yJ57G75Zu+6KGo77yM5rKh5pyJY2F0ZWdvcmllc++8jOS4jemcgOimgeWKoOWFpWNhdGVnb3JpZXNcclxuXHRcImNhdGVnb3JpZXNcIjpbXCJsaW5lXCIsXCJjb2x1bW5cIixcIm1vdW50XCIsXCJiYXJcIixcImFyZWFcIixcInJhZGFyXCIsXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJtaXhcIixcImRlbW90eXBlXCJdLFxyXG4gIC8vaW5zdGFuY2XkuLrlrp7kvovlj5jph4/mib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuICBcImluc3RhbmNlXCI6e30sXHJcbiAgLy9vcHRpb27kuLpvcHRz5Y+KZW9wdHPmib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuICBcIm9wdGlvblwiOnt9LFxyXG4gIC8v5LiL6Z2i5piv6Ieq5a6a5LmJZm9ybWF06YWN572u77yM5Zug6ZmkSDXnq6/lpJbnmoTlhbbku5bnq6/ml6Dms5XpgJrov4dwcm9wc+S8oOmAkuWHveaVsO+8jOWPquiDvemAmui/h+atpOWxnuaAp+WvueW6lOS4i+agh+eahOaWueW8j+adpeabv+aNolxyXG4gIFwiZm9ybWF0dGVyXCI6e1xyXG4gICAgXCJ5QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInlBeGlzRGVtbzJcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gdmFsLnRvRml4ZWQoMil9LFxyXG4gICAgXCJ4QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIHZhbCsn5bm0Jzt9LFxyXG4gICAgXCJ4QXhpc0RlbW8yXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIGZvcm1hdERhdGVUaW1lKHZhbCwnaDptJyl9LFxyXG4gICAgXCJzZXJpZXNEZW1vMVwiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcywgb3B0cyl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInRvb2x0aXBEZW1vMVwiOmZ1bmN0aW9uKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4PT0wKXtcclxuICAgICAgXHRyZXR1cm4gJ+maj+S+v+eUqCcraXRlbS5kYXRhKyflubQnXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICBcdHJldHVybiAn5YW25LuW5oiR5rKh5pS5JytpdGVtLmRhdGErJ+WkqSdcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIFwicGllRGVtb1wiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcywgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4ICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIHJldHVybiBzZXJpZXNbaW5kZXhdLm5hbWUrJ++8micrc2VyaWVzW2luZGV4XS5kYXRhKyflhYMnXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhvcHRz5Y+C5pWw77yM5Lya5bCGZGVtb3R5cGXkuI5vcHRz5Litb3B0aW9u5ZCI5bm25ZCO5riy5p+T5Zu+6KGo44CCXHJcbiAgXCJkZW1vdHlwZVwiOntcclxuICAgIC8v5oiR6L+Z6YeM5oqK5puy57q/5Zu+5b2T5YGa5LqG6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5oKo5Y+v5Lul5qC55o2u6ZyA6KaB6ZqP5oSP5oyH5a6a57G75Z6L5oiW6YWN572uXHJcbiAgICBcInR5cGVcIjogXCJsaW5lXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gICAgXCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICAgIFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJsaW5lXCI6IHtcclxuICAgIFx0XHRcInR5cGVcIjogXCJjdXJ2ZVwiLFxyXG4gICAgXHRcdFwid2lkdGhcIjogMlxyXG4gICAgXHR9LFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYnphY3nva7vvIzor7fmt7vliqDpobnnm67miYDpnIDnmoTpgJrnlKjphY3nva5cclxuXHRcInBpZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInBpZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJwaWVcIjoge1xyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjUsXHJcblx0XHRcdFx0XCJhY3RpdmVSYWRpdXNcIjogMTAsXHJcblx0XHRcdFx0XCJvZmZzZXRBbmdsZVwiOiAwLFxyXG5cdFx0XHRcdFwibGFiZWxXaWR0aFwiOiAxNSxcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMyxcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInJpbmdcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyaW5nXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwicm90YXRlXCI6IGZhbHNlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuaUtuebiueOh1wiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzY2NjY2NlwiXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIjcwJVwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDI1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzdjYjVlY1wiXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmluZ1wiOiB7XHJcblx0XHRcdFx0XCJyaW5nV2lkdGhcIjo1MCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDMsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicm9zZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInJvc2VcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJwb3NpdGlvblwiOiBcImxlZnRcIixcclxuICAgICAgXCJsaW5lSGVpZ2h0XCI6IDI1LFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInJvc2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImFyZWFcIixcclxuXHRcdFx0XHRcIm1pblJhZGl1c1wiOiA1MCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogZmFsc2UsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwid29yZFwiOntcclxuXHRcdFwidHlwZVwiOiBcIndvcmRcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJ3b3JkXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJub3JtYWxcIixcclxuXHRcdFx0XHRcImF1dG9Db2xvcnNcIjogZmFsc2VcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjp7XHJcblx0XHRcInR5cGVcIjogXCJmdW5uZWxcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZnVubmVsXCI6IHtcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC4zLFxyXG5cdFx0XHRcdFwiYWN0aXZlV2lkdGhcIjogMTAsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDIsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDEsXHJcblx0XHRcdFx0XCJsYWJlbEFsaWduXCI6IFwicmlnaHRcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtYXBcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtYXBcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzAsMCwwLDBdLFxyXG4gICAgXCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1hcFwiOiB7XHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDEsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDAuNixcclxuXHRcdFx0XHRcImFjdGl2ZUJvcmRlckNvbG9yXCI6IFwiI0YwNDg2NFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbENvbG9yXCI6IFwiI0ZBQ0MxNFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbE9wYWNpdHlcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJhcmNiYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmNiYXJcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi55m+5YiG5q+UXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjMDBGRjAwXCJcclxuXHRcdH0sXHJcblx0XHRcInN1YnRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi6buY6K6k5qCH6aKYXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMTUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjNjY2NjY2XCJcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmNiYXJcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDEyLFxyXG5cdFx0XHRcdFwiYmFja2dyb3VuZENvbG9yXCI6IFwiI0U5RTlFOVwiLFxyXG5cdFx0XHRcdFwic3RhcnRBbmdsZVwiOiAwLjc1LFxyXG5cdFx0XHRcdFwiZW5kQW5nbGVcIjogMC4yNSxcclxuXHRcdFx0XHRcImdhcFwiOiAyXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibGluZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImxpbmVcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcInN0cmFpZ2h0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuICBcInRsaW5lXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwibGluZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTAsMCwxNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuICAgICAgXCJkYXRhXCI6W1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwibWluXCI6MCxcclxuICAgICAgICAgIFwibWF4XCI6ODBcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibGluZVwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwiY3VydmVcIixcclxuICBcdFx0XHRcIndpZHRoXCI6IDJcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwidGFyZWFcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJhcmVhXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICAgIFwiZGF0YVwiOltcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgICBcIm1heFwiOjgwXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcImFyZWFcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgXHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuICBcdFx0XHRcImFkZExpbmVcIjogdHJ1ZSxcclxuICBcdFx0XHRcIndpZHRoXCI6IDIsXHJcbiAgXHRcdFx0XCJncmFkaWVudFwiOiB0cnVlXHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImNvbHVtblwiOntcclxuXHRcdFwidHlwZVwiOiBcImNvbHVtblwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiY29sdW1uXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJncm91cFwiLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMzAsXHJcblx0XHRcdFx0XCJhY3RpdmVCZ0NvbG9yXCI6IFwiIzAwMDAwMFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlQmdPcGFjaXR5XCI6IDAuMDhcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG4gIFwibW91bnRcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJtb3VudFwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgXHR9LFxyXG4gIFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibW91bnRcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcIm1vdW50XCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFJhdGlvXCI6IDEuNSxcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwiYmFyXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwiYmFyXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwzMCwwLDVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOmZhbHNlLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwiYXhpc0xpbmVcIjpmYWxzZVxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJiYXJcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImdyb3VwXCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuICBcdFx0XHRcIm1ldGVyQm9yZGVcIjogMSxcclxuICBcdFx0XHRcIm1ldGVyRmlsbENvbG9yXCI6IFwiI0ZGRkZGRlwiLFxyXG4gIFx0XHRcdFwiYWN0aXZlQmdDb2xvclwiOiBcIiMwMDAwMDBcIixcclxuICBcdFx0XHRcImFjdGl2ZUJnT3BhY2l0eVwiOiAwLjA4XHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImFyZWFcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmVhXCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmVhXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJzdHJhaWdodFwiLFxyXG5cdFx0XHRcdFwib3BhY2l0eVwiOiAwLjIsXHJcblx0XHRcdFx0XCJhZGRMaW5lXCI6IHRydWUsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiZ3JhZGllbnRcIjogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwicmFkYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcbiAgICBcImRhdGFMYWJlbFwiOiBmYWxzZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmFkYXJcIjoge1xyXG5cdFx0XHRcdFwiZ3JpZFR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcdFwiZ3JpZENvdW50XCI6IDMsXHJcblx0XHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuXHRcdFx0XHRcIm1heFwiOiAyMDBcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwiZ2F1Z2VcIjp7XHJcblx0XHRcInR5cGVcIjogXCJnYXVnZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCI2NkttL0hcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAyNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMyZmMyNWJcIixcclxuXHRcdFx0XCJvZmZzZXRZXCI6IDUwXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuWunuaXtumAn+W6plwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzE4OTBmZlwiLFxyXG5cdFx0XHRcIm9mZnNldFlcIjogLTUwXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZ2F1Z2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFwibGFiZWxDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInN0YXJ0QW5nbGVcIjogMC43NSxcclxuXHRcdFx0XHRcImVuZEFuZ2xlXCI6IDAuMjUsXHJcblx0XHRcdFx0XCJzdGFydE51bWJlclwiOiAwLFxyXG5cdFx0XHRcdFwiZW5kTnVtYmVyXCI6IDEwMCxcclxuXHRcdFx0XHRcImxhYmVsRm9ybWF0XCI6IFwiXCIsXHJcblx0XHRcdFx0XCJzcGxpdExpbmVcIjoge1xyXG5cdFx0XHRcdFx0XCJmaXhSYWRpdXNcIjogMCxcclxuXHRcdFx0XHRcdFwic3BsaXROdW1iZXJcIjogMTAsXHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcdFwiY2hpbGROdW1iZXJcIjogNSxcclxuXHRcdFx0XHRcdFwiY2hpbGRXaWR0aFwiOiAxMlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJwb2ludGVyXCI6IHtcclxuXHRcdFx0XHRcdFwid2lkdGhcIjogMjQsXHJcblx0XHRcdFx0XHRcImNvbG9yXCI6IFwiYXV0b1wiXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHRcImNhbmRsZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImNhbmRsZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCwxNV0sXHJcblx0XHRcImVuYWJsZVNjcm9sbFwiOiB0cnVlLFxyXG5cdFx0XCJlbmFibGVNYXJrTGluZVwiOiB0cnVlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogZmFsc2UsXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJsYWJlbENvdW50XCI6IDQsXHJcblx0XHRcdFwiaXRlbUNvdW50XCI6IDQwLFxyXG5cdFx0XHRcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwic29saWRcIixcclxuXHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDQsXHJcblx0XHRcdFwic2Nyb2xsU2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcInNjcm9sbEFsaWduXCI6IFwibGVmdFwiLFxyXG5cdFx0XHRcInNjcm9sbENvbG9yXCI6IFwiI0E2QTZBNlwiLFxyXG5cdFx0XHRcInNjcm9sbEJhY2tncm91bmRDb2xvclwiOiBcIiNFRkVCRUZcIlxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjoge1xyXG5cdFx0XHRcdFx0XCJ1cExpbmVcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcInVwRmlsbFwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFwiZG93bkxpbmVcIjogXCIjMmZjMjViXCIsXHJcblx0XHRcdFx0XHRcImRvd25GaWxsXCI6IFwiIzJmYzI1YlwiXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRcImF2ZXJhZ2VcIjoge1xyXG5cdFx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XHRcIm5hbWVcIjogW1wiTUE1XCIsXCJNQTEwXCIsXCJNQTMwXCJdLFxyXG5cdFx0XHRcdFx0XCJkYXlcIjogWzUsMTAsMjBdLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBbXCIjMTg5MGZmXCIsXCIjMmZjMjViXCIsXCIjZmFjYzE0XCJdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcIm1hcmtMaW5lXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkYXNoXCIsXHJcblx0XHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDUsXHJcblx0XHRcdFx0XCJkYXRhXCI6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMTUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMzUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdF1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtaXhcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtaXhcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdFx0XCJkaXNhYmxlZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJzcGxpdE51bWJlclwiOiA1LFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG5cdFx0XHRcImRhc2hMZW5ndGhcIjogNCxcclxuXHRcdFx0XCJncmlkQ29sb3JcIjogXCIjQ0NDQ0NDXCIsXHJcblx0XHRcdFwicGFkZGluZ1wiOiAxMCxcclxuXHRcdFx0XCJzaG93VGl0bGVcIjogdHJ1ZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1peFwiOiB7XHJcblx0XHRcdFx0XCJjb2x1bW5cIjoge1xyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAyMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwic2NhdHRlclwiOntcclxuXHRcdFwidHlwZVwiOiBcInNjYXR0ZXJcIixcclxuXHRcdFwiY29sb3JcIjpjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOlsxNSwxNSwwLDE1XSxcclxuICAgIFwiZGF0YUxhYmVsXCI6ZmFsc2UsXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjBcclxuICAgIH0sXHJcbiAgICBcInlBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJzY2F0dGVyXCI6IHtcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9LFxyXG5cdFwiYnViYmxlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiYnViYmxlXCIsXHJcblx0XHRcImNvbG9yXCI6Y29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjpbMTUsMTUsMCwxNV0sXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwibWF4XCI6MjUwXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJkYXRhXCI6W3tcclxuICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgXCJtYXhcIjoxNTBcclxuICAgICAgfV1cclxuICAgIH0sXHJcbiAgICBcImxlZ2VuZFwiOiB7XHJcbiAgICB9LFxyXG4gICAgXCJleHRyYVwiOiB7XHJcbiAgICBcdFwiYnViYmxlXCI6IHtcclxuICAgICAgICBcImJvcmRlclwiOjIsXHJcbiAgICAgICAgXCJvcGFjaXR5XCI6IDAuNSxcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNmdTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///127\n"); /***/ }), /* 128 */ /*!**********************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js ***! \**********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n// 通用配置项\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\nvar cfe = {\n //demotype为自定义图表类型\n \"type\": [\"pie\", \"ring\", \"rose\", \"funnel\", \"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的\"demotype\"\n \"categories\": [\"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //instance为实例变量承载属性,option为eopts承载属性,不要删除\n \"instance\": {},\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"tooltipDemo1\": function tooltipDemo1(res) {\n var result = '';\n for (var i in res) {\n if (i == 0) {\n result += res[i].axisValueLabel + '年销售额';\n }\n var value = '--';\n if (res[i].data !== null) {\n value = res[i].data;\n }\n result += '
' + res[i].marker + res[i].seriesName + ':' + value + ' 万元';\n }\n return result;\n },\n legendFormat: function legendFormat(name) {\n return \"自定义图例+\" + name;\n },\n yAxisFormatDemo: function yAxisFormatDemo(value, index) {\n return value + '元';\n },\n seriesFormatDemo: function seriesFormatDemo(res) {\n return res.name + '年' + res.value + '元';\n }\n },\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。\n \"demotype\": {\n \"color\": color\n //在这里填写echarts的option即可\n },\n\n //下面是自定义配置,请添加项目所需的通用配置\n \"column\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": true,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'bar',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"line\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"top\": 'left',\n \"textStyle\": {\n \"color\": '#cccccc'\n }\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#CCCCCC'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": false,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#CCCCCC'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": false,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"area\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": true,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"areaStyle\": {},\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"pie\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": '50%',\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"ring\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15\n },\n \"legend\": {\n \"show\": true,\n \"bottom\": 'left',\n \"textStyle\": {\n \"color\": '#cccccc',\n \"fontSize\": '4'\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": ['30%', '60%'],\n \"avoidLabelOverlap\": false,\n \"label\": {\n \"show\": false,\n \"color\": \"#FFF\",\n \"position\": 'top'\n },\n \"labelLine\": {\n \"show\": false\n }\n }\n },\n \"rose\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"legend\": {\n \"top\": 'bottom'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": \"55%\",\n \"center\": ['50%', '50%'],\n \"roseType\": 'area'\n }\n },\n \"funnel\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item',\n \"formatter\": \"{b} : {c}%\"\n },\n \"legend\": {\n \"top\": 'bottom'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'funnel',\n \"left\": '10%',\n \"top\": 60,\n \"bottom\": 60,\n \"width\": '80%',\n \"min\": 0,\n \"max\": 100,\n \"minSize\": '0%',\n \"maxSize\": '100%',\n \"sort\": 'descending',\n \"gap\": 2,\n \"label\": {\n \"show\": true,\n \"position\": 'inside'\n },\n \"labelLine\": {\n \"length\": 10,\n \"lineStyle\": {\n \"width\": 1,\n \"type\": 'solid'\n }\n },\n \"itemStyle\": {\n \"bordercolor\": '#fff',\n \"borderwidth\": 1\n },\n \"emphasis\": {\n \"label\": {\n \"fontSize\": 20\n }\n },\n \"data\": []\n }\n },\n \"gauge\": {\n \"color\": color,\n \"tooltip\": {\n \"formatter\": '{a}
{b} : {c}%'\n },\n \"seriesTemplate\": {\n \"name\": '业务指标',\n \"type\": 'gauge',\n \"detail\": {\n \"formatter\": '{value}%'\n },\n \"data\": [{\n \"value\": 50,\n \"name\": '完成率'\n }]\n }\n },\n \"candle\": {\n \"xAxis\": {\n \"data\": []\n },\n \"yAxis\": {},\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"dataZoom\": [{\n \"type\": 'inside',\n \"xAxisIndex\": [0, 1],\n \"start\": 10,\n \"end\": 100\n }, {\n \"show\": true,\n \"xAxisIndex\": [0, 1],\n \"type\": 'slider',\n \"bottom\": 10,\n \"start\": 10,\n \"end\": 100\n }],\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'k',\n \"data\": []\n }\n }\n};\nvar _default = cfe;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJjZmUiLCJyZXMiLCJyZXN1bHQiLCJpIiwiYXhpc1ZhbHVlTGFiZWwiLCJ2YWx1ZSIsImRhdGEiLCJtYXJrZXIiLCJzZXJpZXNOYW1lIiwibGVnZW5kRm9ybWF0IiwibmFtZSIsInlBeGlzRm9ybWF0RGVtbyIsImluZGV4Iiwic2VyaWVzRm9ybWF0RGVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLElBQU1BLEtBQUssR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0FBRWpILElBQU1DLEdBQUcsR0FBRztFQUNWO0VBQ0QsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLFVBQVUsQ0FBQztFQUN4RztFQUNELFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLFVBQVUsQ0FBQztFQUM5RTtFQUNELFVBQVUsRUFBRSxDQUFDLENBQUM7RUFDZCxRQUFRLEVBQUUsQ0FBQyxDQUFDO0VBQ1g7RUFDQSxXQUFXLEVBQUM7SUFDVixjQUFjLEVBQUMsc0JBQVNDLEdBQUcsRUFBQztNQUMxQixJQUFJQyxNQUFNLEdBQUcsRUFBRTtNQUNmLEtBQUssSUFBSUMs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XHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjDvvInjgIFWdWXjgIFUYXJv562J5pSv5oyBY2FudmFz55qE5qGG5p625bmz5Y+wXHJcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbi8vIOmAmueUqOmFjee9rumhuVxyXG5cclxuLy8g5Li76aKY6aKc6Imy6YWN572u77ya5aaC5q+P5Liq5Zu+6KGo57G75Z6L6ZyA6KaB5LiN5ZCM5Li76aKY77yM6K+35Zyo5a+55bqU5Zu+6KGo57G75Z6L5LiK5pu05pS5Y29sb3LlsZ7mgKdcclxuY29uc3QgY29sb3IgPSBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ107XHJcblxyXG5jb25zdCBjZmUgPSB7XHJcbiAgLy9kZW1vdHlwZeS4uuiHquWumuS5ieWbvuihqOexu+Wei1xyXG5cdFwidHlwZVwiOiBbXCJwaWVcIiwgXCJyaW5nXCIsIFwicm9zZVwiLCBcImZ1bm5lbFwiLCBcImxpbmVcIiwgXCJjb2x1bW5cIiwgXCJhcmVhXCIsIFwicmFkYXJcIiwgXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJkZW1vdHlwZVwiXSxcclxuICAvL+WinuWKoOiHquWumuS5ieWbvuihqOexu+Wei++8jOWmguaenOmcgOimgWNhdGVnb3JpZXPvvIzor7flnKjov5nph4zliqDlhaXmgqjnmoTlm77ooajnsbvlnovkvovlpoLmnIDlkI7nmoRcImRlbW90eXBlXCJcclxuXHRcImNhdGVnb3JpZXNcIjogW1wibGluZVwiLCBcImNvbHVtblwiLCBcImFyZWFcIiwgXCJyYWRhclwiLCBcImdhdWdlXCIsIFwiY2FuZGxlXCIsXCJkZW1vdHlwZVwiXSxcclxuICAvL2luc3RhbmNl5Li65a6e5L6L5Y+Y6YeP5om/6L295bGe5oCn77yMb3B0aW9u5Li6ZW9wdHPmib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuXHRcImluc3RhbmNlXCI6IHt9LFxyXG5cdFwib3B0aW9uXCI6IHt9LFxyXG4gIC8v5LiL6Z2i5piv6Ieq5a6a5LmJZm9ybWF06YWN572u77yM5Zug6ZmkSDXnq6/lpJbnmoTlhbbku5bnq6/ml6Dms5XpgJrov4dwcm9wc+S8oOmAkuWHveaVsO+8jOWPquiDvemAmui/h+atpOWxnuaAp+WvueW6lOS4i+agh+eahOaWueW8j+adpeabv+aNolxyXG4gIFwiZm9ybWF0dGVyXCI6e1xyXG4gICAgXCJ0b29sdGlwRGVtbzFcIjpmdW5jdGlvbihyZXMpe1xyXG4gICAgICBsZXQgcmVzdWx0ID0gJydcclxuICAgICAgZm9yIChsZXQgaSBpbiByZXMpIHtcclxuICAgICAgXHRpZiAoaSA9PSAwKSB7XHJcbiAgICAgIFx0XHRyZXN1bHQgKz0gcmVzW2ldLmF4aXNWYWx1ZUxhYmVsICsgJ+W5tOmUgOWUruminSdcclxuICAgICAgXHR9XHJcbiAgICAgIFx0bGV0IHZhbHVlID0gJy0tJ1xyXG4gICAgICBcdGlmIChyZXNbaV0uZGF0YSAhPT0gbnVsbCkge1xyXG4gICAgICBcdFx0dmFsdWUgPSByZXNbaV0uZGF0YVxyXG4gICAgICBcdH1cclxuXHJcblxyXG5cclxuICAgICAgXHRcclxuXHJcbiAgICAgIFx0cmVzdWx0ICs9ICc8YnIvPicgKyByZXNbaV0ubWFya2VyICsgcmVzW2ldLnNlcmllc05hbWUgKyAn77yaJyArIHZhbHVlICsgJyDkuIflhYMnXHJcblxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG4gICAgbGVnZW5kRm9ybWF0OmZ1bmN0aW9uKG5hbWUpe1xyXG4gICAgICByZXR1cm4gXCLoh6rlrprkuYnlm77kvosrXCIrbmFtZTtcclxuICAgIH0sXHJcbiAgICB5QXhpc0Zvcm1hdERlbW86ZnVuY3Rpb24gKHZhbHVlLCBpbmRleCkge1xyXG4gICAgICByZXR1cm4gdmFsdWUgKyAn5YWDJztcclxuICAgIH0sXHJcbiAgICBzZXJpZXNGb3JtYXREZW1vOmZ1bmN0aW9uKHJlcyl7XHJcbiAgICAgIHJldHVybiByZXMubmFtZSArICflubQnICsgcmVzLnZhbHVlICsgJ+WFgyc7XHJcbiAgICB9XHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhlb3B0c+WPguaVsO+8jOS8muWwhmRlbW90eXBl5LiOZW9wdHPkuK1vcHRpb27lkIjlubblkI7muLLmn5Plm77ooajjgIJcclxuICBcImRlbW90eXBlXCI6e1xyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICAgIC8v5Zyo6L+Z6YeM5aGr5YaZZWNoYXJ0c+eahG9wdGlvbuWNs+WPr1xyXG4gICAgXHJcbiAgfSxcclxuICAvL+S4i+mdouaYr+iHquWumuS5iemFjee9ru+8jOivt+a3u+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxyXG5cdFwiY29sdW1uXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sYm94XCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0fSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ2NhdGVnb3J5JyxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImJvdW5kYXJ5R2FwXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdiYXInLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImxpbmVcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXHJcblx0XHR9LFxyXG5cdFx0XCJncmlkXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogMzAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDUwLFxyXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxyXG5cdFx0XHRcImxlZnRcIjogNDBcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6ICdsZWZ0JyxcclxuXHRcdFx0XCJ0ZXh0U3R5bGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjonI2NjY2NjYydcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdFwidG9vbGJveFwiOiB7XHJcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAndmFsdWUnLFxyXG5cdFx0XHRcImF4aXNUaWNrXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2xpbmUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJhcmVhXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sYm94XCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0fSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ2NhdGVnb3J5JyxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImJvdW5kYXJ5R2FwXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcImFyZWFTdHlsZVwiOiB7fSxcclxuXHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicGllXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDQwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiAzMCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDE1XHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdwaWUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwicmFkaXVzXCI6ICc1MCUnLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJyaW5nXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDQwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiAzMCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDE1XHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxyXG5cdFx0XHRcInRleHRTdHlsZVwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnI2NjY2NjYycsXHJcblx0XHRcdFx0XCJmb250U2l6ZVwiOiAnNCcsXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdFx0XCJyYWRpdXNcIjogWyczMCUnLCAnNjAlJ10sXHJcblx0XHRcdFwiYXZvaWRMYWJlbE92ZXJsYXBcIjogZmFsc2UsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdFx0XHRcImNvbG9yXCI6IFwiI0ZGRlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHRcdFwibGFiZWxMaW5lXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcInJvc2VcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInRvcFwiOiAnYm90dG9tJ1xyXG5cdFx0fSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAncGllJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcInJhZGl1c1wiOiBcIjU1JVwiLFxyXG5cdFx0XHRcImNlbnRlclwiOiBbJzUwJScsICc1MCUnXSxcclxuXHRcdFx0XCJyb3NlVHlwZVwiOiAnYXJlYScsXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nLFxyXG5cdFx0XHRcImZvcm1hdHRlclwiOiBcIntifSA6IHtjfSVcIlxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogJ2JvdHRvbSdcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2Z1bm5lbCcsXHJcblx0XHRcdFwibGVmdFwiOiAnMTAlJyxcclxuXHRcdFx0XCJ0b3BcIjogNjAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDYwLFxyXG5cdFx0XHRcIndpZHRoXCI6ICc4MCUnLFxyXG5cdFx0XHRcIm1pblwiOiAwLFxyXG5cdFx0XHRcIm1heFwiOiAxMDAsXHJcblx0XHRcdFwibWluU2l6ZVwiOiAnMCUnLFxyXG5cdFx0XHRcIm1heFNpemVcIjogJzEwMCUnLFxyXG5cdFx0XHRcInNvcnRcIjogJ2Rlc2NlbmRpbmcnLFxyXG5cdFx0XHRcImdhcFwiOiAyLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICdpbnNpZGUnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwibGFiZWxMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxlbmd0aFwiOiAxMCxcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDEsXHJcblx0XHRcdFx0XHRcInR5cGVcIjogJ3NvbGlkJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJpdGVtU3R5bGVcIjoge1xyXG5cdFx0XHRcdFwiYm9yZGVyY29sb3JcIjogJyNmZmYnLFxyXG5cdFx0XHRcdFwiYm9yZGVyd2lkdGhcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImVtcGhhc2lzXCI6IHtcclxuXHRcdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcdFwiZm9udFNpemVcIjogMjBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImdhdWdlXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG4gICAgICAgIFwiZm9ybWF0dGVyXCI6ICd7YX0gPGJyLz57Yn0gOiB7Y30lJ1xyXG4gICAgfSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJ+S4muWKoeaMh+aghycsXHJcbiAgICAgIFwidHlwZVwiOiAnZ2F1Z2UnLFxyXG4gICAgICBcImRldGFpbFwiOiB7XCJmb3JtYXR0ZXJcIjogJ3t2YWx1ZX0lJ30sXHJcbiAgICAgIFwiZGF0YVwiOiBbe1widmFsdWVcIjogNTAsIFwibmFtZVwiOiAn5a6M5oiQ546HJ31dXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge30sXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwidGV4dFwiOiAnJ1xyXG5cdFx0fSxcclxuXHRcdFwiZGF0YVpvb21cIjogW3tcclxuXHRcdFx0XHRcInR5cGVcIjogJ2luc2lkZScsXHJcblx0XHRcdFx0XCJ4QXhpc0luZGV4XCI6IFswLCAxXSxcclxuXHRcdFx0XHRcInN0YXJ0XCI6IDEwLFxyXG5cdFx0XHRcdFwiZW5kXCI6IDEwMFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XCJ4QXhpc0luZGV4XCI6IFswLCAxXSxcclxuXHRcdFx0XHRcInR5cGVcIjogJ3NsaWRlcicsXHJcblx0XHRcdFx0XCJib3R0b21cIjogMTAsXHJcblx0XHRcdFx0XCJzdGFydFwiOiAxMCxcclxuXHRcdFx0XHRcImVuZFwiOiAxMDBcclxuXHRcdFx0fVxyXG5cdFx0XSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAnaycsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdH0sXHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjZmU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///128\n"); /***/ }), /* 129 */ /*!*********************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/static/a1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/a1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2ExLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///129\n"); /***/ }), /* 130 */ /*!*********************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/static/b1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/b1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2IxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///130\n"); /***/ }), /* 131 */ /*!*********************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/static/c1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/c1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2MxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///131\n"); /***/ }), /* 132 */ /*!*********************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/static/d1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/d1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2QxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///132\n"); /***/ }), /* 133 */ /*!*********************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/static/g1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/g1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2cxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///133\n"); /***/ }), /* 134 */ /*!*********************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/static/f1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/f1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2YxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///134\n"); /***/ }), /* 135 */ /*!*********************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/static/e1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/e1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2UxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///135\n"); /***/ }), /* 136 */ /*!*****************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 137);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9sQixDQUFnQixzbEJBQUcsRUFBQyIsImZpbGUiOiIxMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///136\n"); /***/ }), /* 137 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 60));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 59));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n commonUrl: null,\n // 通用url\n show: true,\n modeClass: 'fade',\n styles: {},\n baseIP: '',\n baseLedId: '',\n basePort: '',\n crnId: '',\n value: '',\n xDistance: 0,\n yDistance: 0,\n xDuration: 0,\n yDuration: 0,\n used: 317,\n usedPr: 90,\n stockCount: 0,\n emptyCount: 0,\n noneCount: 0,\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n chartsDataLine1: {},\n chartsDataPie2: {},\n ringOpts: {},\n year: 2022,\n month: 4,\n day: 14,\n hours: 13,\n minutes: 38,\n seconds: 13,\n week: '星期四',\n ani: '',\n // move: 'upMove 1.5s 1;',\n move: false,\n topMove: 'topUp',\n floorMove: '',\n version: '',\n // newspaper:'拣料出库(4426)\\n源库位:1200101\\n目标站:186\\n1101842-10000-22047518517\\n\\n',\t\n newspaper: '',\n errorPaper: '',\n title: '',\n staNo: '',\n matnr: '',\n maknx: '',\n specs: '',\n count: '',\n orderNo: null,\n doneOfTray: '',\n totalOfTray: '',\n doneOfUnit: '',\n totalOfUnit: '',\n errorMsg: null,\n width: 'full-width',\n errorShow: '',\n pakinShow: '',\n pakinGun: '',\n orderShow: false,\n swiper: 'swiper-here',\n autoplay: true,\n // 自动循环\n interval: 1000,\n // 调用时长\n duration: 8000,\n // 移动速度\n matList: [],\n // 订单列表\n ejectShow: false\n };\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n this.getUrl();\n },\n onLoad: function onLoad() {},\n onReady: function onReady() {\n var _this = this;\n setInterval(function () {\n // 获得初始数据\n _this.initlineChart();\n _this.initPieChart();\n // 主页信息\n _this.getServerData();\n _this.getOther();\n // 其他信息\n _this.getDate();\n _this.getPakin();\n _this.getError();\n // this.getYYY();\n // this.getEEE();\n _this.animation();\n _this.getUrl();\n }, 1000);\n },\n methods: {\n // 获取url\n getUrl: function getUrl() {\n this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;\n this.chartsDataLine1 = JSON.parse(JSON.stringify(_demodata.default.Line));\n },\n // 获取错误信息\n getYYY: function getYYY() {\n var that = this;\n var result = _data.default.dataEEE;\n // 测试用 ↓\n var res = result.data;\n // 测试用 ↑\n // 返回结果有值 且值不等于空值 就是有错误信息需要展示\n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 显示\n } else {\n that.errorPaper = '';\n that.errorShow = false;\n if (that.pakinShow) {\n return;\n } else {\n that.move = true; // 隐藏\n }\n }\n },\n getEEE: function getEEE() {\n var that = this;\n var newsData = '';\n var str = '';\n var result = _data.default.dataYYY;\n // 测试用 ↓\n var res = result.data;\n // 测试用 ↑\n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.title = '检料出库';\n }\n that.staNo = '目标站:' + res.data[0].staNo;\n that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;\n that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;\n that.count = '出库数量:' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"订单号:\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;\n that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;\n that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;\n that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;\n if (that.errorShow) {\n return;\n } else {\n that.newspaper = newsData;\n that.move = false;\n }\n } else {\n that.move = true;\n }\n },\n // 获取错误信息\n getError: function getError() {\n var that = this;\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led/error\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 显示\n } else {\n that.errorShow = false;\n // if (that.pakinShow) {\n // \treturn;\n // } else {\n // \t// that.move = true // 隐藏\n // }\n }\n }\n });\n },\n getPakin: function getPakin() {\n var that = this;\n that.matList = []; // 清空条码列表\n var newsData = '';\n var str = '';\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (that.errorShow) {\n return; // 有错误信息\n }\n\n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.title = '检料出库';\n } else that.title = res.data[0].title;\n that.staNo = '目标站:' + res.data[0].staNo;\n that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;\n that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;\n that.specs = '规格:' + res.data[0].matDtos[0].specs;\n that.count = '出库数量:' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"订单号:\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;\n that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;\n that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;\n that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;\n that.newspaper = newsData;\n that.move = false;\n } else {\n that.move = true;\n }\n }\n });\n },\n animation: function animation() {\n if (this.move) {\n this.topMove = 'topUp';\n this.floorMove = 'floorUp';\n } else {\n this.topMove = 'topDown';\n this.floorMove = 'floorDown';\n }\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(); // 获取当前时间\n date.setDate(date.getDate() + value); // 设置天数 -1 天\n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\n },\n /*************** 折线图 *****************************************************************************************************/initlineChart: function initlineChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/line/charts\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n __f__(\"log\", result, \" at pages/index/index.vue:586\");\n if (res.code === 200) {\n that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];\n that.chartsData.Line.series = res.data.rows;\n }\n }\n });\n },\n /*************** 饼图 *****************************************************************************************************/initPieChart: function initPieChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/loc/rep\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Pie.series[0].data = res.data.pie;\n that.stockCount = res.data.stockCunt;\n that.emptyCount = res.data.emptyCount;\n that.noneCount = res.data.noneCount;\n that.used = res.data.used;\n that.usedPr = res.data.usedPr;\n }\n }\n });\n },\n getOther: function getOther() {\n var that = this;\n uni.request({\n // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n url: that.commonUrl + \"/monitor/other\",\n data: {\n crnId: that.baseCrnId,\n ledId: 1\n },\n success: function success(result) {\n __f__(\"log\", result, \" at pages/index/index.vue:626\");\n var res = result.data;\n if (res.code === 200) {\n that.xDistance = res.data.xDistance;\n that.yDistance = res.data.yDistance;\n that.xDuration = res.data.xDuration;\n that.yDuration = res.data.yDuration;\n } else if (res.code === 403) {} else {}\n }\n });\n },\n ejected: function ejected() {\n this.ejectShow = true;\n },\n // 弹出层确认\n ejectConfirm: function ejectConfirm() {\n uni.setStorageSync('BaseIp', this.baseIP);\n uni.setStorageSync('BaseLedId', this.baseLedId);\n uni.setStorageSync('BasePort', this.basePort);\n uni.setStorageSync('BaseCrnId', this.baseCrnId);\n this.getUrl();\n this.ejectShow = false;\n },\n // 弹出层取消\n ejectClose: function ejectClose() {\n this.ejectShow = false;\n },\n getServerData: function getServerData() {\n this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line));\n this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie));\n },\n complete: function complete(e) {\n __f__(\"log\", \"渲染完成事件\", e, \" at pages/index/index.vue:662\");\n },\n getDate: function getDate() {\n var dt = new Date();\n this.year = dt.getFullYear();\n this.month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n this.day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n this.hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n this.minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n this.seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n this.weeks = dt.getDay();\n switch (this.weeks) {\n case 0:\n this.week = \"星期日\";\n break;\n case 1:\n this.week = \"星期一\";\n break;\n case 2:\n this.week = \"星期二\";\n break;\n case 3:\n this.week = \"星期三\";\n break;\n case 4:\n this.week = \"星期四\";\n break;\n case 5:\n this.week = \"星期五\";\n break;\n default:\n this.week = \"星期六\";\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJjb21tb25VcmwiLCJzaG93IiwibW9kZUNsYXNzIiwic3R5bGVzIiwiYmFzZUlQIiwiYmFzZUxlZElkIiwiYmFzZVBvcnQiLCJjcm5JZCIsInZhbHVlIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZCIsInVzZWRQciIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwicmluZ09wdHMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwid2VlayIsImFuaSIsIm1vdmUiLCJ0b3BNb3ZlIiwiZmxvb3JNb3ZlIiwidmVyc2lvbiIsIm5ld3NwYXBlciIsImVycm9yUGFwZXIiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsInNwZWNzIiwiY291bnQiLCJvcmRlck5vIiwiZG9uZU9mVHJheSIsInRvdGFsT2ZUcmF5IiwiZG9uZU9mVW5pdCIsInRvdGFsT2ZVbml0IiwiZXJyb3JNc2ciLCJ3aWR0aCIsImVycm9yU2hvdyIsInBha2luU2hvdyIsInBha2luR3VuIiwib3JkZXJTaG93Iiwic3dpcGVyIiwiYXV0b3BsYXkiLCJpbnRlcnZhbCIsImR1cmF0aW9uIiwibWF0TGlzdCIsImVqZWN0U2hvdyIsIm1vdW50ZWQiLCJ0aGF0Iiwib25Mb2FkIiwib25SZWFkeSIsInNldEludGVydmFsIiwibWV0aG9kcyIsImdldFVybCIsImdldFlZWSIsImdldEVFRSIsImdldEVycm9yIiwidW5pIiwidXJsIiwibGVkSWQiLCJtZXRob2QiLCJzdWNjZXNzIiwicmVzIiwiZ2V0UGFraW4iLCJhbmltYXRpb24iLCJnZXREYXRlRm9ybWF0IiwiZGF0ZSIsImluaXRsaW5lQ2hhcnQiLCJpbml0UGllQ2hhcnQiLCJnZXRPdGhlciIsImVqZWN0ZWQiLCJlamVjdENvbmZpcm0iLCJlamVjdENsb3NlIiwiZ2V0U2VydmVyRGF0YSIsImNvbXBsZXRlIiwiZ2V0RGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQTJTQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBO0VBQ0FBO0lBQ0E7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBO1VBQ0E7VUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO0lBRUE7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQUM7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQTtFQUNBO0VBQ0FDLDJCQUVBO0VBQ0FDO0lBQUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUVBTjtRQUNBQTtRQUNBQTtNQUNBO1FBQ0FBO1FBQ0FBO1FBQ0E7VUFDQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FPO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0FQO1FBQ0E7VUFDQUE7UUFDQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBO1VBQ0FBO1VBQ0FBO1VBQ0FBO1FBQ0E7VUFDQUE7VUFDQUE7VUFDQUE7UUFDQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBO1VBQ0E7UUFDQTtVQUNBQTtVQUNBQTtRQUNBO01BQ0E7UUFDQUE7TUFDQTtJQUdBO0lBQ0E7SUFDQVE7TUFDQTtNQUNBO01BQ0FDO1FBQ0FDO1FBQ0F2RTtVQUNBd0U7UUFDQTtRQUNBQztRQUNBQztVQUNBQztVQUNBO1lBQ0FkO1lBQ0FBO1lBQ0FBO1VBQ0E7WUFDQUE7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQWU7TUFDQTtNQUNBZjtNQUNBO01BQ0E7TUFDQTtNQUNBUztRQUNBQztRQUNBdkU7VUFDQXdFO1FBQ0E7UUFDQUM7UUFDQUM7VUFDQUM7VUFDQTtZQUNBO1VBQ0E7O1VBQ0E7WUFDQTtjQUNBZDtZQUNBO2NBQ0FBO1lBQ0EsT0FDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQTtjQUNBQTtjQUNBQTtjQUNBQTtZQUNBO2NBQ0FBO2NBQ0FBO2NBQ0FBO1lBQ0E7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7VUFDQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FnQjtNQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQSwySEFDQUM7TUFDQTtNQUNBVjtRQUNBQztRQUNBRTtRQUNBQztVQUNBO1VBQ0E7VUFDQTtZQUNBYixtQ0FDQUEsa0dBQ0FBLGdHQUNBQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0EsMEhBQ0FvQjtNQUNBO01BQ0FYO1FBQ0FDO1FBQ0FFO1FBQ0FDO1VBQ0E7VUFDQTtZQUNBYjtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FxQjtNQUNBO01BQ0FaO1FBQ0E7UUFDQUM7UUFDQXZFO1VBQ0FRO1VBQ0FnRTtRQUNBO1FBQ0FFO1VBQ0E7VUFDQTtVQUNBO1lBQ0FiO1lBQ0FBO1lBQ0FBO1lBQ0FBO1VBQ0EsOEJBRUEsUUFFQTtRQUNBO01BQ0E7SUFDQTtJQUNBc0I7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQWQ7TUFDQUE7TUFDQUE7TUFDQUE7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBZTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtNQUFBO0lBRUE7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMTM3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHQ8IS0tIOi3s+WKqOS/oeaBr+advyAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZmxvb3Itc2NyZWVuXCIgOmNsYXNzPVwiZmxvb3JNb3ZlXCIgPlxyXG5cdFx0XHQ8IS0tIOWktOmDqCAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0PHRleHQgQGNsaWNrPVwicG9ydCgpXCI+6Ieq5Yqo5LuT5bqTV0NT55uR5o6n5bmz5Y+wPC90ZXh0PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7eWVhcn19LXt7bW9udGh9fS17e2RheX19Jm5ic3B7e2hvdXJzfX06e3ttaW51dGVzfX06e3tzZWNvbmRzfX0mbmJzcHt7d2Vla319PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIiBAY2xpY2s9XCJlamVjdGVkKClcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIiBAY2xpY2s9XCJsZWRJZCgpXCI+PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwibWFpblwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibWFpbi1zaWRlc1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveFwiIHN0eWxlPVwiaGVpZ2h0OiA5MCU7XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIyXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCIgdi1zaG93PVwiIWVycm9yU2hvd1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0g5YiG5pyJ5peg6K6i5Y2V5YiS5YiG5Lik6YOo5YiGIC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0g5bem5L6n5L+h5oGvIC0tPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiXCIgOmNsYXNzPVwid2lkdGhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g5YWo5p2/5Ye65bqTIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e3RpdGxlfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOebruagh+ermSAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tzdGFOb319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDllYblk4HnvJblj7cgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3ttYXRucn19PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g5ZWG5ZOB5ZCN56ewIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e21ha254fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWVhuWTgeWQjeensCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tzcGVjc319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDlh7rlupPmlbDph48gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7Y291bnR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlO2hlaWdodDogMTAwJTtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ZmxvYXQ6IGxlZnQ7XCIgdi1zaG93PVwib3JkZXJTaG93XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOiuouWNleWPtyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tvcmRlck5vfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3suWHuuaJmOebmOaVsCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tkb25lT2ZUcmF5fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOaJmOebmOaAu+aVsOmHjyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3t0b3RhbE9mVHJheX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDlt7Llh7rnrrHmlbAgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7ZG9uZU9mVW5pdH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDmgLvnrrHmlbAgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7dG90YWxPZlVuaXR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCIgdi1zaG93PVwiZXJyb3JTaG93XCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJsaW5lLWhlaWdodDogNzAwcHg7Zm9udC1zaXplOiAxNzVycHg7XCI+e3tlcnJvck1zZ319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQ8IS0tIOWFqOadv+WHuuW6kyAtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiAxMCU7aGVpZ2h0OiAxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OiBsZWZ0O3RleHQtYWxpZ246IGNlbnRlcjtwYWRkaW5nLXRvcDogMTgwcHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQ+e3t0aXRsZX19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHQ8IS0tIOa7muWKqOWMuuWfnyAtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiA4MCU7aGVpZ2h0OiAxMDAlO2Rpc3BsYXk6IGlubGluZS1ibG9jaztcIj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PCEtLeaYvuekum9yZGVy6K6i5Y2V57yW5Y+3IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gPHRleHQgdi1zaG93PVwib3JkZXJTaG93XCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztmb250LXNpemU6IDE0MHJweDtcIiA+e3tvcmRlck5vfX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PHN3aXBlciA6Y2xhc3M9XCJzd2lwZXJcIiBjaXJjdWxhcj1cInRydWVcIiB2ZXJ0aWNhbD1cInRydWVcIiBkaXNwbGF5LW11bHRpcGxlLWl0ZW1zPVwiNlwiIDphdXRvcGxheT1cImF1dG9wbGF5XCIgOmludGVydmFsPVwiaW50ZXJ2YWxcIiA6ZHVyYXRpb249XCJkdXJhdGlvblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHN3aXBlci1pdGVtIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIG1hdExpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJmb250LXNpemU6IDE2MHJweDtcIj57e2l0ZW19fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvc3dpcGVyLWl0ZW0+XHJcblx0XHRcdFx0XHRcdFx0PC9zd2lwZXI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz4gLS0+XHJcblx0XHRcdFx0XHRcdDwhLS0g56uZ5Y+w5Y+3IC0tPlxyXG5cdFx0XHRcdFx0XHQ8IS0tIDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwJTtoZWlnaHQ6IDEwMCU7ZGlzcGxheTogaW5saW5lLWJsb2NrO2Zsb2F0OiByaWdodDtwYWRkaW5nLXRvcDogMTgwcHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQ+e3tzdGFOb319PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ0b3Atc2NyZWVuXCIgOmNsYXNzPVwidG9wTW92ZVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHQ8dGV4dCBAY2xpY2s9XCJwb3J0KClcIj7oh6rliqjku5PlupNXQ1Pnm5HmjqflubPlj7A8L3RleHQ+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3t5ZWFyfX0te3ttb250aH19LXt7ZGF5fX0mbmJzcHt7aG91cnN9fTp7e21pbnV0ZXN9fTp7e3NlY29uZHN9fSZuYnNwe3t3ZWVrfX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tbGVmdFwiIEBjbGljaz1cImVqZWN0ZWQoKVwiPjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiIEBjbGljaz1cImxlZElkKClcIj48L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluLXNpZGVzXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtbGdcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtIGludHJvZHVjZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxoMz7oh6rliqjljJbnq4vkvZPku5PlupM8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPkF1dG9tYXRpYyBTdG9yYWdlYW5kIFJldHJpZXZhbCBTeXN0ZW08L3A+XHJcblx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJpbnRyb2R1Y2UtY29udGVudFwiPiAg5Yip55So56uL5L2T5LuT5bqT6K6+5aSH5Y+v5a6e546w5LuT5bqT6auY5bGC5ZCI55CG5YyW44CB5a2Y5Y+W6Ieq5Yqo5YyW44CB5pON5L2c566A5L6/5YyW77yb6Ieq5Yqo5YyW56uL5L2T5LuT5bqT5piv5b2T5YmN5oqA5pyv5rC05bmz6L6D6auY55qE5b2i5byP44CCXHJcblx0XHRcdFx0XHRcdFx06Ieq5Yqo5YyW56uL5L2T5LuT5bqT55qE5Li75L2T55Sx6LSn5p6244CB5be36YGT5byP5aCG5Z6b6LW36YeN5py644CB5YWl77yI5Ye677yJ5bqT5bel5L2c5Y+w5ZKM6Ieq5Yqo6L+Q6L+b77yI5Ye677yJ5Y+K5pON5L2c5o6n5Yi257O757uf57uE5oiQ44CCXHJcblx0XHRcdFx0XHRcdFx06LSn5p625piv6ZKi57uT5p6E5oiW6ZKi562L5re35Yed5Zyf57uT5p6E55qE5bu6562R54mp5oiW57uT5p6E5L2T77yM6LSn5p625YaF5piv5qCH5YeG5bC65a+455qE6LSn5L2N56m66Ze077yM5be36YGT5aCG5Z6b6LW36YeN5py656m/6KGM5LqO6LSn5p625LmL6Ze055qE5be36YGT5Lit77yM5a6M5oiQ5a2Y44CB5Y+W6LSn55qE5bel5L2c44CC566h55CG5LiK6YeH55So6K6h566X5py65Y+K5p2h5b2i56CB5oqA5pyv44CCPC9wPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW0gY2hhcmdlLWluZm9cIj5cclxuXHRcdFx0XHRcdFx0XHQ8aDM+5LuT5bqT5pWw5o2uPC9oMz5cclxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cImVuZ2xpc2hcIj53YXJlaG91c2UgZGF0YTwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJnZS1pbmZvLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjb3VudFwiPnt7eERpc3RhbmNlfX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pdFwiPm08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz7ntK/orqHotbDooYzot53nprso57GzKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFyZ2UtaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2IxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiY291bnRcIj57e3lEaXN0YW5jZX19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaXRcIj5tPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+57Sv6K6h5Y2H6ZmN6Led56a7KOexsyk8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcmdlLWluZm8taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9jMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImNvdW50XCI+e3t4RHVyYXRpb259fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bml0XCI+bTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3Pue0r+iuoei1sOihjOaXtumVvyjnp5IpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJnZS1pbmZvLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZDEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjb3VudFwiPnt7eUR1cmF0aW9ufX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pdFwiPm08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz7ntK/orqHljYfpmY3ml7bplb8o56eSKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbSB1c2UtaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidXNlLWxlZnRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxoMz7lupPkvY3kvb/nlKjnjoc8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+RVFVSVBNRU5UIFVTQUdFIFRISVMgTU9OVEg8L3A+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidXNlLXJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+e3t1c2VkUHJ9fSU8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+5ZCM5q+U5LiK5pyIICsgNSU8L3A+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidXNlLW1haW5cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInByb2dyZXNzQmFyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwcm9ncmVzc1wiIDpzdHlsZT1cIid3aWR0aDonKyB1c2VkUHIgKyAnJSdcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8cHJvZ3Jlc3MgcGVyY2VudD1cIjIwXCJhY3RpdmVDb2xvcj1cIiNGRjU3MjJcIiBiYWNrZ3JvdW5kQ29sb3I9XCIjMjMzNzUxXCIgc3Ryb2tlLXdpZHRoPVwiMzBcIj48L3Byb2dyZXNzPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0e3t1c2VkfX1cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluLXNpZGVzXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtdHBcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtIHJpZ2h0LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1sZWZ0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+5YWl5Ye65bqT57uf6K6hPC9oMz5cclxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPk9SREVSIFNUQVRJU1RJQ1M8L3A+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLXJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+MzE8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+5LuK5pel6K6i5Y2V5pWwPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1tYWluXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHRcdCAgPHFpdW4tZGF0YS1jaGFydHMgdHlwZT1cImxpbmVcIiA6Y2hhcnREYXRhPVwiY2hhcnRzRGF0YUxpbmUxXCIgOmVjaGFydHNINT1cInRydWVcIiA6ZWNoYXJ0c0FwcD1cInRydWVcIi8+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtbWRcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtIHJpZ2h0LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1sZWZ0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+5bqT5a2Y57G75Z6LPC9oMz5cclxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPklOQ09NRSBEQVRFPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGgzPuS7iuWkqTwvaDM+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cImVuZ2xpc2hcIj5Ub2RheTwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItbWFpblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtYm94IHJpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHFpdW4tZGF0YS1jaGFydHMgdHlwZT1cInJpbmdcIiA6b3B0cz1cIntsZWdlbmQ6e3Bvc2l0aW9uOidib3R0b20nfX1cIiA6ZW9wdHM9XCJyaW5nT3B0c1wiIDpjaGFydERhdGE9XCJjaGFydHNEYXRhUGllMlwiIDplY2hhcnRzSDU9XCJ0cnVlXCIgOmVjaGFydHNBcHA9XCJ0cnVlXCIvPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItbWFpbi1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1pbmZvXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9nMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD7lnKjlupM8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+e3tzdG9ja0NvdW50fX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZjEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+56m65bqTPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0Pnt7ZW1wdHlDb3VudH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLWluZm9cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2UxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0PuemgeeUqDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD57e25vbmVDb3VudH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtYnRcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8IS0tIDx0ZXh0Pua1meaxn+S4reaJrOeri+W6k+aKgOacr+aciemZkOWFrOWPuDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PHRleHQ+5b2T5YmN54mI5pys5Y+3PC90ZXh0PiAtLT5cclxuXHRcdFx0XHRcdFx0PHZpZXcgQGNsaWNrPVwiY3JuKClcIj7lmInlloTovrnplIvmnLrmorDogqHku73mnInpmZDlhazlj7g8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwhLS0gPGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9iYXJjb2RlLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPiAtLT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3PlxyXG5cdFx0XHQ8IS0tIOi+k+WFpXVybCAtLT5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJ1cmxcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6YWN572udXJsXCIgOnZhbHVlPVwiYmFzZUlQXCJcclxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwi56S65L6LOjE5Mi4xNjguMS4xXCIgQGNvbmZpcm09XCJiYXNlVXJsQ29uZmlybVwiPjwvdW5pLXBvcHVwLWRpYWxvZz5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PCEtLSDovpPlhaVsZWRJZCAtLT5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJsZWRJZFwiIHR5cGU9XCJkaWFsb2dcIj5cclxuXHRcdFx0XHQ8dW5pLXBvcHVwLWRpYWxvZyByZWY9XCJpbnB1dENsb3NlXCIgbW9kZT1cImlucHV0XCIgdGl0bGU9XCLphY3nva5sZWRJZFwiIDp2YWx1ZT1cImJhc2VMZWRJZFwiXHJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIuekuuS+izoxODhcIiBAY29uZmlybT1cImxlZElkQ29uZmlybVwiPjwvdW5pLXBvcHVwLWRpYWxvZz5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PCEtLSDovpPlhaVwb3J0IC0tPlxyXG5cdFx0XHQ8dW5pLXBvcHVwIHJlZj1cInBvcnRcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6YWN572u56uv5Y+j5Y+3XCIgOnZhbHVlPVwiYmFzZVBvcnRcIlxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCLnpLrkvos6OTA5MFwiIEBjb25maXJtPVwicG9ydENvbmZpcm1cIj48L3VuaS1wb3B1cC1kaWFsb2c+XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDwhLS0g6L6T5YWlY3JuSWQgLS0+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwiY3JuSWRcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6YWN572u5aCG5Z6b5py6XCIgOnZhbHVlPVwiY3JuSWRcIlxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCLnpLrkvos6MVwiIEBjb25maXJtPVwiY3JuQ29uZmlybVwiPjwvdW5pLXBvcHVwLWRpYWxvZz5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOiHquWumuS5ieW8ueWHuuWxgiAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtbWFza1wiIHYtc2hvdz1cImVqZWN0U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0XCI+XHJcblx0XHRcdFx0PCEtLSDlvLnlh7p0aXRsZSAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LXRpdGxlXCI+5L+u5pS5IC8g6YWN572uPC92aWV3PlxyXG5cdFx0XHRcdDwhLS0gaW5wdXQgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdC1pbnB1dFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPmlw77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VJUFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+cG9ydO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlUG9ydFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+bGVkSWTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZUxlZElkXCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5Dcm5JZO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlQ3JuSWRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIGJ1dHRvbiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LWJ1dHRvblwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24taXRlbVwiIEBjbGljaz1cImVqZWN0Q2xvc2VcIj7lj5Yg5raIPC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24taXRlbVwiIEBjbGljaz1cImVqZWN0Q29uZmlybVwiPuehriDorqQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHljcWRhdGEgZnJvbSAnQC9wYWdlcy9pbmRleC9kYXRhLmpzb24nO1xyXG5cdGltcG9ydCBkZW1vZGF0YSBmcm9tICdAL21vY2tkYXRhL2RlbW9kYXRhLmpzb24nO1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y29tbW9uVXJsOm51bGwsIC8vIOmAmueUqHVybFxyXG5cdFx0XHRcdHNob3c6IHRydWUsXHJcblx0XHRcdFx0bW9kZUNsYXNzOiAnZmFkZScsXHJcblx0XHRcdFx0c3R5bGVzOiB7fSxcclxuXHRcdFx0XHRiYXNlSVA6JycsXHJcblx0XHRcdFx0YmFzZUxlZElkOicnLFxyXG5cdFx0XHRcdGJhc2VQb3J0OicnLFxyXG5cdFx0XHRcdGNybklkOicnLFxyXG5cdFx0XHRcdHZhbHVlOiAnJyxcclxuXHRcdFx0XHR4RGlzdGFuY2U6IDAsXHJcblx0XHRcdFx0eURpc3RhbmNlOjAsXHJcblx0XHRcdFx0eER1cmF0aW9uOjAsXHJcblx0XHRcdFx0eUR1cmF0aW9uOjAsXHJcblx0XHRcdFx0dXNlZDozMTcsXHJcblx0XHRcdFx0dXNlZFByOiA5MCxcclxuXHRcdFx0XHRzdG9ja0NvdW50OjAsXHJcblx0XHRcdFx0ZW1wdHlDb3VudDowLFxyXG5cdFx0XHRcdG5vbmVDb3VudDowLFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcclxuXHRcdFx0XHRcdFwiTGluZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwiY2F0ZWdvcmllc1wiOiBbXSxcclxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcIlBpZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XHJcblx0XHRcdFx0XHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHRcdFx0XHRcdH1dXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Y2hhcnRzRGF0YUxpbmUxOiB7fSxcclxuXHRcdFx0XHRjaGFydHNEYXRhUGllMjoge30sXHJcblx0XHRcdFx0cmluZ09wdHM6e30sXHJcblx0XHRcdFx0eWVhcjoyMDIyLFxyXG5cdFx0XHRcdG1vbnRoOjQsXHJcblx0XHRcdFx0ZGF5OjE0LFxyXG5cdFx0XHRcdGhvdXJzOjEzLFxyXG5cdFx0XHRcdG1pbnV0ZXM6MzgsXHJcblx0XHRcdFx0c2Vjb25kczoxMyxcclxuXHRcdFx0XHR3ZWVrOifmmJ/mnJ/lm5snLFxyXG5cdFx0XHRcdGFuaTonJyxcclxuXHRcdFx0XHQvLyBtb3ZlOiAndXBNb3ZlIDEuNXMgMTsnLFxyXG5cdFx0XHRcdG1vdmU6ZmFsc2UsXHJcblx0XHRcdFx0dG9wTW92ZTondG9wVXAnLFxyXG5cdFx0XHRcdGZsb29yTW92ZTonJyxcclxuXHRcdFx0XHR2ZXJzaW9uOicnLFxyXG5cdFx0XHRcdC8vIG5ld3NwYXBlcjon5ouj5paZ5Ye65bqT77yINDQyNilcXG7mupDlupPkvY3vvJoxMjAwMTAxXFxu55uu5qCH56uZ77yaMTg2XFxuMTEwMTg0Mi0xMDAwMC0yMjA0NzUxODUxN1xcblxcbicsXHRcclxuXHRcdFx0XHRuZXdzcGFwZXI6JycsXHJcblx0XHRcdFx0ZXJyb3JQYXBlcjonJyxcclxuXHRcdFx0XHR0aXRsZTonJyxcclxuXHRcdFx0XHRzdGFObzonJyxcclxuXHRcdFx0XHRtYXRucjonJyxcclxuXHRcdFx0XHRtYWtueDonJyxcclxuXHRcdFx0XHRzcGVjczonJyxcclxuXHRcdFx0XHRjb3VudDonJyxcclxuXHRcdFx0XHRvcmRlck5vOm51bGwsXHJcblx0XHRcdFx0ZG9uZU9mVHJheTonJyxcclxuXHRcdFx0XHR0b3RhbE9mVHJheTonJyxcclxuXHRcdFx0XHRkb25lT2ZVbml0OicnLFxyXG5cdFx0XHRcdHRvdGFsT2ZVbml0OicnLFxyXG5cdFx0XHRcdGVycm9yTXNnOm51bGwsXHJcblx0XHRcdFx0d2lkdGg6J2Z1bGwtd2lkdGgnLFxyXG5cdFx0XHRcdGVycm9yU2hvdzonJyxcclxuXHRcdFx0XHRwYWtpblNob3c6JycsXHJcblx0XHRcdFx0cGFraW5HdW46JycsXHJcblx0XHRcdFx0b3JkZXJTaG93OmZhbHNlLFxyXG5cdFx0XHRcdHN3aXBlcjonc3dpcGVyLWhlcmUnLFxyXG5cdFx0XHRcdGF1dG9wbGF5OnRydWUsIC8vIOiHquWKqOW+queOr1xyXG5cdFx0XHRcdGludGVydmFsOjEwMDAsIC8vIOiwg+eUqOaXtumVv1xyXG5cdFx0XHRcdGR1cmF0aW9uOjgwMDAsIC8vIOenu+WKqOmAn+W6plxyXG5cdFx0XHRcdG1hdExpc3Q6W10sIC8vIOiuouWNleWIl+ihqFxyXG5cdFx0XHRcdGVqZWN0U2hvdzogZmFsc2UsXHJcblx0XHRcdFx0XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0Y29uc3QgQmFzZUlQID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlSXAnKTtcclxuXHRcdFx0Y29uc3QgQmFzZUxlZElkID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlTGVkSWQnKTtcclxuXHRcdFx0Y29uc3QgQmFzZVBvcnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyk7XHJcblx0XHRcdGNvbnN0IEJhc2VDcm5JZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyk7XHJcblx0XHRcdFx0dGhhdC5iYXNlSVAgPSBCYXNlSVBcclxuXHRcdFx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxyXG5cdFx0XHRcdHRoYXQuYmFzZVBvcnQgPSBCYXNlUG9ydFxyXG5cdFx0XHRcdHRoYXQuYmFzZUNybklkID0gQmFzZUNybklkXHJcblx0XHRcdHRoaXMuZ2V0VXJsKClcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdFxyXG5cdFx0fSxcclxuXHRcdG9uUmVhZHkoKSB7XHJcblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcclxuXHRcdFx0XHQvLyDojrflvpfliJ3lp4vmlbDmja5cclxuXHRcdFx0XHR0aGlzLmluaXRsaW5lQ2hhcnQoKTtcclxuXHRcdFx0XHR0aGlzLmluaXRQaWVDaGFydCgpO1xyXG5cdFx0XHRcdC8vIOS4u+mhteS/oeaBr1xyXG5cdFx0XHRcdHRoaXMuZ2V0U2VydmVyRGF0YSgpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0T3RoZXIoKTtcclxuXHRcdFx0XHQvLyDlhbbku5bkv6Hmga9cclxuXHRcdFx0XHR0aGlzLmdldERhdGUoKTtcclxuXHRcdFx0XHR0aGlzLmdldFBha2luKCk7XHJcblx0XHRcdFx0dGhpcy5nZXRFcnJvcigpO1xyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0WVlZKCk7XHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRFRUUoKTtcclxuXHRcdFx0XHR0aGlzLmFuaW1hdGlvbigpXHJcblx0XHRcdFx0dGhpcy5nZXRVcmwoKVxyXG5cdFx0XHR9LDEwMDApXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvLyDojrflj5Z1cmxcclxuXHRcdFx0Z2V0VXJsKCkge1xyXG5cdFx0XHRcdHRoaXMuY29tbW9uVXJsID0gdGhpcy5iYXNlSHR0cCArIHRoaXMuYmFzZUlQICsgJzonICt0aGlzLmJhc2VQb3J0ICsgdGhpcy5iYXNlVXJsXHJcblx0XHRcdFx0dGhpcy5jaGFydHNEYXRhTGluZTEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlbW9kYXRhLkxpbmUpKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cclxuXHRcdFx0Z2V0WVlZKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHZhciByZXN1bHQgPSB5Y3FkYXRhLmRhdGFFRUVcclxuXHRcdFx0XHQvLyDmtYvor5XnlKgg4oaTXHJcblx0XHRcdFx0dmFyXHRyZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdC8vIOa1i+ivleeUqCDihpFcclxuXHRcdFx0XHQvLyDov5Tlm57nu5PmnpzmnInlgLwg5LiU5YC85LiN562J5LqO56m65YC8IOWwseaYr+aciemUmeivr+S/oeaBr+mcgOimgeWxleekulxyXG5cdFx0XHRcdGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YSAhPT0gXCJcIikge1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR0aGF0LmVycm9yTXNnID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2UgLy8g5pi+56S6XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoYXQuZXJyb3JQYXBlciA9ICcnXHJcblx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRpZiAodGhhdC5wYWtpblNob3cpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZSAvLyDpmpDol49cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldEVFRSAoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcclxuXHRcdFx0XHR2YXIgc3RyID0gJydcclxuXHRcdFx0XHRsZXQgcmVzdWx0ID0geWNxZGF0YS5kYXRhWVlZXHJcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpNcclxuXHRcdFx0XHRsZXRcdHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpFcclxuXHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5YWo5p2/5Ye65bqTJ1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gJ+ajgOaWmeWHuuW6kydcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cclxuXHRcdFx0XHRcdFx0dGhhdC5tYXRuciA9ICfllYblk4HnvJblj7fvvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYXRuclxyXG5cdFx0XHRcdFx0XHR0aGF0Lm1ha254ID0gJ+WVhuWTgeWQjeensO+8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1ha254XHJcblx0XHRcdFx0XHRcdHRoYXQuY291bnQgPSAn5Ye65bqT5pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLm9yZGVyTm8pIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBcIuiuouWNleWPt++8mlwiICsgcmVzLmRhdGFbMF0ub3JkZXJOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnaGFsZi13aWR0aCdcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBudWxsO1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2Z1bGwtd2lkdGgnXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZUcmF5ID0gJ+W3suWHuuaJmOebmOaVsDonICsgcmVzLmRhdGFbMF0uZG9uZU9mVHJheVxyXG5cdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZUcmF5ID0gJ+aJmOebmOaAu+aVsOmHj++8micgKyByZXMuZGF0YVswXS50b3RhbE9mVHJheVxyXG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlVuaXQgPSAn5bey5Ye6566x5pWw77yaJyArIHJlcy5kYXRhWzBdLmRvbmVPZlVuaXRcclxuXHRcdFx0XHRcdFx0dGhhdC50b3RhbE9mVW5pdCA9ICfmgLvnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0udG90YWxPZlVuaXRcclxuXHRcdFx0XHRcdFx0aWYgKHRoYXQuZXJyb3JTaG93KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubmV3c3BhcGVyID0gbmV3c0RhdGFcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1lbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6I635Y+W6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdGdldEVycm9yKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHZhciByZXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWQvZXJyb3JcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0bGVkSWQ6dGhhdC5iYXNlTGVkSWRcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHRyZXMgPSByZXN1bHQuZGF0YSBcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvck1zZyA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvclNob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2UgLy8g5pi+56S6XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvclNob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdC8vIGlmICh0aGF0LnBha2luU2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdC8vIFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gXHQvLyB0aGF0Lm1vdmUgPSB0cnVlIC8vIOmakOiXj1xyXG5cdFx0XHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRQYWtpbiAoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dGhhdC5tYXRMaXN0ID0gW10gLy8g5riF56m65p2h56CB5YiX6KGoXHJcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcclxuXHRcdFx0XHR2YXIgc3RyID0gJydcclxuXHRcdFx0XHRsZXQgcmVzIFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZFwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRsZWRJZDp0aGF0LmJhc2VMZWRJZFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGlmICh0aGF0LmVycm9yU2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybjsgIC8vIOaciemUmeivr+S/oeaBr1xyXG5cdFx0XHRcdFx0XHR9IFxyXG5cdFx0XHRcdFx0XHRpZihyZXMuZGF0YSAmJiByZXMuZGF0YSAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gJ+ajgOaWmeWHuuW6kydcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gcmVzLmRhdGFbMF0udGl0bGVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5tYWtueCA9ICfllYblk4HlkI3np7DvvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYWtueFxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3BlY3MgPSAn6KeE5qC877yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uc3BlY3NcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmNvdW50ID0gJ+WHuuW6k+aVsOmHj++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLmNvdW50XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLm9yZGVyTm8pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnaGFsZi13aWR0aCdcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlck5vID0gbnVsbDtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZUcmF5ID0gJ+W3suWHuuaJmOebmOaVsDonICsgcmVzLmRhdGFbMF0uZG9uZU9mVHJheVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZVbml0ID0gJ+W3suWHuueuseaVsO+8micgKyByZXMuZGF0YVswXS5kb25lT2ZVbml0XHJcblx0XHRcdFx0XHRcdFx0dGhhdC50b3RhbE9mVW5pdCA9ICfmgLvnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0udG90YWxPZlVuaXRcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm5ld3NwYXBlciA9IG5ld3NEYXRhXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0fWVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IHRydWVcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRhbmltYXRpb24oKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMubW92ZSkgeyBcclxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BVcCdcclxuXHRcdFx0XHRcdHRoaXMuZmxvb3JNb3ZlID0gJ2Zsb29yVXAnXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BEb3duJ1xyXG5cdFx0XHRcdFx0dGhpcy5mbG9vck1vdmUgPSAnZmxvb3JEb3duJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0RGF0ZUZvcm1hdCh2YWx1ZSkge1xyXG5cdFx0XHRcdHZhciBkYXRlID0gbmV3IERhdGUoKTsvLyDojrflj5blvZPliY3ml7bpl7RcclxuXHRcdFx0XHRkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyB2YWx1ZSk7Ly8g6K6+572u5aSp5pWwIC0xIOWkqVxyXG5cdFx0XHRcdHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMVxyXG5cdFx0XHRcdHZhciBkID0gZGF0ZS5nZXREYXRlKClcclxuXHRcdFx0XHR2YXIgbmV3RGF0ZSA9IG0gKyAnLScgKyBkXHJcblx0XHRcdFx0cmV0dXJuIG5ld0RhdGVcclxuXHRcdFx0fSxcclxuLyoqKioqKioqKioqKioqKiDmipjnur/lm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblx0XHRcdGluaXRsaW5lQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGluZS9jaGFydHNcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLmNhdGVnb3JpZXMgPSBbXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTExKSx0aGF0LmdldERhdGVGb3JtYXQoLTEwKSx0aGF0LmdldERhdGVGb3JtYXQoLTkpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOCksXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC0zKSx0aGF0LmdldERhdGVGb3JtYXQoLTIpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMSksdGhhdC5nZXREYXRlRm9ybWF0KDApLF1cclxuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5zZXJpZXMgPSByZXMuZGF0YS5yb3dzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4vKioqKioqKioqKioqKioqIOmlvOWbviAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHRcdFx0aW5pdFBpZUNoYXJ0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xvYy9yZXBcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5QaWUuc2VyaWVzWzBdLmRhdGEgPSByZXMuZGF0YS5waWVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnN0b2NrQ291bnQgPSByZXMuZGF0YS5zdG9ja0N1bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5ub25lQ291bnQgPSByZXMuZGF0YS5ub25lQ291bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnVzZWQgPSByZXMuZGF0YS51c2VkXHJcblx0XHRcdFx0XHRcdFx0dGhhdC51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE90aGVyKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdC8vIGh0dHA6Ly8xMC4xMC4wLjIyMjo5MDkwL2prd2NzL21vbml0b3IvbGVkP2xlZElkPTE4NlxyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0Y3JuSWQ6IHRoYXQuYmFzZUNybklkLCBcclxuXHRcdFx0XHRcdFx0bGVkSWQ6IDEsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcclxuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC54RGlzdGFuY2UgPSByZXMuZGF0YS54RGlzdGFuY2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnlEaXN0YW5jZSA9IHJlcy5kYXRhLnlEaXN0YW5jZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQueER1cmF0aW9uID0gcmVzLmRhdGEueER1cmF0aW9uXHJcblx0XHRcdFx0XHRcdFx0dGhhdC55RHVyYXRpb24gPSByZXMuZGF0YS55RHVyYXRpb25cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChyZXMuY29kZSA9PT0gNDAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlamVjdGVkICgpIHtcclxuXHRcdFx0XHR0aGlzLmVqZWN0U2hvdyA9IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5by55Ye65bGC56Gu6K6kXHJcblx0XHRcdGVqZWN0Q29uZmlybSgpIHtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyx0aGlzLmJhc2VQb3J0KTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcsdGhpcy5iYXNlQ3JuSWQpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcclxuXHRcdFx0XHR0aGlzLmVqZWN0U2hvdyA9IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOW8ueWHuuWxguWPlua2iFxyXG5cdFx0XHRlamVjdENsb3NlKCkge1xyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0U2VydmVyRGF0YSgpIHtcclxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFMaW5lMT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hhcnRzRGF0YS5MaW5lKSlcclxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLlBpZSkpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbXBsZXRlKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIua4suafk+WujOaIkOS6i+S7tlwiLGUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXREYXRlKCkge1xyXG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdFx0dGhpcy55ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHR0aGlzLm1vbnRoID0gKGR0LmdldE1vbnRoKCkrMSkgPCAxMCA/ICcwJysgKGR0LmdldE1vbnRoKCkrMSkgOiAoZHQuZ2V0TW9udGgoKSsxKTtcclxuXHRcdFx0XHR0aGlzLmRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcclxuXHRcdFx0XHR0aGlzLmhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcblx0XHRcdFx0dGhpcy5taW51dGVzID0gZHQuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRNaW51dGVzKCkgOiBkdC5nZXRNaW51dGVzKCk7XHJcblx0XHRcdFx0dGhpcy5zZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxyXG5cdFx0XHRcdHRoaXMud2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcblx0XHRcdFx0c3dpdGNoICh0aGlzLndlZWtzKSB7XHJcblx0XHRcdFx0XHRjYXNlIDA6IHRoaXMud2VlayA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAxOiB0aGlzLndlZWsgPSBcIuaYn+acn+S4gFwiOyBicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgMjogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuoxcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDM6IHRoaXMud2VlayA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OiB0aGlzLndlZWsgPSBcIuaYn+acn+Wbm1wiOyBicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgNTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kupRcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRkZWZhdWx0IDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lha1cIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQvKiDlvLnlh7o66YWN572u5Yy65Z+fICovXHJcblx0LmVqZWN0LW1hc2sge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0ei1pbmRleDogOTk5O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcdFxyXG5cdH1cclxuXHQuZWplY3R7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR3aWR0aDogNjAwcHg7XHJcblx0XHRoZWlnaHQ6IDM1MHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDI1cnB4O1xyXG5cdH1cclxuXHQuZWplY3QtdGl0bGUge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEwMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGNvbG9yOiBcdCM2MDYyNjY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCB7XHJcblx0XHRcclxuXHR9XHJcblx0Lml0ZW0ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW46IDEwcHggMCAwIDA7XHJcblx0fVxyXG5cdC5kZXNjIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdGNvbG9yOiAjNjA2MjY2O1xyXG5cdFx0Zm9udC1zaXplOiAxOHB4O1xyXG5cdH1cclxuXHQuaW5wdXQge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDVweDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDVweDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAzMHB4O1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI0MwQzRDQztcclxuXHRcdG1hcmdpbi1yaWdodDogNTBweDtcclxuXHR9XHJcblx0LmVqZWN0LWlucHV0IGlucHV0IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHJcblx0XHRcclxuXHR9XHJcblx0LmVqZWN0LWJ1dHRvbiB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGhlaWdodDogNjBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA2MHB4O1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcclxuXHR9XHJcblx0LmJ1dHRvbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjOTA5Mzk5O1xyXG5cdH1cclxuXHQuYnV0dG9uLWl0ZW06bGFzdC1jaGlsZCB7XHJcblx0XHRjb2xvcjogIzY3QzIzQTtcclxuXHRcdFxyXG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xyXG5cdH1cclxuXHQuZnVsbC13aWR0aCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdH1cclxuXHQuaGFsZi13aWR0aCB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0fVxyXG5cdC5ib3gtaXRlbXMge1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMyMzM3NTE7ICovXHJcblx0XHRsaW5lLWhlaWdodDogMzAwcnB4O1xyXG5cdH1cclxuXHQvKiDlvZPliY3pobXpnaLml6Agb3JkZXJObyAqL1xyXG5cdC5zd2lwZXItaGVyZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdH1cclxuXHQvKiDlvZPliY3pobXpnaLmnIkgb3JkZXJObyAqL1xyXG5cdC5zd2lwZXItaGVyZS1vTntcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwNjNBN0I7ICovXHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA5MCU7XHJcblx0fVxyXG5cdC8qIOW9k+WJjemhtemdouaciSBlcnJvcuaPkOekuiAqL1xyXG5cdC5zd2lwZXItaGVyZS1lcnJvciB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDYzQTdCOyAqL1xyXG5cdFx0LyogbWFyZ2luOiAwIGF1dG87ICovXHJcblx0XHRtYXJnaW4tdG9wOiAyMCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblx0LmFuaW1hdGUge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdCAgICAgICAgICAgIC8qIHdoaXRlLXNwYWNlOiBub3dyYXA7ICovXHJcblx0ICAgICAgICAgICAgYW5pbWF0aW9uOiAyNXMgd29yZHNMb29wIGxpbmVhciBpbmZpbml0ZSBub3JtYWw7XHJcblx0ICAgICAgICB9XHJcblx0IFxyXG5cdCAgICAgICAgQGtleWZyYW1lcyB3b3Jkc0xvb3Age1xyXG5cdCAgICAgICAgICAgIDAlIHtcclxuXHQgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTtcclxuXHQgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpO1xyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgICAgICAxMDAlIHtcclxuXHQgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcclxuXHQgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgIH1cclxuXHQgXHJcblx0ICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgd29yZHNMb29wIHtcclxuXHQgICAgICAgICAgICAwJSB7XHJcblx0ICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7XHJcblx0ICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgMTAwJSB7XHJcblx0ICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XHJcblx0ICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcblx0LyogYW5pbWF0aW9uOnVwTW92ZSAxLjVzIDE7ICovXHJcblx0LyogZG93bk1vdmUgKi9cclxuXHQvKiDkuIrlsYLlkJHkuIogKi9cclxuXHQudG9wVXAge1xyXG5cdFx0YW5pbWF0aW9uOiB0b3BVcCAxLjVzIDE7XHJcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG5cdH1cclxuXHRAa2V5ZnJhbWVzIHRvcFVwIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwLjU7XHJcblx0XHRcdC8qIGJhY2tncm91bmQtY29sb3I6Ymx1ZTsgKi9cclxuXHRcdFx0dG9wOi0xMDgwcHhcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiDkuIrlsYLlkJHkuIsgKi9cclxuXHQudG9wRG93biB7XHJcblx0XHRhbmltYXRpb246IHRvcERvd24gMS41cyAxO1xyXG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuXHR9XHJcblx0QGtleWZyYW1lcyB0b3BEb3duXHJcblx0XHR7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpyZWQ7ICovXHJcblx0XHRcdHRvcDogMDtcclxuXHRcdH1cclxuXHRcdHRvIHtcclxuXHRcdFx0b3BhY2l0eTogMC41O1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7ICovXHJcblx0XHRcdHRvcDotMTA4MHB4XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIOS4i+WxguWQkeS4iiAqL1xyXG5cdC5mbG9vclVwIHtcclxuXHRcdGFuaW1hdGlvbjogZmxvb3JVcCAxLjVzIDE7XHJcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG5cdH1cclxuXHRAa2V5ZnJhbWVzIGZsb29yVXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpibHVlOyAqL1xyXG5cdFx0XHR0b3A6IDBweDtcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAxMDgwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIOS4i+WxguWQkeS4iyAqL1xyXG5cdC5mbG9vckRvd24ge1xyXG5cdFx0YW5pbWF0aW9uOiBmbG9vckRvd24gMS41cyAxO1xyXG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuXHR9XHJcblx0QGtleWZyYW1lcyBmbG9vckRvd24ge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpibHVlOyAqL1xyXG5cdFx0XHR0b3A6IDEwODBweDtcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAtMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQudG9wLXNjcmVlbiB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR3aWR0aDogMTkyMHB4O1xyXG5cdFx0aGVpZ2h0OiAxMDgwcHg7XHJcblx0XHQvKiB0b3A6IC0xMDAwcHg7ICovXHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuXHRcdC8qIGJhY2tncm91bmQ6cmVkOyAqL1xyXG5cdFx0LyogYW5pbWF0aW9uOnVwTW92ZSAxLjVzIDE7ICovXHJcblx0XHR6LWluZGV4OiA5OTk7XHJcblx0fVxyXG5cdC5mbG9vci1zY3JlZW4ge1xyXG5cdFx0d2lkdGg6IDE5MjBweDtcclxuXHRcdGhlaWdodDogMTA4MHB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRmb250LXNpemU6IDEyMHJweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiA1cnB4O1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0fVxyXG5cdC5jb250YWluZXIge1xyXG5cdFx0d2lkdGg6IDE5MjBweDtcclxuXHRcdGhlaWdodDogMTA4MHB4O1xyXG5cdFx0XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kOiAjMDAwNDI4OyAgXHJcblx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwNGU5MiwgIzAwMDQyOCk7ICBcclxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwNGU5MiwgIzAwMDQyOCk7ICovXHJcblx0fVxyXG5cdC5oZWFkIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM1NWFhZmY7ICovXHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDExMHB4O1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHRmb250LXNpemU6IDQwcHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDVweDtcclxuXHR9XHJcblx0LmhlYWQgdGV4dCB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEsMC45KTtcclxuXHR9XHJcblx0LnRpbWUtdG9vbHMge1xyXG5cdFx0aGVpZ2h0OiA1JTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwMDdBRkY7ICovXHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRyaWdodDogNTBweDtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRsaW5lLWhlaWdodDogNzBweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XHJcblx0fVxyXG5cdC5idXR0b24tbGVmdCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdHRvcDogMS44JTtcclxuXHRcdGxlZnQ6IDIxLjMlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG5cdH1cclxuXHQuYnV0dG9uLXJpZ2h0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cdFx0dG9wOiAxLjglO1xyXG5cdFx0bGVmdDogNjUlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdH1cclxuXHQubWFpbiB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjM0Y1MzZFOyAqL1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDkwJTtcclxuXHR9XHJcblx0Lm1haW4tc2lkZXMge1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzAwNEU5MjsgKi9cclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdC8qIG1hcmdpbjogMiUgYXV0byAwIDMuMiU7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwLCA4MCwgMTM2LCAxKTsgKi9cclxuXHR9XHJcblx0LmJveCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAqL1xyXG5cdFx0bWFyZ2luOiAzJSAyJSAwIDIlO1xyXG5cdFx0d2lkdGg6IDk2JTtcclxuXHRcdGhlaWdodDogMzAlO1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgyMCwgODAsIDEzNiwgMSk7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdH1cclxuXHQuYm94LWxnIHtcclxuXHRcdGhlaWdodDogOTQlO1xyXG5cdH1cclxuXHQuYm94LWJvcmRlciB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjNENEOTY0OyAqL1xyXG5cdFx0d2lkdGg6IDEwcHg7XHJcblx0XHRoZWlnaHQ6IDEwcHg7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMSB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjMzFjNGM0O1xyXG5cdFx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICMzMWM0YzQ7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMiB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItdG9wOiAycHggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXIzIHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1sZWZ0OiAycHggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXI0IHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuY29udGVudCB7XHJcblx0ICBkaXNwbGF5OiBmbGV4O1xyXG5cdCAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHQgIGZsZXg6IDE7XHJcblx0fVxyXG5cdFxyXG5cdC5jaGFydHMtYm94IHtcclxuXHQgIHdpZHRoOiA4MCU7XHJcblx0ICBoZWlnaHQ6IDIzMHB4O1xyXG5cdCAgbWFyZ2luLWxlZnQ6IDEwJTtcclxuXHQgIC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmY7ICovXHJcblx0fVxyXG5cdC5yaW5nIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDYwJTtcclxuXHRcdGhlaWdodDogMzAwcHg7XHJcblx0XHRtYXJnaW4tbGVmdDogLTEwJTtcclxuXHR9XHJcblx0LmJveC1pdGVtIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMyQzQwNUE7ICovXHJcblx0XHR3aWR0aDogOTIlO1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHRtYXJnaW4tbGVmdDogNCU7XHJcblx0XHRwYWRkaW5nLXRvcDogMWVtO1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2Uge1xyXG5cdFx0aGVpZ2h0OiAzMCU7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2UgaDIge1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDVweDtcclxuXHRcdFxyXG5cdH1cclxuXHQuZW5nbGlzaCB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2UtY29udGVudCB7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRwYWRkaW5nLXRvcDogMmVtO1xyXG5cdFx0dGV4dC1pbmRlbnQ6IDJlbTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAyZW07XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mbyB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM0MDVBOyAqL1xyXG5cdFx0aGVpZ2h0OiA0NSU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNFRTY2NjY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiA0MCU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIGltYWdlIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiAyMCU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIHZpZXcge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwJTtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRoZWlnaHQ6IDQ5JTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7ICovXHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIC5jb3VudCwgLmNoYXJnZS1pbmZvLWl0ZW0gLnVuaXR7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmb250LXNpemU6IDMycHg7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDUlO1xyXG5cdH1cclxuXHQuY2hhcmdlLWluZm8taXRlbSAudW5pdCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRyaWdodDogMjAlO1xyXG5cdH1cclxuXHQuZm9vdGVyIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAsIDgwLCAxMzYsIDEpO1xyXG5cdFx0aGVpZ2h0OiAxNSU7XHJcblx0fVxyXG5cdC51c2UtaW5mbyB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUZGOyAqL1xyXG5cdH1cclxuXHQudXNlLWxlZnQge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzJDNDA1QTsgKi9cclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0fVxyXG5cdC51c2UtcmlnaHQge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzJDNDA1QTsgKi9cclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHdpZHRoOiAyMCU7XHJcblx0fVxyXG5cdC51c2UtbWFpbiB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogNzUlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHR9XHJcblx0LnVzZS1tYWluIC5sZWZ0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmFhN2Y7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRsaW5lLWhlaWdodDogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgLnByb2dyZXNzQmFyIHtcclxuXHRcdC8qIG1hcmdpbi1sZWZ0OiA7ICovXHJcblx0XHRtYXJnaW4tdG9wOiA5JTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzNzUxO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgLnByb2dyZXNzIHtcclxuXHRcdC8qIHdpZHRoOiA5MCU7ICovXHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkY1NzIyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgcHJvZ3Jlc3Mge1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwJTtcclxuXHRcdG1hcmdpbi10b3A6IDEwJTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxuXHQudXNlLW1haW4gLnJpZ2h0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmFhZmY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR3aWR0aDogMjAlO1xyXG5cdFx0Zm9udC1zaXplOiA0MHB4O1xyXG5cdFx0Y29sb3I6ICNGRjU3MjI7XHJcblx0XHRsaW5lLWhlaWdodDogMTMwcHg7XHJcblx0fVxyXG5cdC5ib3gtdHAge1xyXG5cdFx0aGVpZ2h0OiAzMCU7XHJcblx0fVxyXG5cdC5ib3gtdHAgLnN1Yi1tYWluIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7ICovXHJcblx0fVxyXG5cdC5ib3gtbWQge1xyXG5cdFx0aGVpZ2h0OiA0MyU7XHJcblx0fVxyXG5cdC5ib3gtbWQgLnN1Yi1tYWluIHtcclxuXHR9XHJcblx0LnN1Yi1tYWluLXJpZ2h0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0fVxyXG5cdC5zdWItaW5mbyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMzMlO1xyXG5cdH1cclxuXHQuc3ViLWluZm8gaW1hZ2Uge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR3aWR0aDogMTUlO1xyXG5cdH1cclxuXHQuc3ViLWluZm8gdGV4dCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDogNDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEyMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdH1cclxuXHQuYm94LWJ0IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwNjNBN0I7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRoZWlnaHQ6IDE1JTtcclxuXHRcdGNvbG9yOiAjRkZGRkZGO1xyXG5cdH1cclxuXHQuYm94LWJ0IGltYWdlIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0d2lkdGg6IDIwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblx0LmJveC1idCB7XHJcblx0XHRmb250LXNpemU6IDM2cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTQwcHg7XHJcblx0XHR0ZXh0LWluZGVudDogNWVtO1xyXG5cdH1cclxuXHQucmlnaHQtaXRlbSB7XHJcblx0XHRoZWlnaHQ6IDk0JTtcclxuXHR9XHJcblx0LnN1Yi1sZWZ0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDQwJTtcclxuXHR9XHJcblx0LnN1Yi1yaWdodCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHR3aWR0aDogMjAlO1xyXG5cdH1cclxuXHQuc3ViLW1haW4ge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzMxQzRDNDsgKi9cclxuXHRcdHdpZHRoOiA5MiU7XHJcblx0XHRoZWlnaHQ6IDgwJTtcclxuXHRcdGJvdHRvbTogMDtcclxuXHR9XHJcbjwvc3R5bGU+XHJcbjwhLS0ge1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDIzMDBcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDM3NTA1MTQ2XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDgwMVwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDc3MjlcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA3NzI3XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNzczMVwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDQ4MDdcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA0ODA1XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDc5N1wiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDQ3OTRcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA0NzkxXCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDc5M1wiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDUxNDFcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA3NzI4XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDgxMFwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDUxNDhcIixcImNvdW50XCI6MS4wfSAtLT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///137\n"); /***/ }), /* 138 */ /*!*******************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index/monitor.vue?mpType=page ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page */ 139);\n/* harmony import */ var _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./monitor.vue?vue&type=script&lang=js&mpType=page */ 141);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7d4f7644\",\n null,\n false,\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index/monitor.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkk7QUFDM0k7QUFDc0U7QUFDTDs7O0FBR2pFO0FBQzZLO0FBQzdLLGdCQUFnQixpTEFBVTtBQUMxQixFQUFFLHdGQUFNO0FBQ1IsRUFBRSx5R0FBTTtBQUNSLEVBQUUsa0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTM4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZDRmNzY0NCZzY29wZWQ9dHJ1ZSZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI3ZDRmNzY0NFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy9pbmRleC9tb25pdG9yLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///138\n"); /***/ }), /* 139 */ /*!*************************************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index/monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page ***! \*************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page */ 140); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 140 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/index/monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("view", [ _c("view", [ _c( "swiper", { attrs: { autoplay: _vm._$s(2, "a-autoplay", _vm.autoplay), interval: _vm._$s(2, "a-interval", _vm.interval), duration: _vm._$s(2, "a-duration", _vm.duration), _i: 2, }, }, _vm._l( _vm._$s(3, "f", { forItems: _vm.list }), function (item, index, $20, $30) { return _c( "swiper-item", { key: _vm._$s(3, "f", { forIndex: $20, key: index }) }, [_c("view", [_vm._v(_vm._$s("4-" + $30, "t0-0", _vm._s(item)))])] ) } ), 0 ), ]), ]) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 141 */ /*!*******************************************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/pages/index/monitor.vue?vue&type=script&lang=js&mpType=page ***! \*******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./monitor.vue?vue&type=script&lang=js&mpType=page */ 142);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXNsQixDQUFnQix3bEJBQUcsRUFBQyIsImZpbGUiOiIxNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL21vbml0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///141\n"); /***/ }), /* 142 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/pages/index/monitor.vue?vue&type=script&lang=js&mpType=page ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: '',\n data: function data() {\n return {\n autoplay: true,\n interval: 1000,\n duration: 1000,\n list: ['请点击发行菜单进行发布', '1', '体积较大;若要正式发布', '2', '运行模式下不压缩代码且含有sourcemap', '3', '检查是否启动多个微信开发者工具,如果是则关闭所有打开的微信开发者工具,', '4', '然后再重新运行', '5', '如果出现微信开发者工具启动后白屏的问题', '6', '或者关闭微信开发者工具,然后再从HBuilderX中启动指定页面', '7', '可以通过微信开发者工具切换pages.json中condition配置的页面', '8', '中修改文件并保存,会自动刷新微信模拟器', '9', '微信开发者工具已启动,在HBuilderX', '10']\n };\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJhdXRvcGxheSIsImludGVydmFsIiwiZHVyYXRpb24iLCJsaXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBY0E7RUFDQUE7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQyxPQUNBLGVBQ0EsS0FDQSxlQUNBLEtBQ0EsMEJBQ0EsS0FDQSx1Q0FDQSxLQUNBLFdBQ0EsS0FDQSx1QkFDQSxLQUNBLG9DQUNBLEtBQ0EsMENBQ0EsS0FDQSx1QkFDQSxLQUNBLHlCQUNBO0lBRUE7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbjx0ZW1wbGF0ZT5cclxuICAgIDx2aWV3PlxyXG4gICAgICAgIDx2aWV3PiBcclxuICAgICAgICAgICAgPHN3aXBlciBzdHlsZT1cImhlaWdodDogNTAwcHg7XCIgY2lyY3VsYXI9XCJ0cnVlXCIgdmVydGljYWw9XCJ0cnVlXCIgZGlzcGxheS1tdWx0aXBsZS1pdGVtcz1cIjE2XCIgOmF1dG9wbGF5PVwiYXV0b3BsYXlcIiA6aW50ZXJ2YWw9XCJpbnRlcnZhbFwiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3dpcGVyLWl0ZW0gdi1mb3I9XCIoaXRlbSxpbmRleCkgaW4gbGlzdFwiIDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3Pnt7aXRlbX19PC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPC9zd2lwZXItaXRlbT5cclxuICAgICAgICAgICAgPC9zd2lwZXI+XHJcbiAgICAgICAgPC92aWV3PlxyXG4gICAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuICAgIGV4cG9ydCBkZWZhdWx0e1xyXG4gICAgICAgIG5hbWU6JycsXHJcbiAgICAgICAgZGF0YSgpe1xyXG4gICAgICAgICAgICByZXR1cm57XHJcbiAgICAgICAgICAgICAgICBhdXRvcGxheTp0cnVlLFxyXG4gICAgICAgICAgICAgICAgaW50ZXJ2YWw6MTAwMCxcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOjEwMDAsXHJcbiAgICAgICAgICAgICAgICBsaXN0OltcclxuICAgICAgICAgICAgICAgICAgICAn6K+354K55Ye75Y+R6KGM6I+c5Y2V6L+b6KGM5Y+R5biDJyxcclxuXHRcdFx0XHRcdCcxJyxcclxuICAgICAgICAgICAgICAgICAgICAn5L2T56ev6L6D5aSn77yb6Iul6KaB5q2j5byP5Y+R5biDJyxcclxuXHRcdFx0XHRcdCcyJyxcclxuICAgICAgICAgICAgICAgICAgICAn6L+Q6KGM5qih5byP5LiL5LiN5Y6L57yp5Luj56CB5LiU5ZCr5pyJc291cmNlbWFwJyxcclxuXHRcdFx0XHRcdCczJyxcclxuICAgICAgICAgICAgICAgICAgICAn5qOA5p+l5piv5ZCm5ZCv5Yqo5aSa5Liq5b6u5L+h5byA5Y+R6ICF5bel5YW377yM5aaC5p6c5piv5YiZ5YWz6Zet5omA5pyJ5omT5byA55qE5b6u5L+h5byA5Y+R6ICF5bel5YW377yMJyxcclxuXHRcdFx0XHRcdCc0JyxcclxuICAgICAgICAgICAgICAgICAgICAn54S25ZCO5YaN6YeN5paw6L+Q6KGMJyxcclxuXHRcdFx0XHRcdCc1JyxcclxuICAgICAgICAgICAgICAgICAgICAn5aaC5p6c5Ye6546w5b6u5L+h5byA5Y+R6ICF5bel5YW35ZCv5Yqo5ZCO55m95bGP55qE6Zeu6aKYJyxcclxuXHRcdFx0XHRcdCc2JyxcclxuICAgICAgICAgICAgICAgICAgICAn5oiW6ICF5YWz6Zet5b6u5L+h5byA5Y+R6ICF5bel5YW377yM54S25ZCO5YaN5LuOSEJ1aWxkZXJY5Lit5ZCv5Yqo5oyH5a6a6aG16Z2iJyxcclxuXHRcdFx0XHRcdCc3JyxcclxuICAgICAgICAgICAgICAgICAgICAn5Y+v5Lul6YCa6L+H5b6u5L+h5byA5Y+R6ICF5bel5YW35YiH5o2icGFnZXMuanNvbuS4rWNvbmRpdGlvbumFjee9rueahOmhtemdoicsXHJcblx0XHRcdFx0XHQnOCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+S4reS/ruaUueaWh+S7tuW5tuS/neWtmO+8jOS8muiHquWKqOWIt+aWsOW+ruS/oeaooeaLn+WZqCcsXHJcblx0XHRcdFx0XHQnOScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W+ruS/oeW8gOWPkeiAheW3peWFt+W3suWQr+WKqO+8jOWcqEhCdWlsZGVyWCcsXHJcblx0XHRcdFx0XHQnMTAnLFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICB9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZCBsYW5nPVwic2Nzc1wiPlxyXG4gICAgLnNjcm9sbF9ib3h7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcclxuICAgICAgICBtYXJnaW46IDMwcnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcnB4O1xyXG4gICAgICAgIC5zd2lwZXJ7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwMHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///142\n"); /***/ }), /* 143 */ /*!***************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/App.vue ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 144);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDdUs7QUFDdkssZ0JBQWdCLGlMQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjE0My5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50c1xudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcIkFwcC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///143\n"); /***/ }), /* 144 */ /*!****************************************************************************!*\ !*** D:/workspace/v2/private/Monitor-APP/App.vue?vue&type=script&lang=js& ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../app/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./App.vue?vue&type=script&lang=js& */ 145);\n/* harmony import */ var _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_app_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_app_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQStpQixDQUFnQix5a0JBQUcsRUFBQyIsImZpbGUiOiIxNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uL2FwcC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi9hcHAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vYXBwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///144\n"); /***/ }), /* 145 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/workspace/v2/private/Monitor-APP/App.vue?vue&type=script&lang=js& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n onLaunch: function onLaunch() {\n __f__(\"log\", 'App Launch', \" at App.vue:4\");\n },\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:7\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:10\");\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFDZEEsUUFBUSxFQUFFLG9CQUFXO0lBQ3BCLGFBQVksWUFBWTtFQUN6QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVc7SUFDbEIsYUFBWSxVQUFVO0VBQ3ZCO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjE0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGRlZmF1bHQge1xuXHRvbkxhdW5jaDogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBMYXVuY2gnKVxuXHR9LFxuXHRvblNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdGNvbnNvbGUubG9nKCdBcHAgU2hvdycpXG5cdH0sXG5cdG9uSGlkZTogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBIaWRlJylcblx0fVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n"); /***/ }) ],[[0,"app-config"]]]);