(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[ /* 0 */ /*!***************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/main.js ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("__webpack_require__(/*! uni-pages */ 1);var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 107));\n\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 66));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}\n_vue.default.config.productionTip = false;\n_vue.default.prototype.baseHttp = 'http://';\n_vue.default.prototype.baseUrl = '/bfwcs';\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({},\n_App.default));\n\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiYmFzZUh0dHAiLCJiYXNlVXJsIiwiQXBwIiwibXBUeXBlIiwiYXBwIiwiJG1vdW50Il0sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBbUI7OztBQUduQixzRTtBQUNBQSxhQUFJQyxNQUFKLENBQVdDLGFBQVgsR0FBMkIsS0FBM0I7QUFDQUYsYUFBSUcsU0FBSixDQUFjQyxRQUFkLEdBQXlCLFNBQXpCO0FBQ0FKLGFBQUlHLFNBQUosQ0FBY0UsT0FBZCxHQUF3QixRQUF4QjtBQUNBQyxhQUFJQyxNQUFKLEdBQWEsS0FBYjtBQUNBLElBQU1DLEdBQUcsR0FBRyxJQUFJUixZQUFKO0FBQ0xNLFlBREssRUFBWjs7QUFHQUUsR0FBRyxDQUFDQyxNQUFKIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3VuaS1wYWdlcyc7aW1wb3J0IEFwcCBmcm9tICcuL0FwcCdcclxuXHJcblxyXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuVnVlLnByb3RvdHlwZS5iYXNlSHR0cCA9ICdodHRwOi8vJ1xyXG5WdWUucHJvdG90eXBlLmJhc2VVcmwgPSAnL2Jmd2NzJ1xyXG5BcHAubXBUeXBlID0gJ2FwcCdcclxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XHJcbiAgICAuLi5BcHBcclxufSlcclxuYXBwLiRtb3VudCgpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n"); /***/ }), /* 1 */ /*!******************************************************!*\ !*** D:/Workspace/zy/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 */ 2).default);}); __definePage('pages/index/index', function () {return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 20).default);}); __definePage('pages/index/monitor', function () {return Vue.extend(__webpack_require__(/*! pages/index/monitor.vue?mpType=page */ 102).default);}); /***/ }), /* 2 */ /*!***************************************************************************!*\ !*** D:/Workspace/zy/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 */ 3);\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 */ 18);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaG9tZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQwMjFjYjYmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvaG9tZS9ob21lLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n"); /***/ }), /* 3 */ /*!*********************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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 */ 4); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 4 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 */ 5) .default, yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 13).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.modeClass, styles: _vm.homeView, show: _vm.homeViewShow, _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("text")] ), _c( "view", { staticClass: _vm._$s(5, "sc", "time-tools"), attrs: { _i: 5 } }, [_vm._v(_vm._$s(5, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(6, "sc", "button-left"), attrs: { _i: 6 } }), _c("view", { staticClass: _vm._$s(7, "sc", "button-right"), attrs: { _i: 7 } }), _c( "view", { staticClass: _vm._$s(8, "sc", "main"), attrs: { _i: 8 } }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "mian-item"), attrs: { _i: 9 } }, [ _c( "view", { staticClass: _vm._$s(10, "sc", "mian-item-box"), attrs: { _i: 10 } }, [ _c("y-box", { attrs: { _i: 11 } }, [ _c( "view", { staticClass: _vm._$s(12, "sc", "box-item"), attrs: { _i: 12 } }, [ _c("text", { staticClass: _vm._$s(13, "sc", "item-title"), attrs: { _i: 13 } }), _c("text", { staticClass: _vm._$s( 14, "sc", "item-subTitle" ), attrs: { _i: 14 } }), _c("text", { staticClass: _vm._$s(15, "sc", "item-text"), attrs: { _i: 15 } }) ] ), _c( "view", { staticClass: _vm._$s(16, "sc", "box-item"), attrs: { _i: 16 } }, [ _c("text", { staticClass: _vm._$s(17, "sc", "item-title"), attrs: { _i: 17 } }), _c("text", { staticClass: _vm._$s( 18, "sc", "item-subTitle" ), attrs: { _i: 18 } }), _c( "view", { staticClass: _vm._$s(19, "sc", "img-box"), attrs: { _i: 19 } }, [ _c( "view", { staticClass: _vm._$s( 20, "sc", "item-img" ), attrs: { _i: 20 } }, [ _c("image", { attrs: { src: _vm._$s( 21, "a-src", __webpack_require__(/*! ../../static/a1.png */ 91) ), _i: 21 } }), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 23, "sc", "item-img" ), attrs: { _i: 23 } }, [ _c("image", { attrs: { src: _vm._$s( 24, "a-src", __webpack_require__(/*! ../../static/a1.png */ 91) ), _i: 24 } }), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 26, "sc", "item-img" ), attrs: { _i: 26 } }, [ _c("image", { attrs: { src: _vm._$s( 27, "a-src", __webpack_require__(/*! ../../static/a1.png */ 91) ), _i: 27 } }), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 29, "sc", "item-img" ), attrs: { _i: 29 } }, [ _c("image", { attrs: { src: _vm._$s( 30, "a-src", __webpack_require__(/*! ../../static/a1.png */ 91) ), _i: 30 } }), _c("view") ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(32, "sc", "box-item"), attrs: { _i: 32 } }, [ _c("text", { staticClass: _vm._$s(33, "sc", "item-title"), attrs: { _i: 33 } }), _c("text", { staticClass: _vm._$s( 34, "sc", "item-subTitle" ), attrs: { _i: 34 } }) ] ) ]) ], 1 ) ] ), _c( "view", { staticClass: _vm._$s(35, "sc", "mian-item"), attrs: { _i: 35 } }, [ _c( "view", { staticClass: _vm._$s(36, "sc", "mian-item-box"), attrs: { _i: 36 } }, [ _c("view", [ _c("view", [_c("y-box", { attrs: { _i: 39 } })], 1), _c("view"), _c("view", [_c("y-box", { attrs: { _i: 42 } })], 1), _c("view"), _c("view", [_c("y-box", { attrs: { _i: 45 } })], 1) ]) ] ) ] ) ] ) ] ) ] ) ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 5 */ /*!*******************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 6);\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& */ 8);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTYzNjlmOGM0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktdHJhbnNpdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n"); /***/ }), /* 6 */ /*!**************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 7); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 7 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 /***/ }), /* 8 */ /*!********************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 9);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWt0QixDQUFnQiw0ckJBQUcsRUFBQyIsImZpbGUiOiI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktdHJhbnNpdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8\n"); /***/ }), /* 9 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\nvar _createAnimation = __webpack_require__(/*! ./createAnimation */ 11);function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}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.\");}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 _iterableToArray(iter) {if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}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);if (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 = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}\n\n/**\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 */var _default2 =\n{\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({},\n 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() {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) {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 (typeof obj[i] === 'object') {var _this$animation;\n (_this$animation = this.animation)[i].apply(_this$animation, _toConsumableArray(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() {var _this = this;\n clearTimeout(this.timer);\n this.transform = '';\n this.isShow = true;var _this$styleInit =\n this.styleInit(false),opacity = _this$styleInit.opacity,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) {var _this2 = this;\n if (!this.animation) return;\n this.tranfromInit(true).\n step().\n run(function () {\n _this2.isShow = false;\n _this2.animationData = null;\n _this2.animation = null;var _this2$styleInit =\n _this2.styleInit(false),opacity = _this2$styleInit.opacity,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) {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) {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\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 } } };exports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSx3RTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQTtBQUNBLHVCQURBO0FBRUEsNEJBRkE7QUFHQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxvQkFGQSxFQURBOztBQUtBO0FBQ0EsMkJBREE7QUFFQSxhQUZBLHNCQUVBO0FBQ0E7QUFDQSxPQUpBLEVBTEE7O0FBV0E7QUFDQSxrQkFEQTtBQUVBLGtCQUZBLEVBWEE7O0FBZUE7QUFDQSxrQkFEQTtBQUVBLGFBRkEsc0JBRUE7QUFDQTtBQUNBLE9BSkEsRUFmQTs7QUFxQkE7QUFDQSxrQkFEQTtBQUVBLGlCQUZBLEVBckJBLEVBSEE7OztBQTZCQSxNQTdCQSxrQkE2QkE7QUFDQTtBQUNBLG1CQURBO0FBRUEsbUJBRkE7QUFHQSxnQkFIQTtBQUlBLHVCQUpBO0FBS0EsdUJBTEE7QUFNQSxnQkFOQTs7QUFRQSxHQXRDQTtBQXVDQTtBQUNBO0FBQ0EsYUFEQSxtQkFDQSxNQURBLEVBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BVkE7QUFXQSxxQkFYQSxFQURBLEVBdkNBOzs7QUFzREE7QUFDQTtBQUNBLGdCQUZBLDBCQUVBO0FBQ0E7QUFDQSxpQkFEQTtBQUVBLHlEQUZBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBYkE7QUFjQTtBQUNBLG1CQWZBLDZCQWVBO0FBQ0E7QUFDQSxLQWpCQSxFQXREQTs7QUF5RUEsU0F6RUEscUJBeUVBO0FBQ0E7QUFDQTtBQUNBLDZCQURBO0FBRUEsNEJBRkE7QUFHQSxnQ0FIQTtBQUlBLGNBSkE7O0FBTUE7QUFDQSxHQWxGQTtBQW1GQTtBQUNBOzs7QUFHQSxRQUpBLGtCQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVRBO0FBVUE7OztBQUdBLFdBYkEscUJBYUE7QUFDQTtBQUNBLDJCQURBOztBQUdBLEtBakJBO0FBa0JBOzs7O0FBSUEsUUF0QkEsZ0JBc0JBLEdBdEJBLEVBc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxTQU5BLENBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FyQ0E7QUFzQ0E7OztBQUdBLE9BekNBLGVBeUNBLEVBekNBLEVBeUNBO0FBQ0E7QUFDQTtBQUNBLEtBNUNBO0FBNkNBO0FBQ0EsUUE5Q0Esa0JBOENBO0FBQ0E7QUFDQTtBQUNBLHlCQUhBO0FBSUEsMkJBSkEsQ0FJQSxPQUpBLG1CQUlBLE9BSkEsQ0FJQSxTQUpBLG1CQUlBLFNBSkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FEQTs7QUFHQSxTQVBBLEVBT0EsRUFQQTtBQVFBLE9BVkE7QUFXQSxLQW5FQTtBQW9FQTtBQUNBLFNBckVBLGlCQXFFQSxJQXJFQSxFQXFFQTtBQUNBO0FBQ0E7QUFDQSxVQURBO0FBRUEsU0FGQSxDQUVBO0FBQ0E7QUFDQTtBQUNBLGdDQUhBO0FBSUEsK0JBSkEsQ0FJQSxPQUpBLG9CQUlBLE9BSkEsQ0FJQSxTQUpBLG9CQUlBLFNBSkE7QUFLQTtBQUNBO0FBQ0E7QUFDQSwrQkFEQTs7QUFHQSxPQVpBO0FBYUEsS0FwRkE7QUFxRkE7QUFDQSxhQXRGQSxxQkFzRkEsSUF0RkEsRUFzRkE7QUFDQTtBQUNBLHFCQURBOztBQUdBO0FBQ0E7QUFDQTtBQUNBLFNBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxPQU5BO0FBT0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUZBO0FBR0E7QUFDQTtBQUNBLEtBekdBO0FBMEdBO0FBQ0EsZ0JBM0dBLHdCQTJHQSxJQTNHQSxFQTJHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FwQkE7QUFxQkE7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUZBO0FBR0E7O0FBRUE7QUFDQSxLQTFJQTtBQTJJQSxpQkEzSUEseUJBMklBLElBM0lBLEVBMklBO0FBQ0E7QUFDQSwwQkFEQTtBQUVBLG9FQUZBO0FBR0EscUVBSEE7QUFJQSxzRUFKQTtBQUtBLHFFQUxBO0FBTUEsNEZBTkE7QUFPQSw2RkFQQTs7QUFTQSxLQXJKQTtBQXNKQTtBQUNBLGlCQXZKQSwyQkF1SkE7QUFDQTtBQUNBLHVCQURBO0FBRUEsaUNBRkE7QUFHQSxtQ0FIQTtBQUlBLG9DQUpBO0FBS0Esa0NBTEE7QUFNQSwwQkFOQTtBQU9BLDJCQVBBOztBQVNBLEtBaktBO0FBa0tBO0FBQ0EsVUFuS0Esa0JBbUtBLElBbktBLEVBbUtBO0FBQ0E7QUFDQSxLQXJLQSxFQW5GQSxFIiwiZmlsZSI6IjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgdi1pZj1cImlzU2hvd1wiIHJlZj1cImFuaVwiIDphbmltYXRpb249XCJhbmltYXRpb25EYXRhXCIgOmNsYXNzPVwiY3VzdG9tQ2xhc3NcIiA6c3R5bGU9XCJ0cmFuc2Zvcm1TdHlsZXNcIiBAY2xpY2s9XCJvbkNsaWNrXCI+PHNsb3Q+PC9zbG90Pjwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB7IGNyZWF0ZUFuaW1hdGlvbiB9IGZyb20gJy4vY3JlYXRlQW5pbWF0aW9uJ1xyXG5cclxuLyoqXHJcbiAqIFRyYW5zaXRpb24g6L+H5rih5Yqo55S7XHJcbiAqIEBkZXNjcmlwdGlvbiDnroDljZXov4fmuKHliqjnlLvnu4Tku7ZcclxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTk4NVxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IHNob3cgPSBbZmFsc2V8dHJ1ZV0g5o6n5Yi257uE5Lu25pi+56S65oiW6ZqQ6JePXHJcbiAqIEBwcm9wZXJ0eSB7QXJyYXl8U3RyaW5nfSBtb2RlQ2xhc3MgPSBbZmFkZXxzbGlkZS10b3B8c2xpZGUtcmlnaHR8c2xpZGUtYm90dG9tfHNsaWRlLWxlZnR8em9vbS1pbnx6b29tLW91dF0g6L+H5rih5Yqo55S757G75Z6LXHJcbiAqICBAdmFsdWUgZmFkZSDmuJDpmpDmuJDlh7rov4fmuKFcclxuICogIEB2YWx1ZSBzbGlkZS10b3Ag55Sx5LiK6Iez5LiL6L+H5rihXHJcbiAqICBAdmFsdWUgc2xpZGUtcmlnaHQg55Sx5Y+z6Iez5bem6L+H5rihXHJcbiAqICBAdmFsdWUgc2xpZGUtYm90dG9tIOeUseS4i+iHs+S4iui/h+a4oVxyXG4gKiAgQHZhbHVlIHNsaWRlLWxlZnQg55Sx5bem6Iez5Y+z6L+H5rihXHJcbiAqICBAdmFsdWUgem9vbS1pbiDnlLHlsI/liLDlpKfov4fmuKFcclxuICogIEB2YWx1ZSB6b29tLW91dCDnlLHlpKfliLDlsI/ov4fmuKFcclxuICogQHByb3BlcnR5IHtOdW1iZXJ9IGR1cmF0aW9uIOi/h+a4oeWKqOeUu+aMgee7reaXtumXtFxyXG4gKiBAcHJvcGVydHkge09iamVjdH0gc3R5bGVzIOe7hOS7tuagt+W8j++8jOWQjCBjc3Mg5qC35byP77yM5rOo5oSP5bim4oCZLeKAmOi/nuaOpeespueahOWxnuaAp+mcgOimgeS9v+eUqOWwj+mpvOWzsOWGmeazleWmgu+8mmBiYWNrZ3JvdW5kQ29sb3I6cmVkYFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdG5hbWU6ICd1bmlUcmFuc2l0aW9uJyxcclxuXHRlbWl0czpbJ2NsaWNrJywnY2hhbmdlJ10sXHJcblx0cHJvcHM6IHtcclxuXHRcdHNob3c6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdH0sXHJcblx0XHRtb2RlQ2xhc3M6IHtcclxuXHRcdFx0dHlwZTogW0FycmF5LCBTdHJpbmddLFxyXG5cdFx0XHRkZWZhdWx0KCkge1xyXG5cdFx0XHRcdHJldHVybiAnZmFkZSdcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGR1cmF0aW9uOiB7XHJcblx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0ZGVmYXVsdDogMzAwXHJcblx0XHR9LFxyXG5cdFx0c3R5bGVzOiB7XHJcblx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0ZGVmYXVsdCgpIHtcclxuXHRcdFx0XHRyZXR1cm4ge31cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGN1c3RvbUNsYXNzOntcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0ZGF0YSgpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGlzU2hvdzogZmFsc2UsXHJcblx0XHRcdHRyYW5zZm9ybTogJycsXHJcblx0XHRcdG9wYWNpdHk6IDEsXHJcblx0XHRcdGFuaW1hdGlvbkRhdGE6IHt9LFxyXG5cdFx0XHRkdXJhdGlvblRpbWU6IDMwMCxcclxuXHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0d2F0Y2g6IHtcclxuXHRcdHNob3c6IHtcclxuXHRcdFx0aGFuZGxlcihuZXdWYWwpIHtcclxuXHRcdFx0XHRpZiAobmV3VmFsKSB7XHJcblx0XHRcdFx0XHR0aGlzLm9wZW4oKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyDpgb/lhY3kuIrmnaXlsLHmiafooYwgY2xvc2Us5a+86Ie05Yqo55S76ZSZ5LmxXHJcblx0XHRcdFx0XHRpZiAodGhpcy5pc1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jbG9zZSgpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHQvLyDnlJ/miJDmoLflvI/mlbDmja5cclxuXHRcdHN0eWxlc09iamVjdCgpIHtcclxuXHRcdFx0bGV0IHN0eWxlcyA9IHtcclxuXHRcdFx0XHQuLi50aGlzLnN0eWxlcyxcclxuXHRcdFx0XHQndHJhbnNpdGlvbi1kdXJhdGlvbic6IHRoaXMuZHVyYXRpb24gLyAxMDAwICsgJ3MnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdGZvciAobGV0IGkgaW4gc3R5bGVzKSB7XHJcblx0XHRcdFx0bGV0IGxpbmUgPSB0aGlzLnRvTGluZShpKVxyXG5cdFx0XHRcdHRyYW5zZm9ybSArPSBsaW5lICsgJzonICsgc3R5bGVzW2ldICsgJzsnXHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHRyYW5zZm9ybVxyXG5cdFx0fSxcclxuXHRcdC8vIOWIneWni+WMluWKqOeUu+adoeS7tlxyXG5cdFx0dHJhbnNmb3JtU3R5bGVzKCkge1xyXG5cdFx0XHRyZXR1cm4gJ3RyYW5zZm9ybTonICsgdGhpcy50cmFuc2Zvcm0gKyAnOycgKyAnb3BhY2l0eTonICsgdGhpcy5vcGFjaXR5ICsgJzsnICsgdGhpcy5zdHlsZXNPYmplY3RcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNyZWF0ZWQoKSB7XHJcblx0XHQvLyDliqjnlLvpu5jorqTphY3nva5cclxuXHRcdHRoaXMuY29uZmlnID0ge1xyXG5cdFx0XHRkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcclxuXHRcdFx0dGltaW5nRnVuY3Rpb246ICdlYXNlJyxcclxuXHRcdFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJScsXHJcblx0XHRcdGRlbGF5OiAwXHJcblx0XHR9XHJcblx0XHR0aGlzLmR1cmF0aW9uVGltZSA9IHRoaXMuZHVyYXRpb25cclxuXHR9LFxyXG5cdG1ldGhvZHM6IHtcclxuXHRcdC8qKlxyXG5cdFx0ICogIHJlZiDop6blj5Eg5Yid5aeL5YyW5Yqo55S7XHJcblx0XHQgKi9cclxuXHRcdGluaXQob2JqID0ge30pIHtcclxuXHRcdFx0aWYgKG9iai5kdXJhdGlvbikge1xyXG5cdFx0XHRcdHRoaXMuZHVyYXRpb25UaW1lID0gb2JqLmR1cmF0aW9uXHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5hbmltYXRpb24gPSBjcmVhdGVBbmltYXRpb24oT2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZywgb2JqKSx0aGlzKVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog54K55Ye757uE5Lu26Kem5Y+R5Zue6LCDXHJcblx0XHQgKi9cclxuXHRcdG9uQ2xpY2soKSB7XHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NsaWNrJywge1xyXG5cdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIHJlZiDop6blj5Eg5Yqo55S75YiG57uEXHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gb2JqXHJcblx0XHQgKi9cclxuXHRcdHN0ZXAob2JqLCBjb25maWcgPSB7fSkge1xyXG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cclxuXHRcdFx0Zm9yIChsZXQgaSBpbiBvYmopIHtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0aWYodHlwZW9mIG9ialtpXSA9PT0gJ29iamVjdCcpe1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbltpXSguLi5vYmpbaV0pXHJcblx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0dGhpcy5hbmltYXRpb25baV0ob2JqW2ldKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoYOaWueazlSAke2l9IOS4jeWtmOWcqGApXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuYW5pbWF0aW9uLnN0ZXAoY29uZmlnKVxyXG5cdFx0XHRyZXR1cm4gdGhpc1xyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICogIHJlZiDop6blj5Eg5omn6KGM5Yqo55S7XHJcblx0XHQgKi9cclxuXHRcdHJ1bihmbikge1xyXG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cclxuXHRcdFx0dGhpcy5hbmltYXRpb24ucnVuKGZuKVxyXG5cdFx0fSxcclxuXHRcdC8vIOW8gOWni+i/h+W6puWKqOeUu1xyXG5cdFx0b3BlbigpIHtcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXHJcblx0XHRcdHRoaXMudHJhbnNmb3JtID0gJydcclxuXHRcdFx0dGhpcy5pc1Nob3cgPSB0cnVlXHJcblx0XHRcdGxldCB7IG9wYWNpdHksIHRyYW5zZm9ybSB9ID0gdGhpcy5zdHlsZUluaXQoZmFsc2UpXHJcblx0XHRcdGlmICh0eXBlb2Ygb3BhY2l0eSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0XHR0aGlzLm9wYWNpdHkgPSBvcGFjaXR5XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cclxuXHRcdFx0Ly8g56Gu5L+d5Yqo5oCB5qC35byP5bey57uP55Sf5pWI5ZCO77yM5omn6KGM5Yqo55S777yM5aaC5p6c5LiN5YqgIG5leHRUaWNrIO+8jOS8muWvvOiHtCB3eCDliqjnlLvmiafooYzlvILluLhcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdC8vIFRPRE8g5a6a5pe25Zmo5L+d6K+B5Yqo55S75a6M5YWo5omn6KGM77yM55uu5YmN5pyJ5Lqb6Zeu6aKY77yM5ZCO6Z2i5Lya5Y+W5raI5a6a5pe25ZmoXHJcblx0XHRcdFx0dGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24gPSBjcmVhdGVBbmltYXRpb24odGhpcy5jb25maWcsIHRoaXMpXHJcblx0XHRcdFx0XHR0aGlzLnRyYW5mcm9tSW5pdChmYWxzZSkuc3RlcCgpXHJcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbi5ydW4oKVxyXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0sIDIwKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdC8vIOWFs+mXrei/h+W6puWKqOeUu1xyXG5cdFx0Y2xvc2UodHlwZSkge1xyXG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cclxuXHRcdFx0dGhpcy50cmFuZnJvbUluaXQodHJ1ZSlcclxuXHRcdFx0XHQuc3RlcCgpXHJcblx0XHRcdFx0LnJ1bigoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmlzU2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbkRhdGEgPSBudWxsXHJcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbiA9IG51bGxcclxuXHRcdFx0XHRcdGxldCB7IG9wYWNpdHksIHRyYW5zZm9ybSB9ID0gdGhpcy5zdHlsZUluaXQoZmFsc2UpXHJcblx0XHRcdFx0XHR0aGlzLm9wYWNpdHkgPSBvcGFjaXR5IHx8IDFcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNmb3JtID0gdHJhbnNmb3JtXHJcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XHJcblx0XHRcdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvLyDlpITnkIbliqjnlLvlvIDlp4vliY3nmoTpu5jorqTmoLflvI9cclxuXHRcdHN0eWxlSW5pdCh0eXBlKSB7XHJcblx0XHRcdGxldCBzdHlsZXMgPSB7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiAnJ1xyXG5cdFx0XHR9XHJcblx0XHRcdGxldCBidWlsZFN0eWxlID0gKHR5cGUsIG1vZGUpID0+IHtcclxuXHRcdFx0XHRpZiAobW9kZSA9PT0gJ2ZhZGUnKSB7XHJcblx0XHRcdFx0XHRzdHlsZXMub3BhY2l0eSA9IHRoaXMuYW5pbWF0aW9uVHlwZSh0eXBlKVttb2RlXVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRzdHlsZXMudHJhbnNmb3JtICs9IHRoaXMuYW5pbWF0aW9uVHlwZSh0eXBlKVttb2RlXSArICcgJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodHlwZW9mIHRoaXMubW9kZUNsYXNzID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdGJ1aWxkU3R5bGUodHlwZSwgdGhpcy5tb2RlQ2xhc3MpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5tb2RlQ2xhc3MuZm9yRWFjaChtb2RlID0+IHtcclxuXHRcdFx0XHRcdGJ1aWxkU3R5bGUodHlwZSwgbW9kZSlcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBzdHlsZXNcclxuXHRcdH0sXHJcblx0XHQvLyDlpITnkIblhoXnva7nu4TlkIjliqjnlLtcclxuXHRcdHRyYW5mcm9tSW5pdCh0eXBlKSB7XHJcblx0XHRcdGxldCBidWlsZFRyYW5mcm9tID0gKHR5cGUsIG1vZGUpID0+IHtcclxuXHRcdFx0XHRsZXQgYW5pTnVtID0gbnVsbFxyXG5cdFx0XHRcdGlmIChtb2RlID09PSAnZmFkZScpIHtcclxuXHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAwIDogMVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJy0xMDAlJyA6ICcwJ1xyXG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLWluJykge1xyXG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gMC44IDogMVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLW91dCcpIHtcclxuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/IDEuMiA6IDFcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtcmlnaHQnKSB7XHJcblx0XHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAnMTAwJScgOiAnMCdcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtYm90dG9tJykge1xyXG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJzEwMCUnIDogJzAnXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuYW5pbWF0aW9uW3RoaXMuYW5pbWF0aW9uTW9kZSgpW21vZGVdXShhbmlOdW0pXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRidWlsZFRyYW5mcm9tKHR5cGUsIHRoaXMubW9kZUNsYXNzKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XHJcblx0XHRcdFx0XHRidWlsZFRyYW5mcm9tKHR5cGUsIG1vZGUpXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIHRoaXMuYW5pbWF0aW9uXHJcblx0XHR9LFxyXG5cdFx0YW5pbWF0aW9uVHlwZSh0eXBlKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0ZmFkZTogdHlwZSA/IDEgOiAwLFxyXG5cdFx0XHRcdCdzbGlkZS10b3AnOiBgdHJhbnNsYXRlWSgke3R5cGUgPyAnMCcgOiAnLTEwMCUnfSlgLFxyXG5cdFx0XHRcdCdzbGlkZS1yaWdodCc6IGB0cmFuc2xhdGVYKCR7dHlwZSA/ICcwJyA6ICcxMDAlJ30pYCxcclxuXHRcdFx0XHQnc2xpZGUtYm90dG9tJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJzEwMCUnfSlgLFxyXG5cdFx0XHRcdCdzbGlkZS1sZWZ0JzogYHRyYW5zbGF0ZVgoJHt0eXBlID8gJzAnIDogJy0xMDAlJ30pYCxcclxuXHRcdFx0XHQnem9vbS1pbic6IGBzY2FsZVgoJHt0eXBlID8gMSA6IDAuOH0pIHNjYWxlWSgke3R5cGUgPyAxIDogMC44fSlgLFxyXG5cdFx0XHRcdCd6b29tLW91dCc6IGBzY2FsZVgoJHt0eXBlID8gMSA6IDEuMn0pIHNjYWxlWSgke3R5cGUgPyAxIDogMS4yfSlgXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHQvLyDlhoXnva7liqjnlLvnsbvlnovkuI7lrp7pmYXliqjnlLvlr7nlupTlrZflhbhcclxuXHRcdGFuaW1hdGlvbk1vZGUoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0ZmFkZTogJ29wYWNpdHknLFxyXG5cdFx0XHRcdCdzbGlkZS10b3AnOiAndHJhbnNsYXRlWScsXHJcblx0XHRcdFx0J3NsaWRlLXJpZ2h0JzogJ3RyYW5zbGF0ZVgnLFxyXG5cdFx0XHRcdCdzbGlkZS1ib3R0b20nOiAndHJhbnNsYXRlWScsXHJcblx0XHRcdFx0J3NsaWRlLWxlZnQnOiAndHJhbnNsYXRlWCcsXHJcblx0XHRcdFx0J3pvb20taW4nOiAnc2NhbGUnLFxyXG5cdFx0XHRcdCd6b29tLW91dCc6ICdzY2FsZSdcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIOmpvOWzsOi9rOS4reaoque6v1xyXG5cdFx0dG9MaW5lKG5hbWUpIHtcclxuXHRcdFx0cmV0dXJuIG5hbWUucmVwbGFjZSgvKFtBLVpdKS9nLCAnLSQxJykudG9Mb3dlckNhc2UoKVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n"); /***/ }), /* 10 */ /*!*********************************************************************!*\ !*** ./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) } /***/ }), /* 11 */ /*!*******************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***! \*******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.createAnimation = createAnimation;function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;} // const defaultOption = {\n// \tduration: 300,\n// \ttimingFunction: 'linear',\n// \tdelay: 0,\n// \ttransformOrigin: '50% 50% 0'\n// }\nvar\n\n\nMPAnimation = /*#__PURE__*/function () {\n function MPAnimation(options, _this) {_classCallCheck(this, MPAnimation);\n this.options = options;\n this.animation = uni.createAnimation(options);\n this.currentStepAnimates = {};\n this.next = 0;\n this.$ = _this;\n\n }_createClass(MPAnimation, [{ key: \"_nvuePushAnimates\", value: function _nvuePushAnimates(\n\n 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 } }, { key: \"_animateRun\", value: function _animateRun()\n {var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};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),\n function (res) {\n resolve();\n });\n });\n } }, { key: \"_nvueNextAnimate\", value: function _nvueNextAnimate(\n\n animates) {var _this2 = this;var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;var fn = arguments.length > 2 ? arguments[2] : undefined;\n var obj = animates[step];\n if (obj) {var\n\n styles =\n\n obj.styles,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 } }, { key: \"step\", value: function step()\n\n {var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.animation.step(config);\n\n\n\n\n\n\n return this;\n } }, { key: \"run\", value: function run(\n\n fn) {\n\n this.$.animationData = this.animation.export();\n this.$.timer = setTimeout(function () {\n typeof fn === 'function' && fn();\n }, this.$.durationTime);\n\n\n\n\n\n\n\n\n } }]);return MPAnimation;}();\n\n\n\nvar animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',\n'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',\n'translateZ'];\n\nvar animateTypes2 = ['opacity', 'backgroundColor'];\nvar animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];\nanimateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {\n MPAnimation.prototype[type] = function () {var _this$animation;\n\n (_this$animation = this.animation)[type].apply(_this$animation, arguments);\n\n\n\n\n return this;\n };\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi9jcmVhdGVBbmltYXRpb24uanMiXSwibmFtZXMiOlsiTVBBbmltYXRpb24iLCJvcHRpb25zIiwiX3RoaXMiLCJhbmltYXRpb24iLCJ1bmkiLCJjcmVhdGVBbmltYXRpb24iLCJjdXJyZW50U3RlcEFuaW1hdGVzIiwibmV4dCIsIiQiLCJ0eXBlIiwiYXJncyIsImFuaU9iaiIsInN0eWxlcyIsImNvbmZpZyIsImFuaW1hdGVUeXBlczEiLCJpbmNsdWRlcyIsInRyYW5zZm9ybSIsInVuaXQiLCJyZWYiLCIkcmVmcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibnZ1ZUFuaW1hdGlvbiIsInRyYW5zaXRpb24iLCJyZXMiLCJhbmltYXRlcyIsInN0ZXAiLCJmbiIsIm9iaiIsIl9hbmltYXRlUnVuIiwidGhlbiIsIl9udnVlTmV4dEFuaW1hdGUiLCJpc0VuZCIsImFuaW1hdGlvbkRhdGEiLCJleHBvcnQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJkdXJhdGlvblRpbWUiLCJhbmltYXRlVHlwZXMyIiwiYW5pbWF0ZVR5cGVzMyIsImNvbmNhdCIsImZvckVhY2giLCJwcm90b3R5cGUiLCJvcHRpb24iLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiJpeURBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSU1BLFc7QUFDTCx1QkFBWUMsT0FBWixFQUFxQkMsS0FBckIsRUFBNEI7QUFDM0IsU0FBS0QsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0UsU0FBTCxHQUFpQkMsR0FBRyxDQUFDQyxlQUFKLENBQW9CSixPQUFwQixDQUFqQjtBQUNBLFNBQUtLLG1CQUFMLEdBQTJCLEVBQTNCO0FBQ0EsU0FBS0MsSUFBTCxHQUFZLENBQVo7QUFDQSxTQUFLQyxDQUFMLEdBQVNOLEtBQVQ7O0FBRUEsRzs7QUFFaUJPLFEsRUFBTUMsSSxFQUFN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QSxLOzs7O0FBSUYsSUFBTXhCLGFBQWEsR0FBRyxDQUFDLFFBQUQsRUFBVyxVQUFYLEVBQXVCLFFBQXZCLEVBQWlDLFVBQWpDLEVBQTZDLFNBQTdDLEVBQXdELFNBQXhELEVBQW1FLFNBQW5FLEVBQThFLE9BQTlFLEVBQXVGLFNBQXZGO0FBQ3JCLFFBRHFCLEVBQ1gsUUFEVyxFQUNELFFBREMsRUFDUyxNQURULEVBQ2lCLE9BRGpCLEVBQzBCLE9BRDFCLEVBQ21DLFdBRG5DLEVBQ2dELGFBRGhELEVBQytELFlBRC9ELEVBQzZFLFlBRDdFO0FBRXJCLFlBRnFCLENBQXRCOztBQUlBLElBQU15QixhQUFhLEdBQUcsQ0FBQyxTQUFELEVBQVksaUJBQVosQ0FBdEI7QUFDQSxJQUFNQyxhQUFhLEdBQUcsQ0FBQyxPQUFELEVBQVUsUUFBVixFQUFvQixNQUFwQixFQUE0QixPQUE1QixFQUFxQyxLQUFyQyxFQUE0QyxRQUE1QyxDQUF0QjtBQUNBMUIsYUFBYSxDQUFDMkIsTUFBZCxDQUFxQkYsYUFBckIsRUFBb0NDLGFBQXBDLEVBQW1ERSxPQUFuRCxDQUEyRCxVQUFBakMsSUFBSSxFQUFJO0FBQ2xFVCxhQUFXLENBQUMyQyxTQUFaLENBQXNCbEMsSUFBdEIsSUFBOEIsWUFBa0I7O0FBRS9DLDRCQUFLTixTQUFMLEVBQWVNLElBQWY7Ozs7O0FBS0EsV0FBTyxJQUFQO0FBQ0EsR0FSRDtBQVNBLENBVkQ7O0FBWU8sU0FBU0osZUFBVCxDQUF5QnVDLE1BQXpCLEVBQWlDMUMsS0FBakMsRUFBd0M7QUFDOUMsTUFBRyxDQUFDQSxLQUFKLEVBQVc7QUFDWDJDLGNBQVksQ0FBQzNDLEtBQUssQ0FBQ2tDLEtBQVAsQ0FBWjtBQUNBLFNBQU8sSUFBSXBDLFdBQUosQ0FBZ0I0QyxNQUFoQixFQUF3QjFDLEtBQXhCLENBQVA7QUFDQSIsImZpbGUiOiIxMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IGRlZmF1bHRPcHRpb24gPSB7XHJcbi8vIFx0ZHVyYXRpb246IDMwMCxcclxuLy8gXHR0aW1pbmdGdW5jdGlvbjogJ2xpbmVhcicsXHJcbi8vIFx0ZGVsYXk6IDAsXHJcbi8vIFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJSAwJ1xyXG4vLyB9XHJcblxyXG5cclxuXHJcbmNsYXNzIE1QQW5pbWF0aW9uIHtcclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zLCBfdGhpcykge1xyXG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9uc1xyXG5cdFx0dGhpcy5hbmltYXRpb24gPSB1bmkuY3JlYXRlQW5pbWF0aW9uKG9wdGlvbnMpXHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXMgPSB7fVxyXG5cdFx0dGhpcy5uZXh0ID0gMFxyXG5cdFx0dGhpcy4kID0gX3RoaXNcclxuXHJcblx0fVxyXG5cclxuXHRfbnZ1ZVB1c2hBbmltYXRlcyh0eXBlLCBhcmdzKSB7XHJcblx0XHRsZXQgYW5pT2JqID0gdGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzW3RoaXMubmV4dF1cclxuXHRcdGxldCBzdHlsZXMgPSB7fVxyXG5cdFx0aWYgKCFhbmlPYmopIHtcclxuXHRcdFx0c3R5bGVzID0ge1xyXG5cdFx0XHRcdHN0eWxlczoge30sXHJcblx0XHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMgPSBhbmlPYmpcclxuXHRcdH1cclxuXHRcdGlmIChhbmltYXRlVHlwZXMxLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdGlmICghc3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0pIHtcclxuXHRcdFx0XHRzdHlsZXMuc3R5bGVzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHVuaXQgPSAnJ1xyXG5cdFx0XHRpZih0eXBlID09PSAncm90YXRlJyl7XHJcblx0XHRcdFx0dW5pdCA9ICdkZWcnXHJcblx0XHRcdH1cclxuXHRcdFx0c3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0gKz0gYCR7dHlwZX0oJHthcmdzK3VuaXR9KSBgXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMuc3R5bGVzW3R5cGVdID0gYCR7YXJnc31gXHJcblx0XHR9XHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXNbdGhpcy5uZXh0XSA9IHN0eWxlc1xyXG5cdH1cclxuXHRfYW5pbWF0ZVJ1bihzdHlsZXMgPSB7fSwgY29uZmlnID0ge30pIHtcclxuXHRcdGxldCByZWYgPSB0aGlzLiQuJHJlZnNbJ2FuaSddLnJlZlxyXG5cdFx0aWYgKCFyZWYpIHJldHVyblxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0bnZ1ZUFuaW1hdGlvbi50cmFuc2l0aW9uKHJlZiwge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHQuLi5jb25maWdcclxuXHRcdFx0fSwgcmVzID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKClcclxuXHRcdFx0fSlcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRfbnZ1ZU5leHRBbmltYXRlKGFuaW1hdGVzLCBzdGVwID0gMCwgZm4pIHtcclxuXHRcdGxldCBvYmogPSBhbmltYXRlc1tzdGVwXVxyXG5cdFx0aWYgKG9iaikge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHRjb25maWdcclxuXHRcdFx0fSA9IG9ialxyXG5cdFx0XHR0aGlzLl9hbmltYXRlUnVuKHN0eWxlcywgY29uZmlnKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRzdGVwICs9IDFcclxuXHRcdFx0XHR0aGlzLl9udnVlTmV4dEFuaW1hdGUoYW5pbWF0ZXMsIHN0ZXAsIGZuKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzID0ge31cclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdFx0dGhpcy5pc0VuZCA9IHRydWVcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHN0ZXAoY29uZmlnID0ge30pIHtcclxuXHJcblx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdHJldHVybiB0aGlzXHJcblx0fVxyXG5cclxuXHRydW4oZm4pIHtcclxuXHJcblx0XHR0aGlzLiQuYW5pbWF0aW9uRGF0YSA9IHRoaXMuYW5pbWF0aW9uLmV4cG9ydCgpXHJcblx0XHR0aGlzLiQudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdH0sIHRoaXMuJC5kdXJhdGlvblRpbWUpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHR9XHJcbn1cclxuXHJcblxyXG5jb25zdCBhbmltYXRlVHlwZXMxID0gWydtYXRyaXgnLCAnbWF0cml4M2QnLCAncm90YXRlJywgJ3JvdGF0ZTNkJywgJ3JvdGF0ZVgnLCAncm90YXRlWScsICdyb3RhdGVaJywgJ3NjYWxlJywgJ3NjYWxlM2QnLFxyXG5cdCdzY2FsZVgnLCAnc2NhbGVZJywgJ3NjYWxlWicsICdza2V3JywgJ3NrZXdYJywgJ3NrZXdZJywgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGUzZCcsICd0cmFuc2xhdGVYJywgJ3RyYW5zbGF0ZVknLFxyXG5cdCd0cmFuc2xhdGVaJ1xyXG5dXHJcbmNvbnN0IGFuaW1hdGVUeXBlczIgPSBbJ29wYWNpdHknLCAnYmFja2dyb3VuZENvbG9yJ11cclxuY29uc3QgYW5pbWF0ZVR5cGVzMyA9IFsnd2lkdGgnLCAnaGVpZ2h0JywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddXHJcbmFuaW1hdGVUeXBlczEuY29uY2F0KGFuaW1hdGVUeXBlczIsIGFuaW1hdGVUeXBlczMpLmZvckVhY2godHlwZSA9PiB7XHJcblx0TVBBbmltYXRpb24ucHJvdG90eXBlW3R5cGVdID0gZnVuY3Rpb24oLi4uYXJncykge1xyXG5cclxuXHRcdHRoaXMuYW5pbWF0aW9uW3R5cGVdKC4uLmFyZ3MpXHJcblxyXG5cclxuXHJcblxyXG5cdFx0cmV0dXJuIHRoaXNcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpIHtcclxuXHRpZighX3RoaXMpIHJldHVyblxyXG5cdGNsZWFyVGltZW91dChfdGhpcy50aW1lcilcclxuXHRyZXR1cm4gbmV3IE1QQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///11\n"); /***/ }), /* 12 */ /*!**********************************************************************************************************!*\ !*** ./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) { (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 } } /***/ }), /* 13 */ /*!**********************************************************************!*\ !*** D:/Workspace/zy/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& */ 14);\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& */ 16);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0g7QUFDbEg7QUFDeUQ7QUFDTDs7O0FBR3BEO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDJFQUFNO0FBQ1IsRUFBRSxnRkFBTTtBQUNSLEVBQUUseUZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsb0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03OTlmNjExOCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4veS1ib3gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcImNvbXBvbmVudHMveS1ib3gveS1ib3gudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///13\n"); /***/ }), /* 14 */ /*!*****************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 15); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 15 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 /***/ }), /* 16 */ /*!***********************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 17);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlyQixDQUFnQixtckJBQUcsRUFBQyIsImZpbGUiOiIxNi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ktYm94LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4veS1ib3gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///16\n"); /***/ }), /* 17 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\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\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy95LWJveC95LWJveC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUNBLDRCQURBO0FBRUEsbUJBRkEsRUFEQSxFQURBOzs7QUFPQTtBQUNBLGFBREEsdUJBQ0E7QUFDQTtBQUNBLEtBSEEsRUFQQTs7QUFZQSxNQVpBLGtCQVlBO0FBQ0E7OztBQUdBLEdBaEJBLEUiLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJib3hcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMlwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LW1haW5cIj5cclxuXHRcdFx0PHNsb3QvPlxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0dGl0bGU6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLE51bWJlcl0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJ+agh+mimCdcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHR0aXRsZVRleHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMudGl0bGUgXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0LmJveCB7XHJcblx0XHR3aWR0aDogY2FsYygxMDAlIC0gMC4ydmgpO1xyXG5cdFx0aGVpZ2h0OiBjYWxjKDEwMCUgLSAwLjJ2aCk7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRib3JkZXI6IDAuMXZoIHNvbGlkIHJnYmEoMjAsIDgwLCAxMzYsIDEpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdH1cclxuXHQuYm94LW1haW4ge1xyXG5cdFx0d2lkdGg6IDk2JTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMzMWM0YzQ7ICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlciB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjNENEOTY0OyAqL1xyXG5cdFx0d2lkdGg6IDEuNXZoO1xyXG5cdFx0aGVpZ2h0OiAxLjV2aDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXIxIHtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRib3JkZXItbGVmdDogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci10b3A6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMiB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvcmRlci1yaWdodDogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci10b3A6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMyB7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1sZWZ0OiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlcjQge1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3JkZXItcmlnaHQ6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItYm90dG9tOiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///17\n"); /***/ }), /* 18 */ /*!***************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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 */ 19);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJyQixDQUFnQiw2ckJBQUcsRUFBQyIsImZpbGUiOiIxOC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///18\n"); /***/ }), /* 19 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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{\n data: function data() {\n return {\n homeViewShow: true,\n modeClass: ['fade', 'slide-top'],\n homeView: {\n justifyContent: 'center',\n alignItems: 'center',\n width: '100vw',\n height: '100vh',\n borderRadius: '5px',\n textAlign: 'center',\n backgroundColor: '#4cd964',\n boxShadow: '0 0 5px 1px rgba(0,0,0,0.2)' },\n\n duration: 1000,\n calendar: '',\n xDistance: '',\n yDistance: '',\n xDuration: '',\n yDuration: '',\n fontSize: '',\n height: '' };\n\n },\n onShow: function onShow() {\n // 隐藏时间,电量,信号等\n\n plus.navigator.setFullscreen(true);\n\n },\n onLoad: function onLoad() {var _this = this;\n this.getDate();\n setInterval(function () {\n _this.getDate();\n }, 1000);\n setInterval(function () {\n // this.handle(['fade', 'slide-top'])\n }, 4000);\n },\n methods: {\n handle: function handle(type) {\n this.homeViewShow = !this.homeViewShow;\n this.modeClass = type;\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:weeks = \"星期日\";break;\n case 1:weeks = \"星期一\";break;\n case 2:weeks = \"星期二\";break;\n case 3:weeks = \"星期三\";break;\n case 4:weeks = \"星期四\";break;\n case 5:weeks = \"星期五\";break;\n default:weeks = \"星期六\";}\n\n this.calendar = year + \"年\" + month + \"月\" + day + \"日 \" + hours + \":\" + minutes + \":\" + seconds + \" \" + weeks;\n } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUZBO0FBQ0EsTUFEQSxrQkFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQSxzQ0FGQTtBQUdBO0FBQ0EsZ0NBREE7QUFFQSw0QkFGQTtBQUdBLHNCQUhBO0FBSUEsdUJBSkE7QUFLQSwyQkFMQTtBQU1BLDJCQU5BO0FBT0Esa0NBUEE7QUFRQSxnREFSQSxFQUhBOztBQWFBLG9CQWJBO0FBY0Esa0JBZEE7QUFlQSxtQkFmQTtBQWdCQSxtQkFoQkE7QUFpQkEsbUJBakJBO0FBa0JBLG1CQWxCQTtBQW1CQSxrQkFuQkE7QUFvQkEsZ0JBcEJBOztBQXNCQSxHQXhCQTtBQXlCQSxRQXpCQSxvQkF5QkE7QUFDQTs7QUFFQTs7QUFFQSxHQTlCQTtBQStCQSxRQS9CQSxvQkErQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUZBLEVBRUEsSUFGQTtBQUdBO0FBQ0E7QUFDQSxLQUZBLEVBRUEsSUFGQTtBQUdBLEdBdkNBO0FBd0NBO0FBQ0EsVUFEQSxrQkFDQSxJQURBLEVBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FKQTtBQUtBO0FBQ0EsV0FOQSxxQkFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBUEE7O0FBU0E7QUFDQSxLQTFCQSxFQXhDQSxFIiwiZmlsZSI6IjE5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHQ8IS0tIOS4u+inhuWbviAtLT5cclxuXHRcdDx1bmktdHJhbnNpdGlvbiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDptb2RlLWNsYXNzPVwibW9kZUNsYXNzXCIgOnN0eWxlcz1cImhvbWVWaWV3XCIgOnNob3c9XCJob21lVmlld1Nob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJob21lLXZpZXdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHRcdDx0ZXh0PuiHquWKqOS7k+W6k1dDU+ebkeaOp+W5s+WPsDwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDml6XljoYgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3tjYWxlbmRhcn19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDkuLvkvZMgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbS1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHQ8eS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuiHquWKqOWMlueri+S9k+S7k+W6kzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+QXV0b21hdGljIFN0b3JhZ2VhbmQgUmV0cmlldmFsIFN5c3RlbTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRleHRcIj7liKnnlKjnq4vkvZPku5PlupPorr7lpIflj6/lrp7njrDku5PlupPpq5jlsYLlkIjnkIbljJbjgIHlrZjlj5boh6rliqjljJbjgIHmk43kvZznroDkvr/ljJbvvJvoh6rliqjljJbnq4vkvZPku5PlupPmmK/lvZPliY3mioDmnK/msLTlubPovoPpq5jnmoTlvaLlvI/jgILoh6rliqjljJbnq4vkvZPku5PlupPnmoTkuLvkvZPnlLHotKfmnrbjgIHlt7fpgZPlvI/loIblnpvotbfph43mnLrjgIHlhaXvvIjlh7rvvInlupPlt6XkvZzlj7Dlkozoh6rliqjov5Dov5vvvIjlh7rvvInlj4rmk43kvZzmjqfliLbns7vnu5/nu4TmiJDjgILotKfmnrbmmK/pkqLnu5PmnoTmiJbpkqLnrYvmt7flh53lnJ/nu5PmnoTnmoTlu7rnrZHnianmiJbnu5PmnoTkvZPvvIzotKfmnrblhoXmmK/moIflh4blsLrlr7jnmoTotKfkvY3nqbrpl7TvvIzlt7fpgZPloIblnpvotbfph43mnLrnqb/ooYzkuo7otKfmnrbkuYvpl7TnmoTlt7fpgZPkuK3vvIzlrozmiJDlrZjjgIHlj5botKfnmoTlt6XkvZzjgILnrqHnkIbkuIrph4fnlKjorqHnrpfmnLrlj4rmnaHlvaLnoIHmioDmnK/jgII8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuS7k+W6k+aVsOaNrjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+d2FyZWhvdXNlIGRhdGE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1nLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pbWdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3Pue0r+iuoei1sOihjOi3neemuyjnsbMpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taW1nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ExLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz7ntK/orqHotbDooYzot53nprso57GzKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWltZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9hMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+57Sv6K6h6LWw6KGM6Led56a7KOexsyk8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pbWdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3Pue0r+iuoei1sOihjOi3neemuyjnsbMpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lupPkvY3kvb/nlKjnjoc8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPkVRVUlQTUVOVCBVU0FHRSBUSElTIE1PTlRIPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDM4JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PjwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDM4JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PjwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDIwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PjwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PCEtLSDlhajmnb8v5ouj5paZ5L+h5oGvIC0tPlxyXG5cdFx0PCEtLSA8dmlldyBjbGFzcz1cImluZm9cIj5cclxuXHRcdFx0XHJcblx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0PCEtLSDlvILluLjkv6Hmga8gLS0+XHJcblx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiZXJyb3ItaW5mb1wiPjwvdmlldz4gLS0+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGhvbWVWaWV3U2hvdzogdHJ1ZSxcclxuXHRcdFx0XHRtb2RlQ2xhc3M6IFsnZmFkZScsICdzbGlkZS10b3AnXSxcclxuXHRcdFx0XHRob21lVmlldzoge1xyXG5cdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxyXG5cdFx0XHRcdFx0YWxpZ25JdGVtczogJ2NlbnRlcicsXHJcblx0XHRcdFx0XHR3aWR0aDogJzEwMHZ3JyxcclxuXHRcdFx0XHRcdGhlaWdodDogJzEwMHZoJyxcclxuXHRcdFx0XHRcdGJvcmRlclJhZGl1czogJzVweCcsXHJcblx0XHRcdFx0XHR0ZXh0QWxpZ246ICdjZW50ZXInLFxyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAnIzRjZDk2NCcsXHJcblx0XHRcdFx0XHRib3hTaGFkb3c6ICcwIDAgNXB4IDFweCByZ2JhKDAsMCwwLDAuMiknXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRkdXJhdGlvbjogMTAwMCxcclxuXHRcdFx0XHRjYWxlbmRhcjogJycsXHJcblx0XHRcdFx0eERpc3RhbmNlOiAnJyxcclxuXHRcdFx0XHR5RGlzdGFuY2U6ICcnLFxyXG5cdFx0XHRcdHhEdXJhdGlvbjogJycsXHJcblx0XHRcdFx0eUR1cmF0aW9uOiAnJyxcclxuXHRcdFx0XHRmb250U2l6ZTogJycsXHJcblx0XHRcdFx0aGVpZ2h0OiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25TaG93KCkge1xyXG5cdFx0XHQvLyDpmpDol4/ml7bpl7Qs55S16YePLOS/oeWPt+etiVxyXG5cdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcclxuXHRcdFx0cGx1cy5uYXZpZ2F0b3Iuc2V0RnVsbHNjcmVlbih0cnVlKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdHRoaXMuZ2V0RGF0ZSgpXHJcblx0XHRcdHNldEludGVydmFsKCgpPT57XHJcblx0XHRcdFx0dGhpcy5nZXREYXRlKClcclxuXHRcdFx0fSwxMDAwKVxyXG5cdFx0XHRzZXRJbnRlcnZhbCgoKT0+e1xyXG5cdFx0XHRcdC8vIHRoaXMuaGFuZGxlKFsnZmFkZScsICdzbGlkZS10b3AnXSlcclxuXHRcdFx0fSw0MDAwKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0aGFuZGxlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9ICF0aGlzLmhvbWVWaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDml6XljoZcclxuXHRcdFx0Z2V0RGF0ZSgpIHtcclxuXHRcdFx0XHR2YXIgZHQgPSBuZXcgRGF0ZSgpO1xyXG5cdFx0XHRcdHZhciB5ZWFyLG1vbnRoLGRheSxob3VycyxtaW51dGVzLHNlY29uZHMsd2Vla3NcclxuXHRcdFx0XHR5ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHRtb250aCA9IChkdC5nZXRNb250aCgpKzEpIDwgMTAgPyAnMCcrIChkdC5nZXRNb250aCgpKzEpIDogKGR0LmdldE1vbnRoKCkrMSk7XHJcblx0XHRcdFx0ZGF5ID0gZHQuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcrZHQuZ2V0RGF0ZSgpIDogZHQuZ2V0RGF0ZSgpO1xyXG5cdFx0XHRcdGhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcblx0XHRcdFx0bWludXRlcyA9IGR0LmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZHQuZ2V0TWludXRlcygpIDogZHQuZ2V0TWludXRlcygpO1xyXG5cdFx0XHRcdHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGR0LmdldFNlY29uZHMoKSA6IGR0LmdldFNlY29uZHMoKTsgXHJcblx0XHRcdFx0d2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcblx0XHRcdFx0c3dpdGNoICh3ZWVrcykge1xyXG5cdFx0XHRcdFx0Y2FzZSAwOiB3ZWVrcyA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAxOiB3ZWVrcyA9IFwi5pif5pyf5LiAXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAyOiB3ZWVrcyA9IFwi5pif5pyf5LqMXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAzOiB3ZWVrcyA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OiB3ZWVrcyA9IFwi5pif5pyf5ZubXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA1OiB3ZWVrcyA9IFwi5pif5pyf5LqUXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0ZGVmYXVsdCA6IHdlZWtzID0gXCLmmJ/mnJ/lha1cIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5jYWxlbmRhciA9IHllYXIgKyBcIuW5tFwiICsgbW9udGggKyBcIuaciFwiICsgZGF5ICsgXCLml6UgXCIgKyBob3VycyArIFwiOlwiICsgbWludXRlcyArIFwiOlwiICsgc2Vjb25kcyArIFwiIFwiICsgd2Vla3NcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0QGltcG9ydCB1cmwoXCIuLi8uLi9zdGF0aWMvY3NzL2NvbW1vbi5jc3NcIik7XHJcblx0LmNvbnRhaW5lcntcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0XHJcblx0fVxyXG5cdC8qIOS4u+inhuWbviAqL1xyXG5cdC5ob21lLXZpZXcge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwdncgMTAwdmg7XHJcblx0fVxyXG5cdC5ob21lLXJpZ2h0IHtcclxuXHRcdHdpZHRoOiA1MHZ3O1xyXG5cdFx0aGVpZ2h0OiA4OXZoO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogY2FkZXRibHVlOyAqL1xyXG5cdH1cclxuXHQuaG9tZS1yaWdodC1ib3gge1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdH1cclxuXHQuaGVhZCB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRoZWlnaHQ6IDExdmg7XHJcblx0XHRmb250LXNpemU6NHZ3O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XHJcblx0fVxyXG5cdC50aW1lLXRvb2xzIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHJpZ2h0OiAyJTtcclxuXHRcdHRvcDogMiU7XHJcblx0XHRmb250LXNpemU6MXZ3O1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xyXG5cdH1cclxuXHQuYnV0dG9uLWxlZnQge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9yaWdodC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0XHR0b3A6IDEuOCU7XHJcblx0XHRsZWZ0OiAyMS4zJTtcclxuXHRcdHdpZHRoOiAxMy41JTtcclxuXHRcdGhlaWdodDogOC41JTtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcclxuXHR9XHJcblx0LmJ1dHRvbi1yaWdodCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdHRvcDogMS44JTtcclxuXHRcdGxlZnQ6IDY1JTtcclxuXHRcdHdpZHRoOiAxMy41JTtcclxuXHRcdGhlaWdodDogOC41JTtcclxuXHR9XHJcblx0XHJcblx0XHJcblx0XHJcblx0Lyog5YWx55SoICovXHJcblx0Lm1haW4ge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiA4OHZoO1xyXG5cdFx0bWFyZ2luLXRvcDogMXZoO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFxyXG5cdH1cclxuXHQubWlhbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcblx0Lm1pYW4taXRlbS1ib3gge1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdH1cclxuXHQuYm94LWl0ZW0ge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tdG9wOiAyJTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0fVxyXG5cdC5pdGVtLXRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZToxLjV2dztcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0fVxyXG5cdC5pdGVtLXN1YlRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTowLjV2dztcclxuXHRcdHRleHQtaW5kZW50OiAxZW07XHJcblx0fVxyXG5cdC5pdGVtLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0XHR0ZXh0LWluZGVudDogMmVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHR9XHJcblx0LmltZy1ib3gge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2NjY2O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0fVxyXG5cdC5pdGVtLWltZyB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0bWFyZ2luLXRvcDogMyU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHR9XHJcblx0Lml0ZW0taW1nIGltYWdlIHtcclxuXHRcdGhlaWdodDogNXZ3O1xyXG5cdFx0d2lkdGg6IDV2dztcclxuXHR9XHJcblx0Lyog5YWo5p2/L+aLo+aWmeS/oeaBryAqL1xyXG5cdC5pbmZvIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjtcclxuXHR9XHJcblx0Lyog5byC5bi45L+h5oGvICovXHJcblx0LmVycm9yLWluZm8ge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmO1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///19\n"); /***/ }), /* 20 */ /*!*****************************************************************************!*\ !*** D:/Workspace/zy/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 */ 21);\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 */ 98);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYmU4NGEzYyZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///20\n"); /***/ }), /* 21 */ /*!***********************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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 */ 22); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 22 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 */ 23) .default, uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 76) .default, uniPopupDialog: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue */ 81) .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.matnr)))] ), _c( "view", { staticClass: _vm._$s(19, "sc", "box-items"), attrs: { _i: 19 } }, [_vm._v(_vm._$s(19, "t0-0", _vm._s(_vm.maknx)))] ), _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 */ 91) ), _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 */ 92) ), _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 */ 93) ), _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 */ 94) ), _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 */ 95) ), _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 */ 96) ), _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 */ 97) ), _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 /***/ }), /* 23 */ /*!*************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& */ 24);\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& */ 61);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbVQ7QUFDblQ7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSxpUkFBTTtBQUNSLEVBQUUsMFJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscVJBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWZlOTQ3Yjk4JnNjb3BlZD10cnVlJmZpbHRlci1tb2R1bGVzPWV5SnlaR05vWVhKMGN5STZleUowZVhCbElqb2ljbVZ1WkdWeWFuTWlMQ0pqYjI1MFpXNTBJam9pSWl3aWMzUmhjblFpT2pNM01qVTRMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUp5WkdOb1lYSjBjeUlzSW14aGJtY2lPaUpxY3lKOUxDSmxibVFpT2pVeE9UTTFmWDAlM0QmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJmZTk0N2I5OFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1kYXRhLWNoYXJ0cy9xaXVuLWRhdGEtY2hhcnRzLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///23\n"); /***/ }), /* 24 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& */ 25); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 25 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%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 */ 26) .default, qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 56) .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 /***/ }), /* 26 */ /*!*****************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 27);\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& */ 29);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM0ZmQ5OTgmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvcWl1bi1sb2FkaW5nLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///26\n"); /***/ }), /* 27 */ /*!************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 28); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 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--10-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/zy/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 /***/ }), /* 29 */ /*!******************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 30);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWd0QixDQUFnQiwwckJBQUcsRUFBQyIsImZpbGUiOiIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/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--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\nvar _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 31));\nvar _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 36));\nvar _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 41));\nvar _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 46));\nvar _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 51));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { components: { Loading1: _loading.default, Loading2: _loading2.default, Loading3: _loading3.default, Loading4: _loading4.default, Loading5: _loading5.default }, name: 'qiun-loading', props: { loadingType: { type: Number, default: 2 } }, data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRjs7Ozs7Ozs7OztlQUNBLEVBQ0EsOEpBREEsRUFFQSxvQkFGQSxFQUdBLFNBQ0EsZUFDQSxZQURBLEVBRUEsVUFGQSxFQURBLEVBSEEsRUFTQSxJQVRBLGtCQVNBO0FBQ0E7OztBQUdBLEdBYkEsRSIsImZpbGUiOiIzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHQgPExvYWRpbmcxIHYtaWY9XCJsb2FkaW5nVHlwZT09MVwiLz5cclxuXHQgPExvYWRpbmcyIHYtaWY9XCJsb2FkaW5nVHlwZT09MlwiLz5cclxuXHQgPExvYWRpbmczIHYtaWY9XCJsb2FkaW5nVHlwZT09M1wiLz5cclxuXHQgPExvYWRpbmc0IHYtaWY9XCJsb2FkaW5nVHlwZT09NFwiLz5cclxuXHQgPExvYWRpbmc1IHYtaWY9XCJsb2FkaW5nVHlwZT09NVwiLz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBMb2FkaW5nMSBmcm9tIFwiLi9sb2FkaW5nMS52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzIgZnJvbSBcIi4vbG9hZGluZzIudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmczIGZyb20gXCIuL2xvYWRpbmczLnZ1ZVwiO1xyXG5cdGltcG9ydCBMb2FkaW5nNCBmcm9tIFwiLi9sb2FkaW5nNC52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzUgZnJvbSBcIi4vbG9hZGluZzUudnVlXCI7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czp7TG9hZGluZzEsTG9hZGluZzIsTG9hZGluZzMsTG9hZGluZzQsTG9hZGluZzV9LFxyXG5cdFx0bmFtZTogJ3FpdW4tbG9hZGluZycsXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHRsb2FkaW5nVHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAyXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///30\n"); /***/ }), /* 31 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 32);\n/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 34);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGU3NjllZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRlNzY5ZWVcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n"); /***/ }), /* 32 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 33); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 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--10-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/zy/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 /***/ }), /* 34 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 35);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///34\n"); /***/ }), /* 35 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading1',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzFcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcxJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzEgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAxNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzEgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcxIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMSAuc2hhcGU0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24xc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///35\n"); /***/ }), /* 36 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 37);\n/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 39);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGNiM2FlYyZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRjYjNhZWNcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///36\n"); /***/ }), /* 37 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 38); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 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--10-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/zy/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 /***/ }), /* 39 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 40);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n"); /***/ }), /* 40 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading2',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcyJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzIge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzIgLnNoYXBlIHtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMntcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nMiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzIgLnNoYXBlMyB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcyIC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///40\n"); /***/ }), /* 41 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 42);\n/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 44);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGFmMGJlYSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRhZjBiZWFcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n"); /***/ }), /* 42 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 43); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 43 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 /***/ }), /* 44 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 45);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///44\n"); /***/ }), /* 45 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading3',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzNcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmczJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAuY29udGFpbmVyLmxvYWRpbmczIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTIge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMyB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTQge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmczIC5zaGFwZTEge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMyAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmczIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzMgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///45\n"); /***/ }), /* 46 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 47);\n/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 49);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDkyZGNlOCZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ5MmRjZThcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///46\n"); /***/ }), /* 47 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 48); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 48 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 /***/ }), /* 49 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 50);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); /***/ }), /* 50 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading5',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzVcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc1JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzUgLnNoYXBlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzUgLnNoYXBlMSB7XHJcbiAgYW5pbWF0aW9uOiBhbmltYXRpb241c2hhcGUxIDJzIGVhc2UgMHMgaW5maW5pdGUgcmV2ZXJzZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTIge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMiAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTMge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMyAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTQge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlNCAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n"); /***/ }), /* 51 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 52);\n/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 54);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDc2YWRlNiZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ3NmFkZTZcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n"); /***/ }), /* 52 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 53); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 53 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 /***/ }), /* 54 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 55);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///54\n"); /***/ }), /* 55 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading6',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzZcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc2JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIHNjb3BlZD1cInRydWVcIj5cclxuLmNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDMwcHg7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sb2FkaW5nNiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmc2IC5zaGFwZSB7XHJcbiAgd2lkdGg6IDEycHg7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nNiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMSAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUxIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMiAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUyIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc2IC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUzIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTMgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAtMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzYgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTQgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlNCAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///55\n"); /***/ }), /* 56 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 57);\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& */ 59);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUg7QUFDdkg7QUFDOEQ7QUFDTDs7O0FBR3pEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGdGQUFNO0FBQ1IsRUFBRSxxRkFBTTtBQUNSLEVBQUUsOEZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1MDdmMWY0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWVycm9yL3FpdW4tZXJyb3IudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///56\n"); /***/ }), /* 57 */ /*!********************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 58); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 58 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 /***/ }), /* 59 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 60);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThzQixDQUFnQix3ckJBQUcsRUFBQyIsImZpbGUiOiI1OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///59\n"); /***/ }), /* 60 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'qiun-error',\n props: {\n errorMessage: {\n type: String,\n default: null } },\n\n\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQTtBQUNBLG9CQURBO0FBRUE7QUFDQTtBQUNBLGtCQURBO0FBRUEsbUJBRkEsRUFEQSxFQUZBOzs7QUFRQSxNQVJBLGtCQVFBO0FBQ0E7OztBQUdBLEdBWkEsRSIsImZpbGUiOiI2MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWVycm9yXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtZm9udFwiPnt7ZXJyb3JNZXNzYWdlPT1udWxsPyfor7fngrnlh7vph43or5UnOmVycm9yTWVzc2FnZX19PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3FpdW4tZXJyb3InLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5jaGFydHN2aWV3IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHQuY2hhcnRzLWZvbnR7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogI0NDQ0NDQztcclxuXHRcdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0fVxyXG5cdC5jaGFydHMtZXJyb3J7XHJcblx0XHR3aWR0aDogMTI4cHg7XHJcblx0XHRoZWlnaHQ6IDEyOHB4O1xyXG5cdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQ0FZQUFBRERQbUhMQUFBVXowbEVRVlI0WHUxZGUzQmMxWDMrem1wM2pZVldma1BBZ0NXd1k4ekxFZ2xOUUNTVzB5VDlvMlNRYURLZE51bFV5a3dmTStrMDlwK0ozSW1ZSVBKWGk5eVp6RFNaWml3eWFadVpCQ3duTkcxRE1vZ0VtVUFBeTd4cy9NQXlOaENNaldXdHNLMWRlVS9uMjNPdnRMdTZqM1B2M3QyOWQ3MW54ak9TZGU0NTUvNSszL205ejdrQ2pSWTRCUjdlSzdma2NtaHJhc0xUMzdoYlRBWStRWUFEaWdESGFnd0ZZR2hjN2dad0hNQVVnRzRoTVB6TmU4Um9XSW5UQUVDQW5IbDRyK3lSRXQwRFhXSWJoeDNjSjVmSFA4VFlqbnRGUjREVEJEcVVJd0JtTXJKREN0eVBIRG9RdzBROGprZVhpbkNMdEVDcDQzR3doNTZSMjJJeFRCYnUrS0Z4T1RiUUpibzlEbFcxN3JZQVNHZGxOeVNlS2wySkFEcGJrbUtpYWl0MG1XaG9YSFprbXpFNTJDa29jbXZhdnZPc2JNdmw4TWhBbCtqbFFyZzJDUXp1NkJJOU5WMll3K1QyQUppVm8rRHVMMmtTZUxRMUtmckM4a0xjWWJrWUJ2L3BiakVXaGpVTmpVdlNwazlLU0FpY20ydEdYeGpBYVVjYmV3QmtKQW02eGVMQnAxUEoyb3MwNnR0Y0RsOEgwQ0VFYUdudkdlZ1NnMkVBUVpUVzRCMEFFbnRTUzJvdjBtaGdKYzVqbXdUNklERVdpMkUwek5aMldFRmhDNENaakNSeEg3R3dBZnBia21Ja0xDOUVGUUJnMjBCWGVPeVNzTkJHWngyT1hrQjZWZzVDZ0FiTVpnRDdCVERTa2hURE9nTTMra1NEQXI3aUFOTno4bjRoUVJkeG9qVXU5a1RqVlJ1cnRLS0FKd0JJS1pmUFpQT3VZV0ZnWTZ3bGdWNGhhdStHTlZqc25RS2VBSkRPU0lwL1d0NmxiU0tlUUc4alNPU2RBYlYrd2lzQTdGeERTR0FxQm13TlM1RElpR0l1Y3lOd0tpR2VkdXRUejMvM0JnQ2I0SkJKb0dxRElKMlZXNFJFbXhSb2cwUzNsR2dUL05sZlkzUnpDZ0pqUW1KU0NreGVEdUR3QmdDYjhIQWh2UWtDSWRDYlNnUWZtU1BEbVdHRHpIc20xVXF3akJFVUFNYnFFUkNlQUVCR3oyUmtud1IydVcweUFaUWRMNkRSK1dFVzkwc3lYTG1qdFc4U28wSmc5TW9FOXRTRDRlc1pBTlVBQWQxTTVOQWpHT1VMYWFPa0F6Q0tHRWFqN0FyN0FvQkhFR3hyU1lxZE9ueE1aK1czWkE1OVplaHhuV2tDN3lNbEprVU1JeTF4N0l5YVZQQU5BQU1FSFRsZ1RBQ08xcllFUmxxVG90K0o4bmJwNThDNVZjRUJEZnRuT0VwQUtBc0FnWVBBUGdOWlFiWUZQM1FlQ0F5YkovQmcyQ1ZDMlFEd0NvSlVBdHVkaUpLdUV4Q1FMb1piUEtpckFvT0hvdnVJVGhWQnl1WGlpMmpFL0M5STJUYVhCWXNmbVRoeWFoTXRDV3kxQTRFUmJqN3J2dlJJOWFDYTNGN3BJTm0zbjVYZFhndGpGZ0hBWUNRclc0djhiQm82TVlGZXA1Y3dtRWVmdVN3UXBETlNSb3E5K29zZHJxUmFHQnFYTWhmRFZpOGdXQVNBZEVidXN3dXlHQ0tOU0xhdEJ5Z1hCSFVxQVFvaE1tSEVTQUtycXpTcm80VElTMnlPcTEwZFZRUUF1eUtRVW9DN0JYbkl4SFFXd3dMNGF5L3FJTS84REhhRkp1aWp2N005OVF6YU5tQXg2aHpRRnN2aEtTbXh2YWtKbzdvSFVvb0E0TVVBMHdIQlREWWZRblZVQjZiRm5MYzFKSHFpRmdQd3hQblN6aEtqTFVuMEIrVXBzRG9xRmtPZkx2TzVITjhBTU41bE9KVVUyKzJJTUQwbmUwUU90Q2NxMGs3T0FOZTFWR1RvYWc3cWFCUlhlaUZGQUpqT3lCRU5zVjIwSnFjZ2oyRlFIZ3Z5SldZdkFRZlBBSnV2QXY3MTk4QURtNERNSEpCS0FtdWFnNXlwZW1QcEdOaVZXazJwRGNDREREUUNQVFU3RU9nbWpyeE1SZ0E4ZGdCWW13Sk9Yd0J1V2dIODdtM2d6MjZPTGdEeTZxOUc5UlNMdklBeW1GWlVHc2FDakp6RTdxQjErdnZuZ1hSR1FlYkc1UUIvUDMwZWFGMmlRQkhsbGs4d3hkRGZHcS9lWVZMTFFKQmZFT1FOT3BrMy9CZzg2aGJBOGlBWnd0Mi9hNzhhc1g4enNLUkovZnpZUWVEdHRGSUhVYmNKcWkwSm5NNEZhT1g5ZzJTdzdsZ0hUZ1BUczBESFJ4VGpUNXdEdHF6VGZUcjgvYW9KQXJmVHdYMDU1UDE1MTlxNmFwR1Y0djgvWGxVNm56di92bzhDdnp3SzNMMFcyTFM2V3F1by9EelZBb0ZyTWlpdnl6VlN2cFVueWNJTVZBVVUvLy8ya2dJQzliK3BEcXE1amlyTVZYRVgwUlVBZk1rd2dvRHJNb0ZRQlViVWNvcXhWRkpzcmRRQ3RBQVFaaEJVaWpDaEdsZml3ZFNTeXB4ODFnYUFBUUxMQTZPaElsYU5GMk1HcXJpTW0xY0ZxSm9FdGxhaTBsb2JBSXpxWmJQWUY3UnJWMk4rQlQ3OUw5OWM4RWgrZHpJNDc0UkdZU3FCOXFEeUJ1YUxhd01nblpFOEV4amF1MjRDNTZUUEFaOCt2c0QwNTk0R1BySFc1MERXandWdUQyZ0J3RGdtL3ExQVg2Vk9CL3Y1WWVEV05lcmxYbnNmK01LR1lGL1VMUXZyZFRaWEFGUWlvZU4xa1ZIcVR4dUFnU28yeGlXQ2RrK0RWZ1d1QUVqUHl0MzFYcUFSSllBWmE5MlpTcXE3Q010dGpnQ29oMXI5Y2drVTF1ZUR1cTdQRVFEVHMvSlkwTm04c0JJMGd1c0t4Q0NNWkRJb2dzeXF6SklEaUEzWUFxQ3greXZEczRCSExWc0tCRm9QRVBETE5ZYlRvVUNaVXNBU0FGSFkvU2ZUQ3hXdHE1cUJLNHppRUIyYTFWbWZzcVRBSWdCVXVwTFhML0V2c2hqME5OQ2FCTTdOQXI4OXNURFNwNjRIT2ovaWQrVG9QMWVPUjdBWUFENHFnNnRCd3VmZUFSaGFiVjhCZlBKYUZXeFpFZ2VTTVdEVG1zdGFBcEQ4dnVNQ1JRQUk0N0dzMzd3RnJHNEdya3NCUjg4Mm1HMjEyVmhXM3JwRXRQdlppTDZPaHZtWnlPc3pGUG03RDZxcVgrNzZMNnhmR0lIL2w3bWtWTUdOS3k3NzNaOG5qSXloMTA4MWNmSEJrSkFFZmdxWnYya1Y4Q21qNEhQL0g0QURaMVJCcU5tWWJmdkV0VjdoVlgvOS9YN0hZUjRBWVVyNlBQbW1ZalNaLzdrYmxSVDQ3eU9LOFV5dThEeEE2eFhxSEFEVncyWHNBUlFodVNXQkZWN3JCZVlCb0hzeXVOSjc1ODJ6d0JOSGdOVkxnYis4VFRILzhZT3Evbys3ZmZQVkN3eW5wQWlDK1crY1VmT2Nud091dmxJZE80dGk4Nk1HNWdHUWRya0Z0Rm9FMmZVeWtKNEYrdTRBa25IZ3g2K3BuZi9aZHVDVzFRRDlmM29EUEEvQTV0Y0ZwQTN4OGluZ3hYY1Z1UEo2MURndDI3TVJ1S0cxV204YzZEeWV2WUU4QU1Kay9mL25xOEJOSzVWZU4xMC9rOG12bndaK1pSdzFwZmpuWWRDT3ExVlp1SmQyL0J6d3YwY1hHTDlocGRyMVBHTklnTVVGOE9lM0FxdVdlaGsxRkgwblVrblI2V1VsZVFDRU5lMzd2WmVVRk9pL0F5aFVEYlFML0p3RTVxNG5nSTRZTnhCeGw3TmlaNWtCb0NlUEFiOS9SNG1CcTY0RWVqY0dYOURoaFRsKytzWVRhUGR5YTdzQ2dQb3lTTTFMdnVqek04RHpkM2N1TU55MDhpa1plQnFZcW9FN25qdjF0MjhwM2MzZi8raGFwU0xzMmpzekFJMUx1bzQwSk1uNGo2NHM3djNQenltcFFOZVNnTHRuTGZEeGlIa1lYa3ZHRkFBMHIyWWpzZjNzUEYwa20vci9IKzlhRVA4UDhPUlBFaGg1ZWNFcklQTnBHTEp4RjcvM29XTGNmZXNWODByYm9RK1V5RGY3ZjNIVFl1UHgrWGVBWDAwQ3Q2OEJQbjBEOE84VGFzeXZiZ1pha3JwdkVJcCtudXlBUEFDbU0vS3NXN2szYitONC9BQkE1bFNxOGNJSDAvbzM5ZjlmM0tvWVFZYWIwdURuUjRCalo0R3YzTFlBZ0IrOXFpUUIreGUyWDArcTRrdzIyaEw4Vjlyb1RYejNCVFhQMXo2bVZBSnpEZnhIcVVJRE5FTE4wMmY5aEk3L1Q2djd6U2tsYm1sOE1mRkNYenpvUnAxUHY1N24vV2o1TS9SckpubjIvUUc0cmxWSklQTTQrRGZ2V1ZqQjkvWXBGZkZKSXpCRVp2N2lNSEFpclVUKzU5cUJPMnpjdTd6dWYxZnRmck9LdHhBVVZFbEJGM2NHVFR0elBCYU50aWFGaFJ5MG5sSG9HSURjL2ErZlVsZXowRHEvWlkyNmtpWG9Sb0NSMEc1V3ZSa29NbmYwL3h3Rlhud1BpQUZJTmdFM0xBT21Md0tualBFb0tlamZXN1hqMCtxME1lZjkyc2VMVlFOTHZGOTVIL2lUbTRDTkpmWkMwTzhlNUhoZUFrSkNOd0JrSHN2Kyt6dURYS3Evc1NnZC91dTF4ZjQ3Z2ZuV09SNW1WZU5lMVF4OGFkT0NsVzhsK244d29RekRMOTY4MkNpazdmRFRnOEQxS2FEM1puOXJyZFJUbEhBMG1tbXZMSkpPSG9wRVJGZzhBSytFSWdpb21vNmRBeTdPS2RYd054M0FpUm5nUnk4RE9RbDBYZ044WnAxOXRKRE1KWk1MUlgvcE9oN2Vxd2hNTlJDbVp0cGtWcmVpZVBFRUNBRExqMFNINldXZDFrSWdQUDZHMnNWdHk0QXYzNnBFLys0M2dETVgxSzYrYjhOaUVKaEdIcVhFVjI2M0J3bTlBWTczMVE2Z0pWRjdxbkRuVDd5bmJDUzZ6RHg4UXBYSmdOaThKUEJ3bWxqb3VvQzFmM1g3RmRESEgzMERtTXNCRzFZb3NVK20wVmc4ZXhHNHBrVjVCMmJlZ0NGZzVodElNQ2Y3Z0RPYWRzQ1hiZ0d1c2JFanFra2JNcCtpdjdRUjVQT0crZVVHQURML3JXbWdTUUJ6RXVpNEN2alQ5Y0JVQm5qaWtQcWJDWUp6RjRFZkdCZE5NVzVnNXhtWUJLWTNjT2dNc0dFVmNDbFhUVlk3eitXa0FyeFVDSWtvRklBNmtlTFh4NERYVGl1RGIydWJpaGRrY3NDbkRaK2ZEUHpaSVJYK3BZdkpSQlBGNkdmYlZQUlF0MTI0RkU0QVVMSlpCT2UwWXdGVUFaRzltdjJGZDRHOUo0dGRPRWIwZm5OQ1ZReHR1UUhvdWc0Z0NINXlBRGd4cmRqdFpQUlplUXF2bkZJU2dFbWlNRFY2WmpidWVQMERnQm05UFllczlUaXpocjg0bXI5OE9sOVF3cHM2Nk9zelpPeUYrV1MyR1NRS2l3MmdDY0Q2QmtCTUFCVDlETkxZNlhGS2dpY25WV0NJdVFSNkJNd2IwT2p6MGhoaXBnM3g1ZHNpbFI2dWJ3QTB4d0dDZ0R2YUxzSkhKdFBQUC95Qkt2UWc4NjJTUUc1Z1lCeUFyWkk1RUxjMStQaTdQZ0NtTTVKZnVBck5SWkJ1TDB1R01rZGc1ZHNYUGt0d2NQZlM0UE1xOXMxeHpEQXhTOUtabFl4UTB3ZEFsT0lBRk9QVTVXeG0xczZLS2ZUenFidkxZVDdITldNQU5DWlppeGloVnA4QVlIU1BscnhkV3BjTU1pTjgvUG11YTFRVzBFK0xhamJRZU5mNkE0QloxTUd3NXo5OGJERkx5YkFuRHF2WVBwdE9rTWNKR0JHdUIrQnJhUmVGUkNZVS9PUFhnVk1mV2pPVytwNEduMW51NVJiZWRaTUlIT2U3TDZwZXZKYStFcWx2dHpXVTlYZFBvZUNRMUFNNnZiQ3ArMHQzUDNjOTZ3Slp6TUhHNmw0V2RKUjdWdUNSNTRFTGM2cTR4RXUwc0N5bUJmaXdwMnlnYmoxQWdPdnpQQlFqY1U4ZEw5YnBOUFFvcHMxZFQ3c2dDR1l4U2NTeEdVUmEyK3J1YlhoK21Xbzg0S2tlSUN1N0ljRmJRRVBiNlBxeDZtZHBYQlY5SHZsZ29SaWt0TFM3bkpjdzlYNGlwdUlNOUNKV1hxSFN4VkZxWGtyRFJaZ09oZGdST1pzRHZ2OFNjTW5NV2dpVjl1V09YeGZBQ1I2cUVycDhCSnBWWTdLRjJVVzNVclV3Z0VRQzUxcVRRcnRpVTFVRno4cEpJUkRxajY3TXpBR1B2YTVFUHNPN3pQa0h3WHlPOThOWDFJZW9tRTRteUZnblFIQXh5c2lRTWtQQkxJWmxzV29FbXJZTHlIZnhkQzZnMWkvUHhmSmtEOU8vYk9XSWYvT2FHZXA3TnVyOGVFd0JvTkNGcEhRdzZ3Yi85czd5RGN3cTBGRGJCVndBUUFROGdVTENVVlNQbjF5NEo0QmxYK3VXcWZJdjg1aVhGYUhONGc3dWFKNElOcjg0d3RMenJBUmVlRnM5OVZlM0Z4OE8vWmZuVmQzaFhkZXFieE9GdVhueEFPWUJFTmFMb1p3SVRXbkEzY3Q2QVBOMEwvdFRiRk9FWHhGWFAzT25UMTFVSTVIeGhZMkhQbmpZaENxRnBlWTgrOEJXR0duazg5L2ZCOUFPWVdQUkNYTUxZVzFlRE1CNUFQQ0hxQmFHRUFpc0RXQ0krUERaNHR0RFNwbEVZS3hmb2R5Nzl1VUtLT2FwSTU1SjRHbGcyZ0lzSnFGNklZQUlNdlpoLzJNR1FHNWJBM3ltTFhnSTBJQVRBajNtbDBHOFZteExpZU90UzRTbmxZWHVmb0J5eWRvVVV3ZEhlVWhrZGs2ZExxYnp3Q05uZE84S0c1bk84REdaYmxZSHMyYndKd2VMZ1dRR21GZ2J5RGdCRzA4T1h4K0FCMUswSUF2LzNjdEhQUDFjRXhPNkcwTEtCWUR1ODJRK3E0YTUyeW5TV1RsVUdFRmtLcGh0K1pKaXU0TC9UOC9nOCsxQWM2SlkvZWpPYmRjdmxSU1dSV2M4dlNVbFJ0M1M5bVhkRUtKelJyRGNGd3pMODZ5blo3cVl6Vyt0QUEzS254NVFoYWEwR2NvdHJIUTcwNmYxNlQ2SjBaWWsrcjNjRTFTRXVIUkdUZ0RZSEJaR1ZXSWRoY3ozV2hsY3VKN0NkREdEVW4vY3JvekpjcHJiRHRZQ0FlRHBZNVBGQUlpWU8raVYyTnoxNXVkY3lrMFhjKzdDcWlQZUtQTEF4dkpBb1BPNVdPT3I3S011Z1R0dEVCUUJvSjdWUUNIekdTOXdxaVgwQWl5Q3dLeEJxQllJalBBOXY5THVKSzBuNGduMHVsMFhFNW03Z3Iwd3BiU3ZlWXFtbkRGMG53M3FXaG0zZ0k0T0NIUWt5aUlBNk53WG9FdU1zUFNqSDgvSVgyYXVzaXVpSWNqYXdYSnRBWE9WZ1lCQVlqS1ZSS2VkWVdqM3ZZRFFKNGNxeThyd2pPNEdBcTUwMnVXR2R5ZmpzdkhGa1BEdzJuNGxBb09waEhqUWFhbE9JSEFDa1NVQXFGL1NXVXk2QlI2aVFMdDZXYU1FUmxxVG90OHJDQmhlVGlUUVlXY00yaDUzOUJLQ3JCY2loLzA5ZEVCQXZ1V0FZVzVlTWg4eDlKblh5QnU1aFMzNTl4UVlhNGxqcCtONTF5Z1Vpb1NkYVVHdmp5QklKYkRkTGRwSEtWN1l4eXF4eE55Qkl3RHEwU01JbWlFMUdrODcwR091eitvRUdOMUUxeFB2VVRvNlZpTm0xR3BhVHlDd0MvTzdBb0NoUnduc3E5VmJOdVoxcElBMkNDeTlCSWs5cmdEZzlPbU1IQWJ3OVFZelFra0JMUkFZa2NOUkFNb0lCUFlMb0U4TEFBWUk2ajVUR0VyMjZpM0tVeUZvNFpEYUFOQk1SZW90dDlFclVBcTQxUkk0VGFZTkFBNFNoV05rZ1ZJMlFvUFpWUk81dllJdEFJYkdaWWNRV0paWml2MkRuY0lvaDh4L1hDTFNONHU2RVNTcWZ3OFVBRVBqZWFPdmoxK2tCTEN1cVFtZDM3aGI4R2Z6KzBKdXVlaW8wakdTNi9aVERHcSs2Q0lKTUxoUExrK2N4OWxZRE8xaytrUFB5QkVoTURuUUpRYk5oMWc0a3MxaW9wRXJxRGhlOXNjVDZKbkxZQmdDOTF2TjVoYnJkMXZoSWdCODUxblpsc3ZoV0xZWkt5ajZEV21BZ1M2eHJYQ3dobEhvUnRyeS9zNGEvMVFTSFdZNGw2RmNLYkN0Y05PeFQweWdweVVwNktINWFwWTJnTEhydDFBRkNJSE9XQXdkcGdvb25LVVJLdlpGYzllSHVLdGpRSGNwWS9NbGUzTm9Rdzdkc2drVGZyNFZYRHE1clJINDhGN1prOHVocmFrSm8xYk1Od2RxWkExZCtlbXBneDN6UFEzaW9iTW5OOUJ1M0FZSVBGRGNvV3UxbWMrbEJBSUFEc1FEcHNoaHBHRVkrZ05ETFpnZkNBRG9OU1F2cVBMa1RTdXhmdU5xN0l3SmhPRFRDdjRZVVl1bnNqa2MzZjgrQm83TTR2OEtZeTVjaXhtUEtWeFhhV3ltbkRXWExRR0d4aVZqQW1hQ29aeTFYUGJQU29uOU8rNFZIU1loYUlkSmlkMmxoSkVTVXp2dTFmODBuQk5oeXdZQTNjWTVvT2hJOHVxbGFMaytoZldYUFVjMUNIQWlqU09uTDJDR1hlUEFaS0hCemQwUGdFRzUwalpSNnBaclRHWFpwV3dBK0oyNDhWdzRLTkFBUURqNFVMTlZCQTZBYno4cnU4VWw5U1Z5SVRDVmJVWS9EUnNqeEx4TFNtaGRZU1lFSGgzb0VpTWNoMnJtMGlYc3NxSFN4STU3eGZaS1UvQ2haK1FqQU9iMWM2WG5NK2czVDROS3pSYzRBSWJHWlI4VFNlYUNZekgwVWE4WkllWThRelhiU0JFQWN2bFNaeXZ3QktZUG5kYjEwTGprQlExYTROVjhQNTF1OHpUUTZleW5UK0FBOExPSXhqTzFvMEFEQUxXamZTaG1qaHdBQ2dOUG9hQ2dzbldPTytWTHdySk9xM1ZFRGdDR0xyYk1qZGVLMEVFR1pxcjlEcEVEZ0ZYZ3FkcEVLNTB2bHNQVVFKZi9uSHd0MS8vLzg5YnFEakNQV1BBQUFBQUFTVVZPUks1Q1lJST1cIik7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///60\n"); /***/ }), /* 61 */ /*!**************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 62);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n"); /***/ }), /* 62 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 73));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 74));\n\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 75));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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() {var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}for (var i in args) {for (var key in args[i]) {if (args[i].hasOwnProperty(key)) {origin[key] = args[i][key] && typeof args[i][key] === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];}}}return origin;}function formatterAssign(args, formatter) {for (var key in args) {if (args[key] !== null && typeof args[key] === 'object') {formatterAssign(args[key], formatter);} else if (key === 'format' && typeof args[key] === 'string') {args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;}}return args;} // 时间转换函数,为了匹配uniClinetDB读取出的时间与categories不同\nfunction getFormatDate(date) {var seperator = \"-\";var year = date.getFullYear();var month = date.getMonth() + 1;var strDate = date.getDate();if (month >= 1 && month <= 9) {month = \"0\" + month;}if (strDate >= 0 && strDate <= 9) {strDate = \"0\" + strDate;}var currentdate = year + seperator + month + seperator + strDate;return currentdate;}var lastMoveTime = null; /**\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 */function debounce(fn, wait) {var timer = false;return function () {var _arguments = arguments,_this = this;clearTimeout(timer);timer && clearTimeout(timer);timer = setTimeout(function () {timer = false;fn.apply(_this, _arguments); // 把参数传进去\n }, wait);};}var _default2 = { name: 'qiun-data-charts', mixins: [uniCloud.mixinDatacom], props: { type: { type: String, default: null }, canvasId: { type: String, default: 'uchartsid' }, canvas2d: { type: Boolean, default: false }, background: { type: String, default: 'rgba(0,0,0,0)' }, animation: { type: Boolean, default: true }, chartData: { type: Object, default: function _default() {return { categories: [], series: [] };} }, opts: { type: Object, default: function _default() {return {};} }, eopts: { type: Object, default: function _default() {return {};} }, loadingType: { type: Number, default: 2 }, errorShow: { type: Boolean, default: true }, errorReload: { type: Boolean, default: true }, errorMessage: { type: String, default: null }, inScrollView: { type: Boolean, default: false }, reshow: { type: Boolean, default: false }, reload: { type: Boolean, default: false }, disableScroll: { type: Boolean, default: false }, ontap: { type: Boolean, default: true }, ontouch: { type: Boolean, default: false }, onmouse: { type: Boolean, default: true }, onmovetip: { type: Boolean, default: false }, echartsH5: { type: Boolean, default: false }, echartsApp: { type: Boolean, default: false }, tooltipShow: { type: Boolean, default: true },\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: false,\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\n\n\n\n\n\n\n\n\n\n //非微信小程序端强制关闭canvas2d模式\n\n this.type2d = false;\n\n\n\n\n\n\n\n\n\n\n\n this.disScroll = this.disableScroll;\n },\n mounted: function mounted() {var _this2 = this;\n\n this.inApp = true;\n if (this.echartsApp === true) {\n this.echarts = true;\n this.openmouse = false;\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n this.$nextTick(function () {\n _this2.beforeInit();\n });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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\n uni.offWindowResize(function () {});\n\n },\n watch: {\n chartDataProps: {\n handler: function handler(val, oldval) {\n if (typeof val === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n if (val.series && val.series.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 } 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 (typeof val === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false) {\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 (typeof 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) {var _this3 = this;\n if (val === true && this.mixinDatacomLoading === false) {\n setTimeout(function () {\n _this3.mixinDatacomErrorMessage = null;\n _this3.echartsResize = !_this3.echartsResize;\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({ name: 'error', params: { type: \"error\", errorShow: this.errorShow, msg: val, id: this.cid } });\n if (this.errorShow) {\n __f__(\"log\", '[秋云图表组件]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:600\");\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 (typeof 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 = { categories: [], series: [] };\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({ name: item.group, data: [] });\n tempskey[item.group] = true;\n }\n });\n //如果没有获取到分组名称(可能是带categories的数据,也可能是不带的饼图类)\n if (tmpseries.length == 0) {\n tmpseries = [{ name: '默认分组', data: [] }];\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({ \"name\": resdata[_i3].text, \"value\": resdata[_i3].value });\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) {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() {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.\n createSelectorQuery().\n\n in(this).\n\n select('#ChartBoxId' + this.cid).\n 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 }).\n exec();\n },\n getCloudData: function getCloudData() {var _this6 = this;\n if (this.mixinDatacomLoading == true) {\n return;\n }\n this.mixinDatacomLoading = true;\n this.mixinDatacomGet().\n then(function (res) {\n _this6.mixinDatacomResData = res.result.data;\n _this6.localdataInit(_this6.mixinDatacomResData);\n }).\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.echrts !== true) {\n var ctx = uni.createCanvasContext(cid, this);\n ctx.clearRect(0, 0, this.cWidth, this.cHeight);\n ctx.draw();\n }\n },\n init: function init() {var _this7 = this;\n var cid = this.cid;\n var chartdom = uni.\n createSelectorQuery().\n\n in(this).\n\n select('#ChartBoxId' + cid).\n 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].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.\n select('#' + cid).\n fields({ node: true, 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 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 _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 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 }).\n exec();\n },\n saveImage: function saveImage() {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n\n\n\n\n\n\n\n\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success() {\n uni.showToast({\n title: '保存成功',\n duration: 2000 });\n\n } });\n\n\n } },\n this);\n },\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 } } };exports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 63)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4SkE7QUFDQTs7QUFFQSxvSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLCtQQUNBLHFCQUNBLDBCQUNBLGtDQUNBLGtLQUNBLENBQ0EsQ0FDQSxDQUNBLGNBQ0EsQ0FFQSwyQ0FDQSx1QkFDQSwwREFDQSxzQ0FDQSxDQUZBLE1BRUEsd0RBQ0EsNEVBQ0EsQ0FDQSxDQUNBLFlBQ0EsQyxDQUVBO0FBQ0EsOEJBQ0Esb0JBQ0EsOEJBQ0EsZ0NBQ0EsNkJBQ0EsK0JBQ0Esb0JBQ0EsQ0FDQSxtQ0FDQSx3QkFDQSxDQUNBLGlFQUNBLG1CQUNBLENBRUEsd0IsQ0FDQTs7Ozs7Ozs7Ozs7Ozs7OzhXQWdCQSw2QkFDQSxrQkFDQSw0REFDQSxvQkFDQSw2QkFDQSxnQ0FDQSxjQUNBLDRCQUZBLENBRUE7QUFDQSxLQUhBLEVBR0EsSUFIQSxFQUlBLENBUEEsQ0FRQSxDLGdCQUVBLEVBQ0Esd0JBREEsRUFFQSwrQkFGQSxFQUdBLFNBQ0EsUUFDQSxZQURBLEVBRUEsYUFGQSxFQURBLEVBS0EsWUFDQSxZQURBLEVBRUEsb0JBRkEsRUFMQSxF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QUFJQSxhQVBBOzs7QUFVQSxTQXJCQTtBQXNCQSxVQXRCQTtBQXVCQSxLQWxYQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtoQkEsVUFsaEJBLGtCQWtoQkEsQ0FsaEJBLEVBa2hCQTtBQUNBO0FBQ0EsS0FwaEJBO0FBcWhCQSxXQXJoQkEsbUJBcWhCQSxHQXJoQkEsRUFxaEJBO0FBQ0E7QUFDQSxLQXZoQkE7QUF3aEJBLGlCQXhoQkEsMkJBd2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0E3aEJBO0FBOGhCQSxVQTloQkEsb0JBOGhCQTtBQUNBO0FBQ0EsS0FoaUJBLEVBM1lBLEUiLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8IS0tIFxyXG4gKiBxaXVuLWRhdGEtY2hhcnRzIOeni+S6kemrmOaAp+iDvei3qOWFqOerr+WbvuihqOe7hOS7tiB2Mi4zLjctMjAyMjAxMThcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+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+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgTVAtMzYwIHx8IE1QLUJBSURVIHx8IE1QLVFRIHx8IE1QLVRPVVRJQU8gfHwgTVAtV0VJWElOIC0tPlxyXG4gICAgPGJsb2NrIHYtaWY9XCJ0eXBlMmRcIj5cclxuICAgICAgPHZpZXcgdi1pZj1cIm9udG91Y2hcIiBAdGFwPVwiX3RhcFwiPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIHR5cGU9XCIyZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiXHJcbiAgICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgICBAdG91Y2hlbmQ9XCJfdG91Y2hFbmRcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgICA8dmlldyB2LWlmPVwiIW9udG91Y2hcIiBAdGFwPVwiX3RhcFwiPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIHR5cGU9XCIyZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDxibG9jayB2LWlmPVwiIXR5cGUyZFwiPlxyXG4gICAgICA8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiXHJcbiAgICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgICBAdG91Y2hlbmQ9XCJfdG91Y2hFbmRcIlxyXG4gICAgICAgICAgOmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCJcclxuICAgICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgICB2LWlmPVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCIhb250b3VjaFwiID5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtaWY9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgdUNoYXJ0cyBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbi8vICNpZmRlZiBBUFAtVlVFIHx8IEg1XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuLy8gI2VuZGlmXHJcblxyXG5mdW5jdGlvbiBkZWVwQ2xvbmVBc3NpZ24ob3JpZ2luID0ge30sIC4uLmFyZ3MpIHtcclxuICBmb3IgKGxldCBpIGluIGFyZ3MpIHtcclxuICAgIGZvciAobGV0IGtleSBpbiBhcmdzW2ldKSB7XHJcbiAgICAgIGlmIChhcmdzW2ldLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICBvcmlnaW5ba2V5XSA9IGFyZ3NbaV1ba2V5XSAmJiB0eXBlb2YgYXJnc1tpXVtrZXldID09PSAnb2JqZWN0JyA/IGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtYXR0ZXJBc3NpZ24oYXJncyxmb3JtYXR0ZXIpIHtcclxuICBmb3IgKGxldCBrZXkgaW4gYXJncykge1xyXG4gICAgaWYoYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSxmb3JtYXR0ZXIpXHJcbiAgICB9ZWxzZSBpZihrZXkgPT09ICdmb3JtYXQnICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdzdHJpbmcnKXtcclxuICAgICAgYXJnc1snZm9ybWF0dGVyJ10gPSBmb3JtYXR0ZXJbYXJnc1trZXldXSA/IGZvcm1hdHRlclthcmdzW2tleV1dIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYXJncztcclxufVxyXG5cclxuLy8g5pe26Ze06L2s5o2i5Ye95pWw77yM5Li65LqG5Yy56YWNdW5pQ2xpbmV0RELor7vlj5blh7rnmoTml7bpl7TkuI5jYXRlZ29yaWVz5LiN5ZCMXHJcbmZ1bmN0aW9uIGdldEZvcm1hdERhdGUoZGF0ZSkge1xyXG5cdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHR2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHR2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG5cdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0aWYgKG1vbnRoID49IDEgJiYgbW9udGggPD0gOSkge1xyXG5cdFx0XHRtb250aCA9IFwiMFwiICsgbW9udGg7XHJcblx0fVxyXG5cdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0fVxyXG5cdHZhciBjdXJyZW50ZGF0ZSA9IHllYXIgKyBzZXBlcmF0b3IgKyBtb250aCArIHNlcGVyYXRvciArIHN0ckRhdGU7XHJcblx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG59XHJcblxyXG52YXIgbGFzdE1vdmVUaW1lID0gbnVsbDtcclxuLyoqXHJcbiAqIOmYsuaKllxyXG4gKlxyXG4gKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG4gKiBAcGFyYW0geyBOdW1iZXIgfSB3YWl0ICDpmLLmipblpJrlsJHmr6vnp5JcclxuICpcclxuICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcbiAqIG1vdmUoKXsgIC8vIOmUmeivr+iwg+eUqOaWueW8j1xyXG4gKiAgIGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcclxuICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuICogfSwgMTAwMCl977yJO1xyXG4gKiDlupTor6Xnm7TmjqXkvb/nlKjvvJovLyDmraPnoa7osIPnlKjmlrnlvI9cclxuICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gKiAgIGNvbnNvbGUubG9nKHRoaXMudGl0bGUpO1xyXG4gKiB9LCAxMDAwKVxyXG4gKi9cclxuZnVuY3Rpb24gZGVib3VuY2UoZm4sIHdhaXQpIHtcclxuICBsZXQgdGltZXIgPSBmYWxzZTtcclxuICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgdGltZXIgJiYgY2xlYXJUaW1lb3V0KHRpbWVyKTtcclxuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRpbWVyID0gZmFsc2U7XHJcbiAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIOaKiuWPguaVsOS8oOi/m+WOu1xyXG4gICAgfSwgd2FpdCk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdxaXVuLWRhdGEtY2hhcnRzJyxcclxuICBtaXhpbnM6IFt1bmlDbG91ZC5taXhpbkRhdGFjb21dLFxyXG4gIHByb3BzOiB7XHJcbiAgICB0eXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGNhbnZhc0lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJ3VjaGFydHNpZCdcclxuICAgIH0sXHJcbiAgICBjYW52YXMyZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGJhY2tncm91bmQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuICAgIH0sXHJcbiAgICBhbmltYXRpb246IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGNoYXJ0RGF0YToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNhdGVnb3JpZXM6IFtdLFxyXG4gICAgICAgICAgc2VyaWVzOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvcHRzOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlb3B0czoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbG9hZGluZ1R5cGU6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAyXHJcbiAgICB9LFxyXG4gICAgZXJyb3JTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlcnJvclJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGluU2Nyb2xsVmlldzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlc2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGRpc2FibGVTY3JvbGw6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBvbnRhcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb250b3VjaDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG9ubW91c2U6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9ubW92ZXRpcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGVjaGFydHNINToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGVjaGFydHNBcHA6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB0b29sdGlwU2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcEZvcm1hdDoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBDdXN0b206IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICBzdGFydERhdGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICBlbmREYXRlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgdGV4dEVudW06IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQgKCkge1xyXG4gICAgICAgIHJldHVybiBbXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZ3JvdXBFbnVtOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0ICgpIHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHBhZ2VTY3JvbGxUb3A6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAwXHJcbiAgICB9LFxyXG4gICAgZGlyZWN0b3J5OiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJy8nXHJcbiAgICB9LFxyXG4gICAgdGFwTGVnZW5kOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBtZW51czoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjaWQ6ICd1Y2hhcnRzaWQnLFxyXG4gICAgICBpbld4OiBmYWxzZSxcclxuICAgICAgaW5BbGk6IGZhbHNlLFxyXG4gICAgICBpblR0OiBmYWxzZSxcclxuICAgICAgaW5CZDogZmFsc2UsXHJcbiAgICAgIGluSDU6IGZhbHNlLFxyXG4gICAgICBpbkFwcDogZmFsc2UsXHJcbiAgICAgIGluV2luOiBmYWxzZSxcclxuICAgICAgdHlwZTJkOiB0cnVlLFxyXG4gICAgICBkaXNTY3JvbGw6IGZhbHNlLFxyXG4gICAgICBvcGVubW91c2U6IGZhbHNlLFxyXG4gICAgICBwaXhlbDogMSxcclxuICAgICAgY1dpZHRoOiAzNzUsXHJcbiAgICAgIGNIZWlnaHQ6IDI1MCxcclxuICAgICAgc2hvd2NoYXJ0OiBmYWxzZSxcclxuICAgICAgZWNoYXJ0czogZmFsc2UsXHJcbiAgICAgIGVjaGFydHNSZXNpemU6ZmFsc2UsXHJcbiAgICAgIHVjaGFydHNPcHRzOiB7fSxcclxuICAgICAgZWNoYXJ0c09wdHM6IHt9LFxyXG4gICAgICBkcmF3RGF0YTp7fSxcclxuICAgICAgbGFzdERyYXdUaW1lOm51bGwsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgY3JlYXRlZCgpe1xyXG4gICAgdGhpcy5jaWQgPSB0aGlzLmNhbnZhc0lkXHJcbiAgICBpZiAodGhpcy5jYW52YXNJZCA9PSAndWNoYXJ0c2lkJyB8fCB0aGlzLmNhbnZhc0lkID09ICcnKSB7XHJcbiAgICAgIGxldCB0ID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonXHJcbiAgICAgIGxldCBsZW4gPSB0Lmxlbmd0aFxyXG4gICAgICBsZXQgaWQgPSAnJ1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcclxuICAgICAgICBpZCArPSB0LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBsZW4pKVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2lkID0gaWRcclxuICAgIH1cclxuICAgIGNvbnN0IHN5c3RlbUluZm8gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKVxyXG4gICAgaWYoc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ3dpbmRvd3MnIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICdtYWMnKXtcclxuICAgICAgdGhpcy5pbldpbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjaWZkZWYgTVAtV0VJWElOXHJcbiAgICB0aGlzLmluV3ggPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuY2FudmFzMmQgPT09IGZhbHNlIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICd3aW5kb3dzJyB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnbWFjJykge1xyXG4gICAgICB0aGlzLnR5cGUyZCA9IGZhbHNlO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMucGl4ZWwgPSBzeXN0ZW1JbmZvLnBpeGVsUmF0aW87XHJcbiAgICAgIGlmICh0aGlzLmNhbnZhc0lkID09PSAndWNoYXJ0c2lkJyB8fCB0aGlzLmNhbnZhc0lkID09ICcnKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1t1Q2hhcnRzXTrlvIDlkK9jYW52YXMyZOaooeW8j++8jOW/hemhu+aMh+WummNhbnZhc0lk77yM5ZCm5YiZ5Lya5Ye6546w5YG25bCU6I635Y+W5LiN5YiwZG9t6IqC54K555qE6Zeu6aKY77yBJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy/pnZ7lvq7kv6HlsI/nqIvluo/nq6/lvLrliLblhbPpl61jYW52YXMyZOaooeW8j1xyXG4gICAgLy8gI2lmbmRlZiBNUC1XRUlYSU5cclxuICAgIHRoaXMudHlwZTJkID0gZmFsc2U7XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgIHRoaXMuaW5BbGkgPSB0cnVlO1xyXG4gICAgdGhpcy5waXhlbCA9IHN5c3RlbUluZm8ucGl4ZWxSYXRpbztcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIE1QLUJBSURVXHJcbiAgICB0aGlzLmluQmQgPSB0cnVlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG4gICAgdGhpcy5pblR0ID0gdHJ1ZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgdGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgLy8gI2lmZGVmIEFQUC1WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0FwcCA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmVjaGFydHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2VcclxuICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIEg1XHJcbiAgICB0aGlzLmluSDUgPSB0cnVlO1xyXG4gICAgaWYodGhpcy5pbldpbiA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0g1ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU8gfHwgQVBQLVZVRVxyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHVuaS5vbldpbmRvd1Jlc2l6ZShcclxuICAgICAgZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAgICAgaWYgKF90aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXJybXNnID0gX3RoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIGlmIChlcnJtc2cgIT09IG51bGwgJiYgZXJybXNnICE9PSAnbnVsbCcgJiYgZXJybXNnICE9PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoX3RoaXMuZWNoYXJ0cykge1xyXG4gICAgICAgICAgX3RoaXMuZWNoYXJ0c1Jlc2l6ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBfdGhpcy5yZXNpemVIYW5kbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aW1lKVxyXG4gICAgKTtcclxuICAgIC8vICNlbmRpZlxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmZS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1lbHNle1xyXG4gICAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1cclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU9cclxuICAgIHVuaS5vZmZXaW5kb3dSZXNpemUoKCk9Pnt9KVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY2hhcnREYXRhUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkpIHtcclxuICAgICAgICAgICAgaWYgKHZhbC5zZXJpZXMgJiYgdmFsLnNlcmllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5iZWZvcmVJbml0KCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mmNoYXJ0RGF0YeaVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbG9jYWxkYXRhOntcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpKSB7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iZWZvcmVJbml0KCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb3B0c1Byb3BzOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpICYmIHRoaXMuZWNoYXJ0cyA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mm9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkgJiYgdGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJplb3B0c+aVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgcmVzaG93KHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5lY2hhcnRzUmVzaXplID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZWxvYWQodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2Vycm9yJywgcGFyYW1zOiB7dHlwZTpcImVycm9yXCIsIGVycm9yU2hvdzogdGhpcy5lcnJvclNob3csIG1zZzogdmFsLCBpZDogdGhpcy5jaWR9fSk7XHJcbiAgICAgICAgaWYodGhpcy5lcnJvclNob3cpe1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgJiYgdGhpcy5lcnJvclNob3cgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gJ251bGwnICYmIHZhbCAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gdmFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuICAgIH0sXHJcbiAgICBjaGFydERhdGFQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBiZWZvcmVJbml0KCl7XHJcbiAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNoYXJ0RGF0YSA9PT0gJ29iamVjdCcgJiYgdGhpcy5jaGFydERhdGEgIT0gbnVsbCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+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+v77yaJyArIGVycjtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBvbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKG5lZWRSZXNldCwgY2hhbmdlZCkge1xyXG4gICAgICBpZiAobmVlZFJlc2V0ID09IHRydWUgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICB0aGlzLmdldENsb3VkRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX2NsZWFyQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZiAodGhpcy5lY2hydHMgIT09IHRydWUpIHtcclxuICAgICAgICBjb25zdCBjdHggPSB1bmkuY3JlYXRlQ2FudmFzQ29udGV4dChjaWQsIHRoaXMpO1xyXG4gICAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgdGhpcy5jV2lkdGgsIHRoaXMuY0hlaWdodCk7XHJcbiAgICAgICAgY3R4LmRyYXcoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGluaXQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY2hhcnRkb20gPSB1bmlcclxuICAgICAgICAuY3JlYXRlU2VsZWN0b3JRdWVyeSgpXHJcbiAgICAgICAgLy8gI2lmbmRlZiBNUC1BTElQQVlcclxuICAgICAgICAuaW4odGhpcylcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAuc2VsZWN0KCcjQ2hhcnRCb3hJZCcrY2lkKVxyXG4gICAgICAgIC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS53aWR0aCA+IDAgJiYgZGF0YS5oZWlnaHQgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdERyYXdUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgdGhpcy5jV2lkdGggPSBkYXRhLndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLmNIZWlnaHQgPSBkYXRhLmhlaWdodDtcclxuICAgICAgICAgICAgaWYodGhpcy5lY2hhcnRzICE9PSB0cnVlKXtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZCA9PSAncmdiYSgwLDAsMCwwKScgPyAnI0ZGRkZGRicgOiB0aGlzLmJhY2tncm91bmQ7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNhbnZhczJkID0gdGhpcy50eXBlMmQ7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnBpeGVsUmF0aW8gPSB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5hbmltYXRpb24gPSB0aGlzLmFuaW1hdGlvbjtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9IHRoaXMub250YXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2ggPSB0aGlzLm9udG91Y2g7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID0gdGhpcy5vbm1vdmV0aXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID0gdGhpcy50b29sdGlwU2hvdztcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbSA9IHRoaXMudG9vbHRpcEN1c3RvbTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaW5TY3JvbGxWaWV3ID0gdGhpcy5pblNjcm9sbFZpZXc7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmQgPSB0aGlzLnRhcExlZ2VuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5INSB8fCB0aGlzLmluQXBwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlMmQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdCgnIycgKyBjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAuZXhlYyhyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1swXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLl93aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJrlvIDlkK8yZOaooeW8j+WQju+8jOacquiOt+WPluWIsGRvbeiKgueCue+8jGNhbnZhcy1pZDonICsgY2lkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgaWYodGhpcy5pbkFsaSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gdW5pLmNyZWF0ZUNhbnZhc0NvbnRleHQoY2lkLCB0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgaWYoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS51cGRhdGUgPT09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0YVVDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25ld0NoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgICB9LDEwMClcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXNob3cgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+W4g+WxgOmUmeivr++8muacquiOt+WPluWIsOeItuWFg+e0oOWuvemrmOWwuuWvuO+8gWNhbnZhcy1pZDonICsgY2lkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZXhlYygpO1xyXG4gICAgfSxcclxuICAgIHNhdmVJbWFnZSgpe1xyXG4gICAgXHR1bmkuY2FudmFzVG9UZW1wRmlsZVBhdGgoe1xyXG4gICAgXHQgIGNhbnZhc0lkOiB0aGlzLmNpZCxcclxuICAgIFx0ICBzdWNjZXNzOiByZXM9PntcclxuICAgIFx0ICAgIC8vI2lmZGVmIEg1XHJcbiAgICBcdFx0XHR2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgXHRcdFx0YS5ocmVmID0gcmVzLnRlbXBGaWxlUGF0aDtcclxuICAgIFx0XHRcdGEuZG93bmxvYWQgPSB0aGlzLmNpZDtcclxuICAgIFx0XHRcdGEudGFyZ2V0ID0gJ19ibGFuaydcclxuICAgIFx0XHRcdGEuY2xpY2soKTtcclxuICAgIFx0ICAgIC8vI2VuZGlmXHJcbiAgICBcdCAgICAvLyNpZm5kZWYgSDVcclxuICAgIFx0ICAgICAgdW5pLnNhdmVJbWFnZVRvUGhvdG9zQWxidW0oe1xyXG4gICAgXHQgICAgICAgICAgZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcbiAgICBcdCAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICBcdCAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICBcdCAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJyxcclxuICAgIFx0ICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgIFx0ICAgICAgICAgICAgICB9KTtcclxuICAgIFx0ICAgICAgICAgIH1cclxuICAgIFx0ICAgICAgfSk7XHJcbiAgICBcdCAgICAvLyNlbmRpZlxyXG4gICAgXHQgIH0gXHJcbiAgICBcdH0sdGhpcyk7XHJcbiAgICB9LFxyXG4gICAgLy8gI2lmbmRlZiBBUFAtVlVFIHx8IEg1XHJcbiAgICBfbmV3Q2hhcnQoY2lkKSB7XHJcbiAgICAgIGlmICh0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHMoY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnY29tcGxldGUnLCBwYXJhbXM6IHt0eXBlOlwiY29tcGxldGVcIiwgY29tcGxldGU6IHRydWUsIGlkOiBjaWR9fSk7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZGVsRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnKVxyXG4gICAgICB9KTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsTGVmdCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdzY3JvbGxMZWZ0JywgcGFyYW1zOiB7dHlwZTpcInNjcm9sbExlZnRcIiwgc2Nyb2xsTGVmdDogdHJ1ZSwgaWQ6IGNpZH19KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbFJpZ2h0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ3Njcm9sbFJpZ2h0JywgcGFyYW1zOiB7dHlwZTpcInNjcm9sbFJpZ2h0XCIsIHNjcm9sbFJpZ2h0OiB0cnVlLCBpZDogY2lkfX0pO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBfdXBkYXRhVUNoYXJ0KGNpZCkge1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS51cGRhdGVEYXRhKGNmdS5vcHRpb25bY2lkXSlcclxuICAgIH0sXHJcbiAgICBfdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcbiAgICAgIGlmIChjYXRlZ29yeSkge1xyXG4gICAgICAgIGxldCBkYXRhID0gaXRlbS5kYXRhXHJcbiAgICAgICAgaWYodHlwZW9mIGl0ZW0uZGF0YSA9PT0gXCJvYmplY3RcIil7XHJcbiAgICAgICAgICBkYXRhID0gaXRlbS5kYXRhLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYXRlZ29yeSArICcgJyArIGl0ZW0ubmFtZSArICc6JyArIGRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ucHJvcGVydGllcy5uYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF9zaG93VG9vbHRpcChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG4gICAgICBpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuICAgICAgICAgIG9mZnNldCA9IHsgeDogdGMueCwgeTogdGMueSArIDEwIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGluZGV4OiB0Yy5pbmRleCxcclxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxyXG4gICAgICAgICAgdGV4dExpc3Q6IHRjLnRleHRMaXN0LFxyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RhcChlLG1vdmUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjdXJyZW50SW5kZXggPSBudWxsO1xyXG4gICAgICBsZXQgbGVnZW5kSW5kZXggPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pblNjcm9sbFZpZXcgPT09IHRydWUgfHwgdGhpcy5pbkFsaSkge1xyXG4gICAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgICAgLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxyXG4gICAgICAgICAgLy8gI2lmbmRlZiBNUC1BTElQQVlcclxuICAgICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgICAgLnNlbGVjdCgnI0NoYXJ0Qm94SWQnK2NpZClcclxuICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgICAgLy8gI2lmZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgICAgLnNlbGVjdCgnIycrdGhpcy5jaWQpXHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXM9W107XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluQWxpKSB7XHJcbiAgICAgICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHsgeDogZS5kZXRhaWwuY2xpZW50WCAtIGRhdGEubGVmdCwgeTogZS5kZXRhaWwuY2xpZW50WSAtIGRhdGEudG9wfSk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLnggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLnkgLSBkYXRhLnRvcCAtIHRoaXMucGFnZVNjcm9sbFRvcH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKG1vdmUpe1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICAgICAgbGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy50YXBMZWdlbmQgPT09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZ2V0SW5kZXgnLCBwYXJhbXM6IHsgdHlwZTpcImdldEluZGV4XCIsIGV2ZW50OnsgeDogZS5kZXRhaWwueCAtIGRhdGEubGVmdCwgeTogZS5kZXRhaWwueSAtIGRhdGEudG9wIH0sIGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LCBsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZXhlYygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmKG1vdmUpe1xyXG4gICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzPVtdO1xyXG4gICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHsgeDogZS5kZXRhaWwueCAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRMZWZ0LCB5OiBlLmRldGFpbC55IC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcCB9KTtcclxuICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICBsZWdlbmRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgICAgICAgIGlmKHRoaXMudGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEluZGV4JywgcGFyYW1zOiB7dHlwZTpcImdldEluZGV4XCIsIGV2ZW50OnsgeDogZS5kZXRhaWwueCwgeTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgfSwgY3VycmVudEluZGV4OiBjdXJyZW50SW5kZXgsIGxlZ2VuZEluZGV4OiBsZWdlbmRJbmRleCwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfdG91Y2hTdGFydChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsYXN0TW92ZVRpbWU9RGF0ZS5ub3coKTtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaFN0YXJ0JywgcGFyYW1zOnt0eXBlOlwidG91Y2hTdGFydFwiLCBldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLCBpZDpjaWR9fSk7XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY3Vyck1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGR1cmF0aW9uID0gY3Vyck1vdmVUaW1lIC0gbGFzdE1vdmVUaW1lO1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyA2MCkpIHJldHVybjsvL+avj+enkjYw5binXHJcbiAgICAgIGxhc3RNb3ZlVGltZSA9IGN1cnJNb3ZlVGltZTtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldFRvdWNoTW92ZScsIHBhcmFtczoge3R5cGU6XCJ0b3VjaE1vdmVcIiwgZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSwgaWQ6IGNpZH19KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90b3VjaEVuZChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaEVuZCcsIHBhcmFtczp7dHlwZTpcInRvdWNoRW5kXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZH19KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNlbmRpZlxyXG4gICAgX2Vycm9yKGUpIHtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcbiAgICB9LFxyXG4gICAgZW1pdE1zZyhtc2cpIHtcclxuICAgICAgdGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UmVuZGVyVHlwZSgpIHtcclxuICAgICAgLy/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG4gICAgICBpZih0aGlzLmVjaGFydHM9PT10cnVlICYmIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZz09PWZhbHNlKXtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG9KU09OKCl7XHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjwhLS0gI2lmZGVmIEFQUC1WVUUgfHwgSDUgLS0+XHJcbjxzY3JpcHQgbW9kdWxlPVwicmRjaGFydHNcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuaW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuXHJcbnZhciB0aGF0ID0ge307XHJcbnZhciByb290ZG9tID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIHJkZGVlcENsb25lQXNzaWduKG9yaWdpbiA9IHt9LCAuLi5hcmdzKSB7XHJcbiAgZm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gYXJnc1tpXSkge1xyXG4gICAgICBpZiAoYXJnc1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzW2tleV0gIT09IG51bGwgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ29iamVjdCcpe1xyXG4gICAgICByZGZvcm1hdHRlckFzc2lnbihhcmdzW2tleV0sZm9ybWF0dGVyKVxyXG4gICAgfWVsc2UgaWYoa2V5ID09PSAnZm9ybWF0JyAmJiB0eXBlb2YgYXJnc1trZXldID09PSAnc3RyaW5nJyl7XHJcbiAgICAgIGFyZ3NbJ2Zvcm1hdHRlciddID0gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gPyBmb3JtYXR0ZXJbYXJnc1trZXldXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGFyZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmlkOm51bGxcclxuICAgIH1cclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICByb290ZG9tID0ge3RvcDowLGxlZnQ6MH1cclxuICAgIC8vICNpZmRlZiBINVxyXG4gICAgbGV0IGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLW1haW4nKVswXVxyXG4gICAgaWYoZG0gPT09IHVuZGVmaW5lZCl7XHJcbiAgICAgIGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLXBhZ2Utd3JhcHBlcicpWzBdXHJcbiAgICB9XHJcbiAgICByb290ZG9tID0ge3RvcDpkbS5vZmZzZXRUb3AsbGVmdDpkbS5vZmZzZXRMZWZ0fVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgIGlmKHRoaXMucmlkID09PSBudWxsKXtcclxuICAgICAgICB0aGlzLiRvd25lckluc3RhbmNlICYmIHRoaXMuJG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnZ2V0UmVuZGVyVHlwZScpXHJcbiAgICAgIH1cclxuICAgIH0sMjAwKVxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLnJpZF1cclxuICAgIGRlbGV0ZSBjZnUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLnJpZF1cclxuICAgIGRlbGV0ZSBjZmUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvLz09PT09PT09PT09PT095Lul5LiL5pivRUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcbiAgICBlY2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSl7XHJcbiAgICAgIGxldCBjaWQgPSBKU09OLnN0cmluZ2lmeShuZXdWYWwuaWQpXHJcbiAgICAgIHRoaXMucmlkID0gY2lkXHJcbiAgICAgIHRoYXRbY2lkXSA9IHRoaXMuJG93bmVySW5zdGFuY2UgfHwgaW5zdGFuY2VcclxuICAgICAgbGV0IGVvcHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxyXG4gICAgICBsZXQgdHlwZSA9IGVvcHRzLnR5cGU7XHJcbiAgICAgIC8v6L295YWl5bm26KaG55uW6buY6K6k6YWN572uXHJcbiAgICAgIGlmICh0eXBlICYmIGNmZS50eXBlLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sIGNmZVt0eXBlXSwgZW9wdHMpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0gPSByZGRlZXBDbG9uZUFzc2lnbih7fSwgZW9wdHMpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdEYXRhID0gZW9wdHMuY2hhcnREYXRhO1xyXG4gICAgICAvL+aMgui9vWNhdGVnb3JpZXPlkoxzZXJpZXNcclxuICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLnhBeGlzICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlID09PSAnY2F0ZWdvcnknKXtcclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0ueEF4aXMuZGF0YSA9IG5ld0RhdGEuY2F0ZWdvcmllc1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS55QXhpcyAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSA9PT0gJ2NhdGVnb3J5Jyl7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnlBeGlzLmRhdGEgPSBuZXdEYXRhLmNhdGVnb3JpZXNcclxuICAgICAgfVxyXG4gICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzID0gW11cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdEYXRhLnNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA9IGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA/IGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA6IHt9XHJcbiAgICAgICAgbGV0IFRlbXBsYXRlID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLG5ld0RhdGEuc2VyaWVzW2ldKVxyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS5zZXJpZXMucHVzaChUZW1wbGF0ZSlcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5lY2hhcnRzID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgdGhpcy5uZXdFQ2hhcnQoKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxyXG4gICAgICAgIC8vICNpZmRlZiBBUFAtVlVFXHJcbiAgICAgICAgc2NyaXB0LnNyYyA9ICcuL3VuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvc3RhdGljL2FwcC1wbHVzL2VjaGFydHMubWluLmpzJ1xyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC8vICNpZmRlZiBINVxyXG4gICAgICAgIGNvbnN0IHJvb3R1cmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luIFxyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IGluc3RhbmNlLmdldERhdGFzZXQoKS5kaXJlY3RvcnlcclxuICAgICAgICBzY3JpcHQuc3JjID0gcm9vdHVybCArIGRpcmVjdG9yeSArICd1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9oNS9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICBzY3JpcHQub25sb2FkID0gdGhpcy5uZXdFQ2hhcnRcclxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdClcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVjcmVzaXplKG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBpZihjZmUuaW5zdGFuY2VbdGhpcy5yaWRdKXtcclxuICAgICAgICBjZmUuaW5zdGFuY2VbdGhpcy5yaWRdLnJlc2l6ZSgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBuZXdFQ2hhcnQoKXtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdID09PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdID0gZWNoYXJ0cy5pbml0KHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLy9vbnRhcOW8gOWQr+WQjuaJjeinpuWPkWNsaWNr5LqL5Lu2XHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdjbGljaycsIHJlc2RhdGEgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZXZlbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICB4OnJlc2RhdGEuZXZlbnQub2Zmc2V0WCx5OnJlc2RhdGEuZXZlbnQub2Zmc2V0WVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0SW5kZXhcIiwgcGFyYW1zOnt0eXBlOlwiZ2V0SW5kZXhcIiwgZXZlbnQ6ZXZlbnQsIGN1cnJlbnRJbmRleDpyZXNkYXRhLmRhdGFJbmRleCwgdmFsdWU6cmVzZGF0YS5kYXRhLCBzZXJpZXNOYW1lOiByZXNkYXRhLnNlcmllc05hbWUsaWQ6Y2lkfX0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8g5aKe5YqgRUNoYXJ0c+eahGhpZ2hsaWdodOa2iOaBr++8jOWunueOsOaMieS4i+enu+WKqOi/lOWbnue0ouW8leWKn+iDveOAgmFkZCBieSBvbmVmaXNoIOWIm+W7uuS6jiAyMDIxLTEyLTExIDA5OjUwXHJcbiAgICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignaGlnaGxpZ2h0JywgcmVzZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEhpZ2hsaWdodFwiLCBwYXJhbXM6e3R5cGU6XCJoaWdobGlnaHRcIiwgZGF0YUluZGV4OnJlc2RhdGEuYmF0Y2hbMF0uZGF0YUluZGV4LCBpZDpjaWR9fSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB1cGRhdGFFQ2hhcnQoY2lkLG9wdGlvbil7XHJcbiAgICAgIC8v5pu/5o2ib3B0aW9u5YaFZm9ybWF05bGe5oCn5Li6Zm9ybWF0dGVy55qE6aKE5a6a5LmJ5pa55rOVXHJcbiAgICAgIG9wdGlvbiA9IHJkZm9ybWF0dGVyQXNzaWduKG9wdGlvbixjZmUuZm9ybWF0dGVyKVxyXG4gICAgICBpZihvcHRpb24udG9vbHRpcCl7XHJcbiAgICAgICAgb3B0aW9uLnRvb2x0aXAuc2hvdyA9IG9wdGlvbi50b29sdGlwU2hvdz90cnVlOmZhbHNlO1xyXG4gICAgICAgIG9wdGlvbi50b29sdGlwLnBvc2l0aW9uID0gdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG4gICAgICAgIC8vdG9vbHRpcEZvcm1hdOaWueazle+8jOabv+aNoue7hOS7tueahHRvb2x0aXBGb3JtYXTkuLpjb25maWctZWNoYXJ0cy5qc+WGheWvueW6lOeahOaWueazlVxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmZS5mb3JtYXR0ZXJbb3B0aW9uLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPSBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPyBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgOiBjZmUuZm9ybWF0dGVyW29wdGlvbi50b29sdGlwRm9ybWF0XVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyDpopzoibLmuJDlj5jmt7vliqDnmoTmlrnms5VcclxuICAgICAgaWYgKG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRmb3IgKGxldCBpIGluIG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRcdGxldCBsaW5lYXJHcmFkaWVudCA9IG9wdGlvbi5zZXJpZXNbaV0ubGluZWFyR3JhZGllbnRcclxuICAgICAgXHRcdGlmIChsaW5lYXJHcmFkaWVudCkge1xyXG4gICAgICBcdFx0XHRvcHRpb24uc2VyaWVzW2ldLmNvbG9yID0gbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudChsaW5lYXJHcmFkaWVudFswXSxsaW5lYXJHcmFkaWVudFsxXSxsaW5lYXJHcmFkaWVudFsyXSxsaW5lYXJHcmFkaWVudFszXSxsaW5lYXJHcmFkaWVudFs0XSlcclxuICAgICAgXHRcdH1cclxuICAgICAgXHR9XHJcbiAgICAgIH1cclxuICAgICAgY2ZlLmluc3RhbmNlW2NpZF0uc2V0T3B0aW9uKG9wdGlvbiwgb3B0aW9uLm5vdE1lcmdlKVxyXG4gICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignZmluaXNoZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZH19KVxyXG4gICAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9mZignZmluaXNoZWQnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICB0b29sdGlwUG9zaXRpb24oKXtcclxuICAgICAgcmV0dXJuIChwb2ludCwgcGFyYW1zLCBkb20sIHJlY3QsIHNpemUpID0+IHtcclxuICAgICAgXHRsZXQgeCA9IHBvaW50WzBdXHJcbiAgICAgIFx0bGV0IHkgPSBwb2ludFsxXVxyXG4gICAgICBcdGxldCB2aWV3V2lkdGggPSBzaXplLnZpZXdTaXplWzBdXHJcbiAgICAgIFx0bGV0IHZpZXdIZWlnaHQgPSBzaXplLnZpZXdTaXplWzFdXHJcbiAgICAgIFx0bGV0IGJveFdpZHRoID0gc2l6ZS5jb250ZW50U2l6ZVswXVxyXG4gICAgICBcdGxldCBib3hIZWlnaHQgPSBzaXplLmNvbnRlbnRTaXplWzFdXHJcbiAgICAgIFx0bGV0IHBvc1ggPSB4ICsgMzAgXHJcbiAgICAgIFx0bGV0IHBvc1kgPSB5ICsgMzAgXHJcbiAgICAgIFx0aWYgKHBvc1ggKyBib3hXaWR0aCA+IHZpZXdXaWR0aCkgeyBcclxuICAgICAgXHRcdHBvc1ggPSB4IC0gYm94V2lkdGggLSAzMFxyXG4gICAgICBcdH1cclxuICAgICAgXHRpZiAocG9zWSArIGJveEhlaWdodCA+IHZpZXdIZWlnaHQpIHtcclxuICAgICAgXHRcdHBvc1kgPSB5IC0gYm94SGVpZ2h0IC0gMzBcclxuICAgICAgXHR9XHJcbiAgICAgIFx0cmV0dXJuIFtwb3NYLCBwb3NZXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy89PT09PT09PT09PT09PeS7peS4i+aYr3VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG4gICAgdWNpbml0KG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBpZihKU09OLnN0cmluZ2lmeShuZXdWYWwpID09IEpTT04uc3RyaW5naWZ5KG9sZFZhbCkpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZighbmV3VmFsLmNhbnZhc0lkKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGNpZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsLmNhbnZhc0lkKSlcclxuICAgICAgdGhpcy5yaWQgPSBjaWRcclxuICAgICAgdGhhdFtjaWRdID0gdGhpcy4kb3duZXJJbnN0YW5jZSB8fCBpbnN0YW5jZVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkpXHJcbiAgICAgIGNmdS5vcHRpb25bY2lkXSA9IHJkZm9ybWF0dGVyQXNzaWduKGNmdS5vcHRpb25bY2lkXSxjZnUuZm9ybWF0dGVyKVxyXG4gICAgICBsZXQgY2FudmFzZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2lkKVxyXG4gICAgICBpZihjYW52YXNkb20gJiYgY2FudmFzZG9tLmNoaWxkcmVuWzBdKXtcclxuICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dCA9IGNhbnZhc2RvbS5jaGlsZHJlblswXS5nZXRDb250ZXh0KFwiMmRcIilcclxuICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0YVVDaGFydCgpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm5ld1VDaGFydCgpXHJcbiAgICAgICAgICB9LDEwMClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBuZXdVQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzUkQoY2Z1Lm9wdGlvbltjaWRdKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScsICgpID0+IHtcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJjb21wbGV0ZVwiLHBhcmFtczp7dHlwZTpcImNvbXBsZXRlXCIsY29tcGxldGU6dHJ1ZSxpZDpjaWR9fSlcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5kZWxFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScpXHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxMZWZ0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcInNjcm9sbExlZnRcIixwYXJhbXM6e3R5cGU6XCJzY3JvbGxMZWZ0XCIsc2Nyb2xsTGVmdDp0cnVlLGlkOmNpZH19KVxyXG4gICAgICB9KTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsUmlnaHQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwic2Nyb2xsUmlnaHRcIixwYXJhbXM6e3R5cGU6XCJzY3JvbGxSaWdodFwiLHNjcm9sbFJpZ2h0OnRydWUsaWQ6Y2lkfX0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIHVwZGF0YVVDaGFydCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnVwZGF0ZURhdGEoY2Z1Lm9wdGlvbltjaWRdKVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykge1xyXG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG4gICAgICAgIGlmKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2F0ZWdvcnkgKyAnICcgKyBpdGVtLm5hbWUgKyAnOicgKyBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BlcnRpZXMgJiYgaXRlbS5wcm9wZXJ0aWVzLm5hbWUpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnByb3BlcnRpZXMubmFtZSA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLm5hbWUgKyAnOicgKyBpdGVtLmRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2hvd1Rvb2x0aXAoZSxjaWQpIHtcclxuICAgICAgbGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuICAgICAgaWYgKHRjICYmIHRjICE9PSB1bmRlZmluZWQgJiYgdGMgIT09IG51bGwpIHtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcbiAgICAgICAgICBvZmZzZXQgPSB7IHg6IHRjLngsIHk6IHRjLnkgKyAxMCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBpbmRleDogdGMuaW5kZXgsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCxcclxuICAgICAgICAgIHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB0YXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udGFwID0gY2Z1Lm9wdGlvbltjaWRdLm9udGFwXHJcbiAgICAgIGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG4gICAgICBsZXQgdGFwTGVnZW5kID0gY2Z1Lm9wdGlvbltjaWRdLnRhcExlZ2VuZFxyXG4gICAgICBpZihvbnRhcCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgY3VycmVudEluZGV4PW51bGxcclxuICAgICAgbGV0IGxlZ2VuZEluZGV4PW51bGxcclxuICAgICAgbGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycrY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICBsZXQgdG1wZSA9IHt9XHJcbiAgICAgIGlmKGUuZGV0YWlsLngpey8vdGFw5oiW6ICFY2xpY2vnmoTkuovku7ZcclxuICAgICAgICB0bXBlID0geyB4OiBlLmRldGFpbC54IC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5kZXRhaWwueSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgfWVsc2V7Ly9tb3VzZeeahOS6i+S7tlxyXG4gICAgICAgIHRtcGUgPSB7IHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjdXJyZW50SW5kZXg9Y2Z1Lmluc3RhbmNlW2NpZF0uZ2V0Q3VycmVudERhdGFJbmRleChlKVxyXG4gICAgICBsZWdlbmRJbmRleD1jZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSlcclxuICAgICAgaWYodGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS50b3VjaExlZ2VuZChlKTtcclxuICAgICAgfVxyXG4gICAgICBpZih0b29sdGlwU2hvdz09dHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgfVxyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRJbmRleFwiLHBhcmFtczp7dHlwZTpcImdldEluZGV4XCIsZXZlbnQ6dG1wZSxjdXJyZW50SW5kZXg6Y3VycmVudEluZGV4LGxlZ2VuZEluZGV4OmxlZ2VuZEluZGV4LGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIHRvdWNoU3RhcnQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpXHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSxpZDpjaWR9fSlcclxuICAgIH0sXHJcbiAgICB0b3VjaE1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaE1vdmVcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZH19KVxyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0ub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgY2Z1Lm9wdGlvbltjaWRdLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgbGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycrY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICAgIGxldCB0bXBlID0geyB4OiBlLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG4gICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHRvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRvdWNoID0gY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2hcclxuICAgICAgaWYob250b3VjaCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSlcclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hFbmRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaEVuZFwiLGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0saWQ6Y2lkfX0pXHJcbiAgICB9LFxyXG4gICAgbW91c2VEb3duKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPXRydWU7XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJtb3VzZURvd25cIixldmVudDp0bXBlLGlkOmNpZH19KVxyXG4gICAgfSxcclxuICAgIG1vdXNlTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcbiAgICAgIGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5tb3VzZWRvd24pe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoTW92ZVwiLHBhcmFtczp7dHlwZTpcIm1vdXNlTW92ZVwiLGV2ZW50OnRtcGUsaWQ6Y2lkfX0pXHJcbiAgICAgIH1lbHNlIGlmKGNmdS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICBpZih0b29sdGlwU2hvdz09dHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG1vdXNlVXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbEVuZChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPWZhbHNlO1xyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaEVuZFwiLHBhcmFtczp7dHlwZTpcIm1vdXNlVXBcIixldmVudDp0bXBlLGlkOmNpZH19KVxyXG4gICAgfSxcclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjwhLS0gI2VuZGlmIC0tPlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuLmNoYXJ0c3ZpZXcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDE7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///62\n"); /***/ }), /* 63 */ /*!************************************************************************************!*\ !*** ./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) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 67));var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 70);var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 71));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}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);});};}function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}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.");}function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _createForOfIteratorHelper(o, allowArrayLike) {var it;if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {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(_e32) {throw _e32;}, 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 = o[Symbol.iterator]();}, n: function n() {var step = it.next();normalCompletion = step.done;return step;}, e: function e(_e33) {didErr = true;err = _e33;}, 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 _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}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 } });if (superClass) _setPrototypeOf(subClass, superClass);}function _createSuper(Derived) {var hasNativeReflectConstruct = _isNativeReflectConstruct();return function _createSuperInternal() {var Super = _getPrototypeOf(Derived),result;if (hasNativeReflectConstruct) {var NewTarget = _getPrototypeOf(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return _possibleConstructorReturn(this, result);};}function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _wrapNativeSuper(Class) {var _cache = typeof Map === "function" ? new Map() : undefined;_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);};return _wrapNativeSuper(Class);}function _construct(Parent, args, Class) {if (_isNativeReflectConstruct()) {_construct = Reflect.construct;} else {_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;};}return _construct.apply(null, arguments);}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));return true;} catch (e) {return false;}}function _isNativeFunction(fn) {return Function.toString.call(fn).indexOf("[native code]") !== -1;}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}"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 o = 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 = {},o = s.lib = {},r = o.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);} },i = o.WordArray = r.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,o = e.sigBytes;if (this.clamp(), s % 4) for (var r = 0; r < o; r++) {var i = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;t[s + r >>> 2] |= i << 24 - (s + r) % 4 * 8;} else for (r = 0; r < o; r += 4) {t[s + r >>> 2] = n[r >>> 2];}return this.sigBytes += o, 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 = r.clone.call(this);return e.words = this.words.slice(0), e;}, random: function random(t) {for (var n, s = [], o = function o(t) {t = t;var n = 987654321,s = 4294967295;return function () {var o = ((n = 36969 * (65535 & n) + (n >> 16) & s) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & s) & s;return o /= 4294967296, (o += .5) * (e.random() > .5 ? 1 : -1);};}, r = 0; r < t; r += 4) {var a = o(4294967296 * (n || e.random()));n = 987654071 * a(), s.push(4294967296 * a() | 0);}return new i.init(s, t);} }),a = s.enc = {},c = a.Hex = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push((r >>> 4).toString(16)), s.push((15 & r).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 i.init(n, t / 2);} },u = a.Latin1 = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push(String.fromCharCode(r));}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 i.init(n, t);} },l = 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)));} },h = o.BufferedBlockAlgorithm = r.extend({ reset: function reset() {this._data = new i.init(), this._nDataBytes = 0;}, _append: function _append(e) {"string" == typeof e && (e = l.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;}, _process: function _process(t) {var n = this._data,s = n.words,o = n.sigBytes,r = this.blockSize,a = o / (4 * r),c = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * r,u = e.min(4 * c, o);if (c) {for (var l = 0; l < c; l += r) {this._doProcessBlock(s, l);}var h = s.splice(0, c);n.sigBytes -= u;}return new i.init(h, u);}, clone: function clone() {var e = r.clone.call(this);return e._data = this._data.clone(), e;}, _minBufferSize: 0 });o.Hasher = h.extend({ cfg: r.extend(), init: function init(e) {this.cfg = this.cfg.extend(e), this.reset();}, reset: function reset() {h.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);}),r = (s(function (e, t) {var n;e.exports = (n = o, function (e) {var t = n,s = t.lib,o = s.WordArray,r = s.Hasher,i = t.algo,a = [];!function () {for (var t = 0; t < 64; t++) {a[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0;}}();var c = i.MD5 = r.extend({ _doReset: function _doReset() {this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]);}, _doProcessBlock: function _doProcessBlock(e, t) {for (var n = 0; n < 16; n++) {var s = t + n,o = e[s];e[s] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);}var r = this._hash.words,i = e[t + 0],c = e[t + 1],f = e[t + 2],g = e[t + 3],p = e[t + 4],m = e[t + 5],y = e[t + 6],_ = e[t + 7],w = e[t + 8],k = e[t + 9],v = e[t + 10],T = e[t + 11],S = e[t + 12],P = e[t + 13],A = e[t + 14],I = e[t + 15],b = r[0],O = r[1],C = r[2],E = r[3];b = u(b, O, C, E, i, 7, a[0]), E = u(E, b, O, C, c, 12, a[1]), C = u(C, E, b, O, f, 17, a[2]), O = u(O, C, E, b, g, 22, a[3]), b = u(b, O, C, E, p, 7, a[4]), E = u(E, b, O, C, m, 12, a[5]), C = u(C, E, b, O, y, 17, a[6]), O = u(O, C, E, b, _, 22, a[7]), b = u(b, O, C, E, w, 7, a[8]), E = u(E, b, O, C, k, 12, a[9]), C = u(C, E, b, O, v, 17, a[10]), O = u(O, C, E, b, T, 22, a[11]), b = u(b, O, C, E, S, 7, a[12]), E = u(E, b, O, C, P, 12, a[13]), C = u(C, E, b, O, A, 17, a[14]), b = l(b, O = u(O, C, E, b, I, 22, a[15]), C, E, c, 5, a[16]), E = l(E, b, O, C, y, 9, a[17]), C = l(C, E, b, O, T, 14, a[18]), O = l(O, C, E, b, i, 20, a[19]), b = l(b, O, C, E, m, 5, a[20]), E = l(E, b, O, C, v, 9, a[21]), C = l(C, E, b, O, I, 14, a[22]), O = l(O, C, E, b, p, 20, a[23]), b = l(b, O, C, E, k, 5, a[24]), E = l(E, b, O, C, A, 9, a[25]), C = l(C, E, b, O, g, 14, a[26]), O = l(O, C, E, b, w, 20, a[27]), b = l(b, O, C, E, P, 5, a[28]), E = l(E, b, O, C, f, 9, a[29]), C = l(C, E, b, O, _, 14, a[30]), b = h(b, O = l(O, C, E, b, S, 20, a[31]), C, E, m, 4, a[32]), E = h(E, b, O, C, w, 11, a[33]), C = h(C, E, b, O, T, 16, a[34]), O = h(O, C, E, b, A, 23, a[35]), b = h(b, O, C, E, c, 4, a[36]), E = h(E, b, O, C, p, 11, a[37]), C = h(C, E, b, O, _, 16, a[38]), O = h(O, C, E, b, v, 23, a[39]), b = h(b, O, C, E, P, 4, a[40]), E = h(E, b, O, C, i, 11, a[41]), C = h(C, E, b, O, g, 16, a[42]), O = h(O, C, E, b, y, 23, a[43]), b = h(b, O, C, E, k, 4, a[44]), E = h(E, b, O, C, S, 11, a[45]), C = h(C, E, b, O, I, 16, a[46]), b = d(b, O = h(O, C, E, b, f, 23, a[47]), C, E, i, 6, a[48]), E = d(E, b, O, C, _, 10, a[49]), C = d(C, E, b, O, A, 15, a[50]), O = d(O, C, E, b, m, 21, a[51]), b = d(b, O, C, E, S, 6, a[52]), E = d(E, b, O, C, g, 10, a[53]), C = d(C, E, b, O, v, 15, a[54]), O = d(O, C, E, b, c, 21, a[55]), b = d(b, O, C, E, w, 6, a[56]), E = d(E, b, O, C, I, 10, a[57]), C = d(C, E, b, O, y, 15, a[58]), O = d(O, C, E, b, P, 21, a[59]), b = d(b, O, C, E, p, 6, a[60]), E = d(E, b, O, C, T, 10, a[61]), C = d(C, E, b, O, f, 15, a[62]), O = d(O, C, E, b, k, 21, a[63]), r[0] = r[0] + b | 0, r[1] = r[1] + O | 0, r[2] = r[2] + C | 0, r[3] = r[3] + E | 0;}, _doFinalize: function _doFinalize() {var t = this._data,n = t.words,s = 8 * this._nDataBytes,o = 8 * t.sigBytes;n[o >>> 5] |= 128 << 24 - o % 32;var r = e.floor(s / 4294967296),i = s;n[15 + (o + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), n[14 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), t.sigBytes = 4 * (n.length + 1), this._process();for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {var l = c[u];c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);}return a;}, clone: function clone() {var e = r.clone.call(this);return e._hash = this._hash.clone(), e;} });function u(e, t, n, s, o, r, i) {var a = e + (t & n | ~t & s) + o + i;return (a << r | a >>> 32 - r) + t;}function l(e, t, n, s, o, r, i) {var a = e + (t & s | n & ~s) + o + i;return (a << r | a >>> 32 - r) + t;}function h(e, t, n, s, o, r, i) {var a = e + (t ^ n ^ s) + o + i;return (a << r | a >>> 32 - r) + t;}function d(e, t, n, s, o, r, i) {var a = e + (n ^ (t | ~s)) + o + i;return (a << r | a >>> 32 - r) + t;}t.MD5 = r._createHelper(c), t.HmacMD5 = r._createHmacHelper(c);}(Math), n.MD5);}), s(function (e, t) {var n, s, r;e.exports = (s = (n = o).lib.Base, r = n.enc.Utf8, void (n.algo.HMAC = s.extend({ init: function init(e, t) {e = this._hasher = new e.init(), "string" == typeof t && (t = r.parse(t));var n = e.blockSize,s = 4 * n;t.sigBytes > s && (t = e.finalize(t)), t.clamp();for (var o = this._oKey = t.clone(), i = this._iKey = t.clone(), a = o.words, c = i.words, u = 0; u < n; u++) {a[u] ^= 1549556828, c[u] ^= 909522486;}o.sigBytes = i.sigBytes = s, 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 = o.HmacMD5;}));var i = "FUNCTION",a = "OBJECT",c = "CLIENT_DB";function u(e) {return Object.prototype.toString.call(e).slice(8, -1).toLowerCase();}function l(e) {return "object" === u(e);}function h(e) {return e && "string" == typeof e ? JSON.parse(e) : e;}var d = "development" === "development",f = "app-plus";var g;switch (f) {case "h5":g = "web";break;case "app-plus":g = "app";break;default:g = f;}var p = h(undefined),m = h([]) || [],y = true;var _ = "";try {{var _e2 = __webpack_require__(/*! uni-stat-config */ 72).default || __webpack_require__(/*! uni-stat-config */ 72);_ = _e2.appid;}} catch (e) {}var w = {};function k(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var n, s;return n = w, s = e, Object.prototype.hasOwnProperty.call(n, s) || (w[e] = t), w[e];}"app" === g && (w = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {});var v = ["invoke", "success", "fail", "complete"],T = k("_globalUniCloudInterceptor");function S(e, t) {T[e] || (T[e] = {}), l(t) && Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];s || (s = T[e][t] = []), -1 === s.indexOf(n) && "function" == typeof n && s.push(n);}(e, n, t[n]);});}function P(e, t) {T[e] || (T[e] = {}), l(t) ? Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];if (!s) return;var o = s.indexOf(n);o > -1 && s.splice(o, 1);}(e, n, t[n]);}) : delete T[e];}function A(e, t) {return e && 0 !== e.length ? e.reduce(function (e, n) {return e.then(function () {return n(t);});}, Promise.resolve()) : Promise.resolve();}function I(e, t) {return T[e] && T[e][t] || [];}function b(e) {S("callObject", e);}var O = k("_globalUniCloudListener"),C = "response",E = "needLogin",R = "refreshToken",U = "clientdb",x = "cloudfunction",L = "cloudobject";function D(e) {return O[e] || (O[e] = []), O[e];}function N(e, t) {var n = D(e);n.includes(t) || n.push(t);}function q(e, t) {var n = D(e),s = n.indexOf(t);-1 !== s && n.splice(s, 1);}function F(e, t) {var n = D(e);for (var _e3 = 0; _e3 < n.length; _e3++) {(0, n[_e3])(t);}}var M = !1;var j = new Promise(function (e) {M && e(), function t() {if ("function" == typeof getCurrentPages) {var _t2 = getCurrentPages();_t2 && _t2[0] && (M = !0, e());}M || setTimeout(function () {t();}, 30);}();});function $() {return j;}function K(e, t) {return t ? function (n) {var _this = this;var s = !1;if ("callFunction" === t) {var _e4 = n && n.type || i;s = _e4 !== i;}var o = "callFunction" === t && !s;var r;r = this.isReady ? Promise.resolve() : this.initUniCloud, n = n || {};var a = r.then(function () {return s ? Promise.resolve() : A(I(t, "invoke"), n);}).then(function () {return e.call(_this, n);}).then(function (e) {return s ? Promise.resolve(e) : A(I(t, "success"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return o && F(C, { type: x, content: e }), Promise.resolve(e);});}, function (e) {return s ? Promise.reject(e) : A(I(t, "fail"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return F(C, { type: x, content: e }), Promise.reject(e);});});if (!(n.success || n.fail || n.complete)) return a;a.then(function (e) {n.success && n.success(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });}, function (e) {n.fail && n.fail(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });});} : function (t) {if (!((t = t || {}).success || t.fail || t.complete)) return e.call(this, t);e.call(this, t).then(function (e) {t.success && t.success(e), t.complete && t.complete(e);}, function (e) {t.fail && t.fail(e), t.complete && t.complete(e);});};}var B = /*#__PURE__*/function (_Error) {_inherits(B, _Error);var _super = _createSuper(B);function B(e) {var _this2;_classCallCheck(this, B);_this2 = _super.call(this, e.message), _this2.errMsg = e.message || "", _this2.errCode = _this2.code = e.code || "SYSTEM_ERROR", _this2.requestId = e.requestId;return _this2;}return B;}( /*#__PURE__*/_wrapNativeSuper(Error));function H() {var e, t;try {if (uni.getLaunchOptionsSync) {if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return;var _uni$getLaunchOptions = uni.getLaunchOptionsSync(),_n = _uni$getLaunchOptions.scene,_s = _uni$getLaunchOptions.channel;e = _s, t = _n;}} catch (e) {}return { channel: e, scene: t };}var W;function z() {var e = uni.getLocale && uni.getLocale() || "en";if (W) return _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });var t = uni.getSystemInfoSync(),n = t.deviceId,s = t.osName,o = t.uniPlatform,r = t.appId,i = ["pixelRatio", "brand", "model", "system", "language", "version", "platform", "host", "SDKVersion", "swanNativeVersion", "app", "AppPlatform", "fontSizeSetting"];for (var _e5 = 0; _e5 < i.length; _e5++) {delete t[i[_e5]];}return W = _objectSpread(_objectSpread({ PLATFORM: o, OS: s, APPID: r, DEVICEID: n }, H()), t), _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });}var J = { 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), r(n, t).toString();}, wrappedRequest: function wrappedRequest(e, t) {return new Promise(function (n, s) {t(Object.assign(e, { complete: function complete(e) {e || (e = {}), d && "web" === g && 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 B({ code: "SYS_ERR", message: e.errMsg || "request:fail", requestId: t }));var o = e.data;if (o.error) return s(new B({ code: o.error.code, message: o.error.message, requestId: t }));o.result = o.data, o.requestId = t, delete o.data, n(o);} }));});} };var V = { 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();} },Y = { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" };var _e6 = (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: Y, 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: Y }, "zh-Hans"),X = _e6.t;var G = /*#__PURE__*/function () {function G(e) {_classCallCheck(this, G);["spaceId", "clientSecret"].forEach(function (t) {if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error(X("uniCloud.init.paramRequired", { param: t }));}), this.config = Object.assign({}, { endpoint: "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 = V, this._getAccessTokenPromise = null, this._getAccessTokenPromiseStatus = null;}_createClass(G, [{ key: "setAccessToken", value: function setAccessToken(e) {this.accessToken = e;} }, { key: "requestWrapped", value: function requestWrapped(e) {return J.wrappedRequest(e, this.adapter.request);} }, { key: "requestAuth", value: function requestAuth(e) {return this.requestWrapped(e);} }, { key: "request", value: function request(e, t) {var _this3 = this;return Promise.resolve().then(function () {return _this3.hasAccessToken ? t ? _this3.requestWrapped(e) : _this3.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 _this3.getAccessToken();}).then(function () {var t = _this3.rebuildRequest(e);return _this3.request(t, !0);});}) : _this3.getAccessToken().then(function () {var t = _this3.rebuildRequest(e);return _this3.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"] = J.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"] = J.sign(n, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: s };} }, { key: "getAccessToken", value: function getAccessToken() {var _this4 = this;if ("pending" === this._getAccessTokenPromiseStatus) return this._getAccessTokenPromise;this._getAccessTokenPromiseStatus = "pending";return this._getAccessTokenPromise = this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then(function (e) {return new Promise(function (t, n) {e.result && e.result.accessToken ? (_this4.setAccessToken(e.result.accessToken), _this4._getAccessTokenPromiseStatus = "fulfilled", t(_this4.accessToken)) : (_this4._getAccessTokenPromiseStatus = "rejected", n(new B({ code: "AUTH_FAILED", message: "获取accessToken失败" })));});}, function (e) {return _this4._getAccessTokenPromiseStatus = "rejected", Promise.reject(e);}), this._getAccessTokenPromise;} }, { key: "authorize", value: function authorize() {this.getAccessToken();} }, { 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(_ref) {var _this5 = this;var e = _ref.url,t = _ref.formData,n = _ref.name,s = _ref.filePath,o = _ref.fileType,r = _ref.onUploadProgress;return new Promise(function (i, a) {var c = _this5.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, header: { "X-OSS-server-side-encrpytion": "AES256" }, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ 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 uploadFile(_ref2) {var _this6 = this;var e = _ref2.filePath,t = _ref2.cloudPath,_ref2$fileType = _ref2.fileType,n = _ref2$fileType === void 0 ? "image" : _ref2$fileType,s = _ref2.onUploadProgress,o = _ref2.config;if ("string" !== u(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" });if (!(t = t.trim())) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" });if (/:\/\//.test(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath不合法" });var r = o && o.envType || this.config.envType;var i, a;return this.getOSSUploadOptionsFromPath({ env: r, filename: t }).then(function (t) {var o = t.result;i = o.id, a = "https://" + o.cdnDomain + "/" + o.ossPath;var r = { url: "https://" + o.host, formData: { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: o.accessKeyId, Signature: o.signature, host: o.host, id: i, key: o.ossPath, policy: o.policy, success_action_status: 200 }, fileName: "file", name: "file", filePath: e, fileType: n };return _this6.uploadFileToOSS(Object.assign({}, r, { onUploadProgress: s }));}).then(function () {return _this6.reportOSSUpload({ id: i });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: a }) : s(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref3) {var e = _ref3.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ id: e[0] }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref4.fileList;return new Promise(function (t, n) {Array.isArray(e) && 0 !== e.length || n(new B({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t({ fileList: e.map(function (e) {return { fileID: e, tempFileURL: e };}) });});} }, { key: "hasAccessToken", get: function get() {return !!this.accessToken;} }]);return G;}();var Q = { init: function init(e) {var t = new G(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 Z = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:";var ee;!function (e) {e.local = "local", e.none = "none", e.session = "session";}(ee || (ee = {}));var te = function te() {};var ne = function ne() {var e;if (!Promise) {e = function e() {}, e.promise = {};var _t3 = function _t3() {throw new B({ 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(_e7, s) {return _e7 ? n(_e7) : t(s);};});return e.promise = t, e;};function se(e) {return void 0 === e;}function oe(e) {return "[object Null]" === Object.prototype.toString.call(e);}var re;function ie(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 _e8 = _step.value;var _t4 = _e8.isMatch,_n2 = _e8.genAdapter,_s2 = _e8.runtime;if (_t4()) return { adapter: _n2(), runtime: _s2 };}} catch (err) {_iterator.e(err);} finally {_iterator.f();}}!function (e) {e.WEB = "web", e.WX_MP = "wx_mp";}(re || (re = {}));var ae = { adapter: null, runtime: void 0 },ce = ["anonymousUuidKey"];var ue = /*#__PURE__*/function (_te) {_inherits(ue, _te);var _super2 = _createSuper(ue);function ue() {var _this7;_classCallCheck(this, ue);_this7 = _super2.call(this), ae.adapter.root.tcbObject || (ae.adapter.root.tcbObject = {});return _this7;}_createClass(ue, [{ key: "setItem", value: function setItem(e, t) {ae.adapter.root.tcbObject[e] = t;} }, { key: "getItem", value: function getItem(e) {return ae.adapter.root.tcbObject[e];} }, { key: "removeItem", value: function removeItem(e) {delete ae.adapter.root.tcbObject[e];} }, { key: "clear", value: function clear() {delete ae.adapter.root.tcbObject;} }]);return ue;}(te);function le(e, t) {switch (e) {case "local":return t.localStorage || new ue();case "none":return new ue();default:return t.sessionStorage || new ue();}}var he = /*#__PURE__*/function () {function he(e) {_classCallCheck(this, he);if (!this._storage) {this._persistence = ae.adapter.primaryStorage || e.persistence, this._storage = le(this._persistence, ae.adapter);var _t5 = "access_token_".concat(e.env),_n3 = "access_token_expire_".concat(e.env),_s3 = "refresh_token_".concat(e.env),_o = "anonymous_uuid_".concat(e.env),_r = "login_type_".concat(e.env),_i = "user_info_".concat(e.env);this.keys = { accessTokenKey: _t5, accessTokenExpireKey: _n3, refreshTokenKey: _s3, anonymousUuidKey: _o, loginTypeKey: _r, userInfoKey: _i };}}_createClass(he, [{ key: "updatePersistence", value: function updatePersistence(e) {if (e === this._persistence) return;var t = "local" === this._persistence;this._persistence = e;var n = le(e, ae.adapter);for (var _e9 in this.keys) {var _s4 = this.keys[_e9];if (t && ce.includes(_e9)) continue;var _o2 = this._storage.getItem(_s4);se(_o2) || oe(_o2) || (n.setItem(_s4, _o2), this._storage.removeItem(_s4));}this._storage = n;} }, { key: "setStore", value: function setStore(e, t, n) {if (!this._storage) return;var s = { version: n || "localCachev1", content: t },o = JSON.stringify(s);try {this._storage.setItem(e, o);} 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 he;}();var de = {},fe = {};function ge(e) {return de[e];}var pe = function pe(e, t) {_classCallCheck(this, pe);this.data = t || null, this.name = e;};var me = /*#__PURE__*/function (_pe) {_inherits(me, _pe);var _super3 = _createSuper(me);function me(e, t) {var _this8;_classCallCheck(this, me);_this8 = _super3.call(this, "error", { error: e, data: t }), _this8.error = e;return _this8;}return me;}(pe);var ye = new ( /*#__PURE__*/function () {function _class() {_classCallCheck(this, _class);this._listeners = {};}_createClass(_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 _s5 = n[e].indexOf(t);-1 !== _s5 && n[e].splice(_s5, 1);}}(e, t, this._listeners), this;} }, { key: "fire", value: function fire(e, t) {if (e instanceof me) return console.error(e.error), this;var n = "string" == typeof e ? new pe(e, t || {}) : e;var s = n.name;if (this._listens(s)) {n.target = this;var _e10 = this._listeners[s] ? _toConsumableArray(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 _e(e, t) {ye.on(e, t);}function we(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};ye.fire(e, t);}function ke(e, t) {ye.off(e, t);}var ve = "loginStateChanged",Te = "loginStateExpire",Se = "loginTypeChanged",Pe = "anonymousConverted",Ae = "refreshAccessToken";var Ie;!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";}(Ie || (Ie = {}));var be = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"],Oe = { "X-SDK-Version": "1.3.5" };function Ce(e, t, n) {var s = e[t];e[t] = function (t) {var o = {},r = {};n.forEach(function (n) {var _n$call = n.call(e, t),s = _n$call.data,i = _n$call.headers;Object.assign(o, s), Object.assign(r, i);});var i = t.data;return i && function () {var e;if (e = i, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, i), o);else for (var _e11 in o) {i.append(_e11, o[_e11]);}}(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), r), s.call(e, t);};}function Ee() {var e = Math.random().toString(16).slice(2);return { data: { seqId: e }, headers: _objectSpread(_objectSpread({}, Oe), {}, { "x-seqid": e }) };}var Re = /*#__PURE__*/function () {function Re() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};_classCallCheck(this, Re);var t;this.config = e, this._reqClass = new ae.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 = ge(this.config.env), this._localCache = (t = this.config.env, fe[t]), Ce(this._reqClass, "post", [Ee]), Ce(this._reqClass, "upload", [Ee]), Ce(this._reqClass, "download", [Ee]);}_createClass(Re, [{ key: "post", value: function () {var _post = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.next = 2;return this._reqClass.post(e);case 2:return _context.abrupt("return", _context.sent);case 3:case "end":return _context.stop();}}}, _callee, this);}));function post(_x) {return _post.apply(this, arguments);}return post;}() }, { key: "upload", value: function () {var _upload = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2(e) {return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return this._reqClass.upload(e);case 2:return _context2.abrupt("return", _context2.sent);case 3:case "end":return _context2.stop();}}}, _callee2, this);}));function upload(_x2) {return _upload.apply(this, arguments);}return upload;}() }, { key: "download", value: function () {var _download = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(e) {return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:_context3.next = 2;return this._reqClass.download(e);case 2:return _context3.abrupt("return", _context3.sent);case 3:case "end":return _context3.stop();}}}, _callee3, this);}));function download(_x3) {return _download.apply(this, arguments);}return download;}() }, { key: "refreshAccessToken", value: function () {var _refreshAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4() {var e, t;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken());_context4.prev = 1;_context4.next = 4;return this._refreshAccessTokenPromise;case 4:e = _context4.sent;_context4.next = 10;break;case 7:_context4.prev = 7;_context4.t0 = _context4["catch"](1);t = _context4.t0;case 10:if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) {_context4.next = 12;break;}throw t;case 12:return _context4.abrupt("return", e);case 13:case "end":return _context4.stop();}}}, _callee4, this, [[1, 7]]);}));function refreshAccessToken() {return _refreshAccessToken2.apply(this, arguments);}return refreshAccessToken;}() }, { key: "_refreshAccessToken", value: function () {var _refreshAccessToken3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee5() {var _this$_cache$keys, e, t, n, s, o, r, i, a, _e12, _e13, _t7, _s6;return _regenerator.default.wrap(function _callee5$(_context5) {while (1) {switch (_context5.prev = _context5.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, o = _this$_cache$keys.anonymousUuidKey;this._cache.removeStore(e), this._cache.removeStore(t);r = this._cache.getStore(n);if (r) {_context5.next = 5;break;}throw new B({ message: "未登录CloudBase" });case 5:i = { refresh_token: r };_context5.next = 8;return this.request("auth.fetchAccessTokenWithRefreshToken", i);case 8:a = _context5.sent;if (!a.data.code) {_context5.next = 21;break;}_e12 = a.data.code;if (!("SIGN_PARAM_INVALID" === _e12 || "REFRESH_TOKEN_EXPIRED" === _e12 || "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 20;break;}if (!(this._cache.getStore(s) === Ie.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 19;break;}_e13 = this._cache.getStore(o);_t7 = this._cache.getStore(n);_context5.next = 17;return this.send("auth.signInAnonymously", { anonymous_uuid: _e13, refresh_token: _t7 });case 17:_s6 = _context5.sent;return _context5.abrupt("return", (this.setRefreshToken(_s6.refresh_token), this._refreshAccessToken()));case 19:we(Te), this._cache.removeStore(n);case 20:throw new B({ code: a.data.code, message: "\u5237\u65B0access token\u5931\u8D25\uFF1A".concat(a.data.code) });case 21:if (!a.data.access_token) {_context5.next = 23;break;}return _context5.abrupt("return", (we(Ae), 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 _context5.stop();}}}, _callee5, this);}));function _refreshAccessToken() {return _refreshAccessToken3.apply(this, arguments);}return _refreshAccessToken;}() }, { key: "getAccessToken", value: function () {var _getAccessToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee6() {var _this$_cache$keys2, e, t, n, s, o, r;return _regenerator.default.wrap(function _callee6$(_context6) {while (1) {switch (_context6.prev = _context6.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)) {_context6.next = 3;break;}throw new B({ message: "refresh token不存在,登录状态异常" });case 3:s = this._cache.getStore(e), o = this._cache.getStore(t), r = !0;_context6.t0 = this._shouldRefreshAccessTokenHook;if (!_context6.t0) {_context6.next = 9;break;}_context6.next = 8;return this._shouldRefreshAccessTokenHook(s, o);case 8:_context6.t0 = !_context6.sent;case 9:_context6.t1 = _context6.t0;if (!_context6.t1) {_context6.next = 12;break;}r = !1;case 12:return _context6.abrupt("return", (!s || !o || o < Date.now()) && r ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: o });case 13:case "end":return _context6.stop();}}}, _callee6, this);}));function getAccessToken() {return _getAccessToken.apply(this, arguments);}return getAccessToken;}() }, { key: "request", value: function () {var _request = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee7(e, t, n) {var s, o, r, _e14, i, _e15, _e16, a, c, u, l, h, d, f, g, p;return _regenerator.default.wrap(function _callee7$(_context7) {while (1) {switch (_context7.prev = _context7.next) {case 0:s = "x-tcb-trace_".concat(this.config.env);o = "application/x-www-form-urlencoded";r = _objectSpread({ action: e, env: this.config.env, dataVersion: "2019-08-16" }, t);if (!(-1 === be.indexOf(e))) {_context7.next = 10;break;}_e14 = this._cache.keys.refreshTokenKey;_context7.t0 = this._cache.getStore(_e14);if (!_context7.t0) {_context7.next = 10;break;}_context7.next = 9;return this.getAccessToken();case 9:r.access_token = _context7.sent.accessToken;case 10:if ("storage.uploadFile" === e) {i = new FormData();for (_e15 in i) {i.hasOwnProperty(_e15) && void 0 !== i[_e15] && i.append(_e15, r[_e15]);}o = "multipart/form-data";} else {o = "application/json", i = {};for (_e16 in r) {void 0 !== r[_e16] && (i[_e16] = r[_e16]);}}a = { headers: { "content-type": o } };n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress);c = this._localCache.getStore(s);c && (a.headers["X-TCB-Trace"] = c);u = t.parse, l = t.inQuery, h = t.search;d = { env: this.config.env };u && (d.parse = !0), l && (d = _objectSpread(_objectSpread({}, l), d));f = function (e, t) {var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var s = /\?/.test(t);var o = "";for (var _e17 in n) {"" === o ? !s && (t += "?") : o += "&", o += "".concat(_e17, "=").concat(encodeURIComponent(n[_e17]));}return /^http(s)?\:\/\//.test(t += o) ? t : "".concat(e).concat(t);}(Z, "//tcb-api.tencentcloudapi.com/web", d);h && (f += h);_context7.next = 22;return this.post(_objectSpread({ url: f, data: i }, a));case 22:g = _context7.sent;p = g.header && g.header["x-tcb-trace"];if (!(p && this._localCache.setStore(s, p), 200 !== Number(g.status) && 200 !== Number(g.statusCode) || !g.data)) {_context7.next = 26;break;}throw new B({ code: "NETWORK_ERROR", message: "network request error" });case 26:return _context7.abrupt("return", g);case 27:case "end":return _context7.stop();}}}, _callee7, this);}));function request(_x4, _x5, _x6) {return _request.apply(this, arguments);}return request;}() }, { key: "send", value: function () {var _send = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee8(e) {var t,n,_n4,_args8 = arguments;return _regenerator.default.wrap(function _callee8$(_context8) {while (1) {switch (_context8.prev = _context8.next) {case 0:t = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {};_context8.next = 3;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 3:n = _context8.sent;if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === be.indexOf(e))) {_context8.next = 13;break;}_context8.next = 7;return this.refreshAccessToken();case 7:_context8.next = 9;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 9:_n4 = _context8.sent;if (!_n4.data.code) {_context8.next = 12;break;}throw new B({ code: _n4.data.code, message: _n4.data.message });case 12:return _context8.abrupt("return", _n4.data);case 13:if (!n.data.code) {_context8.next = 15;break;}throw new B({ code: n.data.code, message: n.data.message });case 15:return _context8.abrupt("return", n.data);case 16:case "end":return _context8.stop();}}}, _callee8, this);}));function send(_x7) {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 Re;}();var Ue = {};function xe(e) {return Ue[e];}var Le = /*#__PURE__*/function () {function Le(e) {_classCallCheck(this, Le);this.config = e, this._cache = ge(e.env), this._request = xe(e.env);}_createClass(Le, [{ 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 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee9() {var _yield$this$_request$, e;return _regenerator.default.wrap(function _callee9$(_context9) {while (1) {switch (_context9.prev = _context9.next) {case 0:_context9.next = 2;return this._request.send("auth.getUserInfo", {});case 2:_yield$this$_request$ = _context9.sent;e = _yield$this$_request$.data;return _context9.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context9.stop();}}}, _callee9, 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 Le;}();var De = /*#__PURE__*/function () {function De(e) {_classCallCheck(this, De);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._envId = e, this._cache = ge(this._envId), this._request = xe(this._envId), this.setUserInfo();}_createClass(De, [{ key: "linkWithTicket", value: function linkWithTicket(e) {if ("string" != typeof e) throw new B({ 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 B({ code: "PARAM_ERROR", message: "username must be a string" });return this._request.send("auth.updateUsername", { username: e });} }, { key: "getLinkedUidList", value: function () {var _getLinkedUidList = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee10() {var _yield$this$_request$2, e, t, n;return _regenerator.default.wrap(function _callee10$(_context10) {while (1) {switch (_context10.prev = _context10.next) {case 0:_context10.next = 2;return this._request.send("auth.getLinkedUidList", {});case 2:_yield$this$_request$2 = _context10.sent;e = _yield$this$_request$2.data;t = !1;n = e.users;return _context10.abrupt("return", (n.forEach(function (e) {e.wxOpenId && e.wxPublicId && (t = !0);}), { users: n, hasPrimaryUid: t }));case 7:case "end":return _context10.stop();}}}, _callee10, 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 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) {var t, n, s, o, r, i, _yield$this$_request$3, a;return _regenerator.default.wrap(function _callee11$(_context11) {while (1) {switch (_context11.prev = _context11.next) {case 0:t = e.nickName;n = e.gender;s = e.avatarUrl;o = e.province;r = e.country;i = e.city;_context11.next = 8;return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, avatarUrl: s, province: o, country: r, city: i });case 8:_yield$this$_request$3 = _context11.sent;a = _yield$this$_request$3.data;this.setLocalUserInfo(a);case 11:case "end":return _context11.stop();}}}, _callee11, this);}));function update(_x8) {return _update.apply(this, arguments);}return update;}() }, { key: "refresh", value: function () {var _refresh = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee12() {var _yield$this$_request$4, 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$4 = _context12.sent;e = _yield$this$_request$4.data;return _context12.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context12.stop();}}}, _callee12, this);}));function refresh() {return _refresh.apply(this, arguments);}return refresh;}() }, { key: "setUserInfo", value: function setUserInfo() {var _this9 = 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) {_this9[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 De;}();var Ne = /*#__PURE__*/function () {function Ne(e) {_classCallCheck(this, Ne);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._cache = ge(e);var _this$_cache$keys6 = this._cache.keys,t = _this$_cache$keys6.refreshTokenKey,n = _this$_cache$keys6.accessTokenKey,s = _this$_cache$keys6.accessTokenExpireKey,o = this._cache.getStore(t),r = this._cache.getStore(n),i = this._cache.getStore(s);this.credential = { refreshToken: o, accessToken: r, accessTokenExpire: i }, this.user = new De(e);}_createClass(Ne, [{ key: "isAnonymousAuth", get: function get() {return this.loginType === Ie.ANONYMOUS;} }, { key: "isCustomAuth", get: function get() {return this.loginType === Ie.CUSTOM;} }, { key: "isWeixinAuth", get: function get() {return this.loginType === Ie.WECHAT || this.loginType === Ie.WECHAT_OPEN || this.loginType === Ie.WECHAT_PUBLIC;} }, { key: "loginType", get: function get() {return this._cache.getStore(this._cache.keys.loginTypeKey);} }]);return Ne;}();var qe = /*#__PURE__*/function (_Le) {_inherits(qe, _Le);var _super4 = _createSuper(qe);function qe() {_classCallCheck(this, qe);return _super4.apply(this, arguments);}_createClass(qe, [{ key: "signIn", value: function () {var _signIn = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee13() {var _this$_cache$keys7, e, t, n, s, o, _e18;return _regenerator.default.wrap(function _callee13$(_context13) {while (1) {switch (_context13.prev = _context13.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;_context13.next = 8;return this._request.send("auth.signInAnonymously", { anonymous_uuid: n, refresh_token: s });case 8:o = _context13.sent;if (!(o.uuid && o.refresh_token)) {_context13.next = 20;break;}this._setAnonymousUUID(o.uuid);this.setRefreshToken(o.refresh_token);_context13.next = 14;return this._request.refreshAccessToken();case 14:we(ve);we(Se, { env: this.config.env, loginType: Ie.ANONYMOUS, persistence: "local" });_e18 = new Ne(this.config.env);_context13.next = 19;return _e18.user.refresh();case 19:return _context13.abrupt("return", _e18);case 20:throw new B({ message: "匿名登录失败" });case 21:case "end":return _context13.stop();}}}, _callee13, this);}));function signIn() {return _signIn.apply(this, arguments);}return signIn;}() }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) {var _this$_cache$keys8, t, n, s, o, r;return _regenerator.default.wrap(function _callee14$(_context14) {while (1) {switch (_context14.prev = _context14.next) {case 0:_this$_cache$keys8 = this._cache.keys;t = _this$_cache$keys8.anonymousUuidKey;n = _this$_cache$keys8.refreshTokenKey;s = this._cache.getStore(t);o = this._cache.getStore(n);_context14.next = 7;return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: o, ticket: e });case 7:r = _context14.sent;if (!r.refresh_token) {_context14.next = 16;break;}this._clearAnonymousUUID();this.setRefreshToken(r.refresh_token);_context14.next = 13;return this._request.refreshAccessToken();case 13:we(Pe, { env: this.config.env });we(Se, { loginType: Ie.CUSTOM, persistence: "local" });return _context14.abrupt("return", { credential: { refreshToken: r.refresh_token } });case 16:throw new B({ message: "匿名转化失败" });case 17:case "end":return _context14.stop();}}}, _callee14, this);}));function linkAndRetrieveDataWithTicket(_x9) {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, Ie.ANONYMOUS);} }, { key: "_clearAnonymousUUID", value: function _clearAnonymousUUID() {this._cache.removeStore(this._cache.keys.anonymousUuidKey);} }]);return qe;}(Le);var Fe = /*#__PURE__*/function (_Le2) {_inherits(Fe, _Le2);var _super5 = _createSuper(Fe);function Fe() {_classCallCheck(this, Fe);return _super5.apply(this, arguments);}_createClass(Fe, [{ key: "signIn", value: function () {var _signIn2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee15(e) {var t, n;return _regenerator.default.wrap(function _callee15$(_context15) {while (1) {switch (_context15.prev = _context15.next) {case 0:if (!("string" != typeof e)) {_context15.next = 2;break;}throw new B({ param: "PARAM_ERROR", message: "ticket must be a string" });case 2:t = this._cache.keys.refreshTokenKey;_context15.next = 5;return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" });case 5:n = _context15.sent;if (!n.refresh_token) {_context15.next = 15;break;}this.setRefreshToken(n.refresh_token);_context15.next = 10;return this._request.refreshAccessToken();case 10:we(ve);we(Se, { env: this.config.env, loginType: Ie.CUSTOM, persistence: this.config.persistence });_context15.next = 14;return this.refreshUserInfo();case 14:return _context15.abrupt("return", new Ne(this.config.env));case 15:throw new B({ message: "自定义登录失败" });case 16:case "end":return _context15.stop();}}}, _callee15, this);}));function signIn(_x10) {return _signIn2.apply(this, arguments);}return signIn;}() }]);return Fe;}(Le);var Me = /*#__PURE__*/function (_Le3) {_inherits(Me, _Le3);var _super6 = _createSuper(Me);function Me() {_classCallCheck(this, Me);return _super6.apply(this, arguments);}_createClass(Me, [{ key: "signIn", value: function () {var _signIn3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee16(e, t) {var n, s, o, r, i;return _regenerator.default.wrap(function _callee16$(_context16) {while (1) {switch (_context16.prev = _context16.next) {case 0:if (!("string" != typeof e)) {_context16.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "email must be a string" });case 2:n = this._cache.keys.refreshTokenKey;_context16.next = 5;return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 5:s = _context16.sent;o = s.refresh_token;r = s.access_token;i = s.access_token_expire;if (!o) {_context16.next = 22;break;}this.setRefreshToken(o);if (!(r && i)) {_context16.next = 15;break;}this.setAccessToken(r, i);_context16.next = 17;break;case 15:_context16.next = 17;return this._request.refreshAccessToken();case 17:_context16.next = 19;return this.refreshUserInfo();case 19:we(ve);we(Se, { env: this.config.env, loginType: Ie.EMAIL, persistence: this.config.persistence });return _context16.abrupt("return", new Ne(this.config.env));case 22:throw s.code ? new B({ code: s.code, message: "\u90AE\u7BB1\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "邮箱登录失败" });case 23:case "end":return _context16.stop();}}}, _callee16, this);}));function signIn(_x11, _x12) {return _signIn3.apply(this, arguments);}return signIn;}() }, { key: "activate", value: function () {var _activate = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) {return _regenerator.default.wrap(function _callee17$(_context17) {while (1) {switch (_context17.prev = _context17.next) {case 0:return _context17.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e }));case 1:case "end":return _context17.stop();}}}, _callee17, this);}));function activate(_x13) {return _activate.apply(this, arguments);}return activate;}() }, { key: "resetPasswordWithToken", value: function () {var _resetPasswordWithToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee18(e, t) {return _regenerator.default.wrap(function _callee18$(_context18) {while (1) {switch (_context18.prev = _context18.next) {case 0:return _context18.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t }));case 1:case "end":return _context18.stop();}}}, _callee18, this);}));function resetPasswordWithToken(_x14, _x15) {return _resetPasswordWithToken.apply(this, arguments);}return resetPasswordWithToken;}() }]);return Me;}(Le);var je = /*#__PURE__*/function (_Le4) {_inherits(je, _Le4);var _super7 = _createSuper(je);function je() {_classCallCheck(this, je);return _super7.apply(this, arguments);}_createClass(je, [{ key: "signIn", value: function () {var _signIn4 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) {var n, s, o, r, i;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 B({ 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;_context19.next = 6;return this._request.send("auth.signIn", { loginType: Ie.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 6:s = _context19.sent;o = s.refresh_token;r = s.access_token_expire;i = s.access_token;if (!o) {_context19.next = 23;break;}this.setRefreshToken(o);if (!(i && r)) {_context19.next = 16;break;}this.setAccessToken(i, r);_context19.next = 18;break;case 16:_context19.next = 18;return this._request.refreshAccessToken();case 18:_context19.next = 20;return this.refreshUserInfo();case 20:we(ve);we(Se, { env: this.config.env, loginType: Ie.USERNAME, persistence: this.config.persistence });return _context19.abrupt("return", new Ne(this.config.env));case 23:throw s.code ? new B({ code: s.code, message: "\u7528\u6237\u540D\u5BC6\u7801\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "用户名密码登录失败" });case 24:case "end":return _context19.stop();}}}, _callee19, this);}));function signIn(_x16, _x17) {return _signIn4.apply(this, arguments);}return signIn;}() }]);return je;}(Le);var $e = /*#__PURE__*/function () {function $e(e) {_classCallCheck(this, $e);this.config = e, this._cache = ge(e.env), this._request = xe(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), _e(Se, this._onLoginTypeChanged);}_createClass($e, [{ key: "anonymousAuthProvider", value: function anonymousAuthProvider() {return new qe(this.config);} }, { key: "customAuthProvider", value: function customAuthProvider() {return new Fe(this.config);} }, { key: "emailAuthProvider", value: function emailAuthProvider() {return new Me(this.config);} }, { key: "usernameAuthProvider", value: function usernameAuthProvider() {return new je(this.config);} }, { key: "signInAnonymously", value: function () {var _signInAnonymously = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee20() {return _regenerator.default.wrap(function _callee20$(_context20) {while (1) {switch (_context20.prev = _context20.next) {case 0:return _context20.abrupt("return", new qe(this.config).signIn());case 1:case "end":return _context20.stop();}}}, _callee20, this);}));function signInAnonymously() {return _signInAnonymously.apply(this, arguments);}return signInAnonymously;}() }, { key: "signInWithEmailAndPassword", value: function () {var _signInWithEmailAndPassword = _asyncToGenerator( /*#__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", new Me(this.config).signIn(e, t));case 1:case "end":return _context21.stop();}}}, _callee21, this);}));function signInWithEmailAndPassword(_x18, _x19) {return _signInWithEmailAndPassword.apply(this, arguments);}return signInWithEmailAndPassword;}() }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) {return new je(this.config).signIn(e, t);} }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee22(e) {return _regenerator.default.wrap(function _callee22$(_context22) {while (1) {switch (_context22.prev = _context22.next) {case 0:this._anonymousAuthProvider || (this._anonymousAuthProvider = new qe(this.config)), _e(Pe, this._onAnonymousConverted);_context22.next = 3;return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e);case 3:return _context22.abrupt("return", _context22.sent);case 4:case "end":return _context22.stop();}}}, _callee22, this);}));function linkAndRetrieveDataWithTicket(_x20) {return _linkAndRetrieveDataWithTicket2.apply(this, arguments);}return linkAndRetrieveDataWithTicket;}() }, { key: "signOut", value: function () {var _signOut = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee23() {var _this$_cache$keys10, e, t, n, s, o;return _regenerator.default.wrap(function _callee23$(_context23) {while (1) {switch (_context23.prev = _context23.next) {case 0:if (!(this.loginType === Ie.ANONYMOUS)) {_context23.next = 2;break;}throw new B({ 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) {_context23.next = 5;break;}return _context23.abrupt("return");case 5:_context23.next = 7;return this._request.send("auth.logout", { refresh_token: s });case 7:o = _context23.sent;return _context23.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), we(ve), we(Se, { env: this.config.env, loginType: Ie.NULL, persistence: this.config.persistence }), o));case 9:case "end":return _context23.stop();}}}, _callee23, this);}));function signOut() {return _signOut.apply(this, arguments);}return signOut;}() }, { key: "signUpWithEmailAndPassword", value: function () {var _signUpWithEmailAndPassword = _asyncToGenerator( /*#__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", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t }));case 1:case "end":return _context24.stop();}}}, _callee24, this);}));function signUpWithEmailAndPassword(_x21, _x22) {return _signUpWithEmailAndPassword.apply(this, arguments);}return signUpWithEmailAndPassword;}() }, { key: "sendPasswordResetEmail", value: function () {var _sendPasswordResetEmail = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) {return _regenerator.default.wrap(function _callee25$(_context25) {while (1) {switch (_context25.prev = _context25.next) {case 0:return _context25.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e }));case 1:case "end":return _context25.stop();}}}, _callee25, this);}));function sendPasswordResetEmail(_x23) {return _sendPasswordResetEmail.apply(this, arguments);}return sendPasswordResetEmail;}() }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) {var _this10 = this;_e(ve, function () {var t = _this10.hasLoginState();e.call(_this10, t);});var t = this.hasLoginState();e.call(this, t);} }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) {_e(Te, e.bind(this));} }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) {_e(Ae, e.bind(this));} }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) {_e(Pe, e.bind(this));} }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) {var _this11 = this;_e(Se, function () {var t = _this11.hasLoginState();e.call(_this11, t);});} }, { key: "getAccessToken", value: function () {var _getAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee26() {return _regenerator.default.wrap(function _callee26$(_context26) {while (1) {switch (_context26.prev = _context26.next) {case 0:_context26.next = 2;return this._request.getAccessToken();case 2:_context26.t0 = _context26.sent.accessToken;_context26.t1 = this.config.env;return _context26.abrupt("return", { accessToken: _context26.t0, env: _context26.t1 });case 5:case "end":return _context26.stop();}}}, _callee26, 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 Ne(this.config.env) : null;} }, { key: "isUsernameRegistered", value: function () {var _isUsernameRegistered = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee27(e) {var _yield$this$_request$5, t;return _regenerator.default.wrap(function _callee27$(_context27) {while (1) {switch (_context27.prev = _context27.next) {case 0:if (!("string" != typeof e)) {_context27.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "username must be a string" });case 2:_context27.next = 4;return this._request.send("auth.isUsernameRegistered", { username: e });case 4:_yield$this$_request$5 = _context27.sent;t = _yield$this$_request$5.data;return _context27.abrupt("return", t && t.isRegistered);case 7:case "end":return _context27.stop();}}}, _callee27, this);}));function isUsernameRegistered(_x24) {return _isUsernameRegistered.apply(this, arguments);}return isUsernameRegistered;}() }, { key: "getLoginState", value: function getLoginState() {return Promise.resolve(this.hasLoginState());} }, { key: "signInWithTicket", value: function () {var _signInWithTicket = _asyncToGenerator( /*#__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", new Fe(this.config).signIn(e));case 1:case "end":return _context28.stop();}}}, _callee28, this);}));function signInWithTicket(_x25) {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));} }, { 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);} }]);return $e;}();var Ke = function Ke(e, t) {t = t || ne();var n = xe(this.config.env),s = e.cloudPath,o = e.filePath,r = e.onUploadProgress,_e$fileType = e.fileType,i = _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,l = _e$data2.fileId,h = _e$data2.cosFileId,d = e.requestId,f = { key: s, signature: c, "x-cos-meta-fileid": h, success_action_status: "201", "x-cos-security-token": u };n.upload({ url: a, data: f, file: o, name: s, fileType: i, onUploadProgress: r }).then(function (e) {201 === e.statusCode ? t(null, { fileID: l, requestId: d }) : t(new B({ code: "STORAGE_REQUEST_FAIL", message: "STORAGE_REQUEST_FAIL: ".concat(e.data) }));}).catch(function (e) {t(e);});}).catch(function (e) {t(e);}), t.promise;},Be = function Be(e, t) {t = t || ne();var n = xe(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;},He = function He(_ref5, t) {var e = _ref5.fileList;if (t = t || ne(), !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 xe(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;},We = function We(_ref6, t) {var e = _ref6.fileList;t = t || ne(), 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 _s7 = _step4.value;"object" == typeof _s7 ? (_s7.hasOwnProperty("fileID") && _s7.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n.push({ fileid: _s7.fileID, max_age: _s7.maxAge })) : "string" == typeof _s7 ? n.push({ fileid: _s7 }) : t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" });}} catch (err) {_iterator4.e(err);} finally {_iterator4.f();}var s = { file_list: n };return xe(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;},ze = /*#__PURE__*/function () {var _ref8 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee29(_ref7, t) {var e, n, s, o;return _regenerator.default.wrap(function _callee29$(_context29) {while (1) {switch (_context29.prev = _context29.next) {case 0:e = _ref7.fileID;_context29.next = 3;return We.call(this, { fileList: [{ fileID: e, maxAge: 600 }] });case 3:n = _context29.sent.fileList[0];if (!("SUCCESS" !== n.code)) {_context29.next = 6;break;}return _context29.abrupt("return", t ? t(n) : new Promise(function (e) {e(n);}));case 6:s = xe(this.config.env);o = n.download_url;if (!(o = encodeURI(o), !t)) {_context29.next = 10;break;}return _context29.abrupt("return", s.download({ url: o }));case 10:_context29.t0 = t;_context29.next = 13;return s.download({ url: o });case 13:_context29.t1 = _context29.sent;(0, _context29.t0)(_context29.t1);case 15:case "end":return _context29.stop();}}}, _callee29, this);}));return function ze(_x26, _x27) {return _ref8.apply(this, arguments);};}(),Je = function Je(_ref9, r) {var e = _ref9.name,t = _ref9.data,n = _ref9.query,s = _ref9.parse,o = _ref9.search;var i = r || ne();var a;try {a = t ? JSON.stringify(t) : "";} catch (e) {return Promise.reject(e);}if (!e) return Promise.reject(new B({ code: "PARAM_ERROR", message: "函数名不能为空" }));var c = { inQuery: n, parse: s, search: o, function_name: e, request_data: a };return xe(this.config.env).send("functions.invokeFunction", c).then(function (e) {if (e.code) i(null, e);else {var _t9 = e.data.response_data;if (s) i(null, { result: _t9, requestId: e.requestId });else try {_t9 = JSON.parse(e.data.response_data), i(null, { result: _t9, requestId: e.requestId });} catch (e) {i(new B({ message: "response data must be json" }));}}return i.promise;}).catch(function (e) {i(e);}), i.promise;},Ve = { timeout: 15e3, persistence: "session" },Ye = {};var Xe = /*#__PURE__*/function () {function Xe(e) {_classCallCheck(this, Xe);this.config = e || this.config, this.authObj = void 0;}_createClass(Xe, [{ key: "init", value: function init(e) {switch (ae.adapter || (this.requestClient = new ae.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({}, Ve), 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 Xe(this.config);} }, { key: "auth", value: function auth() {var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref10.persistence;if (this.authObj) return this.authObj;var t = e || ae.adapter.primaryStorage || Ve.persistence;var n;return t !== this.config.persistence && (this.config.persistence = t), function (e) {var t = e.env;de[t] = new he(e), fe[t] = new he(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" }));}(this.config), n = this.config, Ue[n.env] = new Re(n), this.authObj = new $e(this.config), this.authObj;} }, { key: "on", value: function on(e, t) {return _e.apply(this, [e, t]);} }, { key: "off", value: function off(e, t) {return ke.apply(this, [e, t]);} }, { key: "callFunction", value: function callFunction(e, t) {return Je.apply(this, [e, t]);} }, { key: "deleteFile", value: function deleteFile(e, t) {return He.apply(this, [e, t]);} }, { key: "getTempFileURL", value: function getTempFileURL(e, t) {return We.apply(this, [e, t]);} }, { key: "downloadFile", value: function downloadFile(e, t) {return ze.apply(this, [e, t]);} }, { key: "uploadFile", value: function uploadFile(e, t) {return Ke.apply(this, [e, t]);} }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) {return Be.apply(this, [e, t]);} }, { key: "registerExtension", value: function registerExtension(e) {Ye[e.name] = e;} }, { key: "invokeExtension", value: function () {var _invokeExtension = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee30(e, t) {var n;return _regenerator.default.wrap(function _callee30$(_context30) {while (1) {switch (_context30.prev = _context30.next) {case 0:n = Ye[e];if (n) {_context30.next = 3;break;}throw new B({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") });case 3:_context30.next = 5;return n.invoke(t, this);case 5:return _context30.abrupt("return", _context30.sent);case 6:case "end":return _context30.stop();}}}, _callee30, this);}));function invokeExtension(_x28, _x29) {return _invokeExtension.apply(this, arguments);}return invokeExtension;}() }, { key: "useAdapters", value: function useAdapters(e) {var _ref11 = ie(e) || {},t = _ref11.adapter,n = _ref11.runtime;t && (ae.adapter = t), n && (ae.runtime = n);} }]);return Xe;}();var Ge = new Xe();function Qe(e, t, n) {void 0 === n && (n = {});var s = /\?/.test(t),o = "";for (var r in n) {"" === o ? !s && (t += "?") : o += "&", o += r + "=" + encodeURIComponent(n[r]);}return /^http(s)?:\/\//.test(t += o) ? t : "" + e + t;}var Ze = /*#__PURE__*/function () {function Ze() {_classCallCheck(this, Ze);}_createClass(Ze, [{ key: "post", value: function post(e) {var t = e.url,n = e.data,s = e.headers;return new Promise(function (e, o) {V.request({ url: Qe("https:", t), data: n, method: "POST", header: s, success: function success(t) {e(t);}, fail: function fail(e) {o(e);} });});} }, { key: "upload", value: function upload(e) {return new Promise(function (t, n) {var s = e.url,o = e.file,r = e.data,i = e.headers,a = e.fileType,c = V.uploadFile({ url: Qe("https:", s), name: "file", formData: Object.assign({}, r), filePath: o, fileType: a, header: i, success: function success(e) {var n = { statusCode: e.statusCode, data: e.data || {} };200 === e.statusCode && r.success_action_status && (n.statusCode = parseInt(r.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 Ze;}();var et = { setItem: function setItem(e, t) {V.setStorageSync(e, t);}, getItem: function getItem(e) {return V.getStorageSync(e);}, removeItem: function removeItem(e) {V.removeStorageSync(e);}, clear: function clear() {V.clearStorageSync();} };var tt = { genAdapter: function genAdapter() {return { root: {}, reqClass: Ze, localStorage: et, primaryStorage: "local" };}, isMatch: function isMatch() {return !0;}, runtime: "uni_app" };Ge.useAdapters(tt);var nt = Ge,st = nt.init;nt.init = function (e) {e.env = e.spaceId;var t = st.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) {t[e] = K(t[e]).bind(t);}), t;}, t.customAuth = t.auth, t;};var ot = nt;function rt() {return { token: V.getStorageSync("uni_id_token") || V.getStorageSync("uniIdToken"), tokenExpired: V.getStorageSync("uni_id_token_expired") };}function it() {var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref12.token,t = _ref12.tokenExpired;e && V.setStorageSync("uni_id_token", e), t && V.setStorageSync("uni_id_token_expired", t);}function at() {if (!d || "web" !== g) return;uni.getStorageSync("__LAST_DCLOUD_APPID") !== _ && (uni.setStorageSync("__LAST_DCLOUD_APPID", _), console.warn("检测到当前项目与上次运行到此端口的项目不一致,自动清理uni-id保存的token信息(仅开发调试时生效)"), V.removeStorageSync("uni_id_token"), V.removeStorageSync("uniIdToken"), V.removeStorageSync("uni_id_token_expired"));}var ct = /*#__PURE__*/function (_G) {_inherits(ct, _G);var _super8 = _createSuper(ct);function ct() {_classCallCheck(this, ct);return _super8.apply(this, arguments);}_createClass(ct, [{ key: "getAccessToken", value: function getAccessToken() {var _this12 = this;return new Promise(function (e, t) {var n = "Anonymous_Access_token";_this12.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"] = J.sign(n, this.config.clientSecret);var o = z();s["x-client-info"] = encodeURIComponent(JSON.stringify(o));var _rt = rt(),r = _rt.token;return s["x-client-token"] = r, { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: JSON.parse(JSON.stringify(s)) };} }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref13) {var _this13 = this;var e = _ref13.url,t = _ref13.formData,n = _ref13.name,s = _ref13.filePath,o = _ref13.fileType,r = _ref13.onUploadProgress;return new Promise(function (i, a) {var c = _this13.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend });});});} }, { key: "uploadFile", value: function uploadFile(_ref14) {var _this14 = this;var e = _ref14.filePath,t = _ref14.cloudPath,_ref14$fileType = _ref14.fileType,n = _ref14$fileType === void 0 ? "image" : _ref14$fileType,s = _ref14.onUploadProgress;if (!t) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" });var o;return this.getOSSUploadOptionsFromPath({ cloudPath: t }).then(function (t) {var _t$result = t.result,r = _t$result.url,i = _t$result.formData,a = _t$result.name;o = t.result.fileUrl;var c = { url: r, formData: i, name: a, filePath: e, fileType: n };return _this14.uploadFileToOSS(Object.assign({}, c, { onUploadProgress: s }));}).then(function () {return _this14.reportOSSUpload({ cloudPath: t });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: o }) : s(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref15) {var e = _ref15.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref16 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref16.fileList;var t = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }]);return ct;}(G);var ut = { init: function init(e) {var t = new ct(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 lt(_ref17) {var e = _ref17.data;var t;t = z();var n = JSON.parse(JSON.stringify(e || {}));if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) {var _rt2 = rt(),_e19 = _rt2.token;_e19 && (n.uniIdToken = _e19);}return n;}function ht() {var _this15 = this;var _ref18 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref18.name,t = _ref18.data;var _this$__dev__ = this.__dev__,n = _this$__dev__.localAddress,s = _this$__dev__.localPort,o = { aliyun: "aliyun", tencent: "tcb" }[this.config.provider],r = this.config.spaceId,i = "http://".concat(n, ":").concat(s, "/system/check-function"),a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e);return new Promise(function (t, n) {V.request({ method: "POST", url: i, data: { name: e, platform: g, provider: o, spaceId: r }, timeout: 3e3, success: function success(e) {t(e);}, fail: function fail() {t({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } });} });}).then(function () {var _ref19 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref19.data;var _ref20 = e || {},t = _ref20.code,n = _ref20.message;return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" };}).then(function (_ref21) {var n = _ref21.code,s = _ref21.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 _e20 = "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下";throw console.error(_e20), new Error(_e20);}case "SWITCH_TO_CLOUD":break;default:{var _e21 = "\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(_e21), new Error(_e21);}}return _this15._callCloudFunction({ name: e, data: t });}return new Promise(function (e, n) {var s = lt.call(_this15, { data: t });V.request({ method: "POST", url: a, data: { provider: o, platform: g, param: s }, success: function success() {var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref22.statusCode,s = _ref22.data;return !t || t >= 400 ? n(new B({ code: s.code || "SYS_ERR", message: s.message || "request:fail" })) : e({ result: s });}, fail: function fail(e) {n(new B({ code: e.code || e.errCode || "SYS_ERR", message: e.message || e.errMsg || "request:fail" }));} });});});}var dt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }];var ft = /[\\^$.*+?()[\]{}|]/g,gt = RegExp(ft.source);function pt(e, t, n) {return e.replace(new RegExp((s = t) && gt.test(s) ? s.replace(ft, "\\$&") : s, "g"), n);var s;}function mt(_ref23) {var e = _ref23.functionName,t = _ref23.result,n = _ref23.logPvd;if (this.__dev__.debugLog && t && t.requestId) {var _s8 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId });console.log("[".concat(n, "-request]").concat(_s8, "[/").concat(n, "-request]"));}}function yt(e) {var t = e.callFunction,n = function n(_n5) {var _this16 = this;var s = _n5.name;_n5.data = lt.call(e, { data: _n5.data });var o = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb" }[this.config.provider];return t.call(this, _n5).then(function (e) {return e.errCode = 0, mt.call(_this16, { functionName: s, result: e, logPvd: o }), Promise.resolve(e);}, function (e) {return mt.call(_this16, { functionName: s, result: e, logPvd: o }), e && e.message && (e.message = function () {var _ref24 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref24$message = _ref24.message,e = _ref24$message === void 0 ? "" : _ref24$message,_ref24$extraInfo = _ref24.extraInfo,t = _ref24$extraInfo === void 0 ? {} : _ref24$extraInfo,_ref24$formatter = _ref24.formatter,n = _ref24$formatter === void 0 ? [] : _ref24$formatter;for (var _s9 = 0; _s9 < n.length; _s9++) {var _n$_s = n[_s9],_o3 = _n$_s.rule,_r2 = _n$_s.content,i = _n$_s.mode,_a = e.match(_o3);if (!_a) continue;var _c = _r2;for (var _e22 = 1; _e22 < _a.length; _e22++) {_c = pt(_c, "{$".concat(_e22, "}"), _a[_e22]);}for (var _e23 in t) {_c = pt(_c, "{".concat(_e23, "}"), t[_e23]);}return "replace" === i ? _c : e + _c;}return e;}({ message: "[".concat(_n5.name, "]: ").concat(e.message), formatter: dt, extraInfo: { functionName: s } })), Promise.reject(e);});};e.callFunction = function (t) {var s;d && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && m ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = ht), s = ht) : s = n;var o = s.call(this, t);return Object.defineProperty(o, "result", { get: function get() {return console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {};} }), o;};}var _t = Symbol("CLIENT_DB_INTERNAL");function wt(e, t) {return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = _t, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) {if ("_uniClient" === n) return null;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 kt(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 vt = ["db.Geo", "db.command", "command.aggregate"];function Tt(e, t) {return vt.indexOf("".concat(e, ".").concat(t)) > -1;}function St(e) {switch (u(e)) {case "array":return e.map(function (e) {return St(e);});case "object":return e._internalType === _t || Object.keys(e).forEach(function (t) {e[t] = St(e[t]);}), e;case "regexp":return { $regexp: { source: e.source, flags: e.flags } };case "date":return { $date: e.toISOString() };default:return e;}}function Pt(e) {return e && e.content && e.content.$method;}var At = /*#__PURE__*/function () {function At(e, t, n) {_classCallCheck(this, At);this.content = e, this.prevStage = t || null, this.udb = null, this._database = n;}_createClass(At, [{ 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: St(e.$param) };}) };} }, { 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: "get", value: function get() {return this._send("get", Array.from(arguments));} }, { key: "add", value: function add() {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: "_send", value: function _send(e, t) {var n = this.getAction(),s = this.getCommand();if (s.$db.push({ $method: e, $param: St(t) }), d) {var _e24 = s.$db.find(function (e) {return "collection" === e.$method;}),_t11 = _e24 && _e24.$param;_t11 && 1 === _t11.length && "string" == typeof _e24.$param[0] && _e24.$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 });} }, { key: "isAggregate", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n6 = Pt(e.prevStage);if ("aggregate" === t && "collection" === _n6 || "pipeline" === t) return !0;e = e.prevStage;}return !1;} }, { key: "isCommand", get: function get() {var e = this;for (; e;) {if ("command" === Pt(e)) return !0;e = e.prevStage;}return !1;} }, { key: "isAggregateCommand", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n7 = Pt(e.prevStage);if ("aggregate" === t && "command" === _n7) return !0;e = e.prevStage;}return !1;} }, { key: "count", get: function get() {if (!this.isAggregate) return function () {return this._send("count", Array.from(arguments));};var e = this;return function () {return It({ $method: "count", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "remove", get: function get() {if (!this.isCommand) return function () {return this._send("remove", Array.from(arguments));};var e = this;return function () {return It({ $method: "remove", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "set", get: function get() {if (!this.isCommand) return function () {throw new Error("JQL禁止使用set方法");};var e = this;return function () {return It({ $method: "set", $param: St(Array.from(arguments)) }, e, this._database);};} }]);return At;}();function It(e, t, n) {return wt(new At(e, t, n), { get: function get(e, t) {var s = "db";return e && e.content && (s = e.content.$method), Tt(s, t) ? It({ $method: t }, e, n) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, e, n);};} });}function bt(_ref25) {var e = _ref25.path,t = _ref25.method;return /*#__PURE__*/function () {function _class2() {_classCallCheck(this, _class2);this.param = Array.from(arguments);}_createClass(_class2, [{ key: "toJSON", value: function toJSON() {return { $newDb: [].concat(_toConsumableArray(e.map(function (e) {return { $method: e };})), [{ $method: t, $param: this.param }]) };} }]);return _class2;}();}var Ot = /*#__PURE__*/function (_ref26) {_inherits(Ot, _ref26);var _super9 = _createSuper(Ot);function Ot() {_classCallCheck(this, Ot);return _super9.apply(this, arguments);}_createClass(Ot, [{ key: "_callCloudFunction", value: function _callCloudFunction(_ref27) {var _this17 = this;var e = _ref27.action,t = _ref27.command,n = _ref27.multiCommand,s = _ref27.queryList;function o(e, t) {if (n && s) for (var _n8 = 0; _n8 < s.length; _n8++) {var _o4 = s[_n8];_o4.udb && "function" == typeof _o4.udb.setResult && (t ? _o4.udb.setResult(t) : _o4.udb.setResult(e.result.dataList[_n8]));}}var r = this;function i(e) {return r._callback("error", [e]), A(I("database", "fail"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(null, e), F(C, { type: U, content: e }), Promise.reject(e);});}var a = A(I("database", "invoke")),u = this._uniClient;return a.then(function () {return u.callFunction({ name: "DCloud-clientDB", type: c, 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,r = _e$result.tokenExpired,_e$result$systemInfo = _e$result.systemInfo,a = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo;if (a) for (var _e25 = 0; _e25 < a.length; _e25++) {var _a$_e = a[_e25],_t12 = _a$_e.level,_n9 = _a$_e.message,_s10 = _a$_e.detail,_o5 = console["app" === g && "warn" === _t12 ? "error" : _t12] || console.log;var _r3 = "[System Info]" + _n9;_s10 && (_r3 = "".concat(_r3, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s10)), _o5(_r3);}if (t) {return i(new B({ code: t, message: n, requestId: e.requestId }));}e.result.errCode = e.result.code, e.result.errMsg = e.result.message, s && r && (it({ token: s, tokenExpired: r }), _this17._callbackAuth("refreshToken", [{ token: s, tokenExpired: r }]), _this17._callback("refreshToken", [{ token: s, tokenExpired: r }]), F(R, { token: s, tokenExpired: r }));var c = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }];var _loop = function _loop(_t13) {var _c$_t = c[_t13],n = _c$_t.prop,s = _c$_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 < c.length; _t13++) {_loop(_t13);}return function (e) {return A(I("database", "success"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(e, null), F(C, { type: U, content: e }), Promise.resolve(e);});}(e);}, function (e) {/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB");return i(new B({ code: e.code || "SYSTEM_ERROR", message: e.message, requestId: e.requestId }));});} }]);return Ot;}( /*#__PURE__*/function () {function _class3() {var _ref28 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref28$uniClient = _ref28.uniClient,e = _ref28$uniClient === void 0 ? {} : _ref28$uniClient;_classCallCheck(this, _class3);this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e.isDefault && (this._dbCallBacks = k("_globalUniCloudDatabaseCallback")), this.auth = kt(this._authCallBacks), Object.assign(this, kt(this._dbCallBacks)), this.env = wt({}, { get: function get(e, t) {return { $env: t };} }), this.Geo = wt({}, { get: function get(e, t) {return bt({ path: ["Geo"], method: t });} }), this.serverDate = bt({ path: [], method: "serverDate" }), this.RegExp = bt({ path: [], method: "RegExp" });}_createClass(_class3, [{ 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, _toConsumableArray(t));});} }, { key: "_callbackAuth", value: function _callbackAuth(e, t) {var n = this._authCallBacks;n[e] && n[e].forEach(function (e) {e.apply(void 0, _toConsumableArray(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 _class3;}());function Ct(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 = function (e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return wt(new e(t), { get: function get(e, t) {return Tt("db", t) ? It({ $method: t }, null, e) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, null, e);};} });}(Ot, { uniClient: e });return this._database = n, n;};}var Et = "token无效,跳转登录页面",Rt = "token过期,跳转登录页面",Ut = { TOKEN_INVALID_TOKEN_EXPIRED: Rt, TOKEN_INVALID_INVALID_CLIENTID: Et, TOKEN_INVALID: Et, TOKEN_INVALID_WRONG_TOKEN: Et, TOKEN_INVALID_ANONYMOUS_USER: Et },xt = { "uni-id-token-expired": Rt, "uni-id-check-token-failed": Et, "uni-id-token-not-exist": Et, "uni-id-check-device-feature-failed": Et };function Lt(e, t) {var n = "";return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, "");}function Dt() {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(Lt(t, e.path)) : !1 === e.needLogin && s.push(Lt(t, e.path));}), { needLoginPage: n, notNeedLoginPage: s };}function Nt(e) {return e.split("?")[0].replace(/^\//, "");}function qt() {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 Ft() {return Nt(qt());}function Mt() {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 = Nt(e);return n.some(function (e) {return e.pagePath === s;});}var jt = !!_pages.default.uniIdRouter;var _ref29 = function () {var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default,_ref30$pages = _ref30.pages,e = _ref30$pages === void 0 ? [] : _ref30$pages,_ref30$subPackages = _ref30.subPackages,n = _ref30$subPackages === void 0 ? [] : _ref30$subPackages,_ref30$uniIdRouter = _ref30.uniIdRouter,s = _ref30$uniIdRouter === void 0 ? {} : _ref30$uniIdRouter,_ref30$tabBar = _ref30.tabBar,o = _ref30$tabBar === void 0 ? {} : _ref30$tabBar;var r = s.loginPage,_s$needLogin = s.needLogin,i = _s$needLogin === void 0 ? [] : _s$needLogin,_s$resToLogin = s.resToLogin,a = _s$resToLogin === void 0 ? !0 : _s$resToLogin,_Dt = Dt(e),c = _Dt.needLoginPage,u = _Dt.notNeedLoginPage,_ref31 = 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,o = _e$pages === void 0 ? [] : _e$pages,_Dt2 = Dt(o, s),r = _Dt2.needLoginPage,i = _Dt2.notNeedLoginPage;t.push.apply(t, _toConsumableArray(r)), n.push.apply(n, _toConsumableArray(i));}), { needLoginPage: t, notNeedLoginPage: n };}(n),l = _ref31.needLoginPage,h = _ref31.notNeedLoginPage;return { loginPage: r, routerNeedLogin: i, resToLogin: a, needLoginPage: [].concat(_toConsumableArray(c), _toConsumableArray(l)), notNeedLoginPage: [].concat(_toConsumableArray(u), _toConsumableArray(h)), loginPageInTabBar: Mt(r, o) };}(),$t = _ref29.loginPage,Kt = _ref29.routerNeedLogin,Bt = _ref29.resToLogin,Ht = _ref29.needLoginPage,Wt = _ref29.notNeedLoginPage,zt = _ref29.loginPageInTabBar;if (Ht.indexOf($t) > -1) throw new Error("Login page [".concat($t, "] should not be \"needLogin\", please check your pages.json"));function Jt(e) {var t = Nt(function (e) {var t = Ft(),n = e.charAt(0),s = e.split("?")[0];if ("/" === n) return s;var o = s.replace(/^\//, "").split("/"),r = t.split("/");r.pop();for (var _e26 = 0; _e26 < o.length; _e26++) {var _t15 = o[_e26];".." === _t15 ? r.pop() : "." !== _t15 && r.push(_t15);}return "" === r[0] && r.shift(), r.join("/");}(e));return !(Wt.indexOf(t) > -1) && (Ht.indexOf(t) > -1 || Kt.some(function (t) {return function (e, t) {return new RegExp(t).test(e);}(e, t);}));}function Vt(_ref32) {var e = _ref32.redirect;var t = Nt(e),n = Nt($t);return Ft() !== n && t !== n;}function Yt() {var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref33.api,t = _ref33.redirect;if (!t || !Vt({ 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;}($t, t);zt ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"), setTimeout(function () {uni[e]({ url: n });});}function Xt() {var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref34.url;var t = { abortLoginPageJump: !1, autoToLoginPage: !1 },n = function () {var _rt3 = rt(),e = _rt3.token,t = _rt3.tokenExpired;var n;if (e) {if (t < Date.now()) {var _e27 = "uni-id-token-expired";n = { errCode: _e27, errMsg: xt[_e27] };}} else {var _e28 = "uni-id-check-token-failed";n = { errCode: _e28, errMsg: xt[_e28] };}return n;}();if (Jt(e) && n) {n.uniIdRedirectUrl = e;if (D(E).length > 0) return setTimeout(function () {F(E, n);}, 0), t.abortLoginPageJump = !0, t;t.autoToLoginPage = !0;}return t;}function Gt() {!function () {var e = qt(),_Xt = Xt({ url: e }),t = _Xt.abortLoginPageJump,n = _Xt.autoToLoginPage;t || n && Yt({ api: "redirectTo", redirect: e });}();var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];var _loop2 = function _loop2(_t16) {var n = e[_t16];uni.addInterceptor(n, { invoke: function invoke(e) {var _Xt2 = Xt({ url: e.url }),t = _Xt2.abortLoginPageJump,s = _Xt2.autoToLoginPage;return t ? e : s ? (Yt({ api: n, redirect: e.url }), !1) : e;} });};for (var _t16 = 0; _t16 < e.length; _t16++) {_loop2(_t16);}}function Qt() {this.onResponse(function (e) {var t = e.type,n = e.content;var s = !1;switch (t) {case "cloudobject":s = function (e) {var t = e.errCode;return t in xt;}(n);break;case "clientdb":s = function (e) {var t = e.errCode;return t in Ut;}(n);}s && function () {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var t = D(E);$().then(function () {var n = qt();if (n && Vt({ redirect: n })) return t.length > 0 ? F(E, Object.assign({ uniIdRedirectUrl: n }, e)) : void ($t && Yt({ api: "navigateTo", redirect: n }));});}(n);});}function Zt(e) {!function (e) {e.onResponse = function (e) {N(C, e);}, e.offResponse = function (e) {q(C, e);};}(e), function (e) {e.onNeedLogin = function (e) {N(E, e);}, e.offNeedLogin = function (e) {q(E, e);}, jt && (k("uni-cloud-status").needLoginInit || (k("uni-cloud-status").needLoginInit = !0, $().then(function () {Gt.call(e);}), Bt && Qt.call(e)));}(e), function (e) {e.onRefreshToken = function (e) {N(R, e);}, e.offRefreshToken = function (e) {q(R, e);};}(e);}var en;var tn = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",nn = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;function sn() {var e = rt().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(en(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;}en = "function" != typeof atob ? function (e) {if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !nn.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, o = "", r = 0; r < e.length;) {t = tn.indexOf(e.charAt(r++)) << 18 | tn.indexOf(e.charAt(r++)) << 12 | (n = tn.indexOf(e.charAt(r++))) << 6 | (s = tn.indexOf(e.charAt(r++))), o += 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 o;} : atob;var on = s(function (e, t) {Object.defineProperty(t, "__esModule", { value: !0 });var n = "chooseAndUploadFile:ok",s = "chooseAndUploadFile:fail";function o(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 r(e, t, _ref35) {var s = _ref35.onChooseFile,o = _ref35.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 o = arguments.length > 3 ? arguments[3] : undefined;(t = Object.assign({}, t)).errMsg = n;var r = t.tempFiles,i = r.length;var a = 0;return new Promise(function (n) {for (; a < s;) {c();}function c() {var s = a++;if (s >= i) return void (!r.find(function (e) {return !e.url && !e.errMsg;}) && n(t));var u = r[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, o && o(e);} }).then(function (e) {u.url = e.fileID, s < i && c();}).catch(function (e) {u.errMsg = e.errMsg || e.message, s < i && c();});}});}(e, t, 5, o);});}t.initChooseAndUploadFile = function (e) {return function () {var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { type: "all" };return "image" === t.type ? r(e, function (e) {var t = e.count,n = e.sizeType,_e$sourceType = e.sourceType,r = _e$sourceType === void 0 ? ["album", "camera"] : _e$sourceType,i = e.extension;return new Promise(function (e, a) {uni.chooseImage({ count: t, sizeType: n, sourceType: r, extension: i, success: function success(t) {e(o(t, "image"));}, fail: function fail(e) {a({ errMsg: e.errMsg.replace("chooseImage:fail", s) });} });});}(t), t) : "video" === t.type ? r(e, function (e) {var t = e.camera,n = e.compressed,r = e.maxDuration,_e$sourceType2 = e.sourceType,i = _e$sourceType2 === void 0 ? ["album", "camera"] : _e$sourceType2,a = e.extension;return new Promise(function (e, c) {uni.chooseVideo({ camera: t, compressed: n, maxDuration: r, sourceType: i, extension: a, success: function success(t) {var n = t.tempFilePath,s = t.duration,r = t.size,i = t.height,a = t.width;e(o({ errMsg: "chooseVideo:ok", tempFilePaths: [n], tempFiles: [{ name: t.tempFile && t.tempFile.name || "", path: n, size: r, type: t.tempFile && t.tempFile.type || "", width: a, height: i, duration: s, fileType: "video", cloudPath: "" }] }, "video"));}, fail: function fail(e) {c({ errMsg: e.errMsg.replace("chooseVideo:fail", s) });} });});}(t), t) : r(e, function (e) {var t = e.count,n = e.extension;return new Promise(function (e, r) {var i = uni.chooseFile;if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (i = wx.chooseMessageFile), "function" != typeof i) return r({ errMsg: s + " 请指定 type 类型,该平台仅支持选择 image 或 video。" });i({ type: "all", count: t, extension: n, success: function success(t) {e(o(t));}, fail: function fail(e) {r({ errMsg: e.errMsg.replace("chooseFile:fail", s) });} });});}(t), t);};};}),rn = n(on);var an = "manual";function cn(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 _this18 = 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(_this18[t]);}), e;}, function (e, t) {if (_this18.loadtime === an) return;var n = !1;var s = [];for (var _o6 = 2; _o6 < e.length; _o6++) {e[_o6] !== t[_o6] && (s.push(e[_o6]), n = !0);}e[0] !== t[0] && (_this18.mixinDatacomPage.current = _this18.pageCurrent), _this18.mixinDatacomPage.size = _this18.pageSize, _this18.onMixinDatacomPropsChange(n, s);});}, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() {var _this19 = this;var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref36$getone = _ref36.getone,e = _ref36$getone === void 0 ? !1 : _ref36$getone,t = _ref36.success,n = _ref36.fail;this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomGet().then(function (n) {_this19.mixinDatacomLoading = !1;var _n$result = n.result,s = _n$result.data,o = _n$result.count;_this19.getcount && (_this19.mixinDatacomPage.count = o), _this19.mixinDatacomHasMore = s.length < _this19.pageSize;var r = e ? s.length ? s[0] : void 0 : s;_this19.mixinDatacomResData = r, t && t(r);}).catch(function (e) {_this19.mixinDatacomLoading = !1, _this19.mixinDatacomErrorMessage = e, n && n(e);}));}, mixinDatacomGet: function mixinDatacomGet() {var _n10;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 o = t.collection || this.collection;n = Array.isArray(o) ? (_n10 = n).collection.apply(_n10, _toConsumableArray(o)) : n.collection(o);var r = t.where || this.where;r && Object.keys(r).length && (n = n.where(r));var i = t.field || this.field;i && (n = n.field(i));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 l = t.orderby || this.orderby;l && (n = n.orderBy(l));var h = void 0 !== t.pageCurrent ? t.pageCurrent : this.mixinDatacomPage.current,d = void 0 !== t.pageSize ? t.pageSize : this.mixinDatacomPage.size,f = void 0 !== t.getcount ? t.getcount : this.getcount,g = void 0 !== t.gettree ? t.gettree : this.gettree,p = void 0 !== t.gettreepath ? t.gettreepath : this.gettreepath,m = { getCount: f },y = { limitLevel: void 0 !== t.limitlevel ? t.limitlevel : this.limitlevel, startWith: void 0 !== t.startwith ? t.startwith : this.startwith };return g && (m.getTree = y), p && (m.getTreePath = y), n = n.skip(d * (h - 1)).limit(d).get(m), n;} } };}function un(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, Object.assign(e.loadingOptions, t.loadingOptions), Object.assign(e.errorOptions, t.errorOptions), "object" == typeof t.secretMethods && (e.secretMethods = t.secretMethods), e;}({ customUI: !1, loadingOptions: { title: "加载中...", mask: !0 }, errorOptions: { type: "modal", retry: !1 } }, n);var _n11 = n,s = _n11.customUI,o = _n11.loadingOptions,r = _n11.errorOptions,i = !s;return new Proxy({}, { get: function get(s, c) {return function () {var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref37.fn,t = _ref37.interceptorName,n = _ref37.getCallbackArgs;return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee31() {var _len,s,_key,o,r,i,_args31 = arguments;return _regenerator.default.wrap(function _callee31$(_context31) {while (1) {switch (_context31.prev = _context31.next) {case 0:for (_len = _args31.length, s = new Array(_len), _key = 0; _key < _len; _key++) {s[_key] = _args31[_key];}o = n ? n({ params: s }) : {};_context31.prev = 2;_context31.next = 5;return A(I(t, "invoke"), _objectSpread({}, o));case 5:_context31.next = 7;return e.apply(void 0, s);case 7:r = _context31.sent;_context31.next = 10;return A(I(t, "success"), _objectSpread(_objectSpread({}, o), {}, { result: r }));case 10:return _context31.abrupt("return", r);case 13:_context31.prev = 13;_context31.t0 = _context31["catch"](2);i = _context31.t0;_context31.next = 18;return A(I(t, "fail"), _objectSpread(_objectSpread({}, o), {}, { error: i }));case 18:throw i;case 19:_context31.prev = 19;_context31.next = 22;return A(I(t, "complete"), i ? _objectSpread(_objectSpread({}, o), {}, { error: i }) : _objectSpread(_objectSpread({}, o), {}, { result: r }));case 22:return _context31.finish(19);case 23:case "end":return _context31.stop();}}}, _callee31, null, [[2, 13, 19, 23]]);}));}({ fn: function () {var _s11 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee33() {var l,_len2,u,_key2,h,_ref39,d,f,g,_yield,_e30,_e29,_args33 = arguments;return _regenerator.default.wrap(function _callee33$(_context33) {while (1) {switch (_context33.prev = _context33.next) {case 0:i && uni.showLoading({ title: o.title, mask: o.mask });for (_len2 = _args33.length, u = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {u[_key2] = _args33[_key2];}h = { name: t, type: a, data: { method: c, params: u } };"object" == typeof n.secretMethods && function (e, t) {var n = t.data.method,s = e.secretMethods[n];s && (t.secret = s);}(n, h);_context33.prev = 4;_context33.next = 7;return e.callFunction(h);case 7:l = _context33.sent;_context33.next = 13;break;case 10:_context33.prev = 10;_context33.t0 = _context33["catch"](4);l = { result: _context33.t0 };case 13:_ref39 = l.result || {}, d = _ref39.errCode, f = _ref39.errMsg, g = _ref39.newToken;if (!(i && uni.hideLoading(), g && g.token && g.tokenExpired && (it(g), F(R, _objectSpread({}, g))), d)) {_context33.next = 30;break;}if (!i) {_context33.next = 28;break;}if (!("toast" === r.type)) {_context33.next = 20;break;}uni.showToast({ title: f, icon: "none" });_context33.next = 28;break;case 20:if (!("modal" !== r.type)) {_context33.next = 22;break;}throw new Error("Invalid errorOptions.type: ".concat(r.type));case 22:_context33.next = 24;return _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee32() {var _ref41,e,t,n,s,o,_args32 = arguments;return _regenerator.default.wrap(function _callee32$(_context32) {while (1) {switch (_context32.prev = _context32.next) {case 0:_ref41 = _args32.length > 0 && _args32[0] !== undefined ? _args32[0] : {}, e = _ref41.title, t = _ref41.content, n = _ref41.showCancel, s = _ref41.cancelText, o = _ref41.confirmText;return _context32.abrupt("return", new Promise(function (r, i) {uni.showModal({ title: e, content: t, showCancel: n, cancelText: s, confirmText: o, success: function success(e) {r(e);}, fail: function fail() {r({ confirm: !1, cancel: !0 });} });}));case 2:case "end":return _context32.stop();}}}, _callee32);}))({ title: "提示", content: f, showCancel: r.retry, cancelText: "取消", confirmText: r.retry ? "重试" : "确定" });case 24:_yield = _context33.sent;_e30 = _yield.confirm;if (!(r.retry && _e30)) {_context33.next = 28;break;}return _context33.abrupt("return", s.apply(void 0, u));case 28:_e29 = new B({ code: d, message: f, requestId: l.requestId });throw _e29.detail = l.result, F(C, { type: L, content: _e29 }), _e29;case 30:return _context33.abrupt("return", (F(C, { type: L, content: l.result }), l.result));case 31:case "end":return _context33.stop();}}}, _callee33, null, [[4, 10]]);}));function s() {return _s11.apply(this, arguments);}return s;}(), interceptorName: "callObject", getCallbackArgs: function getCallbackArgs() {var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref42.params;return { objectName: t, methodName: c, params: e };} });} });};}function ln(_x30, _x31) {return _ln.apply(this, arguments);}function _ln() {_ln = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee35(e, t) {var n, _e34, s;return _regenerator.default.wrap(function _callee35$(_context35) {while (1) {switch (_context35.prev = _context35.next) {case 0:n = "http://".concat(e, ":").concat(t, "/system/ping");_context35.prev = 1;_context35.next = 4;return s = { url: n, timeout: 500 }, new Promise(function (e, t) {V.request(_objectSpread(_objectSpread({}, s), {}, { success: function success(t) {e(t);}, fail: function fail(e) {t(e);} }));});case 4:_e34 = _context35.sent;return _context35.abrupt("return", !(!_e34.data || 0 !== _e34.data.code));case 8:_context35.prev = 8;_context35.t0 = _context35["catch"](1);return _context35.abrupt("return", !1);case 11:case "end":return _context35.stop();}}}, _callee35, null, [[1, 8]]);}));return _ln.apply(this, arguments);}function hn(e) {if (e.initUniCloudStatus && "rejected" !== e.initUniCloudStatus) return;var t = Promise.resolve();var n;n = 1, t = new Promise(function (e, t) {setTimeout(function () {e();}, n);}), e.isReady = !1, e.isDefault = !1;var s = e.auth();e.initUniCloudStatus = "pending", e.initUniCloud = t.then(function () {return s.getLoginState();}).then(function (e) {return e ? Promise.resolve() : s.signInAnonymously();}).then(function () {if (!d) return Promise.resolve();if ("app" === g) {var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),_e31 = _uni$getSystemInfoSyn.osName,_t18 = _uni$getSystemInfoSyn.osVersion;"ios" === _e31 && function (e) {if (!e || "string" != typeof e) return 0;var t = e.match(/^(\d+)./);return t && t[1] ? parseInt(t[1]) : 0;}(_t18) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发模式生效,发行模式会连接uniCloud云端服务)");}if (d && e.__dev__.debugInfo) {var _e$__dev__$debugInfo = e.__dev__.debugInfo,_t19 = _e$__dev__$debugInfo.address,_n12 = _e$__dev__$debugInfo.servePort;return function () {var _ref43 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee34(e, t) {var n, _s12, _o7;return _regenerator.default.wrap(function _callee34$(_context34) {while (1) {switch (_context34.prev = _context34.next) {case 0:_s12 = 0;case 1:if (!(_s12 < e.length)) {_context34.next = 11;break;}_o7 = e[_s12];_context34.next = 5;return ln(_o7, t);case 5:if (!_context34.sent) {_context34.next = 8;break;}n = _o7;return _context34.abrupt("break", 11);case 8:_s12++;_context34.next = 1;break;case 11:return _context34.abrupt("return", { address: n, port: t });case 12:case "end":return _context34.stop();}}}, _callee34);}));return function (_x32, _x33) {return _ref43.apply(this, arguments);};}()(_t19, _n12);}}).then(function () {var _ref44 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref44.address,n = _ref44.port;if (!d) return Promise.resolve();var s = console["app" === g ? "error" : "warn"];if (t) e.__dev__.localAddress = t, e.__dev__.localPort = n;else if (e.__dev__.debugInfo) {var _t20 = "";"remote" === e.__dev__.debugInfo.initialLaunchType ? (e.__dev__.debugInfo.forceRemote = !0, _t20 = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs") : _t20 = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs", "web" === g && (_t20 += "\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式"), 0 === g.indexOf("mp-") && (_t20 += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), s(_t20);}}).then(function () {at(), e.isReady = !0, e.initUniCloudStatus = "fulfilled";}).catch(function (t) {console.error(t), e.initUniCloudStatus = "rejected";});}var dn = { tcb: ot, tencent: ot, aliyun: Q, private: ut };var fn = new ( /*#__PURE__*/function () {function _class4() {_classCallCheck(this, _class4);}_createClass(_class4, [{ key: "init", value: function init(e) {var t = {};var n = dn[e.provider];if (!n) throw new Error("未提供正确的provider参数");t = n.init(e), t.__dev__ = {}, t.__dev__.debugLog = d && ("web" === g && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === g);var s = p;d && s && !s.code && (t.__dev__.debugInfo = s), hn(t), t.reInit = function () {hn(this);}, yt(t), function (e) {var t = e.uploadFile;e.uploadFile = function (e) {return t.call(this, e);};}(t), Ct(t), function (e) {e.getCurrentUserInfo = sn, e.chooseAndUploadFile = rn.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() {return cn(e);} }), e.importObject = un(e);}(t);return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) {if (!t[e]) return;var n = t[e];t[e] = function () {return t.reInit(), n.apply(t, Array.from(arguments));}, t[e] = K(t[e], e).bind(t);}), t.init = this.init, t;} }]);return _class4;}())();(function () {var e = m;var t = {};if (e && 1 === e.length) t = e[0], fn = fn.init(t), fn.isDefault = !0;else {var _t21 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"];var _n13;_n13 = e && e.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : y ? "应用未关联服务空间,请在uniCloud目录右键关联服务空间" : "uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间", _t21.forEach(function (e) {fn[e] = function () {return console.error(_n13), Promise.reject(new B({ code: "SYS_ERR", message: _n13 }));};});}Object.assign(fn, { get mixinDatacom() {return cn(fn);} }), Zt(fn), fn.addInterceptor = S, fn.removeInterceptor = P, fn.interceptObject = b, d && "web" === g && (window.uniCloud = fn);})();var gn = fn;exports.default = gn; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 64), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 65)["default"])) /***/ }), /* 64 */ /*!***********************************!*\ !*** (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; /***/ }), /* 65 */ /*!*********************************************************!*\ !*** ./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) {Object.defineProperty(exports, "__esModule", { value: true });exports.Behavior = Behavior;exports.Component = Component;exports.Page = Page;exports.nextTick = exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 66));var _PROP_DEFAULT_VALUES;function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}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.");}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 _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;} 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 = _slicedToArray(_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 = {}, _defineProperty(_PROP_DEFAULT_VALUES, String, ''), _defineProperty(_PROP_DEFAULT_VALUES, Number, 0), _defineProperty(_PROP_DEFAULT_VALUES, Boolean, false), _defineProperty(_PROP_DEFAULT_VALUES, Object, null), _defineProperty(_PROP_DEFAULT_VALUES, Array, []), _defineProperty(_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 */ 64))) /***/ }), /* 66 */ /*!**********************!*\ !*** external "Vue" ***! \**********************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = Vue; /***/ }), /* 67 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/regenerator/index.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(/*! regenerator-runtime */ 68); /***/ }), /* 68 */ /*!************************************************************!*\ !*** ./node_modules/regenerator-runtime/runtime-module.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ // This method of obtaining a reference to the global object needs to be // kept identical to the way it is obtained in runtime.js var g = (function() { return this || (typeof self === "object" && self); })() || Function("return this")(); // Use `getOwnPropertyNames` because not all browsers support calling // `hasOwnProperty` on the global `self` object in a worker. See #183. var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; // Save the old regeneratorRuntime in case it needs to be restored later. var oldRuntime = hadRuntime && g.regeneratorRuntime; // Force reevalutation of runtime.js. g.regeneratorRuntime = undefined; module.exports = __webpack_require__(/*! ./runtime */ 69); if (hadRuntime) { // Restore the original runtime. g.regeneratorRuntime = oldRuntime; } else { // Remove the global property added by runtime.js. try { delete g.regeneratorRuntime; } catch(e) { g.regeneratorRuntime = undefined; } } /***/ }), /* 69 */ /*!*****************************************************!*\ !*** ./node_modules/regenerator-runtime/runtime.js ***! \*****************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ !(function(global) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; // More compressible than void 0. var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { // If regeneratorRuntime is defined globally and we're in a module, // make the exports object identical to regeneratorRuntime. module.exports = runtime; } // Don't bother evaluating the rest of this file if the runtime was // already defined globally. return; } // Define the runtime globally (as expected by generated code) as either // module.exports (if we're in a module) or a new, empty object. runtime = global.regeneratorRuntime = inModule ? module.exports : {}; function wrap(innerFn, outerFn, self, tryLocsList) { // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, // .throw, and .return methods. generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion // record like context.tryEntries[i].completion. This interface could // have been (and was previously) designed to take a closure to be // invoked without arguments, but in all the cases we care about we // already have an existing method we want to call, so there's no need // to create a new function object. We can even get away with assuming // the method takes exactly one argument, since that happens to be true // in every case, so we don't have to touch the arguments object. The // only additional allocation required is the completion record, which // has a stable shape and so hopefully should be cheap to allocate. function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as // breaking out of the dispatch switch statement. var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and // .constructor.prototype properties for functions that return Generator // objects. For full spec compliance, you may wish to configure your // minifier not to mangle the names of these two functions. function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that // don't natively support it. var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { // This environment has a native %IteratorPrototype%; use it instead // of the polyfill. IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; // Helper for defining the .next, .throw, and .return methods of the // Iterator interface in terms of a single ._invoke method. function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function(method) { prototype[method] = function(arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function(genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can // do is to check its .name property. (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function(genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; if (!(toStringTagSymbol in genFun)) { genFun[toStringTagSymbol] = "GeneratorFunction"; } } genFun.prototype = Object.create(Gp); return genFun; }; // Within the body of any async function, `await x` is transformed to // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test // `hasOwn.call(value, "__await")` to determine if the yielded value is // meant to be awaited. runtime.awrap = function(arg) { return { __await: arg }; }; function AsyncIterator(generator) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return Promise.resolve(value.__await).then(function(value) { invoke("next", value, resolve, reject); }, function(err) { invoke("throw", err, resolve, reject); }); } return Promise.resolve(value).then(function(unwrapped) { // When a yielded Promise is resolved, its final value becomes // the .value of the Promise<{value,done}> result for the // current iteration. result.value = unwrapped; resolve(result); }, function(error) { // If a rejected Promise was yielded, throw the rejection back // into the async generator function so it can be handled there. return invoke("throw", error, resolve, reject); }); } } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new Promise(function(resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = // If enqueue has been called before, then we want to wait until // all previous Promises have been resolved before calling invoke, // so that results are always delivered in the correct order. If // enqueue has not been called before, then it is important to // call invoke immediately, without waiting on a callback to fire, // so that the async generator function has the opportunity to do // any necessary setup in a predictable way. This predictability // is why the Promise constructor synchronously invokes its // executor callback, and why async functions synchronously // execute code before the first await. Since we implement simple // async functions in terms of async generators, it is especially // important to get this right, even though it requires care. previousPromise ? previousPromise.then( callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later // invocations of the iterator. callInvokeWithMethodAndArg ) : callInvokeWithMethodAndArg(); } // Define the unified helper method that is used to implement .next, // .throw, and .return (see defineIteratorMethods). this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; runtime.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of // AsyncIterator objects; they just return a Promise for the value of // the final result produced by the iterator. runtime.async = function(innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator( wrap(innerFn, outerFn, self, tryLocsList) ); return runtime.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. : iter.next().then(function(result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } // Be forgiving, per 25.3.3.3.3 of the spec: // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { // Setting context._sent for legacy support of Babel's // function.sent implementation. context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { // If an exception is thrown from innerFn, we leave state === // GenStateExecuting and loop back for another invocation. state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; // Dispatch the exception by looping back around to the // context.dispatchException(context.arg) call above. context.method = "throw"; context.arg = record.arg; } } }; } // Call delegate.iterator[context.method](context.arg) and handle the // result, either by returning a { value, done } result from the // delegate iterator, or by modifying context.method and context.arg, // setting context.delegate to null, and returning the ContinueSentinel. function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { // A .throw or .return when the delegate iterator has no .throw // method always terminates the yield* loop. context.delegate = null; if (context.method === "throw") { if (delegate.iterator.return) { // If the delegate iterator has a return method, give it a // chance to clean up. context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { // If maybeInvokeDelegate(context) changed context.method from // "return" to "throw", let that override the TypeError below. return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError( "The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (! info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { // Assign the result of the finished delegate to the temporary // variable specified by delegate.resultName (see delegateYield). context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the // exception, let the outer generator proceed normally. If // context.method was "next", forget context.arg since it has been // "consumed" by the delegate iterator. If context.method was // "return", allow the original .return call to continue in the // outer generator. if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { // Re-yield the result returned by the delegate method. return info; } // The delegate iterator is finished, so forget it and continue with // the outer generator. context.delegate = null; return ContinueSentinel; } // Define Generator.prototype.{next,throw,return} in terms of the // unified ._invoke helper method. defineIteratorMethods(Gp); Gp[toStringTagSymbol] = "Generator"; // A Generator should always return itself as the iterator object when the // @@iterator function is called on it. Some browsers' implementations of the // iterator prototype chain incorrectly implement this, causing the Generator // object to not be returned from this call. This ensures that doesn't happen. // See https://github.com/facebook/regenerator/issues/274 for more details. Gp[iteratorSymbol] = function() { return this; }; Gp.toString = function() { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (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) { // The root entry object (effectively a try statement without a catch // or a finally block) gives us a place to store values thrown from // locations where there is no enclosing try statement. this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function(object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); // Rather than returning an object with a next method, we keep // things simple and return the next function itself. return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } // To avoid creating an additional object, we just hang the .value // and .done properties off the next function object itself. This // also ensures that the minifier will not anonymize the function. next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } // Return an iterator with no values. return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function(skipTempReset) { this.prev = 0; this.next = 0; // Resetting context._sent for legacy support of Babel's // function.sent implementation. this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { // Not sure about the optimal order of these conditions: if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function() { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function(exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { // If the dispatched exception was caught by a catch block, // then let that catch block handle the exception normally. context.method = "next"; context.arg = undefined; } return !! caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { // Exception thrown outside of any try block that could handle // it, so set the completion value of the entire function to // throw the exception. return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function(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; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { // Ignore the finally entry if control is not jumping to a // location outside the try/catch block. finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function(record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function(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 (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } // The context.catch method must only be called with a location // argument that corresponds to a known catch block. throw new Error("illegal catch attempt"); }, delegateYield: function(iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { // Deliberately forget the last sent value so that we don't // accidentally pass it on to the delegate. this.arg = undefined; } return ContinueSentinel; } }; })( // In sloppy mode, unbound `this` refers to the global object, fallback to // Function constructor if we're in global strict mode. That is sadly a form // of indirect eval which violates Content Security Policy. (function() { return this || (typeof self === "object" && self); })() || Function("return this")() ); /***/ }), /* 70 */ /*!*************************************************************!*\ !*** ./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) {Object.defineProperty(exports, "__esModule", { value: true });exports.compileI18nJsonStr = compileI18nJsonStr;exports.hasI18nJson = hasI18nJson;exports.initVueI18n = initVueI18n;exports.isI18nStr = isI18nStr;exports.normalizeLocale = normalizeLocale;exports.parseI18nJson = parseI18nJson;exports.resolveLocale = resolveLocale;exports.isString = exports.LOCALE_ZH_HANT = exports.LOCALE_ZH_HANS = exports.LOCALE_FR = exports.LOCALE_ES = exports.LOCALE_EN = exports.I18n = exports.Formatter = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}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.");}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 _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var isArray = Array.isArray; var isObject = function isObject(val) {return val !== null && typeof val === 'object';}; var defaultDelimiters = ['{', '}'];var BaseFormatter = /*#__PURE__*/function () { function BaseFormatter() {_classCallCheck(this, BaseFormatter); this._caches = Object.create(null); }_createClass(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 = _slicedToArray(_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 = 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.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 lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]); 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;_classCallCheck(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); } }_createClass(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 (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 */ 64))) /***/ }), /* 71 */ /*!***********************************************************************************!*\ !*** D:/Workspace/zy/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/index", "style": { "navigationStyle": "custom" } }, { "path": "pages/index/monitor", "style": { "navigationStyle": "custom" } }], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "pageOrientation": "landscape" } };exports.default = _default; /***/ }), /* 72 */ /*!**********************************************************************!*\ !*** D:/Workspace/zy/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; /***/ }), /* 73 */ /*!****************************************************************************************************!*\ !*** D:/Workspace/zy/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\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\nObject.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}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.\");}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 _iterableToArrayLimit(arr, i) {if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i[\"return\"] != null) _i[\"return\"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}\n\nvar config = {\n version: 'v2.3.7-20220122',\n yAxisWidth: 15,\n yAxisSplit: 5,\n xAxisHeight: 22,\n xAxisLineHeight: 22,\n legendHeight: 15,\n yAxisTitleWidth: 15,\n padding: [10, 10, 10, 10],\n pixelRatio: 1,\n rotate: false,\n columePadding: 3,\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 xAxisTextPadding: 3,\n titleColor: '#333333',\n titleFontSize: 20,\n subtitleColor: '#999999',\n subtitleFontSize: 15,\n toolTipPadding: 3,\n toolTipBackground: '#000000',\n toolTipOpacity: 0.7,\n toolTipLineHeight: 20,\n radarLabelTextMargin: 13,\n gaugeLabelTextMargin: 13 };\n\n\nvar assign = function assign(target) {for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {varArgs[_key2 - 1] = arguments[_key2];}\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]\" ?\n 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};\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// 经纬度转墨卡托\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}\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}\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 num++;\n } else {\n num--;\n }\n }\n return num / multiple;\n}\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}\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 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}\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}\n\nfunction calRotateTranslate(x, y, h) {\n var xv = x;\n var yv = h - y;\n var transX = xv + (h - yv - xv) / Math.sqrt(2);\n transX *= -1;\n var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2);\n return {\n transX: transX,\n transY: transY };\n\n}\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,\n 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,\n 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\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}\n\nfunction convertCoordinateOrigin(x, y, center) {\n return {\n x: center.x + x,\n y: center.y - y };\n\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}\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}\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 item.legendShape = \"rect\";\n break;\n case 'area':\n item.legendShape = \"triangle\";\n break;\n case 'bar':\n item.legendShape = \"rect\";\n break;\n default:\n item.legendShape = \"circle\";}\n\n }\n }\n return series;\n}\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}\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}\n\nfunction measureText(text, fontSize, context) {\n var width = 0;\n text = String(text);\n\n\n\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}\n\nfunction dataCombine(series) {\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data);\n }, []);\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}\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}\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 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}\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}\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}\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 points = calPoints[0][index];\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 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}\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}\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}\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}\n\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = { index: -1, group: [] };\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 _i2 = 0; _i2 < calPoints.length; _i2++) {\n timePoints[_i2] = Array(calPoints[_i2].length);\n for (var j = 0; j < calPoints[_i2].length; j++) {\n timePoints[_i2][j] = Math.abs(calPoints[_i2][j].x - currentPoints.x);\n }\n };\n var pointValue = Array(timePoints.length);\n var pointIndex = Array(timePoints.length);\n for (var _i3 = 0; _i3 < timePoints.length; _i3++) {\n pointValue[_i3] = Math.min.apply(null, timePoints[_i3]);\n pointIndex[_i3] = timePoints[_i3].indexOf(pointValue[_i3]);\n }\n var minValue = Math.min.apply(null, pointValue);\n current.index = [];\n for (var _i4 = 0; _i4 < pointValue.length; _i4++) {\n if (pointValue[_i4] == minValue) {\n current.group.push(_i4);\n current.index.push(pointIndex[_i4]);\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}\n\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = { index: -1, group: [] };\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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 });\n if (items.length) {\n newPoints.push(items);\n }\n return newPoints;\n}\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 itemWidth = shapeWidth + shapeRight + measureText(item.name || '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 _i5 = 0; _i5 < lineNum; _i5++) {\n var temp = series.slice(_i5 * maxLength, _i5 * maxLength + maxLength);\n _currentRow.push(temp);\n }\n legendData.points = _currentRow;\n if (_currentRow.length) {\n for (var _i6 = 0; _i6 < _currentRow.length; _i6++) {\n var _item = _currentRow[_i6];\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 _i7 = 0; _i7 < legendData.widthArr.length; _i7++) {\n _legendWidth += legendData.widthArr[_i7];\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}\n\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\n var result = {\n angle: 0,\n xAxisHeight: config.xAxisHeight };\n\n var categoriesTextLenth = categories.map(function (item) {\n return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\n });\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\n\n if (opts.xAxis.rotateLabel == true && 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 return result;\n}\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 (typeof 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 (typeof 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\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}\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}\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 = [];var _loop2 = function _loop2(\n 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);};for (var i = 0; i < series.length; i++) {_loop2(i);\n }\n return data;\n}\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 _i8 = 0; _i8 < series.length; _i8++) {\n var _item2 = series[_i8];\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 _i9 = 0; _i9 < series.length; _i9++) {\n var _item3 = series[_i9];\n _item3._start_ = _start_;\n _start_ += 2 * _item3._proportion_ * Math.PI;\n }\n return series;\n}\n\nfunction getFunnelDataPoints(series, radius, type, eachSpacing) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n series = series.sort(function (a, b) {\n return parseInt(b.data) - parseInt(a.data);\n });\n for (var i = 0; i < series.length; i++) {\n if (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 (type !== 'pyramid') {\n series.reverse();\n }\n return series;\n}\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 _i10 = 0; _i10 < series.length; _i10++) {\n var _item4 = series[_i10];\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 _i11 = 0; _i11 < series.length; _i11++) {\n var _item5 = series[_i11];\n _item5._start_ = _start_;\n _start_ += 2 * _item5._rose_proportion_ * Math.PI;\n }\n return series;\n}\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.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}\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}\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 _i12 = 0; _i12 < categories.length; _i12++) {\n if (item.data <= categories[_i12].value) {\n item.color = categories[_i12].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}\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}\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}\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}\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 = 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 (index > 0) {\n item.width -= 2 * border;\n }\n return item;\n });\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}\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}\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 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 + index * eachSpacing);\n });\n if (opts.xAxis.boundaryGap !== 'justify') {\n if (opts.enableScroll === true) {\n xAxisPoints.push(startX + 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}\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}\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 (typeof 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}\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 (typeof 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}\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\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 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}\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 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}\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 (typeof 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 (typeof 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 //为了兼容v1.9.0之前的项目\n // if (index > -1) {\n // if (typeof opts.yAxis.data[index].min === 'number') {\n // minData = Math.min(opts.yAxis.data[index].min, minData);\n // }\n // if (typeof opts.yAxis.data[index].max === 'number') {\n // maxData = Math.max(opts.yAxis.data[index].max, maxData);\n // }\n // } else {\n // if (typeof opts.yAxis.min === 'number') {\n // minData = Math.min(opts.yAxis.min, minData);\n // }\n // if (typeof opts.yAxis.max === 'number') {\n // maxData = Math.max(opts.yAxis.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 = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;\n var maxRange = yData.max === undefined || yData.min === null ? dataRange.maxRange : yData.max;\n var range = [];\n var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\n for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range.reverse();\n}\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);var _loop3 = function _loop3(\n\n _i13) {\n var yData = opts.yAxis.data[_i13];\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) {return val + (yData.unit || '');};\n }\n yData.categories = yData.categories || opts.categories;\n rangesArr[_i13] = yData.categories;\n } else {\n if (!yData.formatter) {\n yData.formatter = function (val) {return val.toFixed(yData.tofix) + (yData.unit || '');};\n }\n rangesArr[_i13] = getYAxisTextList(newSeries[_i13], opts, config, columnstyle.type, yData, _i13);\n }\n var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\n yAxisWidthArr[_i13] = {\n position: yData.position ? yData.position : 'left',\n width: 0 };\n\n rangesFormatArr[_i13] = rangesArr[_i13].map(function (items) {\n items = yData.formatter(items);\n yAxisWidthArr[_i13].width = Math.max(yAxisWidthArr[_i13].width, measureText(items, yAxisFontSizes, context) + 5);\n return items;\n });\n var calibration = yData.calibration ? 4 * opts.pix : 0;\n yAxisWidthArr[_i13].width += calibration + 3 * opts.pix;\n if (yData.disabled === true) {\n yAxisWidthArr[_i13].width = 0;\n }};for (var _i13 = 0; _i13 < YLength; _i13++) {_loop3(_i13);\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 if (!opts.yAxis.formatter) {\n opts.yAxis.formatter = function (val) {return val + (opts.yAxis.unit || '');};\n }\n } else {\n if (!opts.yAxis.formatter) {\n opts.yAxis.formatter = function (val) {return val.toFixed(opts.yAxis.tofix) + (opts.yAxis.unit || '');};\n }\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\n }\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0 };\n\n var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\n rangesFormatArr[0] = rangesArr[0].map(function (item) {\n item = opts.yAxis.formatter(item);\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 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: opts.yAxis.formatter };\n\n if (opts.type === 'bar') {\n opts.yAxis.data[0].categories = opts.categories;\n opts.yAxis.data[0].type = 'categories';\n }\n }\n }\n return {\n rangesFormat: rangesFormatArr,\n ranges: rangesArr,\n yAxisWidth: yAxisWidthArr };\n\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 = ranges[i].shift();\n var minVal = ranges[i].pop();\n var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\n item = opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item) : item.toFixed(0);\n items.push(String(item));\n }\n return items;\n}\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}\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}\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 === 'triangle') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n}\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}\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 (typeof 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) : 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}\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 (typeof data[index] === 'object' && data[index] !== null) {\n value = data[index].value;\n }\n var formatVal = series.formatter ? series.formatter(value, index) : 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}\n\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\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) : 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\n}\n\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\n var radarOption = opts.extra.radar || {};\n radius += config.radarLabelTextMargin * opts.pix;\n angleList.forEach(function (angle, index) {\n var pos = {\n x: radius * Math.cos(angle),\n y: radius * 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\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, series) {\n var text = item.formatter ? item.formatter(item, index, series) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\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\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 _i14 = 0; _i14 < textObjectCollection.length; _i14++) {\n var _item6 = textObjectCollection[_i14];\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, 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}\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;\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}\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 yAxisIndex: 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 = opts.yAxis.formatter ? opts.yAxis.formatter(item.value) : item.value;\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[0].width;\n var bgStartX = opts.area[3] - textWidth - config.toolTipPadding * 2;\n var bgEndX = opts.area[3];\n var bgWidth = bgEndX - bgStartX;\n var textX = bgEndX - 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, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.setFontSize(config.fontSize);\n context.setTextAlign('right');\n context.setFillStyle(item.labelFontColor);\n context.fillText(String(labelText), textX, textY + 0.5 * config.fontSize);\n context.stroke();\n context.setTextAlign('left');\n }\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,bgEndX = void 0,bgWidth = void 0;\n if (widthArr[i].position == 'left') {\n bgStartX = tStartLeft - widthArr[i].width;\n bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\n } else {\n bgStartX = tStartRight;\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 *\n 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}\n\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08 },\n opts.extra.column);\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 - eachSpacing / 2, startY, eachSpacing, endY - startY);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\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}\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({ text: opts.categories[opts.tooltip.index], color: null });\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 == '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 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,\n 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,\n false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,\n 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 context.closePath();\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}\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 }var _columnOption$barBord = _slicedToArray(\n columnOption.barBorderRadius, 4),r0 = _columnOption$barBord[0],r1 = _columnOption$barBord[1],r2 = _columnOption$barBord[2],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 - 2, item.y);\n context.lineTo(startX + item.width - 2, 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 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 _i15 = 0; _i15 < points.length; _i15++) {\n var _item7 = points[_i15];\n if (_item7 !== null && _i15 > leftNum && _i15 < 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 - 2, height);\n context.closePath();\n context.fill();\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 if (seriesIndex == 0) {\n for (var _i16 = 0; _i16 < points.length; _i16++) {\n var _item8 = points[_i16];\n if (_item8 !== null && _i16 > leftNum && _i16 < rightNum) {\n //画背景颜色\n context.beginPath();\n context.setFillStyle(columnOption.meterFillColor);\n var startX = _item8.x - _item8.width / 2;\n var height = opts.height - _item8.y - opts.area[2];\n if (columnOption.barBorderCircle) {\n var barBorderRadius = (_item8.width - columnOption.meterBorder * 2) / 2;\n if (barBorderRadius > height) {\n barBorderRadius = height;\n }\n context.moveTo(startX + columnOption.meterBorder, opts.height - opts.area[2]);\n context.lineTo(startX + columnOption.meterBorder, _item8.y + barBorderRadius);\n context.arc(startX + _item8.width / 2, _item8.y + barBorderRadius, barBorderRadius, -Math.PI, 0);\n context.lineTo(startX + _item8.width - columnOption.meterBorder, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.fill();\n } else {\n context.moveTo(startX, _item8.y);\n context.fillRect(startX, _item8.y, _item8.width, height);\n context.closePath();\n context.fill();\n }\n //画边框线\n if (columnOption.meterBorder > 0) {\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(columnOption.meterBorder * opts.pix);\n if (columnOption.barBorderCircle) {\n var barBorderRadius = (_item8.width - columnOption.meterBorder) / 2;\n if (barBorderRadius > height) {\n barBorderRadius = height;\n }\n context.moveTo(startX + columnOption.meterBorder * 0.5, opts.height - opts.area[2]);\n context.lineTo(startX + columnOption.meterBorder * 0.5, _item8.y + barBorderRadius);\n context.arc(startX + _item8.width / 2, _item8.y + barBorderRadius - columnOption.meterBorder * 0.5, barBorderRadius, -Math.PI, 0);\n context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, opts.height - opts.area[2]);\n } else {\n context.moveTo(startX + columnOption.meterBorder * 0.5, _item8.y + height);\n context.lineTo(startX + columnOption.meterBorder * 0.5, _item8.y + columnOption.meterBorder * 0.5);\n context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, _item8.y + columnOption.meterBorder * 0.5);\n context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, _item8.y + height);\n }\n context.stroke();\n }\n }\n };\n } else {\n for (var _i17 = 0; _i17 < points.length; _i17++) {\n var _item9 = points[_i17];\n if (_item9 !== null && _i17 > leftNum && _i17 < rightNum) {\n context.beginPath();\n context.setFillStyle(_item9.color || eachSeries.color);\n var startX = _item9.x - _item9.width / 2;\n var height = opts.height - _item9.y - opts.area[2];\n if (columnOption.barBorderCircle) {\n var barBorderRadius = _item9.width / 2;\n if (barBorderRadius > height) {\n barBorderRadius = height;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.arc(startX + barBorderRadius, _item9.y + barBorderRadius, barBorderRadius, -Math.PI, -Math.PI / 2);\n context.arc(startX + _item9.width - barBorderRadius, _item9.y + barBorderRadius, barBorderRadius, -Math.PI / 2, 0);\n context.lineTo(startX + _item9.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.fill();\n } else {\n context.moveTo(startX, _item9.y);\n context.fillRect(startX, _item9.y, _item9.width, height);\n context.closePath();\n context.fill();\n }\n }\n };\n }\n break;}\n\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}\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 _i18 = 0; _i18 < points.length; _i18++) {\n var item = points[_i18];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && _i18 > leftNum && _i18 < 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 _height2 = item.heigh;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }var _columnOption$barBord2 = _slicedToArray(\n columnOption.barBorderRadius, 4),r0 = _columnOption$barBord2[0],r1 = _columnOption$barBord2[1],r2 = _columnOption$barBord2[2],r3 = _columnOption$barBord2[3];\n var minRadius = Math.min(width / 2, _height2 / 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\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 - 2);\n context.lineTo(startX, startY + item.width - 2);\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 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 _i19 = 0; _i19 < points.length; _i19++) {\n var _item10 = points[_i19];\n if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {\n context.beginPath();\n var fillColor = _item10.color || eachSeries.color;\n var startX = _item10.x0;\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item10.y - _item10.width / 2);\n context.fillRect(startX, _item10.y - _item10.width / 2, _item10.height, _item10.width - 2);\n context.closePath();\n context.fill();\n }\n };\n break;}\n\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}\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) {//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,\n 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 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}\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 if (areaOption.type === 'straight') {\n for (var _j = 0; _j < _points2.length; _j++) {\n var _item11 = _points2[_j];\n if (startPoint == 0 && _item11.x > leftSpace) {\n context.moveTo(_item11.x, _item11.y);\n startPoint = 1;\n }\n if (_j > 0 && _item11.x > leftSpace && _item11.x < rightSpace) {\n context.lineTo(_item11.x, _item11.y);\n }\n };\n }\n if (areaOption.type === 'step') {\n for (var _j2 = 0; _j2 < _points2.length; _j2++) {\n var _item12 = _points2[_j2];\n if (startPoint == 0 && _item12.x > leftSpace) {\n context.moveTo(_item12.x, _item12.y);\n startPoint = 1;\n }\n if (_j2 > 0 && _item12.x > leftSpace && _item12.x < rightSpace) {\n context.lineTo(_item12.x, _points2[_j2 - 1].y);\n context.lineTo(_item12.x, _item12.y);\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 _item13 = _points2[0];\n context.moveTo(_item13.x - eachSpacing / 2, _item13.y);\n context.lineTo(_item13.x + eachSpacing / 2, _item13.y);\n context.lineTo(_item13.x + eachSpacing / 2, endY);\n context.lineTo(_item13.x - eachSpacing / 2, endY);\n context.moveTo(_item13.x - eachSpacing / 2, _item13.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 _item14 = _points2[_j3];\n if (_startPoint == 0 && _item14.x > leftSpace) {\n context.moveTo(_item14.x, _item14.y);\n _startPoint = 1;\n }\n if (_j3 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {\n var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);\n context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item14.x, _item14.y);\n }\n };\n }\n if (areaOption.type === 'straight') {\n for (var _j4 = 0; _j4 < _points2.length; _j4++) {\n var _item15 = _points2[_j4];\n if (_startPoint == 0 && _item15.x > leftSpace) {\n context.moveTo(_item15.x, _item15.y);\n _startPoint = 1;\n }\n if (_j4 > 0 && _item15.x > leftSpace && _item15.x < rightSpace) {\n context.lineTo(_item15.x, _item15.y);\n }\n };\n }\n if (areaOption.type === 'step') {\n for (var _j5 = 0; _j5 < _points2.length; _j5++) {\n var _item16 = _points2[_j5];\n if (_startPoint == 0 && _item16.x > leftSpace) {\n context.moveTo(_item16.x, _item16.y);\n _startPoint = 1;\n }\n if (_j5 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {\n context.lineTo(_item16.x, _points2[_j5 - 1].y);\n context.lineTo(_item16.x, _item16.y);\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\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}\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}\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\n if (opts.dataLabel !== false && process === 1) {\n points.forEach(function (item, index) {\n context.beginPath();\n var fontSize = series.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.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}\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 if (lineOption.type === 'straight') {\n for (var _j6 = 0; _j6 < points.length; _j6++) {\n var _item17 = points[_j6];\n if (startPoint == 0 && _item17.x > leftSpace) {\n context.moveTo(_item17.x, _item17.y);\n startPoint = 1;\n }\n if (_j6 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {\n context.lineTo(_item17.x, _item17.y);\n }\n };\n }\n if (lineOption.type === 'step') {\n for (var _j7 = 0; _j7 < points.length; _j7++) {\n var _item18 = points[_j7];\n if (startPoint == 0 && _item18.x > leftSpace) {\n context.moveTo(_item18.x, _item18.y);\n startPoint = 1;\n }\n if (_j7 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {\n context.lineTo(_item18.x, points[_j7 - 1].y);\n context.lineTo(_item18.x, _item18.y);\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}\n\nfunction drawMixDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\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 xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\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 _height3 = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }var _columnOption$barBord3 = _slicedToArray(\n columnOption.barBorderRadius, 4),r0 = _columnOption$barBord3[0],r1 = _columnOption$barBord3[1],r2 = _columnOption$barBord3[2],r3 = _columnOption$barBord3[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 - 2, item.y);\n context.lineTo(startX + item.width - 2, 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 _i20 = 0; _i20 < _splitPointList.length; _i20++) {\n var _points3 = _splitPointList[_i20];\n // 绘制区域数据\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setFillStyle(hexToRgb(eachSeries.color, 0.2));\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 _item19 = _points3[j];\n if (startPoint == 0 && _item19.x > leftSpace) {\n context.moveTo(_item19.x, _item19.y);\n startPoint = 1;\n }\n if (j > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points3, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item19.x, _item19.y);\n }\n };\n } else {\n for (var _j8 = 0; _j8 < _points3.length; _j8++) {\n var _item20 = _points3[_j8];\n if (startPoint == 0 && _item20.x > leftSpace) {\n context.moveTo(_item20.x, _item20.y);\n startPoint = 1;\n }\n if (_j8 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {\n context.lineTo(_item20.x, _item20.y);\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 _item21 = _points3[0];\n context.moveTo(_item21.x - eachSpacing / 2, _item21.y);\n context.lineTo(_item21.x + eachSpacing / 2, _item21.y);\n context.lineTo(_item21.x + eachSpacing / 2, endY);\n context.lineTo(_item21.x - eachSpacing / 2, endY);\n context.moveTo(_item21.x - eachSpacing / 2, _item21.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(2 * 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 _item22 = points[_j9];\n if (_startPoint2 == 0 && _item22.x > leftSpace) {\n context.moveTo(_item22.x, _item22.y);\n _startPoint2 = 1;\n }\n if (_j9 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, _j9 - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,\n _item22.x, _item22.y);\n }\n }\n } else {\n for (var _j10 = 0; _j10 < points.length; _j10++) {\n var _item23 = points[_j10];\n if (_startPoint2 == 0 && _item23.x > leftSpace) {\n context.moveTo(_item23.x, _item23.y);\n _startPoint2 = 1;\n }\n if (_j10 > 0 && _item23.x > leftSpace && _item23.x < rightSpace) {\n context.lineTo(_item23.x, _item23.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}\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 == '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\n}\n\nfunction drawXAxis(categories, opts, config, context) {\n\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 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\n var ratio = Math.ceil(categories.length / maxXAxisListLength);\n\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) : 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 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 } else {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\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 offset = -textWidth;\n if (boundaryGap == 'center') {\n offset += eachSpacing / 2;\n }\n var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + xAxisFontSize / 2 + 5, opts.height),\n transX = _calRotateTranslate.transX,\n transY = _calRotateTranslate.transY;\n\n context.rotate(-1 * config._xAxisTextAngle_);\n context.translate(transX, transY);\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + 5);\n context.closePath();\n context.stroke();\n context.restore();\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}\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 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}\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 var fillEndY = endY + config.xAxisHeight;\n if (opts.xAxis.scrollShow) {\n fillEndY -= 3 * opts.pix;\n }\n if (opts.xAxis.rotateLabel) {\n fillEndY = opts.height - opts.area[2] + opts.fontSize * opts.pix / 2;\n }\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, fillEndY);\n }\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\n context.fillRect(endX, 0, opts.width, fillEndY);\n }\n context.closePath();\n context.stroke();\n\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) {var _loop4 = function _loop4(\n i) {\n var yData = opts.yAxis.data[i];\n points = [];\n if (yData.type === 'categories') {\n for (var _i21 = 0; _i21 <= yData.categories.length; _i21++) {\n points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i21);\n }\n } else {\n for (var _i22 = 0; _i22 <= opts.yAxis.splitNumber; _i22++) {\n points.push(opts.area[0] + eachSpacing * _i22);\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] ? points[index] : endY;\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\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 }};for (var i = 0; i < opts.yAxis.data.length; i++) {var points;_loop4(i);\n }\n }\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 context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\n context.fillText(item.name, startX, startY + fontTrans);\n context.closePath();\n context.stroke();\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n startX += measureText(item.name, fontSize, context) + itemGap;\n item.area[2] = startX;\n } else {\n item.area[2] = startX + measureText(item.name, fontSize, context) + itemGap;;\n startX -= shapeWidth + shapeRight;\n startY += lineHeight;\n }\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\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 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 var valid = false;\n for (var i = 0, len = series.length; i < len; i++) {\n if (series[i].data > 0) {\n valid = true;\n break;\n }\n }\n if (valid) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\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}\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 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\n if (opts.dataLabel !== false && process === 1) {\n var valid = false;\n for (var i = 0, len = series.length; i < len; i++) {\n if (series[i].data > 0) {\n valid = true;\n break;\n }\n }\n if (valid) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series };\n\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 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 arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\n\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('round');\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, false);\n } else {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, false);\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('round');\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, false);\n context.stroke();\n }\n drawRingTitle(opts, config, context, centerPosition);\n return {\n center: centerPosition,\n radius: radius,\n series: series };\n\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 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 = getArcbarDataPoints(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 _i23 = 0; _i23 < categories.length; _i23++) {\n var eachCategories = categories[_i23];\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 _i24 = 0; _i24 < gaugeOption.splitLine.splitNumber + 1; _i24++) {\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 _i25 = 0; _i25 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i25++) {\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 _i26 = 0; _i26 < series.length; _i26++) {\n var eachSeries = series[_i26];\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}\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 opacity: 0.2,\n gridCount: 3,\n border: false,\n borderWidth: 2 },\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 // 画分割线\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n coordinateAngle.forEach(function (angle) {\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.lineTo(pos.x, pos.y);\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 /\n 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 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 context.setFillStyle(hexToRgb(eachSeries.color, radarOption.opacity));\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 // 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\n return {\n center: centerPosition,\n radius: radius,\n angleList: coordinateAngle };\n\n}\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 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 getBoundingBox(data) {\n var bounds = {},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}\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}\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}\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}\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}\n\n\nfunction drawMapDataPoints(series, opts, config, context) {\n var mapOption = assign({}, {\n border: true,\n mercator: false,\n borderWidth: 1,\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, mapOption.fillOpacity));\n if (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 if (opts.dataLabel == true) {\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 text = data[i].properties.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(data[i].textColor || opts.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}\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,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 +\n opts.height / 2];\n\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 points[i].area = area;\n }\n break;\n case 'vertical':var\n Spin = function Spin() {\n //获取均匀随机值,是否旋转,旋转的概率为(1-0.5)\n if (Math.random() > 0.7) {\n return true;\n } else {\n return false;\n };\n };;\n for (var _i27 = 0; _i27 < points.length; _i27++) {\n var _text = points[_i27].name;\n var _tHeight = points[_i27].textSize * opts.pix;\n var _tWidth = measureText(_text, _tHeight, context);\n var isSpin = Spin();\n var _x = void 0,_y = void 0,_area = void 0,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 if (isSpin) {\n points[_i27].area = areav;\n points[_i27].areav = _area;\n } else {\n points[_i27].area = _area;\n }\n points[_i27].rotate = isSpin;\n };\n break;}\n\n return points;\n}\n\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}\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 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 series = getFunnelDataPoints(series, radius, funnelOption.type, 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 < series.length; i++) {\n if (i == series.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth, -eachSpacing);\n context.lineTo(-series[i].radius - activeWidth, 0);\n context.lineTo(series[i].radius + activeWidth, 0);\n context.lineTo(activeWidth, -eachSpacing);\n context.lineTo(-activeWidth, -eachSpacing);\n context.closePath();\n context.fill();\n }\n }\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[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(series[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, -eachSpacing);\n context.lineTo(-series[i].radius, 0);\n context.lineTo(series[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(series[i].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-series[i].radius - activeWidth, 0);\n context.lineTo(-series[i + 1].radius - activeWidth, -eachSpacing);\n context.lineTo(series[i + 1].radius + activeWidth, -eachSpacing);\n context.lineTo(series[i].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[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(series[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-series[i].radius, 0);\n context.lineTo(-series[i + 1].radius, -eachSpacing);\n context.lineTo(series[i + 1].radius, -eachSpacing);\n context.lineTo(series[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 for (var _i28 = 0; _i28 < series.length; _i28++) {\n if (_i28 == 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i28) {\n context.beginPath();\n context.setFillStyle(hexToRgb(series[_i28].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth, 0);\n context.lineTo(-series[_i28].radius - activeWidth, -eachSpacing);\n context.lineTo(series[_i28].radius + activeWidth, -eachSpacing);\n context.lineTo(activeWidth, 0);\n context.lineTo(-activeWidth, 0);\n context.closePath();\n context.fill();\n }\n }\n series[_i28].funnelArea = [centerPosition.x - series[_i28].radius, centerPosition.y - eachSpacing, centerPosition.x + series[_i28].radius, centerPosition.y];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(series[_i28].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(series[_i28].radius, -eachSpacing, -series[_i28].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[_i28].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-series[_i28].radius, -eachSpacing);\n context.lineTo(series[_i28].radius, -eachSpacing);\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 == _i28) {\n context.beginPath();\n context.setFillStyle(hexToRgb(series[_i28].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-series[_i28 - 1].radius - activeWidth, 0);\n context.lineTo(-series[_i28].radius - activeWidth, -eachSpacing);\n context.lineTo(series[_i28].radius + activeWidth, -eachSpacing);\n context.lineTo(series[_i28 - 1].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n series[_i28].funnelArea = [centerPosition.x - series[_i28].radius, centerPosition.y - eachSpacing * (_i28 + 1), centerPosition.x + series[_i28].radius, centerPosition.y - eachSpacing * _i28];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(series[_i28].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(series[_i28].radius, -eachSpacing, -series[_i28].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[_i28].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-series[_i28 - 1].radius, 0);\n context.lineTo(-series[_i28].radius, -eachSpacing);\n context.lineTo(series[_i28].radius, -eachSpacing);\n context.lineTo(series[_i28 - 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\n context.restore();\n if (opts.dataLabel !== false && process === 1) {\n drawFunnelText(series, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series };\n\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 var startX = void 0,endX = void 0,startY = void 0,fontSize = void 0;\n var text = item.formatter ? item.formatter(item, i, series) : util.toFixed(item._proportion_ * 100) + '%';\n if (labelAlign == 'right') {\n if (opts.extra.funnel.type === 'pyramid') {\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 } else {\n if (i == 0) {\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[2] + series[i - 1].funnelArea[2]) / 2;\n }\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, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n } else {\n if (opts.extra.funnel.type === 'pyramid') {\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 } else {\n if (i == 0) {\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[0] + series[i - 1].funnelArea[0]) / 2;\n }\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 }\n}\n\nfunction drawCanvas(opts, context) {\n context.draw();\n}\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\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 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}\n\nAnimation.prototype.stop = function () {\n this.isStop = true;\n};\n\nfunction drawCharts(type, opts, config, context) {\n var _this = this;\n var series = opts.series;\n //兼容ECharts饼图类数据格式\n if (type === 'pie' || type === 'ring' || type === 'rose' || type === 'funnel') {\n series = fixPieSeries(series, opts, config);\n }\n var categories = opts.categories;\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 j = 0; j < 4; j++) {\n opts.area[j] = opts.padding[j] * 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\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\n var _calYAxisData = {},\n yAxisWidth = 0;\n if (opts.type === 'line' || opts.type === 'column' || 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 _i29 = 0; _i29 < yAxisWidth.length; _i29++) {\n if (yAxisWidth[_i29].position == 'left') {\n if (leftIndex > 0) {\n opts.area[3] += yAxisWidth[_i29].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[3] += yAxisWidth[_i29].width;\n }\n leftIndex += 1;\n } else if (yAxisWidth[_i29].position == 'right') {\n if (rightIndex > 0) {\n opts.area[1] += yAxisWidth[_i29].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[1] += yAxisWidth[_i29].width;\n }\n rightIndex += 1;\n }\n }\n } else {\n config.yAxisWidth = yAxisWidth;\n }\n opts.chartData.yAxisData = _calYAxisData;\n\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 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 = {\n currentOffset: offsetLeft,\n startTouchX: offsetLeft,\n distance: 0,\n lastMoveTime: 0 };\n\n opts._scrollDistance_ = offsetLeft;\n }\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 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 '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 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}\n\nfunction uChartsEvent() {\n this.events = {};\n}\n\nuChartsEvent.prototype.addEventListener = function (type, listener) {\n this.events[type] = this.events[type] || [];\n this.events[type].push(listener);\n};\n\nuChartsEvent.prototype.delEventListener = function (type) {\n this.events[type] = [];\n};\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};\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 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 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\n var config$$1 = JSON.parse(JSON.stringify(config));\n config$$1.color = opts.color ? opts.color : config$$1.color;\n config$$1.yAxisTitleWidth = opts.yAxis.disabled !== true && opts.yAxis.title ? config$$1.yAxisTitleWidth : 0;\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 config$$1.yAxisSplit = opts.yAxis.splitNumber ? opts.yAxis.splitNumber : config.yAxisSplit;\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.xAxisLineHeight = config.xAxisLineHeight * opts.pix;\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 config$$1.columePadding = config.columePadding * opts.pix;\n //this.context = opts.context ? opts.context : uni.createCanvasContext(opts.canvasId, opts.$this);\n //v2.0版本后需要自行获取context并传入opts进行初始化,这么做是为了确保uCharts可以跨更多端使用,并保证了自定义组件this实例不被循环嵌套。如果您觉得不便请取消上面注释,采用v1.0版本的方式使用,对此给您带来的不便敬请谅解!\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};\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),yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),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};\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:6386\");\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: offsetLeft,\n distance: 0,\n lastMoveTime: 0 };\n\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.stopAnimation = function () {\n this.animationInstance && this.animationInstance.stop();\n};\n\nuCharts.prototype.addEventListener = function (type, listener) {\n this.uevent.addEventListener(type, listener);\n};\n\nuCharts.prototype.delEventListener = function (type) {\n this.uevent.delEventListener(type);\n};\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};\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};\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\n};\n\nuCharts.prototype.showToolTip = function (e) {var _this2 = 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:6540\");\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 === '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, { animation: false });\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, { animation: false });\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, { animation: false });\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, { animation: false });\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, _this2.opts.categories[index], index, _this2.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};\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};\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};\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 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};\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 }\n};var _default =\n\nuCharts;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMiXSwibmFtZXMiOlsiY29uZmlnIiwidmVyc2lvbiIsInlBeGlzV2lkdGgiLCJ5QXhpc1NwbGl0IiwieEF4aXNIZWlnaHQiLCJ4QXhpc0xpbmVIZWlnaHQiLCJsZWdlbmRIZWlnaHQiLCJ5QXhpc1RpdGxlV2lkdGgiLCJwYWRkaW5nIiwicGl4ZWxSYXRpbyIsInJvdGF0ZSIsImNvbHVtZVBhZGRpbmciLCJmb250U2l6ZSIsImZvbnRDb2xvciIsImRhdGFQb2ludFNoYXBlIiwiY29sb3IiLCJsaW5lYXJDb2xvciIsInBpZUNoYXJ0TGluZVBhZGRpbmciLCJwaWVDaGFydFRleHRQYWRkaW5nIiwieEF4aXNUZXh0UGFkZGluZyIsInRpdGxlQ29sb3IiLCJ0aXRsZUZvbnRTaXplIiwic3VidGl0bGVDb2xvciIsInN1YnRpdGxlRm9udFNpemUiLCJ0b29sVGlwUGFkZGluZyIsInRvb2xUaXBCYWNrZ3JvdW5kIiwidG9vbFRpcE9wYWNpdHkiLCJ0b29sVGlwTGluZUhlaWdodCIsInJhZGFyTGFiZWxUZXh0TWFyZ2luIiwiZ2F1Z2VMYWJlbFRleHRNYXJnaW4iLCJhc3NpZ24iLCJ0YXJnZXQiLCJ2YXJBcmdzIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiZGVlcEFzc2lnbiIsIm9iajEiLCJvYmoyIiwia2V5IiwidG9TdHJpbmciLCJmb3JFYWNoIiwidmFsIiwidXRpbCIsInRvRml4ZWQiLCJudW0iLCJsaW1pdCIsImlzRmxvYXQiLCJhcHByb3hpbWF0ZWx5RXF1YWwiLCJudW0xIiwibnVtMiIsIk1hdGgiLCJhYnMiLCJpc1NhbWVTaWduIiwiaXNTYW1lWENvb3JkaW5hdGVBcmVhIiwicDEiLCJwMiIsIngiLCJpc0NvbGxpc2lvbiIsImVuZCIsInN0YXJ0Iiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwiZmxhZyIsImdldEg1T2Zmc2V0IiwiZSIsIm1wIiwiY2hhbmdlZFRvdWNoZXMiLCJwdXNoIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJsb25sYXQybWVyY2F0b3IiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsIm1lcmNhdG9yIiwiQXJyYXkiLCJsb2ciLCJ0YW4iLCJQSSIsIm1lcmNhdG9yMmxvbmxhdCIsImxvbmxhdCIsImF0YW4iLCJleHAiLCJoZXhUb1JnYiIsImhleFZhbHVlIiwib3BjIiwicmd4IiwiaGV4IiwicmVwbGFjZSIsIm0iLCJyIiwiZyIsImIiLCJyZ2IiLCJleGVjIiwicGFyc2VJbnQiLCJmaW5kUmFuZ2UiLCJ0eXBlIiwiaXNOYU4iLCJFcnJvciIsIm11bHRpcGxlIiwiY2VpbCIsImZsb29yIiwiY2FsQ2FuZGxlTUEiLCJkYXlBcnIiLCJuYW1lQXJyIiwiY29sb3JBcnIiLCJrZGF0YSIsInNlcmllc1RlbXAiLCJrIiwic2VyaWVzSXRlbSIsImRhdGEiLCJuYW1lIiwiaSIsImxlbiIsInN1bSIsImoiLCJjYWxWYWxpZERpc3RhbmNlIiwic2VsZiIsImRpc3RhbmNlIiwiY2hhcnREYXRhIiwib3B0cyIsImRhdGFDaGFydEFyZWFXaWR0aCIsImFyZWEiLCJkYXRhQ2hhcnRXaWR0aCIsImVhY2hTcGFjaW5nIiwieEF4aXNEYXRhIiwieEF4aXNQb2ludHMiLCJ2YWxpZERpc3RhbmNlIiwidWV2ZW50IiwidHJpZ2dlciIsInNjcm9sbE9wdGlvbiIsInBvc2l0aW9uIiwieEF4aXMiLCJzY3JvbGxQb3NpdGlvbiIsImlzSW5BbmdsZVJhbmdlIiwiYW5nbGUiLCJzdGFydEFuZ2xlIiwiZW5kQW5nbGUiLCJhZGp1c3QiLCJjYWxSb3RhdGVUcmFuc2xhdGUiLCJoIiwieHYiLCJ5diIsInRyYW5zWCIsInNxcnQiLCJ0cmFuc1kiLCJjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMiLCJwb2ludHMiLCJpc05vdE1pZGRsZVBvaW50IiwibWF4IiwibWluIiwiaXNOb3RNaWRkbGVQb2ludFgiLCJhIiwicEF4IiwicEF5IiwicEJ4IiwicEJ5IiwibGFzdCIsImN0ckEiLCJjdHJCIiwiY29udmVydENvb3JkaW5hdGVPcmlnaW4iLCJjZW50ZXIiLCJhdm9pZENvbGxpc2lvbiIsIm9iaiIsImZpeFBpZVNlcmllcyIsInNlcmllcyIsInBpZVNlcmllc0FyciIsImNvbnN0cnVjdG9yIiwiaW5kZXhPZiIsIl9waWVTZXJpZXNfIiwib2xkc2VyaWVzIiwiZm9ybWF0dGVyIiwidmFsdWUiLCJmaWxsU2VyaWVzIiwiaW5kZXgiLCJpdGVtIiwibGluZWFySW5kZXgiLCJzaG93IiwicG9pbnRTaGFwZSIsImxlZ2VuZFNoYXBlIiwiZmlsbEN1c3RvbUNvbG9yIiwibGluZWFyVHlwZSIsImN1c3RvbUNvbG9yIiwibmV3Y29sb3IiLCJjaGF6aGkiLCJnZXREYXRhUmFuZ2UiLCJtaW5EYXRhIiwibWF4RGF0YSIsInJhbmdlIiwibWluUmFuZ2UiLCJtYXhSYW5nZSIsIm1lYXN1cmVUZXh0IiwidGV4dCIsImNvbnRleHQiLCJTdHJpbmciLCJ1bmRlZmluZWQiLCJzZXRGb250U2l6ZSIsInNwbGl0IiwidGVzdCIsImRhdGFDb21iaW5lIiwicmVkdWNlIiwiY29uY2F0IiwiZGF0YUNvbWJpbmVTdGFjayIsImdldFRvdWNoZXMiLCJ0b3VjaGVzIiwiY2xpZW50WCIsInBpeCIsInBhZ2VZIiwiY3VycmVudFRhcmdldCIsIm9mZnNldFRvcCIsImdldFNlcmllc0RhdGFJdGVtIiwiZ3JvdXAiLCJuZXdTZXJpZXMiLCJpbmRleElzQXJyIiwidGVtcFNlcmllcyIsImZpbHRlclNlcmllcyIsInRtcGluZGV4Iiwic3R5bGUiLCJkaXNhYmxlTGVnZW5kIiwiZ2V0TWF4VGV4dExpc3RMZW5ndGgiLCJsaXN0IiwibGVuZ3RoTGlzdCIsIm1hcCIsImFwcGx5IiwiZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzIiwiZWFjaEFuZ2xlIiwiQ29vcmRpbmF0ZVNlcmllcyIsImdldFRvb2xUaXBEYXRhIiwic2VyaWVzRGF0YSIsImNhdGVnb3JpZXMiLCJvcHRpb24iLCJhcmd1bWVudHMiLCJjYWxQb2ludHMiLCJmaWx0ZXJQb2ludHMiLCJ0ZXh0TGlzdCIsInRpdGxlVGV4dCIsIm9mZnNldCIsInJvdW5kIiwiZ2V0TWl4VG9vbFRpcERhdGEiLCJmaWx0ZXIiLCJnZXRDYW5kbGVUb29sVGlwRGF0YSIsImV4dHJhIiwidXBDb2xvciIsInVwRmlsbCIsImRvd25Db2xvciIsImRvd25GaWxsIiwidGV4dDEiLCJ0ZXh0MiIsInRleHQzIiwidGV4dDQiLCJ2YWxpZENhbFBvaW50cyIsImZpbmRDdXJyZW50SW5kZXgiLCJjdXJyZW50UG9pbnRzIiwiY3VycmVudCIsInNwYWNpbmciLCJib3VuZGFyeUdhcCIsImlzSW5FeGFjdENoYXJ0QXJlYSIsInRpbWVQb2ludHMiLCJwb2ludFZhbHVlIiwicG9pbnRJbmRleCIsIm1pblZhbHVlIiwiZmluZEJhckNoYXJ0Q3VycmVudEluZGV4IiwieUF4aXNQb2ludHMiLCJmaW5kTGVnZW5kSW5kZXgiLCJsZWdlbmREYXRhIiwiY3VycmVudEluZGV4IiwiZ2FwIiwiaXNJbkV4YWN0TGVnZW5kQXJlYSIsImZpbmRSYWRhckNoYXJ0Q3VycmVudEluZGV4IiwicmFkYXJEYXRhIiwiY291bnQiLCJlYWNoQW5nbGVBcmVhIiwiaXNJbkV4YWN0UGllQ2hhcnRBcmVhIiwicmFkaXVzIiwiZml4QW5nbGUiLCJhdGFuMiIsImFuZ2xlTGlzdCIsInJhbmdlU3RhcnQiLCJyYW5nZUVuZCIsImZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCIsImZ1bm5lbERhdGEiLCJmdW5uZWxBcmVhIiwiZmluZFdvcmRDaGFydEN1cnJlbnRJbmRleCIsIndvcmREYXRhIiwiZmluZE1hcENoYXJ0Q3VycmVudEluZGV4IiwiY0RhdGEiLCJtYXBEYXRhIiwidG1wIiwicG9pbnRUb0Nvb3JkaW5hdGUiLCJib3VuZHMiLCJzY2FsZSIsInhvZmZzZXQiLCJ5b2Zmc2V0IiwicG9pIiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsImlzUG9pV2l0aGluUG9seSIsImZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgiLCJwaWVEYXRhIiwiZ2V0Um9zZURhdGFQb2ludHMiLCJfc2VyaWVzXyIsInJvc2UiLCJvZmZzZXRBbmdsZSIsIl9zdGFydF8iLCJfcm9zZV9wcm9wb3J0aW9uXyIsImZpbmRQaWVDaGFydEN1cnJlbnRJbmRleCIsImdldFBpZURhdGFQb2ludHMiLCJwaWUiLCJyaW5nIiwiX3Byb3BvcnRpb25fIiwicG93Iiwic3BsaXRQb2ludHMiLCJlYWNoU2VyaWVzIiwibmV3UG9pbnRzIiwiaXRlbXMiLCJjb25uZWN0TnVsbHMiLCJjYWxMZWdlbmREYXRhIiwid2hvbGVXaWR0aCIsIndob2xlSGVpZ2h0Iiwid2lkdGhBcnIiLCJoZWlnaHRBcnIiLCJsZWdlbmQiLCJtYXJnaW4iLCJzaGFwZVdpZHRoIiwic2hhcGVSaWdodCIsImxpbmVIZWlnaHQiLCJsZWdlbmRMaXN0Iiwid2lkdGhDb3VudCIsIndpZHRoQ291bnRBcnIiLCJjdXJyZW50Um93IiwiaXRlbVdpZHRoIiwiaXRlbUdhcCIsImxlZ2VuZFdpZHRoIiwiZmxvYXQiLCJtYXhIZWlnaHQiLCJtYXhMZW5ndGgiLCJsaW5lTnVtIiwidGVtcCIsInNsaWNlIiwibWF4V2lkdGgiLCJjYWxDYXRlZ29yaWVzRGF0YSIsInJlc3VsdCIsImNhdGVnb3JpZXNUZXh0TGVudGgiLCJtYXhUZXh0TGVuZ3RoIiwicm90YXRlTGFiZWwiLCJzaW4iLCJnZXRYQXhpc1RleHRMaXN0Iiwic3RhY2siLCJzb3J0ZWQiLCJzdWJpdGVtIiwicmFuZ2VTcGFuIiwiZWFjaFJhbmdlIiwic3BsaXROdW1iZXIiLCJjYWxYQXhpc0RhdGEiLCJjb2x1bW5zdHlsZSIsImJhciIsInJhbmdlcyIsInJhbmdlc0Zvcm1hdCIsInhBeGlzU2NhbGVWYWx1ZXMiLCJPYmplY3QiLCJnZXRYQXhpc1BvaW50cyIsInRleHRMZW5ndGgiLCJkaXNhYmxlZCIsImdldFJhZGFyRGF0YVBvaW50cyIsInByb2Nlc3MiLCJyYWRhck9wdGlvbiIsInJhZGFyIiwiZWFjaCIsImxpc3RJdGVtIiwicHJvcG9ydGlvbiIsImNvcyIsIl9yYWRpdXNfIiwiZ2V0RnVubmVsRGF0YVBvaW50cyIsInNvcnQiLCJyZXZlcnNlIiwibWluUmFkaXVzIiwiZGF0YUFyciIsInJhZGl1c0xlbmd0aCIsImdldEFyY2JhckRhdGFQb2ludHMiLCJhcmNiYXJPcHRpb24iLCJ0b3RhbEFuZ2xlIiwiZ2V0R2F1Z2VBeGlzUG9pbnRzIiwidGVtcFN0YXJ0QW5nbGUiLCJfc3RhcnRBbmdsZV8iLCJfZW5kQW5nbGVfIiwiZ2V0R2F1Z2VEYXRhUG9pbnRzIiwiZ2F1Z2VPcHRpb24iLCJwb2ludGVyIiwiX29sZEFuZ2xlXyIsIm9sZEFuZ2xlIiwib2xkRGF0YSIsImdldFBpZVRleHRNYXhMZW5ndGgiLCJ0ZXh0U2l6ZSIsImZpeENvbHVtZURhdGEiLCJjb2x1bW5MZW4iLCJzZXJpZXNHYXAiLCJjYXRlZ29yeUdhcCIsIm1peCIsImNvbHVtbiIsImZpeEJhckRhdGEiLCJmaXhDb2x1bWVNZXRlckRhdGEiLCJib3JkZXIiLCJmaXhDb2x1bWVTdGFja0RhdGEiLCJpbmRleG4iLCJmaXhCYXJTdGFja0RhdGEiLCJzcGFjaW5nVmFsaWQiLCJkYXRhQ291bnQiLCJlbmFibGVTY3JvbGwiLCJpdGVtQ291bnQiLCJzdGFydFgiLCJlbmRYIiwiZ2V0Q2FuZGxlRGF0YVBvaW50cyIsInZhbGlkSGVpZ2h0IiwiY1BvaW50cyIsImluZGV4cyIsInBvaW50IiwiZ2V0RGF0YVBvaW50cyIsInZhbGlkV2lkdGgiLCJ4cmFuZ2VzIiwieG1pblJhbmdlIiwieG1heFJhbmdlIiwic2hpZnQiLCJwb3AiLCJ0IiwiZ2V0QmFyRGF0YVBvaW50cyIsImdldFN0YWNrRGF0YVBvaW50cyIsInNlcmllc0luZGV4Iiwic3RhY2tTZXJpZXMiLCJ2YWx1ZTAiLCJoZWlnaHQwIiwiaGVpZ2h0YyIsInkwIiwiZ2V0QmFyU3RhY2tEYXRhUG9pbnRzIiwieDAiLCJnZXRZQXhpc1RleHRMaXN0IiwieURhdGEiLCJkYXRhUmFuZ2UiLCJ5QXhpcyIsImNhbFlBeGlzRGF0YSIsIllMZW5ndGgiLCJyYW5nZXNBcnIiLCJyYW5nZXNGb3JtYXRBcnIiLCJ5QXhpc1dpZHRoQXJyIiwidW5pdCIsInRvZml4IiwieUF4aXNGb250U2l6ZXMiLCJjYWxpYnJhdGlvbiIsInlBeGlzRm9udFNpemUiLCJjYWxUb29sdGlwWUF4aXNEYXRhIiwieUF4aXNEYXRhIiwibWluQXhpcyIsIm1heFZhbCIsIm1pblZhbCIsImNhbE1hcmtMaW5lRGF0YSIsInlBeGlzSW5kZXgiLCJjb250ZXh0Um90YXRlIiwicm90YXRlTG9jayIsInRyYW5zbGF0ZSIsIl9yb3RhdGVfIiwiZHJhd1BvaW50U2hhcGUiLCJzaGFwZSIsImJlZ2luUGF0aCIsImRhdGFQb2ludFNoYXBlVHlwZSIsInNldFN0cm9rZVN0eWxlIiwic2V0RmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsInNldExpbmVXaWR0aCIsIm1vdmVUbyIsImxpbmVUbyIsImFyYyIsInJlY3QiLCJjbG9zZVBhdGgiLCJmaWxsIiwic3Ryb2tlIiwiZHJhd1JpbmdUaXRsZSIsInRpdGxlZm9udFNpemUiLCJ0aXRsZSIsInN1YnRpdGxlZm9udFNpemUiLCJzdWJ0aXRsZSIsInRpdGxlRm9udENvbG9yIiwic3VidGl0bGVGb250Q29sb3IiLCJ0aXRsZUhlaWdodCIsInN1YnRpdGxlSGVpZ2h0IiwidGV4dFdpZHRoIiwic3RhcnRZIiwiZmlsbFRleHQiLCJfdGV4dFdpZHRoIiwiX3N0YXJ0WCIsIl9zdGFydFkiLCJkcmF3UG9pbnRUZXh0IiwidGV4dE9mZnNldCIsInRleHRDb2xvciIsImZvcm1hdFZhbCIsInNldFRleHRBbGlnbiIsImRyYXdCYXJQb2ludFRleHQiLCJkcmF3R2F1Z2VMYWJlbCIsImNlbnRlclBvc2l0aW9uIiwibGFiZWxPZmZzZXQiLCJzcGxpdEFuZ2xlIiwic3BsaXRMaW5lIiwidG90YWxOdW1iZXIiLCJlbmROdW1iZXIiLCJzdGFydE51bWJlciIsIm5vd0FuZ2xlIiwibm93TnVtYmVyIiwicG9zIiwibGFiZWxUZXh0IiwibGFiZWxDb2xvciIsImRyYXdSYWRhckxhYmVsIiwicG9zUmVsYXRpdmVDYW52YXMiLCJkcmF3UGllVGV4dCIsImxpbmVSYWRpdXMiLCJ0ZXh0T2JqZWN0Q29sbGVjdGlvbiIsImxhc3RUZXh0T2JqZWN0Iiwic2VyaWVzQ29udmVydCIsIm9yZ2luWDEiLCJvcmdpblkxIiwib3JnaW5YMiIsIm9yZ2luWTIiLCJvcmdpblgzIiwib3JnaW5ZMyIsInRleHRPYmplY3QiLCJsaW5lU3RhcnQiLCJsaW5lRW5kIiwibGluZVN0YXJ0UG9pc3Rpb24iLCJsaW5lRW5kUG9pc3Rpb24iLCJ0ZXh0UG9zaXRpb24iLCJjdXJ2ZVN0YXJ0WCIsInRleHRTdGFydFgiLCJxdWFkcmF0aWNDdXJ2ZVRvIiwiZHJhd1Rvb2xUaXBTcGxpdExpbmUiLCJ0b29sVGlwT3B0aW9uIiwidG9vbHRpcCIsImdyaWRUeXBlIiwiZGFzaExlbmd0aCIsImVuZFkiLCJzZXRMaW5lRGFzaCIsImdyaWRDb2xvciIsInhBeGlzTGFiZWwiLCJ0ZXh0WCIsInRleHRZIiwibGFiZWxCZ0NvbG9yIiwibGFiZWxCZ09wYWNpdHkiLCJsYWJlbEZvbnRDb2xvciIsImRyYXdNYXJrTGluZSIsIm1hcmtMaW5lT3B0aW9uIiwibWFya0xpbmUiLCJsaW5lQ29sb3IiLCJzaG93TGFiZWwiLCJiZ1N0YXJ0WCIsImJnRW5kWCIsImJnV2lkdGgiLCJkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lIiwieUF4aXNMYWJlbCIsInRTdGFydExlZnQiLCJ0U3RhcnRSaWdodCIsImRyYXdUb29sVGlwU3BsaXRBcmVhIiwiYWN0aXZlQmdDb2xvciIsImFjdGl2ZUJnT3BhY2l0eSIsImRyYXdCYXJUb29sVGlwU3BsaXRBcmVhIiwiZHJhd1Rvb2xUaXAiLCJzaG93Qm94Iiwic2hvd0Fycm93Iiwic2hvd0NhdGVnb3J5IiwiYmdDb2xvciIsImJnT3BhY2l0eSIsImJvcmRlckNvbG9yIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJPcGFjaXR5IiwidW5zaGlmdCIsImxlZ2VuZE1hcmdpblJpZ2h0IiwiYXJyb3dXaWR0aCIsImlzT3ZlclJpZ2h0Qm9yZGVyIiwidG9vbFRpcFdpZHRoIiwidG9vbFRpcEhlaWdodCIsIl9zY3JvbGxEaXN0YW5jZV8iLCJmaWxsUmVjdCIsImRyYXdDb2x1bW5EYXRhUG9pbnRzIiwiY29sdW1uT3B0aW9uIiwibWV0ZXJCb3JkZXIiLCJtZXRlckZpbGxDb2xvciIsImJhckJvcmRlckNpcmNsZSIsImJhckJvcmRlclJhZGl1cyIsImxpbmVhck9wYWNpdHkiLCJjb2xvclN0b3AiLCJzYXZlIiwibGVmdE51bSIsInJpZ2h0TnVtIiwidG9vbHRpcFBvaW50cyIsImZpbGxDb2xvciIsInN0cm9rZUNvbG9yIiwiZ3JkIiwiY3JlYXRlTGluZWFyR3JhZGllbnQiLCJhZGRDb2xvclN0b3AiLCJsZWZ0IiwidG9wIiwicjAiLCJyMSIsInIyIiwicjMiLCJkYXRhTGFiZWwiLCJyZXN0b3JlIiwiZHJhd0JhckRhdGFQb2ludHMiLCJoZWlnaCIsImRyYXdDYW5kbGVEYXRhUG9pbnRzIiwic2VyaWVzTUEiLCJjYW5kbGVPcHRpb24iLCJhdmVyYWdlIiwiY2FuZGxlIiwidXBMaW5lIiwiZG93bkxpbmUiLCJkYXkiLCJsZWZ0U3BhY2UiLCJyaWdodFNwYWNlIiwic3BsaXRQb2ludExpc3QiLCJzdGFydFBvaW50IiwiY3RybFBvaW50IiwiYmV6aWVyQ3VydmVUbyIsImRyYXdBcmVhRGF0YVBvaW50cyIsImFyZWFPcHRpb24iLCJvcGFjaXR5IiwiYWRkTGluZSIsImdyYWRpZW50IiwiZmlyc3RQb2ludCIsImxhc3RQb2ludCIsImxpbmVUeXBlIiwiZHJhd1NjYXR0ZXJEYXRhUG9pbnRzIiwic2NhdHRlck9wdGlvbiIsInNjYXR0ZXIiLCJkcmF3QnViYmxlRGF0YVBvaW50cyIsImJ1YmJsZU9wdGlvbiIsImJ1YmJsZSIsImRyYXdMaW5lRGF0YVBvaW50cyIsImxpbmVPcHRpb24iLCJsaW5lIiwiZHJhd01peERhdGFQb2ludHMiLCJjb2x1bW5JbmRleCIsImNvbHVtbkxlbmd0aCIsImFkZFBvaW50IiwiZHJhd1Rvb2xUaXBCcmlkZ2UiLCJob3JpemVudGFsTGluZSIsImRyYXdYQXhpcyIsInNjcm9sbFNob3ciLCJzY3JvbGxZIiwic2Nyb2xsU2NyZWVuV2lkdGgiLCJzY3JvbGxUb3RhbFdpZHRoIiwic2Nyb2xsV2lkdGgiLCJzY3JvbGxMZWZ0Iiwic2V0TGluZUNhcCIsInNjcm9sbEJhY2tncm91bmRDb2xvciIsInNjcm9sbENvbG9yIiwiZGlzYWJsZUdyaWQiLCJncmlkRXZhbCIsIm1heFhBeGlzTGlzdExlbmd0aCIsImxhYmVsQ291bnQiLCJyYXRpbyIsIm5ld0NhdGVnb3JpZXMiLCJjZ0xlbmd0aCIsInhBeGlzRm9udFNpemUiLCJfeEF4aXNUZXh0QW5nbGVfIiwieGl0ZW0iLCJzY3JvbGxIZWlnaHQiLCJfY2FsUm90YXRlVHJhbnNsYXRlIiwiYXhpc0xpbmUiLCJheGlzTGluZUNvbG9yIiwiZHJhd1lBeGlzR3JpZCIsInhBeGlzZWFjaFNwYWNpbmciLCJUb3RhbFdpZHRoIiwiZHJhd1lBeGlzIiwiZmlsbEVuZFkiLCJ0U3RhcnRDZW50ZXIiLCJ0ZXh0QWxpZ24iLCJ0bXBzdHJhdCIsImdhcHdpZHRoIiwic2hvd1RpdGxlIiwidGl0bGVPZmZzZXRYIiwidGl0bGVPZmZzZXRZIiwiZHJhd0xlZ2VuZCIsImxlZ2VuZEFyZWEiLCJiYWNrZ3JvdW5kQ29sb3IiLCJpdGVtTGlzdCIsImxpc3RJbmRleCIsImhpZGRlbkNvbG9yIiwiZm9udFRyYW5zIiwiZHJhd1BpZURhdGFQb2ludHMiLCJwaWVPcHRpb24iLCJhY3RpdmVPcGFjaXR5IiwiYWN0aXZlUmFkaXVzIiwibGFiZWxXaWR0aCIsInJpbmdXaWR0aCIsImN1c3RvbVJhZGl1cyIsImNlbnRlckNvbG9yIiwiX3BpZVRleHRNYXhMZW5ndGhfIiwibGluZUpvaW4iLCJmaWxsY29sb3IiLCJjcmVhdGVDaXJjdWxhckdyYWRpZW50IiwiY3JlYXRlUmFkaWFsR3JhZGllbnQiLCJpbm5lclBpZVdpZHRoIiwidmFsaWQiLCJkcmF3Um9zZURhdGFQb2ludHMiLCJyb3NlT3B0aW9uIiwiZHJhd0FyY2JhckRhdGFQb2ludHMiLCJhcmNiYXIiLCJjZW50ZXJYIiwiY2VudGVyWSIsImRyYXdHYXVnZURhdGFQb2ludHMiLCJmaXhSYWRpdXMiLCJjaGlsZE51bWJlciIsImNoaWxkV2lkdGgiLCJnYXVnZSIsImlubmVyUmFkaXVzIiwicGllUmFkaXVzIiwiY2hpbGRBbmdsZSIsInByb2MiLCJwb2ludGVyUmFkaXVzIiwiZ3JhZGllbnQzIiwiZWFjaENhdGVnb3JpZXMiLCJjaGlsZGVuZFgiLCJkcmF3UmFkYXJEYXRhUG9pbnRzIiwiZ3JpZENvdW50IiwiY29vcmRpbmF0ZUFuZ2xlIiwieHIiLCJ5ciIsIl9sb29wIiwic3RhcnRQb3MiLCJyYWRhckRhdGFQb2ludHMiLCJub3JtYWxJbnQiLCJpdGVyIiwiYXJyIiwicmFuZG9tIiwiY29sbGlzaW9uTmV3IiwiaXNJbiIsImdldEJvdW5kaW5nQm94IiwiY29vcmRzIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsImNvb3JkYSIsImNvb3JkaW5hdGVUb1BvaW50IiwicG9pbnRZIiwicG9pbnRYIiwiaXNSYXlJbnRlcnNlY3RzU2VnbWVudCIsInNfcG9pIiwiZV9wb2kiLCJ4c2VnIiwicG9seSIsInNpbnNjIiwiZXBvbHkiLCJkcmF3TWFwRGF0YVBvaW50cyIsIm1hcE9wdGlvbiIsImZpbGxPcGFjaXR5IiwiYWN0aXZlQm9yZGVyQ29sb3IiLCJhY3RpdmVGaWxsQ29sb3IiLCJhY3RpdmVGaWxsT3BhY2l0eSIsInhTY2FsZSIsInlTY2FsZSIsImdhb3NpIiwiY2VudGVyUG9pbnQiLCJwcm9wZXJ0aWVzIiwiY2VudHJvaWQiLCJkcmF3IiwiZ2V0V29yZENsb3VkUG9pbnQiLCJ0SGVpZ2h0IiwidFdpZHRoIiwiYnJlYWtudW0iLCJTcGluIiwiaXNTcGluIiwiYXJlYXYiLCJkcmF3V29yZENsb3VkRGF0YVBvaW50cyIsIndvcmRPcHRpb24iLCJhdXRvQ29sb3JzIiwid29yZCIsIndvcmRDbG91ZERhdGEiLCJzdHJva2VUZXh0IiwiZHJhd0Z1bm5lbERhdGFQb2ludHMiLCJmdW5uZWxPcHRpb24iLCJhY3RpdmVXaWR0aCIsImxhYmVsQWxpZ24iLCJmdW5uZWwiLCJkcmF3RnVubmVsVGV4dCIsImRyYXdDYW52YXMiLCJUaW1pbmciLCJlYXNlSW4iLCJlYXNlT3V0IiwiZWFzZUluT3V0IiwibGluZWFyIiwiQW5pbWF0aW9uIiwiaXNTdG9wIiwiZHVyYXRpb24iLCJ0aW1pbmciLCJkZWxheSIsImNyZWF0ZUFuaW1hdGlvbkZyYW1lIiwic2V0VGltZW91dCIsInN0ZXAiLCJ0aW1lU3RhbXAiLCJEYXRlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiYW5pbWF0aW9uRnJhbWUiLCJzdGFydFRpbWVTdGFtcCIsIl9zdGVwIiwidGltZXN0YW1wIiwib25Qcm9jZXNzIiwib25BbmltYXRpb25GaW5pc2giLCJ0aW1pbmdGdW5jdGlvbiIsImJpbmQiLCJwcm90b3R5cGUiLCJzdG9wIiwiZHJhd0NoYXJ0cyIsIl90aGlzIiwiYW5pbWF0aW9uIiwiYW5pbWF0aW9uSW5zdGFuY2UiLCJfY2FsTGVnZW5kRGF0YSIsIl9jYWxZQXhpc0RhdGEiLCJtYXhUaXRsZUhlaWdodCIsInJpZ2h0SW5kZXgiLCJsZWZ0SW5kZXgiLCJfY2FsQ2F0ZWdvcmllc0RhdGEiLCJjYXRlZ29yaWVzRGF0YSIsInNjcm9sbEFsaWduIiwib2Zmc2V0TGVmdCIsInRvdGFsV2lkdGgiLCJzY3JlZW5XaWR0aCIsImN1cnJlbnRPZmZzZXQiLCJzdGFydFRvdWNoWCIsImxhc3RNb3ZlVGltZSIsImNsZWFyUmVjdCIsIl9kcmF3TGluZURhdGFQb2ludHMiLCJlbmFibGVNYXJrTGluZSIsIl9kcmF3U2NhdHRlckRhdGFQb2ludHMiLCJfZHJhd0J1YmJsZURhdGFQb2ludHMiLCJfZHJhd01peERhdGFQb2ludHMiLCJfZHJhd0NvbHVtbkRhdGFQb2ludHMiLCJfZHJhd0JhckRhdGFQb2ludHMiLCJfZHJhd0FyZWFEYXRhUG9pbnRzIiwiYXJjYmFyRGF0YSIsImdhdWdlRGF0YSIsIl9kcmF3Q2FuZGxlRGF0YVBvaW50cyIsInVDaGFydHNFdmVudCIsImV2ZW50cyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5lciIsImRlbEV2ZW50TGlzdGVuZXIiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJwYXJhbXMiLCJ1Q2hhcnRzIiwiY2FudmFzMmQiLCJjb25maWckJDEiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJ0ZW1wV2lkdGgiLCJ0ZW1wSGVpZ2h0Iiwic3Ryb2tlU3R5bGUiLCJsaW5lV2lkdGgiLCJsaW5lQ2FwIiwiZm9udCIsImZpbGxTdHlsZSIsImNhbGwiLCJ1cGRhdGVEYXRhIiwiX2dldFhBeGlzUG9pbnRzMCIsInpvb20iLCJjZW50ZXJMZWZ0IiwiTWF4TGVmdCIsInN0b3BBbmltYXRpb24iLCJnZXRDdXJyZW50RGF0YUluZGV4IiwiX3RvdWNoZXMkIiwiZ2V0TGVnZW5kRGF0YUluZGV4IiwidG91Y2hMZWdlbmQiLCJzaG93VG9vbFRpcCIsIl9nZXRUb29sVGlwRGF0YSIsIl9nZXRNaXhUb29sVGlwRGF0YSIsInNjcm9sbFN0YXJ0Iiwic2Nyb2xsIiwibm93IiwiTGltaXQiLCJ0b3VjaE1vdmVMaW1pdCIsImN1cnJNb3ZlVGltZSIsIl9kaXN0YW5jZSIsInNjcm9sbEVuZCIsIl9zY3JvbGxPcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFJQSxNQUFNLEdBQUc7QUFDWEMsU0FBTyxFQUFFLGlCQURFO0FBRVhDLFlBQVUsRUFBRSxFQUZEO0FBR1hDLFlBQVUsRUFBRSxDQUhEO0FBSVhDLGFBQVcsRUFBRSxFQUpGO0FBS1hDLGlCQUFlLEVBQUUsRUFMTjtBQU1YQyxjQUFZLEVBQUUsRUFOSDtBQU9YQyxpQkFBZSxFQUFFLEVBUE47QUFRWEMsU0FBTyxFQUFFLENBQUMsRUFBRCxFQUFLLEVBQUwsRUFBUyxFQUFULEVBQWEsRUFBYixDQVJFO0FBU1hDLFlBQVUsRUFBRSxDQVREO0FBVVhDLFFBQU0sRUFBRSxLQVZHO0FBV1hDLGVBQWEsRUFBRSxDQVhKO0FBWVhDLFVB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L0J0RSxlQUFTLEVBQUUsS0FGb0IsRUFBaEIsQ0FBakI7O0FBSUYsU0FBS25yQixJQUFMLEdBQVlBLElBQVo7QUFDRWlyQixjQUFVLENBQUNvRCxJQUFYLENBQWdCLElBQWhCLEVBQXNCcnVCLElBQUksQ0FBQ3hCLElBQTNCLEVBQWlDd0IsSUFBakMsRUFBdUMsS0FBS3pILE1BQTVDLEVBQW9ELEtBQUtrTSxPQUF6RDtBQUNBLFdBQU91bkIsYUFBYSxHQUFHeUQsU0FBdkI7QUFDRDtBQUNGLENBOUJEOztBQWdDQWpDLE9BQU8sQ0FBQ3pDLFNBQVIsQ0FBa0IyRSxTQUFsQixHQUE4QixVQUFTbHpCLENBQVQsRUFBWTtBQUN4QyxNQUFJLEtBQUt3RCxJQUFMLENBQVUrUixZQUFWLEtBQTJCLElBQS9CLEVBQXFDO0FBQ25DLFFBQUk0ZCxhQUFhLEdBQUcsS0FBS2p2QixZQUF6QjtBQUNFc3JCLGlCQUFhLEdBQUcyRCxhQUFhLENBQUMzRCxhQURoQztBQUVFbHNCLFlBQVEsR0FBRzZ2QixhQUFhLENBQUM3dkIsUUFGM0I7QUFHQSxTQUFLWSxZQUFMLENBQWtCc3JCLGFBQWxCLEdBQWtDQSxhQUFhLEdBQUdsc0IsUUFBbEQ7QUFDQSxTQUFLWSxZQUFMLENBQWtCWixRQUFsQixHQUE2QixDQUE3QjtBQUNEO0FBQ0YsQ0FSRCxDOztBQVVlMHRCLE8iLCJmaWxlIjoiNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiB1Q2hhcnRzwq5cclxuICog6auY5oCn6IO96Leo5bmz5Y+w5Zu+6KGo5bqT77yM5pSv5oyBSDXjgIFBUFDjgIHlsI/nqIvluo/vvIjlvq7kv6Ev5pSv5LuY5a6dL+eZvuW6pi/lpLTmnaEvUVEvMzYw77yJ44CBVnVl44CBVGFyb+etieaUr+aMgWNhbnZhc+eahOahhuaetuW5s+WPsFxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgUUlVTsKu56eL5LqRIGh0dHBzOi8vd3d3LnVjaGFydHMuY24gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxyXG4gKiDlpI3liLbkvb/nlKjor7fkv53nlZnmnKzmrrXms6jph4rvvIzmhJ/osKLmlK/mjIHlvIDmupDvvIFcclxuICogXHJcbiAqIHVDaGFydHPCruWumOaWuee9keermVxyXG4gKiBodHRwczovL3d3dy51Q2hhcnRzLmNuXHJcbiAqIFxyXG4gKiDlvIDmupDlnLDlnYA6XHJcbiAqIGh0dHBzOi8vZ2l0ZWUuY29tL3VDaGFydHMvdUNoYXJ0c1xyXG4gKiBcclxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxyXG4gKiBodHRwOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI3MVxyXG4gKiBcclxuICovXHJcblxyXG4ndXNlIHN0cmljdCc7XHJcblxyXG52YXIgY29uZmlnID0ge1xyXG4gIHZlcnNpb246ICd2Mi4zLjctMjAyMjAxMjInLFxyXG4gIHlBeGlzV2lkdGg6IDE1LFxyXG4gIHlBeGlzU3BsaXQ6IDUsXHJcbiAgeEF4aXNIZWlnaHQ6IDIyLFxyXG4gIHhBeGlzTGluZUhlaWdodDogMjIsXHJcbiAgbGVnZW5kSGVpZ2h0OiAxNSxcclxuICB5QXhpc1RpdGxlV2lkdGg6IDE1LFxyXG4gIHBhZGRpbmc6IFsxMCwgMTAsIDEwLCAxMF0sXHJcbiAgcGl4ZWxSYXRpbzogMSxcclxuICByb3RhdGU6IGZhbHNlLFxyXG4gIGNvbHVtZVBhZGRpbmc6IDMsXHJcbiAgZm9udFNpemU6IDEzLFxyXG4gIGZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gIGRhdGFQb2ludFNoYXBlOiBbJ2NpcmNsZScsICdjaXJjbGUnLCAnY2lyY2xlJywgJ2NpcmNsZSddLFxyXG4gIGNvbG9yOiBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ10sXHJcbiAgbGluZWFyQ29sb3I6IFsnIzBFRTJGOCcsICcjMkJEQ0E4JywgJyNGQTdEOEQnLCAnI0VCODhFMicsICcjMkFFM0EwJywgJyMwRUUyRjgnLCAnI0VCODhFMicsICcjNjc3M0UzJywgJyNGNzhBODUnXSxcclxuICBwaWVDaGFydExpbmVQYWRkaW5nOiAxNSxcclxuICBwaWVDaGFydFRleHRQYWRkaW5nOiA1LFxyXG4gIHhBeGlzVGV4dFBhZGRpbmc6IDMsXHJcbiAgdGl0bGVDb2xvcjogJyMzMzMzMzMnLFxyXG4gIHRpdGxlRm9udFNpemU6IDIwLFxyXG4gIHN1YnRpdGxlQ29sb3I6ICcjOTk5OTk5JyxcclxuICBzdWJ0aXRsZUZvbnRTaXplOiAxNSxcclxuICB0b29sVGlwUGFkZGluZzogMyxcclxuICB0b29sVGlwQmFja2dyb3VuZDogJyMwMDAwMDAnLFxyXG4gIHRvb2xUaXBPcGFjaXR5OiAwLjcsXHJcbiAgdG9vbFRpcExpbmVIZWlnaHQ6IDIwLFxyXG4gIHJhZGFyTGFiZWxUZXh0TWFyZ2luOiAxMyxcclxuICBnYXVnZUxhYmVsVGV4dE1hcmdpbjogMTNcclxufTtcclxuXHJcbnZhciBhc3NpZ24gPSBmdW5jdGlvbih0YXJnZXQsIC4uLnZhckFyZ3MpIHtcclxuICBpZiAodGFyZ2V0ID09IG51bGwpIHtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1t1Q2hhcnRzXSBDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QnKTtcclxuICB9XHJcbiAgaWYgKCF2YXJBcmdzIHx8IHZhckFyZ3MubGVuZ3RoIDw9IDApIHtcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgfVxyXG4gIC8vIOa3seW6puWQiOW5tuWvueixoVxyXG4gIGZ1bmN0aW9uIGRlZXBBc3NpZ24ob2JqMSwgb2JqMikge1xyXG4gICAgZm9yIChsZXQga2V5IGluIG9iajIpIHtcclxuICAgICAgb2JqMVtrZXldID0gb2JqMVtrZXldICYmIG9iajFba2V5XS50b1N0cmluZygpID09PSBcIltvYmplY3QgT2JqZWN0XVwiID9cclxuICAgICAgICBkZWVwQXNzaWduKG9iajFba2V5XSwgb2JqMltrZXldKSA6IG9iajFba2V5XSA9IG9iajJba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmoxO1xyXG4gIH1cclxuICB2YXJBcmdzLmZvckVhY2godmFsID0+IHtcclxuICAgIHRhcmdldCA9IGRlZXBBc3NpZ24odGFyZ2V0LCB2YWwpO1xyXG4gIH0pO1xyXG4gIHJldHVybiB0YXJnZXQ7XHJcbn07XHJcblxyXG52YXIgdXRpbCA9IHtcclxuICB0b0ZpeGVkOiBmdW5jdGlvbiB0b0ZpeGVkKG51bSwgbGltaXQpIHtcclxuICAgIGxpbWl0ID0gbGltaXQgfHwgMjtcclxuICAgIGlmICh0aGlzLmlzRmxvYXQobnVtKSkge1xyXG4gICAgICBudW0gPSBudW0udG9GaXhlZChsaW1pdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVtO1xyXG4gIH0sXHJcbiAgaXNGbG9hdDogZnVuY3Rpb24gaXNGbG9hdChudW0pIHtcclxuICAgIHJldHVybiBudW0gJSAxICE9PSAwO1xyXG4gIH0sXHJcbiAgYXBwcm94aW1hdGVseUVxdWFsOiBmdW5jdGlvbiBhcHByb3hpbWF0ZWx5RXF1YWwobnVtMSwgbnVtMikge1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKG51bTEgLSBudW0yKSA8IDFlLTEwO1xyXG4gIH0sXHJcbiAgaXNTYW1lU2lnbjogZnVuY3Rpb24gaXNTYW1lU2lnbihudW0xLCBudW0yKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMobnVtMSkgPT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgPT09IG51bTIgfHwgTWF0aC5hYnMobnVtMSkgIT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgIT09IG51bTI7XHJcbiAgfSxcclxuICBpc1NhbWVYQ29vcmRpbmF0ZUFyZWE6IGZ1bmN0aW9uIGlzU2FtZVhDb29yZGluYXRlQXJlYShwMSwgcDIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzU2FtZVNpZ24ocDEueCwgcDIueCk7XHJcbiAgfSxcclxuICBpc0NvbGxpc2lvbjogZnVuY3Rpb24gaXNDb2xsaXNpb24ob2JqMSwgb2JqMikge1xyXG4gICAgb2JqMS5lbmQgPSB7fTtcclxuICAgIG9iajEuZW5kLnggPSBvYmoxLnN0YXJ0LnggKyBvYmoxLndpZHRoO1xyXG4gICAgb2JqMS5lbmQueSA9IG9iajEuc3RhcnQueSAtIG9iajEuaGVpZ2h0O1xyXG4gICAgb2JqMi5lbmQgPSB7fTtcclxuICAgIG9iajIuZW5kLnggPSBvYmoyLnN0YXJ0LnggKyBvYmoyLndpZHRoO1xyXG4gICAgb2JqMi5lbmQueSA9IG9iajIuc3RhcnQueSAtIG9iajIuaGVpZ2h0O1xyXG4gICAgdmFyIGZsYWcgPSBvYmoyLnN0YXJ0LnggPiBvYmoxLmVuZC54IHx8IG9iajIuZW5kLnggPCBvYmoxLnN0YXJ0LnggfHwgb2JqMi5lbmQueSA+IG9iajEuc3RhcnQueSB8fCBvYmoyLnN0YXJ0LnkgPCBvYmoxLmVuZC55O1xyXG4gICAgcmV0dXJuICFmbGFnO1xyXG4gIH1cclxufTtcclxuXHJcbi8v5YW85a65SDXngrnlh7vkuovku7ZcclxuZnVuY3Rpb24gZ2V0SDVPZmZzZXQoZSkge1xyXG4gIGUubXAgPSB7XHJcbiAgICBjaGFuZ2VkVG91Y2hlczogW11cclxuICB9O1xyXG4gIGUubXAuY2hhbmdlZFRvdWNoZXMucHVzaCh7XHJcbiAgICB4OiBlLm9mZnNldFgsXHJcbiAgICB5OiBlLm9mZnNldFlcclxuICB9KTtcclxuICByZXR1cm4gZTtcclxufVxyXG5cclxuLy8g57uP57qs5bqm6L2s5aKo5Y2h5omYXHJcbmZ1bmN0aW9uIGxvbmxhdDJtZXJjYXRvcihsb25naXR1ZGUsIGxhdGl0dWRlKSB7XHJcbiAgdmFyIG1lcmNhdG9yID0gQXJyYXkoMik7XHJcbiAgdmFyIHggPSBsb25naXR1ZGUgKiAyMDAzNzUwOC4zNCAvIDE4MDtcclxuICB2YXIgeSA9IE1hdGgubG9nKE1hdGgudGFuKCg5MCArIGxhdGl0dWRlKSAqIE1hdGguUEkgLyAzNjApKSAvIChNYXRoLlBJIC8gMTgwKTtcclxuICB5ID0geSAqIDIwMDM3NTA4LjM0IC8gMTgwO1xyXG4gIG1lcmNhdG9yWzBdID0geDtcclxuICBtZXJjYXRvclsxXSA9IHk7XHJcbiAgcmV0dXJuIG1lcmNhdG9yO1xyXG59XHJcblxyXG4vLyDloqjljaHmiZjovaznu4/nuqzluqZcclxuZnVuY3Rpb24gbWVyY2F0b3IybG9ubGF0KGxvbmdpdHVkZSwgbGF0aXR1ZGUpIHtcclxuICB2YXIgbG9ubGF0ID0gQXJyYXkoMilcclxuICB2YXIgeCA9IGxvbmdpdHVkZSAvIDIwMDM3NTA4LjM0ICogMTgwO1xyXG4gIHZhciB5ID0gbGF0aXR1ZGUgLyAyMDAzNzUwOC4zNCAqIDE4MDtcclxuICB5ID0gMTgwIC8gTWF0aC5QSSAqICgyICogTWF0aC5hdGFuKE1hdGguZXhwKHkgKiBNYXRoLlBJIC8gMTgwKSkgLSBNYXRoLlBJIC8gMik7XHJcbiAgbG9ubGF0WzBdID0geDtcclxuICBsb25sYXRbMV0gPSB5O1xyXG4gIHJldHVybiBsb25sYXQ7XHJcbn1cclxuXHJcbi8vIGhleCDovawgcmdiYVxyXG5mdW5jdGlvbiBoZXhUb1JnYihoZXhWYWx1ZSwgb3BjKSB7XHJcbiAgdmFyIHJneCA9IC9eIz8oW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkkL2k7XHJcbiAgdmFyIGhleCA9IGhleFZhbHVlLnJlcGxhY2Uocmd4LCBmdW5jdGlvbihtLCByLCBnLCBiKSB7XHJcbiAgICByZXR1cm4gciArIHIgKyBnICsgZyArIGIgKyBiO1xyXG4gIH0pO1xyXG4gIHZhciByZ2IgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4KTtcclxuICB2YXIgciA9IHBhcnNlSW50KHJnYlsxXSwgMTYpO1xyXG4gIHZhciBnID0gcGFyc2VJbnQocmdiWzJdLCAxNik7XHJcbiAgdmFyIGIgPSBwYXJzZUludChyZ2JbM10sIDE2KTtcclxuICByZXR1cm4gJ3JnYmEoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcsJyArIG9wYyArICcpJztcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJhbmdlKG51bSwgdHlwZSwgbGltaXQpIHtcclxuICBpZiAoaXNOYU4obnVtKSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdbdUNoYXJ0c10gc2VyaWVz5pWw5o2u6ZyA5Li6TnVtYmVy5qC85byPJyk7XHJcbiAgfVxyXG4gIGxpbWl0ID0gbGltaXQgfHwgMTA7XHJcbiAgdHlwZSA9IHR5cGUgPyB0eXBlIDogJ3VwcGVyJztcclxuICB2YXIgbXVsdGlwbGUgPSAxO1xyXG4gIHdoaWxlIChsaW1pdCA8IDEpIHtcclxuICAgIGxpbWl0ICo9IDEwO1xyXG4gICAgbXVsdGlwbGUgKj0gMTA7XHJcbiAgfVxyXG4gIGlmICh0eXBlID09PSAndXBwZXInKSB7XHJcbiAgICBudW0gPSBNYXRoLmNlaWwobnVtICogbXVsdGlwbGUpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBudW0gPSBNYXRoLmZsb29yKG51bSAqIG11bHRpcGxlKTtcclxuICB9XHJcbiAgd2hpbGUgKG51bSAlIGxpbWl0ICE9PSAwKSB7XHJcbiAgICBpZiAodHlwZSA9PT0gJ3VwcGVyJykge1xyXG4gICAgICBudW0rKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG51bS0tO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbnVtIC8gbXVsdGlwbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhbmRsZU1BKGRheUFyciwgbmFtZUFyciwgY29sb3JBcnIsIGtkYXRhKSB7XHJcbiAgbGV0IHNlcmllc1RlbXAgPSBbXTtcclxuICBmb3IgKGxldCBrID0gMDsgayA8IGRheUFyci5sZW5ndGg7IGsrKykge1xyXG4gICAgbGV0IHNlcmllc0l0ZW0gPSB7XHJcbiAgICAgIGRhdGE6IFtdLFxyXG4gICAgICBuYW1lOiBuYW1lQXJyW2tdLFxyXG4gICAgICBjb2xvcjogY29sb3JBcnJba11cclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0ga2RhdGEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGkgPCBkYXlBcnJba10pIHtcclxuICAgICAgICBzZXJpZXNJdGVtLmRhdGEucHVzaChudWxsKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc3VtID0gMDtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkYXlBcnJba107IGorKykge1xyXG4gICAgICAgIHN1bSArPSBrZGF0YVtpIC0gal1bMV07XHJcbiAgICAgIH1cclxuICAgICAgc2VyaWVzSXRlbS5kYXRhLnB1c2goKyhzdW0gLyBkYXlBcnJba10pLnRvRml4ZWQoMykpO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzVGVtcC5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzVGVtcDtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsVmFsaWREaXN0YW5jZShzZWxmLCBkaXN0YW5jZSwgY2hhcnREYXRhLCBjb25maWcsIG9wdHMpIHtcclxuICB2YXIgZGF0YUNoYXJ0QXJlYVdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICB2YXIgZGF0YUNoYXJ0V2lkdGggPSBjaGFydERhdGEuZWFjaFNwYWNpbmcgKiAob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIHZhciB2YWxpZERpc3RhbmNlID0gZGlzdGFuY2U7XHJcbiAgaWYgKGRpc3RhbmNlID49IDApIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSAwO1xyXG4gICAgc2VsZi51ZXZlbnQudHJpZ2dlcignc2Nyb2xsTGVmdCcpO1xyXG4gICAgc2VsZi5zY3JvbGxPcHRpb24ucG9zaXRpb24gPSAnbGVmdCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAnbGVmdCc7XHJcbiAgfSBlbHNlIGlmIChNYXRoLmFicyhkaXN0YW5jZSkgPj0gZGF0YUNoYXJ0V2lkdGggLSBkYXRhQ2hhcnRBcmVhV2lkdGgpIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSBkYXRhQ2hhcnRBcmVhV2lkdGggLSBkYXRhQ2hhcnRXaWR0aDtcclxuICAgIHNlbGYudWV2ZW50LnRyaWdnZXIoJ3Njcm9sbFJpZ2h0Jyk7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9ICdyaWdodCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAncmlnaHQnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9IGRpc3RhbmNlXHJcbiAgICBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uID0gZGlzdGFuY2U7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZERpc3RhbmNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0luQW5nbGVSYW5nZShhbmdsZSwgc3RhcnRBbmdsZSwgZW5kQW5nbGUpIHtcclxuICBmdW5jdGlvbiBhZGp1c3QoYW5nbGUpIHtcclxuICAgIHdoaWxlIChhbmdsZSA8IDApIHtcclxuICAgICAgYW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoYW5nbGUgPiAyICogTWF0aC5QSSkge1xyXG4gICAgICBhbmdsZSAtPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbmdsZTtcclxuICB9XHJcbiAgYW5nbGUgPSBhZGp1c3QoYW5nbGUpO1xyXG4gIHN0YXJ0QW5nbGUgPSBhZGp1c3Qoc3RhcnRBbmdsZSk7XHJcbiAgZW5kQW5nbGUgPSBhZGp1c3QoZW5kQW5nbGUpO1xyXG4gIGlmIChzdGFydEFuZ2xlID4gZW5kQW5nbGUpIHtcclxuICAgIGVuZEFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgaWYgKGFuZ2xlIDwgc3RhcnRBbmdsZSkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGFuZ2xlID49IHN0YXJ0QW5nbGUgJiYgYW5nbGUgPD0gZW5kQW5nbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFJvdGF0ZVRyYW5zbGF0ZSh4LCB5LCBoKSB7XHJcbiAgdmFyIHh2ID0geDtcclxuICB2YXIgeXYgPSBoIC0geTtcclxuICB2YXIgdHJhbnNYID0geHYgKyAoaCAtIHl2IC0geHYpIC8gTWF0aC5zcXJ0KDIpO1xyXG4gIHRyYW5zWCAqPSAtMTtcclxuICB2YXIgdHJhbnNZID0gKGggLSB5dikgKiAoTWF0aC5zcXJ0KDIpIC0gMSkgLSAoaCAtIHl2IC0geHYpIC8gTWF0aC5zcXJ0KDIpO1xyXG4gIHJldHVybiB7XHJcbiAgICB0cmFuc1g6IHRyYW5zWCxcclxuICAgIHRyYW5zWTogdHJhbnNZXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaSkge1xyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSB7XHJcbiAgICBpZiAocG9pbnRzW2kgLSAxXSAmJiBwb2ludHNbaSArIDFdKSB7XHJcbiAgICAgIHJldHVybiBwb2ludHNbaV0ueSA+PSBNYXRoLm1heChwb2ludHNbaSAtIDFdLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcG9pbnRzW2ldLnkgPD0gTWF0aC5taW4ocG9pbnRzW2kgLSAxXS55LFxyXG4gICAgICAgIHBvaW50c1tpICsgMV0ueSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnRYKHBvaW50cywgaSkge1xyXG4gICAgaWYgKHBvaW50c1tpIC0gMV0gJiYgcG9pbnRzW2kgKyAxXSkge1xyXG4gICAgICByZXR1cm4gcG9pbnRzW2ldLnggPj0gTWF0aC5tYXgocG9pbnRzW2kgLSAxXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBvaW50c1tpXS54IDw9IE1hdGgubWluKHBvaW50c1tpIC0gMV0ueCxcclxuICAgICAgICBwb2ludHNbaSArIDFdLngpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICB2YXIgYSA9IDAuMjtcclxuICB2YXIgYiA9IDAuMjtcclxuICB2YXIgcEF4ID0gbnVsbDtcclxuICB2YXIgcEF5ID0gbnVsbDtcclxuICB2YXIgcEJ4ID0gbnVsbDtcclxuICB2YXIgcEJ5ID0gbnVsbDtcclxuICBpZiAoaSA8IDEpIHtcclxuICAgIHBBeCA9IHBvaW50c1swXS54ICsgKHBvaW50c1sxXS54IC0gcG9pbnRzWzBdLngpICogYTtcclxuICAgIHBBeSA9IHBvaW50c1swXS55ICsgKHBvaW50c1sxXS55IC0gcG9pbnRzWzBdLnkpICogYTtcclxuICB9IGVsc2Uge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLnggKyAocG9pbnRzW2kgKyAxXS54IC0gcG9pbnRzW2kgLSAxXS54KSAqIGE7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueSArIChwb2ludHNbaSArIDFdLnkgLSBwb2ludHNbaSAtIDFdLnkpICogYTtcclxuICB9XHJcblxyXG4gIGlmIChpID4gcG9pbnRzLmxlbmd0aCAtIDMpIHtcclxuICAgIHZhciBsYXN0ID0gcG9pbnRzLmxlbmd0aCAtIDE7XHJcbiAgICBwQnggPSBwb2ludHNbbGFzdF0ueCAtIChwb2ludHNbbGFzdF0ueCAtIHBvaW50c1tsYXN0IC0gMV0ueCkgKiBiO1xyXG4gICAgcEJ5ID0gcG9pbnRzW2xhc3RdLnkgLSAocG9pbnRzW2xhc3RdLnkgLSBwb2ludHNbbGFzdCAtIDFdLnkpICogYjtcclxuICB9IGVsc2Uge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54IC0gKHBvaW50c1tpICsgMl0ueCAtIHBvaW50c1tpXS54KSAqIGI7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnkgLSAocG9pbnRzW2kgKyAyXS55IC0gcG9pbnRzW2ldLnkpICogYjtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpICsgMSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSkge1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnk7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50WChwb2ludHMsIGkgKyAxKSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICBpZiAoaXNOb3RNaWRkbGVQb2ludFgocG9pbnRzLCBpKSkge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLng7XHJcbiAgfVxyXG4gIGlmIChwQXkgPj0gTWF0aC5tYXgocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcEF5IDw9IE1hdGgubWluKHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpKSB7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueTtcclxuICB9XHJcbiAgaWYgKHBCeSA+PSBNYXRoLm1heChwb2ludHNbaV0ueSwgcG9pbnRzW2kgKyAxXS55KSB8fCBwQnkgPD0gTWF0aC5taW4ocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKHBBeCA+PSBNYXRoLm1heChwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwQXggPD0gTWF0aC5taW4ocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkpIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54O1xyXG4gIH1cclxuICBpZiAocEJ4ID49IE1hdGgubWF4KHBvaW50c1tpXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBCeCA8PSBNYXRoLm1pbihwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY3RyQToge1xyXG4gICAgICB4OiBwQXgsXHJcbiAgICAgIHk6IHBBeVxyXG4gICAgfSxcclxuICAgIGN0ckI6IHtcclxuICAgICAgeDogcEJ4LFxyXG4gICAgICB5OiBwQnlcclxuICAgIH1cclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbih4LCB5LCBjZW50ZXIpIHtcclxuICByZXR1cm4ge1xyXG4gICAgeDogY2VudGVyLnggKyB4LFxyXG4gICAgeTogY2VudGVyLnkgLSB5XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYXZvaWRDb2xsaXNpb24ob2JqLCB0YXJnZXQpIHtcclxuICBpZiAodGFyZ2V0KSB7XHJcbiAgICAvLyBpcyBjb2xsaXNpb24gdGVzdFxyXG4gICAgd2hpbGUgKHV0aWwuaXNDb2xsaXNpb24ob2JqLCB0YXJnZXQpKSB7XHJcbiAgICAgIGlmIChvYmouc3RhcnQueCA+IDApIHtcclxuICAgICAgICBvYmouc3RhcnQueS0tO1xyXG4gICAgICB9IGVsc2UgaWYgKG9iai5zdGFydC54IDwgMCkge1xyXG4gICAgICAgIG9iai5zdGFydC55Kys7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9iai5zdGFydC55ID4gMCkge1xyXG4gICAgICAgICAgb2JqLnN0YXJ0LnkrKztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb2JqLnN0YXJ0LnktLTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4UGllU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKXtcclxuICBsZXQgcGllU2VyaWVzQXJyID0gW107XHJcbiAgaWYoc2VyaWVzLmxlbmd0aD4wICYmIHNlcmllc1swXS5kYXRhLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKXtcclxuICAgIG9wdHMuX3BpZVNlcmllc18gPSBzZXJpZXM7XHJcbiAgICBsZXQgb2xkc2VyaWVzID0gc2VyaWVzWzBdLmRhdGE7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9sZHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBvbGRzZXJpZXNbaV0uZm9ybWF0dGVyID0gc2VyaWVzWzBdLmZvcm1hdHRlcjtcclxuICAgICAgb2xkc2VyaWVzW2ldLmRhdGEgPSBvbGRzZXJpZXNbaV0udmFsdWU7XHJcbiAgICAgIHBpZVNlcmllc0Fyci5wdXNoKG9sZHNlcmllc1tpXSk7XHJcbiAgICB9XHJcbiAgICBvcHRzLnNlcmllcyA9IHBpZVNlcmllc0FycjtcclxuICB9ZWxzZXtcclxuICAgIHBpZVNlcmllc0FyciA9IHNlcmllcztcclxuICB9XHJcbiAgcmV0dXJuIHBpZVNlcmllc0FycjtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsbFNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBpbmRleCA9IDA7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaWYgKCFpdGVtLmNvbG9yKSB7XHJcbiAgICAgIGl0ZW0uY29sb3IgPSBjb25maWcuY29sb3JbaW5kZXhdO1xyXG4gICAgICBpbmRleCA9IChpbmRleCArIDEpICUgY29uZmlnLmNvbG9yLmxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5saW5lYXJJbmRleCkge1xyXG4gICAgICBpdGVtLmxpbmVhckluZGV4ID0gaTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5pbmRleCkge1xyXG4gICAgICBpdGVtLmluZGV4ID0gMDtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS50eXBlKSB7XHJcbiAgICAgIGl0ZW0udHlwZSA9IG9wdHMudHlwZTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgaXRlbS5zaG93ID09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgaXRlbS5zaG93ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS50eXBlKSB7XHJcbiAgICAgIGl0ZW0udHlwZSA9IG9wdHMudHlwZTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5wb2ludFNoYXBlKSB7XHJcbiAgICAgIGl0ZW0ucG9pbnRTaGFwZSA9IFwiY2lyY2xlXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ubGVnZW5kU2hhcGUpIHtcclxuICAgICAgc3dpdGNoIChpdGVtLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdsaW5lJzpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcImxpbmVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NvbHVtbic6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJyZWN0XCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhcmVhJzpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcInRyaWFuZ2xlXCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdiYXInOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwicmVjdFwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxDdXN0b21Db2xvcihsaW5lYXJUeXBlLCBjdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpIHtcclxuICB2YXIgbmV3Y29sb3IgPSBjdXN0b21Db2xvciB8fCBbXTtcclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPT0gMCApIHtcclxuICAgIG5ld2NvbG9yID0gY29uZmlnLmxpbmVhckNvbG9yO1xyXG4gIH1cclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPCBzZXJpZXMubGVuZ3RoKSB7XHJcbiAgICBsZXQgY2hhemhpID0gc2VyaWVzLmxlbmd0aCAtIG5ld2NvbG9yLmxlbmd0aDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhemhpOyBpKyspIHtcclxuICAgICAgbmV3Y29sb3IucHVzaChjb25maWcubGluZWFyQ29sb3JbKGkgKyAxKSAlIGNvbmZpZy5saW5lYXJDb2xvci5sZW5ndGhdKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG5ld2NvbG9yO1xyXG59XHJcbiAgXHJcbmZ1bmN0aW9uIGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKSB7XHJcbiAgdmFyIGxpbWl0ID0gMDtcclxuICB2YXIgcmFuZ2UgPSBtYXhEYXRhIC0gbWluRGF0YTtcclxuICBpZiAocmFuZ2UgPj0gMTAwMDApIHtcclxuICAgIGxpbWl0ID0gMTAwMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwMDApIHtcclxuICAgIGxpbWl0ID0gMTAwO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMTAwKSB7XHJcbiAgICBsaW1pdCA9IDEwO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMTApIHtcclxuICAgIGxpbWl0ID0gNTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEpIHtcclxuICAgIGxpbWl0ID0gMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMSkge1xyXG4gICAgbGltaXQgPSAwLjE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAwMSkge1xyXG4gICAgbGltaXQgPSAwLjAwMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDAwMSkge1xyXG4gICAgbGltaXQgPSAwLjAwMDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAwMDAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDAwMDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIGxpbWl0ID0gMC4wMDAwMDE7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBtaW5SYW5nZTogZmluZFJhbmdlKG1pbkRhdGEsICdsb3dlcicsIGxpbWl0KSxcclxuICAgIG1heFJhbmdlOiBmaW5kUmFuZ2UobWF4RGF0YSwgJ3VwcGVyJywgbGltaXQpXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpIHtcclxuICB2YXIgd2lkdGggPSAwO1xyXG4gIHRleHQgPSBTdHJpbmcodGV4dCk7XHJcblxyXG5cclxuXHJcbiAgaWYgKGNvbnRleHQgIT09IGZhbHNlICYmIGNvbnRleHQgIT09IHVuZGVmaW5lZCAmJiBjb250ZXh0LnNldEZvbnRTaXplICYmIGNvbnRleHQubWVhc3VyZVRleHQpIHtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgcmV0dXJuIGNvbnRleHQubWVhc3VyZVRleHQodGV4dCkud2lkdGg7XHJcbiAgfSBlbHNlIHtcclxuICAgIHZhciB0ZXh0ID0gdGV4dC5zcGxpdCgnJyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSB0ZXh0W2ldO1xyXG4gICAgICBpZiAoL1thLXpBLVpdLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gNztcclxuICAgICAgfSBlbHNlIGlmICgvWzAtOV0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSA1LjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1xcLi8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDIuNztcclxuICAgICAgfSBlbHNlIGlmICgvLS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDMuMjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoLzovLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAyLjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1tcXHU0ZTAwLVxcdTlmYTVdLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1xcKHxcXCkvLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAzLjczO1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXHMvLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAyLjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoLyUvLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSA4O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoICs9IDEwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkdGggKiBmb250U2l6ZSAvIDEwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZGF0YUNvbWJpbmUoc2VyaWVzKSB7XHJcbiAgcmV0dXJuIHNlcmllcy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikge1xyXG4gICAgcmV0dXJuIChhLmRhdGEgPyBhLmRhdGEgOiBhKS5jb25jYXQoYi5kYXRhKTtcclxuICB9LCBbXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBsZW4pIHtcclxuICB2YXIgc3VtID0gbmV3IEFycmF5KGxlbik7XHJcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBzdW0ubGVuZ3RoOyBqKyspIHtcclxuICAgIHN1bVtqXSA9IDA7XHJcbiAgfVxyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN1bS5sZW5ndGg7IGorKykge1xyXG4gICAgICBzdW1bal0gKz0gc2VyaWVzW2ldLmRhdGFbal07XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgIHJldHVybiAoYS5kYXRhID8gYS5kYXRhIDogYSkuY29uY2F0KGIuZGF0YSkuY29uY2F0KHN1bSk7XHJcbiAgfSwgW10pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRUb3VjaGVzKHRvdWNoZXMsIG9wdHMsIGUpIHtcclxuICBsZXQgeCwgeTtcclxuICBpZiAodG91Y2hlcy5jbGllbnRYKSB7XHJcbiAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgeSA9IG9wdHMuaGVpZ2h0IC0gdG91Y2hlcy5jbGllbnRYICogb3B0cy5waXg7XHJcbiAgICAgIHggPSAodG91Y2hlcy5wYWdlWSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgLSAob3B0cy5oZWlnaHQgLyBvcHRzLnBpeCAvIDIpICogKG9wdHMucGl4IC0gMSkpICogb3B0cy5waXg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB4ID0gdG91Y2hlcy5jbGllbnRYICogb3B0cy5waXg7XHJcbiAgICAgIHkgPSAodG91Y2hlcy5wYWdlWSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgLSAob3B0cy5oZWlnaHQgLyBvcHRzLnBpeCAvIDIpICogKG9wdHMucGl4IC0gMSkpICogb3B0cy5waXg7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICB5ID0gb3B0cy5oZWlnaHQgLSB0b3VjaGVzLnggKiBvcHRzLnBpeDtcclxuICAgICAgeCA9IHRvdWNoZXMueSAqIG9wdHMucGl4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgeCA9IHRvdWNoZXMueCAqIG9wdHMucGl4O1xyXG4gICAgICB5ID0gdG91Y2hlcy55ICogb3B0cy5waXg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICB4OiB4LFxyXG4gICAgeTogeVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U2VyaWVzRGF0YUl0ZW0oc2VyaWVzLCBpbmRleCwgZ3JvdXApIHtcclxuICB2YXIgZGF0YSA9IFtdO1xyXG4gIHZhciBuZXdTZXJpZXMgPSBbXTtcclxuICB2YXIgaW5kZXhJc0FyciA9IGluZGV4LmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xO1xyXG4gIGlmKGluZGV4SXNBcnIpe1xyXG4gICAgbGV0IHRlbXBTZXJpZXMgPSBmaWx0ZXJTZXJpZXMoc2VyaWVzKTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JvdXAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbmV3U2VyaWVzLnB1c2godGVtcFNlcmllc1tncm91cFtpXV0pO1xyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgbmV3U2VyaWVzID0gc2VyaWVzO1xyXG4gIH07XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZXdTZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gbmV3U2VyaWVzW2ldO1xyXG4gICAgbGV0IHRtcGluZGV4ID0gLTE7XHJcbiAgICBpZihpbmRleElzQXJyKXtcclxuICAgICAgdG1waW5kZXggPSBpbmRleFtpXTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0bXBpbmRleCA9IGluZGV4O1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uZGF0YVt0bXBpbmRleF0gIT09IG51bGwgJiYgdHlwZW9mIGl0ZW0uZGF0YVt0bXBpbmRleF0gIT09ICd1bmRlZmluZWQnICYmIGl0ZW0uc2hvdykge1xyXG4gICAgICBsZXQgc2VyaWVzSXRlbSA9IHt9O1xyXG4gICAgICBzZXJpZXNJdGVtLmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgc2VyaWVzSXRlbS50eXBlID0gaXRlbS50eXBlO1xyXG4gICAgICBzZXJpZXNJdGVtLnN0eWxlID0gaXRlbS5zdHlsZTtcclxuICAgICAgc2VyaWVzSXRlbS5wb2ludFNoYXBlID0gaXRlbS5wb2ludFNoYXBlO1xyXG4gICAgICBzZXJpZXNJdGVtLmRpc2FibGVMZWdlbmQgPSBpdGVtLmRpc2FibGVMZWdlbmQ7XHJcbiAgICAgIHNlcmllc0l0ZW0ubmFtZSA9IGl0ZW0ubmFtZTtcclxuICAgICAgc2VyaWVzSXRlbS5zaG93ID0gaXRlbS5zaG93O1xyXG4gICAgICBzZXJpZXNJdGVtLmRhdGEgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKGl0ZW0uZGF0YVt0bXBpbmRleF0pIDogaXRlbS5kYXRhW3RtcGluZGV4XTtcclxuICAgICAgZGF0YS5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZGF0YTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWF4VGV4dExpc3RMZW5ndGgobGlzdCwgZm9udFNpemUsIGNvbnRleHQpIHtcclxuICB2YXIgbGVuZ3RoTGlzdCA9IGxpc3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBmb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsIGxlbmd0aExpc3QpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMobGVuZ3RoKSB7XHJcbiAgdmFyIGVhY2hBbmdsZSA9IDIgKiBNYXRoLlBJIC8gbGVuZ3RoO1xyXG4gIHZhciBDb29yZGluYXRlU2VyaWVzID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgQ29vcmRpbmF0ZVNlcmllcy5wdXNoKGVhY2hBbmdsZSAqIGkpO1xyXG4gIH1cclxuICByZXR1cm4gQ29vcmRpbmF0ZVNlcmllcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgcmV0dXJuIC0xICogaXRlbSArIE1hdGguUEkgLyAyO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCBvcHRzLCBpbmRleCwgZ3JvdXAsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiB7fTtcclxuICB2YXIgY2FsUG9pbnRzID0gb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzP29wdHMuY2hhcnREYXRhLmNhbFBvaW50czpbXTtcclxuICBsZXQgcG9pbnRzID0ge307XHJcbiAgaWYoZ3JvdXAubGVuZ3RoID4gMCl7XHJcbiAgICBsZXQgZmlsdGVyUG9pbnRzID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZpbHRlclBvaW50cy5wdXNoKGNhbFBvaW50c1tncm91cFtpXV0pXHJcbiAgICB9XHJcbiAgICBwb2ludHMgPSBmaWx0ZXJQb2ludHNbMF1baW5kZXhbMF1dO1xyXG4gIH1lbHNle1xyXG4gICAgcG9pbnRzID0gY2FsUG9pbnRzWzBdW2luZGV4XTtcclxuICB9O1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGxldCB0aXRsZVRleHQgPSBudWxsO1xyXG4gICAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoPjApIHtcclxuICAgICAgdGl0bGVUZXh0ID0gY2F0ZWdvcmllc1tpbmRleF07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGl0bGVUZXh0LCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvclxyXG4gICAgfTtcclxuICB9KTtcclxuICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgeDogTWF0aC5yb3VuZChwb2ludHMueCksXHJcbiAgICB5OiBNYXRoLnJvdW5kKHBvaW50cy55KVxyXG4gIH07XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB7fTtcclxuICB2YXIgcG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHNbaW5kZXhdICsgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIGNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgZGlzYWJsZUxlZ2VuZDogaXRlbS5kaXNhYmxlTGVnZW5kID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIHRleHRMaXN0ID0gdGV4dExpc3QuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtLmRpc2FibGVMZWdlbmQgIT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IE1hdGgucm91bmQocG9pbnRzKSxcclxuICAgIHk6IDBcclxuICB9O1xyXG4gIHJldHVybiB7XHJcbiAgICB0ZXh0TGlzdDogdGV4dExpc3QsXHJcbiAgICBvZmZzZXQ6IG9mZnNldFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENhbmRsZVRvb2xUaXBEYXRhKHNlcmllcywgc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMsIGV4dHJhKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA2ICYmIGFyZ3VtZW50c1s2XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzZdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cztcclxuICBsZXQgdXBDb2xvciA9IGV4dHJhLmNvbG9yLnVwRmlsbDtcclxuICBsZXQgZG93bkNvbG9yID0gZXh0cmEuY29sb3IuZG93bkZpbGw7XHJcbiAgLy/popzoibLpobrluo/kuLrlvIDnm5jvvIzmlLbnm5jvvIzmnIDkvY7vvIzmnIDpq5hcclxuICBsZXQgY29sb3IgPSBbdXBDb2xvciwgdXBDb2xvciwgZG93bkNvbG9yLCB1cENvbG9yXTtcclxuICB2YXIgdGV4dExpc3QgPSBbXTtcclxuICBzZXJpZXNEYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaW5kZXggPT0gMCkge1xyXG4gICAgICBpZiAoaXRlbS5kYXRhWzFdIC0gaXRlbS5kYXRhWzBdIDwgMCkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbG9yWzFdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGl0ZW0uZGF0YVswXSA8IHNlcmllc1tpbmRleCAtIDFdWzFdKSB7XHJcbiAgICAgICAgY29sb3JbMF0gPSBkb3duQ29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uZGF0YVsxXSA8IGl0ZW0uZGF0YVswXSkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMl0gPiBzZXJpZXNbaW5kZXggLSAxXVsxXSkge1xyXG4gICAgICAgIGNvbG9yWzJdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5kYXRhWzNdIDwgc2VyaWVzW2luZGV4IC0gMV1bMV0pIHtcclxuICAgICAgICBjb2xvclszXSA9IGRvd25Db2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHRleHQxID0ge1xyXG4gICAgICB0ZXh0OiAn5byA55uY77yaJyArIGl0ZW0uZGF0YVswXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzBdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQyID0ge1xyXG4gICAgICB0ZXh0OiAn5pS255uY77yaJyArIGl0ZW0uZGF0YVsxXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzFdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQzID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA5L2O77yaJyArIGl0ZW0uZGF0YVsyXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzJdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQ0ID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA6auY77yaJyArIGl0ZW0uZGF0YVszXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzNdXHJcbiAgICB9O1xyXG4gICAgdGV4dExpc3QucHVzaCh0ZXh0MSwgdGV4dDIsIHRleHQzLCB0ZXh0NCk7XHJcbiAgfSk7XHJcbiAgdmFyIHZhbGlkQ2FsUG9pbnRzID0gW107XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IHBvaW50cyA9IGNhbFBvaW50c1tpXTtcclxuICAgIGlmICh0eXBlb2YgcG9pbnRzW2luZGV4XSAhPT0gJ3VuZGVmaW5lZCcgJiYgcG9pbnRzW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICB2YWxpZENhbFBvaW50cy5wdXNoKHBvaW50c1tpbmRleF0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQueCA9IE1hdGgucm91bmQodmFsaWRDYWxQb2ludHNbMF1bMF0ueCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsdGVyU2VyaWVzKHNlcmllcykge1xyXG4gIGxldCB0ZW1wU2VyaWVzID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChzZXJpZXNbaV0uc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgIHRlbXBTZXJpZXMucHVzaChzZXJpZXNbaV0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0ZW1wU2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kQ3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIGNhbFBvaW50cywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMDtcclxuICB2YXIgY3VycmVudD17IGluZGV4Oi0xLCBncm91cDpbXSB9O1xyXG4gIHZhciBzcGFjaW5nID0gb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IFtdO1xyXG4gIGlmIChjYWxQb2ludHMgJiYgY2FsUG9pbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgIHNwYWNpbmcgPSAwO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB4QXhpc1BvaW50cy5wdXNoKG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzW2ldIC0gc3BhY2luZyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScpICYmIG9wdHMueEF4aXMuYm91bmRhcnlHYXAgPT0gJ2p1c3RpZnknKSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlzSW5FeGFjdENoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBvcHRzLCBjb25maWcpKSB7XHJcbiAgICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgICAgbGV0IHRpbWVQb2ludHMgPSBBcnJheShjYWxQb2ludHMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGltZVBvaW50c1tpXSA9IEFycmF5KGNhbFBvaW50c1tpXS5sZW5ndGgpXHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNhbFBvaW50c1tpXS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICB0aW1lUG9pbnRzW2ldW2pdID0gKE1hdGguYWJzKGNhbFBvaW50c1tpXVtqXS54IC0gY3VycmVudFBvaW50cy54KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcG9pbnRWYWx1ZSA9ICBBcnJheSh0aW1lUG9pbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHBvaW50SW5kZXggPSAgQXJyYXkodGltZVBvaW50cy5sZW5ndGgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGltZVBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRWYWx1ZVtpXSA9IE1hdGgubWluLmFwcGx5KG51bGwsIHRpbWVQb2ludHNbaV0pO1xyXG4gICAgICAgICAgcG9pbnRJbmRleFtpXSA9IHRpbWVQb2ludHNbaV0uaW5kZXhPZihwb2ludFZhbHVlW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1pblZhbHVlID0gTWF0aC5taW4uYXBwbHkobnVsbCwgcG9pbnRWYWx1ZSk7XHJcbiAgICAgICAgY3VycmVudC5pbmRleCA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRWYWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYocG9pbnRWYWx1ZVtpXSA9PSBtaW5WYWx1ZSl7XHJcbiAgICAgICAgICAgIGN1cnJlbnQuZ3JvdXAucHVzaChpKTtcclxuICAgICAgICAgICAgY3VycmVudC5pbmRleC5wdXNoKHBvaW50SW5kZXhbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnggKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgICBjdXJyZW50LmluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRCYXJDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBjYWxQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDA7XHJcbiAgdmFyIGN1cnJlbnQ9eyBpbmRleDotMSwgZ3JvdXA6W10gfTtcclxuICB2YXIgc3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nIC8gMjtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cztcclxuICBpZiAoY2FsUG9pbnRzICYmIGNhbFBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykpIHtcclxuICAgICAgeUF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnkgKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgY3VycmVudC5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kTGVnZW5kSW5kZXgoY3VycmVudFBvaW50cywgbGVnZW5kRGF0YSwgb3B0cykge1xyXG4gIGxldCBjdXJyZW50SW5kZXggPSAtMTtcclxuICBsZXQgZ2FwID0gMDtcclxuICBpZiAoaXNJbkV4YWN0TGVnZW5kQXJlYShjdXJyZW50UG9pbnRzLCBsZWdlbmREYXRhLmFyZWEpKSB7XHJcbiAgICBsZXQgcG9pbnRzID0gbGVnZW5kRGF0YS5wb2ludHM7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBwb2ludHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgICAgbGV0IGFyZWEgPSBpdGVtW2pdWydhcmVhJ107XHJcbiAgICAgICAgaWYgKGFyZWEgJiYgY3VycmVudFBvaW50cy54ID4gYXJlYVswXSAtIGdhcCAmJiBjdXJyZW50UG9pbnRzLnggPCBhcmVhWzJdICsgZ2FwICYmIGN1cnJlbnRQb2ludHMueSA+IGFyZWFbMV0gLSBnYXAgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYVszXSArIGdhcCkge1xyXG4gICAgICAgICAgY3VycmVudEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdExlZ2VuZEFyZWEoY3VycmVudFBvaW50cywgYXJlYSkge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPiBhcmVhLnN0YXJ0LnggJiYgY3VycmVudFBvaW50cy54IDwgYXJlYS5lbmQueCAmJiBjdXJyZW50UG9pbnRzLnkgPiBhcmVhLnN0YXJ0LnkgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYS5lbmQueTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPD0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSArIDEwICYmIGN1cnJlbnRQb2ludHMueCA+PSBvcHRzLmFyZWFbM10gLSAxMCAmJiBjdXJyZW50UG9pbnRzLnkgPj0gb3B0cy5hcmVhWzBdICYmIGN1cnJlbnRQb2ludHMueSA8PSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcmFkYXJEYXRhLCBjb3VudCkge1xyXG4gIHZhciBlYWNoQW5nbGVBcmVhID0gMiAqIE1hdGguUEkgLyBjb3VudDtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgaWYgKGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCByYWRhckRhdGEuY2VudGVyLCByYWRhckRhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGZpeEFuZ2xlID0gZnVuY3Rpb24gZml4QW5nbGUoYW5nbGUpIHtcclxuICAgICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgICAgYW5nbGUgLT0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFuZ2xlO1xyXG4gICAgfTtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocmFkYXJEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSByYWRhckRhdGEuY2VudGVyLngpO1xyXG4gICAgYW5nbGUgPSAtMSAqIGFuZ2xlO1xyXG4gICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHZhciBhbmdsZUxpc3QgPSByYWRhckRhdGEuYW5nbGVMaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAgIGl0ZW0gPSBmaXhBbmdsZSgtMSAqIGl0ZW0pO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgdmFyIHJhbmdlU3RhcnQgPSBmaXhBbmdsZShpdGVtIC0gZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICB2YXIgcmFuZ2VFbmQgPSBmaXhBbmdsZShpdGVtICsgZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICBpZiAocmFuZ2VFbmQgPCByYW5nZVN0YXJ0KSB7XHJcbiAgICAgICAgcmFuZ2VFbmQgKz0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFuZ2xlID49IHJhbmdlU3RhcnQgJiYgYW5nbGUgPD0gcmFuZ2VFbmQgfHwgYW5nbGUgKyAyICogTWF0aC5QSSA+PSByYW5nZVN0YXJ0ICYmIGFuZ2xlICsgMiAqIE1hdGguUEkgPD0gcmFuZ2VFbmQpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBmdW5uZWxEYXRhKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5uZWxEYXRhLnNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIGl0ZW0gPSBmdW5uZWxEYXRhLnNlcmllc1tpXTtcclxuICAgIGlmIChjdXJyZW50UG9pbnRzLnggPiBpdGVtLmZ1bm5lbEFyZWFbMF0gJiYgY3VycmVudFBvaW50cy54IDwgaXRlbS5mdW5uZWxBcmVhWzJdICYmIGN1cnJlbnRQb2ludHMueSA+IGl0ZW0uZnVubmVsQXJlYVsxXSAmJiBjdXJyZW50UG9pbnRzLnkgPCBpdGVtLmZ1bm5lbEFyZWFbM10pIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgd29yZERhdGEpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHdvcmREYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IHdvcmREYXRhW2ldO1xyXG4gICAgaWYgKGN1cnJlbnRQb2ludHMueCA+IGl0ZW0uYXJlYVswXSAmJiBjdXJyZW50UG9pbnRzLnggPCBpdGVtLmFyZWFbMl0gJiYgY3VycmVudFBvaW50cy55ID4gaXRlbS5hcmVhWzFdICYmIGN1cnJlbnRQb2ludHMueSA8IGl0ZW0uYXJlYVszXSkge1xyXG4gICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZE1hcENoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIG9wdHMpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgdmFyIGNEYXRhID0gb3B0cy5jaGFydERhdGEubWFwRGF0YTtcclxuICB2YXIgZGF0YSA9IG9wdHMuc2VyaWVzO1xyXG4gIHZhciB0bXAgPSBwb2ludFRvQ29vcmRpbmF0ZShjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCwgY0RhdGEuYm91bmRzLCBjRGF0YS5zY2FsZSwgY0RhdGEueG9mZnNldCwgY0RhdGEueW9mZnNldCk7XHJcbiAgdmFyIHBvaSA9IFt0bXAueCwgdG1wLnldO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XHJcbiAgICBpZiAoaXNQb2lXaXRoaW5Qb2x5KHBvaSwgaXRlbSwgb3B0cy5jaGFydERhdGEubWFwRGF0YS5tZXJjYXRvcikpIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcGllRGF0YSwgb3B0cykge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICB2YXIgc2VyaWVzID0gZ2V0Um9zZURhdGFQb2ludHMob3B0cy5fc2VyaWVzXywgb3B0cy5leHRyYS5yb3NlLnR5cGUsIHBpZURhdGEucmFkaXVzLCBwaWVEYXRhLnJhZGl1cyk7XHJcbiAgaWYgKHBpZURhdGEgJiYgcGllRGF0YS5jZW50ZXIgJiYgaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIHBpZURhdGEuY2VudGVyLCBwaWVEYXRhLnJhZGl1cykpIHtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocGllRGF0YS5jZW50ZXIueSAtIGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54IC0gcGllRGF0YS5jZW50ZXIueCk7XHJcbiAgICBhbmdsZSA9IC1hbmdsZTtcclxuICAgIGlmKG9wdHMuZXh0cmEucm9zZSAmJiBvcHRzLmV4dHJhLnJvc2Uub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5yb3NlLm9mZnNldEFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIH1cclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzZXJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzZXJpZXNbaV0uX3N0YXJ0Xywgc2VyaWVzW2ldLl9zdGFydF8gKyBzZXJpZXNbaV0uX3Jvc2VfcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRQaWVDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBwaWVEYXRhLCBvcHRzKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIHZhciBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHBpZURhdGEuc2VyaWVzKTtcclxuICBpZiAocGllRGF0YSAmJiBwaWVEYXRhLmNlbnRlciAmJiBpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgcGllRGF0YS5jZW50ZXIsIHBpZURhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGFuZ2xlID0gTWF0aC5hdGFuMihwaWVEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSBwaWVEYXRhLmNlbnRlci54KTtcclxuICAgIGFuZ2xlID0gLWFuZ2xlO1xyXG4gICAgaWYob3B0cy5leHRyYS5waWUgJiYgb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgaWYob3B0cy5leHRyYS5yaW5nICYmIG9wdHMuZXh0cmEucmluZy5vZmZzZXRBbmdsZSl7XHJcbiAgICAgIGFuZ2xlID0gYW5nbGUgLSBvcHRzLmV4dHJhLnJpbmcub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoaXNJbkFuZ2xlUmFuZ2UoYW5nbGUsIHNlcmllc1tpXS5fc3RhcnRfLCBzZXJpZXNbaV0uX3N0YXJ0XyArIHNlcmllc1tpXS5fcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBjZW50ZXIsIHJhZGl1cykge1xyXG4gIHJldHVybiBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnggLSBjZW50ZXIueCwgMikgKyBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnkgLSBjZW50ZXIueSwgMikgPD0gTWF0aC5wb3cocmFkaXVzLCAyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpIHtcclxuICB2YXIgbmV3UG9pbnRzID0gW107XHJcbiAgdmFyIGl0ZW1zID0gW107XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmKGVhY2hTZXJpZXMuY29ubmVjdE51bGxzKXtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgIG5ld1BvaW50cy5wdXNoKGl0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfSk7XHJcbiAgaWYgKGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgbmV3UG9pbnRzLnB1c2goaXRlbXMpO1xyXG4gIH1cclxuICByZXR1cm4gbmV3UG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxMZWdlbmREYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjaGFydERhdGEsIGNvbnRleHQpIHtcclxuICBsZXQgbGVnZW5kRGF0YSA9IHtcclxuICAgIGFyZWE6IHtcclxuICAgICAgc3RhcnQ6IHtcclxuICAgICAgICB4OiAwLFxyXG4gICAgICAgIHk6IDBcclxuICAgICAgfSxcclxuICAgICAgZW5kOiB7XHJcbiAgICAgICAgeDogMCxcclxuICAgICAgICB5OiAwXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpZHRoOiAwLFxyXG4gICAgICBoZWlnaHQ6IDAsXHJcbiAgICAgIHdob2xlV2lkdGg6IDAsXHJcbiAgICAgIHdob2xlSGVpZ2h0OiAwXHJcbiAgICB9LFxyXG4gICAgcG9pbnRzOiBbXSxcclxuICAgIHdpZHRoQXJyOiBbXSxcclxuICAgIGhlaWdodEFycjogW11cclxuICB9O1xyXG4gIGlmIChvcHRzLmxlZ2VuZC5zaG93ID09PSBmYWxzZSkge1xyXG4gICAgY2hhcnREYXRhLmxlZ2VuZERhdGEgPSBsZWdlbmREYXRhO1xyXG4gICAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbiAgfVxyXG4gIGxldCBwYWRkaW5nID0gb3B0cy5sZWdlbmQucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIGxldCBtYXJnaW4gPSBvcHRzLmxlZ2VuZC5tYXJnaW4gKiBvcHRzLnBpeDtcclxuICBsZXQgZm9udFNpemUgPSBvcHRzLmxlZ2VuZC5mb250U2l6ZSA/IG9wdHMubGVnZW5kLmZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgbGV0IHNoYXBlV2lkdGggPSAxNSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIGxldCBsaW5lSGVpZ2h0ID0gTWF0aC5tYXgob3B0cy5sZWdlbmQubGluZUhlaWdodCAqIG9wdHMucGl4LCBmb250U2l6ZSk7XHJcbiAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICBsZXQgbGVnZW5kTGlzdCA9IFtdO1xyXG4gICAgbGV0IHdpZHRoQ291bnQgPSAwO1xyXG4gICAgbGV0IHdpZHRoQ291bnRBcnIgPSBbXTtcclxuICAgIGxldCBjdXJyZW50Um93ID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgICAgbGV0IGl0ZW1XaWR0aCA9IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0ICsgbWVhc3VyZVRleHQoaXRlbS5uYW1lIHx8ICd1bmRlZmluZWQnLCBmb250U2l6ZSwgY29udGV4dCkgKyBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgICAgIGlmICh3aWR0aENvdW50ICsgaXRlbVdpZHRoID4gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkge1xyXG4gICAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgICB3aWR0aENvdW50QXJyLnB1c2god2lkdGhDb3VudCAtIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgd2lkdGhDb3VudCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICBjdXJyZW50Um93ID0gW2l0ZW1dO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoQ291bnQgKz0gaXRlbVdpZHRoO1xyXG4gICAgICAgIGN1cnJlbnRSb3cucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGN1cnJlbnRSb3cubGVuZ3RoKSB7XHJcbiAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgd2lkdGhDb3VudEFyci5wdXNoKHdpZHRoQ291bnQgLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXgpO1xyXG4gICAgICBsZWdlbmREYXRhLndpZHRoQXJyID0gd2lkdGhDb3VudEFycjtcclxuICAgICAgbGV0IGxlZ2VuZFdpZHRoID0gTWF0aC5tYXguYXBwbHkobnVsbCwgd2lkdGhDb3VudEFycik7XHJcbiAgICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy5hcmVhWzNdICsgbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIGxlZ2VuZFdpZHRoIC0gMiAqIHBhZGRpbmc7XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gKG9wdHMud2lkdGggLSBsZWdlbmRXaWR0aCkgLyAyIC0gcGFkZGluZztcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IChvcHRzLndpZHRoICsgbGVnZW5kV2lkdGgpIC8gMiArIHBhZGRpbmc7XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmRXaWR0aCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0ID0gbGVnZW5kTGlzdC5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IGxlZ2VuZExpc3QubGVuZ3RoICogbGluZUhlaWdodCArIDIgKiBwYWRkaW5nICsgMiAqIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5wb2ludHMgPSBsZWdlbmRMaXN0O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBsZXQgbGVuID0gc2VyaWVzLmxlbmd0aDtcclxuICAgIGxldCBtYXhIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSAtIDIgKiBtYXJnaW4gLSAyICogcGFkZGluZztcclxuICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1pbihNYXRoLmZsb29yKG1heEhlaWdodCAvIGxpbmVIZWlnaHQpLCBsZW4pO1xyXG4gICAgbGVnZW5kRGF0YS5hcmVhLmhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW4gKyBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW4gLSBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbWFyZ2luO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gKG9wdHMuaGVpZ2h0IC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCkgLyAyO1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IChvcHRzLmhlaWdodCArIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQpIC8gMjtcclxuICAgIH1cclxuICAgIGxldCBsaW5lTnVtID0gbGVuICUgbWF4TGVuZ3RoID09PSAwID8gbGVuIC8gbWF4TGVuZ3RoIDogTWF0aC5mbG9vcigobGVuIC8gbWF4TGVuZ3RoKSArIDEpO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZU51bTsgaSsrKSB7XHJcbiAgICAgIGxldCB0ZW1wID0gc2VyaWVzLnNsaWNlKGkgKiBtYXhMZW5ndGgsIGkgKiBtYXhMZW5ndGggKyBtYXhMZW5ndGgpO1xyXG4gICAgICBjdXJyZW50Um93LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICBsZWdlbmREYXRhLnBvaW50cyA9IGN1cnJlbnRSb3c7XHJcbiAgICBpZiAoY3VycmVudFJvdy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50Um93Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBjdXJyZW50Um93W2ldO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChpdGVtW2pdLm5hbWUgfHwgJ3VuZGVmaW5lZCcsIGZvbnRTaXplLCBjb250ZXh0KSArIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIGlmIChpdGVtV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgICBtYXhXaWR0aCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGVnZW5kRGF0YS53aWR0aEFyci5wdXNoKG1heFdpZHRoKTtcclxuICAgICAgICBsZWdlbmREYXRhLmhlaWdodEFyci5wdXNoKGl0ZW0ubGVuZ3RoICogbGluZUhlaWdodCArIHBhZGRpbmcgKiAyKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbGVnZW5kV2lkdGggPSAwXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVnZW5kRGF0YS53aWR0aEFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxlZ2VuZFdpZHRoICs9IGxlZ2VuZERhdGEud2lkdGhBcnJbaV07XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmREYXRhLmFyZWEud2lkdGggKyBwYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luICsgbGVnZW5kRGF0YS5hcmVhLmhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCAtIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW47XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLmFyZWFbM10gKyBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcsIGNvbnRleHQpIHtcclxuICB2YXIgcmVzdWx0ID0ge1xyXG4gICAgYW5nbGU6IDAsXHJcbiAgICB4QXhpc0hlaWdodDogY29uZmlnLnhBeGlzSGVpZ2h0XHJcbiAgfTtcclxuICB2YXIgY2F0ZWdvcmllc1RleHRMZW50aCA9IGNhdGVnb3JpZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICB2YXIgbWF4VGV4dExlbmd0aCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIGNhdGVnb3JpZXNUZXh0TGVudGgpO1xyXG5cclxuICBpZiAob3B0cy54QXhpcy5yb3RhdGVMYWJlbCA9PSB0cnVlICYmIG1heFRleHRMZW5ndGggKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPiBlYWNoU3BhY2luZykge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gNDUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgbWF4VGV4dExlbmd0aCAqIE1hdGguc2luKHJlc3VsdC5hbmdsZSk7XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbiAgdmFyIG1pbkRhdGEgPSAwO1xyXG4gIHZhciBtYXhEYXRhID0gMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIC8v5Li65LqG5YW85a65djEuOS4w5LmL5YmN55qE6aG555uuXHJcbiAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgIGlmICh0eXBlb2Ygb3B0cy54QXhpcy5kYXRhW2luZGV4XS5taW4gPT09ICdudW1iZXInKSB7XHJcbiAgICAgIG1pbkRhdGEgPSBNYXRoLm1pbihvcHRzLnhBeGlzLmRhdGFbaW5kZXhdLm1pbiwgbWluRGF0YSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWF4ID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtYXhEYXRhID0gTWF0aC5tYXgob3B0cy54QXhpcy5kYXRhW2luZGV4XS5tYXgsIG1heERhdGEpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy54QXhpcy5taW4sIG1pbkRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueEF4aXMubWF4LCBtYXhEYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIHZhciByYW5nZVNwYW4gPSBtYXhEYXRhIHx8IDEwO1xyXG4gICAgbWF4RGF0YSArPSByYW5nZVNwYW47XHJcbiAgfVxyXG4gIC8vdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSBtaW5EYXRhO1xyXG4gIHZhciBtYXhSYW5nZSA9IG1heERhdGE7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueEF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy54QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIHZhciByZXN1bHQgPSB7XHJcbiAgICBhbmdsZTogMCxcclxuICAgIHhBeGlzSGVpZ2h0OiBjb25maWcueEF4aXNIZWlnaHRcclxuICB9O1xyXG4gIHJlc3VsdC5yYW5nZXMgPSBnZXRYQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlKTtcclxuICByZXN1bHQucmFuZ2VzRm9ybWF0ID0gcmVzdWx0LnJhbmdlcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9pdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IHV0aWwudG9GaXhlZChpdGVtLCAyKTtcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICB2YXIgeEF4aXNTY2FsZVZhbHVlcyA9IHJlc3VsdC5yYW5nZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vIOWmguaenOWIu+W6puWAvOaYr+a1rueCueaVsCzliJnkv53nlZnkuKTkvY3lsI/mlbBcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICAvLyDoi6XmnInoh6rlrprkuYnmoLzlvI/liJnosIPnlKjoh6rlrprkuYnnmoTmoLzlvI/ljJblh73mlbBcclxuICAgIC8vaXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoTnVtYmVyKGl0ZW0pKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwgZ2V0WEF4aXNQb2ludHMoeEF4aXNTY2FsZVZhbHVlcywgb3B0cywgY29uZmlnKSk7XHJcbiAgLy8g6K6h566XWOi9tOWIu+W6pueahOWxnuaAp+itrOWmguavj+S4quWIu+W6pueahOmXtOmalCzliLvluqbnmoTotbflp4vngrlcXOe7k+adn+eCueS7peWPiuaAu+mVv1xyXG4gIHZhciBlYWNoU3BhY2luZyA9IHJlc3VsdC5lYWNoU3BhY2luZztcclxuICB2YXIgdGV4dExlbmd0aCA9IHhBeGlzU2NhbGVWYWx1ZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICAvLyBnZXQgbWF4IGxlbmd0aCBvZiBjYXRlZ29yaWVzIHRleHRcclxuICB2YXIgbWF4VGV4dExlbmd0aCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHRleHRMZW5ndGgpO1xyXG4gIC8vIOWmguaenOWIu+W6puWAvOaWh+acrOWGheWuuei/h+mVvyzliJnlsIblhbbpgIbml7bpkojml4vovaw0NcKwXHJcbiAgaWYgKG1heFRleHRMZW5ndGggKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPiBlYWNoU3BhY2luZykge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gNDUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgbWF4VGV4dExlbmd0aCAqIE1hdGguc2luKHJlc3VsdC5hbmdsZSk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSAwO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckRhdGFQb2ludHMoYW5nbGVMaXN0LCBjZW50ZXIsIHJhZGl1cywgc2VyaWVzLCBvcHRzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gb3B0cy5leHRyYS5yYWRhciB8fCB7fTtcclxuICByYWRhck9wdGlvbi5tYXggPSByYWRhck9wdGlvbi5tYXggfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IE1hdGgubWF4KHJhZGFyT3B0aW9uLm1heCwgTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUNvbWJpbmUoc2VyaWVzKSkpO1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IGxpc3RJdGVtID0ge307XHJcbiAgICBsaXN0SXRlbS5jb2xvciA9IGVhY2guY29sb3I7XHJcbiAgICBsaXN0SXRlbS5sZWdlbmRTaGFwZSA9IGVhY2gubGVnZW5kU2hhcGU7XHJcbiAgICBsaXN0SXRlbS5wb2ludFNoYXBlID0gZWFjaC5wb2ludFNoYXBlO1xyXG4gICAgbGlzdEl0ZW0uZGF0YSA9IFtdO1xyXG4gICAgZWFjaC5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgbGV0IHRtcCA9IHt9O1xyXG4gICAgICB0bXAuYW5nbGUgPSBhbmdsZUxpc3RbaW5kZXhdO1xyXG4gICAgICB0bXAucHJvcG9ydGlvbiA9IGl0ZW0gLyBtYXhEYXRhO1xyXG4gICAgICB0bXAudmFsdWUgPSBpdGVtO1xyXG4gICAgICB0bXAucG9zaXRpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLmNvcyh0bXAuYW5nbGUpLCByYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLnNpbih0bXAuYW5nbGUpLCBjZW50ZXIpO1xyXG4gICAgICBsaXN0SXRlbS5kYXRhLnB1c2godG1wKTtcclxuICAgIH0pO1xyXG4gICAgZGF0YS5wdXNoKGxpc3RJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICB2YXIgY291bnQgPSAwO1xyXG4gIHZhciBfc3RhcnRfID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGNvdW50ID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBpdGVtLl9yYWRpdXNfID0gcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCB0eXBlLCBlYWNoU3BhY2luZykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHNlcmllcyA9IHNlcmllcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgIHJldHVybiBwYXJzZUludChiLmRhdGEpIC0gcGFyc2VJbnQoYS5kYXRhKTtcclxuICB9KTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYodHlwZSA9PSAnZnVubmVsJyl7XHJcbiAgICAgIHNlcmllc1tpXS5yYWRpdXMgPSBzZXJpZXNbaV0uZGF0YSAvIHNlcmllc1swXS5kYXRhICogcmFkaXVzICogcHJvY2VzcztcclxuICAgIH1lbHNle1xyXG4gICAgICBzZXJpZXNbaV0ucmFkaXVzID0gIChlYWNoU3BhY2luZyAqIChzZXJpZXMubGVuZ3RoIC0gaSkpIC8gKGVhY2hTcGFjaW5nICogc2VyaWVzLmxlbmd0aCkgKiByYWRpdXMgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzW2ldLl9wcm9wb3J0aW9uXyA9IHNlcmllc1tpXS5kYXRhIC8gc2VyaWVzWzBdLmRhdGE7XHJcbiAgfVxyXG4gIGlmKHR5cGUgIT09ICdweXJhbWlkJyl7XHJcbiAgICBzZXJpZXMucmV2ZXJzZSgpO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSb3NlRGF0YVBvaW50cyhzZXJpZXMsIHR5cGUsIG1pblJhZGl1cywgcmFkaXVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGNvdW50ID0gMDtcclxuICB2YXIgX3N0YXJ0XyA9IDA7XHJcbiAgdmFyIGRhdGFBcnIgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gICAgZGF0YUFyci5wdXNoKGl0ZW0uZGF0YSk7XHJcbiAgfVxyXG4gIHZhciBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkobnVsbCwgZGF0YUFycik7XHJcbiAgdmFyIG1heERhdGEgPSBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQXJyKTtcclxuICB2YXIgcmFkaXVzTGVuZ3RoID0gcmFkaXVzIC0gbWluUmFkaXVzO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uZGF0YSAvIGNvdW50ICogcHJvY2VzcztcclxuICAgICAgaWYodHlwZSA9PSAnYXJlYScpe1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGl0ZW0uX3JhZGl1c18gPSBtaW5SYWRpdXMgKyByYWRpdXNMZW5ndGggKiAoKGl0ZW0uZGF0YSAtIG1pbkRhdGEpIC8gKG1heERhdGEgLSBtaW5EYXRhKSkgfHwgcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEk7XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChhcmNiYXJPcHRpb24uZW5kQW5nbGUgPCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICAgIHRvdGFsQW5nbGUgPSAyICsgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlIC0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZiAoaXRlbS5fcHJvcG9ydGlvbl8gPj0gMikge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX3Byb3BvcnRpb25fICUgMjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKSB7XHJcbiAgbGV0IHRvdGFsQW5nbGUgPSBzdGFydEFuZ2xlIC0gZW5kQW5nbGUgKyAxO1xyXG4gIGxldCB0ZW1wU3RhcnRBbmdsZSA9IHN0YXJ0QW5nbGU7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjYXRlZ29yaWVzW2ldLnZhbHVlID0gY2F0ZWdvcmllc1tpXS52YWx1ZSA9PT0gbnVsbCA/IDAgOiBjYXRlZ29yaWVzW2ldLnZhbHVlO1xyXG4gICAgY2F0ZWdvcmllc1tpXS5fc3RhcnRBbmdsZV8gPSB0ZW1wU3RhcnRBbmdsZTtcclxuICAgIGNhdGVnb3JpZXNbaV0uX2VuZEFuZ2xlXyA9IHRvdGFsQW5nbGUgKiBjYXRlZ29yaWVzW2ldLnZhbHVlICsgc3RhcnRBbmdsZTtcclxuICAgIGlmIChjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPj0gMikge1xyXG4gICAgICBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gJSAyO1xyXG4gICAgfVxyXG4gICAgdGVtcFN0YXJ0QW5nbGUgPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV87XHJcbiAgfVxyXG4gIHJldHVybiBjYXRlZ29yaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbikge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAxO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoZ2F1Z2VPcHRpb24ucG9pbnRlci5jb2xvciA9PSAnYXV0bycpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uZGF0YSA8PSBjYXRlZ29yaWVzW2ldLnZhbHVlKSB7XHJcbiAgICAgICAgICBpdGVtLmNvbG9yID0gY2F0ZWdvcmllc1tpXS5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGdhdWdlT3B0aW9uLnBvaW50ZXIuY29sb3I7XHJcbiAgICB9XHJcbiAgICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBpdGVtLl9lbmRBbmdsZV8gPSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICsgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICAgIGl0ZW0uX29sZEFuZ2xlXyA9IGdhdWdlT3B0aW9uLm9sZEFuZ2xlO1xyXG4gICAgaWYgKGdhdWdlT3B0aW9uLm9sZEFuZ2xlIDwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUpIHtcclxuICAgICAgaXRlbS5fb2xkQW5nbGVfICs9IDI7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhID49IGdhdWdlT3B0aW9uLm9sZERhdGEpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAoaXRlbS5fZW5kQW5nbGVfIC0gaXRlbS5fb2xkQW5nbGVfKSAqIHByb2Nlc3MgKyBnYXVnZU9wdGlvbi5vbGRBbmdsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fb2xkQW5nbGVfIC0gKGl0ZW0uX29sZEFuZ2xlXyAtIGl0ZW0uX2VuZEFuZ2xlXykgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uX3Byb3BvcnRpb25fID49IDIpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLl9wcm9wb3J0aW9uXyAlIDI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcyk7XHJcbiAgbGV0IG1heExlbmd0aCA9IDA7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKCtpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDIpKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICBtYXhMZW5ndGggPSBNYXRoLm1heChtYXhMZW5ndGgsIG1lYXN1cmVUZXh0KHRleHQsIGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpKTtcclxuICB9XHJcbiAgcmV0dXJuIG1heExlbmd0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW4sIGluZGV4LCBjb25maWcsIG9wdHMpIHtcclxuICByZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHZhciBzZXJpZXNHYXAgPSAwO1xyXG4gICAgdmFyIGNhdGVnb3J5R2FwID0gMDtcclxuICAgIGlmIChvcHRzLnR5cGUgPT0gJ21peCcpIHtcclxuICAgICAgc2VyaWVzR2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc0dhcCA9IG9wdHMuZXh0cmEuY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzR2FwID0gIE1hdGgubWluKHNlcmllc0dhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBjYXRlZ29yeUdhcCA9ICBNYXRoLm1pbihjYXRlZ29yeUdhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCAtIHNlcmllc0dhcCAqIChjb2x1bW5MZW4gLSAxKSkgLyBjb2x1bW5MZW4pO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEubWl4ICYmIG9wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5taXguY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgaXRlbS54ICs9IChpbmRleCArIDAuNSAtIGNvbHVtbkxlbiAvIDIpICogKGl0ZW0ud2lkdGggKyBzZXJpZXNHYXApO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzKSB7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB2YXIgc2VyaWVzR2FwID0gMDtcclxuICAgIHZhciBjYXRlZ29yeUdhcCA9IDA7XHJcbiAgICBzZXJpZXNHYXAgPSBvcHRzLmV4dHJhLmJhci5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmJhci5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICBzZXJpZXNHYXAgPSAgTWF0aC5taW4oc2VyaWVzR2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGNhdGVnb3J5R2FwID0gIE1hdGgubWluKGNhdGVnb3J5R2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwIC0gc2VyaWVzR2FwICogKGNvbHVtbkxlbiAtIDEpKSAvIGNvbHVtbkxlbik7XHJcbiAgICBpZiAob3B0cy5leHRyYS5iYXIgJiYgb3B0cy5leHRyYS5iYXIud2lkdGggJiYgK29wdHMuZXh0cmEuYmFyLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuYmFyLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIGl0ZW0ueSArPSAoaW5kZXggKyAwLjUgLSBjb2x1bW5MZW4gLyAyKSAqIChpdGVtLndpZHRoICsgc2VyaWVzR2FwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVNZXRlckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBib3JkZXIpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggLT0gMiAqIGJvcmRlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXhuKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXApO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuY29sdW1uICYmIG9wdHMuZXh0cmEuY29sdW1uLndpZHRoICYmICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLndpZHRoIDw9IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5iYXIuY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4bikge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmJhciAmJiBvcHRzLmV4dHJhLmJhci53aWR0aCAmJiArb3B0cy5leHRyYS5iYXIud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5iYXIud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBkYXRhQ291bnQgPSBvcHRzLmVuYWJsZVNjcm9sbCA/IE1hdGgubWluKG9wdHMueEF4aXMuaXRlbUNvdW50LCBjYXRlZ29yaWVzLmxlbmd0aCkgOiBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICBpZiAoKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT0gJ2JhcicpICYmIGRhdGFDb3VudCA+IDEgJiYgb3B0cy54QXhpcy5ib3VuZGFyeUdhcCA9PSAnanVzdGlmeScpIHtcclxuICAgIGRhdGFDb3VudCAtPSAxO1xyXG4gIH1cclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBkYXRhQ291bnQ7XHJcbiAgdmFyIHhBeGlzUG9pbnRzID0gW107XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICB4QXhpc1BvaW50cy5wdXNoKHN0YXJ0WCArIGluZGV4ICogZWFjaFNwYWNpbmcpO1xyXG4gIH0pO1xyXG4gIGlmIChvcHRzLnhBeGlzLmJvdW5kYXJ5R2FwICE9PSAnanVzdGlmeScpIHtcclxuICAgIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgICB4QXhpc1BvaW50cy5wdXNoKHN0YXJ0WCArIGNhdGVnb3JpZXMubGVuZ3RoICogZWFjaFNwYWNpbmcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgeEF4aXNQb2ludHMucHVzaChlbmRYKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIHN0YXJ0WDogc3RhcnRYLFxyXG4gICAgZW5kWDogZW5kWCxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENhbmRsZURhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDcgJiYgYXJndW1lbnRzWzddICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbN10gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGNQb2ludHMgPSBbXTtcclxuICAgICAgaXRlbS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW1zLCBpbmRleHMpIHtcclxuICAgICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdICsgTWF0aC5yb3VuZChlYWNoU3BhY2luZyAvIDIpO1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW1zLnZhbHVlIHx8IGl0ZW1zO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgY1BvaW50cy5wdXNoKHBvaW50KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHBvaW50cy5wdXNoKGNQb2ludHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDcgJiYgYXJndW1lbnRzWzddICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbN10gOiAxO1xyXG4gIHZhciBib3VuZGFyeUdhcCA9ICdjZW50ZXInO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT0gJ2J1YmJsZScgKSB7XHJcbiAgICBib3VuZGFyeUdhcCA9IG9wdHMueEF4aXMuYm91bmRhcnlHYXA7XHJcbiAgfVxyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgdmFsaWRXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb2ludCA9IHt9O1xyXG4gICAgICBwb2ludC5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIHBvaW50LnggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgICBsZXQgeHJhbmdlcywgeG1pblJhbmdlLCB4bWF4UmFuZ2U7XHJcbiAgICAgICAgICB4cmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXMpO1xyXG4gICAgICAgICAgeG1pblJhbmdlID0geHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICAgICAgeG1heFJhbmdlID0geHJhbmdlcy5wb3AoKTtcclxuICAgICAgICAgIHZhbHVlID0gaXRlbVsxXTtcclxuICAgICAgICAgIHBvaW50LnggPSBvcHRzLmFyZWFbM10gKyB2YWxpZFdpZHRoICogKGl0ZW1bMF0gLSB4bWluUmFuZ2UpIC8gKHhtYXhSYW5nZSAtIHhtaW5SYW5nZSk7XHJcbiAgICAgICAgICBpZihvcHRzLnR5cGUgPT0gJ2J1YmJsZScpe1xyXG4gICAgICAgICAgICBwb2ludC5yID0gaXRlbVsyXTtcclxuICAgICAgICAgICAgcG9pbnQudCA9IGl0ZW1bM107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgcG9pbnQueCArPSBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciB2YWxpZFdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueSA9IHlBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZFdpZHRoICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICBwb2ludC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICBwb2ludC54ID0gaGVpZ2h0ICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIE1hdGgucm91bmQoZWFjaFNwYWNpbmcgLyAyKTtcclxuXHJcbiAgICAgIGlmIChzZXJpZXNJbmRleCA+IDApIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHNlcmllc0luZGV4OyBpKyspIHtcclxuICAgICAgICAgIHZhbHVlICs9IHN0YWNrU2VyaWVzW2ldLmRhdGFbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgdmFsdWUwID0gdmFsdWUgLSBpdGVtO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlMCAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodGMgPSBoZWlnaHQwO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgaGVpZ2h0YyAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50LnkwID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodGMpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICBpZiAoc2VyaWVzSW5kZXggPiAwKSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBzZXJpZXNJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgICB2YWx1ZSArPSBzdGFja1Nlcmllc1tpXS5kYXRhW2luZGV4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHZhbHVlMCA9IHZhbHVlIC0gaXRlbTtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSB2YWxpZEhlaWdodCAqICh2YWx1ZTAgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHRjID0gaGVpZ2h0MDtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIGhlaWdodGMgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQuaGVpZ2h0ID0gaGVpZ2h0IC0gaGVpZ2h0YztcclxuICAgICAgcG9pbnQueCA9IG9wdHMuYXJlYVszXSArIGhlaWdodDtcclxuICAgICAgcG9pbnQueDAgPSBvcHRzLmFyZWFbM10gKyBoZWlnaHRjO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0WUF4aXNUZXh0TGlzdChzZXJpZXMsIG9wdHMsIGNvbmZpZywgc3RhY2ssIHlEYXRhKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuICB2YXIgbWluRGF0YSA9IHlEYXRhLm1pbiB8fCAwO1xyXG4gIHZhciBtYXhEYXRhID0geURhdGEubWF4IHx8IDA7XHJcbiAgaWYgKHNvcnRlZC5sZW5ndGggPiAwKSB7XHJcbiAgICBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkodGhpcywgc29ydGVkKTtcclxuICAgIG1heERhdGEgPSBNYXRoLm1heC5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gIH1cclxuICAvL+S4uuS6huWFvOWuuXYxLjkuMOS5i+WJjeeahOmhueebrlxyXG4gIC8vIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgLy8gICBpZiAodHlwZW9mIG9wdHMueUF4aXMuZGF0YVtpbmRleF0ubWluID09PSAnbnVtYmVyJykge1xyXG4gIC8vICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy55QXhpcy5kYXRhW2luZGV4XS5taW4sIG1pbkRhdGEpO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgaWYgKHR5cGVvZiBvcHRzLnlBeGlzLmRhdGFbaW5kZXhdLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAvLyAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueUF4aXMuZGF0YVtpbmRleF0ubWF4LCBtYXhEYXRhKTtcclxuICAvLyAgIH1cclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgaWYgKHR5cGVvZiBvcHRzLnlBeGlzLm1pbiA9PT0gJ251bWJlcicpIHtcclxuICAvLyAgICAgbWluRGF0YSA9IE1hdGgubWluKG9wdHMueUF4aXMubWluLCBtaW5EYXRhKTtcclxuICAvLyAgIH1cclxuICAvLyAgIGlmICh0eXBlb2Ygb3B0cy55QXhpcy5tYXggPT09ICdudW1iZXInKSB7XHJcbiAgLy8gICAgIG1heERhdGEgPSBNYXRoLm1heChvcHRzLnlBeGlzLm1heCwgbWF4RGF0YSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG4gIGlmIChtaW5EYXRhID09PSBtYXhEYXRhKSB7XHJcbiAgICB2YXIgcmFuZ2VTcGFuID0gbWF4RGF0YSB8fCAxMDtcclxuICAgIG1heERhdGEgKz0gcmFuZ2VTcGFuO1xyXG4gIH1cclxuICB2YXIgZGF0YVJhbmdlID0gZ2V0RGF0YVJhbmdlKG1pbkRhdGEsIG1heERhdGEpO1xyXG4gIHZhciBtaW5SYW5nZSA9IHlEYXRhLm1pbiA9PT0gdW5kZWZpbmVkIHx8IHlEYXRhLm1pbiA9PT0gbnVsbCA/IGRhdGFSYW5nZS5taW5SYW5nZSA6IHlEYXRhLm1pbjtcclxuICB2YXIgbWF4UmFuZ2UgPSB5RGF0YS5tYXggPT09IHVuZGVmaW5lZCB8fCB5RGF0YS5taW4gPT09IG51bGwgPyBkYXRhUmFuZ2UubWF4UmFuZ2UgOiB5RGF0YS5tYXg7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueUF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZS5yZXZlcnNlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFlBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIC8v5aCG5Y+g5Zu+6YeN566XWei9tFxyXG4gIHZhciBjb2x1bW5zdHlsZSA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogXCJcIlxyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICAvL+WmguaenOaYr+WkmlnovbTvvIzph43mlrDorqHnrpdcclxuICB2YXIgWUxlbmd0aCA9IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7XHJcbiAgdmFyIG5ld1NlcmllcyA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuICBpZiAoWUxlbmd0aCA+IDApIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgWUxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG5ld1Nlcmllc1tpXSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlcmllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmIChzZXJpZXNbal0uaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgbmV3U2VyaWVzW2ldLnB1c2goc2VyaWVzW2pdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByYW5nZXNBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcbiAgICB2YXIgcmFuZ2VzRm9ybWF0QXJyID0gbmV3IEFycmF5KFlMZW5ndGgpO1xyXG4gICAgdmFyIHlBeGlzV2lkdGhBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBZTGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHlEYXRhID0gb3B0cy55QXhpcy5kYXRhW2ldO1xyXG4gICAgICAvL+WmguaenOaAu+W8gOWFs+S4jeaYvuekuu+8jOW8uuWItuavj+S4qlnovbTkuLrkuI3mmL7npLpcclxuICAgICAgaWYgKG9wdHMueUF4aXMuZGlzYWJsZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHlEYXRhLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZih5RGF0YS50eXBlID09PSAnY2F0ZWdvcmllcycpe1xyXG4gICAgICAgIGlmKCF5RGF0YS5mb3JtYXR0ZXIpe1xyXG4gICAgICAgICAgeURhdGEuZm9ybWF0dGVyID0gKHZhbCkgPT4ge3JldHVybiB2YWwgKyAoeURhdGEudW5pdCB8fCAnJyl9O1xyXG4gICAgICAgIH1cclxuICAgICAgICB5RGF0YS5jYXRlZ29yaWVzID0geURhdGEuY2F0ZWdvcmllcyB8fCBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICAgICAgcmFuZ2VzQXJyW2ldID0geURhdGEuY2F0ZWdvcmllcztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoIXlEYXRhLmZvcm1hdHRlcil7XHJcbiAgICAgICAgICB5RGF0YS5mb3JtYXR0ZXIgPSAodmFsKSA9PiB7cmV0dXJuIHZhbC50b0ZpeGVkKHlEYXRhLnRvZml4KSArICh5RGF0YS51bml0IHx8ICcnKX07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJhbmdlc0FycltpXSA9IGdldFlBeGlzVGV4dExpc3QobmV3U2VyaWVzW2ldLCBvcHRzLCBjb25maWcsIGNvbHVtbnN0eWxlLnR5cGUsIHlEYXRhLCBpKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgeUF4aXNGb250U2l6ZXMgPSB5RGF0YS5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgeUF4aXNXaWR0aEFycltpXSA9IHtcclxuICAgICAgICBwb3NpdGlvbjogeURhdGEucG9zaXRpb24gPyB5RGF0YS5wb3NpdGlvbiA6ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICByYW5nZXNGb3JtYXRBcnJbaV0gPSByYW5nZXNBcnJbaV0ubWFwKGZ1bmN0aW9uKGl0ZW1zKSB7XHJcbiAgICAgICAgaXRlbXMgPSB5RGF0YS5mb3JtYXR0ZXIoaXRlbXMpO1xyXG4gICAgICAgIHlBeGlzV2lkdGhBcnJbaV0ud2lkdGggPSBNYXRoLm1heCh5QXhpc1dpZHRoQXJyW2ldLndpZHRoLCBtZWFzdXJlVGV4dChpdGVtcywgeUF4aXNGb250U2l6ZXMsIGNvbnRleHQpICsgNSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgICB9KTtcclxuICAgICAgbGV0IGNhbGlicmF0aW9uID0geURhdGEuY2FsaWJyYXRpb24gPyA0ICogb3B0cy5waXggOiAwO1xyXG4gICAgICB5QXhpc1dpZHRoQXJyW2ldLndpZHRoICs9IGNhbGlicmF0aW9uICsgMyAqIG9wdHMucGl4O1xyXG4gICAgICBpZiAoeURhdGEuZGlzYWJsZWQgPT09IHRydWUpIHtcclxuICAgICAgICB5QXhpc1dpZHRoQXJyW2ldLndpZHRoID0gMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICB2YXIgcmFuZ2VzQXJyID0gbmV3IEFycmF5KDEpO1xyXG4gICAgdmFyIHJhbmdlc0Zvcm1hdEFyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIHZhciB5QXhpc1dpZHRoQXJyID0gbmV3IEFycmF5KDEpO1xyXG4gICAgaWYob3B0cy50eXBlID09PSAnYmFyJyl7XHJcbiAgICAgIHJhbmdlc0FyclswXSA9IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgaWYoIW9wdHMueUF4aXMuZm9ybWF0dGVyKXtcclxuICAgICAgICBvcHRzLnlBeGlzLmZvcm1hdHRlciA9ICh2YWwpID0+IHtyZXR1cm4gdmFsICsgKG9wdHMueUF4aXMudW5pdCB8fCAnJyl9XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBpZighb3B0cy55QXhpcy5mb3JtYXR0ZXIpe1xyXG4gICAgICAgIG9wdHMueUF4aXMuZm9ybWF0dGVyID0gKHZhbCkgPT4ge3JldHVybiB2YWwudG9GaXhlZChvcHRzLnlBeGlzLnRvZml4ICkgKyAob3B0cy55QXhpcy51bml0IHx8ICcnKX1cclxuICAgICAgfVxyXG4gICAgICByYW5nZXNBcnJbMF0gPSBnZXRZQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlLCB7fSk7XHJcbiAgICB9XHJcbiAgICB5QXhpc1dpZHRoQXJyWzBdID0ge1xyXG4gICAgICBwb3NpdGlvbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMFxyXG4gICAgfTtcclxuICAgIHZhciB5QXhpc0ZvbnRTaXplID0gb3B0cy55QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgIHJhbmdlc0Zvcm1hdEFyclswXSA9IHJhbmdlc0FyclswXS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICBpdGVtID0gb3B0cy55QXhpcy5mb3JtYXR0ZXIoaXRlbSk7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0ud2lkdGggPSBNYXRoLm1heCh5QXhpc1dpZHRoQXJyWzBdLndpZHRoLCBtZWFzdXJlVGV4dChpdGVtLCB5QXhpc0ZvbnRTaXplLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgeUF4aXNXaWR0aEFyclswXS53aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICB5QXhpc1dpZHRoQXJyWzBdID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgICAgd2lkdGg6IDBcclxuICAgICAgfTtcclxuICAgICAgb3B0cy55QXhpcy5kYXRhWzBdID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRzLnlBeGlzLmRhdGFbMF0gPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgICAgbWF4OiBvcHRzLnlBeGlzLm1heCxcclxuICAgICAgICBtaW46IG9wdHMueUF4aXMubWluLFxyXG4gICAgICAgIGZvcm1hdHRlcjogb3B0cy55QXhpcy5mb3JtYXR0ZXJcclxuICAgICAgfTtcclxuICAgICAgaWYob3B0cy50eXBlID09PSAnYmFyJyl7XHJcbiAgICAgICAgb3B0cy55QXhpcy5kYXRhWzBdLmNhdGVnb3JpZXMgPSBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICAgICAgb3B0cy55QXhpcy5kYXRhWzBdLnR5cGUgPSAnY2F0ZWdvcmllcyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHJhbmdlc0Zvcm1hdDogcmFuZ2VzRm9ybWF0QXJyLFxyXG4gICAgcmFuZ2VzOiByYW5nZXNBcnIsXHJcbiAgICB5QXhpc1dpZHRoOiB5QXhpc1dpZHRoQXJyXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsVG9vbHRpcFlBeGlzRGF0YShwb2ludCwgc2VyaWVzLCBvcHRzLCBjb25maWcsIGVhY2hTcGFjaW5nKSB7XHJcbiAgbGV0IHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzKTtcclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IG1pbkF4aXMgPSBvcHRzLmFyZWFbMF07XHJcbiAgbGV0IGl0ZW1zID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBtYXhWYWwgPSByYW5nZXNbaV0uc2hpZnQoKTtcclxuICAgIGxldCBtaW5WYWwgPSByYW5nZXNbaV0ucG9wKCk7XHJcbiAgICBsZXQgaXRlbSA9IG1heFZhbCAtIChtYXhWYWwgLSBtaW5WYWwpICogKHBvaW50IC0gbWluQXhpcykgLyBzcGFjaW5nVmFsaWQ7XHJcbiAgICBpdGVtID0gb3B0cy55QXhpcy5kYXRhW2ldLmZvcm1hdHRlciA/IG9wdHMueUF4aXMuZGF0YVtpXS5mb3JtYXR0ZXIoaXRlbSkgOiBpdGVtLnRvRml4ZWQoMCk7XHJcbiAgICBpdGVtcy5wdXNoKFN0cmluZyhpdGVtKSlcclxuICB9XHJcbiAgcmV0dXJuIGl0ZW1zO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxNYXJrTGluZURhdGEocG9pbnRzLCBvcHRzKSB7XHJcbiAgbGV0IG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIHBvaW50c1tpXS55QXhpc0luZGV4ID0gcG9pbnRzW2ldLnlBeGlzSW5kZXggPyBwb2ludHNbaV0ueUF4aXNJbmRleCA6IDA7XHJcbiAgICBsZXQgcmFuZ2UgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1twb2ludHNbaV0ueUF4aXNJbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZS5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2Uuc2hpZnQoKTtcclxuICAgIGxldCBoZWlnaHQgPSBzcGFjaW5nVmFsaWQgKiAocG9pbnRzW2ldLnZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgcG9pbnRzW2ldLnkgPSBvcHRzLmhlaWdodCAtIE1hdGgucm91bmQoaGVpZ2h0KSAtIG9wdHMuYXJlYVsyXTtcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKSB7XHJcbiAgaWYgKG9wdHMucm90YXRlTG9jayAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5oZWlnaHQsIDApO1xyXG4gICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICB9IGVsc2UgaWYgKG9wdHMuX3JvdGF0ZV8gIT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuaGVpZ2h0LCAwKTtcclxuICAgIGNvbnRleHQucm90YXRlKDkwICogTWF0aC5QSSAvIDE4MCk7XHJcbiAgICBvcHRzLl9yb3RhdGVfID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQb2ludFNoYXBlKHBvaW50cywgY29sb3IsIHNoYXBlLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZVR5cGUgPT0gJ2hvbGxvdycpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5iYWNrZ3JvdW5kKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoXCIjZmZmZmZmXCIpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgaWYgKHNoYXBlID09PSAnZGlhbW9uZCcpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgNC41LCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUpO1xyXG4gICAgICAgIGNvbnRleHQucmVjdChpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSwgNywgNyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICd0cmlhbmdsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAndHJpYW5nbGUnKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JpbmdUaXRsZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGNlbnRlcikge1xyXG4gIHZhciB0aXRsZWZvbnRTaXplID0gb3B0cy50aXRsZS5mb250U2l6ZSB8fCBjb25maWcudGl0bGVGb250U2l6ZTtcclxuICB2YXIgc3VidGl0bGVmb250U2l6ZSA9IG9wdHMuc3VidGl0bGUuZm9udFNpemUgfHwgY29uZmlnLnN1YnRpdGxlRm9udFNpemU7XHJcbiAgdmFyIHRpdGxlID0gb3B0cy50aXRsZS5uYW1lIHx8ICcnO1xyXG4gIHZhciBzdWJ0aXRsZSA9IG9wdHMuc3VidGl0bGUubmFtZSB8fCAnJztcclxuICB2YXIgdGl0bGVGb250Q29sb3IgPSBvcHRzLnRpdGxlLmNvbG9yIHx8IG9wdHMuZm9udENvbG9yO1xyXG4gIHZhciBzdWJ0aXRsZUZvbnRDb2xvciA9IG9wdHMuc3VidGl0bGUuY29sb3IgfHwgb3B0cy5mb250Q29sb3I7XHJcbiAgdmFyIHRpdGxlSGVpZ2h0ID0gdGl0bGUgPyB0aXRsZWZvbnRTaXplIDogMDtcclxuICB2YXIgc3VidGl0bGVIZWlnaHQgPSBzdWJ0aXRsZSA/IHN1YnRpdGxlZm9udFNpemUgOiAwO1xyXG4gIHZhciBtYXJnaW4gPSA1O1xyXG4gIGlmIChzdWJ0aXRsZSkge1xyXG4gICAgdmFyIHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KHN1YnRpdGxlLCBzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXgsIGNvbnRleHQpO1xyXG4gICAgdmFyIHN0YXJ0WCA9IGNlbnRlci54IC0gdGV4dFdpZHRoIC8gMiArIChvcHRzLnN1YnRpdGxlLm9mZnNldFh8fCAwKSAqIG9wdHMucGl4IDtcclxuICAgIHZhciBzdGFydFkgPSBjZW50ZXIueSArIHN1YnRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCAvIDIgKyAob3B0cy5zdWJ0aXRsZS5vZmZzZXRZIHx8IDApICogb3B0cy5waXg7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgc3RhcnRZICs9ICh0aXRsZUhlaWdodCAqIG9wdHMucGl4ICsgbWFyZ2luKSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc3VidGl0bGVGb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChzdWJ0aXRsZSwgc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGlmICh0aXRsZSkge1xyXG4gICAgdmFyIF90ZXh0V2lkdGggPSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVmb250U2l6ZSAqIG9wdHMucGl4LCBjb250ZXh0KTtcclxuICAgIHZhciBfc3RhcnRYID0gY2VudGVyLnggLSBfdGV4dFdpZHRoIC8gMiArIChvcHRzLnRpdGxlLm9mZnNldFggfHwgMCk7XHJcbiAgICB2YXIgX3N0YXJ0WSA9IGNlbnRlci55ICsgdGl0bGVmb250U2l6ZSAqIG9wdHMucGl4IC8gMiArIChvcHRzLnRpdGxlLm9mZnNldFkgfHwgMCkgKiBvcHRzLnBpeDtcclxuICAgIGlmIChzdWJ0aXRsZSkge1xyXG4gICAgICBfc3RhcnRZIC09IChzdWJ0aXRsZUhlaWdodCAqIG9wdHMucGl4ICsgbWFyZ2luKSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZSh0aXRsZWZvbnRTaXplICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUodGl0bGVGb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgX3N0YXJ0WCwgX3N0YXJ0WSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQb2ludFRleHQocG9pbnRzLCBzZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cykge1xyXG4gIC8vIOe7mOWItuaVsOaNruaWh+ahiFxyXG4gIHZhciBkYXRhID0gc2VyaWVzLmRhdGE7XHJcbiAgdmFyIHRleHRPZmZzZXQgPSBzZXJpZXMudGV4dE9mZnNldCA/IHNlcmllcy50ZXh0T2Zmc2V0IDogMDtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gc2VyaWVzLnRleHRTaXplID8gc2VyaWVzLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgdmFyIHZhbHVlID0gZGF0YVtpbmRleF1cclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2luZGV4XSA9PT0gJ29iamVjdCcgJiYgZGF0YVtpbmRleF0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoZGF0YVtpbmRleF0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpPi0xKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdWzFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXMuZm9ybWF0dGVyID8gc2VyaWVzLmZvcm1hdHRlcih2YWx1ZSxpbmRleCkgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhmb3JtYXRWYWwpLCBpdGVtLngsIGl0ZW0ueSAtIDQgKyB0ZXh0T2Zmc2V0ICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllcy50ZXh0U2l6ZSA/IHNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGRhdGFbaW5kZXhdXHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpbmRleF0gPT09ICdvYmplY3QnICYmIGRhdGFbaW5kZXhdICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XS52YWx1ZSA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGZvcm1hdFZhbCA9IHNlcmllcy5mb3JtYXR0ZXIgPyBzZXJpZXMuZm9ybWF0dGVyKHZhbHVlLGluZGV4KSA6IHZhbHVlO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhmb3JtYXRWYWwpLCBpdGVtLnggKyA0ICogb3B0cy5waXggLCBpdGVtLnkgKyBmb250U2l6ZSAvIDIgLSAzICk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdHYXVnZUxhYmVsKGdhdWdlT3B0aW9uLCByYWRpdXMsIGNlbnRlclBvc2l0aW9uLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICByYWRpdXMgLT0gZ2F1Z2VPcHRpb24ud2lkdGggLyAyICsgZ2F1Z2VPcHRpb24ubGFiZWxPZmZzZXQgKiBvcHRzLnBpeDtcclxuICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCB0b3RhbE51bWJlciA9IGdhdWdlT3B0aW9uLmVuZE51bWJlciAtIGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGxldCBzcGxpdE51bWJlciA9IHRvdGFsTnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBub3dBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgbGV0IG5vd051bWJlciA9IGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICsgMTsgaSsrKSB7XHJcbiAgICB2YXIgcG9zID0ge1xyXG4gICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhub3dBbmdsZSAqIE1hdGguUEkpLFxyXG4gICAgICB5OiByYWRpdXMgKiBNYXRoLnNpbihub3dBbmdsZSAqIE1hdGguUEkpXHJcbiAgICB9O1xyXG4gICAgdmFyIGxhYmVsVGV4dCA9IGdhdWdlT3B0aW9uLmZvcm1hdHRlciA/IGdhdWdlT3B0aW9uLmZvcm1hdHRlcihub3dOdW1iZXIpIDogbm93TnVtYmVyO1xyXG4gICAgcG9zLnggKz0gY2VudGVyUG9zaXRpb24ueCAtIG1lYXN1cmVUZXh0KGxhYmVsVGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICBwb3MueSArPSBjZW50ZXJQb3NpdGlvbi55O1xyXG4gICAgdmFyIHN0YXJ0WCA9IHBvcy54O1xyXG4gICAgdmFyIHN0YXJ0WSA9IHBvcy55O1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGdhdWdlT3B0aW9uLmxhYmVsQ29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChsYWJlbFRleHQsIHN0YXJ0WCwgc3RhcnRZICsgY29uZmlnLmZvbnRTaXplIC8gMik7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIG5vd0FuZ2xlICs9IHNwbGl0QW5nbGU7XHJcbiAgICBpZiAobm93QW5nbGUgPj0gMikge1xyXG4gICAgICBub3dBbmdsZSA9IG5vd0FuZ2xlICUgMjtcclxuICAgIH1cclxuICAgIG5vd051bWJlciArPSBzcGxpdE51bWJlcjtcclxuICB9XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmFkYXJMYWJlbChhbmdsZUxpc3QsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciByYWRhck9wdGlvbiA9IG9wdHMuZXh0cmEucmFkYXIgfHwge307XHJcbiAgcmFkaXVzICs9IGNvbmZpZy5yYWRhckxhYmVsVGV4dE1hcmdpbiAqIG9wdHMucGl4O1xyXG4gIGFuZ2xlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlLCBpbmRleCkge1xyXG4gICAgdmFyIHBvcyA9IHtcclxuICAgICAgeDogcmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLFxyXG4gICAgICB5OiByYWRpdXMgKiBNYXRoLnNpbihhbmdsZSlcclxuICAgIH07XHJcbiAgICB2YXIgcG9zUmVsYXRpdmVDYW52YXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3MueCwgcG9zLnksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIHZhciBzdGFydFggPSBwb3NSZWxhdGl2ZUNhbnZhcy54O1xyXG4gICAgdmFyIHN0YXJ0WSA9IHBvc1JlbGF0aXZlQ2FudmFzLnk7XHJcbiAgICBpZiAodXRpbC5hcHByb3hpbWF0ZWx5RXF1YWwocG9zLngsIDApKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpIC8gMjtcclxuICAgIH0gZWxzZSBpZiAocG9zLnggPCAwKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsQ29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXIpIHtcclxuICB2YXIgbGluZVJhZGl1cyA9IGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nO1xyXG4gIHZhciB0ZXh0T2JqZWN0Q29sbGVjdGlvbiA9IFtdO1xyXG4gIHZhciBsYXN0VGV4dE9iamVjdCA9IG51bGw7XHJcbiAgdmFyIHNlcmllc0NvbnZlcnQgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0saW5kZXgsc2VyaWVzKSB7XHJcbiAgICB2YXIgdGV4dCA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbSxpbmRleCxzZXJpZXMpIDogdXRpbC50b0ZpeGVkKGl0ZW0uX3Byb3BvcnRpb25fLnRvRml4ZWQoNCkgKiAxMDApICsgJyUnO1xyXG4gICAgdmFyIGFyYyA9IDIgKiBNYXRoLlBJIC0gKGl0ZW0uX3N0YXJ0XyArIDIgKiBNYXRoLlBJICogaXRlbS5fcHJvcG9ydGlvbl8gLyAyKTtcclxuICAgIGlmIChpdGVtLl9yb3NlX3Byb3BvcnRpb25fKSB7XHJcbiAgICAgIGFyYyA9IDIgKiBNYXRoLlBJIC0gKGl0ZW0uX3N0YXJ0XyArIDIgKiBNYXRoLlBJICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAvIDIpO1xyXG4gICAgfVxyXG4gICAgdmFyIGNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgIHZhciByYWRpdXMgPSBpdGVtLl9yYWRpdXNfO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYXJjOiBhcmMsXHJcbiAgICAgIHRleHQ6IHRleHQsXHJcbiAgICAgIGNvbG9yOiBjb2xvcixcclxuICAgICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplLFxyXG4gICAgfTtcclxuICB9KTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllc0NvbnZlcnQubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzQ29udmVydFtpXTtcclxuICAgIC8vIGxpbmUgZW5kXHJcbiAgICBsZXQgb3JnaW5YMSA9IE1hdGguY29zKGl0ZW0uYXJjKSAqIChpdGVtLnJhZGl1cyArIGxpbmVSYWRpdXMpO1xyXG4gICAgbGV0IG9yZ2luWTEgPSBNYXRoLnNpbihpdGVtLmFyYykgKiAoaXRlbS5yYWRpdXMgKyBsaW5lUmFkaXVzKTtcclxuICAgIC8vIGxpbmUgc3RhcnRcclxuICAgIGxldCBvcmdpblgyID0gTWF0aC5jb3MoaXRlbS5hcmMpICogaXRlbS5yYWRpdXM7XHJcbiAgICBsZXQgb3JnaW5ZMiA9IE1hdGguc2luKGl0ZW0uYXJjKSAqIGl0ZW0ucmFkaXVzO1xyXG4gICAgLy8gdGV4dCBzdGFydFxyXG4gICAgbGV0IG9yZ2luWDMgPSBvcmdpblgxID49IDAgPyBvcmdpblgxICsgY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgOiBvcmdpblgxIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmc7XHJcbiAgICBsZXQgb3JnaW5ZMyA9IG9yZ2luWTE7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoaXRlbS50ZXh0LCBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgIGxldCBzdGFydFkgPSBvcmdpblkzO1xyXG4gICAgaWYgKGxhc3RUZXh0T2JqZWN0ICYmIHV0aWwuaXNTYW1lWENvb3JkaW5hdGVBcmVhKGxhc3RUZXh0T2JqZWN0LnN0YXJ0LCB7XHJcbiAgICAgICAgeDogb3JnaW5YM1xyXG4gICAgICB9KSkge1xyXG4gICAgICBpZiAob3JnaW5YMyA+IDApIHtcclxuICAgICAgICBzdGFydFkgPSBNYXRoLm1pbihvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgfSBlbHNlIGlmIChvcmdpblgxIDwgMCkge1xyXG4gICAgICAgIHN0YXJ0WSA9IE1hdGgubWF4KG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcmdpblkzID4gMCkge1xyXG4gICAgICAgICAgc3RhcnRZID0gTWF0aC5tYXgob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHN0YXJ0WSA9IE1hdGgubWluKG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9yZ2luWDMgPCAwKSB7XHJcbiAgICAgIG9yZ2luWDMgLT0gdGV4dFdpZHRoO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHRPYmplY3QgPSB7XHJcbiAgICAgIGxpbmVTdGFydDoge1xyXG4gICAgICAgIHg6IG9yZ2luWDIsXHJcbiAgICAgICAgeTogb3JnaW5ZMlxyXG4gICAgICB9LFxyXG4gICAgICBsaW5lRW5kOiB7XHJcbiAgICAgICAgeDogb3JnaW5YMSxcclxuICAgICAgICB5OiBvcmdpblkxXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgeDogb3JnaW5YMyxcclxuICAgICAgICB5OiBzdGFydFlcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IHRleHRXaWR0aCxcclxuICAgICAgaGVpZ2h0OiBjb25maWcuZm9udFNpemUsXHJcbiAgICAgIHRleHQ6IGl0ZW0udGV4dCxcclxuICAgICAgY29sb3I6IGl0ZW0uY29sb3IsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplXHJcbiAgICB9O1xyXG4gICAgbGFzdFRleHRPYmplY3QgPSBhdm9pZENvbGxpc2lvbih0ZXh0T2JqZWN0LCBsYXN0VGV4dE9iamVjdCk7XHJcbiAgICB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5wdXNoKGxhc3RUZXh0T2JqZWN0KTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSB0ZXh0T2JqZWN0Q29sbGVjdGlvbltpXTtcclxuICAgIGxldCBsaW5lU3RhcnRQb2lzdGlvbiA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKGl0ZW0ubGluZVN0YXJ0LngsIGl0ZW0ubGluZVN0YXJ0LnksIGNlbnRlcik7XHJcbiAgICBsZXQgbGluZUVuZFBvaXN0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5saW5lRW5kLngsIGl0ZW0ubGluZUVuZC55LCBjZW50ZXIpO1xyXG4gICAgbGV0IHRleHRQb3NpdGlvbiA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKGl0ZW0uc3RhcnQueCwgaXRlbS5zdGFydC55LCBjZW50ZXIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8obGluZVN0YXJ0UG9pc3Rpb24ueCwgbGluZVN0YXJ0UG9pc3Rpb24ueSk7XHJcbiAgICBsZXQgY3VydmVTdGFydFggPSBpdGVtLnN0YXJ0LnggPCAwID8gdGV4dFBvc2l0aW9uLnggKyBpdGVtLndpZHRoIDogdGV4dFBvc2l0aW9uLng7XHJcbiAgICBsZXQgdGV4dFN0YXJ0WCA9IGl0ZW0uc3RhcnQueCA8IDAgPyB0ZXh0UG9zaXRpb24ueCAtIDUgOiB0ZXh0UG9zaXRpb24ueCArIDU7XHJcbiAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8obGluZUVuZFBvaXN0aW9uLngsIGxpbmVFbmRQb2lzdGlvbi55LCBjdXJ2ZVN0YXJ0WCwgdGV4dFBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8obGluZVN0YXJ0UG9pc3Rpb24ueCwgbGluZVN0YXJ0UG9pc3Rpb24ueSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyh0ZXh0UG9zaXRpb24ueCArIGl0ZW0ud2lkdGgsIHRleHRQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGN1cnZlU3RhcnRYLCB0ZXh0UG9zaXRpb24ueSwgMiwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgdGV4dFN0YXJ0WCwgdGV4dFBvc2l0aW9uLnkgKyAzKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwU3BsaXRMaW5lKG9mZnNldFgsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gb3B0cy5leHRyYS50b29sdGlwIHx8IHt9O1xyXG4gIHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPSB0b29sVGlwT3B0aW9uLmdyaWRUeXBlID09IHVuZGVmaW5lZCA/ICdzb2xpZCcgOiB0b29sVGlwT3B0aW9uLmdyaWRUeXBlO1xyXG4gIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aCA9IHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aCA9PSB1bmRlZmluZWQgPyA0IDogdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoO1xyXG4gIHZhciBzdGFydFkgPSBvcHRzLmFyZWFbMF07XHJcbiAgdmFyIGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW3Rvb2xUaXBPcHRpb24uZGFzaExlbmd0aCwgdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5ncmlkQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5tb3ZlVG8ob2Zmc2V0WCwgc3RhcnRZKTtcclxuICBjb250ZXh0LmxpbmVUbyhvZmZzZXRYLCBlbmRZKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLnhBeGlzTGFiZWwpIHtcclxuICAgIGxldCBsYWJlbFRleHQgPSBvcHRzLmNhdGVnb3JpZXNbb3B0cy50b29sdGlwLmluZGV4XTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGxldCB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChsYWJlbFRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICBsZXQgdGV4dFggPSBvZmZzZXRYIC0gMC41ICogdGV4dFdpZHRoO1xyXG4gICAgbGV0IHRleHRZID0gZW5kWTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQsIHRvb2xUaXBPcHRpb24ubGFiZWxCZ09wYWNpdHkgfHwgY29uZmlnLnRvb2xUaXBPcGFjaXR5KSk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5yZWN0KHRleHRYIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nLCB0ZXh0WSwgdGV4dFdpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZywgY29uZmlnLmZvbnRTaXplICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZyk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxGb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcobGFiZWxUZXh0KSwgdGV4dFgsIHRleHRZICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBtYXJrTGluZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQsXHJcbiAgICBkYXRhOiBbXVxyXG4gIH0sIG9wdHMuZXh0cmEubWFya0xpbmUpO1xyXG4gIGxldCBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIGxldCBwb2ludHMgPSBjYWxNYXJrTGluZURhdGEobWFya0xpbmVPcHRpb24uZGF0YSwgb3B0cyk7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gYXNzaWduKHt9LCB7XHJcbiAgICAgIGxpbmVDb2xvcjogJyNERTRBNDInLFxyXG4gICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICBsYWJlbEZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgICBsYWJlbEJnQ29sb3I6ICcjREZFOEZGJyxcclxuICAgICAgbGFiZWxCZ09wYWNpdHk6IDAuOCxcclxuICAgICAgeUF4aXNJbmRleDogMFxyXG4gICAgfSwgcG9pbnRzW2ldKTtcclxuICAgIGlmIChtYXJrTGluZU9wdGlvbi50eXBlID09ICdkYXNoJykge1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFttYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoLCBtYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0ubGluZUNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbS55KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChpdGVtLnNob3dMYWJlbCkge1xyXG4gICAgICBsZXQgbGFiZWxUZXh0ID0gb3B0cy55QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnlBeGlzLmZvcm1hdHRlcihpdGVtLnZhbHVlKSA6IGl0ZW0udmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgbGV0IHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KGxhYmVsVGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgICAgbGV0IHlBeGlzV2lkdGggPSBvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEueUF4aXNXaWR0aFswXS53aWR0aDtcclxuICAgICAgbGV0IGJnU3RhcnRYID0gb3B0cy5hcmVhWzNdIC0gdGV4dFdpZHRoIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMjtcclxuICAgICAgbGV0IGJnRW5kWCA9IG9wdHMuYXJlYVszXTtcclxuICAgICAgbGV0IGJnV2lkdGggPSBiZ0VuZFggLSBiZ1N0YXJ0WDtcclxuICAgICAgbGV0IHRleHRYID0gYmdFbmRYIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICBsZXQgdGV4dFkgPSBpdGVtLnk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGl0ZW0ubGFiZWxCZ0NvbG9yLCBpdGVtLmxhYmVsQmdPcGFjaXR5KSk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5sYWJlbEJnQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIHRleHRZIC0gMC41ICogY29uZmlnLmZvbnRTaXplIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0ubGFiZWxGb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhsYWJlbFRleHQpLCB0ZXh0WCwgdGV4dFkgKyAwLjUgKiBjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Rvb2xUaXBIb3JpemVudGFsTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDRcclxuICB9LCBvcHRzLmV4dHJhLnRvb2x0aXApO1xyXG4gIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoLCB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGhdKTtcclxuICB9XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmdyaWRDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIG9wdHMudG9vbHRpcC5vZmZzZXQueSk7XHJcbiAgY29udGV4dC5saW5lVG8oZW5kWCwgb3B0cy50b29sdGlwLm9mZnNldC55KTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLnlBeGlzTGFiZWwpIHtcclxuICAgIGxldCBsYWJlbFRleHQgPSBjYWxUb29sdGlwWUF4aXNEYXRhKG9wdHMudG9vbHRpcC5vZmZzZXQueSwgb3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcpO1xyXG4gICAgbGV0IHdpZHRoQXJyID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgICBsZXQgdFN0YXJ0TGVmdCA9IG9wdHMuYXJlYVszXTtcclxuICAgIGxldCB0U3RhcnRSaWdodCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhYmVsVGV4dC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGxldCB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChsYWJlbFRleHRbaV0sIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WCwgYmdFbmRYLCBiZ1dpZHRoO1xyXG4gICAgICBpZiAod2lkdGhBcnJbaV0ucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgYmdTdGFydFggPSB0U3RhcnRMZWZ0IC0gd2lkdGhBcnJbaV0ud2lkdGg7XHJcbiAgICAgICAgYmdFbmRYID0gTWF0aC5tYXgoYmdTdGFydFgsIGJnU3RhcnRYICsgdGV4dFdpZHRoICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYmdTdGFydFggPSB0U3RhcnRSaWdodDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCArIHdpZHRoQXJyW2ldLndpZHRoLCBiZ1N0YXJ0WCArIHRleHRXaWR0aCArIGNvbmZpZy50b29sVGlwUGFkZGluZyAqIDIpO1xyXG4gICAgICB9XHJcbiAgICAgIGJnV2lkdGggPSBiZ0VuZFggLSBiZ1N0YXJ0WDtcclxuICAgICAgbGV0IHRleHRYID0gYmdTdGFydFggKyAoYmdXaWR0aCAtIHRleHRXaWR0aCkgLyAyO1xyXG4gICAgICBsZXQgdGV4dFkgPSBvcHRzLnRvb2x0aXAub2Zmc2V0Lnk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCwgdG9vbFRpcE9wdGlvbi5sYWJlbEJnT3BhY2l0eSB8fCBjb25maWcudG9vbFRpcE9wYWNpdHkpKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIHRleHRZIC0gMC41ICogY29uZmlnLmZvbnRTaXplIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICpcclxuICAgICAgICBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChsYWJlbFRleHRbaV0sIHRleHRYLCB0ZXh0WSArIDAuNSAqIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGlmICh3aWR0aEFycltpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICB0U3RhcnRMZWZ0IC09ICh3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0U3RhcnRSaWdodCArPSB3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOFxyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICB2YXIgc3RhcnRZID0gb3B0cy5hcmVhWzBdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmFjdGl2ZUJnQ29sb3IsIHRvb2xUaXBPcHRpb24uYWN0aXZlQmdPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5yZWN0KG9mZnNldFggLSBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSwgZWFjaFNwYWNpbmcsIGVuZFkgLSBzdGFydFkpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUoXCIjRkZGRkZGXCIpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOFxyXG4gIH0sIG9wdHMuZXh0cmEuYmFyKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3QoIHN0YXJ0WCAsb2Zmc2V0WCAtIGVhY2hTcGFjaW5nIC8gMiAsICBlbmRYIC0gc3RhcnRYLGVhY2hTcGFjaW5nKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKFwiI0ZGRkZGRlwiKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Rvb2xUaXAodGV4dExpc3QsIG9mZnNldCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgc2hvd0JveDogdHJ1ZSxcclxuICAgIHNob3dBcnJvdzogdHJ1ZSxcclxuICAgIHNob3dDYXRlZ29yeTogZmFsc2UsXHJcbiAgICBiZ0NvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBiZ09wYWNpdHk6IDAuNyxcclxuICAgIGJvcmRlckNvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBib3JkZXJXaWR0aDogMCxcclxuICAgIGJvcmRlclJhZGl1czogMCxcclxuICAgIGJvcmRlck9wYWNpdHk6IDAuNyxcclxuICAgIGZvbnRDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgc3BsaXRMaW5lOiB0cnVlLFxyXG4gIH0sIG9wdHMuZXh0cmEudG9vbHRpcCk7XHJcbiAgaWYodG9vbFRpcE9wdGlvbi5zaG93Q2F0ZWdvcnk9PXRydWUgJiYgb3B0cy5jYXRlZ29yaWVzKXtcclxuICAgIHRleHRMaXN0LnVuc2hpZnQoe3RleHQ6b3B0cy5jYXRlZ29yaWVzW29wdHMudG9vbHRpcC5pbmRleF0sY29sb3I6bnVsbH0pXHJcbiAgfVxyXG4gIHZhciBsZWdlbmRXaWR0aCA9IDQgKiBvcHRzLnBpeDtcclxuICB2YXIgbGVnZW5kTWFyZ2luUmlnaHQgPSA1ICogb3B0cy5waXg7XHJcbiAgdmFyIGFycm93V2lkdGggPSB0b29sVGlwT3B0aW9uLnNob3dBcnJvdyA/IDggKiBvcHRzLnBpeCA6IDA7XHJcbiAgdmFyIGlzT3ZlclJpZ2h0Qm9yZGVyID0gZmFsc2U7XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ2NhbmRsZScgfHwgb3B0cy50eXBlID09ICdtaXgnKSB7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zcGxpdExpbmUgPT0gdHJ1ZSkge1xyXG4gICAgICBkcmF3VG9vbFRpcFNwbGl0TGluZShvcHRzLnRvb2x0aXAub2Zmc2V0LngsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9mZnNldCA9IGFzc2lnbih7XHJcbiAgICB4OiAwLFxyXG4gICAgeTogMFxyXG4gIH0sIG9mZnNldCk7XHJcbiAgb2Zmc2V0LnkgLT0gOCAqIG9wdHMucGl4O1xyXG4gIHZhciB0ZXh0V2lkdGggPSB0ZXh0TGlzdC5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgcmV0dXJuIG1lYXN1cmVUZXh0KGl0ZW0udGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICB2YXIgdG9vbFRpcFdpZHRoID0gbGVnZW5kV2lkdGggKyBsZWdlbmRNYXJnaW5SaWdodCArIDQgKiBjb25maWcudG9vbFRpcFBhZGRpbmcgKyBNYXRoLm1heC5hcHBseShudWxsLCB0ZXh0V2lkdGgpO1xyXG4gIHZhciB0b29sVGlwSGVpZ2h0ID0gMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZyArIHRleHRMaXN0Lmxlbmd0aCAqIGNvbmZpZy50b29sVGlwTGluZUhlaWdodDtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5zaG93Qm94ID09IGZhbHNlKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgLy8gaWYgYmV5b25kIHRoZSByaWdodCBib3JkZXJcclxuICBpZiAob2Zmc2V0LnggLSBNYXRoLmFicyhvcHRzLl9zY3JvbGxEaXN0YW5jZV8gfHwgMCkgKyBhcnJvd1dpZHRoICsgdG9vbFRpcFdpZHRoID4gb3B0cy53aWR0aCkge1xyXG4gICAgaXNPdmVyUmlnaHRCb3JkZXIgPSB0cnVlO1xyXG4gIH1cclxuICBpZiAodG9vbFRpcEhlaWdodCArIG9mZnNldC55ID4gb3B0cy5oZWlnaHQpIHtcclxuICAgIG9mZnNldC55ID0gb3B0cy5oZWlnaHQgLSB0b29sVGlwSGVpZ2h0O1xyXG4gIH1cclxuICAvLyBkcmF3IGJhY2tncm91bmQgcmVjdFxyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5iZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCwgdG9vbFRpcE9wdGlvbi5iZ09wYWNpdHkgfHwgY29uZmlnLnRvb2xUaXBPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgodG9vbFRpcE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYm9yZGVyQ29sb3IsIHRvb2xUaXBPcHRpb24uYm9yZGVyT3BhY2l0eSkpO1xyXG4gIHZhciByYWRpdXMgPSB0b29sVGlwT3B0aW9uLmJvcmRlclJhZGl1cztcclxuICBpZiAoaXNPdmVyUmlnaHRCb3JkZXIpIHtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhvZmZzZXQueCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LnggLSBhcnJvd1dpZHRoLCBvZmZzZXQueSArIDEwICogb3B0cy5waXggKyA1ICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cywgMCwgTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSArIHJhZGl1cywgb2Zmc2V0LnkgKyB0b29sVGlwSGVpZ2h0IC0gcmFkaXVzLCByYWRpdXMsXHJcbiAgICAgIE1hdGguUEkgLyAyLCBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCAtIGFycm93V2lkdGggLSBNYXRoLnJvdW5kKHRvb2xUaXBXaWR0aCkgKyByYWRpdXMsIG9mZnNldC55ICsgcmFkaXVzLCByYWRpdXMsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEkgLyAyLCAwLCBmYWxzZSk7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zaG93QXJyb3cpIHtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LnggLSBhcnJvd1dpZHRoLCBvZmZzZXQueSArIDEwICogb3B0cy5waXggLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCArIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyByYWRpdXMsIG9mZnNldC55ICsgcmFkaXVzLCByYWRpdXMsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSAtIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEkgLyAyLCAwLFxyXG4gICAgICBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyBNYXRoLnJvdW5kKHRvb2xUaXBXaWR0aCkgLSByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCAwLFxyXG4gICAgICBNYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cywgTWF0aC5QSSAvIDIsIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCArIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmJvcmRlcldpZHRoID4gMCkge1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbiAgLy8gZHJhdyBsZWdlbmRcclxuICB0ZXh0TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbS5jb2xvciAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgdmFyIHN0YXJ0WCA9IG9mZnNldC54ICsgYXJyb3dXaWR0aCArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmc7XHJcbiAgICAgIHZhciBzdGFydFkgPSBvZmZzZXQueSArIChjb25maWcudG9vbFRpcExpbmVIZWlnaHQgLSBjb25maWcuZm9udFNpemUpIC8gMiArIGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAqIGluZGV4ICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgMTtcclxuICAgICAgaWYgKGlzT3ZlclJpZ2h0Qm9yZGVyKSB7XHJcbiAgICAgICAgc3RhcnRYID0gb2Zmc2V0LnggLSB0b29sVGlwV2lkdGggLSBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZLCBsZWdlbmRXaWR0aCwgY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICB9KTtcclxuICAvLyBkcmF3IHRleHQgbGlzdFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIHZhciBzdGFydFggPSBvZmZzZXQueCArIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgbGVnZW5kV2lkdGggKyBsZWdlbmRNYXJnaW5SaWdodDtcclxuICAgIGlmIChpc092ZXJSaWdodEJvcmRlcikge1xyXG4gICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgK2xlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQ7XHJcbiAgICB9XHJcbiAgICB2YXIgc3RhcnRZID0gb2Zmc2V0LnkgKyAoY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0IC0gY29uZmlnLmZvbnRTaXplKSAvIDIgKyBjb25maWcudG9vbFRpcExpbmVIZWlnaHQgKiBpbmRleCArIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LngsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSAyLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSAyLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpXHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgLy9jb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgLy8g57uY5Yi25aCG5Y+g5pWw5o2u5Zu+XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGdldFN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZVN0YWNrRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yO1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDIgKyAxO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQwID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkwIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBpZiAoc2VyaWVzSW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0IC09IGhlaWdodDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgaXRlbS55LCBpdGVtLndpZHRoIC0gMiwgaGVpZ2h0KTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWV0ZXInOlxyXG4gICAgICAgIC8vIOe7mOWItua4qeW6puiuoeaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcik7XHJcbiAgICAgICAgaWYgKHNlcmllc0luZGV4ID09IDApIHtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgICAvL+eUu+iDjOaZr+minOiJslxyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sdW1uT3B0aW9uLm1ldGVyRmlsbENvbG9yKTtcclxuICAgICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYmFyQm9yZGVyUmFkaXVzID0gKGl0ZW0ud2lkdGggLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIqMikgLyAyO1xyXG4gICAgICAgICAgICAgICAgaWYoYmFyQm9yZGVyUmFkaXVzPmhlaWdodCl7XHJcbiAgICAgICAgICAgICAgICAgIGJhckJvcmRlclJhZGl1cyA9IGhlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyLCBpdGVtLnkgKyBiYXJCb3JkZXJSYWRpdXMpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMoc3RhcnRYICsgaXRlbS53aWR0aC8yLCBpdGVtLnkgKyBiYXJCb3JkZXJSYWRpdXMsIGJhckJvcmRlclJhZGl1cywgLU1hdGguUEksIDApO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCAtIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgaXRlbS55LCBpdGVtLndpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvL+eUu+i+ueahhue6v1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHZhciBiYXJCb3JkZXJSYWRpdXMgPSAoaXRlbS53aWR0aCAtIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcikvIDI7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGJhckJvcmRlclJhZGl1cz5oZWlnaHQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGJhckJvcmRlclJhZGl1cyA9IGhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggICsgY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyICogMC41LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIDAuNSwgaXRlbS55ICsgYmFyQm9yZGVyUmFkaXVzKTtcclxuICAgICAgICAgICAgICAgICAgY29udGV4dC5hcmMoc3RhcnRYICsgaXRlbS53aWR0aC8yLCBpdGVtLnkgKyBiYXJCb3JkZXJSYWRpdXMgLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGJhckJvcmRlclJhZGl1cywgLU1hdGguUEksIDApO1xyXG4gICAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoIC0gY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyICogMC41LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyICogMC41LCBpdGVtLnkgKyBoZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGl0ZW0ueSArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIDAuNSk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGl0ZW0ueSArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIDAuNSk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGl0ZW0ueSArIGhlaWdodCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYmFyQm9yZGVyUmFkaXVzID0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgICBpZihiYXJCb3JkZXJSYWRpdXM+aGVpZ2h0KXtcclxuICAgICAgICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzID0gaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmFyYyhzdGFydFggKyBiYXJCb3JkZXJSYWRpdXMsIGl0ZW0ueSArIGJhckJvcmRlclJhZGl1cywgYmFyQm9yZGVyUmFkaXVzLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSBiYXJCb3JkZXJSYWRpdXMsIGl0ZW0ueSArIGJhckJvcmRlclJhZGl1cywgYmFyQm9yZGVyUmFkaXVzLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnksIGl0ZW0ud2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtZXRlcic6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCB5QXhpc1BvaW50cyA9IFtdO1xyXG4gIGxldCBlYWNoU3BhY2luZyA9IChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkvb3B0cy5jYXRlZ29yaWVzLmxlbmd0aDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMuY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgeUF4aXNQb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBlYWNoU3BhY2luZyAvIDIgKyBlYWNoU3BhY2luZyAqIGkpO1xyXG4gIH1cclxuICBsZXQgY29sdW1uT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnZ3JvdXAnLFxyXG4gICAgd2lkdGg6IGVhY2hTcGFjaW5nIC8gMixcclxuICAgIG1ldGVyQm9yZGVyOiA0LFxyXG4gICAgbWV0ZXJGaWxsQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGJhckJvcmRlckNpcmNsZTogZmFsc2UsXHJcbiAgICBiYXJCb3JkZXJSYWRpdXM6IFtdLFxyXG4gICAgc2VyaWVzR2FwOiAyLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgbGluZWFyT3BhY2l0eTogMSxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICAgIGNvbG9yU3RvcDogMCxcclxuICB9LCBvcHRzLmV4dHJhLmJhcik7XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geUF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBpZiAob3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QubGVuZ3RoICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdCYXJUb29sVGlwU3BsaXRBcmVhKG9wdHMudG9vbHRpcC5vZmZzZXQueSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZyk7XHJcbiAgfVxyXG4gIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihjb2x1bW5PcHRpb24ubGluZWFyVHlwZSwgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICBjYXNlICdncm91cCc6XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGdldEJhckRhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB5QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgdmFyIHRvb2x0aXBQb2ludHMgPSBnZXRCYXJTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB5QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgY2FsUG9pbnRzLnB1c2godG9vbHRpcFBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICAvL2ZpeCBpc3N1ZXMvSTI3QjFOIHl5b2luZ2UgJiBKb2VzaHVcclxuICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICAvL3ZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WSA9IGl0ZW0ueSAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gaXRlbS5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKGNvbHVtbk9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSxjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgoY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzLmxlbmd0aCA9PT0gNCkgfHwgY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRvcCA9IGl0ZW0ueSAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGl0ZW0uaGVpZ2g7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIHIzLCByMywgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMoaXRlbS54IC0gcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLnggLSByMSwgdG9wICsgd2lkdGggLSByMSwgcjEsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjIsIHRvcCArIHdpZHRoIC0gcjIsIHIyLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgc3RhcnRZKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHN0YXJ0WSArIGl0ZW0ud2lkdGggLSAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSArIGl0ZW0ud2lkdGggLSAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAvL2NvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAvLyDnu5jliLbloIblj6DmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLngwO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSAtIGl0ZW0ud2lkdGgvMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnkgLSBpdGVtLndpZHRoLzIsIGl0ZW0uaGVpZ2h0ICwgaXRlbS53aWR0aCAtIDIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXMpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdncm91cCc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIHBvaW50cyA9IGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgICBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB5QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHlBeGlzUG9pbnRzOiB5QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0NhbmRsZURhdGFQb2ludHMoc2VyaWVzLCBzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/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+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBidWJibGVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICBib3JkZXI6MlxyXG4gIH0sIG9wdHMuZXh0cmEuYnViYmxlKTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChidWJibGVPcHRpb24uYm9yZGVyICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYnViYmxlT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCArIGl0ZW0uciwgaXRlbS55KTtcclxuICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIGl0ZW0uciAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgXHJcbiAgICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IFwiI0ZGRkZGRlwiKTtcclxuICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbS50KSwgaXRlbS54LCBpdGVtLnkgKyBmb250U2l6ZS8yKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdMaW5lRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgd2lkdGg6IDJcclxuICB9LCBvcHRzLmV4dHJhLmxpbmUpO1xyXG4gIGxpbmVPcHRpb24ud2lkdGggKj0gb3B0cy5waXg7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgdmFyIGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGgpO1xyXG4gICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgY29sdW1uT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogZWFjaFNwYWNpbmcgLyAyLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBzZXJpZXNHYXA6IDIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmNvbHVtbik7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgdmFyIGNvbHVtbkluZGV4ID0gMDtcclxuICB2YXIgY29sdW1uTGVuZ3RoID0gMDtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAnY29sdW1uJykge1xyXG4gICAgICBjb2x1bW5MZW5ndGggKz0gMTtcclxuICAgIH1cclxuICB9KTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlLCBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAvLyDnu5jliLbmn7HnirbmlbDmja7lm75cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2NvbHVtbicpIHtcclxuICAgICAgcG9pbnRzID0gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW5ndGgsIGNvbHVtbkluZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKGNvbHVtbk9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICBpZiAoKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgJiYgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGl0ZW0ud2lkdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIzLCB0b3AgKyBoZWlnaHQgLSByMywgcjMsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCAtIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSAyLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29sdW1uSW5kZXggKz0gMTtcclxuICAgIH1cclxuICAgIC8v57uY5Yi25Yy65Z+f5Zu+5pWw5o2uXHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdhcmVhJykge1xyXG4gICAgICBsZXQgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgLy8g57uY5Yi25Yy65Z+f5pWw5o2uXHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDAuMikpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgaWYgKHBvaW50cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICB2YXIgZmlyc3RQb2ludCA9IHBvaW50c1swXTtcclxuICAgICAgICAgIGxldCBsYXN0UG9pbnQgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGVhY2hTZXJpZXMuc3R5bGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGxhc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGZpcnN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzWzBdO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgZWFjaFNwYWNpbmcgLyAyLCBlbmRZKTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIOe7mOWItuaKmOe6v+aVsOaNruWbvlxyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAnbGluZScpIHtcclxuICAgICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgICBzcGxpdFBvaW50TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKHBvaW50cywgaW5kZXgpIHtcclxuICAgICAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgICAgIGxldCBkYXNoTGVuZ3RoID0gZWFjaFNlcmllcy5kYXNoTGVuZ3RoID8gZWFjaFNlcmllcy5kYXNoTGVuZ3RoIDogODtcclxuICAgICAgICAgIGRhc2hMZW5ndGggKj0gb3B0cy5waXg7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMocG9pbnRzWzBdLngsIHBvaW50c1swXS55LCAxLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBpZiAoZWFjaFNlcmllcy5zdHlsZSA9PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSxcclxuICAgICAgICAgICAgICAgICAgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyDnu5jliLbngrnmlbDmja7lm75cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ3BvaW50Jykge1xyXG4gICAgICBlYWNoU2VyaWVzLmFkZFBvaW50ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChlYWNoU2VyaWVzLmFkZFBvaW50ID09IHRydWUgJiYgZWFjaFNlcmllcy50eXBlICE9PSAnY29sdW1uJykge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICB2YXIgY29sdW1uSW5kZXggPSAwO1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgIT09ICdjb2x1bW4nKSB7XHJcbiAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW5ndGgsIGNvbHVtbkluZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgIGNvbHVtbkluZGV4ICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmcsXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gb3B0cy5leHRyYS50b29sdGlwIHx8IHt9O1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmhvcml6ZW50YWxMaW5lICYmIG9wdHMudG9vbHRpcCAmJiBwcm9jZXNzID09PSAxICYmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdjb2x1bW4nIHx8IG9wdHMudHlwZSA9PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT0gJ21peCcpKSB7XHJcbiAgICBkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKVxyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcChvcHRzLnRvb2x0aXAudGV4dExpc3QsIG9wdHMudG9vbHRpcC5vZmZzZXQsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcblxyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIHN0YXJ0WCA9IHhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICBlbmRYID0geEF4aXNEYXRhLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgYm91bmRhcnlHYXAgPSAnY2VudGVyJztcclxuICBpZiAob3B0cy50eXBlID09ICdiYXInIHx8IG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJ3x8IG9wdHMudHlwZSA9PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09ICdidWJibGUnKSB7XHJcbiAgICBib3VuZGFyeUdhcCA9IG9wdHMueEF4aXMuYm91bmRhcnlHYXA7XHJcbiAgfVxyXG4gIHZhciBzdGFydFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuYXJlYVswXTtcclxuXHJcbiAgLy/nu5jliLbmu5rliqjmnaFcclxuICBpZiAob3B0cy5lbmFibGVTY3JvbGwgJiYgb3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICB2YXIgc2Nyb2xsWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdICsgY29uZmlnLnhBeGlzSGVpZ2h0O1xyXG4gICAgdmFyIHNjcm9sbFNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIHZhciBzY3JvbGxUb3RhbFdpZHRoID0gZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgICB2YXIgc2Nyb2xsV2lkdGggPSBzY3JvbGxTY3JlZW5XaWR0aCAqIHNjcm9sbFNjcmVlbldpZHRoIC8gc2Nyb2xsVG90YWxXaWR0aDtcclxuICAgIHZhciBzY3JvbGxMZWZ0ID0gMDtcclxuICAgIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8pIHtcclxuICAgICAgc2Nyb2xsTGVmdCA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gKiAoc2Nyb2xsU2NyZWVuV2lkdGgpIC8gc2Nyb2xsVG90YWxXaWR0aDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCg2ICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLnNjcm9sbEJhY2tncm91bmRDb2xvciB8fCBcIiNFRkVCRUZcIik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCg2ICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLnNjcm9sbENvbG9yIHx8IFwiI0E2QTZBNlwiKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIHNjcm9sbExlZnQsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgc2Nyb2xsTGVmdCArIHNjcm9sbFdpZHRoLCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gIH1cclxuICAvL+e7mOWItljovbTliLvluqbnur9cclxuICBpZiAob3B0cy54QXhpcy5jYWxpYnJhdGlvbiA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLmdyaWRDb2xvciB8fCBcIiNjY2NjY2NcIik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ2J1dHQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICB4QXhpc1BvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0gLSBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbSAtIGVhY2hTcGFjaW5nIC8gMiwgc3RhcnRZICsgMyAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+e7mOWItljovbTnvZHmoLxcclxuICBpZiAob3B0cy54QXhpcy5kaXNhYmxlR3JpZCAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLmdyaWRDb2xvciB8fCBcIiNjY2NjY2NcIik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ2J1dHQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBpZiAob3B0cy54QXhpcy5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbb3B0cy54QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXgsIG9wdHMueEF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4XSk7XHJcbiAgICB9XHJcbiAgICBvcHRzLnhBeGlzLmdyaWRFdmFsID0gb3B0cy54QXhpcy5ncmlkRXZhbCB8fCAxO1xyXG4gICAgeEF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaW5kZXggJSBvcHRzLnhBeGlzLmdyaWRFdmFsID09IDApIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0sIHN0YXJ0WSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbSwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L205paH5qGIXHJcbiAgaWYgKG9wdHMueEF4aXMuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgIC8vIOWvuVjovbTliJfooajlgZrmir3nqIDlpITnkIZcclxuICAgIC8v6buY6K6k5YWo6YOo5pi+56S6WOi9tOagh+etvlxyXG4gICAgbGV0IG1heFhBeGlzTGlzdExlbmd0aCA9IGNhdGVnb3JpZXMubGVuZ3RoO1xyXG4gICAgLy/lpoLmnpzorr7nva7kuoZY6L205Y2V5bGP5pWw6YePXHJcbiAgICBpZiAob3B0cy54QXhpcy5sYWJlbENvdW50KSB7XHJcbiAgICAgIC8v5aaC5p6c6K6+572uWOi9tOWvhuW6plxyXG4gICAgICBpZiAob3B0cy54QXhpcy5pdGVtQ291bnQpIHtcclxuICAgICAgICBtYXhYQXhpc0xpc3RMZW5ndGggPSBNYXRoLmNlaWwoY2F0ZWdvcmllcy5sZW5ndGggLyBvcHRzLnhBeGlzLml0ZW1Db3VudCAqIG9wdHMueEF4aXMubGFiZWxDb3VudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWF4WEF4aXNMaXN0TGVuZ3RoID0gb3B0cy54QXhpcy5sYWJlbENvdW50O1xyXG4gICAgICB9XHJcbiAgICAgIG1heFhBeGlzTGlzdExlbmd0aCAtPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByYXRpbyA9IE1hdGguY2VpbChjYXRlZ29yaWVzLmxlbmd0aCAvIG1heFhBeGlzTGlzdExlbmd0aCk7XHJcblxyXG4gICAgbGV0IG5ld0NhdGVnb3JpZXMgPSBbXTtcclxuICAgIGxldCBjZ0xlbmd0aCA9IGNhdGVnb3JpZXMubGVuZ3RoO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjZ0xlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpICUgcmF0aW8gIT09IDApIHtcclxuICAgICAgICBuZXdDYXRlZ29yaWVzLnB1c2goXCJcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3Q2F0ZWdvcmllcy5wdXNoKGNhdGVnb3JpZXNbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBuZXdDYXRlZ29yaWVzW2NnTGVuZ3RoIC0gMV0gPSBjYXRlZ29yaWVzW2NnTGVuZ3RoIC0gMV07XHJcbiAgICB2YXIgeEF4aXNGb250U2l6ZSA9IG9wdHMueEF4aXMuZm9udFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICBpZiAoY29uZmlnLl94QXhpc1RleHRBbmdsZV8gPT09IDApIHtcclxuICAgICAgbmV3Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IGl0ZW07XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IC1tZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc0ZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICBvZmZzZXQgKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAob3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh4QXhpc0ZvbnRTaXplKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLnhBeGlzLmZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc1BvaW50c1tpbmRleF0gKyBvZmZzZXQsIHN0YXJ0WSArIHhBeGlzRm9udFNpemUgKyAoY29uZmlnLnhBeGlzSGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0IC0geEF4aXNGb250U2l6ZSkgLyAyKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IGl0ZW07XHJcbiAgICAgICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMueEF4aXMuZm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICB2YXIgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNGb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IC10ZXh0V2lkdGg7XHJcbiAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICBvZmZzZXQgKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgX2NhbFJvdGF0ZVRyYW5zbGF0ZSA9IGNhbFJvdGF0ZVRyYW5zbGF0ZSh4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSArIHhBeGlzRm9udFNpemUgLyAyICsgNSwgb3B0cy5oZWlnaHQpLFxyXG4gICAgICAgICAgdHJhbnNYID0gX2NhbFJvdGF0ZVRyYW5zbGF0ZS50cmFuc1gsXHJcbiAgICAgICAgICB0cmFuc1kgPSBfY2FsUm90YXRlVHJhbnNsYXRlLnRyYW5zWTtcclxuXHJcbiAgICAgICAgY29udGV4dC5yb3RhdGUoLTEgKiBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyk7XHJcbiAgICAgICAgY29udGV4dC50cmFuc2xhdGUodHJhbnNYLCB0cmFuc1kpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNQb2ludHNbaW5kZXhdICsgb2Zmc2V0LCBzdGFydFkgKyB4QXhpc0ZvbnRTaXplICsgNSk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgLy/nu5jliLZY6L206L2057q/XHJcbiAgaWYgKG9wdHMueEF4aXMuYXhpc0xpbmUpIHtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuYXhpc0xpbmVDb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBpZiAob3B0cy55QXhpcy5kaXNhYmxlR3JpZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICBsZXQgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIHhBeGlzZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IFRvdGFsV2lkdGggPSB4QXhpc2VhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIGxldCBlbmRYID0gc3RhcnRYICsgVG90YWxXaWR0aDtcclxuICBsZXQgcG9pbnRzID0gW107XHJcbiAgbGV0IHN0YXJ0WSA9IDFcclxuICBpZiAob3B0cy54QXhpcy5heGlzTGluZSA9PT0gZmFsc2UpIHtcclxuICAgIHN0YXJ0WSA9IDBcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IHN0YXJ0WTsgaSA8IG9wdHMueUF4aXMuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgIHBvaW50cy5wdXNoKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDApIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnlBeGlzLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbb3B0cy55QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXgsIG9wdHMueUF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4XSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy55QXhpcy5ncmlkQ29sb3IpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0pO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICB2YXIgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciBmaWxsRW5kWSA9IGVuZFkgKyBjb25maWcueEF4aXNIZWlnaHQ7XHJcbiAgaWYgKG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgZmlsbEVuZFkgLT0gMyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICBpZiAob3B0cy54QXhpcy5yb3RhdGVMYWJlbCkge1xyXG4gICAgZmlsbEVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSArIG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeCAvIDI7XHJcbiAgfVxyXG4gIC8vIHNldCBZQXhpcyBiYWNrZ3JvdW5kXHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PSB0cnVlICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAhPT0gJ2xlZnQnKSB7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIHN0YXJ0WCwgZmlsbEVuZFkpO1xyXG4gIH1cclxuICBpZiAob3B0cy5lbmFibGVTY3JvbGwgPT0gdHJ1ZSAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gIT09ICdyaWdodCcpIHtcclxuICAgIGNvbnRleHQuZmlsbFJlY3QoZW5kWCwgMCwgb3B0cy53aWR0aCwgZmlsbEVuZFkpO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgXHJcbiAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHRTdGFydFJpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgdFN0YXJ0Q2VudGVyID0gb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMjtcclxuICBpZiAob3B0cy55QXhpcy5kYXRhKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIHZhciBwb2ludHMgPSBbXTtcclxuICAgICAgaWYoeURhdGEudHlwZSA9PT0gJ2NhdGVnb3JpZXMnKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAvIDIgKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBlYWNoU3BhY2luZyAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoeURhdGEuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICBsZXQgcmFuZ2VzRm9ybWF0ID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc0Zvcm1hdFtpXTtcclxuICAgICAgICBsZXQgeUF4aXNGb250U2l6ZSA9IHlEYXRhLmZvbnRTaXplID8geURhdGEuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBsZXQgeUF4aXNXaWR0aCA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoW2ldO1xyXG4gICAgICAgIGxldCB0ZXh0QWxpZ24gPSB5RGF0YS50ZXh0QWxpZ24gfHwgXCJyaWdodFwiO1xyXG4gICAgICAgIC8v55S7Wei9tOWIu+W6puWPiuaWh+ahiFxyXG4gICAgICAgIHJhbmdlc0Zvcm1hdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICB2YXIgcG9zID0gcG9pbnRzW2luZGV4XSA/IHBvaW50c1tpbmRleF0gOiBlbmRZO1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoeUF4aXNGb250U2l6ZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh5RGF0YS5heGlzTGluZUNvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh5RGF0YS5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgbGV0IHRtcHN0cmF0ID0gMDtcclxuICAgICAgICAgIGxldCBnYXB3aWR0aCA9IDQgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAvL+eUu+WIu+W6pue6v1xyXG4gICAgICAgICAgICBpZiAoeURhdGEuY2FsaWJyYXRpb24gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydExlZnQsIHBvcyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0TGVmdCAtIDMgKiBvcHRzLnBpeCwgcG9zKTtcclxuICAgICAgICAgICAgICBnYXB3aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy/nlLvmloflrZdcclxuICAgICAgICAgICAgc3dpdGNoICh0ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0TGVmdCAtIHlBeGlzV2lkdGgud2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSBnYXB3aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0TGVmdCAtIHlBeGlzV2lkdGgud2lkdGggLyAyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbSksIHRtcHN0cmF0LCBwb3MgKyB5QXhpc0ZvbnRTaXplIC8gMiAtIDMgKiBvcHRzLnBpeCk7XHJcblxyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgLy/nlLvliLvluqbnur9cclxuICAgICAgICAgICAgaWYgKHlEYXRhLmNhbGlicmF0aW9uID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRSaWdodCwgcG9zKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRSaWdodCArIDMgKiBvcHRzLnBpeCwgcG9zKTtcclxuICAgICAgICAgICAgICBnYXB3aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3dpdGNoICh0ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0UmlnaHQgKyBnYXB3aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0UmlnaHQgKyB5QXhpc1dpZHRoLndpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRSaWdodCArIHlBeGlzV2lkdGgud2lkdGggLyAyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbSksIHRtcHN0cmF0LCBwb3MgKyB5QXhpc0ZvbnRTaXplIC8gMiAtIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgLy/nlLvliLvluqbnur9cclxuICAgICAgICAgICAgaWYgKHlEYXRhLmNhbGlicmF0aW9uID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRDZW50ZXIsIHBvcyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0Q2VudGVyIC0gMyAqIG9wdHMucGl4LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGdhcHdpZHRoICs9IDMgKiBvcHRzLnBpeDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+eUu+aWh+Wtl1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRleHRBbGlnbikge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRDZW50ZXIgLSB5QXhpc1dpZHRoLndpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRDZW50ZXIgLSBnYXB3aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0geUF4aXNXaWR0aC53aWR0aCAvIDJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtKSwgdG1wc3RyYXQsIHBvcyArIHlBeGlzRm9udFNpemUgLyAyIC0gMyAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvL+eUu1novbTovbTnur9cclxuICAgICAgICBpZiAoeURhdGEuYXhpc0xpbmUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh5RGF0YS5heGlzTGluZUNvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydExlZnQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0TGVmdCwgb3B0cy5hcmVhWzBdKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydFJpZ2h0LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydFJpZ2h0LCBvcHRzLmFyZWFbMF0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydENlbnRlciwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRDZW50ZXIsIG9wdHMuYXJlYVswXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL+eUu1novbTmoIfpophcclxuICAgICAgICBpZiAob3B0cy55QXhpcy5zaG93VGl0bGUpIHtcclxuICAgICAgICAgIGxldCB0aXRsZUZvbnRTaXplID0geURhdGEudGl0bGVGb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICAgIGxldCB0aXRsZSA9IHlEYXRhLnRpdGxlO1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUodGl0bGVGb250U2l6ZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh5RGF0YS50aXRsZUZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgdFN0YXJ0TGVmdCAtIG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZUZvbnRTaXplLCBjb250ZXh0KSAvIDIgKyAoeURhdGEudGl0bGVPZmZzZXRYIHx8IDApLCBvcHRzLmFyZWFbMF0gLSAoMTAgLSAoeURhdGEudGl0bGVPZmZzZXRZIHx8IDApKSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIHRTdGFydFJpZ2h0IC0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlRm9udFNpemUsIGNvbnRleHQpIC8gMiArICh5RGF0YS50aXRsZU9mZnNldFggfHwgMCksIG9wdHMuYXJlYVswXSAtICgxMCAtICh5RGF0YS50aXRsZU9mZnNldFkgfHwgMCkpICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIHRTdGFydENlbnRlciAtIG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZUZvbnRTaXplLCBjb250ZXh0KSAvIDIgKyAoeURhdGEudGl0bGVPZmZzZXRYIHx8IDApLCBvcHRzLmFyZWFbMF0gLSAoMTAgLSAoeURhdGEudGl0bGVPZmZzZXRZIHx8IDApKSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgIHRTdGFydExlZnQgLT0gKHlBeGlzV2lkdGgud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRTdGFydFJpZ2h0ICs9IHlBeGlzV2lkdGgud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TGVnZW5kKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBjaGFydERhdGEpIHtcclxuICBpZiAob3B0cy5sZWdlbmQuc2hvdyA9PT0gZmFsc2UpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgbGV0IGxlZ2VuZERhdGEgPSBjaGFydERhdGEubGVnZW5kRGF0YTtcclxuICBsZXQgbGVnZW5kTGlzdCA9IGxlZ2VuZERhdGEucG9pbnRzO1xyXG4gIGxldCBsZWdlbmRBcmVhID0gbGVnZW5kRGF0YS5hcmVhO1xyXG4gIGxldCBwYWRkaW5nID0gb3B0cy5sZWdlbmQucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIGxldCBmb250U2l6ZSA9IG9wdHMubGVnZW5kLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgbGV0IHNoYXBlV2lkdGggPSAxNSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIGxldCBpdGVtR2FwID0gb3B0cy5sZWdlbmQuaXRlbUdhcCAqIG9wdHMucGl4O1xyXG4gIGxldCBsaW5lSGVpZ2h0ID0gTWF0aC5tYXgob3B0cy5sZWdlbmQubGluZUhlaWdodCAqIG9wdHMucGl4LCBmb250U2l6ZSk7XHJcbiAgLy/nlLvog4zmma/lj4rovrnmoYZcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKG9wdHMubGVnZW5kLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy5sZWdlbmQuYm9yZGVyQ29sb3IpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMubGVnZW5kLmJhY2tncm91bmRDb2xvcik7XHJcbiAgY29udGV4dC5tb3ZlVG8obGVnZW5kQXJlYS5zdGFydC54LCBsZWdlbmRBcmVhLnN0YXJ0LnkpO1xyXG4gIGNvbnRleHQucmVjdChsZWdlbmRBcmVhLnN0YXJ0LngsIGxlZ2VuZEFyZWEuc3RhcnQueSwgbGVnZW5kQXJlYS53aWR0aCwgbGVnZW5kQXJlYS5oZWlnaHQpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBsZWdlbmRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbUxpc3QsIGxpc3RJbmRleCkge1xyXG4gICAgbGV0IHdpZHRoID0gMDtcclxuICAgIGxldCBoZWlnaHQgPSAwO1xyXG4gICAgd2lkdGggPSBsZWdlbmREYXRhLndpZHRoQXJyW2xpc3RJbmRleF07XHJcbiAgICBoZWlnaHQgPSBsZWdlbmREYXRhLmhlaWdodEFycltsaXN0SW5kZXhdO1xyXG4gICAgbGV0IHN0YXJ0WCA9IDA7XHJcbiAgICBsZXQgc3RhcnRZID0gMDtcclxuICAgIGlmIChvcHRzLmxlZ2VuZC5wb3NpdGlvbiA9PSAndG9wJyB8fCBvcHRzLmxlZ2VuZC5wb3NpdGlvbiA9PSAnYm90dG9tJykge1xyXG4gICAgICBzd2l0Y2ggKG9wdHMubGVnZW5kLmZsb2F0KSB7XHJcbiAgICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyBwYWRkaW5nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIGxlZ2VuZEFyZWEud2lkdGggLSB3aWR0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIChsZWdlbmRBcmVhLndpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBzdGFydFkgPSBsZWdlbmRBcmVhLnN0YXJ0LnkgKyBwYWRkaW5nICsgbGlzdEluZGV4ICogbGluZUhlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChsaXN0SW5kZXggPT0gMCkge1xyXG4gICAgICAgIHdpZHRoID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3aWR0aCA9IGxlZ2VuZERhdGEud2lkdGhBcnJbbGlzdEluZGV4IC0gMV07XHJcbiAgICAgIH1cclxuICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgcGFkZGluZyArIHdpZHRoO1xyXG4gICAgICBzdGFydFkgPSBsZWdlbmRBcmVhLnN0YXJ0LnkgKyBwYWRkaW5nICsgKGxlZ2VuZEFyZWEuaGVpZ2h0IC0gaGVpZ2h0KSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1MaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gaXRlbUxpc3RbaV07XHJcbiAgICAgIGl0ZW0uYXJlYSA9IFswLCAwLCAwLCAwXTtcclxuICAgICAgaXRlbS5hcmVhWzBdID0gc3RhcnRYO1xyXG4gICAgICBpdGVtLmFyZWFbMV0gPSBzdGFydFk7XHJcbiAgICAgIGl0ZW0uYXJlYVszXSA9IHN0YXJ0WSArIGxpbmVIZWlnaHQ7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5zaG93ID8gaXRlbS5jb2xvciA6IG9wdHMubGVnZW5kLmhpZGRlbkNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5zaG93ID8gaXRlbS5jb2xvciA6IG9wdHMubGVnZW5kLmhpZGRlbkNvbG9yKTtcclxuICAgICAgc3dpdGNoIChpdGVtLmxlZ2VuZFNoYXBlKSB7XHJcbiAgICAgICAgY2FzZSAnbGluZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSAyICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSAyICogb3B0cy5waXgsIDE1ICogb3B0cy5waXgsIDQgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0cmlhbmdsZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAxMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZGlhbW9uZCc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAxMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY2lyY2xlJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0LCA1ICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JlY3QnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4LCAxNSAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3NxdWFyZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA1ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFggKyA1ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgsIDEwICogb3B0cy5waXgsIDEwICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbm9uZSc6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4LCAxNSAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgc3RhcnRYICs9IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0O1xyXG4gICAgICBsZXQgZm9udFRyYW5zID0gMC41ICogbGluZUhlaWdodCArIDAuNSAqIGZvbnRTaXplIC0gMjtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uc2hvdyA/IG9wdHMubGVnZW5kLmZvbnRDb2xvciA6IG9wdHMubGVnZW5kLmhpZGRlbkNvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLm5hbWUsIHN0YXJ0WCwgc3RhcnRZICsgZm9udFRyYW5zKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICAgICAgc3RhcnRYICs9IG1lYXN1cmVUZXh0KGl0ZW0ubmFtZSwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDtcclxuICAgICAgICBpdGVtLmFyZWFbMl0gPSBzdGFydFg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5hcmVhWzJdID0gc3RhcnRYICsgbWVhc3VyZVRleHQoaXRlbS5uYW1lLCBmb250U2l6ZSwgY29udGV4dCkgKyBpdGVtR2FwOztcclxuICAgICAgICBzdGFydFggLT0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQ7XHJcbiAgICAgICAgc3RhcnRZICs9IGxpbmVIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BpZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgcGllT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBhY3RpdmVPcGFjaXR5OiAwLjUsXHJcbiAgICBhY3RpdmVSYWRpdXM6IDEwLFxyXG4gICAgb2Zmc2V0QW5nbGU6IDAsXHJcbiAgICBsYWJlbFdpZHRoOiAxNSxcclxuICAgIHJpbmdXaWR0aDogMzAsXHJcbiAgICBjdXN0b21SYWRpdXM6IDAsXHJcbiAgICBib3JkZXI6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICBib3JkZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgY2VudGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICB9LCBvcHRzLnR5cGUgPT0gXCJwaWVcIiA/IG9wdHMuZXh0cmEucGllIDogb3B0cy5leHRyYS5yaW5nKTtcclxuICB2YXIgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5hcmVhWzBdICsgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB9O1xyXG4gIGlmIChjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9PSAwKSB7XHJcbiAgICBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9IHBpZU9wdGlvbi5hY3RpdmVSYWRpdXMgKiBvcHRzLnBpeDtcclxuICB9XHJcblxyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyAtIGNvbmZpZy5fcGllVGV4dE1heExlbmd0aF8sIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyk7XHJcbiAgaWYgKHBpZU9wdGlvbi5jdXN0b21SYWRpdXMgPiAwKSB7XHJcbiAgICByYWRpdXMgPSBwaWVPcHRpb24uY3VzdG9tUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIHByb2Nlc3MpO1xyXG4gIHZhciBhY3RpdmVSYWRpdXMgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcGllT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHBpZU9wdGlvbi5saW5lYXJUeXBlLCBwaWVPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocGllT3B0aW9uLm9mZnNldEFuZ2xlKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBwaWVPcHRpb24uYWN0aXZlT3BhY2l0eSB8fCAwLjUpKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfICsgYWN0aXZlUmFkaXVzLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChwaWVPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmxpbmVKb2luID0gXCJyb3VuZFwiO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwaWVPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgdmFyIGZpbGxjb2xvciA9IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICBpZiAocGllT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihwaWVPcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIDEpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDEpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxjb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18sIGVhY2hTZXJpZXMuX3N0YXJ0XywgZWFjaFNlcmllcy5fc3RhcnRfICsgMiAqIGVhY2hTZXJpZXMuX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocGllT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICB2YXIgaW5uZXJQaWVXaWR0aCA9IHJhZGl1cyAqIDAuNjtcclxuICAgIGlmICh0eXBlb2YgcGllT3B0aW9uLnJpbmdXaWR0aCA9PT0gJ251bWJlcicgJiYgcGllT3B0aW9uLnJpbmdXaWR0aCA+IDApIHtcclxuICAgICAgaW5uZXJQaWVXaWR0aCA9IE1hdGgubWF4KDAsIHJhZGl1cyAtIHBpZU9wdGlvbi5yaW5nV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocGllT3B0aW9uLmNlbnRlckNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJQaWVXaWR0aCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHZhciB2YWxpZCA9IGZhbHNlO1xyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoc2VyaWVzW2ldLmRhdGEgPiAwKSB7XHJcbiAgICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgZHJhd1BpZVRleHQoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHJhZGl1cywgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuICBpZiAocHJvY2VzcyA9PT0gMSAmJiBvcHRzLnR5cGUgPT09ICdyaW5nJykge1xyXG4gICAgZHJhd1JpbmdUaXRsZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Jvc2VEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHJvc2VPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdhcmVhJyxcclxuICAgIGFjdGl2ZU9wYWNpdHk6IDAuNSxcclxuICAgIGFjdGl2ZVJhZGl1czogMTAsXHJcbiAgICBvZmZzZXRBbmdsZTogMCxcclxuICAgIGxhYmVsV2lkdGg6IDE1LFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICB9LCBvcHRzLmV4dHJhLnJvc2UpO1xyXG4gIGlmIChjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9PSAwKSB7XHJcbiAgICBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHZhciBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmFyZWFbMF0gKyAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMlxyXG4gIH07XHJcbiAgdmFyIHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nIC0gY29uZmlnLl9waWVUZXh0TWF4TGVuZ3RoXywgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nKTtcclxuICB2YXIgbWluUmFkaXVzID0gcm9zZU9wdGlvbi5taW5SYWRpdXMgfHwgcmFkaXVzICogMC41O1xyXG4gIHNlcmllcyA9IGdldFJvc2VEYXRhUG9pbnRzKHNlcmllcywgcm9zZU9wdGlvbi50eXBlLCBtaW5SYWRpdXMsIHJhZGl1cywgcHJvY2Vzcyk7XHJcbiAgdmFyIGFjdGl2ZVJhZGl1cyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcm9zZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihyb3NlT3B0aW9uLmxpbmVhclR5cGUsIHJvc2VPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocm9zZU9wdGlvbi5vZmZzZXRBbmdsZSB8fCAwKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByb3NlT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgYWN0aXZlUmFkaXVzICsgZWFjaFNlcmllcy5fcmFkaXVzXywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChyb3NlT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocm9zZU9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICB2YXIgZmlsbGNvbG9yID0gZWFjaFNlcmllcy5jb2xvcjtcclxuICAgIGlmIChyb3NlT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihyb3NlT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9yb3NlX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocm9zZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHZhciB2YWxpZCA9IGZhbHNlO1xyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoc2VyaWVzW2ldLmRhdGEgPiAwKSB7XHJcbiAgICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgZHJhd1BpZVRleHQoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHJhZGl1cywgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QXJjYmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBhcmNiYXJPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHN0YXJ0QW5nbGU6IDAuNzUsXHJcbiAgICBlbmRBbmdsZTogMC4yNSxcclxuICAgIHR5cGU6ICdkZWZhdWx0JyxcclxuICAgIHdpZHRoOiAxMiAsXHJcbiAgICBnYXA6IDIgLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEuYXJjYmFyKTtcclxuICBzZXJpZXMgPSBnZXRBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgYXJjYmFyT3B0aW9uLCBwcm9jZXNzKTtcclxuICB2YXIgY2VudGVyUG9zaXRpb247XHJcbiAgaWYgKGFyY2Jhck9wdGlvbi5jZW50ZXJYIHx8IGFyY2Jhck9wdGlvbi5jZW50ZXJZKSB7XHJcbiAgICBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgICAgeDogYXJjYmFyT3B0aW9uLmNlbnRlclggPyBhcmNiYXJPcHRpb24uY2VudGVyWCA6IG9wdHMud2lkdGggLyAyLFxyXG4gICAgICB5OiBhcmNiYXJPcHRpb24uY2VudGVyWSA/IGFyY2Jhck9wdGlvbi5jZW50ZXJZIDogb3B0cy5oZWlnaHQgLyAyXHJcbiAgICB9O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICAgIHk6IG9wdHMuaGVpZ2h0IC8gMlxyXG4gICAgfTtcclxuICB9XHJcbiAgdmFyIHJhZGl1cztcclxuICBpZiAoYXJjYmFyT3B0aW9uLnJhZGl1cykge1xyXG4gICAgcmFkaXVzID0gYXJjYmFyT3B0aW9uLnJhZGl1cztcclxuICB9IGVsc2Uge1xyXG4gICAgcmFkaXVzID0gTWF0aC5taW4oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gICAgcmFkaXVzIC09IGFyY2Jhck9wdGlvbi53aWR0aCAvIDI7XHJcbiAgfVxyXG4gIGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSwgYXJjYmFyT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoU2VyaWVzID0gc2VyaWVzW2ldO1xyXG4gICAgLy/og4zmma/popzoibJcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoYXJjYmFyT3B0aW9uLmJhY2tncm91bmRDb2xvciB8fCAnI0U5RTlFOScpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnZGVmYXVsdCcpIHtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy/ov5vluqbmnaFcclxuICAgIHZhciBmaWxsQ29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICBpZihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJyl7XHJcbiAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLnggLSByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnksIGNlbnRlclBvc2l0aW9uLnggKyByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgMSkpXHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgMSkpXHJcbiAgICAgIGZpbGxDb2xvciA9IGdyZDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZmlsbENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMgLSAoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXggKyBhcmNiYXJPcHRpb24uZ2FwICogb3B0cy5waXgpICogaSwgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAxO1xyXG4gIHZhciBnYXVnZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgc3RhcnRBbmdsZTogMC43NSxcclxuICAgIGVuZEFuZ2xlOiAwLjI1LFxyXG4gICAgd2lkdGg6IDE1LFxyXG4gICAgbGFiZWxPZmZzZXQ6MTMsXHJcbiAgICBzcGxpdExpbmU6IHtcclxuICAgICAgZml4UmFkaXVzOiAwLFxyXG4gICAgICBzcGxpdE51bWJlcjogMTAsXHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcclxuICAgICAgY2hpbGROdW1iZXI6IDUsXHJcbiAgICAgIGNoaWxkV2lkdGg6IDVcclxuICAgIH0sXHJcbiAgICBwb2ludGVyOiB7XHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICdhdXRvJ1xyXG4gICAgfVxyXG4gIH0sIG9wdHMuZXh0cmEuZ2F1Z2UpO1xyXG4gIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgIGdhdWdlT3B0aW9uLm9sZEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICB9XHJcbiAgaWYgKGdhdWdlT3B0aW9uLm9sZERhdGEgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBnYXVnZU9wdGlvbi5vbGREYXRhID0gMDtcclxuICB9XHJcbiAgY2F0ZWdvcmllcyA9IGdldEdhdWdlQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDI7XHJcbiAgdmFyIGlubmVyUmFkaXVzID0gcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGg7XHJcbiAgdmFyIHRvdGFsQW5nbGUgPSAwO1xyXG4gIC8v5Yik5pat5Luq6KGo55uY55qE5qC35byP77yaZGVmYXVsdOeZvuW6puagt+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+W6puadoVxyXG4gICAgc2VyaWVzID0gZ2V0QXJjYmFyRGF0YVBvaW50cyhzZXJpZXMsIGdhdWdlT3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBpbm5lclJhZGl1cywgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAqIE1hdGguUEksIHNlcmllc1swXS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy8jIyDnrKzlm5vmraXnlLvmjIfpkohcclxuICAgIGxldCBwb2ludGVyUmFkaXVzID0gcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAyLjU7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKHNlcmllc1swXS5fcHJvcG9ydGlvbl8gLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoIC8gMyk7XHJcbiAgICBsZXQgZ3JhZGllbnQzID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAtcG9pbnRlclJhZGl1cyAqIDAuNiwgMCwgcG9pbnRlclJhZGl1cyAqIDAuNik7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcwJywgaGV4VG9SZ2IoJyNGRkZGRkYnLCAwKSk7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcwLjUnLCBoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDEpKTtcclxuICAgIGdyYWRpZW50My5hZGRDb2xvclN0b3AoJzEuMCcsIGhleFRvUmdiKCcjRkZGRkZGJywgMCkpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShncmFkaWVudDMpO1xyXG4gICAgY29udGV4dC5hcmMoMCwgMCwgcG9pbnRlclJhZGl1cywgMC44NSAqIE1hdGguUEksIDEuMTUgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzZXJpZXNbMF0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiwgLTQpO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyIC0gNCwgMCk7XHJcbiAgICBjb250ZXh0LmxpbmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIsIDQpO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyLCAtNCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8vZGVmYXVsdOeZvuW6puagt+W8j1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvL+eUu+iDjOaZr1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZ2F1Z2VPcHRpb24ud2lkdGgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGVhY2hDYXRlZ29yaWVzID0gY2F0ZWdvcmllc1tpXTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoQ2F0ZWdvcmllcy5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cywgZWFjaENhdGVnb3JpZXMuX3N0YXJ0QW5nbGVfICogTWF0aC5QSSwgZWFjaENhdGVnb3JpZXMuX2VuZEFuZ2xlXyAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgLy/nlLvliLvluqbnur9cclxuICAgIHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKyAxO1xyXG4gICAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gICAgbGV0IGNoaWxkQW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyO1xyXG4gICAgbGV0IHN0YXJ0WCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXM7XHJcbiAgICBsZXQgZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUud2lkdGg7XHJcbiAgICBsZXQgY2hpbGRlbmRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cyArIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZFdpZHRoO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciArIDE7IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShzcGxpdEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAqIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlciArIDE7IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGNoaWxkZW5kWCwgMCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQucm90YXRlKGNoaWxkQW5nbGUgKiBNYXRoLlBJKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgLy/nlLvmjIfpkohcclxuICAgIHNlcmllcyA9IGdldEdhdWdlRGF0YVBvaW50cyhzZXJpZXMsIGNhdGVnb3JpZXMsIGdhdWdlT3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBlYWNoU2VyaWVzID0gc2VyaWVzW2ldO1xyXG4gICAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgIGNvbnRleHQucm90YXRlKChlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAtIDEpICogTWF0aC5QSSk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoLCAwKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oMCwgLWdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyAyKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oLWlubmVyUmFkaXVzLCAwKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oMCwgZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCAvIDIpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoLCAwKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKCcjRkZGRkZGJyk7XHJcbiAgICAgIGNvbnRleHQuYXJjKDAsIDAsIGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyA2LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlKSB7XHJcbiAgICAgIGRyYXdHYXVnZUxhYmVsKGdhdWdlT3B0aW9uLCByYWRpdXMsIGNlbnRlclBvc2l0aW9uLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL+eUu+S7quihqOebmOagh+mimO+8jOWJr+agh+mimFxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEgJiYgb3B0cy50eXBlID09PSAnZ2F1Z2UnKSB7XHJcbiAgICBvcHRzLmV4dHJhLmdhdWdlLm9sZEFuZ2xlID0gc2VyaWVzWzBdLl9wcm9wb3J0aW9uXztcclxuICAgIG9wdHMuZXh0cmEuZ2F1Z2Uub2xkRGF0YSA9IHNlcmllc1swXS5kYXRhO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgaW5uZXJSYWRpdXM6IGlubmVyUmFkaXVzLFxyXG4gICAgY2F0ZWdvcmllczogY2F0ZWdvcmllcyxcclxuICAgIHRvdGFsQW5nbGU6IHRvdGFsQW5nbGVcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmFkYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBncmlkQ29sb3I6ICcjY2NjY2NjJyxcclxuICAgIGdyaWRUeXBlOiAncmFkYXInLFxyXG4gICAgb3BhY2l0eTogMC4yLFxyXG4gICAgZ3JpZENvdW50OiAzLFxyXG4gICAgYm9yZGVyOmZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6MlxyXG4gIH0sIG9wdHMuZXh0cmEucmFkYXIpO1xyXG4gIHZhciBjb29yZGluYXRlQW5nbGUgPSBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMob3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICB2YXIgeHIgPSAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyXHJcbiAgdmFyIHlyID0gKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oeHIgLSAoZ2V0TWF4VGV4dExpc3RMZW5ndGgob3B0cy5jYXRlZ29yaWVzLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpICsgY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luKSwgeXIgLSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4pO1xyXG4gIHJhZGl1cyAtPSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeDtcclxuICAvLyDnlLvliIblibLnur9cclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShyYWRhck9wdGlvbi5ncmlkQ29sb3IpO1xyXG4gIGNvb3JkaW5hdGVBbmdsZS5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlKSB7XHJcbiAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLCByYWRpdXMgKiBNYXRoLnNpbihhbmdsZSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5saW5lVG8ocG9zLngsIHBvcy55KTtcclxuICB9KTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgXHJcbiAgLy8g55S76IOM5pmv572R5qC8XHJcbiAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AoaSkge1xyXG4gICAgdmFyIHN0YXJ0UG9zID0ge307XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocmFkYXJPcHRpb24uZ3JpZENvbG9yKTtcclxuICAgIGlmIChyYWRhck9wdGlvbi5ncmlkVHlwZSA9PSAncmFkYXInKSB7XHJcbiAgICAgIGNvb3JkaW5hdGVBbmdsZS5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlLCBpbmRleCkge1xyXG4gICAgICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5jb3MoYW5nbGUpLCByYWRpdXMgL1xyXG4gICAgICAgICAgcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguc2luKGFuZ2xlKSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgc3RhcnRQb3MgPSBwb3M7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb3MueCwgcG9zLnkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhwb3MueCwgcG9zLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0UG9zLngsIHN0YXJ0UG9zLnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvcyA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKHJhZGl1cyAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLmNvcygxLjUpLCByYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5zaW4oMS41KSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBjZW50ZXJQb3NpdGlvbi55IC0gcG9zLnksIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICB9O1xyXG4gIGZvciAodmFyIGkgPSAxOyBpIDw9IHJhZGFyT3B0aW9uLmdyaWRDb3VudDsgaSsrKSB7XHJcbiAgICBfbG9vcChpKTtcclxuICB9XHJcbiAgdmFyIHJhZGFyRGF0YVBvaW50cyA9IGdldFJhZGFyRGF0YVBvaW50cyhjb29yZGluYXRlQW5nbGUsIGNlbnRlclBvc2l0aW9uLCByYWRpdXMsIHNlcmllcywgb3B0cywgcHJvY2Vzcyk7XHJcbiAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIC8vIOe7mOWItuWMuuWfn+aVsOaNrlxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKHJhZGFyT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYocmFkYXJPcHRpb24uYm9yZGVyID09PSB0cnVlKXtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgdmFyIHBvaW50cyA9IGVhY2hTZXJpZXMuZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnBvc2l0aW9uO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIC8vIGRyYXcgbGFiZWwgdGV4dFxyXG4gIGRyYXdSYWRhckxhYmVsKGNvb3JkaW5hdGVBbmdsZSwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICBcclxuICAvLyBkcmF3IGRhdGFMYWJlbFxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gZWFjaFNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGVhY2hTZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgZWFjaFNlcmllcy5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAvL+WmguaenOaYr+S4reW/g+eCueWeguebtOeahOS4iuS4i+eCueS9jVxyXG4gICAgICAgIGlmKE1hdGguYWJzKGl0ZW0ucG9zaXRpb24ueCAtIGNlbnRlclBvc2l0aW9uLngpPDIpe1xyXG4gICAgICAgICAgLy/lpoLmnpzlnKjkuIrpnaJcclxuICAgICAgICAgIGlmKGl0ZW0ucG9zaXRpb24ueSA8IGNlbnRlclBvc2l0aW9uLnkpe1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54LCBpdGVtLnBvc2l0aW9uLnkgLSA0KTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSArIDIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgLy/lpoLmnpzlnKjlt6bkvqdcclxuICAgICAgICAgIGlmKGl0ZW0ucG9zaXRpb24ueCA8IGNlbnRlclBvc2l0aW9uLngpe1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLnggLSA0LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCArIDQsIGl0ZW0ucG9zaXRpb24ueSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgfVxyXG4gIFxyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBhbmdsZUxpc3Q6IGNvb3JkaW5hdGVBbmdsZVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG5vcm1hbEludChtaW4sIG1heCwgaXRlcikge1xyXG4gIGl0ZXIgPSBpdGVyID09IDAgPyAxIDogaXRlcjtcclxuICB2YXIgYXJyID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyOyBpKyspIHtcclxuICAgIGFycltpXSA9IE1hdGgucmFuZG9tKCk7XHJcbiAgfTtcclxuICByZXR1cm4gTWF0aC5mbG9vcihhcnIucmVkdWNlKGZ1bmN0aW9uKGksIGopIHtcclxuICAgIHJldHVybiBpICsgalxyXG4gIH0pIC8gaXRlciAqIChtYXggLSBtaW4pKSArIG1pbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIHdpZHRoLCBoZWlnaHQpIHtcclxuICB2YXIgaXNJbiA9IGZhbHNlO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAocG9pbnRzW2ldLmFyZWEpIHtcclxuICAgICAgaWYgKGFyZWFbM10gPCBwb2ludHNbaV0uYXJlYVsxXSB8fCBhcmVhWzBdID4gcG9pbnRzW2ldLmFyZWFbMl0gfHwgYXJlYVsxXSA+IHBvaW50c1tpXS5hcmVhWzNdIHx8IGFyZWFbMl0gPCBwb2ludHNbaV0uYXJlYVswXSkge1xyXG4gICAgICAgIGlmIChhcmVhWzBdIDwgMCB8fCBhcmVhWzFdIDwgMCB8fCBhcmVhWzJdID4gd2lkdGggfHwgYXJlYVszXSA+IGhlaWdodCkge1xyXG4gICAgICAgICAgaXNJbiA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpc0luID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gaXNJbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldEJvdW5kaW5nQm94KGRhdGEpIHtcclxuICB2YXIgYm91bmRzID0ge30sY29vcmRzO1xyXG4gIGJvdW5kcy54TWluID0gMTgwO1xyXG4gIGJvdW5kcy54TWF4ID0gMDtcclxuICBib3VuZHMueU1pbiA9IDkwO1xyXG4gIGJvdW5kcy55TWF4ID0gMFxyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgdmFyIGNvb3JkYSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXNcclxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgY29vcmRhLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgIGNvb3JkcyA9IGNvb3JkYVtrXTtcclxuICAgICAgaWYgKGNvb3Jkcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGNvb3JkcyA9IGNvb3Jkc1swXVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29vcmRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgdmFyIGxvbmdpdHVkZSA9IGNvb3Jkc1tqXVswXTtcclxuICAgICAgICB2YXIgbGF0aXR1ZGUgPSBjb29yZHNbal1bMV07XHJcbiAgICAgICAgdmFyIHBvaW50ID0ge1xyXG4gICAgICAgICAgeDogbG9uZ2l0dWRlLFxyXG4gICAgICAgICAgeTogbGF0aXR1ZGVcclxuICAgICAgICB9XHJcbiAgICAgICAgYm91bmRzLnhNaW4gPSBib3VuZHMueE1pbiA8IHBvaW50LnggPyBib3VuZHMueE1pbiA6IHBvaW50Lng7XHJcbiAgICAgICAgYm91bmRzLnhNYXggPSBib3VuZHMueE1heCA+IHBvaW50LnggPyBib3VuZHMueE1heCA6IHBvaW50Lng7XHJcbiAgICAgICAgYm91bmRzLnlNaW4gPSBib3VuZHMueU1pbiA8IHBvaW50LnkgPyBib3VuZHMueU1pbiA6IHBvaW50Lnk7XHJcbiAgICAgICAgYm91bmRzLnlNYXggPSBib3VuZHMueU1heCA+IHBvaW50LnkgPyBib3VuZHMueU1heCA6IHBvaW50Lnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGJvdW5kcztcclxufVxyXG5cclxuZnVuY3Rpb24gY29vcmRpbmF0ZVRvUG9pbnQobGF0aXR1ZGUsIGxvbmdpdHVkZSwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCkge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiAobG9uZ2l0dWRlIC0gYm91bmRzLnhNaW4pICogc2NhbGUgKyB4b2Zmc2V0LFxyXG4gICAgeTogKGJvdW5kcy55TWF4IC0gbGF0aXR1ZGUpICogc2NhbGUgKyB5b2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gcG9pbnRUb0Nvb3JkaW5hdGUocG9pbnRZLCBwb2ludFgsIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpIHtcclxuICByZXR1cm4ge1xyXG4gICAgeDogKHBvaW50WCAtIHhvZmZzZXQpIC8gc2NhbGUgKyBib3VuZHMueE1pbixcclxuICAgIHk6IGJvdW5kcy55TWF4IC0gKHBvaW50WSAtIHlvZmZzZXQpIC8gc2NhbGVcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1JheUludGVyc2VjdHNTZWdtZW50KHBvaSwgc19wb2ksIGVfcG9pKSB7XHJcbiAgaWYgKHNfcG9pWzFdID09IGVfcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVsxXSA+IHBvaVsxXSAmJiBlX3BvaVsxXSA+IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoc19wb2lbMV0gPCBwb2lbMV0gJiYgZV9wb2lbMV0gPCBwb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzFdID09IHBvaVsxXSAmJiBlX3BvaVsxXSA+IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoZV9wb2lbMV0gPT0gcG9pWzFdICYmIHNfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVswXSA8IHBvaVswXSAmJiBlX3BvaVsxXSA8IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBsZXQgeHNlZyA9IGVfcG9pWzBdIC0gKGVfcG9pWzBdIC0gc19wb2lbMF0pICogKGVfcG9pWzFdIC0gcG9pWzFdKSAvIChlX3BvaVsxXSAtIHNfcG9pWzFdKTtcclxuICBpZiAoeHNlZyA8IHBvaVswXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUG9pV2l0aGluUG9seShwb2ksIHBvbHksIG1lcmNhdG9yKSB7XHJcbiAgbGV0IHNpbnNjID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvbHkubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlcG9seSA9IHBvbHlbaV1bMF07XHJcbiAgICBpZiAocG9seS5sZW5ndGggPT0gMSkge1xyXG4gICAgICBlcG9seSA9IHBvbHlbaV1bMF1cclxuICAgIH1cclxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgZXBvbHkubGVuZ3RoIC0gMTsgaisrKSB7XHJcbiAgICAgIGxldCBzX3BvaSA9IGVwb2x5W2pdO1xyXG4gICAgICBsZXQgZV9wb2kgPSBlcG9seVtqICsgMV07XHJcbiAgICAgIGlmIChtZXJjYXRvcikge1xyXG4gICAgICAgIHNfcG9pID0gbG9ubGF0Mm1lcmNhdG9yKGVwb2x5W2pdWzBdLCBlcG9seVtqXVsxXSk7XHJcbiAgICAgICAgZV9wb2kgPSBsb25sYXQybWVyY2F0b3IoZXBvbHlbaiArIDFdWzBdLCBlcG9seVtqICsgMV1bMV0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc1JheUludGVyc2VjdHNTZWdtZW50KHBvaSwgc19wb2ksIGVfcG9pKSkge1xyXG4gICAgICAgIHNpbnNjICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHNpbnNjICUgMiA9PSAxKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdNYXBEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIG1hcE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgYm9yZGVyOiB0cnVlLFxyXG4gICAgbWVyY2F0b3I6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDEsXHJcbiAgICBib3JkZXJDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDAuNixcclxuICAgIGFjdGl2ZUJvcmRlckNvbG9yOiAnI2YwNDg2NCcsXHJcbiAgICBhY3RpdmVGaWxsQ29sb3I6ICcjZmFjYzE0JyxcclxuICAgIGFjdGl2ZUZpbGxPcGFjaXR5OiAxXHJcbiAgfSwgb3B0cy5leHRyYS5tYXApO1xyXG4gIHZhciBjb29yZHMsIHBvaW50O1xyXG4gIHZhciBkYXRhID0gc2VyaWVzO1xyXG4gIHZhciBib3VuZHMgPSBnZXRCb3VuZGluZ0JveChkYXRhKTtcclxuICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICB2YXIgbWF4ID0gbG9ubGF0Mm1lcmNhdG9yKGJvdW5kcy54TWF4LCBib3VuZHMueU1heClcclxuICAgIHZhciBtaW4gPSBsb25sYXQybWVyY2F0b3IoYm91bmRzLnhNaW4sIGJvdW5kcy55TWluKVxyXG4gICAgYm91bmRzLnhNYXggPSBtYXhbMF1cclxuICAgIGJvdW5kcy55TWF4ID0gbWF4WzFdXHJcbiAgICBib3VuZHMueE1pbiA9IG1pblswXVxyXG4gICAgYm91bmRzLnlNaW4gPSBtaW5bMV1cclxuICB9XHJcbiAgdmFyIHhTY2FsZSA9IG9wdHMud2lkdGggLyBNYXRoLmFicyhib3VuZHMueE1heCAtIGJvdW5kcy54TWluKTtcclxuICB2YXIgeVNjYWxlID0gb3B0cy5oZWlnaHQgLyBNYXRoLmFicyhib3VuZHMueU1heCAtIGJvdW5kcy55TWluKTtcclxuICB2YXIgc2NhbGUgPSB4U2NhbGUgPCB5U2NhbGUgPyB4U2NhbGUgOiB5U2NhbGU7XHJcbiAgdmFyIHhvZmZzZXQgPSBvcHRzLndpZHRoIC8gMiAtIE1hdGguYWJzKGJvdW5kcy54TWF4IC0gYm91bmRzLnhNaW4pIC8gMiAqIHNjYWxlO1xyXG4gIHZhciB5b2Zmc2V0ID0gb3B0cy5oZWlnaHQgLyAyIC0gTWF0aC5hYnMoYm91bmRzLnlNYXggLSBib3VuZHMueU1pbikgLyAyICogc2NhbGU7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgobWFwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBtYXBPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYWN0aXZlQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKG1hcE9wdGlvbi5hY3RpdmVGaWxsQ29sb3IsIG1hcE9wdGlvbi5hY3RpdmVGaWxsT3BhY2l0eSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgZ2Fvc2kgPSBBcnJheSgyKTtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBnYW9zaSA9IGxvbmxhdDJtZXJjYXRvcihjb29yZHNbal1bMF0sIGNvb3Jkc1tqXVsxXSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZ2Fvc2kgPSBjb29yZHNbal1cclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChnYW9zaVsxXSwgZ2Fvc2lbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpXHJcbiAgICAgICAgaWYgKGogPT09IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludC54LCBwb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9pbnQueCwgcG9pbnQueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBpZiAobWFwT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9wdHMuZGF0YUxhYmVsID09IHRydWUpIHtcclxuICAgICAgdmFyIGNlbnRlclBvaW50ID0gZGF0YVtpXS5wcm9wZXJ0aWVzLmNlbnRyb2lkO1xyXG4gICAgICBpZiAoY2VudGVyUG9pbnQpIHtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBjZW50ZXJQb2ludCA9IGxvbmxhdDJtZXJjYXRvcihkYXRhW2ldLnByb3BlcnRpZXMuY2VudHJvaWRbMF0sIGRhdGFbaV0ucHJvcGVydGllcy5jZW50cm9pZFsxXSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChjZW50ZXJQb2ludFsxXSwgY2VudGVyUG9pbnRbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpO1xyXG4gICAgICAgIGxldCBmb250U2l6ZSA9IGRhdGFbaV0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgbGV0IHRleHQgPSBkYXRhW2ldLnByb3BlcnRpZXMubmFtZTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpXHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZGF0YVtpXS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpXHJcbiAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCBwb2ludC54IC0gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpIC8gMiwgcG9pbnQueSArIGZvbnRTaXplIC8gMik7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wdHMuY2hhcnREYXRhLm1hcERhdGEgPSB7XHJcbiAgICBib3VuZHM6IGJvdW5kcyxcclxuICAgIHNjYWxlOiBzY2FsZSxcclxuICAgIHhvZmZzZXQ6IHhvZmZzZXQsXHJcbiAgICB5b2Zmc2V0OiB5b2Zmc2V0LFxyXG4gICAgbWVyY2F0b3I6IG1hcE9wdGlvbi5tZXJjYXRvclxyXG4gIH1cclxuICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIDEpO1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRXb3JkQ2xvdWRQb2ludChvcHRzLCB0eXBlLCBjb250ZXh0KSB7XHJcbiAgbGV0IHBvaW50cyA9IG9wdHMuc2VyaWVzO1xyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGV4dCA9IHBvaW50c1tpXS5uYW1lO1xyXG4gICAgICAgIGxldCB0SGVpZ2h0ID0gcG9pbnRzW2ldLnRleHRTaXplICogb3B0cy5waXg7XHJcbiAgICAgICAgbGV0IHRXaWR0aCA9IG1lYXN1cmVUZXh0KHRleHQsIHRIZWlnaHQsIGNvbnRleHQpO1xyXG4gICAgICAgIGxldCB4LCB5O1xyXG4gICAgICAgIGxldCBhcmVhO1xyXG4gICAgICAgIGxldCBicmVha251bSA9IDA7XHJcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgIGJyZWFrbnVtKys7XHJcbiAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgYXJlYSA9IFt4IC0gNSArIG9wdHMud2lkdGggLyAyLCB5IC0gNSAtIHRIZWlnaHQgKyBvcHRzLmhlaWdodCAvIDIsIHggKyB0V2lkdGggKyA1ICsgb3B0cy53aWR0aCAvIDIsIHkgKyA1ICtcclxuICAgICAgICAgICAgb3B0cy5oZWlnaHQgLyAyXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgICAgbGV0IGlzQ29sbGlzaW9uID0gY29sbGlzaW9uTmV3KGFyZWEsIHBvaW50cywgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKCFpc0NvbGxpc2lvbikgYnJlYWs7XHJcbiAgICAgICAgICBpZiAoYnJlYWtudW0gPT0gMTAwMCkge1xyXG4gICAgICAgICAgICBhcmVhID0gWy0xMDAsIC0xMDAsIC0xMDAsIC0xMDBdO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHBvaW50c1tpXS5hcmVhID0gYXJlYTtcclxuICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3ZlcnRpY2FsJzpcclxuICAgICAgZnVuY3Rpb24gU3BpbigpIHtcclxuICAgICAgICAvL+iOt+WPluWdh+WMgOmaj+acuuWAvO+8jOaYr+WQpuaXi+i9rO+8jOaXi+i9rOeahOamgueOh+S4uu+8iDEtMC4177yJXHJcbiAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPiAwLjcpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICB9O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICAgICAgbGV0IGlzU3BpbiA9IFNwaW4oKTtcclxuICAgICAgICBsZXQgeCwgeSwgYXJlYSwgYXJlYXY7XHJcbiAgICAgICAgbGV0IGJyZWFrbnVtID0gMDtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgYnJlYWtudW0rKztcclxuICAgICAgICAgIGxldCBpc0NvbGxpc2lvbjtcclxuICAgICAgICAgIGlmIChpc1NwaW4pIHtcclxuICAgICAgICAgICAgeCA9IG5vcm1hbEludCgtb3B0cy53aWR0aCAvIDIsIG9wdHMud2lkdGggLyAyLCA1KSAtIHRXaWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBhcmVhID0gW3kgLSA1IC0gdFdpZHRoICsgb3B0cy53aWR0aCAvIDIsICgteCAtIDUgKyBvcHRzLmhlaWdodCAvIDIpLCB5ICsgNSArIG9wdHMud2lkdGggLyAyLCAoLXggKyB0SGVpZ2h0ICsgNSArIG9wdHMuaGVpZ2h0IC8gMildO1xyXG4gICAgICAgICAgICBhcmVhdiA9IFtvcHRzLndpZHRoIC0gKG9wdHMud2lkdGggLyAyIC0gb3B0cy5oZWlnaHQgLyAyKSAtICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKSAtIDUsIChvcHRzLmhlaWdodCAvIDIgLSBvcHRzLndpZHRoIC8gMikgKyAoeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMikgLSA1LCBvcHRzLndpZHRoIC0gKG9wdHMud2lkdGggLyAyIC0gb3B0cy5oZWlnaHQgLyAyKSAtICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKSArIHRIZWlnaHQsIChvcHRzLmhlaWdodCAvIDIgLSBvcHRzLndpZHRoIC8gMikgKyAoeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMikgKyB0V2lkdGggKyA1XTtcclxuICAgICAgICAgICAgaXNDb2xsaXNpb24gPSBjb2xsaXNpb25OZXcoYXJlYXYsIHBvaW50cywgb3B0cy5oZWlnaHQsIG9wdHMud2lkdGgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgeCA9IG5vcm1hbEludCgtb3B0cy53aWR0aCAvIDIsIG9wdHMud2lkdGggLyAyLCA1KSAtIHRXaWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBhcmVhID0gW3ggLSA1ICsgb3B0cy53aWR0aCAvIDIsIHkgLSA1IC0gdEhlaWdodCArIG9wdHMuaGVpZ2h0IC8gMiwgeCArIHRXaWR0aCArIDUgKyBvcHRzLndpZHRoIC8gMiwgeSArIDUgKyBvcHRzLmhlaWdodCAvIDJdO1xyXG4gICAgICAgICAgICBpc0NvbGxpc2lvbiA9IGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghaXNDb2xsaXNpb24pIGJyZWFrO1xyXG4gICAgICAgICAgaWYgKGJyZWFrbnVtID09IDEwMDApIHtcclxuICAgICAgICAgICAgYXJlYSA9IFstMTAwMCwgLTEwMDAsIC0xMDAwLCAtMTAwMF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKGlzU3Bpbikge1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhdjtcclxuICAgICAgICAgIHBvaW50c1tpXS5hcmVhdiA9IGFyZWE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBvaW50c1tpXS5hcmVhID0gYXJlYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnRzW2ldLnJvdGF0ZSA9IGlzU3BpbjtcclxuICAgICAgfTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBkcmF3V29yZENsb3VkRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCB3b3JkT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnbm9ybWFsJyxcclxuICAgIGF1dG9Db2xvcnM6IHRydWVcclxuICB9LCBvcHRzLmV4dHJhLndvcmQpO1xyXG4gIGlmICghb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSkge1xyXG4gICAgb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSA9IGdldFdvcmRDbG91ZFBvaW50KG9wdHMsIHdvcmRPcHRpb24udHlwZSwgY29udGV4dCk7XHJcbiAgfVxyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5iYWNrZ3JvdW5kKTtcclxuICBjb250ZXh0LnJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBwb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS53b3JkQ2xvdWREYXRhO1xyXG4gIGNvbnRleHQudHJhbnNsYXRlKG9wdHMud2lkdGggLyAyLCBvcHRzLmhlaWdodCAvIDIpO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGlmIChwb2ludHNbaV0ucm90YXRlKSB7XHJcbiAgICAgIGNvbnRleHQucm90YXRlKDkwICogTWF0aC5QSSAvIDE4MCk7XHJcbiAgICB9XHJcbiAgICBsZXQgdGV4dCA9IHBvaW50c1tpXS5uYW1lO1xyXG4gICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgIGxldCB0V2lkdGggPSBtZWFzdXJlVGV4dCh0ZXh0LCB0SGVpZ2h0LCBjb250ZXh0KTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHBvaW50c1tpXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShwb2ludHNbaV0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZSh0SGVpZ2h0KTtcclxuICAgIGlmIChwb2ludHNbaV0ucm90YXRlKSB7XHJcbiAgICAgIGlmIChwb2ludHNbaV0uYXJlYXZbMF0gPiAwKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYXZbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWF2WzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAocG9pbnRzW2ldLmFyZWFbMF0gPiAwKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWFbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWFbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCBmdW5uZWxPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6J2Z1bm5lbCcsXHJcbiAgICBhY3RpdmVXaWR0aDogMTAsXHJcbiAgICBhY3RpdmVPcGFjaXR5OiAwLjMsXHJcbiAgICBib3JkZXI6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICBib3JkZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDEsXHJcbiAgICBsYWJlbEFsaWduOiAncmlnaHQnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEuZnVubmVsKTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gc2VyaWVzLmxlbmd0aDtcclxuICBsZXQgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl1cclxuICB9O1xyXG4gIGxldCBhY3RpdmVXaWR0aCA9IGZ1bm5lbE9wdGlvbi5hY3RpdmVXaWR0aCAqIG9wdHMucGl4O1xyXG4gIGxldCByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gYWN0aXZlV2lkdGgsIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gYWN0aXZlV2lkdGgpO1xyXG4gIHNlcmllcyA9IGdldEZ1bm5lbERhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIGZ1bm5lbE9wdGlvbi50eXBlLCBlYWNoU3BhY2luZywgcHJvY2Vzcyk7XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlLCBmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBpZihmdW5uZWxPcHRpb24udHlwZSA9PSAncHlyYW1pZCcpe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPT0gc2VyaWVzLmxlbmd0aCAtMSkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKC1hY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc1tpXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzW2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogKGkgKyAxKSwgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIGldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2kgKyAxXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2kgKyAxXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2ldLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzW2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogKGkgKyAxKSwgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIGldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc1tpICsgMV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpICsgMV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgLWVhY2hTcGFjaW5nKVxyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPT0gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKC1hY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzW2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZywgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaSAtIDFdLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc1tpXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2ldLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNbaSAtIDFdLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzW2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogKGkgKyAxKSwgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIGldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2kgLSAxXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2kgLSAxXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgLWVhY2hTcGFjaW5nKVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdGdW5uZWxUZXh0KHNlcmllcywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGZ1bm5lbE9wdGlvbi5sYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsVGV4dChzZXJpZXMsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBsYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBsZXQgc3RhcnRYLCBlbmRYLCBzdGFydFksIGZvbnRTaXplO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKGl0ZW0saSxzZXJpZXMpIDogdXRpbC50b0ZpeGVkKGl0ZW0uX3Byb3BvcnRpb25fICogMTAwKSArICclJztcclxuICAgIGlmIChsYWJlbEFsaWduID09ICdyaWdodCcpIHtcclxuICAgICAgaWYob3B0cy5leHRyYS5mdW5uZWwudHlwZSA9PT0gJ3B5cmFtaWQnKXtcclxuICAgICAgICBpZiAoaSA9PSBzZXJpZXMubGVuZ3RoIC0xKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgc2VyaWVzW2kgKyAxXS5mdW5uZWxBcmVhWzJdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAoaSA9PSAwKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgc2VyaWVzW2kgLSAxXS5mdW5uZWxBcmVhWzJdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVuZFggPSBzdGFydFggKyBhY3RpdmVXaWR0aCAqIDI7XHJcbiAgICAgIHN0YXJ0WSA9IGl0ZW0uZnVubmVsQXJlYVsxXSArIGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgZm9udFNpemUgPSBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmFyYyhlbmRYLCBzdGFydFksIDIsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCArIDUsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYob3B0cy5leHRyYS5mdW5uZWwudHlwZSA9PT0gJ3B5cmFtaWQnKXtcclxuICAgICAgICBpZiAoaSA9PSBzZXJpZXMubGVuZ3RoIC0xKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgc2VyaWVzW2kgKyAxXS5mdW5uZWxBcmVhWzBdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAoaSA9PSAwKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgc2VyaWVzW2kgLSAxXS5mdW5uZWxBcmVhWzBdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVuZFggPSBzdGFydFggLSBhY3RpdmVXaWR0aCAqIDI7XHJcbiAgICAgIHN0YXJ0WSA9IGl0ZW0uZnVubmVsQXJlYVsxXSArIGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgZm9udFNpemUgPSBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmFyYyhlbmRYLCBzdGFydFksIDIsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCAtIDUgLSBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCksIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDYW52YXMob3B0cywgY29udGV4dCkge1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG52YXIgVGltaW5nID0ge1xyXG4gIGVhc2VJbjogZnVuY3Rpb24gZWFzZUluKHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcywgMyk7XHJcbiAgfSxcclxuICBlYXNlT3V0OiBmdW5jdGlvbiBlYXNlT3V0KHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcyAtIDEsIDMpICsgMTtcclxuICB9LFxyXG4gIGVhc2VJbk91dDogZnVuY3Rpb24gZWFzZUluT3V0KHBvcykge1xyXG4gICAgaWYgKChwb3MgLz0gMC41KSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDAuNSAqIE1hdGgucG93KHBvcywgMyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMC41ICogKE1hdGgucG93KHBvcyAtIDIsIDMpICsgMik7XHJcbiAgICB9XHJcbiAgfSxcclxuICBsaW5lYXI6IGZ1bmN0aW9uIGxpbmVhcihwb3MpIHtcclxuICAgIHJldHVybiBwb3M7XHJcbiAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb24gQW5pbWF0aW9uKG9wdHMpIHtcclxuICB0aGlzLmlzU3RvcCA9IGZhbHNlO1xyXG4gIG9wdHMuZHVyYXRpb24gPSB0eXBlb2Ygb3B0cy5kdXJhdGlvbiA9PT0gJ3VuZGVmaW5lZCcgPyAxMDAwIDogb3B0cy5kdXJhdGlvbjtcclxuICBvcHRzLnRpbWluZyA9IG9wdHMudGltaW5nIHx8ICdlYXNlSW5PdXQnO1xyXG4gIHZhciBkZWxheSA9IDE3O1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCkge1xyXG4gICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RlcCwgZGVsYXkpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgdmFyIHRpbWVTdGFtcCA9ICtuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgc3RlcCh0aW1lU3RhbXApO1xyXG4gICAgICAgIH0sIGRlbGF5KTtcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGVwKSB7XHJcbiAgICAgICAgc3RlcChudWxsKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG4gIHZhciBhbmltYXRpb25GcmFtZSA9IGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCk7XHJcbiAgdmFyIHN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICB2YXIgX3N0ZXAgPSBmdW5jdGlvbiBzdGVwKHRpbWVzdGFtcCkge1xyXG4gICAgaWYgKHRpbWVzdGFtcCA9PT0gbnVsbCB8fCB0aGlzLmlzU3RvcCA9PT0gdHJ1ZSkge1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2VzcygxKTtcclxuICAgICAgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCAmJiBvcHRzLm9uQW5pbWF0aW9uRmluaXNoKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChzdGFydFRpbWVTdGFtcCA9PT0gbnVsbCkge1xyXG4gICAgICBzdGFydFRpbWVTdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgIH1cclxuICAgIGlmICh0aW1lc3RhbXAgLSBzdGFydFRpbWVTdGFtcCA8IG9wdHMuZHVyYXRpb24pIHtcclxuICAgICAgdmFyIHByb2Nlc3MgPSAodGltZXN0YW1wIC0gc3RhcnRUaW1lU3RhbXApIC8gb3B0cy5kdXJhdGlvbjtcclxuICAgICAgdmFyIHRpbWluZ0Z1bmN0aW9uID0gVGltaW5nW29wdHMudGltaW5nXTtcclxuICAgICAgcHJvY2VzcyA9IHRpbWluZ0Z1bmN0aW9uKHByb2Nlc3MpO1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2Vzcyhwcm9jZXNzKTtcclxuICAgICAgYW5pbWF0aW9uRnJhbWUoX3N0ZXAsIGRlbGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMub25Qcm9jZXNzICYmIG9wdHMub25Qcm9jZXNzKDEpO1xyXG4gICAgICBvcHRzLm9uQW5pbWF0aW9uRmluaXNoICYmIG9wdHMub25BbmltYXRpb25GaW5pc2goKTtcclxuICAgIH1cclxuICB9O1xyXG4gIF9zdGVwID0gX3N0ZXAuYmluZCh0aGlzKTtcclxuICBhbmltYXRpb25GcmFtZShfc3RlcCwgZGVsYXkpO1xyXG59XHJcblxyXG5BbmltYXRpb24ucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbigpIHtcclxuICB0aGlzLmlzU3RvcCA9IHRydWU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2hhcnRzKHR5cGUsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgdmFyIHNlcmllcyA9IG9wdHMuc2VyaWVzO1xyXG4gIC8v5YW85a65RUNoYXJ0c+mlvOWbvuexu+aVsOaNruagvOW8j1xyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ3Jvc2UnIHx8IHR5cGUgPT09ICdmdW5uZWwnKSB7XHJcbiAgICBzZXJpZXMgPSBmaXhQaWVTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gIH1cclxuICB2YXIgY2F0ZWdvcmllcyA9IG9wdHMuY2F0ZWdvcmllcztcclxuICBzZXJpZXMgPSBmaWxsU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKTtcclxuICB2YXIgZHVyYXRpb24gPSBvcHRzLmFuaW1hdGlvbiA/IG9wdHMuZHVyYXRpb24gOiAwO1xyXG4gIF90aGlzLmFuaW1hdGlvbkluc3RhbmNlICYmIF90aGlzLmFuaW1hdGlvbkluc3RhbmNlLnN0b3AoKTtcclxuICB2YXIgc2VyaWVzTUEgPSBudWxsO1xyXG4gIGlmICh0eXBlID09ICdjYW5kbGUnKSB7XHJcbiAgICBsZXQgYXZlcmFnZSA9IGFzc2lnbih7fSwgb3B0cy5leHRyYS5jYW5kbGUuYXZlcmFnZSk7XHJcbiAgICBpZiAoYXZlcmFnZS5zaG93KSB7XHJcbiAgICAgIHNlcmllc01BID0gY2FsQ2FuZGxlTUEoYXZlcmFnZS5kYXksIGF2ZXJhZ2UubmFtZSwgYXZlcmFnZS5jb2xvciwgc2VyaWVzWzBdLmRhdGEpO1xyXG4gICAgICBzZXJpZXNNQSA9IGZpbGxTZXJpZXMoc2VyaWVzTUEsIG9wdHMsIGNvbmZpZyk7XHJcbiAgICAgIG9wdHMuc2VyaWVzTUEgPSBzZXJpZXNNQTtcclxuICAgIH0gZWxzZSBpZiAob3B0cy5zZXJpZXNNQSkge1xyXG4gICAgICBzZXJpZXNNQSA9IG9wdHMuc2VyaWVzTUEgPSBmaWxsU2VyaWVzKG9wdHMuc2VyaWVzTUEsIG9wdHMsIGNvbmZpZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXJpZXNNQSA9IHNlcmllcztcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgc2VyaWVzTUEgPSBzZXJpZXM7XHJcbiAgfVxyXG4gIC8qIOi/h+a7pOaOiXNob3c9ZmFsc2XnmoRzZXJpZXMgKi9cclxuICBvcHRzLl9zZXJpZXNfID0gc2VyaWVzID0gZmlsdGVyU2VyaWVzKHNlcmllcyk7XHJcbiAgLy/ph43mlrDorqHnrpflm77ooajljLrln59cclxuICBvcHRzLmFyZWEgPSBuZXcgQXJyYXkoNCk7XHJcbiAgLy/lpI3kvY3nu5jlm77ljLrln59cclxuICBmb3IgKGxldCBqID0gMDsgaiA8IDQ7IGorKykge1xyXG4gICAgb3B0cy5hcmVhW2pdID0gb3B0cy5wYWRkaW5nW2pdICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIC8v6YCa6L+H6K6h566X5LiJ5aSn5Yy65Z+f77ya5Zu+5L6L44CBWOi9tOOAgVnovbTnmoTlpKflsI/vvIznoa7lrprnu5jlm77ljLrln59cclxuICB2YXIgX2NhbExlZ2VuZERhdGEgPSBjYWxMZWdlbmREYXRhKHNlcmllc01BLCBvcHRzLCBjb25maWcsIG9wdHMuY2hhcnREYXRhLCBjb250ZXh0KSxcclxuICAgIGxlZ2VuZEhlaWdodCA9IF9jYWxMZWdlbmREYXRhLmFyZWEud2hvbGVIZWlnaHQsXHJcbiAgICBsZWdlbmRXaWR0aCA9IF9jYWxMZWdlbmREYXRhLmFyZWEud2hvbGVXaWR0aDtcclxuXHJcbiAgc3dpdGNoIChvcHRzLmxlZ2VuZC5wb3NpdGlvbikge1xyXG4gICAgY2FzZSAndG9wJzpcclxuICAgICAgb3B0cy5hcmVhWzBdICs9IGxlZ2VuZEhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBvcHRzLmFyZWFbMl0gKz0gbGVnZW5kSGVpZ2h0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICBvcHRzLmFyZWFbM10gKz0gbGVnZW5kV2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBvcHRzLmFyZWFbMV0gKz0gbGVnZW5kV2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuXHJcbiAgbGV0IF9jYWxZQXhpc0RhdGEgPSB7fSxcclxuICAgIHlBeGlzV2lkdGggPSAwO1xyXG4gIGlmIChvcHRzLnR5cGUgPT09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT09ICdjb2x1bW4nIHx8IG9wdHMudHlwZSA9PT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PT0gJ21peCcgfHwgb3B0cy50eXBlID09PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT09ICdzY2F0dGVyJyAgfHwgb3B0cy50eXBlID09PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICAgIF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICB5QXhpc1dpZHRoID0gX2NhbFlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgLy/lpoLmnpzmmL7npLpZ6L205qCH6aKYXHJcbiAgICBpZiAob3B0cy55QXhpcy5zaG93VGl0bGUpIHtcclxuICAgICAgbGV0IG1heFRpdGxlSGVpZ2h0ID0gMDtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLnlBeGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBtYXhUaXRsZUhlaWdodCA9IE1hdGgubWF4KG1heFRpdGxlSGVpZ2h0LCBvcHRzLnlBeGlzLmRhdGFbaV0udGl0bGVGb250U2l6ZSA/IG9wdHMueUF4aXMuZGF0YVtpXS50aXRsZUZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemUpXHJcbiAgICAgIH1cclxuICAgICAgb3B0cy5hcmVhWzBdICs9IG1heFRpdGxlSGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgbGV0IHJpZ2h0SW5kZXggPSAwLFxyXG4gICAgICBsZWZ0SW5kZXggPSAwO1xyXG4gICAgLy/orqHnrpfkuLvnu5jlm77ljLrln5/lt6blj7PkvY3nva5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeUF4aXNXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoeUF4aXNXaWR0aFtpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICBpZiAobGVmdEluZGV4ID4gMCkge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzNdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzNdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxlZnRJbmRleCArPSAxO1xyXG4gICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGhbaV0ucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgIGlmIChyaWdodEluZGV4ID4gMCkge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzFdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzFdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJpZ2h0SW5kZXggKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgfVxyXG4gIG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YSA9IF9jYWxZQXhpc0RhdGE7XHJcblxyXG4gIGlmIChvcHRzLmNhdGVnb3JpZXMgJiYgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aCAmJiBvcHRzLnR5cGUgIT09ICdyYWRhcicgJiYgb3B0cy50eXBlICE9PSAnZ2F1Z2UnICYmIG9wdHMudHlwZSAhPT0gJ2JhcicpIHtcclxuICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSA9IGdldFhBeGlzUG9pbnRzKG9wdHMuY2F0ZWdvcmllcywgb3B0cywgY29uZmlnKTtcclxuICAgIGxldCBfY2FsQ2F0ZWdvcmllc0RhdGEgPSBjYWxDYXRlZ29yaWVzRGF0YShvcHRzLmNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nLCBjb250ZXh0KSxcclxuICAgICAgeEF4aXNIZWlnaHQgPSBfY2FsQ2F0ZWdvcmllc0RhdGEueEF4aXNIZWlnaHQsXHJcbiAgICAgIGFuZ2xlID0gX2NhbENhdGVnb3JpZXNEYXRhLmFuZ2xlO1xyXG4gICAgY29uZmlnLnhBeGlzSGVpZ2h0ID0geEF4aXNIZWlnaHQ7XHJcbiAgICBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9IGFuZ2xlO1xyXG4gICAgb3B0cy5hcmVhWzJdICs9IHhBeGlzSGVpZ2h0O1xyXG4gICAgb3B0cy5jaGFydERhdGEuY2F0ZWdvcmllc0RhdGEgPSBfY2FsQ2F0ZWdvcmllc0RhdGE7XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmIChvcHRzLnR5cGUgPT09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT09ICdidWJibGUnIHx8IG9wdHMudHlwZSA9PT0gJ2JhcicpIHtcclxuICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgY2F0ZWdvcmllcyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXNGb3JtYXQ7XHJcbiAgICAgIGxldCBfY2FsQ2F0ZWdvcmllc0RhdGEgPSBjYWxDYXRlZ29yaWVzRGF0YShjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZywgY29udGV4dCksXHJcbiAgICAgICAgeEF4aXNIZWlnaHQgPSBfY2FsQ2F0ZWdvcmllc0RhdGEueEF4aXNIZWlnaHQsXHJcbiAgICAgICAgYW5nbGUgPSBfY2FsQ2F0ZWdvcmllc0RhdGEuYW5nbGU7XHJcbiAgICAgIGNvbmZpZy54QXhpc0hlaWdodCA9IHhBeGlzSGVpZ2h0O1xyXG4gICAgICBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9IGFuZ2xlO1xyXG4gICAgICBvcHRzLmFyZWFbMl0gKz0geEF4aXNIZWlnaHQ7XHJcbiAgICAgIG9wdHMuY2hhcnREYXRhLmNhdGVnb3JpZXNEYXRhID0gX2NhbENhdGVnb3JpZXNEYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0ge1xyXG4gICAgICAgIHhBeGlzUG9pbnRzOiBbXVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuICAvL+iuoeeul+WPs+Wvuem9kOWBj+enu+i3neemu1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbEFsaWduID09ICdyaWdodCcgJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID09PSB1bmRlZmluZWQpIHtcclxuICAgIGxldCBvZmZzZXRMZWZ0ID0gMCxcclxuICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICAgIHN0YXJ0WCA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICAgIGVuZFggPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZW5kWCxcclxuICAgICAgZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAtIHRvdGFsV2lkdGg7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICAgIGN1cnJlbnRPZmZzZXQ6IG9mZnNldExlZnQsXHJcbiAgICAgIHN0YXJ0VG91Y2hYOiBvZmZzZXRMZWZ0LFxyXG4gICAgICBkaXN0YW5jZTogMCxcclxuICAgICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgICB9O1xyXG4gICAgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gb2Zmc2V0TGVmdDtcclxuICB9XHJcblxyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ3Jvc2UnKSB7XHJcbiAgICBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzTUEsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgfVxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnd29yZCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWFwJzpcclxuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnZnVubmVsJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24ocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhID0gZHJhd0Z1bm5lbERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGluZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3TGluZURhdGFQb2ludHMgPSBkcmF3TGluZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3TGluZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3TGluZURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3TGluZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnc2NhdHRlcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3U2NhdHRlckRhdGFQb2ludHMgPSBkcmF3U2NhdHRlckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYnViYmxlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdCdWJibGVEYXRhUG9pbnRzID0gZHJhd0J1YmJsZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3QnViYmxlRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdCdWJibGVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0J1YmJsZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWl4JzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdNaXhEYXRhUG9pbnRzID0gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3TWl4RGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdNaXhEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd01peERhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnY29sdW1uJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdDb2x1bW5EYXRhUG9pbnRzID0gZHJhd0NvbHVtbkRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3Q29sdW1uRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdDb2x1bW5EYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0NvbHVtbkRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYmFyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdCYXJEYXRhUG9pbnRzID0gZHJhd0JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB5QXhpc1BvaW50cyA9IF9kcmF3QmFyRGF0YVBvaW50cy55QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdCYXJEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0JhckRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cyA9IHlBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB5QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdhcmVhJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdBcmVhRGF0YVBvaW50cyA9IGRyYXdBcmVhRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdBcmVhRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdBcmVhRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdBcmVhRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaW5nJzpcclxuICAgIGNhc2UgJ3BpZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyb3NlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEucGllRGF0YSA9IGRyYXdSb3NlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyYWRhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnJhZGFyRGF0YSA9IGRyYXdSYWRhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYXJjYmFyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuYXJjYmFyRGF0YSA9IGRyYXdBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2dhdWdlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZ2F1Z2VEYXRhID0gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdjYW5kbGUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0NhbmRsZURhdGFQb2ludHMgPSBkcmF3Q2FuZGxlRGF0YVBvaW50cyhzZXJpZXMsIHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3Q2FuZGxlRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdDYW5kbGVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0NhbmRsZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChzZXJpZXNNQSkge1xyXG4gICAgICAgICAgICBkcmF3TGVnZW5kKHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdUNoYXJ0c0V2ZW50KCkge1xyXG4gIHRoaXMuZXZlbnRzID0ge307XHJcbn1cclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0gPSB0aGlzLmV2ZW50c1t0eXBlXSB8fCBbXTtcclxuICB0aGlzLmV2ZW50c1t0eXBlXS5wdXNoKGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUuZGVsRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUpIHtcclxuICB0aGlzLmV2ZW50c1t0eXBlXSA9IFtdO1xyXG59O1xyXG5cclxudUNoYXJ0c0V2ZW50LnByb3RvdHlwZS50cmlnZ2VyID0gZnVuY3Rpb24oKSB7XHJcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcclxuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XHJcbiAgfVxyXG4gIHZhciB0eXBlID0gYXJnc1swXTtcclxuICB2YXIgcGFyYW1zID0gYXJncy5zbGljZSgxKTtcclxuICBpZiAoISF0aGlzLmV2ZW50c1t0eXBlXSkge1xyXG4gICAgdGhpcy5ldmVudHNbdHlwZV0uZm9yRWFjaChmdW5jdGlvbihsaXN0ZW5lcikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxpc3RlbmVyLmFwcGx5KG51bGwsIHBhcmFtcyk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coJ1t1Q2hhcnRzXSAnK2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG52YXIgdUNoYXJ0cyA9IGZ1bmN0aW9uIHVDaGFydHMob3B0cykge1xyXG4gIG9wdHMucGl4ID0gb3B0cy5waXhlbFJhdGlvID8gb3B0cy5waXhlbFJhdGlvIDogMTtcclxuICBvcHRzLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSA/IG9wdHMuZm9udFNpemUgOiAxMztcclxuICBvcHRzLmZvbnRDb2xvciA9IG9wdHMuZm9udENvbG9yID8gb3B0cy5mb250Q29sb3IgOiBjb25maWcuZm9udENvbG9yO1xyXG4gIGlmIChvcHRzLmJhY2tncm91bmQgPT0gXCJcIiB8fCBvcHRzLmJhY2tncm91bmQgPT0gXCJub25lXCIpIHtcclxuICAgIG9wdHMuYmFja2dyb3VuZCA9IFwiI0ZGRkZGRlwiXHJcbiAgfVxyXG4gIG9wdHMudGl0bGUgPSBhc3NpZ24oe30sIG9wdHMudGl0bGUpO1xyXG4gIG9wdHMuc3VidGl0bGUgPSBhc3NpZ24oe30sIG9wdHMuc3VidGl0bGUpO1xyXG4gIG9wdHMuZHVyYXRpb24gPSBvcHRzLmR1cmF0aW9uID8gb3B0cy5kdXJhdGlvbiA6IDEwMDA7XHJcbiAgb3B0cy55QXhpcyA9IGFzc2lnbih7fSwge1xyXG4gICAgZGF0YTogW10sXHJcbiAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGlzYWJsZUdyaWQ6IGZhbHNlLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQgKiBvcHRzLnBpeCxcclxuICAgIGdyaWRDb2xvcjogJyNjY2NjY2MnLFxyXG4gICAgcGFkZGluZzogMTAsXHJcbiAgICBmb250Q29sb3I6ICcjNjY2NjY2J1xyXG4gIH0sIG9wdHMueUF4aXMpO1xyXG4gIG9wdHMueEF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIHJvdGF0ZUxhYmVsOiBmYWxzZSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRpc2FibGVHcmlkOiBmYWxzZSxcclxuICAgIHNwbGl0TnVtYmVyOiA1LFxyXG4gICAgY2FsaWJyYXRpb246ZmFsc2UsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQsXHJcbiAgICBzY3JvbGxBbGlnbjogJ2xlZnQnLFxyXG4gICAgYm91bmRhcnlHYXA6ICdjZW50ZXInLFxyXG4gICAgYXhpc0xpbmU6IHRydWUsXHJcbiAgICBheGlzTGluZUNvbG9yOiAnI2NjY2NjYydcclxuICB9LCBvcHRzLnhBeGlzKTtcclxuICBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uID0gb3B0cy54QXhpcy5zY3JvbGxBbGlnbjtcclxuICBvcHRzLmxlZ2VuZCA9IGFzc2lnbih7fSwge1xyXG4gICAgc2hvdzogdHJ1ZSxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAgIGZsb2F0OiAnY2VudGVyJyxcclxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxyXG4gICAgYm9yZGVyQ29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcclxuICAgIGJvcmRlcldpZHRoOiAwLFxyXG4gICAgcGFkZGluZzogNSxcclxuICAgIG1hcmdpbjogNSxcclxuICAgIGl0ZW1HYXA6IDEwLFxyXG4gICAgZm9udFNpemU6IG9wdHMuZm9udFNpemUsXHJcbiAgICBsaW5lSGVpZ2h0OiBvcHRzLmZvbnRTaXplLFxyXG4gICAgZm9udENvbG9yOiBvcHRzLmZvbnRDb2xvcixcclxuICAgIGZvcm1hdHRlcjoge30sXHJcbiAgICBoaWRkZW5Db2xvcjogJyNDRUNFQ0UnXHJcbiAgfSwgb3B0cy5sZWdlbmQpO1xyXG4gIG9wdHMuZXh0cmEgPSBhc3NpZ24oe30sIG9wdHMuZXh0cmEpO1xyXG4gIG9wdHMucm90YXRlID0gb3B0cy5yb3RhdGUgPyB0cnVlIDogZmFsc2U7XHJcbiAgb3B0cy5hbmltYXRpb24gPSBvcHRzLmFuaW1hdGlvbiA/IHRydWUgOiBmYWxzZTtcclxuICBvcHRzLnJvdGF0ZSA9IG9wdHMucm90YXRlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIG9wdHMuY2FudmFzMmQgPSBvcHRzLmNhbnZhczJkID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIFxyXG4gIGxldCBjb25maWckJDEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xyXG4gIGNvbmZpZyQkMS5jb2xvciA9IG9wdHMuY29sb3IgPyBvcHRzLmNvbG9yIDogY29uZmlnJCQxLmNvbG9yO1xyXG4gIGNvbmZpZyQkMS55QXhpc1RpdGxlV2lkdGggPSBvcHRzLnlBeGlzLmRpc2FibGVkICE9PSB0cnVlICYmIG9wdHMueUF4aXMudGl0bGUgPyBjb25maWckJDEueUF4aXNUaXRsZVdpZHRoIDogMDtcclxuICBpZiAob3B0cy50eXBlID09ICdwaWUnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnBpZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncmluZycpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucmluZy5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncm9zZScpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucm9zZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEueUF4aXNTcGxpdCA9IG9wdHMueUF4aXMuc3BsaXROdW1iZXIgPyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyIDogY29uZmlnLnlBeGlzU3BsaXQ7XHJcblxyXG4gIC8v5bGP5bmV5peL6L2sXHJcbiAgY29uZmlnJCQxLnJvdGF0ZSA9IG9wdHMucm90YXRlO1xyXG4gIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgbGV0IHRlbXBXaWR0aCA9IG9wdHMud2lkdGg7XHJcbiAgICBsZXQgdGVtcEhlaWdodCA9IG9wdHMuaGVpZ2h0O1xyXG4gICAgb3B0cy53aWR0aCA9IHRlbXBIZWlnaHQ7XHJcbiAgICBvcHRzLmhlaWdodCA9IHRlbXBXaWR0aDtcclxuICB9XHJcblxyXG4gIC8v6YCC6YWN6auY5YiG5bGPXHJcbiAgb3B0cy5wYWRkaW5nID0gb3B0cy5wYWRkaW5nID8gb3B0cy5wYWRkaW5nIDogY29uZmlnJCQxLnBhZGRpbmc7XHJcbiAgY29uZmlnJCQxLnlBeGlzV2lkdGggPSBjb25maWcueUF4aXNXaWR0aCAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS54QXhpc0hlaWdodCA9IGNvbmZpZy54QXhpc0hlaWdodCAqIG9wdHMucGl4O1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgIGNvbmZpZyQkMS54QXhpc0hlaWdodCArPSA2ICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGNvbmZpZyQkMS54QXhpc0xpbmVIZWlnaHQgPSBjb25maWcueEF4aXNMaW5lSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS50aXRsZUZvbnRTaXplID0gY29uZmlnLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEuc3VidGl0bGVGb250U2l6ZSA9IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBQYWRkaW5nID0gY29uZmlnLnRvb2xUaXBQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBMaW5lSGVpZ2h0ID0gY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLmNvbHVtZVBhZGRpbmcgPSBjb25maWcuY29sdW1lUGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIC8vdGhpcy5jb250ZXh0ID0gb3B0cy5jb250ZXh0ID8gb3B0cy5jb250ZXh0IDogdW5pLmNyZWF0ZUNhbnZhc0NvbnRleHQob3B0cy5jYW52YXNJZCwgb3B0cy4kdGhpcyk7XHJcbiAgLy92Mi4w54mI5pys5ZCO6ZyA6KaB6Ieq6KGM6I635Y+WY29udGV4dOW5tuS8oOWFpW9wdHPov5vooYzliJ3lp4vljJbvvIzov5nkuYjlgZrmmK/kuLrkuobnoa7kv511Q2hhcnRz5Y+v5Lul6Leo5pu05aSa56uv5L2/55So77yM5bm25L+d6K+B5LqG6Ieq5a6a5LmJ57uE5Lu2dGhpc+WunuS+i+S4jeiiq+W+queOr+W1jOWll+OAguWmguaenOaCqOinieW+l+S4jeS+v+ivt+WPlua2iOS4iumdouazqOmHiu+8jOmHh+eUqHYxLjDniYjmnKznmoTmlrnlvI/kvb/nlKjvvIzlr7nmraTnu5nmgqjluKbmnaXnmoTkuI3kvr/mlazor7fosIXop6PvvIFcclxuICBpZighb3B0cy5jb250ZXh0KXtcclxuICAgIHRocm93IG5ldyBFcnJvcignW3VDaGFydHNdIOacquiOt+WPluWIsGNvbnRleHTvvIHms6jmhI/vvJp2Mi4w54mI5pys5ZCO77yM6ZyA6KaB6Ieq6KGM6I635Y+WY2FudmFz55qE57uY5Zu+5LiK5LiL5paH5bm25Lyg5YWlb3B0cy5jb250ZXh077yBJyk7XHJcbiAgfVxyXG4gIHRoaXMuY29udGV4dCA9IG9wdHMuY29udGV4dDtcclxuICBpZiAoIXRoaXMuY29udGV4dC5zZXRUZXh0QWxpZ24pIHtcclxuICAgIHRoaXMuY29udGV4dC5zZXRTdHJva2VTdHlsZSA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3Ryb2tlU3R5bGUgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVXaWR0aCA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGluZVdpZHRoID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRMaW5lQ2FwID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5saW5lQ2FwID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRGb250U2l6ZSA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZm9udCA9IGUgKyBcInB4IHNhbnMtc2VyaWZcIjtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRGaWxsU3R5bGUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbGxTdHlsZSA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0VGV4dEFsaWduID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50ZXh0QWxpZ24gPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LmRyYXcgPSBmdW5jdGlvbigpIHt9XHJcbiAgfVxyXG4gIC8v5YW85a65TlZVRXNldExpbmVEYXNoXHJcbiAgaWYoIXRoaXMuY29udGV4dC5zZXRMaW5lRGFzaCl7XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0TGluZURhc2ggPSBmdW5jdGlvbihlKSB7fVxyXG4gIH1cclxuICBvcHRzLmNoYXJ0RGF0YSA9IHt9O1xyXG4gIHRoaXMudWV2ZW50ID0gbmV3IHVDaGFydHNFdmVudCgpO1xyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogMCxcclxuICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgZGlzdGFuY2U6IDAsXHJcbiAgICBsYXN0TW92ZVRpbWU6IDBcclxuICB9O1xyXG4gIHRoaXMub3B0cyA9IG9wdHM7XHJcbiAgdGhpcy5jb25maWcgPSBjb25maWckJDE7XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgY29uZmlnJCQxLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUudXBkYXRlRGF0YSA9IGZ1bmN0aW9uKCkge1xyXG4gIGxldCBkYXRhID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcclxuICB0aGlzLm9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywgZGF0YSk7XHJcbiAgdGhpcy5vcHRzLnVwZGF0ZURhdGEgPSB0cnVlO1xyXG4gIGxldCBzY3JvbGxQb3NpdGlvbiA9IGRhdGEuc2Nyb2xsUG9zaXRpb24gfHwgJ2N1cnJlbnQnO1xyXG4gIHN3aXRjaCAoc2Nyb2xsUG9zaXRpb24pIHtcclxuICAgIGNhc2UgJ2N1cnJlbnQnOlxyXG4gICAgICAvL3RoaXMub3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSAwO1xyXG4gICAgICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgICAgICBjdXJyZW50T2Zmc2V0OiAwLFxyXG4gICAgICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgbGV0IF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEodGhpcy5vcHRzLnNlcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KSwgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICAgICAgdGhpcy5jb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgICAgIGxldCBvZmZzZXRMZWZ0ID0gMDtcclxuICAgICAgbGV0IF9nZXRYQXhpc1BvaW50czAgPSBnZXRYQXhpc1BvaW50cyh0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZyksIHhBeGlzUG9pbnRzID0gX2dldFhBeGlzUG9pbnRzMC54QXhpc1BvaW50cyxcclxuICAgICAgICBzdGFydFggPSBfZ2V0WEF4aXNQb2ludHMwLnN0YXJ0WCxcclxuICAgICAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgICAgIGVhY2hTcGFjaW5nID0gX2dldFhBeGlzUG9pbnRzMC5lYWNoU3BhY2luZztcclxuICAgICAgbGV0IHRvdGFsV2lkdGggPSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICAgICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgICAgb2Zmc2V0TGVmdCA9IHNjcmVlbldpZHRoIC0gdG90YWxXaWR0aDtcclxuICAgICAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICAgICAgY3VycmVudE9mZnNldDogb2Zmc2V0TGVmdCxcclxuICAgICAgICBzdGFydFRvdWNoWDogb2Zmc2V0TGVmdCxcclxuICAgICAgICBkaXN0YW5jZTogMCxcclxuICAgICAgICBsYXN0TW92ZVRpbWU6IDBcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIHRoaXMub3B0cy50eXBlLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuem9vbSA9IGZ1bmN0aW9uKCkge1xyXG4gIHZhciB2YWwgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQ7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgIT09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdbdUNoYXJ0c10g6K+35ZCv55So5rua5Yqo5p2h5ZCO5L2/55SoJylcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgLy/lvZPliY3lsY/luZXkuK3pl7TngrlcclxuICBsZXQgY2VudGVyUG9pbnQgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQpIC8gdGhpcy5vcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZykgKyBNYXRoLnJvdW5kKHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQgLyAyKTtcclxuICB0aGlzLm9wdHMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgdGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudCA9IHZhbC5pdGVtQ291bnQ7XHJcbiAgLy/ph43mlrDorqHnrpd46L205YGP56e76Led56a7XHJcbiAgbGV0IF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEodGhpcy5vcHRzLnNlcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KSxcclxuICAgIHlBeGlzV2lkdGggPSBfY2FsWUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgdGhpcy5jb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gIGxldCBfZ2V0WEF4aXNQb2ludHMwID0gZ2V0WEF4aXNQb2ludHModGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cywgdGhpcy5jb25maWcpLFxyXG4gICAgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0gX2dldFhBeGlzUG9pbnRzMC5zdGFydFgsXHJcbiAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjZW50ZXJMZWZ0ID0gZWFjaFNwYWNpbmcgKiBjZW50ZXJQb2ludDtcclxuICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gIGxldCBNYXhMZWZ0ID0gc2NyZWVuV2lkdGggLSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLyAyIC0gY2VudGVyTGVmdDtcclxuICBpZiAob2Zmc2V0TGVmdCA+IDApIHtcclxuICAgIG9mZnNldExlZnQgPSAwO1xyXG4gIH1cclxuICBpZiAob2Zmc2V0TGVmdCA8IE1heExlZnQpIHtcclxuICAgIG9mZnNldExlZnQgPSBNYXhMZWZ0O1xyXG4gIH1cclxuICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgIGN1cnJlbnRPZmZzZXQ6IG9mZnNldExlZnQsXHJcbiAgICBzdGFydFRvdWNoWDogb2Zmc2V0TGVmdCxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IG9mZnNldExlZnQ7XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIHRoaXMub3B0cy50eXBlLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc3RvcEFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xyXG4gIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgdGhpcy5hbmltYXRpb25JbnN0YW5jZS5zdG9wKCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcclxuICB0aGlzLnVldmVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy51ZXZlbnQuZGVsRXZlbnRMaXN0ZW5lcih0eXBlKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldEN1cnJlbnREYXRhSW5kZXggPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICBsZXQgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgaWYgKHRoaXMub3B0cy50eXBlID09PSAncGllJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kUGllQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucGllRGF0YSwgdGhpcy5vcHRzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJykge1xyXG4gICAgICByZXR1cm4gZmluZFJvc2VDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5waWVEYXRhLCB0aGlzLm9wdHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgICByZXR1cm4gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucmFkYXJEYXRhLCB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtYXAnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kTWFwQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnd29yZCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICByZXR1cm4gZmluZEJhckNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmNhbFBvaW50cywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZpbmRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEuY2FsUG9pbnRzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCBNYXRoLmFicyh0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAtMTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldExlZ2VuZERhdGFJbmRleCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIGxldCBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICByZXR1cm4gZmluZExlZ2VuZEluZGV4KHtcclxuICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmxlZ2VuZERhdGEpO1xyXG4gIH1cclxuICByZXR1cm4gLTE7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50b3VjaExlZ2VuZCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgIHRoaXMub3B0cy5zZXJpZXNNQVtpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzTUFbaW5kZXhdLnNob3c7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzW2luZGV4XS5zaG93O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0cy5hbmltYXRpb24gPSBvcHRpb24uYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2hvd1Rvb2xUaXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICghdG91Y2hlcykge1xyXG4gICAgY29uc29sZS5sb2coXCJbdUNoYXJ0c10g5pyq6I635Y+W5YiwZXZlbnTlnZDmoIfkv6Hmga9cIik7XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbGluZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdhcmVhJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2NvbHVtbicgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2J1YmJsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSB8fCBpbmRleC5sZW5ndGg+MCkge1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4LCBjdXJyZW50Lmdyb3VwKTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIHRoaXMub3B0cywgaW5kZXgsIGN1cnJlbnQuZ3JvdXAsIHRoaXMub3B0cy5jYXRlZ29yaWVzLCBvcHRpb24pLFxyXG4gICAgICAgICAgdGV4dExpc3QgPSBfZ2V0VG9vbFRpcERhdGEudGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQgPSBfZ2V0VG9vbFRpcERhdGEub2Zmc2V0O1xyXG4gICAgICAgIG9mZnNldC55ID0gX3RvdWNoZXMkLnk7XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEgfHwgaW5kZXgubGVuZ3RoPjApIHtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCwgY3VycmVudC5ncm91cCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0VG9vbFRpcERhdGEgPSBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCBjdXJyZW50Lmdyb3VwLCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueCA9IF90b3VjaGVzJC54O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbWl4Jykge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gY3VycmVudC5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge1xyXG4gICAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0TWl4VG9vbFRpcERhdGEgPSBnZXRNaXhUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldE1peFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldE1peFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2NhbmRsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgY3VycmVudE9mZnNldCA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldFRvb2xUaXBEYXRhID0gZ2V0Q2FuZGxlVG9vbFRpcERhdGEodGhpcy5vcHRzLnNlcmllc1swXS5kYXRhLCBzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLmV4dHJhLmNhbmRsZSwgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3BpZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyaW5nJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3Jvc2UnIHx8IHRoaXMub3B0cy50eXBlID09PSAnZnVubmVsJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCBvcHRzLl9zZXJpZXNfW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgb3B0cykgOiBzZXJpZXNEYXRhLm5hbWUgKyAnOiAnICsgc2VyaWVzRGF0YS5kYXRhLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yXHJcbiAgICAgIH1dO1xyXG4gICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21hcCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0pO1xyXG4gICAgICBzZXJpZXNEYXRhLm5hbWUgPSBzZXJpZXNEYXRhLnByb3BlcnRpZXMubmFtZVxyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIHRoaXMub3B0cykgOiBzZXJpZXNEYXRhLm5hbWUsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3JcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvcHRzLnVwZGF0ZURhdGEgPSBmYWxzZTtcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICd3b3JkJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCB0aGlzLm9wdHMuc2VyaWVzW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgdGhpcy5vcHRzKSA6IHNlcmllc0RhdGEubmFtZSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIG9wdHMudXBkYXRlRGF0YSA9IGZhbHNlO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgdGV4dExpc3QgPSBzZXJpZXNEYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGhpcy5vcHRzLmNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgdGhpcy5vcHRzKSA6IGl0ZW0ubmFtZSArICc6ICcgKyBpdGVtLmRhdGEsXHJcbiAgICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgICAgfTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uKGRpc3RhbmNlKSB7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICBjdXJyZW50T2Zmc2V0OiBkaXN0YW5jZSxcclxuICAgIHN0YXJ0VG91Y2hYOiBkaXN0YW5jZSxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICBsZXQgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICBfc2Nyb2xsRGlzdGFuY2VfOiBkaXN0YW5jZSxcclxuICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICB9KTtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsU3RhcnQgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBfdG91Y2hlcyQueDtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGwgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9PT0gMCkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubGFzdE1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcbiAgbGV0IExpbWl0ID0gdGhpcy5vcHRzLnRvdWNoTW92ZUxpbWl0IHx8IDYwO1xyXG4gIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gIGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZTtcclxuICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyBMaW1pdCkpIHJldHVybjtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzICYmIHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgX2Rpc3RhbmNlO1xyXG4gICAgX2Rpc3RhbmNlID0gX3RvdWNoZXMkLnggLSB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWDtcclxuICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgIHZhciB2YWxpZERpc3RhbmNlID0gY2FsVmFsaWREaXN0YW5jZSh0aGlzLCBjdXJyZW50T2Zmc2V0ICsgX2Rpc3RhbmNlLCB0aGlzLm9wdHMuY2hhcnREYXRhLCB0aGlzLmNvbmZpZywgdGhpcy5vcHRzKTtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmRpc3RhbmNlID0gX2Rpc3RhbmNlID0gdmFsaWREaXN0YW5jZSAtIGN1cnJlbnRPZmZzZXQ7XHJcbiAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2UsXHJcbiAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgIH0pO1xyXG5cdFx0dGhpcy5vcHRzID0gb3B0cztcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2U7XHJcbiAgfVxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsRW5kID0gZnVuY3Rpb24oZSkge1xyXG4gIGlmICh0aGlzLm9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICB2YXIgX3Njcm9sbE9wdGlvbiA9IHRoaXMuc2Nyb2xsT3B0aW9uLFxyXG4gICAgICBjdXJyZW50T2Zmc2V0ID0gX3Njcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0LFxyXG4gICAgICBkaXN0YW5jZSA9IF9zY3JvbGxPcHRpb24uZGlzdGFuY2U7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGRpc3RhbmNlO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSAwO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHVDaGFydHM7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n"); /***/ }), /* 74 */ /*!**********************************************************************************************************!*\ !*** D:/Workspace/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\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') {return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;}\n if (returnType == 'y-m-d') {return y + '-' + m + '-' + d;}\n if (returnType == 'h:m') {return h + ':' + minute;}\n if (returnType == 'h:m:s') {return h + ':' + minute + ':' + second;}\n return [y, m, d, h, minute, second];\n};\n\nvar cfu = {\n //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\n \"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"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\", \"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) {return val + '元';},\n \"yAxisDemo2\": function yAxisDemo2(val) {return val.toFixed(2);},\n \"xAxisDemo1\": function xAxisDemo1(val) {return val + '年';},\n \"xAxisDemo2\": function xAxisDemo2(val) {return formatDateTime(val, 'h:m');},\n \"seriesDemo1\": function seriesDemo1(val) {return val + '元';},\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) {\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\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\": 30,\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\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 {\n \"min\": 0,\n \"max\": 80 }] },\n\n\n\n \"legend\": {},\n\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 {\n \"min\": 0,\n \"max\": 80 }] },\n\n\n\n \"legend\": {},\n\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\": [{ \"min\": 0 }] },\n\n \"legend\": {},\n\n \"extra\": {\n \"column\": {\n \"type\": \"group\",\n \"width\": 30,\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08 } } },\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\n \"legend\": {},\n\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\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\n \"legend\": {},\n\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 {\n \"value\": 2150,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true },\n\n {\n \"value\": 2350,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true }] } } },\n\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\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\n \"extra\": {\n \"scatter\": {} } },\n\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\n \"extra\": {\n \"bubble\": {\n \"border\": 2,\n \"opacity\": 0.5 } } } };var _default =\n\n\n\n\n\ncfu;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJmb3JtYXREYXRlVGltZSIsInRpbWVTdGFtcCIsInJldHVyblR5cGUiLCJkYXRlIiwiRGF0ZSIsInNldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsIm1pbnV0ZSIsImdldE1pbnV0ZXMiLCJzZWNvbmQiLCJnZXRTZWNvbmRzIiwiY2Z1IiwidmFsIiwidG9GaXhlZCIsIml0ZW0iLCJjYXRlZ29yeSIsImluZGV4Iiwib3B0cyIsImRhdGEiLCJzZXJpZXMiLCJ1bmRlZmluZWQiLCJuYW1lIl0sIm1hcHBpbmdzIjoid0ZBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQTtBQUNBLElBQU1BLEtBQUssR0FBRyxDQUFDLFNBQUQsRUFBWSxTQUFaLEVBQXVCLFNBQXZCLEVBQWtDLFNBQWxDLEVBQTZDLFNBQTdDLEVBQXdELFNBQXhELEVBQW1FLFNBQW5FLEVBQThFLFNBQTlFLEVBQXlGLFNBQXpGLENBQWQ7O0FBRUE7QUFDQSxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLFNBQUQsRUFBWUMsVUFBWixFQUF5QjtBQUM5QyxNQUFJQyxJQUFJLEdBQUcsSUFBSUMsSUFBSixFQUFYO0FBQ0FELE1BQUksQ0FBQ0UsT0FBTCxDQUFhSixTQUFTLEdBQUcsSUFBekI7QUFDQSxNQUFJSyxDQUFDLEdBQUdILElBQUksQ0FBQ0ksV0FBTCxFQUFSO0FBQ0EsTUFBSUMsQ0FBQyxHQUFHTCxJQUFJLENBQUNNLFFBQUwsS0FBa0IsQ0FBMUI7QUFDQUQsR0FBQyxHQUFHQSxDQUFDLEdBQUcsRUFBSixHQUFVLE1BQU1BLENBQWhCLEdBQXFCQSxDQUF6QjtBQUNBLE1BQUlFLENBQUMsR0FBR1AsSUFBSSxDQUFDUSxPQUFMLEVBQVI7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QUFVLEVBaEJIOztBQWtCUCxhQUFTO0FBQ1IsaUJBQVcsRUFESCxFQWxCRixFQXBlQzs7OztBQTJmWCxZQUFTO0FBQ1IsWUFBUSxRQURBO0FBRVIsYUFBUUEsS0FGQTtBQUdSLGVBQVUsQ0FBQyxFQUFELEVBQUksRUFBSixFQUFPLENBQVAsRUFBUyxFQUFULENBSEY7QUFJTixhQUFTO0FBQ1AscUJBQWUsS0FEUjtBQUVQLGtCQUFXLE1BRko7QUFHUCxxQkFBYyxDQUhQO0FBSVAscUJBQWMsU0FKUDtBQUtQLGFBQU0sQ0FMQztBQU1QLGFBQU0sR0FOQyxFQUpIOztBQVlOLGFBQVM7QUFDUCxxQkFBZSxLQURSO0FBRVAsa0JBQVcsTUFGSjtBQUdQLGNBQU8sQ0FBQztBQUNOLGVBQU0sQ0FEQTtBQUVOLGVBQU0sR0FGQSxFQUFELENBSEEsRUFaSDs7O0FBb0JOLGNBQVUsRUFwQko7O0FBc0JOLGFBQVM7QUFDUixnQkFBVTtBQUNQLGtCQUFTLENBREY7QUFFUCxtQkFBVyxHQUZKLEVBREYsRUF0QkgsRUEzZkUsRUFBWixDOzs7Ozs7QUEwaEJlbUIsRyIsImZpbGUiOiI3NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/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+vXHJcblx0XCJ0eXBlXCI6W1wicGllXCIsXCJyaW5nXCIsXCJyb3NlXCIsXCJ3b3JkXCIsXCJmdW5uZWxcIixcIm1hcFwiLFwiYXJjYmFyXCIsXCJsaW5lXCIsXCJjb2x1bW5cIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwidGxpbmVcIixcInRhcmVhXCIsXCJzY2F0dGVyXCIsXCJidWJibGVcIixcImRlbW90eXBlXCJdLFxyXG5cdFwicmFuZ2VcIjpbXCLppbznirblm75cIixcIuWchueOr+WbvlwiLFwi546r55Gw5Zu+XCIsXCLor43kupHlm75cIixcIua8j+aWl+WbvlwiLFwi5Zyw5Zu+XCIsXCLlnIblvKfov5vluqbmnaFcIixcIuaKmOe6v+WbvlwiLFwi5p+x54q25Zu+XCIsXCLmnaHnirblm75cIixcIuWMuuWfn+WbvlwiLFwi6Zu36L6+5Zu+XCIsXCLku6rooajnm5hcIixcIkvnur/lm75cIixcIua3t+WQiOWbvlwiLFwi5pe26Ze06L205oqY57q/XCIsXCLml7bpl7TovbTljLrln59cIixcIuaVo+eCueWbvlwiLFwi5rCU5rOh5Zu+XCIsXCLoh6rlrprkuYnnsbvlnotcIl0sXHJcbiAgLy/lop7liqDoh6rlrprkuYnlm77ooajnsbvlnovvvIzlpoLmnpzpnIDopoFjYXRlZ29yaWVz77yM6K+35Zyo6L+Z6YeM5Yqg5YWl5oKo55qE5Zu+6KGo57G75Z6L77yM5L6L5aaC5pyA5ZCO55qEXCJkZW1vdHlwZVwiXHJcbiAgLy/oh6rlrprkuYnnsbvlnovml7bpnIDopoHms6jmhI9cInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCLnrYnml7bpl7TovbTvvIjnn6Lph4946L2077yJ57G75Zu+6KGo77yM5rKh5pyJY2F0ZWdvcmllc++8jOS4jemcgOimgeWKoOWFpWNhdGVnb3JpZXNcclxuXHRcImNhdGVnb3JpZXNcIjpbXCJsaW5lXCIsXCJjb2x1bW5cIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwiaW5zdGFuY2VcIjp7fSxcclxuICAvL29wdGlvbuS4um9wdHPlj4plb3B0c+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwib3B0aW9uXCI6e30sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYlmb3JtYXTphY3nva7vvIzlm6DpmaRINeerr+WklueahOWFtuS7luerr+aXoOazlemAmui/h3Byb3Bz5Lyg6YCS5Ye95pWw77yM5Y+q6IO96YCa6L+H5q2k5bGe5oCn5a+55bqU5LiL5qCH55qE5pa55byP5p2l5pu/5o2iXHJcbiAgXCJmb3JtYXR0ZXJcIjp7XHJcbiAgICBcInlBeGlzRGVtbzFcIjpmdW5jdGlvbih2YWwpe3JldHVybiB2YWwrJ+WFgyd9LFxyXG4gICAgXCJ5QXhpc0RlbW8yXCI6ZnVuY3Rpb24odmFsKXtyZXR1cm4gdmFsLnRvRml4ZWQoMil9LFxyXG4gICAgXCJ4QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsKXtyZXR1cm4gdmFsKyflubQnfSxcclxuICAgIFwieEF4aXNEZW1vMlwiOmZ1bmN0aW9uKHZhbCl7cmV0dXJuIGZvcm1hdERhdGVUaW1lKHZhbCwnaDptJyl9LFxyXG4gICAgXCJzZXJpZXNEZW1vMVwiOmZ1bmN0aW9uKHZhbCl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInRvb2x0aXBEZW1vMVwiOmZ1bmN0aW9uKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4PT0wKXtcclxuICAgICAgXHRyZXR1cm4gJ+maj+S+v+eUqCcraXRlbS5kYXRhKyflubQnXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICBcdHJldHVybiAn5YW25LuW5oiR5rKh5pS5JytpdGVtLmRhdGErJ+WkqSdcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIFwicGllRGVtb1wiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcyl7XHJcbiAgICAgIGlmKGluZGV4ICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIHJldHVybiBzZXJpZXNbaW5kZXhdLm5hbWUrJ++8micrc2VyaWVzW2luZGV4XS5kYXRhKyflhYMnXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhvcHRz5Y+C5pWw77yM5Lya5bCGZGVtb3R5cGXkuI5vcHRz5Litb3B0aW9u5ZCI5bm25ZCO5riy5p+T5Zu+6KGo44CCXHJcbiAgXCJkZW1vdHlwZVwiOntcclxuICAgIC8v5oiR6L+Z6YeM5oqK5puy57q/5Zu+5b2T5YGa5LqG6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5oKo5Y+v5Lul5qC55o2u6ZyA6KaB6ZqP5oSP5oyH5a6a57G75Z6L5oiW6YWN572uXHJcbiAgICBcInR5cGVcIjogXCJsaW5lXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gICAgXCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICAgIFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJsaW5lXCI6IHtcclxuICAgIFx0XHRcInR5cGVcIjogXCJjdXJ2ZVwiLFxyXG4gICAgXHRcdFwid2lkdGhcIjogMlxyXG4gICAgXHR9LFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYnphY3nva7vvIzor7fmt7vliqDpobnnm67miYDpnIDnmoTpgJrnlKjphY3nva5cclxuXHRcInBpZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInBpZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJwaWVcIjoge1xyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjUsXHJcblx0XHRcdFx0XCJhY3RpdmVSYWRpdXNcIjogMTAsXHJcblx0XHRcdFx0XCJvZmZzZXRBbmdsZVwiOiAwLFxyXG5cdFx0XHRcdFwibGFiZWxXaWR0aFwiOiAxNSxcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMyxcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInJpbmdcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyaW5nXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwicm90YXRlXCI6IGZhbHNlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuaUtuebiueOh1wiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzY2NjY2NlwiXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIjcwJVwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDI1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzdjYjVlY1wiXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmluZ1wiOiB7XHJcblx0XHRcdFx0XCJyaW5nV2lkdGhcIjozMCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDMsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicm9zZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInJvc2VcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJwb3NpdGlvblwiOiBcImxlZnRcIixcclxuICAgICAgXCJsaW5lSGVpZ2h0XCI6IDI1LFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInJvc2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImFyZWFcIixcclxuXHRcdFx0XHRcIm1pblJhZGl1c1wiOiA1MCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogZmFsc2UsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwid29yZFwiOntcclxuXHRcdFwidHlwZVwiOiBcIndvcmRcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJ3b3JkXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJub3JtYWxcIixcclxuXHRcdFx0XHRcImF1dG9Db2xvcnNcIjogZmFsc2VcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjp7XHJcblx0XHRcInR5cGVcIjogXCJmdW5uZWxcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZnVubmVsXCI6IHtcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC4zLFxyXG5cdFx0XHRcdFwiYWN0aXZlV2lkdGhcIjogMTAsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDIsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDEsXHJcblx0XHRcdFx0XCJsYWJlbEFsaWduXCI6IFwicmlnaHRcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtYXBcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtYXBcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzAsMCwwLDBdLFxyXG4gICAgXCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1hcFwiOiB7XHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDEsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDAuNixcclxuXHRcdFx0XHRcImFjdGl2ZUJvcmRlckNvbG9yXCI6IFwiI0YwNDg2NFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbENvbG9yXCI6IFwiI0ZBQ0MxNFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbE9wYWNpdHlcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJhcmNiYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmNiYXJcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi55m+5YiG5q+UXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjMDBGRjAwXCJcclxuXHRcdH0sXHJcblx0XHRcInN1YnRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi6buY6K6k5qCH6aKYXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMTUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjNjY2NjY2XCJcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmNiYXJcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDEyLFxyXG5cdFx0XHRcdFwiYmFja2dyb3VuZENvbG9yXCI6IFwiI0U5RTlFOVwiLFxyXG5cdFx0XHRcdFwic3RhcnRBbmdsZVwiOiAwLjc1LFxyXG5cdFx0XHRcdFwiZW5kQW5nbGVcIjogMC4yNSxcclxuXHRcdFx0XHRcImdhcFwiOiAyXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibGluZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImxpbmVcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcInN0cmFpZ2h0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuICBcInRsaW5lXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwibGluZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTAsMCwxNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuICAgICAgXCJkYXRhXCI6W1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwibWluXCI6MCxcclxuICAgICAgICAgIFwibWF4XCI6ODBcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibGluZVwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwiY3VydmVcIixcclxuICBcdFx0XHRcIndpZHRoXCI6IDJcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwidGFyZWFcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJhcmVhXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICAgIFwiZGF0YVwiOltcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgICBcIm1heFwiOjgwXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcImFyZWFcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgXHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuICBcdFx0XHRcImFkZExpbmVcIjogdHJ1ZSxcclxuICBcdFx0XHRcIndpZHRoXCI6IDIsXHJcbiAgXHRcdFx0XCJncmFkaWVudFwiOiB0cnVlXHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImNvbHVtblwiOntcclxuXHRcdFwidHlwZVwiOiBcImNvbHVtblwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiY29sdW1uXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJncm91cFwiLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMzAsXHJcblx0XHRcdFx0XCJhY3RpdmVCZ0NvbG9yXCI6IFwiIzAwMDAwMFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlQmdPcGFjaXR5XCI6IDAuMDhcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG4gIFwiYmFyXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwiYmFyXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwzMCwwLDVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOmZhbHNlLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwiYXhpc0xpbmVcIjpmYWxzZVxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJiYXJcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImdyb3VwXCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuICBcdFx0XHRcIm1ldGVyQm9yZGVcIjogMSxcclxuICBcdFx0XHRcIm1ldGVyRmlsbENvbG9yXCI6IFwiI0ZGRkZGRlwiLFxyXG4gIFx0XHRcdFwiYWN0aXZlQmdDb2xvclwiOiBcIiMwMDAwMDBcIixcclxuICBcdFx0XHRcImFjdGl2ZUJnT3BhY2l0eVwiOiAwLjA4XHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImFyZWFcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmVhXCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmVhXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJzdHJhaWdodFwiLFxyXG5cdFx0XHRcdFwib3BhY2l0eVwiOiAwLjIsXHJcblx0XHRcdFx0XCJhZGRMaW5lXCI6IHRydWUsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiZ3JhZGllbnRcIjogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwicmFkYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcbiAgICBcImRhdGFMYWJlbFwiOiBmYWxzZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmFkYXJcIjoge1xyXG5cdFx0XHRcdFwiZ3JpZFR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcdFwiZ3JpZENvdW50XCI6IDMsXHJcblx0XHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuXHRcdFx0XHRcIm1heFwiOiAyMDBcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwiZ2F1Z2VcIjp7XHJcblx0XHRcInR5cGVcIjogXCJnYXVnZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCI2NkttL0hcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAyNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMyZmMyNWJcIixcclxuXHRcdFx0XCJvZmZzZXRZXCI6IDUwXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuWunuaXtumAn+W6plwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzE4OTBmZlwiLFxyXG5cdFx0XHRcIm9mZnNldFlcIjogLTUwXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZ2F1Z2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFwibGFiZWxDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInN0YXJ0QW5nbGVcIjogMC43NSxcclxuXHRcdFx0XHRcImVuZEFuZ2xlXCI6IDAuMjUsXHJcblx0XHRcdFx0XCJzdGFydE51bWJlclwiOiAwLFxyXG5cdFx0XHRcdFwiZW5kTnVtYmVyXCI6IDEwMCxcclxuXHRcdFx0XHRcImxhYmVsRm9ybWF0XCI6IFwiXCIsXHJcblx0XHRcdFx0XCJzcGxpdExpbmVcIjoge1xyXG5cdFx0XHRcdFx0XCJmaXhSYWRpdXNcIjogMCxcclxuXHRcdFx0XHRcdFwic3BsaXROdW1iZXJcIjogMTAsXHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcdFwiY2hpbGROdW1iZXJcIjogNSxcclxuXHRcdFx0XHRcdFwiY2hpbGRXaWR0aFwiOiAxMlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJwb2ludGVyXCI6IHtcclxuXHRcdFx0XHRcdFwid2lkdGhcIjogMjQsXHJcblx0XHRcdFx0XHRcImNvbG9yXCI6IFwiYXV0b1wiXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHRcImNhbmRsZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImNhbmRsZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCwxNV0sXHJcblx0XHRcImVuYWJsZVNjcm9sbFwiOiB0cnVlLFxyXG5cdFx0XCJlbmFibGVNYXJrTGluZVwiOiB0cnVlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogZmFsc2UsXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJsYWJlbENvdW50XCI6IDQsXHJcblx0XHRcdFwiaXRlbUNvdW50XCI6IDQwLFxyXG5cdFx0XHRcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwic29saWRcIixcclxuXHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDQsXHJcblx0XHRcdFwic2Nyb2xsU2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcInNjcm9sbEFsaWduXCI6IFwibGVmdFwiLFxyXG5cdFx0XHRcInNjcm9sbENvbG9yXCI6IFwiI0E2QTZBNlwiLFxyXG5cdFx0XHRcInNjcm9sbEJhY2tncm91bmRDb2xvclwiOiBcIiNFRkVCRUZcIlxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjoge1xyXG5cdFx0XHRcdFx0XCJ1cExpbmVcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcInVwRmlsbFwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFwiZG93bkxpbmVcIjogXCIjMmZjMjViXCIsXHJcblx0XHRcdFx0XHRcImRvd25GaWxsXCI6IFwiIzJmYzI1YlwiXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRcImF2ZXJhZ2VcIjoge1xyXG5cdFx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XHRcIm5hbWVcIjogW1wiTUE1XCIsXCJNQTEwXCIsXCJNQTMwXCJdLFxyXG5cdFx0XHRcdFx0XCJkYXlcIjogWzUsMTAsMjBdLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBbXCIjMTg5MGZmXCIsXCIjMmZjMjViXCIsXCIjZmFjYzE0XCJdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcIm1hcmtMaW5lXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkYXNoXCIsXHJcblx0XHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDUsXHJcblx0XHRcdFx0XCJkYXRhXCI6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMTUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMzUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdF1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtaXhcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtaXhcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdFx0XCJkaXNhYmxlZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJzcGxpdE51bWJlclwiOiA1LFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG5cdFx0XHRcImRhc2hMZW5ndGhcIjogNCxcclxuXHRcdFx0XCJncmlkQ29sb3JcIjogXCIjQ0NDQ0NDXCIsXHJcblx0XHRcdFwicGFkZGluZ1wiOiAxMCxcclxuXHRcdFx0XCJzaG93VGl0bGVcIjogdHJ1ZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1peFwiOiB7XHJcblx0XHRcdFx0XCJjb2x1bW5cIjoge1xyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAyMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwic2NhdHRlclwiOntcclxuXHRcdFwidHlwZVwiOiBcInNjYXR0ZXJcIixcclxuXHRcdFwiY29sb3JcIjpjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOlsxNSwxNSwwLDE1XSxcclxuICAgIFwiZGF0YUxhYmVsXCI6ZmFsc2UsXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjBcclxuICAgIH0sXHJcbiAgICBcInlBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJzY2F0dGVyXCI6IHtcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9LFxyXG5cdFwiYnViYmxlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiYnViYmxlXCIsXHJcblx0XHRcImNvbG9yXCI6Y29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjpbMTUsMTUsMCwxNV0sXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwibWF4XCI6MjUwXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJkYXRhXCI6W3tcclxuICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgXCJtYXhcIjoxNTBcclxuICAgICAgfV1cclxuICAgIH0sXHJcbiAgICBcImxlZ2VuZFwiOiB7XHJcbiAgICB9LFxyXG4gICAgXCJleHRyYVwiOiB7XHJcbiAgICBcdFwiYnViYmxlXCI6IHtcclxuICAgICAgICBcImJvcmRlclwiOjIsXHJcbiAgICAgICAgXCJvcGFjaXR5XCI6IDAuNSxcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNmdTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///74\n"); /***/ }), /* 75 */ /*!**********************************************************************************************************!*\ !*** D:/Workspace/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\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'];\n\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\n\n\n\n\n result += '
' + res[i].marker + res[i].seriesName + ':' + value + ' 万元';\n\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 \"bottom\": 'left',\n \"textStyle\": {\n \"color\": '#cccccc' } },\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\": true } } },\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\": { \"formatter\": '{value}%' },\n \"data\": [{ \"value\": 50, \"name\": '完成率' }] } },\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 {\n \"show\": true,\n \"xAxisIndex\": [0, 1],\n \"type\": 'slider',\n \"bottom\": 10,\n \"start\": 10,\n \"end\": 100 }],\n\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'k',\n \"data\": [] } } };var _default =\n\n\n\n\ncfe;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJjZmUiLCJyZXMiLCJyZXN1bHQiLCJpIiwiYXhpc1ZhbHVlTGFiZWwiLCJ2YWx1ZSIsImRhdGEiLCJtYXJrZXIiLCJzZXJpZXNOYW1lIiwibGVnZW5kRm9ybWF0IiwibmFtZSIsInlBeGlzRm9ybWF0RGVtbyIsImluZGV4Iiwic2VyaWVzRm9ybWF0RGVtbyJdLCJtYXBwaW5ncyI6IndGQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkE7O0FBRUE7QUFDQSxJQUFNQSxLQUFLLEdBQUcsQ0FBQyxTQUFELEVBQVksU0FBWixFQUF1QixTQUF2QixFQUFrQyxTQUFsQyxFQUE2QyxTQUE3QyxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixTQUF6RixDQUFkOztBQUVBLElBQU1DLEdBQUcsR0FBRztBQUNWO0FBQ0QsVUFBUSxDQUFDLEtBQUQsRUFBUSxNQUFSLEVBQWdCLE1BQWhCLEVBQXdCLFFBQXhCLEVBQWtDLE1BQWxDLEVBQTBDLFFBQTFDLEVBQW9ELE1BQXBELEVBQTRELE9BQTVELEVBQXFFLE9BQXJFLEVBQTZFLFFBQTdFLEVBQXNGLFVBQXRGLENBRkc7QUFHVjtBQUNELGdCQUFjLENBQUMsTUFBRCxFQUFTLFFBQVQsRUFBbUIsTUFBbkIsRUFBMkIsT0FBM0IsRUFBb0MsT0FBcEMsRUFBNkMsUUFBN0MsRUFBc0QsVUFBdEQsQ0FKSDtBQUtWO0FBQ0QsY0FBWSxFQU5EO0FBT1gsWUFBVSxFQVBDO0FBUVY7QUFDQSxlQUFZO0FBQ1Ysb0JBQWUsc0JBQVNDLEdBQVQsRUFBYTtBQUMxQixVQUFJQyxNQUFNLEdBQUcsRUFBYjtBQUNBLFdBQUssSUFBSUMsQ0FBVCxJQUFjRixHQUFkLEVBQW1CO0FBQ2xCLFlBQUlFLENBQUMsSUFBSSxDQUFULEVBQVk7QUFDWEQsZ0JBQU0s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QVNBLEtBREQ7QUFFUixlQUFXO0FBQ0wsbUJBQWEscUJBRFIsRUFGSDs7QUFLUixzQkFBa0I7QUFDakIsY0FBUSxNQURTO0FBRWQsY0FBUSxPQUZNO0FBR2QsZ0JBQVUsRUFBQyxhQUFhLFVBQWQsRUFISTtBQUlkLGNBQVEsQ0FBQyxFQUFDLFNBQVMsRUFBVixFQUFjLFFBQVEsS0FBdEIsRUFBRCxDQUpNLEVBTFYsRUF4V0U7OztBQW9YWCxZQUFVO0FBQ1QsYUFBUztBQUNSLGNBQVEsRUFEQSxFQURBOztBQUlULGFBQVMsRUFKQTtBQUtULGFBQVNBLEtBTEE7QUFNVCxhQUFTO0FBQ1IsY0FBUSxFQURBLEVBTkE7O0FBU1QsZ0JBQVksQ0FBQztBQUNYLGNBQVEsUUFERztBQUVYLG9CQUFjLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FGSDtBQUdYLGVBQVMsRUFIRTtBQUlYLGFBQU8sR0FKSSxFQUFEOztBQU1YO0FBQ0MsY0FBUSxJQURUO0FBRUMsb0JBQWMsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUZmO0FBR0MsY0FBUSxRQUhUO0FBSUMsZ0JBQVUsRUFKWDtBQUtDLGVBQVMsRUFMVjtBQU1DLGFBQU8sR0FOUixFQU5XLENBVEg7OztBQXdCVCxzQkFBa0I7QUFDakIsY0FBUSxFQURTO0FBRWpCLGNBQVEsR0FGUztBQUdqQixjQUFRLEVBSFMsRUF4QlQsRUFwWEMsRUFBWixDOzs7OztBQW9aZUMsRyIsImZpbGUiOiI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/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+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxyXG5cdFwiY29sdW1uXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sYm94XCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0fSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ2NhdGVnb3J5JyxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImJvdW5kYXJ5R2FwXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdiYXInLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImxpbmVcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXHJcblx0XHR9LFxyXG5cdFx0XCJncmlkXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogMzAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDUwLFxyXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxyXG5cdFx0XHRcImxlZnRcIjogNDBcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6ICdsZWZ0JyxcclxuXHRcdFx0XCJ0ZXh0U3R5bGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjonI2NjY2NjYydcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdFwidG9vbGJveFwiOiB7XHJcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAndmFsdWUnLFxyXG5cdFx0XHRcImF4aXNUaWNrXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2xpbmUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJhcmVhXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sYm94XCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0fSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ2NhdGVnb3J5JyxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImJvdW5kYXJ5R2FwXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcImFyZWFTdHlsZVwiOiB7fSxcclxuXHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicGllXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDQwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiAzMCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDE1XHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdwaWUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwicmFkaXVzXCI6ICc1MCUnLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJyaW5nXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDQwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiAzMCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDE1XHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHRcdFwidGV4dFN0eWxlXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjY2NjY2NjJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdwaWUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwicmFkaXVzXCI6IFsnMzAlJywgJzYwJSddLFxyXG5cdFx0XHRcImF2b2lkTGFiZWxPdmVybGFwXCI6IGZhbHNlLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiNGRkZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImxhYmVsTGluZVwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcInJvc2VcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInRvcFwiOiAnYm90dG9tJ1xyXG5cdFx0fSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAncGllJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcInJhZGl1c1wiOiBcIjU1JVwiLFxyXG5cdFx0XHRcImNlbnRlclwiOiBbJzUwJScsICc1MCUnXSxcclxuXHRcdFx0XCJyb3NlVHlwZVwiOiAnYXJlYScsXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nLFxyXG5cdFx0XHRcImZvcm1hdHRlclwiOiBcIntifSA6IHtjfSVcIlxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogJ2JvdHRvbSdcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2Z1bm5lbCcsXHJcblx0XHRcdFwibGVmdFwiOiAnMTAlJyxcclxuXHRcdFx0XCJ0b3BcIjogNjAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDYwLFxyXG5cdFx0XHRcIndpZHRoXCI6ICc4MCUnLFxyXG5cdFx0XHRcIm1pblwiOiAwLFxyXG5cdFx0XHRcIm1heFwiOiAxMDAsXHJcblx0XHRcdFwibWluU2l6ZVwiOiAnMCUnLFxyXG5cdFx0XHRcIm1heFNpemVcIjogJzEwMCUnLFxyXG5cdFx0XHRcInNvcnRcIjogJ2Rlc2NlbmRpbmcnLFxyXG5cdFx0XHRcImdhcFwiOiAyLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICdpbnNpZGUnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwibGFiZWxMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxlbmd0aFwiOiAxMCxcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDEsXHJcblx0XHRcdFx0XHRcInR5cGVcIjogJ3NvbGlkJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJpdGVtU3R5bGVcIjoge1xyXG5cdFx0XHRcdFwiYm9yZGVyY29sb3JcIjogJyNmZmYnLFxyXG5cdFx0XHRcdFwiYm9yZGVyd2lkdGhcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImVtcGhhc2lzXCI6IHtcclxuXHRcdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcdFwiZm9udFNpemVcIjogMjBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImdhdWdlXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG4gICAgICAgIFwiZm9ybWF0dGVyXCI6ICd7YX0gPGJyLz57Yn0gOiB7Y30lJ1xyXG4gICAgfSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJ+S4muWKoeaMh+aghycsXHJcbiAgICAgIFwidHlwZVwiOiAnZ2F1Z2UnLFxyXG4gICAgICBcImRldGFpbFwiOiB7XCJmb3JtYXR0ZXJcIjogJ3t2YWx1ZX0lJ30sXHJcbiAgICAgIFwiZGF0YVwiOiBbe1widmFsdWVcIjogNTAsIFwibmFtZVwiOiAn5a6M5oiQ546HJ31dXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge30sXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwidGV4dFwiOiAnJ1xyXG5cdFx0fSxcclxuXHRcdFwiZGF0YVpvb21cIjogW3tcclxuXHRcdFx0XHRcInR5cGVcIjogJ2luc2lkZScsXHJcblx0XHRcdFx0XCJ4QXhpc0luZGV4XCI6IFswLCAxXSxcclxuXHRcdFx0XHRcInN0YXJ0XCI6IDEwLFxyXG5cdFx0XHRcdFwiZW5kXCI6IDEwMFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XCJ4QXhpc0luZGV4XCI6IFswLCAxXSxcclxuXHRcdFx0XHRcInR5cGVcIjogJ3NsaWRlcicsXHJcblx0XHRcdFx0XCJib3R0b21cIjogMTAsXHJcblx0XHRcdFx0XCJzdGFydFwiOiAxMCxcclxuXHRcdFx0XHRcImVuZFwiOiAxMDBcclxuXHRcdFx0fVxyXG5cdFx0XSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAnaycsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdH0sXHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjZmU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///75\n"); /***/ }), /* 76 */ /*!****************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 77);\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& */ 79);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0M2Q0MWImXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC91bmktcG9wdXAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///76\n"); /***/ }), /* 77 */ /*!***********************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 78); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 78 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 */ 5) .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 /***/ }), /* 79 */ /*!*****************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 80);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZzQixDQUFnQix1ckJBQUcsRUFBQyIsImZpbGUiOiI3OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///79\n"); /***/ }), /* 80 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\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 */var _default =\n\n{\n name: 'uniPopup',\n components: {},\n\n\n\n\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\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\n\n\n } },\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() {var _this = this;\n var fixSize = function fixSize() {var _uni$getSystemInfoSyn =\n uni.getSystemInfoSync(),windowWidth = _uni$getSystemInfoSyn.windowWidth,windowHeight = _uni$getSystemInfoSyn.windowHeight,windowTop = _uni$getSystemInfoSyn.windowTop,safeArea = _uni$getSystemInfoSyn.safeArea,screenHeight = _uni$getSystemInfoSyn.screenHeight,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\n\n\n\n _this.safeAreaInsets = safeAreaInsets.bottom;\n\n } else {\n _this.safeAreaInsets = 0;\n }\n };\n fixSize();\n\n\n\n\n\n\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\n e.stopPropagation();\n\n this.clearPropagation = true;\n },\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) {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\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) {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\n display: 'flex',\n flexDirection: 'column',\n\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\n display: 'flex',\n flexDirection: 'column' };\n\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\n display: 'flex',\n flexDirection: 'column' };\n\n\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkE7QUFDQSxrQkFEQTtBQUVBLGdCQUZBOzs7OztBQU9BLGdDQVBBO0FBUUE7QUFDQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQUZBOztBQU1BO0FBQ0E7QUFDQTtBQUNBLGtCQURBO0FBRUEsdUJBRkEsRUFSQTs7QUFZQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWJBOztBQWlCQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWxCQTs7QUFzQkE7QUFDQSxrQkFEQTtBQUVBLHFCQUZBLEVBdEJBOztBQTBCQTtBQUNBLG1CQURBO0FBRUEsbUJBRkEsRUExQkE7O0FBOEJBO0FBQ0Esa0JBREE7QUFFQSxtQ0FGQSxFQTlCQSxFQVJBOzs7O0FBNENBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FKQTtBQUtBLHFCQUxBLEVBSkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUpBO0FBS0EscUJBTEEsRUFYQTs7QUFrQkE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUEscUJBSkEsRUF0QkE7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBLE9BSEE7QUFJQSxxQkFKQSxFQTVCQTs7QUFrQ0E7QUFDQSxhQW5DQSxxQkFtQ0EsSUFuQ0EsRUFtQ0E7Ozs7O0FBS0EsS0F4Q0EsRUE1Q0E7O0FBc0ZBLE1BdEZBLGtCQXNGQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxhQUZBO0FBR0Esc0JBSEE7QUFJQSxzQkFKQTtBQUtBLG1CQUxBO0FBTUEsb0JBTkE7QUFPQTtBQUNBLGtCQURBO0FBRUEsd0JBRkE7QUFHQSx3QkFIQTtBQUlBLG9CQUpBO0FBS0Esc0JBTEE7QUFNQSxz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QW5KQTtBQW9KQSxTQXBKQSxpQkFvSkEsSUFwSkEsRUFvSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGlCQUZBO0FBR0EsZ0JBSEE7QUFJQSxjQUpBO0FBS0EsZ0NBTEE7O0FBT0EsdUJBUEE7QUFRQSwrQkFSQTs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXRLQSxFQWhMQSxFIiwiZmlsZSI6IjgwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IHYtaWY9XCJzaG93UG9wdXBcIiBjbGFzcz1cInVuaS1wb3B1cFwiIDpjbGFzcz1cIltwb3B1cHN0eWxlLCBpc0Rlc2t0b3AgPyAnZml4Zm9ycGMtei1pbmRleCcgOiAnJ11cIiBAdG91Y2htb3ZlLnN0b3AucHJldmVudD1cImNsZWFyXCI+XHJcblx0XHQ8dmlldyBAdG91Y2hzdGFydD1cInRvdWNoc3RhcnRcIiA+XHJcblx0XHRcdDx1bmktdHJhbnNpdGlvbiBrZXk9XCIxXCIgdi1pZj1cIm1hc2tTaG93XCIgbmFtZT1cIm1hc2tcIiBtb2RlLWNsYXNzPVwiZmFkZVwiIDpzdHlsZXM9XCJtYXNrQ2xhc3NcIiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDpzaG93PVwic2hvd1RyYW5zXCIgQGNsaWNrPVwib25UYXBcIiAvPlxyXG5cdFx0XHQ8dW5pLXRyYW5zaXRpb24ga2V5PVwiMlwiIDptb2RlLWNsYXNzPVwiYW5pXCIgbmFtZT1cImNvbnRlbnRcIiA6c3R5bGVzPVwidHJhbnNDbGFzc1wiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLXBvcHVwX193cmFwcGVyXCIgOnN0eWxlPVwieyBiYWNrZ3JvdW5kQ29sb3I6IGJnIH1cIiA6Y2xhc3M9XCJbcG9wdXBzdHlsZV1cIiBAY2xpY2s9XCJjbGVhclwiPjxzbG90IC8+PC92aWV3PlxyXG5cdFx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSAjaWZkZWYgSDUgLS0+XHJcblx0XHQ8a2V5cHJlc3Mgdi1pZj1cIm1hc2tTaG93XCIgQGVzYz1cIm9uVGFwXCIgLz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbi8vICNpZmRlZiBINVxyXG5pbXBvcnQga2V5cHJlc3MgZnJvbSAnLi9rZXlwcmVzcy5qcydcclxuLy8gI2VuZGlmXHJcblxyXG4vKipcclxuICogUG9wVXAg5by55Ye65bGCXHJcbiAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYLnu4Tku7bvvIzkuLrkuobop6PlhrPpga7nvanlvLnlsYLnmoTpl67pophcclxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gdHlwZSA9IFt0b3B8Y2VudGVyfGJvdHRvbXxsZWZ0fHJpZ2h0fG1lc3NhZ2V8ZGlhbG9nfHNoYXJlXSDlvLnlh7rmlrnlvI9cclxuICogXHRAdmFsdWUgdG9wIOmhtumDqOW8ueWHulxyXG4gKiBcdEB2YWx1ZSBjZW50ZXIg5Lit6Ze05by55Ye6XHJcbiAqIFx0QHZhbHVlIGJvdHRvbSDlupXpg6jlvLnlh7pcclxuICogXHRAdmFsdWUgbGVmdFx0XHTlt6bkvqflvLnlh7pcclxuICogXHRAdmFsdWUgcmlnaHQgIOWPs+S+p+W8ueWHulxyXG4gKiBcdEB2YWx1ZSBtZXNzYWdlIOa2iOaBr+aPkOekulxyXG4gKiBcdEB2YWx1ZSBkaWFsb2cg5a+56K+d5qGGXHJcbiAqIFx0QHZhbHVlIHNoYXJlIOW6lemDqOWIhuS6q+ekuuS+i1xyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGFuaW1hdGlvbiA9IFt0cnVlfGZhbHNlXSDmmK/lkKblvIDlkK/liqjnlLtcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBtYXNrQ2xpY2sgPSBbdHJ1ZXxmYWxzZV0g6JKZ54mI54K55Ye75piv5ZCm5YWz6Zet5by556qXKOW6n+W8gylcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBpc01hc2tDbGljayA9IFt0cnVlfGZhbHNlXSDokpnniYjngrnlh7vmmK/lkKblhbPpl63lvLnnqpdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9ICBiYWNrZ3JvdW5kQ29sb3Ig5Li756qX5Y+j6IOM5pmv6ImyXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSAgbWFza0JhY2tncm91bmRDb2xvciDokpnniYjpopzoibJcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBzYWZlQXJlYVx0XHQgICDmmK/lkKbpgILphY3lupXpg6jlronlhajljLpcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gY2hhbmdlIOaJk+W8gOWFs+mXreW8ueeql+inpuWPke+8jGU9e3Nob3c6IGZhbHNlfVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufSBtYXNrQ2xpY2sg54K55Ye76YGu572p6Kem5Y+RXHJcbiAqL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdG5hbWU6ICd1bmlQb3B1cCcsXHJcblx0Y29tcG9uZW50czoge1xyXG5cdFx0Ly8gI2lmZGVmIEg1XHJcblx0XHRrZXlwcmVzc1xyXG5cdFx0Ly8gI2VuZGlmXHJcblx0fSxcclxuXHRlbWl0czpbJ2NoYW5nZScsJ21hc2tDbGljayddLFxyXG5cdHByb3BzOiB7XHJcblx0XHQvLyDlvIDlkK/liqjnlLtcclxuXHRcdGFuaW1hdGlvbjoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0Ly8g5by55Ye65bGC57G75Z6L77yM5Y+v6YCJ5YC877yMdG9wOiDpobbpg6jlvLnlh7rlsYLvvJtib3R0b23vvJrlupXpg6jlvLnlh7rlsYLvvJtjZW50ZXLvvJrlhajlsY/lvLnlh7rlsYJcclxuXHRcdC8vIG1lc3NhZ2U6IOa2iOaBr+aPkOekuiA7IGRpYWxvZyA6IOWvueivneahhlxyXG5cdFx0dHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdjZW50ZXInXHJcblx0XHR9LFxyXG5cdFx0Ly8gbWFza0NsaWNrXHJcblx0XHRpc01hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0Ly8gVE9ETyAyIOS4queJiOacrOWQjuW6n+W8g+WxnuaApyDvvIzkvb/nlKggaXNNYXNrQ2xpY2tcclxuXHRcdG1hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0YmFja2dyb3VuZENvbG9yOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJ25vbmUnXHJcblx0XHR9LFxyXG5cdFx0c2FmZUFyZWE6e1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0bWFza0JhY2tncm91bmRDb2xvcjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHR9LFxyXG5cdH0sXHJcblxyXG5cdHdhdGNoOiB7XHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrHR5cGXnsbvlnotcclxuXHRcdCAqL1xyXG5cdFx0dHlwZToge1xyXG5cdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih0eXBlKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1t0eXBlXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0eXBlXV0odHJ1ZSlcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0aXNEZXNrdG9wOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKG5ld1ZhbCkge1xyXG5cdFx0XHRcdGlmICghdGhpcy5jb25maWdbbmV3VmFsXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0aGlzLnR5cGVdXSh0cnVlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrOmBrue9qeaYr+WQpuWPr+eCueWHu1xyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IHZhbFxyXG5cdFx0ICovXHJcblx0XHRtYXNrQ2xpY2s6IHtcclxuXHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odmFsKSB7XHJcblx0XHRcdFx0dGhpcy5ta2NsaWNrID0gdmFsXHJcblx0XHRcdH0sXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdGlzTWFza0NsaWNrOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvLyBINSDkuIvnpoHmraLlupXpg6jmu5rliqhcclxuXHRcdHNob3dQb3B1cChzaG93KSB7XHJcblx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWkhOeQhiBoNSDmu5rliqjnqb/pgI/nmoTpl67pophcclxuXHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5zdHlsZS5vdmVyZmxvdyA9IHNob3cgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH1cclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRkdXJhdGlvbjogMzAwLFxyXG5cdFx0XHRhbmk6IFtdLFxyXG5cdFx0XHRzaG93UG9wdXA6IGZhbHNlLFxyXG5cdFx0XHRzaG93VHJhbnM6IGZhbHNlLFxyXG5cdFx0XHRwb3B1cFdpZHRoOiAwLFxyXG5cdFx0XHRwb3B1cEhlaWdodDogMCxcclxuXHRcdFx0Y29uZmlnOiB7XHJcblx0XHRcdFx0dG9wOiAndG9wJyxcclxuXHRcdFx0XHRib3R0b206ICdib3R0b20nLFxyXG5cdFx0XHRcdGNlbnRlcjogJ2NlbnRlcicsXHJcblx0XHRcdFx0bGVmdDogJ2xlZnQnLFxyXG5cdFx0XHRcdHJpZ2h0OiAncmlnaHQnLFxyXG5cdFx0XHRcdG1lc3NhZ2U6ICd0b3AnLFxyXG5cdFx0XHRcdGRpYWxvZzogJ2NlbnRlcicsXHJcblx0XHRcdFx0c2hhcmU6ICdib3R0b20nXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tDbGFzczoge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHRcdH0sXHJcblx0XHRcdHRyYW5zQ2xhc3M6IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tTaG93OiB0cnVlLFxyXG5cdFx0XHRta2NsaWNrOiB0cnVlLFxyXG5cdFx0XHRwb3B1cHN0eWxlOiB0aGlzLmlzRGVza3RvcCA/ICdmaXhmb3JwYy10b3AnIDogJ3RvcCdcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcHVwV2lkdGggPj0gNTAwICYmIHRoaXMucG9wdXBIZWlnaHQgPj0gNTAwXHJcblx0XHR9LFxyXG5cdFx0YmcoKSB7XHJcblx0XHRcdGlmICh0aGlzLmJhY2tncm91bmRDb2xvciA9PT0gJycgfHwgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPT09ICdub25lJykge1xyXG5cdFx0XHRcdHJldHVybiAndHJhbnNwYXJlbnQnXHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yXHJcblx0XHR9XHJcblx0fSxcclxuXHRtb3VudGVkKCkge1xyXG5cdFx0Y29uc3QgZml4U2l6ZSA9ICgpID0+IHtcclxuXHRcdFx0Y29uc3QgeyB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0LCB3aW5kb3dUb3AsIHNhZmVBcmVhLHNjcmVlbkhlaWdodCAsc2FmZUFyZWFJbnNldHMgfSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcblx0XHRcdHRoaXMucG9wdXBXaWR0aCA9IHdpbmRvd1dpZHRoXHJcblx0XHRcdHRoaXMucG9wdXBIZWlnaHQgPSB3aW5kb3dIZWlnaHQgKyB3aW5kb3dUb3BcclxuXHRcdFx0Ly8gVE9ETyBmaXggYnkgbWVoYW90aWFuIOaYr+WQpumAgumFjeW6lemDqOWuieWFqOWMuiAs55uu5YmN5b6u5L+haW9zIOOAgeWSjCBhcHAgaW9zIOiuoeeul+acieW3ruW8gu+8jOmcgOimgeahhuaetuS/ruWkjVxyXG5cdFx0XHRpZihzYWZlQXJlYSl7XHJcblx0XHRcdFx0Ly8gI2lmZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzY3JlZW5IZWlnaHQgLSBzYWZlQXJlYS5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHQvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzYWZlQXJlYUluc2V0cy5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0dGhpcy5zYWZlQXJlYUluc2V0cyA9IDBcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Zml4U2l6ZSgpXHJcblx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdC8vIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXhTaXplKVxyXG5cdFx0Ly8gdGhpcy4kb25jZSgnaG9vazpiZWZvcmVEZXN0cm95JywgKCkgPT4ge1xyXG5cdFx0Ly8gXHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZml4U2l6ZSlcclxuXHRcdC8vIH0pXHJcblx0XHQvLyAjZW5kaWZcclxuXHR9LFxyXG5cdGNyZWF0ZWQoKSB7XHJcblx0XHQvLyB0aGlzLm1rY2xpY2sgPSAgdGhpcy5pc01hc2tDbGljayB8fCB0aGlzLm1hc2tDbGlja1xyXG5cdFx0aWYodGhpcy5pc01hc2tDbGljayA9PT0gbnVsbCAmJiB0aGlzLm1hc2tDbGljayA9PT0gbnVsbCl7XHJcblx0XHRcdHRoaXMubWtjbGljayAgPSB0cnVlXHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gdGhpcy5pc01hc2tDbGljayAhPT0gbnVsbCA/IHRoaXMuaXNNYXNrQ2xpY2sgOiB0aGlzLm1hc2tDbGlja1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuYW5pbWF0aW9uKSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAzMDBcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAwXHJcblx0XHR9XHJcblx0XHQvLyBUT0RPIOWkhOeQhiBtZXNzYWdlIOe7hOS7tueUn+WRveWRqOacn+W8guW4uOeahOmXrumimFxyXG5cdFx0dGhpcy5tZXNzYWdlQ2hpbGQgPSBudWxsXHJcblx0XHQvLyBUT0RPIOino+WGs+WktOadoeWGkuazoeeahOmXrumimFxyXG5cdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdHRoaXMubWFza0NsYXNzLmJhY2tncm91bmRDb2xvciA9IHRoaXMubWFza0JhY2tncm91bmRDb2xvclxyXG5cdH0sXHJcblx0bWV0aG9kczoge1xyXG5cdFx0LyoqXHJcblx0XHQgKiDlhaznlKjmlrnms5XvvIzkuI3mmL7npLrpga7nvanlsYJcclxuXHRcdCAqL1xyXG5cdFx0Y2xvc2VNYXNrKCkge1xyXG5cdFx0XHR0aGlzLm1hc2tTaG93ID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOWFrOeUqOaWueazle+8jOmBrue9qeWxguemgeatoueCueWHu1xyXG5cdFx0ICovXHJcblx0XHRkaXNhYmxlTWFzaygpIHtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIG52dWUg5Y+W5raI5YaS5rOhXHJcblx0XHRjbGVhcihlKSB7XHJcblx0XHRcdC8vICNpZm5kZWYgQVBQLU5WVUVcclxuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHJcblx0XHRvcGVuKGRpcmVjdGlvbikge1xyXG5cdFx0XHRsZXQgaW5uZXJUeXBlID0gWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JywgJ21lc3NhZ2UnLCAnZGlhbG9nJywgJ3NoYXJlJ11cclxuXHRcdFx0aWYgKCEoZGlyZWN0aW9uICYmIGlubmVyVHlwZS5pbmRleE9mKGRpcmVjdGlvbikgIT09IC0xKSkge1xyXG5cdFx0XHRcdGRpcmVjdGlvbiA9IHRoaXMudHlwZVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICghdGhpcy5jb25maWdbZGlyZWN0aW9uXSkge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+e8uuWwkeexu+Wei++8micsIGRpcmVjdGlvbilcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzW3RoaXMuY29uZmlnW2RpcmVjdGlvbl1dKClcclxuXHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdHNob3c6IHRydWUsXHJcblx0XHRcdFx0dHlwZTogZGlyZWN0aW9uXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Y2xvc2UodHlwZSkge1xyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IGZhbHNlXHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcclxuXHRcdFx0XHRzaG93OiBmYWxzZSxcclxuXHRcdFx0XHR0eXBlOiB0aGlzLnR5cGVcclxuXHRcdFx0fSlcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXHJcblx0XHRcdC8vIC8vIOiHquWumuS5ieWFs+mXreS6i+S7tlxyXG5cdFx0XHQvLyB0aGlzLmN1c3RvbU9wZW4gJiYgdGhpcy5jdXN0b21DbG9zZSgpXHJcblx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IGZhbHNlXHJcblx0XHRcdH0sIDMwMClcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIOWkhOeQhuWGkuazoeS6i+S7tu+8jOWktOadoeeahOWGkuazoeS6i+S7tuaciemXrumimCDvvIzlhYjov5nmoLflhbzlrrlcclxuXHRcdHRvdWNoc3RhcnQoKXtcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdH0sXHJcblxyXG5cdFx0b25UYXAoKSB7XHJcblx0XHRcdGlmICh0aGlzLmNsZWFyUHJvcGFnYXRpb24pIHtcclxuXHRcdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWFvOWuuSBudnVlXHJcblx0XHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLiRlbWl0KCdtYXNrQ2xpY2snKVxyXG5cdFx0XHRpZiAoIXRoaXMubWtjbGljaykgcmV0dXJuXHJcblx0XHRcdHRoaXMuY2xvc2UoKVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog6aG26YOo5by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdHRvcCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9IHRoaXMuaXNEZXNrdG9wID8gJ2ZpeGZvcnBjLXRvcCcgOiAndG9wJ1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtdG9wJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVzc2FnZUNoaWxkICYmIHRoaXMudHlwZSA9PT0gJ21lc3NhZ2UnKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VDaGlsZC50aW1lckNsb3NlKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDlupXpg6jlvLnlh7rmoLflvI/lpITnkIZcclxuXHRcdCAqL1xyXG5cdFx0Ym90dG9tKHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2JvdHRvbSdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRwYWRkaW5nQm90dG9tOiB0aGlzLnNhZmVBcmVhSW5zZXRzKydweCcsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog5Lit6Ze05by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdGNlbnRlcih0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdjZW50ZXInXHJcblx0XHRcdHRoaXMuYW5pID0gWyd6b29tLW91dCcsICdmYWRlJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcclxuXHRcdFx0XHRhbGlnbkl0ZW1zOiAnY2VudGVyJ1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRsZWZ0KHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2xlZnQnXHJcblx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1sZWZ0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmcsXHJcblx0XHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRcdGRpc3BsYXk6ICdmbGV4JyxcclxuXHRcdFx0XHRmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRyaWdodCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdyaWdodCdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLXJpZ2h0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbidcclxuXHRcdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbjwvc2NyaXB0PlxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiA+XHJcbi51bmktcG9wdXAge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ei1pbmRleDogOTk7XHJcblx0LyogI2VuZGlmICovXHJcblx0Ji50b3AsXHJcblx0Ji5sZWZ0LFxyXG5cdCYucmlnaHQge1xyXG5cdFx0LyogI2lmZGVmIEg1ICovXHJcblx0XHR0b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHQvKiAjaWZuZGVmIEg1ICovXHJcblx0XHR0b3A6IDA7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHR9XHJcblx0LnVuaS1wb3B1cF9fd3JhcHBlciB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0LyogaXBob25leCDnrYnlronlhajljLrorr7nva7vvIzlupXpg6jlronlhajljLrpgILphY0gKi9cclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdCYubGVmdCxcclxuXHRcdCYucmlnaHQge1xyXG5cdFx0XHQvKiAjaWZkZWYgSDUgKi9cclxuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0LyogI2lmbmRlZiBINSAqL1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdGZsZXg6IDE7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZml4Zm9ycGMtei1pbmRleCB7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHotaW5kZXg6IDk5OTtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLmZpeGZvcnBjLXRvcCB7XHJcblx0dG9wOiAwO1xyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///80\n"); /***/ }), /* 81 */ /*!******************************************************************************************************************!*\ !*** D:/Workspace/zy/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& */ 82);\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& */ 84);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmNTQ1MjBhJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXBvcHVwLWRpYWxvZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC1kaWFsb2cvdW5pLXBvcHVwLWRpYWxvZy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///81\n"); /***/ }), /* 82 */ /*!*************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 83); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 83 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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--10-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/zy/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 /***/ }), /* 84 */ /*!*******************************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/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& */ 85);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAtZGlhbG9nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///84\n"); /***/ }), /* 85 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\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 _popup = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/popup.js */ 86));\nvar _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 70);\n\n\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/index.js */ 87));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\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),t = _initVueI18n.t; /**\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 */var _default = { name: \"uniPopupDialog\", mixins: [_popup.default], emits: ['confirm', 'close'], props: { value: { type: [String, Number], default: '' }, placeholder: { type: [String, Number], default: '' }, type: { type: String, default: 'error' }, mode: { type: String, default: 'base' }, title: { type: String, 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 } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwLWRpYWxvZy91bmktcG9wdXAtZGlhbG9nLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBO0FBQ0E7OztBQUdBLCtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBQ0EseUMsQ0FBQSxDLGdCQUFBLEMsRUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O21HQW9CQSxFQUNBLHNCQURBLEVBRUEsd0JBRkEsRUFHQSwyQkFIQSxFQUlBLFNBQ0EsU0FDQSxzQkFEQSxFQUVBLFdBRkEsRUFEQSxFQUtBLGVBQ0Esc0JBREEsRUFFQSxXQUZBLEVBTEEsRUFTQSxRQUNBLFlBREEsRUFFQSxnQkFGQSxFQVRBLEVBYUEsUUFDQSxZQURBLEVBRUEsZUFGQSxFQWJBLEVBaUJBLFNBQ0EsWUFEQSxFQUVBLFdBRkEsRUFqQkE7O0FBcUJBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQXJCQTs7QUF5QkE7QUFDQSxtQkFEQTtBQUVBLG9CQUZBLEVBekJBOztBQTZCQTtBQUNBLGtCQURBO0FBRUEsaUJBRkEsRUE3QkE7O0FBaUNBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQWpDQSxFQUpBOzs7QUEwQ0EsTUExQ0Esa0JBMENBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGtCQUZBO0FBR0EsYUFIQTs7QUFLQSxHQWhEQTtBQWlEQTtBQUNBLFVBREEsb0JBQ0E7QUFDQTtBQUNBLEtBSEE7QUFJQSxhQUpBLHVCQUlBO0FBQ0E7QUFDQSxLQU5BO0FBT0EsbUJBUEEsNkJBT0E7QUFDQTtBQUNBLEtBVEE7QUFVQSxhQVZBLHVCQVVBO0FBQ0E7QUFDQSxLQVpBLEVBakRBOztBQStEQTtBQUNBLFFBREEsZ0JBQ0EsR0FEQSxFQUNBO0FBQ0E7QUFDQSxLQUhBO0FBSUEsUUFKQSxnQkFJQSxHQUpBLEVBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVJBO0FBU0EsU0FUQSxpQkFTQSxHQVRBLEVBU0E7QUFDQTtBQUNBLEtBWEEsRUEvREE7O0FBNEVBLFNBNUVBLHFCQTRFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBSEEsTUFHQTtBQUNBO0FBQ0E7QUFDQSxHQXRGQTtBQXVGQSxTQXZGQSxxQkF1RkE7QUFDQTtBQUNBLEdBekZBO0FBMEZBO0FBQ0E7OztBQUdBLFFBSkEsa0JBSUE7QUFDQTtBQUNBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVpBO0FBYUE7OztBQUdBLGVBaEJBLHlCQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBcEJBO0FBcUJBLFNBckJBLG1CQXFCQTtBQUNBO0FBQ0EsS0F2QkEsRUExRkEsRSIsImZpbGUiOiI4NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cInVuaS1wb3B1cC1kaWFsb2dcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy10aXRsZVwiPlxyXG5cdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctdGl0bGUtdGV4dFwiIDpjbGFzcz1cIlsndW5pLXBvcHVwX18nK2RpYWxvZ1R5cGVdXCI+e3t0aXRsZVRleHR9fTwvdGV4dD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtaWY9XCJtb2RlID09PSAnYmFzZSdcIiBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudC10ZXh0XCI+e3tjb250ZW50fX08L3RleHQ+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtZWxzZSBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJ1bmktZGlhbG9nLWlucHV0XCIgdi1tb2RlbD1cInZhbFwiIHR5cGU9XCJ0ZXh0XCIgOnBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXJUZXh0XCIgOmZvY3VzPVwiZm9jdXNcIiA+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b24tZ3JvdXBcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvblwiIEBjbGljaz1cImNsb3NlRGlhbG9nXCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvbi10ZXh0XCI+e3tjbG9zZVRleHR9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uIHVuaS1ib3JkZXItbGVmdFwiIEBjbGljaz1cIm9uT2tcIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uLXRleHQgdW5pLWJ1dHRvbi1jb2xvclwiPnt7b2tUZXh0fX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcG9wdXAgZnJvbSAnLi4vdW5pLXBvcHVwL3BvcHVwLmpzJ1xyXG5cdGltcG9ydCB7XHJcblx0aW5pdFZ1ZUkxOG5cclxuXHR9IGZyb20gJ0BkY2xvdWRpby91bmktaTE4bidcclxuXHRpbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi4vdW5pLXBvcHVwL2kxOG4vaW5kZXguanMnXHJcblx0Y29uc3Qge1x0dCB9ID0gaW5pdFZ1ZUkxOG4obWVzc2FnZXMpXHJcblx0LyoqXHJcblx0ICogUG9wVXAg5by55Ye65bGCLeWvueivneahhuagt+W8j1xyXG5cdCAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYIt5a+56K+d5qGG5qC35byPXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB2YWx1ZSBpbnB1dCDmqKHlvI/kuIvnmoTpu5jorqTlgLxcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gcGxhY2Vob2xkZXIgaW5wdXQg5qih5byP5LiL6L6T5YWl5o+Q56S6XHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUgPSBbc3VjY2Vzc3x3YXJuaW5nfGluZm98ZXJyb3JdIOS4u+mimOagt+W8j1xyXG5cdCAqICBAdmFsdWUgc3VjY2VzcyDmiJDlip9cclxuXHQgKiBcdEB2YWx1ZSB3YXJuaW5nIOaPkOekulxyXG5cdCAqIFx0QHZhbHVlIGluZm8g5raI5oGvXHJcblx0ICogXHRAdmFsdWUgZXJyb3Ig6ZSZ6K+vXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IG1vZGUgPSBbYmFzZXxpbnB1dF0g5qih5byP44CBXHJcblx0ICogXHRAdmFsdWUgYmFzZSDln7rnoYDlr7nor53moYZcclxuXHQgKiBcdEB2YWx1ZSBpbnB1dCDlj6/ovpPlhaXlr7nor53moYZcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gY29udGVudCDlr7nor53moYblhoXlrrlcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IGJlZm9yZUNsb3NlIOaYr+WQpuaLpuaIquWPlua2iOS6i+S7tlxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNvbmZpcm0g54K55Ye756Gu6K6k5oyJ6ZKu6Kem5Y+RXHJcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xvc2Ug54K55Ye75Y+W5raI5oyJ6ZKu6Kem5Y+RXHJcblx0ICovXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6IFwidW5pUG9wdXBEaWFsb2dcIixcclxuXHRcdG1peGluczogW3BvcHVwXSxcclxuXHRcdGVtaXRzOlsnY29uZmlybScsJ2Nsb3NlJ10sXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0cGxhY2Vob2xkZXI6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJ2Vycm9yJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdiYXNlJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR0aXRsZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjb250ZW50OiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGJlZm9yZUNsb3NlOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW5jZWxUZXh0OntcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29uZmlybVRleHQ6e1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRkaWFsb2dUeXBlOiAnZXJyb3InLFxyXG5cdFx0XHRcdGZvY3VzOiBmYWxzZSxcclxuXHRcdFx0XHR2YWw6IFwiXCJcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdG9rVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb25maXJtVGV4dCB8fCB0KFwidW5pLXBvcHVwLm9rXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNsb3NlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jYW5jZWxUZXh0IHx8IHQoXCJ1bmktcG9wdXAuY2FuY2VsXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHBsYWNlaG9sZGVyVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5wbGFjZWhvbGRlciB8fCB0KFwidW5pLXBvcHVwLnBsYWNlaG9sZGVyXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHRpdGxlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy50aXRsZSB8fCB0KFwidW5pLXBvcHVwLnRpdGxlXCIpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHR3YXRjaDoge1xyXG5cdFx0XHR0eXBlKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlKHZhbCkge1xyXG5cdFx0XHRcdGlmICh2YWwgPT09ICdpbnB1dCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9ICdpbmZvJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dmFsdWUodmFsKSB7XHJcblx0XHRcdFx0dGhpcy52YWwgPSB2YWxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNyZWF0ZWQoKSB7XHJcblx0XHRcdC8vIOWvueivneahhumBrue9qeS4jeWPr+eCueWHu1xyXG5cdFx0XHR0aGlzLnBvcHVwLmRpc2FibGVNYXNrKClcclxuXHRcdFx0Ly8gdGhpcy5wb3B1cC5jbG9zZU1hc2soKVxyXG5cdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gJ2luZm8nXHJcblx0XHRcdFx0dGhpcy52YWwgPSB0aGlzLnZhbHVlXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gdGhpcy50eXBlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHR0aGlzLmZvY3VzID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+ehruiupOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0b25PaygpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nLCB0aGlzLnZhbClcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZih0aGlzLmJlZm9yZUNsb3NlKSByZXR1cm5cclxuXHRcdFx0XHR0aGlzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+WPlua2iOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0Y2xvc2VEaWFsb2coKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xvc2UnKVxyXG5cdFx0XHRcdGlmKHRoaXMuYmVmb3JlQ2xvc2UpIHJldHVyblxyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbG9zZSgpe1xyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiID5cclxuXHQudW5pLXBvcHVwLWRpYWxvZyB7XHJcblx0XHR3aWR0aDogMzAwcHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMXB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLXRpdGxlIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctdGl0bGUtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctY29udGVudCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cGFkZGluZzogMjBweDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWNvbnRlbnQtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogIzZDNkM2QztcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWJ1dHRvbi1ncm91cCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogI2Y1ZjVmNTtcclxuXHRcdGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGhlaWdodDogNDVweDtcclxuXHR9XHJcblxyXG5cdC51bmktYm9yZGVyLWxlZnQge1xyXG5cdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICNmMGYwZjA7XHJcblx0XHRib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItbGVmdC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Y29sb3I6ICMzMzM7XHJcblx0fVxyXG5cclxuXHQudW5pLWJ1dHRvbi1jb2xvciB7XHJcblx0XHRjb2xvcjogIzAwN2FmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWlucHV0IHtcclxuXHRcdGZsZXg6IDE7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRib3JkZXI6IDFweCAjZWVlIHNvbGlkO1xyXG5cdFx0aGVpZ2h0OiA0MHB4O1xyXG5cdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cdFx0Y29sb3I6ICM1NTU7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX19zdWNjZXNzIHtcclxuXHRcdGNvbG9yOiAjNGNkOTY0O1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9fd2FybiB7XHJcblx0XHRjb2xvcjogI2YwYWQ0ZTtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX2Vycm9yIHtcclxuXHRcdGNvbG9yOiAjZGQ1MjRkO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9faW5mbyB7XHJcblx0XHRjb2xvcjogIzkwOTM5OTtcclxuXHR9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///85\n"); /***/ }), /* 86 */ /*!***********************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/popup.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _default =\n{\n data: function data() {\n return {};\n\n\n },\n created: function created() {\n this.popup = this.getParent();\n },\n methods: {\n /**\r\n * 获取父元素实例\r\n */\n getParent: function getParent() {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 } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3BvcHVwLmpzIl0sIm5hbWVzIjpbImRhdGEiLCJjcmVhdGVkIiwicG9wdXAiLCJnZXRQYXJlbnQiLCJtZXRob2RzIiwibmFtZSIsInBhcmVudCIsIiRwYXJlbnQiLCJwYXJlbnROYW1lIiwiJG9wdGlvbnMiXSwibWFwcGluZ3MiOiI7QUFDZTtBQUNkQSxNQURjLGtCQUNQO0FBQ04sV0FBTyxFQUFQOzs7QUFHQSxHQUxhO0FBTWRDLFNBTmMscUJBTUw7QUFDUixTQUFLQyxLQUFMLEdBQWEsS0FBS0MsU0FBTCxFQUFiO0FBQ0EsR0FSYTtBQVNkQyxTQUFPLEVBQUM7QUFDUDs7O0FBR0FELGFBSk8sdUJBSXNCLEtBQW5CRSxJQUFtQix1RUFBWixVQUFZO0FBQzVCLFVBQUlDLE1BQU0sR0FBRyxLQUFLQyxPQUFsQjtBQUNBLFVBQUlDLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxRQUFQLENBQWdCSixJQUFqQztBQUNBLGFBQU9HLFVBQVUsS0FBS0gsSUFBdEIsRUFBNEI7QUFDM0JDLGNBQU0sR0FBR0EsTUFBTSxDQUFDQyxPQUFoQjtBQUNBLFlBQUksQ0FBQ0QsTUFBTCxFQUFhLE9BQU8sS0FBUDtBQUNiRSxrQkFBVSxHQUFHRixNQUFNLENBQUNHLFFBQVAsQ0FBZ0JKLElBQTdCO0FBQ0E7QUFDRCxhQUFPQyxNQUFQO0FBQ0EsS0FiTSxFQVRNLEUiLCJmaWxlIjoiODYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNyZWF0ZWQoKXtcclxuXHRcdHRoaXMucG9wdXAgPSB0aGlzLmdldFBhcmVudCgpXHJcblx0fSxcclxuXHRtZXRob2RzOntcclxuXHRcdC8qKlxyXG5cdFx0ICog6I635Y+W54i25YWD57Sg5a6e5L6LXHJcblx0XHQgKi9cclxuXHRcdGdldFBhcmVudChuYW1lID0gJ3VuaVBvcHVwJykge1xyXG5cdFx0XHRsZXQgcGFyZW50ID0gdGhpcy4kcGFyZW50O1xyXG5cdFx0XHRsZXQgcGFyZW50TmFtZSA9IHBhcmVudC4kb3B0aW9ucy5uYW1lO1xyXG5cdFx0XHR3aGlsZSAocGFyZW50TmFtZSAhPT0gbmFtZSkge1xyXG5cdFx0XHRcdHBhcmVudCA9IHBhcmVudC4kcGFyZW50O1xyXG5cdFx0XHRcdGlmICghcGFyZW50KSByZXR1cm4gZmFsc2VcclxuXHRcdFx0XHRwYXJlbnROYW1lID0gcGFyZW50LiRvcHRpb25zLm5hbWU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHBhcmVudDtcclxuXHRcdH0sXHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///86\n"); /***/ }), /* 87 */ /*!****************************************************************************************************!*\ !*** D:/Workspace/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _en = _interopRequireDefault(__webpack_require__(/*! ./en.json */ 88));\nvar _zhHans = _interopRequireDefault(__webpack_require__(/*! ./zh-Hans.json */ 89));\nvar _zhHant = _interopRequireDefault(__webpack_require__(/*! ./zh-Hant.json */ 90));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default =\n{\n en: _en.default,\n 'zh-Hans': _zhHans.default,\n 'zh-Hant': _zhHant.default };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL2kxOG4vaW5kZXguanMiXSwibmFtZXMiOlsiZW4iLCJ6aEhhbnMiLCJ6aEhhbnQiXSwibWFwcGluZ3MiOiJ1RkFBQTtBQUNBO0FBQ0Esb0Y7QUFDZTtBQUNkQSxJQUFFLEVBQUZBLFdBRGM7QUFFZCxhQUFXQyxlQUZHO0FBR2QsYUFBV0MsZUFIRyxFIiwiZmlsZSI6Ijg3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVuIGZyb20gJy4vZW4uanNvbidcclxuaW1wb3J0IHpoSGFucyBmcm9tICcuL3poLUhhbnMuanNvbidcclxuaW1wb3J0IHpoSGFudCBmcm9tICcuL3poLUhhbnQuanNvbidcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGVuLFxyXG5cdCd6aC1IYW5zJzogemhIYW5zLFxyXG5cdCd6aC1IYW50JzogemhIYW50XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///87\n"); /***/ }), /* 88 */ /*!***************************************************************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI4OC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///88\n"); /***/ }), /* 89 */ /*!********************************************************************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI4OS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///89\n"); /***/ }), /* 90 */ /*!********************************************************************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5MC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///90\n"); /***/ }), /* 91 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjkxLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///91\n"); /***/ }), /* 92 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjkyLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///92\n"); /***/ }), /* 93 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjkzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///93\n"); /***/ }), /* 94 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZDEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n"); /***/ }), /* 95 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk1LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///95\n"); /***/ }), /* 96 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk2LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96\n"); /***/ }), /* 97 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\n"); /***/ }), /* 98 */ /*!*****************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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 */ 99);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRyQixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///98\n"); /***/ }), /* 99 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 100));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 101));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 = { data: function data() {return { commonUrl: null, // 通用url\n show: true, modeClass: 'fade', styles: {}, baseIP: '', baseLedId: '', basePort: '', crnId: '', value: '', xDistance: 0, yDistance: 0, xDuration: 0, yDuration: 0, used: 317, usedPr: 90, stockCount: 0, emptyCount: 0, noneCount: 0, chartsData: { \"Line\": { \"categories\": [], \"series\": [] }, \"Pie\": { \"series\": [{ \"data\": [] }] } }, chartsDataLine1: {}, chartsDataPie2: {}, ringOpts: {}, year: 2022, month: 4, day: 14, hours: 13, minutes: 38, seconds: 13, week: '星期四', ani: '', // move: 'upMove 1.5s 1;',\n move: false, topMove: 'topUp', floorMove: '', version: '', // newspaper:'拣料出库(4426)\\n源库位:1200101\\n目标站:186\\n1101842-10000-22047518517\\n\\n',\t\n newspaper: '', errorPaper: '', title: '', staNo: '', matnr: '', maknx: '', count: '', orderNo: null, doneOfTray: '', totalOfTray: '', doneOfUnit: '', totalOfUnit: '', errorMsg: null, width: 'full-width', errorShow: '', pakinShow: '', pakinGun: '', orderShow: false, swiper: 'swiper-here', autoplay: true, // 自动循环\n interval: 1000, // 调用时长\n duration: 8000, // 移动速度\n matList: [], // 订单列表\n ejectShow: false };}, mounted: function mounted() {var that = this;var BaseIP = uni.getStorageSync('BaseIp');var BaseLedId = uni.getStorageSync('BaseLedId');var BasePort = uni.getStorageSync('BasePort');var BaseCrnId = uni.getStorageSync('BaseCrnId');that.baseIP = BaseIP;that.baseLedId = BaseLedId;that.basePort = BasePort;that.baseCrnId = BaseCrnId;this.getUrl();}, onReady: function onReady() {var _this = this;setInterval(function () {// 获得初始数据\n _this.initlineChart();_this.initPieChart(); // 主页信息\n _this.getServerData();_this.getOther(); // 其他信息\n _this.getDate();_this.getPakin();_this.getError(); // this.getYYY();\n // this.getEEE();\n _this.animation();}, 1000);}, methods: { // 获取url\n getUrl: function getUrl() {this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;}, // 获取错误信息\n getYYY: function getYYY() {var that = this;var result = _data.default.dataEEE; // 测试用 ↓\n var res = result.data; // 测试用 ↑\n // 返回结果有值 且值不等于空值 就是有错误信息需要展示\n if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 显示\n } else {that.errorPaper = '';that.errorShow = false;if (that.pakinShow) {return;} else {that.move = true; // 隐藏\n }}}, getEEE: function getEEE() {var that = this;var newsData = '';var str = '';var result = _data.default.dataYYY; // 测试用 ↓\n var res = result.data; // 测试用 ↑\n if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '全板出库';} else if (res.data[0].ioType === 103) {that.title = '检料出库';}that.staNo = '目标站:' + res.data[0].staNo;that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;that.count = '出库数量:' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"订单号:\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;if (that.errorShow) {return;} else {that.newspaper = newsData;that.move = false;}} else {that.move = true;}}, // 获取错误信息\n getError: function getError() {var that = this;var res;uni.request({ url: that.commonUrl + \"/monitor/led/error\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 显示\n } else {that.errorShow = false; // if (that.pakinShow) {\n // \treturn;\n // } else {\n // \t// that.move = true // 隐藏\n // }\n }} });}, getPakin: function getPakin() {var that = this;that.matList = []; // 清空条码列表\n var newsData = '';var str = '';var res;uni.request({ url: that.commonUrl + \"/monitor/led\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (that.errorShow) {return; // 有错误信息\n }if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '全板出库';} else if (res.data[0].ioType === 103) {that.title = '检料出库';} else that.title = res.data[0].title;that.staNo = '目标站:' + res.data[0].staNo;that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;that.count = '出库数量:' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"订单号:\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;that.newspaper = newsData;that.move = false;} else {that.move = true;}} });}, animation: function animation() {__f__(\"log\", this.move, \" at pages/index/index.vue:553\");if (this.move) {this.topMove = 'topUp';this.floorMove = 'floorUp';} else {this.topMove = 'topDown';this.floorMove = 'floorDown';}}, getDateFormat: function getDateFormat(value) {var date = new Date(); // 获取当前时间\n date.setDate(date.getDate() + value); // 设置天数 -1 天\n var m = date.getMonth() + 1;var d = date.getDate();var newDate = m + '-' + d;return newDate;}, /*************** 折线图 *****************************************************************************************************/initlineChart: function initlineChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/line/charts\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {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)];that.chartsData.Line.series = res.data.rows;}} });}, /*************** 饼图 *****************************************************************************************************/initPieChart: function initPieChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/loc/rep\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Pie.series[0].data = res.data.pie;that.stockCount = res.data.stockCunt;that.emptyCount = res.data.emptyCount;that.noneCount = res.data.noneCount;that.used = res.data.used;that.usedPr = res.data.usedPr;}} });}, getOther: function getOther() {var that = this;uni.request({ // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n url: that.commonUrl + \"/monitor/other\", data: { crnId: that.baseCrnId, ledId: 1 }, success: function success(result) {__f__(\"log\", result, \" at pages/index/index.vue:617\");var res = result.data;if (res.code === 200) {that.xDistance = res.data.xDistance;that.yDistance = res.data.yDistance;that.xDuration = res.data.xDuration;that.yDuration = res.data.yDuration;} else if (res.code === 403) {} else {}} });\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:653\");\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:this.week = \"星期日\";break;\n case 1:this.week = \"星期一\";break;\n case 2:this.week = \"星期二\";break;\n case 3:this.week = \"星期三\";break;\n case 4:this.week = \"星期四\";break;\n case 5:this.week = \"星期五\";break;\n default:this.week = \"星期六\";}\n\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJjb21tb25VcmwiLCJzaG93IiwibW9kZUNsYXNzIiwic3R5bGVzIiwiYmFzZUlQIiwiYmFzZUxlZElkIiwiYmFzZVBvcnQiLCJjcm5JZCIsInZhbHVlIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZCIsInVzZWRQciIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwicmluZ09wdHMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwid2VlayIsImFuaSIsIm1vdmUiLCJ0b3BNb3ZlIiwiZmxvb3JNb3ZlIiwidmVyc2lvbiIsIm5ld3NwYXBlciIsImVycm9yUGFwZXIiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsImNvdW50Iiwib3JkZXJObyIsImRvbmVPZlRyYXkiLCJ0b3RhbE9mVHJheSIsImRvbmVPZlVuaXQiLCJ0b3RhbE9mVW5pdCIsImVycm9yTXNnIiwid2lkdGgiLCJlcnJvclNob3ciLCJwYWtpblNob3ciLCJwYWtpbkd1biIsIm9yZGVyU2hvdyIsInN3aXBlciIsImF1dG9wbGF5IiwiaW50ZXJ2YWwiLCJkdXJhdGlvbiIsIm1hdExpc3QiLCJlamVjdFNob3ciLCJtb3VudGVkIiwidGhhdCIsIkJhc2VJUCIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiQmFzZUxlZElkIiwiQmFzZVBvcnQiLCJCYXNlQ3JuSWQiLCJiYXNlQ3JuSWQiLCJnZXRVcmwiLCJvblJlYWR5Iiwic2V0SW50ZXJ2YWwiLCJpbml0bGluZUNoYXJ0IiwiaW5pdFBpZUNoYXJ0IiwiZ2V0U2VydmVyRGF0YSIsImdldE90aGVyIiwiZ2V0RGF0ZSIsImdldFBha2luIiwiZ2V0RXJyb3IiLCJhbmltYXRpb24iLCJtZXRob2RzIiwiYmFzZUh0dHAiLCJiYXNlVXJsIiwiZ2V0WVlZIiwicmVzdWx0IiwieWNxZGF0YSIsImRhdGFFRUUiLCJyZXMiLCJnZXRFRUUiLCJuZXdzRGF0YSIsInN0ciIsImRhdGFZWVkiLCJpb1R5cGUiLCJtYXREdG9zIiwicmVxdWVzdCIsInVybCIsImxlZElkIiwibWV0aG9kIiwic3VjY2VzcyIsImdldERhdGVGb3JtYXQiLCJkYXRlIiwiRGF0ZSIsInNldERhdGUiLCJtIiwiZ2V0TW9udGgiLCJkIiwibmV3RGF0ZSIsImNvZGUiLCJMaW5lIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsInJvd3MiLCJQaWUiLCJwaWUiLCJzdG9ja0N1bnQiLCJlamVjdGVkIiwiZWplY3RDb25maXJtIiwic2V0U3RvcmFnZVN5bmMiLCJlamVjdENsb3NlIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiY29tcGxldGUiLCJlIiwiZHQiLCJnZXRGdWxsWWVhciIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJ3ZWVrcyIsImdldERheSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBTQztBQUNBLGlHLDhGQTNTRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7ZUFJZ0IsRUFDZEEsSUFEYyxrQkFDUCxDQUNOLE9BQU8sRUFDTkMsU0FBUyxFQUFDLElBREosRUFDVTtBQUNoQkMsVUFBSSxFQUFFLElBRkEsRUFHTkMsU0FBUyxFQUFFLE1BSEwsRUFJTkMsTUFBTSxFQUFFLEVBSkYsRUFLTkMsTUFBTSxFQUFDLEVBTEQsRUFNTkMsU0FBUyxFQUFDLEVBTkosRUFPTkMsUUFBUSxFQUFDLEVBUEgsRUFRTkMsS0FBSyxFQUFDLEVBUkEsRUFTTkMsS0FBSyxFQUFFLEVBVEQsRUFVTkMsU0FBUyxFQUFFLENBVkwsRUFXTkMsU0FBUyxFQUFDLENBWEosRUFZTkMsU0FBUyxFQUFDLENBWkosRUFhTkMsU0FBUyxFQUFDLENBYkosRUFjTkMsSUFBSSxFQUFDLEdBZEMsRUFlTkMsTUFBTSxFQUFFLEVBZkYsRUFnQk5DLFVBQVUsRUFBQyxDQWhCTCxFQWlCTkMsVUFBVSxFQUFDLENBakJMLEVBa0JOQyxTQUFTLEVBQUMsQ0FsQkosRUFtQk5DLFVBQVUsRUFBRSxFQUNYLFFBQVEsRUFDUCxjQUFjLEVBRFAsRUFFUCxVQUFVLEVBRkgsRUFERyxFQUtYLE9BQU8sRUFDTixVQUFVLENBQUMsRUFDVixRQUFRLEVBREUsRUFBRCxDQURKLEVBTEksRUFuQk4sRUE4Qk5DLGVBQWUsRUFBRSxFQTlCWCxFQStCTkMsY0FBYyxFQUFFLEVBL0JWLEVBZ0NOQyxRQUFRLEVBQUMsRUFoQ0gsRUFpQ05DLElBQUksRUFBQyxJQWpDQyxFQWtDTkMsS0FBSyxFQUFDLENBbENBLEVBbUNOQyxHQUFHLEVBQUMsRUFuQ0UsRUFvQ05DLEtBQUssRUFBQyxFQXBDQSxFQXFDTkMsT0FBTyxFQUFDLEVBckNGLEVBc0NOQyxPQUFPLEVBQUMsRUF0Q0YsRUF1Q05DLElBQUksRUFBQyxLQXZDQyxFQXdDTkMsR0FBRyxFQUFDLEVBeENFLEVBeUNOO0FBQ0FDLFVBQUksRUFBQyxLQTFDQyxFQTJDTkMsT0FBTyxFQUFDLE9BM0NGLEVBNENOQyxTQUFTLEVBQUMsRUE1Q0osRUE2Q05DLE9BQU8sRUFBQyxFQTdDRixFQThDTjtBQUNBQyxlQUFTLEVBQUMsRUEvQ0osRUFnRE5DLFVBQVUsRUFBQyxFQWhETCxFQWlETkMsS0FBSyxFQUFDLEVBakRBLEVBa0ROQyxLQUFLLEVBQUMsRUFsREEsRUFtRE5DLEtBQUssRUFBQyxFQW5EQSxFQW9ETkMsS0FBSyxFQUFDLEVBcERBLEVBcUROQyxLQUFLLEVBQUMsRUFyREEsRUFzRE5DLE9BQU8sRUFBQyxJQXRERixFQXVETkMsVUFBVSxFQUFDLEVBdkRMLEVBd0ROQyxXQUFXLEVBQUMsRUF4RE4sRUF5RE5DLFVBQVUsRUFBQyxFQXpETCxFQTBETkMsV0FBVyxFQUFDLEVBMUROLEVBMkROQyxRQUFRLEVBQUMsSUEzREgsRUE0RE5DLEtBQUssRUFBQyxZQTVEQSxFQTZETkMsU0FBUyxFQUFDLEVBN0RKLEVBOEROQyxTQUFTLEVBQUMsRUE5REosRUErRE5DLFFBQVEsRUFBQyxFQS9ESCxFQWdFTkMsU0FBUyxFQUFDLEtBaEVKLEVBaUVOQyxNQUFNLEVBQUMsYUFqRUQsRUFrRU5DLFFBQVEsRUFBQyxJQWxFSCxFQWtFUztBQUNmQyxjQUFRLEVBQUMsSUFuRUgsRUFtRVM7QUFDZkMsY0FBUSxFQUFDLElBcEVILEVBb0VTO0FBQ2ZDLGFBQU8sRUFBQyxFQXJFRixFQXFFTTtBQUNaQyxlQUFTLEVBQUUsS0F0RUwsRUFBUCxDQXlFQSxDQTNFYSxFQTRFZEMsT0E1RWMscUJBNEVKLENBQ1QsSUFBSUMsSUFBSSxHQUFHLElBQVgsQ0FDQSxJQUFNQyxNQUFNLEdBQUdDLEdBQUcsQ0FBQ0MsY0FBSixDQUFtQixRQUFuQixDQUFmLENBQ0EsSUFBTUMsU0FBUyxHQUFHRixHQUFHLENBQUNDLGNBQUosQ0FBbUIsV0FBbkIsQ0FBbEIsQ0FDQSxJQUFNRSxRQUFRLEdBQUdILEdBQUcsQ0FBQ0MsY0FBSixDQUFtQixVQUFuQixDQUFqQixDQUNBLElBQU1HLFNBQVMsR0FBR0osR0FBRyxDQUFDQyxjQUFKLENBQW1CLFdBQW5CLENBQWxCLENBQ0NILElBQUksQ0FBQ3ZELE1BQUwsR0FBY3dELE1BQWQsQ0FDQUQsSUFBSSxDQUFDdEQsU0FBTCxHQUFpQjBELFNBQWpCLENBQ0FKLElBQUksQ0FBQ3JELFFBQUwsR0FBZ0IwRCxRQUFoQixDQUNBTCxJQUFJLENBQUNPLFNBQUwsR0FBaUJELFNBQWpCLENBQ0QsS0FBS0UsTUFBTCxHQUNBLENBdkZhLEVBd0ZkQyxPQXhGYyxxQkF3Rkosa0JBQ1RDLFdBQVcsQ0FBQyxZQUFNLENBQ2pCO0FBQ0EsV0FBSSxDQUFDQyxhQUFMLEdBQ0EsS0FBSSxDQUFDQyxZQUFMLEdBSGlCLENBSWpCO0FBQ0EsV0FBSSxDQUFDQyxhQUFMLEdBQ0EsS0FBSSxDQUFDQyxRQUFMLEdBTmlCLENBT2pCO0FBQ0EsV0FBSSxDQUFDQyxPQUFMLEdBQ0EsS0FBSSxDQUFDQyxRQUFMLEdBQ0EsS0FBSSxDQUFDQyxRQUFMLEdBVmlCLENBV2pCO0FBQ0E7QUFDQSxXQUFJLENBQUNDLFNBQUwsR0FDQSxDQWRVLEVBY1QsSUFkUyxDQUFYLENBZUEsQ0F4R2EsRUF5R2RDLE9BQU8sRUFBRSxFQUNSO0FBQ0FYLFVBRlEsb0JBRUMsQ0FDUixLQUFLbkUsU0FBTCxHQUFpQixLQUFLK0UsUUFBTCxHQUFnQixLQUFLM0UsTUFBckIsR0FBOEIsR0FBOUIsR0FBbUMsS0FBS0UsUUFBeEMsR0FBbUQsS0FBSzBFLE9BQXpFLENBQ0EsQ0FKTyxFQUtSO0FBQ0FDLFVBTlEsb0JBTUMsQ0FDUixJQUFJdEIsSUFBSSxHQUFHLElBQVgsQ0FDQSxJQUFJdUIsTUFBTSxHQUFHQyxjQUFRQyxPQUFyQixDQUZRLENBR1I7QUFDQSxVQUFJQyxHQUFHLEdBQUdILE1BQU0sQ0FBQ25GLElBQWpCLENBSlEsQ0FLUjtBQUNBO0FBQ0EsVUFBSXNGLEdBQUcsQ0FBQ3RGLElBQUosSUFBWXNGLEdBQUcsQ0FBQ3RGLElBQUosS0FBYSxFQUE3QixFQUFpQyxDQUNoQzRELElBQUksQ0FBQ2IsUUFBTCxHQUFnQnVDLEdBQUcsQ0FBQ3RGLElBQXBCLENBQ0E0RCxJQUFJLENBQUNYLFNBQUwsR0FBaUIsSUFBakIsQ0FDQVcsSUFBSSxDQUFDN0IsSUFBTCxHQUFZLEtBQVosQ0FIZ0MsQ0FHZDtBQUNsQixPQUpELE1BSU8sQ0FDTjZCLElBQUksQ0FBQ3hCLFVBQUwsR0FBa0IsRUFBbEIsQ0FDQXdCLElBQUksQ0FBQ1gsU0FBTCxHQUFpQixLQUFqQixDQUNBLElBQUlXLElBQUksQ0FBQ1YsU0FBVCxFQUFvQixDQUNuQixPQUNBLENBRkQsTUFFTyxDQUNOVSxJQUFJLENBQUM3QixJQUFMLEdBQVksSUFBWixDQURNLENBQ1c7QUFDakIsU0FDRCxDQUNELENBMUJPLEVBMkJSd0QsTUEzQlEsb0JBMkJFLENBQ1QsSUFBSTNCLElBQUksR0FBRyxJQUFYLENBQ0EsSUFBSTRCLFFBQVEsR0FBRyxFQUFmLENBQ0EsSUFBSUMsR0FBRyxHQUFHLEVBQVYsQ0FDQSxJQUFJTixNQUFNLEdBQUdDLGNBQVFNLE9BQXJCLENBSlMsQ0FLUDtBQUNGLFVBQUlKLEdBQUcsR0FBR0gsTUFBTSxDQUFDbkYsSUFBakIsQ0FOUyxDQU9QO0FBQ0QsVUFBR3NGLEdBQUcsQ0FBQ3RGLElBQUosSUFBWXNGLEdBQUcsQ0FBQ3RGLElBQUosS0FBYSxJQUE1QixFQUFrQyxDQUNqQyxJQUFJc0YsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTJGLE1BQVosS0FBdUIsR0FBM0IsRUFBZ0MsQ0FDL0IvQixJQUFJLENBQUN2QixLQUFMLEdBQWEsTUFBYixDQUNBLENBRkQsTUFFTyxJQUFHaUQsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTJGLE1BQVosS0FBdUIsR0FBMUIsRUFBK0IsQ0FDckMvQixJQUFJLENBQUN2QixLQUFMLEdBQWEsTUFBYixDQUNBLENBQ0R1QixJQUFJLENBQUN0QixLQUFMLEdBQWEsU0FBU2dELEdBQUcsQ0FBQ3RGLElBQUosQ0FBUyxDQUFULEVBQVlzQyxLQUFsQyxDQUNBc0IsSUFBSSxDQUFDckIsS0FBTCxHQUFhLFVBQVUrQyxHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZNEYsT0FBWixDQUFvQixDQUFwQixFQUF1QnJELEtBQTlDLENBQ0FxQixJQUFJLENBQUNwQixLQUFMLEdBQWEsVUFBVThDLEdBQUcsQ0FBQ3RGLElBQUosQ0FBUyxDQUFULEVBQVk0RixPQUFaLENBQW9CLENBQXBCLEVBQXVCcEQsS0FBOUMsQ0FDQW9CLElBQUksQ0FBQ25CLEtBQUwsR0FBYSxVQUFVNkMsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTRGLE9BQVosQ0FBb0IsQ0FBcEIsRUFBdUJuRCxLQUE5QyxDQUNBLElBQUk2QyxHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZMEMsT0FBaEIsRUFBeUIsQ0FDeEJrQixJQUFJLENBQUNsQixPQUFMLEdBQWUsU0FBUzRDLEdBQUcsQ0FBQ3RGLElBQUosQ0FBUyxDQUFULEVBQVkwQyxPQUFwQyxDQUNBa0IsSUFBSSxDQUFDUixTQUFMLEdBQWlCLElBQWpCLENBQ0FRLElBQUksQ0FBQ1osS0FBTCxHQUFhLFlBQWIsQ0FDQSxDQUpELE1BSU8sQ0FDTlksSUFBSSxDQUFDbEIsT0FBTCxHQUFlLElBQWYsQ0FDQWtCLElBQUksQ0FBQ1IsU0FBTCxHQUFpQixLQUFqQixDQUNBUSxJQUFJLENBQUNaLEtBQUwsR0FBYSxZQUFiLENBQ0EsQ0FDRFksSUFBSSxDQUFDakIsVUFBTCxHQUFrQixXQUFXMkMsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTJDLFVBQXpDLENBQ0FpQixJQUFJLENBQUNoQixXQUFMLEdBQW1CLFdBQVcwQyxHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZNEMsV0FBMUMsQ0FDQWdCLElBQUksQ0FBQ2YsVUFBTCxHQUFrQixVQUFVeUMsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTZDLFVBQXhDLENBQ0FlLElBQUksQ0FBQ2QsV0FBTCxHQUFtQixTQUFTd0MsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWThDLFdBQXhDLENBQ0EsSUFBSWMsSUFBSSxDQUFDWCxTQUFULEVBQW9CLENBQ2pCLE9BQ0EsQ0FGSCxNQUVTLENBQ05XLElBQUksQ0FBQ3pCLFNBQUwsR0FBaUJxRCxRQUFqQixDQUNBNUIsSUFBSSxDQUFDN0IsSUFBTCxHQUFZLEtBQVosQ0FDQSxDQUNILENBN0JELE1BNkJNLENBQ0w2QixJQUFJLENBQUM3QixJQUFMLEdBQVksSUFBWixDQUNBLENBR0YsQ0FyRU8sRUFzRVI7QUFDQThDLFlBdkVRLHNCQXVFRyxDQUNWLElBQUlqQixJQUFJLEdBQUcsSUFBWCxDQUNBLElBQUkwQixHQUFKLENBQ0F4QixHQUFHLENBQUMrQixPQUFKLENBQVksRUFDWEMsR0FBRyxFQUFFbEMsSUFBSSxDQUFDM0QsU0FBTCxHQUFpQixvQkFEWCxFQUVYRCxJQUFJLEVBQUUsRUFDTCtGLEtBQUssRUFBQ25DLElBQUksQ0FBQ3RELFNBRE4sRUFGSyxFQUtYMEYsTUFBTSxFQUFDLEtBTEksRUFNWEMsT0FOVyxtQkFNSGQsTUFORyxFQU1LLENBQ2ZHLEdBQUcsR0FBR0gsTUFBTSxDQUFDbkYsSUFBYixDQUNBLElBQUlzRixHQUFHLENBQUN0RixJQUFKLElBQVlzRixHQUFHLENBQUN0RixJQUFKLEtBQWEsRUFBN0IsRUFBaUMsQ0FDaEM0RCxJQUFJLENBQUNiLFFBQUwsR0FBZ0J1QyxHQUFHLENBQUN0RixJQUFwQixDQUNBNEQsSUFBSSxDQUFDWCxTQUFMLEdBQWlCLElBQWpCLENBQ0FXLElBQUksQ0FBQzdCLElBQUwsR0FBWSxLQUFaLENBSGdDLENBR2Q7QUFDbEIsV0FKRCxNQUlPLENBQ042QixJQUFJLENBQUNYLFNBQUwsR0FBaUIsS0FBakIsQ0FETSxDQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUNELENBcEJVLEVBQVosRUFzQkEsQ0FoR08sRUFpR1IyQixRQWpHUSxzQkFpR0ksQ0FDWCxJQUFJaEIsSUFBSSxHQUFHLElBQVgsQ0FDQUEsSUFBSSxDQUFDSCxPQUFMLEdBQWUsRUFBZixDQUZXLENBRU87QUFDbEIsVUFBSStCLFFBQVEsR0FBRyxFQUFmLENBQ0EsSUFBSUMsR0FBRyxHQUFHLEVBQVYsQ0FDQSxJQUFJSCxHQUFKLENBQ0F4QixHQUFHLENBQUMrQixPQUFKLENBQVksRUFDWEMsR0FBRyxFQUFFbEMsSUFBSSxDQUFDM0QsU0FBTCxHQUFpQixjQURYLEVBRVhELElBQUksRUFBRSxFQUNMK0YsS0FBSyxFQUFDbkMsSUFBSSxDQUFDdEQsU0FETixFQUZLLEVBS1gwRixNQUFNLEVBQUMsS0FMSSxFQU1YQyxPQU5XLG1CQU1IZCxNQU5HLEVBTUssQ0FDZkcsR0FBRyxHQUFHSCxNQUFNLENBQUNuRixJQUFiLENBQ0EsSUFBSTRELElBQUksQ0FBQ1gsU0FBVCxFQUFvQixDQUNuQixPQURtQixDQUNWO0FBQ1QsV0FDRCxJQUFHcUMsR0FBRyxDQUFDdEYsSUFBSixJQUFZc0YsR0FBRyxDQUFDdEYsSUFBSixLQUFhLElBQTVCLEVBQWtDLENBQ2pDLElBQUlzRixHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZMkYsTUFBWixLQUF1QixHQUEzQixFQUFnQyxDQUMvQi9CLElBQUksQ0FBQ3ZCLEtBQUwsR0FBYSxNQUFiLENBQ0EsQ0FGRCxNQUVPLElBQUdpRCxHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZMkYsTUFBWixLQUF1QixHQUExQixFQUErQixDQUNyQy9CLElBQUksQ0FBQ3ZCLEtBQUwsR0FBYSxNQUFiLENBQ0EsQ0FGTSxNQUdQdUIsSUFBSSxDQUFDdkIsS0FBTCxHQUFhaUQsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWXFDLEtBQXpCLENBQ0F1QixJQUFJLENBQUN0QixLQUFMLEdBQWEsU0FBU2dELEdBQUcsQ0FBQ3RGLElBQUosQ0FBUyxDQUFULEVBQVlzQyxLQUFsQyxDQUNBc0IsSUFBSSxDQUFDckIsS0FBTCxHQUFhLFVBQVUrQyxHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZNEYsT0FBWixDQUFvQixDQUFwQixFQUF1QnJELEtBQTlDLENBQ0FxQixJQUFJLENBQUNwQixLQUFMLEdBQWEsVUFBVThDLEdBQUcsQ0FBQ3RGLElBQUosQ0FBUyxDQUFULEVBQVk0RixPQUFaLENBQW9CLENBQXBCLEVBQXVCcEQsS0FBOUMsQ0FDQW9CLElBQUksQ0FBQ25CLEtBQUwsR0FBYSxVQUFVNkMsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTRGLE9BQVosQ0FBb0IsQ0FBcEIsRUFBdUJuRCxLQUE5QyxDQUNBLElBQUk2QyxHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZMEMsT0FBaEIsRUFBeUIsQ0FDeEJrQixJQUFJLENBQUNsQixPQUFMLEdBQWUsU0FBUzRDLEdBQUcsQ0FBQ3RGLElBQUosQ0FBUyxDQUFULEVBQVkwQyxPQUFwQyxDQUNBa0IsSUFBSSxDQUFDUixTQUFMLEdBQWlCLElBQWpCLENBQ0FRLElBQUksQ0FBQ1osS0FBTCxHQUFhLFlBQWIsQ0FDQSxDQUpELE1BSU8sQ0FDTlksSUFBSSxDQUFDbEIsT0FBTCxHQUFlLElBQWYsQ0FDQWtCLElBQUksQ0FBQ1IsU0FBTCxHQUFpQixLQUFqQixDQUNBUSxJQUFJLENBQUNaLEtBQUwsR0FBYSxZQUFiLENBQ0EsQ0FDRFksSUFBSSxDQUFDakIsVUFBTCxHQUFrQixXQUFXMkMsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTJDLFVBQXpDLENBQ0FpQixJQUFJLENBQUNoQixXQUFMLEdBQW1CLFdBQVcwQyxHQUFHLENBQUN0RixJQUFKLENBQVMsQ0FBVCxFQUFZNEMsV0FBMUMsQ0FDQWdCLElBQUksQ0FBQ2YsVUFBTCxHQUFrQixVQUFVeUMsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWTZDLFVBQXhDLENBQ0FlLElBQUksQ0FBQ2QsV0FBTCxHQUFtQixTQUFTd0MsR0FBRyxDQUFDdEYsSUFBSixDQUFTLENBQVQsRUFBWThDLFdBQXhDLENBQ0FjLElBQUksQ0FBQ3pCLFNBQUwsR0FBaUJxRCxRQUFqQixDQUNBNUIsSUFBSSxDQUFDN0IsSUFBTCxHQUFZLEtBQVosQ0FDQSxDQTFCRCxNQTBCTSxDQUNMNkIsSUFBSSxDQUFDN0IsSUFBTCxHQUFZLElBQVosQ0FDQSxDQUNELENBeENVLEVBQVosRUEwQ0EsQ0FqSk8sRUFrSlIrQyxTQWxKUSx1QkFrSkksQ0FDWCxhQUFZLEtBQUsvQyxJQUFqQixtQ0FDQSxJQUFJLEtBQUtBLElBQVQsRUFBZSxDQUNkLEtBQUtDLE9BQUwsR0FBZSxPQUFmLENBQ0EsS0FBS0MsU0FBTCxHQUFpQixTQUFqQixDQUNBLENBSEQsTUFHTyxDQUNOLEtBQUtELE9BQUwsR0FBZSxTQUFmLENBQ0EsS0FBS0MsU0FBTCxHQUFpQixXQUFqQixDQUNBLENBQ0QsQ0EzSk8sRUE0SlJpRSxhQTVKUSx5QkE0Sk16RixLQTVKTixFQTRKYSxDQUNwQixJQUFJMEYsSUFBSSxHQUFHLElBQUlDLElBQUosRUFBWCxDQURvQixDQUNFO0FBQ3RCRCxVQUFJLENBQUNFLE9BQUwsQ0FBYUYsSUFBSSxDQUFDeEIsT0FBTCxLQUFpQmxFLEtBQTlCLEVBRm9CLENBRWlCO0FBQ3JDLFVBQUk2RixDQUFDLEdBQUdILElBQUksQ0FBQ0ksUUFBTCxLQUFrQixDQUExQixDQUNBLElBQUlDLENBQUMsR0FBR0wsSUFBSSxDQUFDeEIsT0FBTCxFQUFSLENBQ0EsSUFBSThCLE9BQU8sR0FBR0gsQ0FBQyxHQUFHLEdBQUosR0FBVUUsQ0FBeEIsQ0FDQSxPQUFPQyxPQUFQLENBQ0EsQ0FuS08sRUFvS1gsMkhBQ0dsQyxhQXJLUSwyQkFxS1EsQ0FDZixJQUFJWCxJQUFJLEdBQUcsSUFBWCxDQUNBRSxHQUFHLENBQUMrQixPQUFKLENBQVksRUFDWEMsR0FBRyxFQUFFbEMsSUFBSSxDQUFDM0QsU0FBTCxHQUFpQixzQkFEWCxFQUVYK0YsTUFBTSxFQUFDLEtBRkksRUFHWEMsT0FIVyxtQkFHSGQsTUFIRyxFQUdLLENBQ2YsSUFBSUcsR0FBRyxHQUFHSCxNQUFNLENBQUNuRixJQUFqQixDQUNBLElBQUlzRixHQUFHLENBQUNvQixJQUFKLEtBQWEsR0FBakIsRUFBc0IsQ0FDckI5QyxJQUFJLENBQUN6QyxVQUFMLENBQWdCd0YsSUFBaEIsQ0FBcUJDLFVBQXJCLEdBQWtDLENBQ2pDaEQsSUFBSSxDQUFDc0MsYUFBTCxDQUFtQixDQUFDLEVBQXBCLENBRGlDLEVBQ1R0QyxJQUFJLENBQUNzQyxhQUFMLENBQW1CLENBQUMsRUFBcEIsQ0FEUyxFQUNldEMsSUFBSSxDQUFDc0MsYUFBTCxDQUFtQixDQUFDLENBQXBCLENBRGYsRUFDc0N0QyxJQUFJLENBQUNzQyxhQUFMLENBQW1CLENBQUMsQ0FBcEIsQ0FEdEMsRUFFakN0QyxJQUFJLENBQUNzQyxhQUFMLENBQW1CLENBQUMsQ0FBcEIsQ0FGaUMsRUFFVnRDLElBQUksQ0FBQ3NDLGFBQUwsQ0FBbUIsQ0FBQyxDQUFwQixDQUZVLEVBRWF0QyxJQUFJLENBQUNzQyxhQUFMLENBQW1CLENBQUMsQ0FBcEIsQ0FGYixFQUVvQ3RDLElBQUksQ0FBQ3NDLGFBQUwsQ0FBbUIsQ0FBQyxDQUFwQixDQUZwQyxFQUdqQ3RDLElBQUksQ0FBQ3NDLGFBQUwsQ0FBbUIsQ0FBQyxDQUFwQixDQUhpQyxFQUdWdEMsSUFBSSxDQUFDc0MsYUFBTCxDQUFtQixDQUFDLENBQXBCLENBSFUsRUFHYXRDLElBQUksQ0FBQ3NDLGFBQUwsQ0FBbUIsQ0FBQyxDQUFwQixDQUhiLEVBR29DdEMsSUFBSSxDQUFDc0MsYUFBTCxDQUFtQixDQUFuQixDQUhwQyxDQUFsQyxDQUlBdEMsSUFBSSxDQUFDekMsVUFBTCxDQUFnQndGLElBQWhCLENBQXFCRSxNQUFyQixHQUE4QnZCLEdBQUcsQ0FBQ3RGLElBQUosQ0FBUzhHLElBQXZDLENBQ0EsQ0FDRCxDQVpVLEVBQVosRUFjQSxDQXJMTyxFQXNMWCwwSEFDR3RDLFlBdkxRLDBCQXVMTyxDQUNkLElBQUlaLElBQUksR0FBRyxJQUFYLENBQ0FFLEdBQUcsQ0FBQytCLE9BQUosQ0FBWSxFQUNYQyxHQUFHLEVBQUVsQyxJQUFJLENBQUMzRCxTQUFMLEdBQWlCLGtCQURYLEVBRVgrRixNQUFNLEVBQUMsS0FGSSxFQUdYQyxPQUhXLG1CQUdIZCxNQUhHLEVBR0ssQ0FDZixJQUFJRyxHQUFHLEdBQUdILE1BQU0sQ0FBQ25GLElBQWpCLENBQ0EsSUFBSXNGLEdBQUcsQ0FBQ29CLElBQUosS0FBYSxHQUFqQixFQUFzQixDQUNyQjlDLElBQUksQ0FBQ3pDLFVBQUwsQ0FBZ0I0RixHQUFoQixDQUFvQkYsTUFBcEIsQ0FBMkIsQ0FBM0IsRUFBOEI3RyxJQUE5QixHQUFxQ3NGLEdBQUcsQ0FBQ3RGLElBQUosQ0FBU2dILEdBQTlDLENBQ0FwRCxJQUFJLENBQUM1QyxVQUFMLEdBQWtCc0UsR0FBRyxDQUFDdEYsSUFBSixDQUFTaUgsU0FBM0IsQ0FDQXJELElBQUksQ0FBQzNDLFVBQUwsR0FBa0JxRSxHQUFHLENBQUN0RixJQUFKLENBQVNpQixVQUEzQixDQUNBMkMsSUFBSSxDQUFDMUMsU0FBTCxHQUFpQm9FLEdBQUcsQ0FBQ3RGLElBQUosQ0FBU2tCLFNBQTFCLENBQ0EwQyxJQUFJLENBQUM5QyxJQUFMLEdBQVl3RSxHQUFHLENBQUN0RixJQUFKLENBQVNjLElBQXJCLENBQ0E4QyxJQUFJLENBQUM3QyxNQUFMLEdBQWN1RSxHQUFHLENBQUN0RixJQUFKLENBQVNlLE1BQXZCLENBQ0EsQ0FDRCxDQWJVLEVBQVosRUFlQSxDQXhNTyxFQXlNUjJELFFBek1RLHNCQXlNRyxDQUNWLElBQUlkLElBQUksR0FBRyxJQUFYLENBQ0FFLEdBQUcsQ0FBQytCLE9BQUosQ0FBWSxFQUNYO0FBQ0FDLFdBQUcsRUFBRWxDLElBQUksQ0FBQzNELFNBQUwsR0FBaUIsZ0JBRlgsRUFHWEQsSUFBSSxFQUFFLEVBQ0xRLEtBQUssRUFBRW9ELElBQUksQ0FBQ08sU0FEUCxFQUVMNEIsS0FBSyxFQUFFLENBRkYsRUFISyxFQU9YRSxPQVBXLG1CQU9IZCxNQVBHLEVBT0ssQ0FDZixhQUFZQSxNQUFaLG1DQUNBLElBQUlHLEdBQUcsR0FBR0gsTUFBTSxDQUFDbkYsSUFBakIsQ0FDQSxJQUFJc0YsR0FBRyxDQUFDb0IsSUFBSixLQUFhLEdBQWpCLEVBQXNCLENBQ3JCOUMsSUFBSSxDQUFDbEQsU0FBTCxHQUFpQjRFLEdBQUcsQ0FBQ3RGLElBQUosQ0FBU1UsU0FBMUIsQ0FDQWtELElBQUksQ0FBQ2pELFNBQUwsR0FBaUIyRSxHQUFHLENBQUN0RixJQUFKLENBQVNXLFNBQTFCLENBQ0FpRCxJQUFJLENBQUNoRCxTQUFMLEdBQWlCMEUsR0FBRyxDQUFDdEYsSUFBSixDQUFTWSxTQUExQixDQUNBZ0QsSUFBSSxDQUFDL0MsU0FBTCxHQUFpQnlFLEdBQUcsQ0FBQ3RGLElBQUosQ0FBU2EsU0FBMUIsQ0FDQSxDQUxELE1BS08sSUFBSXlFLEdBQUcsQ0FBQ29CLElBQUosS0FBYSxHQUFqQixFQUFzQixDQUU1QixDQUZNLE1BRUEsQ0FFTixDQUNELENBcEJVLEVBQVo7QUFzQkEsS0FqT087QUFrT1JRLFdBbE9RLHFCQWtPRztBQUNWLFdBQUt4RCxTQUFMLEdBQWlCLElBQWpCO0FBQ0EsS0FwT087QUFxT1I7QUFDQXlELGdCQXRPUSwwQkFzT087QUFDZHJELFNBQUcsQ0FBQ3NELGNBQUosQ0FBbUIsUUFBbkIsRUFBNkIsS0FBSy9HLE1BQWxDO0FBQ0F5RCxTQUFHLENBQUNzRCxjQUFKLENBQW1CLFdBQW5CLEVBQWdDLEtBQUs5RyxTQUFyQztBQUNBd0QsU0FBRyxDQUFDc0QsY0FBSixDQUFtQixVQUFuQixFQUE4QixLQUFLN0csUUFBbkM7QUFDQXVELFNBQUcsQ0FBQ3NELGNBQUosQ0FBbUIsV0FBbkIsRUFBK0IsS0FBS2pELFNBQXBDO0FBQ0EsV0FBS0MsTUFBTDtBQUNBLFdBQUtWLFNBQUwsR0FBaUIsS0FBakI7QUFDQSxLQTdPTztBQThPUjtBQUNBMkQsY0EvT1Esd0JBK09LO0FBQ1osV0FBSzNELFNBQUwsR0FBaUIsS0FBakI7QUFDQSxLQWpQTztBQWtQUmUsaUJBbFBRLDJCQWtQUTtBQUNmLFdBQUtyRCxlQUFMLEdBQXFCa0csSUFBSSxDQUFDQyxLQUFMLENBQVdELElBQUksQ0FBQ0UsU0FBTCxDQUFlLEtBQUtyRyxVQUFMLENBQWdCd0YsSUFBL0IsQ0FBWCxDQUFyQjtBQUNBLFdBQUt0RixjQUFMLEdBQW9CaUcsSUFBSSxDQUFDQyxLQUFMLENBQVdELElBQUksQ0FBQ0UsU0FBTCxDQUFlLEtBQUtyRyxVQUFMLENBQWdCNEYsR0FBL0IsQ0FBWCxDQUFwQjtBQUNBLEtBclBPO0FBc1BSVSxZQXRQUSxvQkFzUENDLENBdFBELEVBc1BJO0FBQ1gsbUJBQVksUUFBWixFQUFxQkEsQ0FBckI7QUFDQSxLQXhQTztBQXlQUi9DLFdBelBRLHFCQXlQRTtBQUNULFVBQUlnRCxFQUFFLEdBQUcsSUFBSXZCLElBQUosRUFBVDtBQUNBLFdBQUs3RSxJQUFMLEdBQVlvRyxFQUFFLENBQUNDLFdBQUgsRUFBWjtBQUNBLFdBQUtwRyxLQUFMLEdBQWNtRyxFQUFFLENBQUNwQixRQUFILEtBQWMsQ0FBZixHQUFvQixFQUFwQixHQUF5QixPQUFNb0IsRUFBRSxDQUFDcEIsUUFBSCxLQUFjLENBQXBCLENBQXpCLEdBQW1Eb0IsRUFBRSxDQUFDcEIsUUFBSCxLQUFjLENBQTlFO0FBQ0EsV0FBSzlFLEdBQUwsR0FBV2tHLEVBQUUsQ0FBQ2hELE9BQUgsS0FBZSxFQUFmLEdBQW9CLE1BQUlnRCxFQUFFLENBQUNoRCxPQUFILEVBQXhCLEdBQXVDZ0QsRUFBRSxDQUFDaEQsT0FBSCxFQUFsRDtBQUNBLFdBQUtqRCxLQUFMLEdBQWFpRyxFQUFFLENBQUNFLFFBQUgsS0FBZ0IsRUFBaEIsR0FBcUIsTUFBTUYsRUFBRSxDQUFDRSxRQUFILEVBQTNCLEdBQTJDRixFQUFFLENBQUNFLFFBQUgsRUFBeEQ7QUFDQSxXQUFLbEcsT0FBTCxHQUFlZ0csRUFBRSxDQUFDRyxVQUFILEtBQWtCLEVBQWxCLEdBQXVCLE1BQU1ILEVBQUUsQ0FBQ0csVUFBSCxFQUE3QixHQUErQ0gsRUFBRSxDQUFDRyxVQUFILEVBQTlEO0FBQ0EsV0FBS2xHLE9BQUwsR0FBZStGLEVBQUUsQ0FBQ0ksVUFBSCxLQUFrQixFQUFsQixHQUF1QixNQUFNSixFQUFFLENBQUNJLFVBQUgsRUFBN0IsR0FBK0NKLEVBQUUsQ0FBQ0ksVUFBSCxFQUE5RDtBQUNBLFdBQUtDLEtBQUwsR0FBYUwsRUFBRSxDQUFDTSxNQUFILEVBQWI7QUFDQSxjQUFRLEtBQUtELEtBQWI7QUFDQyxhQUFLLENBQUwsQ0FBUSxLQUFLbkcsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsZ0JBQVUsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FQWDs7QUFTQSxLQTNRTyxFQXpHSyxFIiwiZmlsZSI6Ijk5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcblx0aW1wb3J0IGRlbW9kYXRhIGZyb20gJ0AvbW9ja2RhdGEvZGVtb2RhdGEuanNvbic7XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y29tbW9uVXJsOm51bGwsIC8vIOmAmueUqHVybFxuXHRcdFx0XHRzaG93OiB0cnVlLFxuXHRcdFx0XHRtb2RlQ2xhc3M6ICdmYWRlJyxcblx0XHRcdFx0c3R5bGVzOiB7fSxcblx0XHRcdFx0YmFzZUlQOicnLFxuXHRcdFx0XHRiYXNlTGVkSWQ6JycsXG5cdFx0XHRcdGJhc2VQb3J0OicnLFxuXHRcdFx0XHRjcm5JZDonJyxcblx0XHRcdFx0dmFsdWU6ICcnLFxuXHRcdFx0XHR4RGlzdGFuY2U6IDAsXG5cdFx0XHRcdHlEaXN0YW5jZTowLFxuXHRcdFx0XHR4RHVyYXRpb246MCxcblx0XHRcdFx0eUR1cmF0aW9uOjAsXG5cdFx0XHRcdHVzZWQ6MzE3LFxuXHRcdFx0XHR1c2VkUHI6IDkwLFxuXHRcdFx0XHRzdG9ja0NvdW50OjAsXG5cdFx0XHRcdGVtcHR5Q291bnQ6MCxcblx0XHRcdFx0bm9uZUNvdW50OjAsXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcblx0XHRcdFx0XHRcIkxpbmVcIjoge1xuXHRcdFx0XHRcdFx0XCJjYXRlZ29yaWVzXCI6IFtdLFxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFwiUGllXCI6IHtcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XG5cdFx0XHRcdFx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdFx0XHRcdFx0fV1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRjaGFydHNEYXRhTGluZTE6IHt9LFxuXHRcdFx0XHRjaGFydHNEYXRhUGllMjoge30sXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxuXHRcdFx0XHR5ZWFyOjIwMjIsXG5cdFx0XHRcdG1vbnRoOjQsXG5cdFx0XHRcdGRheToxNCxcblx0XHRcdFx0aG91cnM6MTMsXG5cdFx0XHRcdG1pbnV0ZXM6MzgsXG5cdFx0XHRcdHNlY29uZHM6MTMsXG5cdFx0XHRcdHdlZWs6J+aYn+acn+WbmycsXG5cdFx0XHRcdGFuaTonJyxcblx0XHRcdFx0Ly8gbW92ZTogJ3VwTW92ZSAxLjVzIDE7Jyxcblx0XHRcdFx0bW92ZTpmYWxzZSxcblx0XHRcdFx0dG9wTW92ZTondG9wVXAnLFxuXHRcdFx0XHRmbG9vck1vdmU6JycsXG5cdFx0XHRcdHZlcnNpb246JycsXG5cdFx0XHRcdC8vIG5ld3NwYXBlcjon5ouj5paZ5Ye65bqT77yINDQyNilcXG7mupDlupPkvY3vvJoxMjAwMTAxXFxu55uu5qCH56uZ77yaMTg2XFxuMTEwMTg0Mi0xMDAwMC0yMjA0NzUxODUxN1xcblxcbicsXHRcblx0XHRcdFx0bmV3c3BhcGVyOicnLFxuXHRcdFx0XHRlcnJvclBhcGVyOicnLFxuXHRcdFx0XHR0aXRsZTonJyxcblx0XHRcdFx0c3RhTm86JycsXG5cdFx0XHRcdG1hdG5yOicnLFxuXHRcdFx0XHRtYWtueDonJyxcblx0XHRcdFx0Y291bnQ6JycsXG5cdFx0XHRcdG9yZGVyTm86bnVsbCxcblx0XHRcdFx0ZG9uZU9mVHJheTonJyxcblx0XHRcdFx0dG90YWxPZlRyYXk6JycsXG5cdFx0XHRcdGRvbmVPZlVuaXQ6JycsXG5cdFx0XHRcdHRvdGFsT2ZVbml0OicnLFxuXHRcdFx0XHRlcnJvck1zZzpudWxsLFxuXHRcdFx0XHR3aWR0aDonZnVsbC13aWR0aCcsXG5cdFx0XHRcdGVycm9yU2hvdzonJyxcblx0XHRcdFx0cGFraW5TaG93OicnLFxuXHRcdFx0XHRwYWtpbkd1bjonJyxcblx0XHRcdFx0b3JkZXJTaG93OmZhbHNlLFxuXHRcdFx0XHRzd2lwZXI6J3N3aXBlci1oZXJlJyxcblx0XHRcdFx0YXV0b3BsYXk6dHJ1ZSwgLy8g6Ieq5Yqo5b6q546vXG5cdFx0XHRcdGludGVydmFsOjEwMDAsIC8vIOiwg+eUqOaXtumVv1xuXHRcdFx0XHRkdXJhdGlvbjo4MDAwLCAvLyDnp7vliqjpgJ/luqZcblx0XHRcdFx0bWF0TGlzdDpbXSwgLy8g6K6i5Y2V5YiX6KGoXG5cdFx0XHRcdGVqZWN0U2hvdzogZmFsc2UsXG5cdFx0XHRcdFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0bW91bnRlZCgpIHtcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0Y29uc3QgQmFzZUlQID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlSXAnKTtcblx0XHRcdGNvbnN0IEJhc2VMZWRJZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUxlZElkJyk7XG5cdFx0XHRjb25zdCBCYXNlUG9ydCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZVBvcnQnKTtcblx0XHRcdGNvbnN0IEJhc2VDcm5JZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyk7XG5cdFx0XHRcdHRoYXQuYmFzZUlQID0gQmFzZUlQXG5cdFx0XHRcdHRoYXQuYmFzZUxlZElkID0gQmFzZUxlZElkXG5cdFx0XHRcdHRoYXQuYmFzZVBvcnQgPSBCYXNlUG9ydFxuXHRcdFx0XHR0aGF0LmJhc2VDcm5JZCA9IEJhc2VDcm5JZFxuXHRcdFx0dGhpcy5nZXRVcmwoKVxuXHRcdH0sXG5cdFx0b25SZWFkeSgpIHtcblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0Ly8g6I635b6X5Yid5aeL5pWw5o2uXG5cdFx0XHRcdHRoaXMuaW5pdGxpbmVDaGFydCgpO1xuXHRcdFx0XHR0aGlzLmluaXRQaWVDaGFydCgpO1xuXHRcdFx0XHQvLyDkuLvpobXkv6Hmga9cblx0XHRcdFx0dGhpcy5nZXRTZXJ2ZXJEYXRhKCk7XG5cdFx0XHRcdHRoaXMuZ2V0T3RoZXIoKTtcblx0XHRcdFx0Ly8g5YW25LuW5L+h5oGvXG5cdFx0XHRcdHRoaXMuZ2V0RGF0ZSgpO1xuXHRcdFx0XHR0aGlzLmdldFBha2luKCk7XG5cdFx0XHRcdHRoaXMuZ2V0RXJyb3IoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRZWVkoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRFRUUoKTtcblx0XHRcdFx0dGhpcy5hbmltYXRpb24oKTtcblx0XHRcdH0sMTAwMClcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdC8vIOiOt+WPlnVybFxuXHRcdFx0Z2V0VXJsKCkge1xuXHRcdFx0XHR0aGlzLmNvbW1vblVybCA9IHRoaXMuYmFzZUh0dHAgKyB0aGlzLmJhc2VJUCArICc6JyArdGhpcy5iYXNlUG9ydCArIHRoaXMuYmFzZVVybFxuXHRcdFx0fSxcblx0XHRcdC8vIOiOt+WPlumUmeivr+S/oeaBr1xuXHRcdFx0Z2V0WVlZKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHljcWRhdGEuZGF0YUVFRVxuXHRcdFx0XHQvLyDmtYvor5XnlKgg4oaTXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHQvLyDov5Tlm57nu5PmnpzmnInlgLwg5LiU5YC85LiN562J5LqO56m65YC8IOWwseaYr+aciemUmeivr+S/oeaBr+mcgOimgeWxleekulxuXHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHR0aGF0LmVycm9yTXNnID0gcmVzLmRhdGFcblx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IHRydWVcblx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGF0LmVycm9yUGFwZXIgPSAnJ1xuXHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRpZiAodGhhdC5wYWtpblNob3cpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZSAvLyDpmpDol49cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRnZXRFRUUgKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcblx0XHRcdFx0dmFyIHN0ciA9ICcnXG5cdFx0XHRcdGxldCByZXN1bHQgPSB5Y3FkYXRhLmRhdGFZWVlcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpNcblx0XHRcdFx0bGV0XHRyZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDEpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICfmo4Dmlpnlh7rlupMnXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cblx0XHRcdFx0XHRcdHRoYXQubWF0bnIgPSAn5ZWG5ZOB57yW5Y+377yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWF0bnJcblx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdHRoYXQuY291bnQgPSAn5Ye65bqT5pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcblx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5vcmRlck5vKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2hhbGYtd2lkdGgnXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVHJheSA9ICflt7Llh7rmiZjnm5jmlbA6JyArIHJlcy5kYXRhWzBdLmRvbmVPZlRyYXlcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlVuaXQgPSAn5bey5Ye6566x5pWw77yaJyArIHJlcy5kYXRhWzBdLmRvbmVPZlVuaXRcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlVuaXQgPSAn5oC7566x5pWw77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZVbml0XG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5uZXdzcGFwZXIgPSBuZXdzRGF0YVxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fWVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cblx0XHRcdGdldEVycm9yKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGVkL2Vycm9yXCIsXG5cdFx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdFx0bGVkSWQ6dGhhdC5iYXNlTGVkSWRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0cmVzID0gcmVzdWx0LmRhdGEgXG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvck1zZyA9IHJlcy5kYXRhXG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0Ly8gaWYgKHRoYXQucGFraW5TaG93KSB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHQvLyB9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBcdC8vIHRoYXQubW92ZSA9IHRydWUgLy8g6ZqQ6JePXG5cdFx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGdldFBha2luICgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHRoYXQubWF0TGlzdCA9IFtdIC8vIOa4heepuuadoeeggeWIl+ihqFxuXHRcdFx0XHR2YXIgbmV3c0RhdGEgPSAnJ1xuXHRcdFx0XHR2YXIgc3RyID0gJydcblx0XHRcdFx0bGV0IHJlcyBcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZFwiLFxuXHRcdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRcdGxlZElkOnRoYXQuYmFzZUxlZElkXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuOyAgLy8g5pyJ6ZSZ6K+v5L+h5oGvXG5cdFx0XHRcdFx0XHR9IFxuXHRcdFx0XHRcdFx0aWYocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMykge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHJlcy5kYXRhWzBdLnRpdGxlXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RhTm8gPSAn55uu5qCH56uZOicgKyByZXMuZGF0YVswXS5zdGFOb1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXG5cdFx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdFx0dGhhdC5jb3VudCA9ICflh7rlupPmlbDph4/vvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5jb3VudFxuXHRcdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0ub3JkZXJObykge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSB0cnVlXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC53aWR0aCA9ICdoYWxmLXdpZHRoJ1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSBmYWxzZVxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlRyYXkgPSAn5bey5Ye65omY55uY5pWwOicgKyByZXMuZGF0YVswXS5kb25lT2ZUcmF5XG5cdFx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XG5cdFx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVW5pdCA9ICflt7Llh7rnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0uZG9uZU9mVW5pdFxuXHRcdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZVbml0ID0gJ+aAu+euseaVsO+8micgKyByZXMuZGF0YVswXS50b3RhbE9mVW5pdFxuXHRcdFx0XHRcdFx0XHR0aGF0Lm5ld3NwYXBlciA9IG5ld3NEYXRhXG5cdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IGZhbHNlXG5cdFx0XHRcdFx0XHR9ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IHRydWVcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGFuaW1hdGlvbigpIHtcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5tb3ZlKTtcblx0XHRcdFx0aWYgKHRoaXMubW92ZSkgeyBcblx0XHRcdFx0XHR0aGlzLnRvcE1vdmUgPSAndG9wVXAnXG5cdFx0XHRcdFx0dGhpcy5mbG9vck1vdmUgPSAnZmxvb3JVcCdcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnRvcE1vdmUgPSAndG9wRG93bidcblx0XHRcdFx0XHR0aGlzLmZsb29yTW92ZSA9ICdmbG9vckRvd24nXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRnZXREYXRlRm9ybWF0KHZhbHVlKSB7XG5cdFx0XHRcdHZhciBkYXRlID0gbmV3IERhdGUoKTsvLyDojrflj5blvZPliY3ml7bpl7Rcblx0XHRcdFx0ZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgdmFsdWUpOy8vIOiuvue9ruWkqeaVsCAtMSDlpKlcblx0XHRcdFx0dmFyIG0gPSBkYXRlLmdldE1vbnRoKCkgKyAxXG5cdFx0XHRcdHZhciBkID0gZGF0ZS5nZXREYXRlKClcblx0XHRcdFx0dmFyIG5ld0RhdGUgPSBtICsgJy0nICsgZFxuXHRcdFx0XHRyZXR1cm4gbmV3RGF0ZVxuXHRcdFx0fSxcbi8qKioqKioqKioqKioqKiog5oqY57q/5Zu+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXHRcdFx0aW5pdGxpbmVDaGFydCgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9saW5lL2NoYXJ0c1wiLFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5jYXRlZ29yaWVzID0gW1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTApLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksdGhhdC5nZXREYXRlRm9ybWF0KC04KSxcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMyksdGhhdC5nZXREYXRlRm9ybWF0KC0yKSx0aGF0LmdldERhdGVGb3JtYXQoLTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgwKSxdXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLnNlcmllcyA9IHJlcy5kYXRhLnJvd3Ncblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuLyoqKioqKioqKioqKioqKiDppbzlm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cdFx0XHRpbml0UGllQ2hhcnQoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jL3JlcFwiLFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuUGllLnNlcmllc1swXS5kYXRhID0gcmVzLmRhdGEucGllXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RvY2tDb3VudCA9IHJlcy5kYXRhLnN0b2NrQ3VudFxuXHRcdFx0XHRcdFx0XHR0aGF0LmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQubm9uZUNvdW50ID0gcmVzLmRhdGEubm9uZUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQudXNlZCA9IHJlcy5kYXRhLnVzZWRcblx0XHRcdFx0XHRcdFx0dGhhdC51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Z2V0T3RoZXIoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0Ly8gaHR0cDovLzEwLjEwLjAuMjIyOjkwOTAvamt3Y3MvbW9uaXRvci9sZWQ/bGVkSWQ9MTg2XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcblx0XHRcdFx0XHRkYXRhOiB7XG5cdFx0XHRcdFx0XHRjcm5JZDogdGhhdC5iYXNlQ3JuSWQsIFxuXHRcdFx0XHRcdFx0bGVkSWQ6IDEsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdFx0dGhhdC54RGlzdGFuY2UgPSByZXMuZGF0YS54RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC55RGlzdGFuY2UgPSByZXMuZGF0YS55RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC54RHVyYXRpb24gPSByZXMuZGF0YS54RHVyYXRpb25cblx0XHRcdFx0XHRcdFx0dGhhdC55RHVyYXRpb24gPSByZXMuZGF0YS55RHVyYXRpb25cblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzLmNvZGUgPT09IDQwMykge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRlamVjdGVkICgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0Ly8g5by55Ye65bGC56Gu6K6kXG5cdFx0XHRlamVjdENvbmZpcm0oKSB7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUlwJywgdGhpcy5iYXNlSVApO1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlUG9ydCcsdGhpcy5iYXNlUG9ydCk7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyx0aGlzLmJhc2VDcm5JZCk7XG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdC8vIOW8ueWHuuWxguWPlua2iFxuXHRcdFx0ZWplY3RDbG9zZSgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdGdldFNlcnZlckRhdGEoKSB7XG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YUxpbmUxPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLkxpbmUpKVxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLlBpZSkpXG5cdFx0XHR9LFxuXHRcdFx0Y29tcGxldGUoZSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcIua4suafk+WujOaIkOS6i+S7tlwiLGUpO1xuXHRcdFx0fSxcblx0XHRcdGdldERhdGUoKSB7XG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdHRoaXMueWVhciA9IGR0LmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRcdHRoaXMubW9udGggPSAoZHQuZ2V0TW9udGgoKSsxKSA8IDEwID8gJzAnKyAoZHQuZ2V0TW9udGgoKSsxKSA6IChkdC5nZXRNb250aCgpKzEpO1xuXHRcdFx0XHR0aGlzLmRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcblx0XHRcdFx0dGhpcy5ob3VycyA9IGR0LmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGR0LmdldEhvdXJzKCkgOiBkdC5nZXRIb3VycygpO1xuXHRcdFx0XHR0aGlzLm1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyArIGR0LmdldE1pbnV0ZXMoKSA6IGR0LmdldE1pbnV0ZXMoKTtcblx0XHRcdFx0dGhpcy5zZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxuXHRcdFx0XHR0aGlzLndlZWtzID0gZHQuZ2V0RGF5KCk7IFxuXHRcdFx0XHRzd2l0Y2ggKHRoaXMud2Vla3MpIHtcblx0XHRcdFx0XHRjYXNlIDA6IHRoaXMud2VlayA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgMTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuIBcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAyOiB0aGlzLndlZWsgPSBcIuaYn+acn+S6jFwiOyBicmVhaztcblx0XHRcdFx0XHRjYXNlIDM6IHRoaXMud2VlayA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgNDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lm5tcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSA1OiB0aGlzLndlZWsgPSBcIuaYn+acn+S6lFwiOyBicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0IDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lha1cIjtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9XG5cdH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///99\n"); /***/ }), /* 100 */ /*!*****************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/data.json ***! \*****************************************************************/ /*! exports provided: dataYYY, dataEEE, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"dataYYY\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"title\\\":\\\"全板出库\\\",\\\"workNo\\\":8046,\\\"staNo\\\":200,\\\"sourceStaNo\\\":null,\\\"locNo\\\":null,\\\"sourceLocNo\\\":\\\"1500502\\\",\\\"matDtos\\\":[{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40}],\\\"emptyMk\\\":false,\\\"ioType\\\":101}]}},\\\"dataEEE\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":\\\"\\\"}}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDAuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///100\n"); /***/ }), /* 101 */ /*!******************************************************************!*\ !*** D:/Workspace/zy/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///101\n"); /***/ }), /* 102 */ /*!*******************************************************************************!*\ !*** D:/Workspace/zy/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 */ 103);\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 */ 105);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkk7QUFDM0k7QUFDc0U7QUFDTDs7O0FBR2pFO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHdGQUFNO0FBQ1IsRUFBRSx5R0FBTTtBQUNSLEVBQUUsa0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZDRmNzY0NCZzY29wZWQ9dHJ1ZSZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjdkNGY3NjQ0XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L21vbml0b3IudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///102\n"); /***/ }), /* 103 */ /*!*************************************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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 */ 104); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_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"]; }); /***/ }), /* 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--10-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/zy/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 /***/ }), /* 105 */ /*!*******************************************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/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 */ 106);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThyQixDQUFnQixnc0JBQUcsRUFBQyIsImZpbGUiOiIxMDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///105\n"); /***/ }), /* 106 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: '',\n data: function data() {\n return {\n autoplay: true,\n interval: 1000,\n duration: 1000,\n list: [\n '请点击发行菜单进行发布',\n '1',\n '体积较大;若要正式发布',\n '2',\n '运行模式下不压缩代码且含有sourcemap',\n '3',\n '检查是否启动多个微信开发者工具,如果是则关闭所有打开的微信开发者工具,',\n '4',\n '然后再重新运行',\n '5',\n '如果出现微信开发者工具启动后白屏的问题',\n '6',\n '或者关闭微信开发者工具,然后再从HBuilderX中启动指定页面',\n '7',\n '可以通过微信开发者工具切换pages.json中condition配置的页面',\n '8',\n '中修改文件并保存,会自动刷新微信模拟器',\n '9',\n '微信开发者工具已启动,在HBuilderX',\n '10'] };\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJhdXRvcGxheSIsImludGVydmFsIiwiZHVyYXRpb24iLCJsaXN0Il0sIm1hcHBpbmdzIjoid0ZBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtCO0FBQ1ZBLE1BQUksRUFBQyxFQURLO0FBRVZDLE1BRlUsa0JBRUo7QUFDRixXQUFNO0FBQ0ZDLGNBQVEsRUFBQyxJQURQO0FBRUZDLGNBQVEsRUFBQyxJQUZQO0FBR0ZDLGNBQVEsRUFBQyxJQUhQO0FBSUZDLFVBQUksRUFBQztBQUNELG1CQURDO0FBRWhCLFNBRmdCO0FBR0QsbUJBSEM7QUFJaEIsU0FKZ0I7QUFLRCw4QkFMQztBQU1oQixTQU5nQjtBQU9ELDJDQVBDO0FBUWhCLFNBUmdCO0FBU0QsZUFUQztBQVVoQixTQVZnQjtBQVdELDJCQVhDO0FBWWhCLFNBWmdCO0FBYUQsd0NBYkM7QUFjaEIsU0FkZ0I7QUFlRCw4Q0FmQztBQWdCaEIsU0FoQmdCO0FBaUJELDJCQWpCQztBQWtCaEIsU0FsQmdCO0FBbUJELDZCQW5CQztBQW9CaEIsVUFwQmdCLENBSkgsRUFBTjs7O0FBMkJILEdBOUJTLEUiLCJmaWxlIjoiMTA2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cblxuICAgIGV4cG9ydCBkZWZhdWx0e1xuICAgICAgICBuYW1lOicnLFxuICAgICAgICBkYXRhKCl7XG4gICAgICAgICAgICByZXR1cm57XG4gICAgICAgICAgICAgICAgYXV0b3BsYXk6dHJ1ZSxcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDoxMDAwLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOjEwMDAsXG4gICAgICAgICAgICAgICAgbGlzdDpbXG4gICAgICAgICAgICAgICAgICAgICfor7fngrnlh7vlj5HooYzoj5zljZXov5vooYzlj5HluIMnLFxuXHRcdFx0XHRcdCcxJyxcbiAgICAgICAgICAgICAgICAgICAgJ+S9k+enr+i+g+Wkp++8m+iLpeimgeato+W8j+WPkeW4gycsXG5cdFx0XHRcdFx0JzInLFxuICAgICAgICAgICAgICAgICAgICAn6L+Q6KGM5qih5byP5LiL5LiN5Y6L57yp5Luj56CB5LiU5ZCr5pyJc291cmNlbWFwJyxcblx0XHRcdFx0XHQnMycsXG4gICAgICAgICAgICAgICAgICAgICfmo4Dmn6XmmK/lkKblkK/liqjlpJrkuKrlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIzlpoLmnpzmmK/liJnlhbPpl63miYDmnInmiZPlvIDnmoTlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIwnLFxuXHRcdFx0XHRcdCc0JyxcbiAgICAgICAgICAgICAgICAgICAgJ+eEtuWQjuWGjemHjeaWsOi/kOihjCcsXG5cdFx0XHRcdFx0JzUnLFxuICAgICAgICAgICAgICAgICAgICAn5aaC5p6c5Ye6546w5b6u5L+h5byA5Y+R6ICF5bel5YW35ZCv5Yqo5ZCO55m95bGP55qE6Zeu6aKYJyxcblx0XHRcdFx0XHQnNicsXG4gICAgICAgICAgICAgICAgICAgICfmiJbogIXlhbPpl63lvq7kv6HlvIDlj5HogIXlt6XlhbfvvIznhLblkI7lho3ku45IQnVpbGRlcljkuK3lkK/liqjmjIflrprpobXpnaInLFxuXHRcdFx0XHRcdCc3JyxcbiAgICAgICAgICAgICAgICAgICAgJ+WPr+S7pemAmui/h+W+ruS/oeW8gOWPkeiAheW3peWFt+WIh+aNonBhZ2VzLmpzb27kuK1jb25kaXRpb27phY3nva7nmoTpobXpnaInLFxuXHRcdFx0XHRcdCc4JyxcbiAgICAgICAgICAgICAgICAgICAgJ+S4reS/ruaUueaWh+S7tuW5tuS/neWtmO+8jOS8muiHquWKqOWIt+aWsOW+ruS/oeaooeaLn+WZqCcsXG5cdFx0XHRcdFx0JzknLFxuICAgICAgICAgICAgICAgICAgICAn5b6u5L+h5byA5Y+R6ICF5bel5YW35bey5ZCv5Yqo77yM5ZyoSEJ1aWxkZXJYJyxcblx0XHRcdFx0XHQnMTAnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///106\n"); /***/ }), /* 107 */ /*!***************************************************!*\ !*** D:/Workspace/zy/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& */ 108);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (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_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDaU07QUFDak0sZ0JBQWdCLDJNQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjEwNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50c1xudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwiQXBwLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///107\n"); /***/ }), /* 108 */ /*!****************************************************************************!*\ !*** D:/Workspace/zy/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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../APP/HBuilderX.3.4.18.20220630/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& */ 109);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXVwQixDQUFnQixpckJBQUcsRUFBQyIsImZpbGUiOiIxMDguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///108\n"); /***/ }), /* 109 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-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/zy/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__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _default =\n{\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 } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6IjtBQUNlO0FBQ2RBLFVBQVEsRUFBRSxvQkFBVztBQUNwQixpQkFBWSxZQUFaO0FBQ0EsR0FIYTtBQUlkQyxRQUFNLEVBQUUsa0JBQVc7QUFDbEIsaUJBQVksVUFBWjtBQUNBLEdBTmE7QUFPZEMsUUFBTSxFQUFFLGtCQUFXO0FBQ2xCLGlCQUFZLFVBQVo7QUFDQSxHQVRhLEUiLCJmaWxlIjoiMTA5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cdG9uTGF1bmNoOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIExhdW5jaCcpXG5cdH0sXG5cdG9uU2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///109\n"); /***/ }) ],[[0,"app-config"]]]);