diff --git a/pages.json b/pages.json index 6be4dc3..f96cb8d 100644 --- a/pages.json +++ b/pages.json @@ -97,6 +97,12 @@ "style": { "navigationStyle": "custom" } + }, + { + "path": "pages/common/map/index", + "style": { + "navigationBarTitleText": "地图" + } } ], diff --git a/pages/6170/operationVideo/index.vue b/pages/6170/operationVideo/index.vue deleted file mode 100644 index 530446e..0000000 --- a/pages/6170/operationVideo/index.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pages/common/index/index.vue b/pages/common/index/index.vue index 7912128..34d72b8 100644 --- a/pages/common/index/index.vue +++ b/pages/common/index/index.vue @@ -16,7 +16,7 @@ 报警 - 位置 + 位置 发送信息 @@ -356,6 +356,12 @@ url: '/pages/common/send/index' }) }, + // 位置 + location(){ + uni.navigateTo({ + url:'/pages/common/map/index' + }) + }, handleFile(item) { console.log(item, 'item'); // communicationMode 0是4G 1是蓝牙 @@ -374,7 +380,7 @@ this.page = 1; this.finished = false; this.getData(); // 重新加载第一页数据 - } + }, }, onShow() { this.getTab() diff --git a/pages/common/map/index.vue b/pages/common/map/index.vue new file mode 100644 index 0000000..321545b --- /dev/null +++ b/pages/common/map/index.vue @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/app-config-service.js b/unpackage/dist/dev/app-plus/app-config-service.js index 2249485..82dfa68 100644 --- a/unpackage/dist/dev/app-plus/app-config-service.js +++ b/unpackage/dist/dev/app-plus/app-config-service.js @@ -1,8 +1,8 @@ var isReady=false;var onReadyCallbacks=[]; var isServiceReady=false;var onServiceReadyCallbacks=[]; -var __uniConfig = {"pages":["pages/common/login/index","pages/common/index/index","pages/common/user/index","pages/common/scan/scan","pages/common/qrcode/qrcode","pages/common/send/index","pages/common/userAgreement/index","pages/common/privacyAgreement/index","pages/common/aboutUs/index","pages/6170/deviceControl/index","pages/common/operationVideo/index","pages/common/addvideo/index","pages/common/operatingInstruct/index","pages/common/productDes/index","pages/6155/index","pages/6155/bluetooth/bluetooth"],"window":{"navigationBarTextStyle":"white","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#121212","backgroundColor":"#121212"},"tabBar":{"color":"#fff","selectedColor":"#BBE600","backgroundColor":"#202020","list":[{"pagePath":"pages/common/index/index","text":"我的设备","iconPath":"/static/tabs/device.png","selectedIconPath":"/static/tabs/device-HL.png"},{"pagePath":"pages/common/user/index","text":"我的","iconPath":"/static/tabs/my.png","selectedIconPath":"/static/tabs/my-HL.png"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"JingQuan","compilerVersion":"4.64","entryPagePath":"pages/common/login/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}}; -var __uniRoutes = [{"path":"/pages/common/login/index","meta":{"isQuit":true},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/user/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"我的"}},{"path":"/pages/common/scan/scan","meta":{},"window":{"navigationBarTitleText":"扫描"}},{"path":"/pages/common/qrcode/qrcode","meta":{},"window":{"navigationBarTitleText":"扫描到的设备"}},{"path":"/pages/common/send/index","meta":{},"window":{"navigationBarTitleText":"发送信息"}},{"path":"/pages/common/userAgreement/index","meta":{},"window":{"navigationBarTitleText":"用户协议"}},{"path":"/pages/common/privacyAgreement/index","meta":{},"window":{"navigationBarTitleText":"隐私协议"}},{"path":"/pages/common/aboutUs/index","meta":{},"window":{"navigationBarTitleText":"关于我们"}},{"path":"/pages/6170/deviceControl/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/operationVideo/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/addvideo/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/operatingInstruct/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/productDes/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/6155/index","meta":{},"window":{"navigationBarTitleText":"6155"}},{"path":"/pages/6155/bluetooth/bluetooth","meta":{},"window":{"navigationStyle":"custom"}}]; +var __uniConfig = {"pages":["pages/common/login/index","pages/common/index/index","pages/common/user/index","pages/common/scan/scan","pages/common/qrcode/qrcode","pages/common/send/index","pages/common/userAgreement/index","pages/common/privacyAgreement/index","pages/common/aboutUs/index","pages/6170/deviceControl/index","pages/common/operationVideo/index","pages/common/addvideo/index","pages/common/operatingInstruct/index","pages/common/productDes/index","pages/6155/index","pages/6155/bluetooth/bluetooth","pages/common/map/index"],"window":{"navigationBarTextStyle":"white","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#121212","backgroundColor":"#121212"},"tabBar":{"color":"#fff","selectedColor":"#BBE600","backgroundColor":"#202020","list":[{"pagePath":"pages/common/index/index","text":"我的设备","iconPath":"/static/tabs/device.png","selectedIconPath":"/static/tabs/device-HL.png"},{"pagePath":"pages/common/user/index","text":"我的","iconPath":"/static/tabs/my.png","selectedIconPath":"/static/tabs/my-HL.png"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"JingQuan","compilerVersion":"4.64","entryPagePath":"pages/common/login/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}}; +var __uniRoutes = [{"path":"/pages/common/login/index","meta":{"isQuit":true},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/user/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"我的"}},{"path":"/pages/common/scan/scan","meta":{},"window":{"navigationBarTitleText":"扫描"}},{"path":"/pages/common/qrcode/qrcode","meta":{},"window":{"navigationBarTitleText":"扫描到的设备"}},{"path":"/pages/common/send/index","meta":{},"window":{"navigationBarTitleText":"发送信息"}},{"path":"/pages/common/userAgreement/index","meta":{},"window":{"navigationBarTitleText":"用户协议"}},{"path":"/pages/common/privacyAgreement/index","meta":{},"window":{"navigationBarTitleText":"隐私协议"}},{"path":"/pages/common/aboutUs/index","meta":{},"window":{"navigationBarTitleText":"关于我们"}},{"path":"/pages/6170/deviceControl/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/operationVideo/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/addvideo/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/operatingInstruct/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/productDes/index","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/6155/index","meta":{},"window":{"navigationBarTitleText":"6155"}},{"path":"/pages/6155/bluetooth/bluetooth","meta":{},"window":{"navigationStyle":"custom"}},{"path":"/pages/common/map/index","meta":{},"window":{"navigationBarTitleText":"地图"}}]; __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}}); diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index e306e51..adae0ae 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -7,7 +7,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n__webpack_require__(/*! uni-pages */ 6);\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 184));\nvar _vkUviewUi = _interopRequireDefault(__webpack_require__(/*! vk-uview-ui */ 187));\nvar _BLETools = _interopRequireDefault(__webpack_require__(/*! @/store/BLETools.js */ 214));\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 124));\nvar _store = _interopRequireDefault(__webpack_require__(/*! ./store/store */ 215));\n__webpack_require__(/*! ./uni.promisify.adaptor */ 217);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.config.productionTip = false;\n_vue.default.prototype.$bleTool = _BLETools.default;\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({\n store: _store.default\n}, _App.default));\n_vue.default.use(_vkUviewUi.default);\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiJGJsZVRvb2wiLCJibGVUb29sIiwiQXBwIiwibXBUeXBlIiwiYXBwIiwic3RvcmUiLCJ1c2UiLCJ1VmlldyIsIiRtb3VudCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQW1CO0FBR25CO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFBZ0M7QUFBQTtBQUNoQ0EsWUFBRyxDQUFDQyxNQUFNLENBQUNDLGFBQWEsR0FBRyxLQUFLO0FBQ2hDRixZQUFHLENBQUNHLFNBQVMsQ0FBQ0MsUUFBUSxHQUFHQyxpQkFBTztBQUNoQ0MsWUFBRyxDQUFDQyxNQUFNLEdBQUcsS0FBSztBQUNsQixJQUFNQyxHQUFHLEdBQUcsSUFBSVIsWUFBRztFQUNsQlMsS0FBSyxFQUFMQTtBQUFLLEdBQ0ZILFlBQUcsRUFDTDtBQUNGTixZQUFHLENBQUNVLEdBQUcsQ0FBQ0Msa0JBQUssQ0FBQztBQUNkSCxHQUFHLENBQUNJLE1BQU0sRUFBRSIsImZpbGUiOiIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd1bmktcGFnZXMnO2ltcG9ydCBBcHAgZnJvbSAnLi9BcHAnXHJcblxyXG4vLyDlvJXlhaUgdVZpZXcgVUlcclxuaW1wb3J0IHVWaWV3IGZyb20gJ3ZrLXV2aWV3LXVpJztcclxuaW1wb3J0IGJsZVRvb2wgZnJvbSAnQC9zdG9yZS9CTEVUb29scy5qcyc7XHJcblxyXG5cclxuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXHJcbmltcG9ydCBzdG9yZSBmcm9tICcuL3N0b3JlL3N0b3JlJztcclxuaW1wb3J0ICcuL3VuaS5wcm9taXNpZnkuYWRhcHRvcidcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuVnVlLnByb3RvdHlwZS4kYmxlVG9vbCA9IGJsZVRvb2w7XHJcbkFwcC5tcFR5cGUgPSAnYXBwJ1xyXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcclxuXHRzdG9yZSxcclxuXHQuLi5BcHBcclxufSlcclxuVnVlLnVzZSh1VmlldylcclxuYXBwLiRtb3VudCgpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n__webpack_require__(/*! uni-pages */ 6);\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 189));\nvar _vkUviewUi = _interopRequireDefault(__webpack_require__(/*! vk-uview-ui */ 192));\nvar _BLETools = _interopRequireDefault(__webpack_require__(/*! @/store/BLETools.js */ 219));\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 124));\nvar _store = _interopRequireDefault(__webpack_require__(/*! ./store/store */ 220));\n__webpack_require__(/*! ./uni.promisify.adaptor */ 222);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.config.productionTip = false;\n_vue.default.prototype.$bleTool = _BLETools.default;\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({\n store: _store.default\n}, _App.default));\n_vue.default.use(_vkUviewUi.default);\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiJGJsZVRvb2wiLCJibGVUb29sIiwiQXBwIiwibXBUeXBlIiwiYXBwIiwic3RvcmUiLCJ1c2UiLCJ1VmlldyIsIiRtb3VudCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQW1CO0FBR25CO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFBZ0M7QUFBQTtBQUNoQ0EsWUFBRyxDQUFDQyxNQUFNLENBQUNDLGFBQWEsR0FBRyxLQUFLO0FBQ2hDRixZQUFHLENBQUNHLFNBQVMsQ0FBQ0MsUUFBUSxHQUFHQyxpQkFBTztBQUNoQ0MsWUFBRyxDQUFDQyxNQUFNLEdBQUcsS0FBSztBQUNsQixJQUFNQyxHQUFHLEdBQUcsSUFBSVIsWUFBRztFQUNsQlMsS0FBSyxFQUFMQTtBQUFLLEdBQ0ZILFlBQUcsRUFDTDtBQUNGTixZQUFHLENBQUNVLEdBQUcsQ0FBQ0Msa0JBQUssQ0FBQztBQUNkSCxHQUFHLENBQUNJLE1BQU0sRUFBRSIsImZpbGUiOiIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd1bmktcGFnZXMnO2ltcG9ydCBBcHAgZnJvbSAnLi9BcHAnXHJcblxyXG4vLyDlvJXlhaUgdVZpZXcgVUlcclxuaW1wb3J0IHVWaWV3IGZyb20gJ3ZrLXV2aWV3LXVpJztcclxuaW1wb3J0IGJsZVRvb2wgZnJvbSAnQC9zdG9yZS9CTEVUb29scy5qcyc7XHJcblxyXG5cclxuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXHJcbmltcG9ydCBzdG9yZSBmcm9tICcuL3N0b3JlL3N0b3JlJztcclxuaW1wb3J0ICcuL3VuaS5wcm9taXNpZnkuYWRhcHRvcidcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuVnVlLnByb3RvdHlwZS4kYmxlVG9vbCA9IGJsZVRvb2w7XHJcbkFwcC5tcFR5cGUgPSAnYXBwJ1xyXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcclxuXHRzdG9yZSxcclxuXHQuLi5BcHBcclxufSlcclxuVnVlLnVzZSh1VmlldylcclxuYXBwLiRtb3VudCgpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n"); /***/ }), /* 1 */ @@ -193,6 +193,9 @@ __definePage('pages/6155/index', function () { __definePage('pages/6155/bluetooth/bluetooth', function () { return Vue.extend(__webpack_require__(/*! pages/6155/bluetooth/bluetooth.vue?mpType=page */ 179).default); }); +__definePage('pages/common/map/index', function () { + return Vue.extend(__webpack_require__(/*! pages/common/map/index.vue?mpType=page */ 184).default); +}); /***/ }), /* 7 */ @@ -1270,7 +1273,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getToken = exports.default = exports.clientid = exports.baseURL = void 0;\nvar BASE_URL = 'http://192.168.2.34:8000';\nvar request = function request(options) {\n return new Promise(function (resolve, reject) {\n // 处理GET请求参数\n var url = BASE_URL + options.url;\n if (options.method === 'GET' && options.data) {\n // 使用qs序列化参数\n var params = Object.keys(options.data).map(function (key) {\n return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(options.data[key]));\n }).join('&');\n url += \"?\".concat(params);\n }\n var config = {\n url: url,\n method: options.method || 'GET',\n data: options.method !== 'GET' ? options.data : {},\n header: options.header || {},\n timeout: 10000,\n success: function success(res) {\n resolve(res.data);\n },\n fail: function fail(err) {\n reject(err);\n }\n };\n if (!options.url.includes('/login')) {\n var token = uni.getStorageSync('token');\n var _clientid = uni.getStorageSync('clientID');\n if (token) {\n config.header['Authorization'] = 'Bearer ' + token;\n config.header['clientid'] = _clientid;\n }\n }\n if (!config.header['Content-Type']) {\n config.header['Content-Type'] = 'application/json';\n }\n uni.request(config);\n });\n};\nvar _default = request; // 导出基础URL以便其他地方使用\nexports.default = _default;\nvar baseURL = BASE_URL;\nexports.baseURL = baseURL;\nvar getToken = function getToken() {\n return uni.getStorageSync('token');\n}; // 获取token的方法\nexports.getToken = getToken;\nvar clientid = function clientid() {\n return uni.getStorageSync('clientID');\n};\nexports.clientid = clientid;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvcmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJCQVNFX1VSTCIsInJlcXVlc3QiLCJvcHRpb25zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ1cmwiLCJtZXRob2QiLCJkYXRhIiwicGFyYW1zIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJjb25maWciLCJoZWFkZXIiLCJ0aW1lb3V0Iiwic3VjY2VzcyIsInJlcyIsImZhaWwiLCJlcnIiLCJpbmNsdWRlcyIsInRva2VuIiwidW5pIiwiZ2V0U3RvcmFnZVN5bmMiLCJjbGllbnRpZCIsImJhc2VVUkwiLCJnZXRUb2tlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsUUFBUSxHQUFHLDBCQUEwQjtBQUMzQyxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBTyxDQUFJQyxPQUFPLEVBQUs7RUFDNUIsT0FBTyxJQUFJQyxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdkM7SUFDQSxJQUFJQyxHQUFHLEdBQUdOLFFBQVEsR0FBR0UsT0FBTyxDQUFDSSxHQUFHO0lBQ2hDLElBQUlKLE9BQU8sQ0FBQ0ssTUFBTSxLQUFLLEtBQUssSUFBSUwsT0FBTyxDQUFDTSxJQUFJLEVBQUU7TUFDN0M7TUFDQSxJQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxPQUFPLENBQUNNLElBQUksQ0FBQyxDQUN0Q0ksR0FBRyxDQUFDLFVBQUFDLEdBQUc7UUFBQSxpQkFBT0Msa0JBQWtCLENBQUNELEdBQUcsQ0FBQyxjQUFJQyxrQkFBa0IsQ0FBQ1osT0FBTyxDQUFDTSxJQUFJLENBQUNLLEdBQUcsQ0FBQyxDQUFDO01BQUEsQ0FBRSxDQUFDLENBQ2pGRSxJQUFJLENBQUMsR0FBRyxDQUFDO01BQ1hULEdBQUcsZUFBUUcsTUFBTSxDQUFFO0lBQ3BCO0lBRUEsSUFBTU8sTUFBTSxHQUFHO01BQ2RWLEdBQUcsRUFBRUEsR0FBRztNQUNSQyxNQUFNLEVBQUVMLE9BQU8sQ0FBQ0ssTUFBTSxJQUFJLEtBQUs7TUFDL0JDLElBQUksRUFBRU4sT0FBTyxDQUFDSyxNQUFNLEtBQUssS0FBSyxHQUFHTCxPQUFPLENBQUNNLElBQUksR0FBRyxDQUFDLENBQUM7TUFDbERTLE1BQU0sRUFBRWYsT0FBTyxDQUFDZSxNQUFNLElBQUksQ0FBQyxDQUFDO01BQzVCQyxPQUFPLEVBQUUsS0FBSztNQUNkQyxPQUFPLEVBQUUsaUJBQUNDLEdBQUcsRUFBSztRQUNqQmhCLE9BQU8sQ0FBQ2dCLEdBQUcsQ0FBQ1osSUFBSSxDQUFDO01BQ2xCLENBQUM7TUFDRGEsSUFBSSxFQUFFLGNBQUNDLEdBQUcsRUFBSztRQUNkakIsTUFBTSxDQUFDaUIsR0FBRyxDQUFDO01BQ1o7SUFDRCxDQUFDO0lBRUQsSUFBSSxDQUFDcEIsT0FBTyxDQUFDSSxHQUFHLENBQUNpQixRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7TUFDcEMsSUFBTUMsS0FBSyxHQUFHQyxHQUFHLENBQUNDLGNBQWMsQ0FBQyxPQUFPLENBQUM7TUFDekMsSUFBTUMsU0FBUSxHQUFHRixHQUFHLENBQUNDLGNBQWMsQ0FBQyxVQUFVLENBQUM7TUFDL0MsSUFBSUYsS0FBSyxFQUFFO1FBQ1ZSLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFNBQVMsR0FBR08sS0FBSztRQUNsRFIsTUFBTSxDQUFDQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUdVLFNBQVE7TUFDckM7SUFDRDtJQUNBLElBQUksQ0FBQ1gsTUFBTSxDQUFDQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUU7TUFDbkNELE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGtCQUFrQjtJQUNuRDtJQUNBUSxHQUFHLENBQUN4QixPQUFPLENBQUNlLE1BQU0sQ0FBQztFQUNwQixDQUFDLENBQUM7QUFDSCxDQUFDO0FBQUMsZUFFYWYsT0FBTyxFQUN0QjtBQUFBO0FBQ08sSUFBTTJCLE9BQU8sR0FBRzVCLFFBQVE7QUFBQTtBQUN4QixJQUFNNkIsUUFBUSxHQUFHLFNBQVhBLFFBQVE7RUFBQSxPQUFTSixHQUFHLENBQUNDLGNBQWMsQ0FBQyxPQUFPLENBQUM7QUFBQSxHQUFDO0FBQUE7QUFDbkQsSUFBTUMsUUFBUSxHQUFFLFNBQVZBLFFBQVE7RUFBQSxPQUFRRixHQUFHLENBQUNDLGNBQWMsQ0FBQyxVQUFVLENBQUM7QUFBQTtBQUFDIiwiZmlsZSI6IjI0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQkFTRV9VUkwgPSAnaHR0cDovLzE5Mi4xNjguMi4zNDo4MDAwJztcclxuY29uc3QgcmVxdWVzdCA9IChvcHRpb25zKSA9PiB7XHJcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdC8vIOWkhOeQhkdFVOivt+axguWPguaVsFxyXG5cdFx0bGV0IHVybCA9IEJBU0VfVVJMICsgb3B0aW9ucy51cmw7XHJcblx0XHRpZiAob3B0aW9ucy5tZXRob2QgPT09ICdHRVQnICYmIG9wdGlvbnMuZGF0YSkge1xyXG5cdFx0XHQvLyDkvb/nlKhxc+W6j+WIl+WMluWPguaVsFxyXG5cdFx0XHRjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhvcHRpb25zLmRhdGEpXHJcblx0XHRcdFx0Lm1hcChrZXkgPT4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuZGF0YVtrZXldKX1gKVxyXG5cdFx0XHRcdC5qb2luKCcmJyk7XHJcblx0XHRcdHVybCArPSBgPyR7cGFyYW1zfWA7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnID0ge1xyXG5cdFx0XHR1cmw6IHVybCxcclxuXHRcdFx0bWV0aG9kOiBvcHRpb25zLm1ldGhvZCB8fCAnR0VUJyxcclxuXHRcdFx0ZGF0YTogb3B0aW9ucy5tZXRob2QgIT09ICdHRVQnID8gb3B0aW9ucy5kYXRhIDoge30sXHJcblx0XHRcdGhlYWRlcjogb3B0aW9ucy5oZWFkZXIgfHwge30sXHJcblx0XHRcdHRpbWVvdXQ6IDEwMDAwLFxyXG5cdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0cmVzb2x2ZShyZXMuZGF0YSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIW9wdGlvbnMudXJsLmluY2x1ZGVzKCcvbG9naW4nKSkge1xyXG5cdFx0XHRjb25zdCB0b2tlbiA9IHVuaS5nZXRTdG9yYWdlU3luYygndG9rZW4nKTtcclxuXHRcdFx0Y29uc3QgY2xpZW50aWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2NsaWVudElEJyk7XHJcblx0XHRcdGlmICh0b2tlbikge1xyXG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ0F1dGhvcml6YXRpb24nXSA9ICdCZWFyZXIgJyArIHRva2VuO1xyXG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ2NsaWVudGlkJ10gPSBjbGllbnRpZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKCFjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSkge1xyXG5cdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcclxuXHRcdH1cclxuXHRcdHVuaS5yZXF1ZXN0KGNvbmZpZyk7XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCByZXF1ZXN0O1xyXG4vLyDlr7zlh7rln7rnoYBVUkzku6Xkvr/lhbbku5blnLDmlrnkvb/nlKhcclxuZXhwb3J0IGNvbnN0IGJhc2VVUkwgPSBCQVNFX1VSTFxyXG5leHBvcnQgY29uc3QgZ2V0VG9rZW4gPSAoKSA9PiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3Rva2VuJykgLy8g6I635Y+WdG9rZW7nmoTmlrnms5VcclxuZXhwb3J0IGNvbnN0IGNsaWVudGlkID0oKSA9PiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2NsaWVudElEJyk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///24\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getToken = exports.default = exports.clientid = exports.baseURL = void 0;\nvar BASE_URL = 'http://192.168.2.23:8000';\nvar request = function request(options) {\n return new Promise(function (resolve, reject) {\n // 处理GET请求参数\n var url = BASE_URL + options.url;\n if (options.method === 'GET' && options.data) {\n // 使用qs序列化参数\n var params = Object.keys(options.data).map(function (key) {\n return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(options.data[key]));\n }).join('&');\n url += \"?\".concat(params);\n }\n var config = {\n url: url,\n method: options.method || 'GET',\n data: options.method !== 'GET' ? options.data : {},\n header: options.header || {},\n timeout: 10000,\n success: function success(res) {\n resolve(res.data);\n },\n fail: function fail(err) {\n reject(err);\n }\n };\n if (!options.url.includes('/login')) {\n var token = uni.getStorageSync('token');\n var _clientid = uni.getStorageSync('clientID');\n if (token) {\n config.header['Authorization'] = 'Bearer ' + token;\n config.header['clientid'] = _clientid;\n }\n }\n if (!config.header['Content-Type']) {\n config.header['Content-Type'] = 'application/json';\n }\n uni.request(config);\n });\n};\nvar _default = request; // 导出基础URL以便其他地方使用\nexports.default = _default;\nvar baseURL = BASE_URL;\nexports.baseURL = baseURL;\nvar getToken = function getToken() {\n return uni.getStorageSync('token');\n}; // 获取token的方法\nexports.getToken = getToken;\nvar clientid = function clientid() {\n return uni.getStorageSync('clientID');\n};\nexports.clientid = clientid;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvcmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJCQVNFX1VSTCIsInJlcXVlc3QiLCJvcHRpb25zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ1cmwiLCJtZXRob2QiLCJkYXRhIiwicGFyYW1zIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJjb25maWciLCJoZWFkZXIiLCJ0aW1lb3V0Iiwic3VjY2VzcyIsInJlcyIsImZhaWwiLCJlcnIiLCJpbmNsdWRlcyIsInRva2VuIiwidW5pIiwiZ2V0U3RvcmFnZVN5bmMiLCJjbGllbnRpZCIsImJhc2VVUkwiLCJnZXRUb2tlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsUUFBUSxHQUFHLDBCQUEwQjtBQUMzQyxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBTyxDQUFJQyxPQUFPLEVBQUs7RUFDNUIsT0FBTyxJQUFJQyxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdkM7SUFDQSxJQUFJQyxHQUFHLEdBQUdOLFFBQVEsR0FBR0UsT0FBTyxDQUFDSSxHQUFHO0lBQ2hDLElBQUlKLE9BQU8sQ0FBQ0ssTUFBTSxLQUFLLEtBQUssSUFBSUwsT0FBTyxDQUFDTSxJQUFJLEVBQUU7TUFDN0M7TUFDQSxJQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxPQUFPLENBQUNNLElBQUksQ0FBQyxDQUN0Q0ksR0FBRyxDQUFDLFVBQUFDLEdBQUc7UUFBQSxpQkFBT0Msa0JBQWtCLENBQUNELEdBQUcsQ0FBQyxjQUFJQyxrQkFBa0IsQ0FBQ1osT0FBTyxDQUFDTSxJQUFJLENBQUNLLEdBQUcsQ0FBQyxDQUFDO01BQUEsQ0FBRSxDQUFDLENBQ2pGRSxJQUFJLENBQUMsR0FBRyxDQUFDO01BQ1hULEdBQUcsZUFBUUcsTUFBTSxDQUFFO0lBQ3BCO0lBRUEsSUFBTU8sTUFBTSxHQUFHO01BQ2RWLEdBQUcsRUFBRUEsR0FBRztNQUNSQyxNQUFNLEVBQUVMLE9BQU8sQ0FBQ0ssTUFBTSxJQUFJLEtBQUs7TUFDL0JDLElBQUksRUFBRU4sT0FBTyxDQUFDSyxNQUFNLEtBQUssS0FBSyxHQUFHTCxPQUFPLENBQUNNLElBQUksR0FBRyxDQUFDLENBQUM7TUFDbERTLE1BQU0sRUFBRWYsT0FBTyxDQUFDZSxNQUFNLElBQUksQ0FBQyxDQUFDO01BQzVCQyxPQUFPLEVBQUUsS0FBSztNQUNkQyxPQUFPLEVBQUUsaUJBQUNDLEdBQUcsRUFBSztRQUNqQmhCLE9BQU8sQ0FBQ2dCLEdBQUcsQ0FBQ1osSUFBSSxDQUFDO01BQ2xCLENBQUM7TUFDRGEsSUFBSSxFQUFFLGNBQUNDLEdBQUcsRUFBSztRQUNkakIsTUFBTSxDQUFDaUIsR0FBRyxDQUFDO01BQ1o7SUFDRCxDQUFDO0lBRUQsSUFBSSxDQUFDcEIsT0FBTyxDQUFDSSxHQUFHLENBQUNpQixRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7TUFDcEMsSUFBTUMsS0FBSyxHQUFHQyxHQUFHLENBQUNDLGNBQWMsQ0FBQyxPQUFPLENBQUM7TUFDekMsSUFBTUMsU0FBUSxHQUFHRixHQUFHLENBQUNDLGNBQWMsQ0FBQyxVQUFVLENBQUM7TUFDL0MsSUFBSUYsS0FBSyxFQUFFO1FBQ1ZSLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFNBQVMsR0FBR08sS0FBSztRQUNsRFIsTUFBTSxDQUFDQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUdVLFNBQVE7TUFDckM7SUFDRDtJQUNBLElBQUksQ0FBQ1gsTUFBTSxDQUFDQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUU7TUFDbkNELE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGtCQUFrQjtJQUNuRDtJQUNBUSxHQUFHLENBQUN4QixPQUFPLENBQUNlLE1BQU0sQ0FBQztFQUNwQixDQUFDLENBQUM7QUFDSCxDQUFDO0FBQUMsZUFFYWYsT0FBTyxFQUN0QjtBQUFBO0FBQ08sSUFBTTJCLE9BQU8sR0FBRzVCLFFBQVE7QUFBQTtBQUN4QixJQUFNNkIsUUFBUSxHQUFHLFNBQVhBLFFBQVE7RUFBQSxPQUFTSixHQUFHLENBQUNDLGNBQWMsQ0FBQyxPQUFPLENBQUM7QUFBQSxHQUFDO0FBQUE7QUFDbkQsSUFBTUMsUUFBUSxHQUFFLFNBQVZBLFFBQVE7RUFBQSxPQUFRRixHQUFHLENBQUNDLGNBQWMsQ0FBQyxVQUFVLENBQUM7QUFBQTtBQUFDIiwiZmlsZSI6IjI0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQkFTRV9VUkwgPSAnaHR0cDovLzE5Mi4xNjguMi4yMzo4MDAwJztcclxuY29uc3QgcmVxdWVzdCA9IChvcHRpb25zKSA9PiB7XHJcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdC8vIOWkhOeQhkdFVOivt+axguWPguaVsFxyXG5cdFx0bGV0IHVybCA9IEJBU0VfVVJMICsgb3B0aW9ucy51cmw7XHJcblx0XHRpZiAob3B0aW9ucy5tZXRob2QgPT09ICdHRVQnICYmIG9wdGlvbnMuZGF0YSkge1xyXG5cdFx0XHQvLyDkvb/nlKhxc+W6j+WIl+WMluWPguaVsFxyXG5cdFx0XHRjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhvcHRpb25zLmRhdGEpXHJcblx0XHRcdFx0Lm1hcChrZXkgPT4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuZGF0YVtrZXldKX1gKVxyXG5cdFx0XHRcdC5qb2luKCcmJyk7XHJcblx0XHRcdHVybCArPSBgPyR7cGFyYW1zfWA7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnID0ge1xyXG5cdFx0XHR1cmw6IHVybCxcclxuXHRcdFx0bWV0aG9kOiBvcHRpb25zLm1ldGhvZCB8fCAnR0VUJyxcclxuXHRcdFx0ZGF0YTogb3B0aW9ucy5tZXRob2QgIT09ICdHRVQnID8gb3B0aW9ucy5kYXRhIDoge30sXHJcblx0XHRcdGhlYWRlcjogb3B0aW9ucy5oZWFkZXIgfHwge30sXHJcblx0XHRcdHRpbWVvdXQ6IDEwMDAwLFxyXG5cdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0cmVzb2x2ZShyZXMuZGF0YSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIW9wdGlvbnMudXJsLmluY2x1ZGVzKCcvbG9naW4nKSkge1xyXG5cdFx0XHRjb25zdCB0b2tlbiA9IHVuaS5nZXRTdG9yYWdlU3luYygndG9rZW4nKTtcclxuXHRcdFx0Y29uc3QgY2xpZW50aWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2NsaWVudElEJyk7XHJcblx0XHRcdGlmICh0b2tlbikge1xyXG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ0F1dGhvcml6YXRpb24nXSA9ICdCZWFyZXIgJyArIHRva2VuO1xyXG5cdFx0XHRcdGNvbmZpZy5oZWFkZXJbJ2NsaWVudGlkJ10gPSBjbGllbnRpZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKCFjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSkge1xyXG5cdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcclxuXHRcdH1cclxuXHRcdHVuaS5yZXF1ZXN0KGNvbmZpZyk7XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCByZXF1ZXN0O1xyXG4vLyDlr7zlh7rln7rnoYBVUkzku6Xkvr/lhbbku5blnLDmlrnkvb/nlKhcclxuZXhwb3J0IGNvbnN0IGJhc2VVUkwgPSBCQVNFX1VSTFxyXG5leHBvcnQgY29uc3QgZ2V0VG9rZW4gPSAoKSA9PiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3Rva2VuJykgLy8g6I635Y+WdG9rZW7nmoTmlrnms5VcclxuZXhwb3J0IGNvbnN0IGNsaWVudGlkID0oKSA9PiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2NsaWVudElEJyk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///24\n"); /***/ }), /* 25 */ @@ -1424,6 +1427,7 @@ var render = function () { _c("view", { staticClass: _vm._$s(8, "sc", "Sendmessage"), attrs: { _i: 8 }, + on: { click: _vm.location }, }), _c("view", { staticClass: _vm._$s(9, "sc", "Sendmessage"), @@ -2493,7 +2497,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _du_ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 50));\nvar _index = __webpack_require__(/*! @/api/common/index.js */ 56);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n data: function data() {\n return {\n navBarHeight: 70 + uni.getSystemInfoSync().statusBarHeight,\n deviceList: [],\n tabs: [],\n activeTab: 0,\n showTooltip: false,\n Options: [{\n text: '重命名',\n style: {\n backgroundColor: '#E09319',\n borderRadius: '16px',\n width: '240rpx' // 初始宽度\n }\n }, {\n text: '删除',\n style: {\n backgroundColor: 'rgb(240, 60, 60)',\n borderRadius: '16px',\n width: '240rpx' // 初始宽度\n }\n }],\n\n navTitle: \"我的设备\",\n deleteShow: false,\n RenameModel: false,\n menuItems: [{\n text: '扫一扫添加',\n icon: '/static/images/scane.png',\n action: 'scan'\n }, {\n text: '蓝牙添加',\n icon: '/static/images/bluetooth.png',\n action: 'bluetooth'\n }],\n page: 1,\n // 当前页码\n size: 10,\n // 每页条数\n total: 0,\n // 总数据量\n loading: false,\n finished: false,\n deviceId: '',\n deviceName: \"\" //重命名\n };\n },\n\n methods: {\n // tab导航切换栏\n getTab: function getTab() {\n var _this = this;\n (0, _index.deviceTypeList)({}).then(function (res) {\n if (res.code == 200) {\n _this.tabs = [{\n id: '',\n name: '全部设备',\n typeName: '全部设备'\n }].concat((0, _toConsumableArray2.default)(res.data.map(function (item) {\n return {\n id: item.id,\n name: item.typeName,\n typeName: item.typeName,\n communicationMode: item.communicationMode\n };\n })));\n }\n });\n },\n // tab切换页\n switchTab: function switchTab(tab, index) {\n this.deviceList = [];\n this.activeTab = index;\n this.page = 1; // 重置页码\n this.finished = false; // 重\n // 明确传递参数,空字符串改为null或undefined\n var deviceType = tab.id === '' ? undefined : tab.id;\n this.getData(deviceType);\n },\n // 获取设备列表\n getData: function getData() {\n var _this2 = this;\n var deviceType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (this.loading || this.finished) return;\n this.loading = true;\n var data = {\n pageNum: this.page,\n pageSize: this.size,\n deviceType: deviceType // 使用传入的设备类型\n };\n\n (0, _index.deviceInfo)(data).then(function (res) {\n if (res.code == 200) {\n var newDevices = res.rows.map(function (device) {\n return _objectSpread(_objectSpread({}, device), {}, {\n showConfirm: false\n });\n });\n\n // 如果是第一页或切换分类,替换数据\n _this2.deviceList = _this2.page === 1 ? newDevices : [].concat((0, _toConsumableArray2.default)(_this2.deviceList), (0, _toConsumableArray2.default)(newDevices));\n _this2.total = res.total;\n // 判断是否加载完成\n if (res.rows.length < _this2.size || _this2.deviceList.length >= _this2.total) {\n _this2.finished = true;\n } else {\n _this2.page++;\n }\n }\n }).finally(function () {\n _this2.loading = false;\n });\n },\n // 滚动触底事件处理\n onScrollToLower: function onScrollToLower() {\n this.getData();\n },\n scan: function scan() {\n this.showTooltip = !this.showTooltip;\n },\n handleMenuClick: function handleMenuClick(item) {\n this.showTooltip = false; // 关闭弹窗\n switch (item.action) {\n case 'scan':\n uni.navigateTo({\n url: '/pages/common/scan/scan'\n });\n break;\n case 'bluetooth':\n uni.navigateTo({\n url: '/pages/6155/bluetooth/bluetooth'\n });\n break;\n }\n },\n // 右滑点击事件处理\n handleSwipeClick: function handleSwipeClick(e, item, index) {\n var content = e.content;\n __f__(\"log\", e, 'eeeee', \" at pages/common/index/index.vue:278\");\n switch (content.text) {\n case '删除':\n this.handleDeleteDevice(item, index);\n break;\n case '重命名':\n this.handleRenameDevice(item, index);\n break;\n }\n ;\n },\n // 删除设备\n handleDeleteDevice: function handleDeleteDevice(item, index) {\n this.deviceId = item;\n this.deleteShow = true;\n uni.hideTabBar();\n },\n // 确认删除\n handleBtn: function handleBtn() {\n var _this3 = this;\n uni.showTabBar();\n var data = {\n id: this.deviceId.id\n };\n (0, _index.deviceUnbind)(data).then(function (res) {\n if (res.code == 200) {\n uni.showToast({\n title: '删除成功',\n icon: 'none',\n duration: 1000\n });\n setTimeout(function () {\n _this3.onIntall();\n }, 500);\n _this3.deleteShow = false;\n } else {\n uni.showToast({\n title: res.msg,\n icon: 'none',\n duration: 1000\n });\n }\n });\n },\n // 重命名设备\n handleRenameDevice: function handleRenameDevice(item, index) {\n this.RenameModel = true;\n uni.hideTabBar();\n this.deviceId = item;\n },\n handleBtnName: function handleBtnName() {\n var _this4 = this;\n uni.showTabBar();\n var data = {\n id: this.deviceId.id,\n deviceName: this.deviceName\n };\n (0, _index.deviceReName)(data).then(function (res) {\n if (res.code == 200) {\n uni.showToast({\n title: res.msg,\n icon: 'none',\n duration: 1000\n });\n setTimeout(function () {\n _this4.onIntall();\n }, 500);\n _this4.RenameModel = false;\n _this4.deviceName = '';\n } else {\n uni.showToast({\n title: res.msg,\n icon: 'none',\n duration: 1000\n });\n }\n });\n },\n // 发生短信\n handleSend: function handleSend() {\n uni.navigateTo({\n url: '/pages/common/send/index'\n });\n },\n handleFile: function handleFile(item) {\n __f__(\"log\", item, 'item', \" at pages/common/index/index.vue:360\");\n // communicationMode 0是4G 1是蓝牙\n if (item.communicationMode == 0) {\n uni.navigateTo({\n url: \"/pages/6170/deviceControl/index?id=\".concat(item.id)\n });\n } else {\n uni.navigateTo({\n url: '/pages/6155/index'\n });\n }\n },\n onIntall: function onIntall() {\n this.page = 1;\n this.finished = false;\n this.getData(); // 重新加载第一页数据\n }\n },\n onShow: function onShow() {\n this.getTab();\n this.onIntall();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY29tbW9uL2luZGV4L2luZGV4LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibmF2QmFySGVpZ2h0IiwiZGV2aWNlTGlzdCIsInRhYnMiLCJhY3RpdmVUYWIiLCJzaG93VG9vbHRpcCIsIk9wdGlvbnMiLCJ0ZXh0Iiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJ3aWR0aCIsIm5hdlRpdGxlIiwiZGVsZXRlU2hvdyIsIlJlbmFtZU1vZGVsIiwibWVudUl0ZW1zIiwiaWNvbiIsImFjdGlvbiIsInBhZ2UiLCJzaXplIiwidG90YWwiLCJsb2FkaW5nIiwiZmluaXNoZWQiLCJkZXZpY2VJZCIsImRldmljZU5hbWUiLCJtZXRob2RzIiwiZ2V0VGFiIiwiaWQiLCJuYW1lIiwidHlwZU5hbWUiLCJyZXMiLCJjb21tdW5pY2F0aW9uTW9kZSIsInN3aXRjaFRhYiIsImdldERhdGEiLCJwYWdlTnVtIiwicGFnZVNpemUiLCJkZXZpY2VUeXBlIiwiZGV2aWNlIiwic2hvd0NvbmZpcm0iLCJvblNjcm9sbFRvTG93ZXIiLCJzY2FuIiwiaGFuZGxlTWVudUNsaWNrIiwidW5pIiwidXJsIiwiaGFuZGxlU3dpcGVDbGljayIsImNvbnRlbnQiLCJlIiwiaGFuZGxlRGVsZXRlRGV2aWNlIiwiaGFuZGxlQnRuIiwidGl0bGUiLCJkdXJhdGlvbiIsInNldFRpbWVvdXQiLCJoYW5kbGVSZW5hbWVEZXZpY2UiLCJoYW5kbGVCdG5OYW1lIiwiaGFuZGxlU2VuZCIsImhhbmRsZUZpbGUiLCJvbkludGFsbCIsIm9uU2hvdyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBdUlBO0FBS0E7QUFBQTtBQUFBLGVBQ0E7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztVQUNBQztVQUNBQztVQUNBQztRQUNBO01BQ0EsR0FDQTtRQUNBSjtRQUNBQztVQUNBQztVQUNBQztVQUNBQztRQUNBO01BQ0EsRUFDQTs7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7UUFDQVI7UUFDQVM7UUFDQUM7TUFDQSxHQUNBO1FBQ0FWO1FBQ0FTO1FBQ0FDO01BQ0EsRUFDQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7O0VBQ0FDO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQ0E7VUFDQTtZQUNBQztZQUNBQztZQUNBQztVQUNBLDJDQUNBQztZQUFBO2NBQ0FIO2NBQ0FDO2NBQ0FDO2NBQ0FFO1lBQ0E7VUFBQSxJQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7O01BQ0E7UUFDQTtVQUNBO1lBQUEsdUNBQ0FDO2NBQ0FDO1lBQUE7VUFBQSxDQUNBOztVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBO1VBQ0FDO1lBQ0FDO1VBQ0E7VUFDQTtRQUNBO1VBQ0FEO1lBQ0FDO1VBQ0E7VUFDQTtNQUFBO0lBRUE7SUFDQTtJQUNBQztNQUNBLElBQ0FDLFVBQ0FDLEVBREFEO01BRUE7TUFDQTtRQUNBO1VBQ0E7VUFDQTtRQUNBO1VBQ0E7VUFDQTtNQUFBO01BQ0E7SUFDQTtJQUNBO0lBQ0FFO01BQ0E7TUFDQTtNQUNBTDtJQUNBO0lBQ0E7SUFDQU07TUFBQTtNQUNBTjtNQUNBO1FBQ0FmO01BQ0E7TUFDQTtRQUNBO1VBQ0FlO1lBQ0FPO1lBQ0FqQztZQUNBa0M7VUFDQTtVQUNBQztZQUNBO1VBQ0E7VUFDQTtRQUNBO1VBQ0FUO1lBQ0FPO1lBQ0FqQztZQUNBa0M7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FFO01BQ0E7TUFDQVY7TUFDQTtJQUNBO0lBQ0FXO01BQUE7TUFDQVg7TUFDQTtRQUNBZjtRQUNBSDtNQUNBO01BQ0E7UUFDQTtVQUNBa0I7WUFDQU87WUFDQWpDO1lBQ0FrQztVQUNBO1VBQ0FDO1lBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBVDtZQUNBTztZQUNBakM7WUFDQWtDO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBSTtNQUNBWjtRQUNBQztNQUNBO0lBQ0E7SUFDQVk7TUFDQTtNQUNBO01BQ0E7UUFDQWI7VUFDQUM7UUFDQTtNQUNBO1FBQ0FEO1VBQ0FDO1FBQ0E7TUFDQTtJQUVBO0lBQ0FhO01BQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtBQUVBO0FBQUEsMkIiLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8IS0tIOS9v+eUqOiHquWumuS5ieWvvOiIquagjyAtLT5cclxuXHRcdDxjdXN0b20tbmF2YmFyIDp0aXRsZT1cIm5hdlRpdGxlXCIgOnNob3dCYWNrPVwiZmFsc2VcIiBiYWNrZ3JvdW5kQ29sb3I9XCIjMjAyMDIwXCIgY29sb3I9XCIjRkZGRkZGXCJcclxuXHRcdFx0cmlnaHRJY29uPVwiL3N0YXRpYy9pbWFnZXMvYWRkLnBuZ1wiIEByaWdodC1jbGljaz1cInNjYW5cIj48L2N1c3RvbS1uYXZiYXI+XHJcblx0XHQ8dmlldyBjbGFzcz1cImRldmljZS1wYWdlXCIgOnN0eWxlPVwieyBwYWRkaW5nVG9wOiBuYXZCYXJIZWlnaHQgKyAncHgnIH1cIj5cclxuXHRcdFx0PCEtLSBoYW5kbGVTZW5kICAg5Y+R6YCB5L+h5oGvIC0tPlxyXG5cdFx0XHQ8c2Nyb2xsLXZpZXcgY2xhc3M9XCJ0YWItYmFyXCIgc2Nyb2xsLXg9XCJ0cnVlXCIgc2Nyb2xsLXdpdGgtYW5pbWF0aW9uPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgdi1mb3I9XCIodGFiLCBpbmRleCkgaW4gdGFic1wiIDprZXk9XCJpbmRleFwiXHJcblx0XHRcdFx0XHRcdDpjbGFzcz1cIlsndGFiLWl0ZW0nLCBhY3RpdmVUYWIgPT09IGluZGV4ID8gJ2FjdGl2ZScgOiAnJ11cIiBAY2xpY2s9XCJzd2l0Y2hUYWIodGFiLGluZGV4KVwiPlxyXG5cdFx0XHRcdFx0XHR7e3RhYi50eXBlTmFtZX19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3Njcm9sbC12aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInNlbmRGbGV4XCI+XHJcblxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2FsbHBvbGljZVwiPuaKpeitpjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIlNlbmRtZXNzYWdlXCI+5L2N572uPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiU2VuZG1lc3NhZ2VcIiBAY2xpY2s9XCJoYW5kbGVTZW5kXCI+5Y+R6YCB5L+h5oGvPC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8c2Nyb2xsLXZpZXcgY2xhc3M9XCJkZXZpY2UtbGlzdFwiIHNjcm9sbC15IEBzY3JvbGx0b2xvd2VyPVwib25TY3JvbGxUb0xvd2VyXCIgOmxvd2VyLXRocmVzaG9sZD1cIjEwMFwiXHJcblx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6ODB2aDtcIj5cclxuXHRcdFx0XHQ8dW5pLXN3aXBlLWFjdGlvbiByZWY9XCJzd2lwZUFjdGlvblwiPlxyXG5cdFx0XHRcdFx0PGJsb2NrIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBkZXZpY2VMaXN0XCIgOmtleT1cImluZGV4XCIgOnJlZj1cIidzd2lwZUl0ZW1fJyArIGluZGV4XCI+XHJcblx0XHRcdFx0XHRcdDx1bmktc3dpcGUtYWN0aW9uLWl0ZW0gOnJpZ2h0LW9wdGlvbnM9XCJPcHRpb25zXCIgQGNsaWNrPVwiaGFuZGxlU3dpcGVDbGljaygkZXZlbnQsIGl0ZW0sIGluZGV4KVwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJkZXZpY2UtY2FyZFwiPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0g6K6+5aSH5Y2h54mH5YaF5a655L+d5oyB5LiN5Y+YIC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gXHRcdFx0PHZpZXcgQGNsaWNrLnN0b3A9XCJoYW5kbGVGaWxlKGl0ZW0pXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRldmljZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2VJTUdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2UgOnNyYz1cIml0ZW0uZGV2aWNlUGljXCIgY2xhc3M9XCJJTUdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLW5hbWVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz7orr7lpIc6e3tpdGVtLmRldmljZU5hbWV9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRldmljZS1pbmZvXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIklEXCIgdi1pZj1cIml0ZW0uY29tbXVuaWNhdGlvbk1vZGU9PTBcIj5JRDp7e2l0ZW0uZGV2aWNlSW1laX19XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIklEXCIgdi1lbHNlPklEOnt7aXRlbS5kZXZpY2VNYWN9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLWZsZXhcIiB2LWlmPVwiaXRlbS5jb21tdW5pY2F0aW9uTW9kZT09MFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9ubGluZXNcIiA+5Zyo57q/PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxpbmVcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3PueUtemHj++8mjkwJTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgdi1pZj1cIml0ZW0uY29tbXVuaWNhdGlvbk1vZGU9PTFcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2Utc3RhdHVzIG9ubGluZVwiPuW3sui/nuaOpTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2Utc3RhdHVzIHVubGluZVwiPuacqui/nuaOpTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IEBjbGljay5zdG9wPVwiaGFuZGxlRmlsZShpdGVtKVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2UtaGVhZGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlSU1HXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJpdGVtLmRldmljZVBpY1wiIGNsYXNzPVwiSU1HXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRldmljZS1uYW1lXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+6K6+5aSHOnt7aXRlbS5kZXZpY2VOYW1lfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJJRFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJJRFwiIHYtaWY9XCJpdGVtLmNvbW11bmljYXRpb25Nb2RlPT0wXCI+SUQ6e3tpdGVtLmRldmljZUltZWl9fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJJRFwiIHYtZWxzZT5JRDp7e2l0ZW0uZGV2aWNlTWFjfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9ubGluZXNcIiB2LWlmPVwiaXRlbS5jb21tdW5pY2F0aW9uTW9kZT09MFwiPuWcqOe6vzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3PueUtemHj++8mjkwJTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgdi1pZj1cIml0ZW0uY29tbXVuaWNhdGlvbk1vZGU9PTFcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2Utc3RhdHVzIG9ubGluZVwiPuW3sui/nuaOpTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2Utc3RhdHVzIHVubGluZVwiPuacqui/nuaOpTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9jaXJlcy5wbmdcIiBjbGFzcz1cImNpcmNsZVwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdDwvdW5pLXN3aXBlLWFjdGlvbi1pdGVtPlxyXG5cdFx0XHRcdFx0PC9ibG9jaz5cclxuXHRcdFx0XHQ8L3VuaS1zd2lwZS1hY3Rpb24+XHJcblx0XHRcdFx0PCEtLSDliqDovb3nirbmgIHmj5DnpLogLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsb2FkaW5nLXN0YXR1c1wiPlxyXG5cdFx0XHRcdFx0PHRleHQgdi1pZj1cImxvYWRpbmdcIj7liqDovb3kuK0uLi48L3RleHQ+XHJcblx0XHRcdFx0XHQ8dGV4dCB2LWlmPVwiZmluaXNoZWRcIj7msqHmnInmm7TlpJrmlbDmja7kuoY8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3Njcm9sbC12aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSDliKDpmaTlvLnmoYYgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImFncmVlbWVudC1tYXNrXCIgdi1pZj1cImRlbGV0ZVNob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtcG9wdXBDXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZXMvZGVsbC5wbmdcIiBtb2RlPVwiXCIgY2xhc3M9XCJzdmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PHVuaS1pY29uIGNsYXNzPVwidHJhc2hcIj48L3VuaS1pY29uPlxyXG5cdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtVGl0bGVcIj7noa7lrprliKDpmaTmiYDpgInorr7lpIfvvIE8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5oyJ6ZKu57uEIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtYnV0dG9uc1wiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0biBhZ3JlZUJ0blwiIEBjbGljaz1cImhhbmRsZUJ0blwiPuehruWumjwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSA9PT09PT09PT3ph43lkb3lkI09PT09PT09PT09PT09PSAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYWdyZWVtZW50LW1hc2tcIiB2LWlmPVwiUmVuYW1lTW9kZWxcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtcG9wdXBEXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1mbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQ+6K6+5aSH5ZCN56ewPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJkZXZpY2VOYW1lXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXorr7lpIflkI3np7BcIiBjbGFzcz1cInBvcHVwLWlucHV0XCIgLz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaMiemSrue7hCAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLWJ1dHRvbnNcIiBzdHlsZT1cIm1hcmdpbi10b3A6NTBycHg7XCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGFncmVlQnRuNFwiIEBjbGljaz1cImhhbmRsZUJ0bk5hbWVcIj7noa7lrpo8L2J1dHRvbj5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5bCP5o+Q56S65qGGIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ0b29sdGlwLWJveFwiIHYtaWY9XCJzaG93VG9vbHRpcFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRvb2x0aXAtYXJyb3dcIj48L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b29sdGlwLWl0ZW1cIiB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gbWVudUl0ZW1zXCIgOmtleT1cImluZGV4XCJcclxuXHRcdFx0XHRcdEBjbGljaz1cImhhbmRsZU1lbnVDbGljayhpdGVtKVwiPlxyXG5cdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJpdGVtLmljb25cIiBjbGFzcz1cIml0ZW0taWNvblwiIC8+XHJcblx0XHRcdFx0XHQ8dGV4dD57eyBpdGVtLnRleHQgfX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQge1xyXG5cdFx0ZGV2aWNlVHlwZUxpc3QsXHJcblx0XHRkZXZpY2VJbmZvLFxyXG5cdFx0ZGV2aWNlVW5iaW5kLCAvL+WIoOmZpOiuvuWkh1xyXG5cdFx0ZGV2aWNlUmVOYW1lXHJcblx0fSBmcm9tICdAL2FwaS9jb21tb24vaW5kZXguanMnXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRuYXZCYXJIZWlnaHQ6IDcwICsgdW5pLmdldFN5c3RlbUluZm9TeW5jKCkuc3RhdHVzQmFySGVpZ2h0LFxyXG5cdFx0XHRcdGRldmljZUxpc3Q6IFtdLFxyXG5cdFx0XHRcdHRhYnM6IFtdLFxyXG5cdFx0XHRcdGFjdGl2ZVRhYjogMCxcclxuXHRcdFx0XHRzaG93VG9vbHRpcDogZmFsc2UsXHJcblx0XHRcdFx0T3B0aW9uczogW3tcclxuXHRcdFx0XHRcdFx0dGV4dDogJ+mHjeWRveWQjScsXHJcblx0XHRcdFx0XHRcdHN0eWxlOiB7XHJcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAnI0UwOTMxOScsXHJcblx0XHRcdFx0XHRcdFx0Ym9yZGVyUmFkaXVzOiAnMTZweCcsXHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6ICcyNDBycHgnLCAvLyDliJ3lp4vlrr3luqZcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdHRleHQ6ICfliKDpmaQnLFxyXG5cdFx0XHRcdFx0XHRzdHlsZToge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3JnYigyNDAsIDYwLCA2MCknLFxyXG5cdFx0XHRcdFx0XHRcdGJvcmRlclJhZGl1czogJzE2cHgnLFxyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOiAnMjQwcnB4JywgLy8g5Yid5aeL5a695bqmXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdF0sXHJcblx0XHRcdFx0bmF2VGl0bGU6IFwi5oiR55qE6K6+5aSHXCIsXHJcblx0XHRcdFx0ZGVsZXRlU2hvdzogZmFsc2UsXHJcblx0XHRcdFx0UmVuYW1lTW9kZWw6IGZhbHNlLFxyXG5cdFx0XHRcdG1lbnVJdGVtczogW3tcclxuXHRcdFx0XHRcdFx0dGV4dDogJ+aJq+S4gOaJq+a3u+WKoCcsXHJcblx0XHRcdFx0XHRcdGljb246ICcvc3RhdGljL2ltYWdlcy9zY2FuZS5wbmcnLFxyXG5cdFx0XHRcdFx0XHRhY3Rpb246ICdzY2FuJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0dGV4dDogJ+iTneeJmea3u+WKoCcsXHJcblx0XHRcdFx0XHRcdGljb246ICcvc3RhdGljL2ltYWdlcy9ibHVldG9vdGgucG5nJyxcclxuXHRcdFx0XHRcdFx0YWN0aW9uOiAnYmx1ZXRvb3RoJ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdF0sXHJcblx0XHRcdFx0cGFnZTogMSwgLy8g5b2T5YmN6aG156CBXHJcblx0XHRcdFx0c2l6ZTogMTAsIC8vIOavj+mhteadoeaVsFxyXG5cdFx0XHRcdHRvdGFsOiAwLCAvLyDmgLvmlbDmja7ph49cclxuXHRcdFx0XHRsb2FkaW5nOiBmYWxzZSxcclxuXHRcdFx0XHRmaW5pc2hlZDogZmFsc2UsXHJcblx0XHRcdFx0ZGV2aWNlSWQ6ICcnLFxyXG5cdFx0XHRcdGRldmljZU5hbWU6IFwiXCIgLy/ph43lkb3lkI1cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Ly8gdGFi5a+86Iiq5YiH5o2i5qCPXHJcblx0XHRcdGdldFRhYigpIHtcclxuXHRcdFx0XHRkZXZpY2VUeXBlTGlzdCh7fSkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMudGFicyA9IFt7XHJcblx0XHRcdFx0XHRcdFx0XHRpZDogJycsXHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiAn5YWo6YOo6K6+5aSHJyxcclxuXHRcdFx0XHRcdFx0XHRcdHR5cGVOYW1lOiAn5YWo6YOo6K6+5aSHJ1xyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0Li4ucmVzLmRhdGEubWFwKGl0ZW0gPT4gKHtcclxuXHRcdFx0XHRcdFx0XHRcdGlkOiBpdGVtLmlkLFxyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogaXRlbS50eXBlTmFtZSxcclxuXHRcdFx0XHRcdFx0XHRcdHR5cGVOYW1lOiBpdGVtLnR5cGVOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29tbXVuaWNhdGlvbk1vZGU6IGl0ZW0uY29tbXVuaWNhdGlvbk1vZGVcclxuXHRcdFx0XHRcdFx0XHR9KSlcclxuXHRcdFx0XHRcdFx0XTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyB0YWLliIfmjaLpobVcclxuXHRcdFx0c3dpdGNoVGFiKHRhYiwgaW5kZXgpIHtcclxuXHRcdFx0XHR0aGlzLmRldmljZUxpc3QgPSBbXTtcclxuXHRcdFx0XHR0aGlzLmFjdGl2ZVRhYiA9IGluZGV4O1xyXG5cdFx0XHRcdHRoaXMucGFnZSA9IDE7IC8vIOmHjee9rumhteeggVxyXG5cdFx0XHRcdHRoaXMuZmluaXNoZWQgPSBmYWxzZTsgLy8g6YeNXHJcblx0XHRcdFx0Ly8g5piO56Gu5Lyg6YCS5Y+C5pWw77yM56m65a2X56ym5Liy5pS55Li6bnVsbOaIlnVuZGVmaW5lZFxyXG5cdFx0XHRcdGNvbnN0IGRldmljZVR5cGUgPSB0YWIuaWQgPT09ICcnID8gdW5kZWZpbmVkIDogdGFiLmlkO1xyXG5cdFx0XHRcdHRoaXMuZ2V0RGF0YShkZXZpY2VUeXBlKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6I635Y+W6K6+5aSH5YiX6KGoXHJcblx0XHRcdGdldERhdGEoZGV2aWNlVHlwZSA9ICcnKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMubG9hZGluZyB8fCB0aGlzLmZpbmlzaGVkKSByZXR1cm47XHJcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdFx0XHRsZXQgZGF0YSA9IHtcclxuXHRcdFx0XHRcdHBhZ2VOdW06IHRoaXMucGFnZSxcclxuXHRcdFx0XHRcdHBhZ2VTaXplOiB0aGlzLnNpemUsXHJcblx0XHRcdFx0XHRkZXZpY2VUeXBlOiBkZXZpY2VUeXBlIC8vIOS9v+eUqOS8oOWFpeeahOiuvuWkh+exu+Wei1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkZXZpY2VJbmZvKGRhdGEpLnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBuZXdEZXZpY2VzID0gcmVzLnJvd3MubWFwKGRldmljZSA9PiAoe1xyXG5cdFx0XHRcdFx0XHRcdC4uLmRldmljZSxcclxuXHRcdFx0XHRcdFx0XHRzaG93Q29uZmlybTogZmFsc2VcclxuXHRcdFx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5piv56ys5LiA6aG15oiW5YiH5o2i5YiG57G777yM5pu/5o2i5pWw5o2uXHJcblx0XHRcdFx0XHRcdHRoaXMuZGV2aWNlTGlzdCA9IHRoaXMucGFnZSA9PT0gMSA/IG5ld0RldmljZXMgOiBbLi4udGhpcy5kZXZpY2VMaXN0LCAuLi5uZXdEZXZpY2VzXTtcclxuXHRcdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlcy50b3RhbDtcclxuXHRcdFx0XHRcdFx0Ly8g5Yik5pat5piv5ZCm5Yqg6L295a6M5oiQXHJcblx0XHRcdFx0XHRcdGlmIChyZXMucm93cy5sZW5ndGggPCB0aGlzLnNpemUgfHwgdGhpcy5kZXZpY2VMaXN0Lmxlbmd0aCA+PSB0aGlzLnRvdGFsKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5maW5pc2hlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wYWdlKys7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS5maW5hbGx5KCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmu5rliqjop6blupXkuovku7blpITnkIZcclxuXHRcdFx0b25TY3JvbGxUb0xvd2VyKCkge1xyXG5cdFx0XHRcdHRoaXMuZ2V0RGF0YSgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzY2FuKCkge1xyXG5cdFx0XHRcdHRoaXMuc2hvd1Rvb2x0aXAgPSAhdGhpcy5zaG93VG9vbHRpcDtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdGhhbmRsZU1lbnVDbGljayhpdGVtKSB7XHJcblx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcCA9IGZhbHNlOyAvLyDlhbPpl63lvLnnqpdcclxuXHRcdFx0XHRzd2l0Y2ggKGl0ZW0uYWN0aW9uKSB7XHJcblx0XHRcdFx0XHRjYXNlICdzY2FuJzpcclxuXHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9jb21tb24vc2Nhbi9zY2FuJ1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlICdibHVldG9vdGgnOlxyXG5cdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHRcdFx0dXJsOiAnL3BhZ2VzLzYxNTUvYmx1ZXRvb3RoL2JsdWV0b290aCdcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5Y+z5ruR54K55Ye75LqL5Lu25aSE55CGXHJcblx0XHRcdGhhbmRsZVN3aXBlQ2xpY2soZSwgaXRlbSwgaW5kZXgpIHtcclxuXHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHRjb250ZW50XHJcblx0XHRcdFx0fSA9IGVcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhlLCAnZWVlZWUnKTtcclxuXHRcdFx0XHRzd2l0Y2ggKGNvbnRlbnQudGV4dCkge1xyXG5cdFx0XHRcdFx0Y2FzZSAn5Yig6ZmkJzpcclxuXHRcdFx0XHRcdFx0dGhpcy5oYW5kbGVEZWxldGVEZXZpY2UoaXRlbSwgaW5kZXgpXHJcblx0XHRcdFx0XHRcdGJyZWFrXHJcblx0XHRcdFx0XHRjYXNlICfph43lkb3lkI0nOlxyXG5cdFx0XHRcdFx0XHR0aGlzLmhhbmRsZVJlbmFtZURldmljZShpdGVtLCBpbmRleClcclxuXHRcdFx0XHRcdFx0YnJlYWtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDliKDpmaTorr7lpIdcclxuXHRcdFx0aGFuZGxlRGVsZXRlRGV2aWNlKGl0ZW0sIGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5kZXZpY2VJZCA9IGl0ZW1cclxuXHRcdFx0XHR0aGlzLmRlbGV0ZVNob3cgPSB0cnVlXHJcblx0XHRcdFx0dW5pLmhpZGVUYWJCYXIoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDnoa7orqTliKDpmaRcclxuXHRcdFx0aGFuZGxlQnRuKCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VGFiQmFyKClcclxuXHRcdFx0XHRsZXQgZGF0YSA9IHtcclxuXHRcdFx0XHRcdGlkOiB0aGlzLmRldmljZUlkLmlkXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGRldmljZVVuYmluZChkYXRhKS50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6ICfliKDpmaTmiJDlip8nLFxyXG5cdFx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5vbkludGFsbCgpO1xyXG5cdFx0XHRcdFx0XHR9LCA1MDApO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmRlbGV0ZVNob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5tc2csXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxMDAwXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOmHjeWRveWQjeiuvuWkh1xyXG5cdFx0XHRoYW5kbGVSZW5hbWVEZXZpY2UoaXRlbSwgaW5kZXgpIHtcclxuXHRcdFx0XHR0aGlzLlJlbmFtZU1vZGVsID0gdHJ1ZVxyXG5cdFx0XHRcdHVuaS5oaWRlVGFiQmFyKClcclxuXHRcdFx0XHR0aGlzLmRldmljZUlkID0gaXRlbVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVCdG5OYW1lKCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VGFiQmFyKClcclxuXHRcdFx0XHRsZXQgZGF0YSA9IHtcclxuXHRcdFx0XHRcdGlkOiB0aGlzLmRldmljZUlkLmlkLFxyXG5cdFx0XHRcdFx0ZGV2aWNlTmFtZTogdGhpcy5kZXZpY2VOYW1lXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGRldmljZVJlTmFtZShkYXRhKS50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5tc2csXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxMDAwXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm9uSW50YWxsKCk7XHJcblx0XHRcdFx0XHRcdH0sIDUwMCk7XHJcblx0XHRcdFx0XHRcdHRoaXMuUmVuYW1lTW9kZWwgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHR0aGlzLmRldmljZU5hbWUgPSAnJ1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5tc2csXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxMDAwXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWPkeeUn+efreS/oVxyXG5cdFx0XHRoYW5kbGVTZW5kKCkge1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybDogJy9wYWdlcy9jb21tb24vc2VuZC9pbmRleCdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVGaWxlKGl0ZW0pIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhpdGVtLCAnaXRlbScpO1xyXG5cdFx0XHRcdC8vIGNvbW11bmljYXRpb25Nb2RlIDDmmK80RyAx5piv6JOd54mZXHJcblx0XHRcdFx0aWYgKGl0ZW0uY29tbXVuaWNhdGlvbk1vZGUgPT0gMCkge1xyXG5cdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0XHR1cmw6IGAvcGFnZXMvNjE3MC9kZXZpY2VDb250cm9sL2luZGV4P2lkPSR7aXRlbS5pZH1gXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy82MTU1L2luZGV4J1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbkludGFsbCgpIHtcclxuXHRcdFx0XHR0aGlzLnBhZ2UgPSAxO1xyXG5cdFx0XHRcdHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmdldERhdGEoKTsgLy8g6YeN5paw5Yqg6L2956ys5LiA6aG15pWw5o2uXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdHRoaXMuZ2V0VGFiKClcclxuXHRcdFx0dGhpcy5vbkludGFsbCgpXHJcblx0XHR9XHJcblxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0Lyog6aG16Z2i5pW05L2T5qC35byPICovXHJcblx0LmRldmljZS1wYWdlIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTgsIDE4LCAxOCk7XHJcblx0XHRwYWRkaW5nOiAzMHJweDtcclxuXHR9XHJcblxyXG5cdC50YWItYmFyIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Y29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHQvKiDnpoHmraLmjaLooYwgKi9cclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdH1cclxuXHJcblx0LnRhYi1jb250YWluZXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdC8qIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyAqL1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNDBycHg7XHJcblx0XHQvKiBcdG1pbi13aWR0aDogMTAwJTsgKi9cclxuXHRcdC8qIOacgOWwj+WuveW6piAqL1xyXG5cdH1cclxuXHJcblx0LnRhYi1pdGVtIHtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHQvKiBcdG1pbi13aWR0aDogMTIwcnB4OyAqL1xyXG5cdFx0cGFkZGluZzogMCAzMHJweDtcclxuXHRcdC8qIOW3puWPs+WGhei+uei3nSAqL1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Lyog5paH5a2X5bGF5LitICovXHJcblx0XHQvKiDorr7nva7mnIDlsI/lrr3luqYgKi9cclxuXHR9XHJcblxyXG5cdC5hY3RpdmUge1xyXG5cdFx0Y29sb3I6IHJnYmEoMTg3LCAyMzAsIDAsIDEpO1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogNnJweCBzb2xpZCByZ2JhKDE4NywgMjMwLCAwLCAxKTtcclxuXHRcdGhlaWdodDogNjBycHg7XHJcblx0fVxyXG5cclxuXHQuc2VuZEZsZXgge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDMwcnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHR9XHJcblxyXG5cdC5ncHJzIHtcclxuXHRcdHdpZHRoOiAyOHJweDtcclxuXHRcdGhlaWdodDogMzVycHg7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRsZWZ0OiA1MHJweFxyXG5cdH1cclxuXHJcblx0LlNlbmRtZXNzYWdlIHtcclxuXHRcdG1hcmdpbi1sZWZ0OiA1MHJweDtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdH1cclxuXHJcblx0LmNhbGxwb2xpY2Uge1xyXG5cdFx0Y29sb3I6IHJnYmEoMjI0LCA1MiwgNTIsIDEpO1xyXG5cdH1cclxuXHJcblx0Lyog6K6+5aSH5Y2h54mHICovXHJcblx0LmRldmljZS1jYXJkIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMjYsIDI2KTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuXHJcblx0LyogXHQuZGV2aWNlLWhlYWRlciB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDE1cnB4O1xyXG5cdFx0cGFkZGluZzogMzBycHggMCAxMHJweCAzMHJweDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0LmRldmljZS1uYW1lIHtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdG1hcmdpbi1sZWZ0OiAyNHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA1MHJweDtcclxuXHR9XHJcblxyXG5cdC5JRCB7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG5cdFx0Zm9udC1zaXplOiAyNHJweDtcclxuXHR9XHJcblxyXG5cdC5kZXZpY2Utc3RhdHVzIHtcclxuXHRcdHdpZHRoOiAxMjJycHg7XHJcblx0XHRoZWlnaHQ6IDUycnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDBweCA4cHggMHB4IDhweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYig0MiwgNDIsIDQyKTtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMHJweDtcclxuXHRcdHJpZ2h0OiAwcnB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDUycnB4O1xyXG5cdH1cclxuXHJcblx0LmNpcmNsZSB7XHJcblx0XHR3aWR0aDogOHJweDtcclxuXHRcdGhlaWdodDogNDBycHg7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMThycHg7XHJcblx0XHR0b3A6IDY1cnB4O1xyXG5cdH1cclxuXHJcblx0Lm9ubGluZSB7XHJcblx0XHRjb2xvcjogcmdiKDE4NywgMjMwLCAwKTtcclxuXHR9XHJcblxyXG5cdC51bmxpbmUge1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcclxuXHR9XHJcblxyXG5cdC5kZXZpY2UtaWQge1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdGNvbG9yOiAjOTk5O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHR9XHJcblxyXG5cdC5kZXZpY2UtaW5mbyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0fVxyXG5cdC5kZXZpY2UtZmxleHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRcclxuXHR9XHJcblxyXG5cdC5kZXZpY2VJTUcge1xyXG5cdFx0d2lkdGg6IDEwMHJweDtcclxuXHRcdGhlaWdodDogMTAwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQyLCA0MiwgNDIsIDAuNik7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC5JTUcge1xyXG5cdFx0d2lkdGg6IDY4cnB4O1xyXG5cdFx0aGVpZ2h0OiA1MHJweDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxNyU7XHJcblx0fVxyXG5cclxuXHQub25saW5lczo6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0d2lkdGg6IDE1cnB4O1xyXG5cdFx0aGVpZ2h0OiAxNXJweDtcclxuXHRcdGJhY2tncm91bmQ6IHJnYigwLCAxNzEsIDEwMyk7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRsZWZ0OiAxMjBycHg7XHJcblx0XHR0b3A6IDE1cnB4XHJcblx0fVxyXG5cclxuXHQubGluZSB7XHJcblx0XHR3aWR0aDogMnJweDtcclxuXHRcdGhlaWdodDogMjRycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsXHJcblx0XHRcdFx0cmdiYSgwLCAwLCAwLCAwKSAwJSxcclxuXHRcdFx0XHRyZ2IoMjU1LCAyNTUsIDI1NSkgNTAlLFxyXG5cdFx0XHRcdHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XHJcblx0XHRtYXJnaW4tdG9wOiAxMnJweDtcclxuXHR9XHJcblxyXG5cdC5sb2FkaW5nLXN0YXR1cyB7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG5cdFx0cGFkZGluZzogMjBycHg7XHJcblx0XHRmb250LXNpemU6IDIycnB4O1xyXG5cdH0gKi9cclxuXHQuZGV2aWNlLWhlYWRlciB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDE1cnB4O1xyXG5cdFx0cGFkZGluZzogMzBycHggMCAxMHJweCAzMHJweDtcclxuXHR9XHJcblxyXG5cdC51bmxpbmUge1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcclxuXHR9XHJcblxyXG5cdC5kZXZpY2UtbmFtZSB7XHJcblx0XHRmb250LXNpemU6IDMycnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0XHRtYXJnaW4tbGVmdDogMjRycHg7XHJcblx0XHRsaW5lLWhlaWdodDogNTBycHg7XHJcblx0XHR3aWR0aDogNzUlO1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHR9XHJcblxyXG5cdC5JRCB7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdH1cclxuXHJcblx0LmRldmljZS1zdGF0dXMge1xyXG5cdFx0d2lkdGg6IDEyMnJweDtcclxuXHRcdGhlaWdodDogNTJycHg7XHJcblx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMHB4IDhweCAwcHggOHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDQyLCA0MiwgNDIpO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiAwcnB4O1xyXG5cdFx0cmlnaHQ6IDBycHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDogNTJycHg7XHJcblx0fVxyXG5cclxuXHQuY2lyY2xlIHtcclxuXHRcdHdpZHRoOiA4cnB4O1xyXG5cdFx0aGVpZ2h0OiA0MHJweDtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHJpZ2h0OiAyNXJweDtcclxuXHRcdHRvcDogNjBycHg7XHJcblx0fVxyXG5cclxuXHQub25saW5lIHtcclxuXHRcdGNvbG9yOiByZ2IoMTg3LCAyMzAsIDApO1xyXG5cdH1cclxuXHJcblx0LmRldmljZS1pZCB7XHJcblx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdFx0Y29sb3I6ICM5OTk7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxuXHJcblx0LmRldmljZS1pbmZvIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHBhZGRpbmc6IDBycHggMHJweCAzMHJweCAzMHJweDtcclxuXHR9XHJcblxyXG5cdC5kZXZpY2VJTUcge1xyXG5cdFx0d2lkdGg6IDEwMHJweDtcclxuXHRcdGhlaWdodDogMTAwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQyLCA0MiwgNDIsIDAuNik7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC5JTUcge1xyXG5cdFx0d2lkdGg6IDY4cnB4O1xyXG5cdFx0aGVpZ2h0OiA1MHJweDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxNyU7XHJcblx0fVxyXG5cclxuXHQub25saW5lcyB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0fVxyXG5cclxuXHQub25saW5lczo6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0d2lkdGg6IDE1cnB4O1xyXG5cdFx0aGVpZ2h0OiAxNXJweDtcclxuXHRcdGJhY2tncm91bmQ6IHJnYigwLCAxNzEsIDEwMyk7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHR0b3A6IDIwcnB4O1xyXG5cdFx0bGVmdDogLTIwcnB4XHJcblx0fVxyXG5cclxuXHQubGluZSB7XHJcblx0XHR3aWR0aDogMnJweDtcclxuXHRcdGhlaWdodDogMjRycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsXHJcblx0XHRcdFx0cmdiYSgwLCAwLCAwLCAwKSAwJSxcclxuXHRcdFx0XHRyZ2IoMjU1LCAyNTUsIDI1NSkgNTAlLFxyXG5cdFx0XHRcdHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XHJcblx0XHRtYXJnaW4tdG9wOiAxMnJweDtcclxuXHR9XHJcblxyXG5cdC5sb2FkaW5nLXN0YXR1cyB7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG5cdFx0cGFkZGluZzogMjBycHg7XHJcblx0XHRmb250LXNpemU6IDIycnB4O1xyXG5cdH1cclxuXHJcblx0Lyog6YGu572p5bGCICovXHJcblx0LmFncmVlbWVudC1tYXNrIHtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHR6LWluZGV4OiA5OTk5O1xyXG5cdH1cclxuXHJcblx0LnBvcHVwLVRpdGxlIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0cGFkZGluZzogMzBycHggMHJweDtcclxuXHR9XHJcblxyXG5cdC5wb3B1cC1idXR0b25zIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQvKiDlvLnnqpfkuLvkvZMgKi9cclxuXHQuYWdyZWVtZW50LXBvcHVwIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA1MCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsIDQyLCA0Mik7XHJcblx0XHRib3JkZXItcmFkaXVzOiA2MHJweCA2MHJweCAwcnB4IDBycHg7XHJcblx0XHRwYWRkaW5nOiA0MHJweDtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRib3R0b206IDBycHg7XHJcblx0fVxyXG5cclxuXHQuYWdyZWVtZW50LXBvcHVwQyB7XHJcblx0XHR3aWR0aDogNjAlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDQyLCA0MiwgNDIpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNDBycHg7XHJcblx0XHRwYWRkaW5nOiAzMHJweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyMDAsIDc4LCAwLjMpO1xyXG5cdH1cclxuXHJcblx0LmFncmVlbWVudC1wb3B1cEQge1xyXG5cdFx0d2lkdGg6IDcwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYig0MiwgNDIsIDQyKTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDQwcnB4O1xyXG5cdFx0cGFkZGluZzogNDBycHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE4NywgMjMwLCAwLCAwLjMpO1xyXG5cdH1cclxuXHJcblx0LnBvcHVwLWZsZXgge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdGhlaWdodDogNTBycHg7XHJcblx0XHRwYWRkaW5nOiAzMHJweDtcclxuXHR9XHJcblxyXG5cdC5wb3B1cC1pbnB1dCB7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMnJweDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxNXJweDtcclxuXHRcdHBhZGRpbmc6IDEwcnB4IDBycHg7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdH1cclxuXHJcblx0LnN2ZyB7XHJcblx0XHR3aWR0aDogNThycHg7XHJcblx0XHRoZWlnaHQ6IDYycnB4O1xyXG5cdH1cclxuXHJcblx0Lyog6YCa55So5oyJ6ZKu5qC35byPICovXHJcblx0LmJ0biB7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDYwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNDBycHg7XHJcblx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0bWFyZ2luOiAxMHJweCBhdXRvO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHR9XHJcblxyXG5cdC8qIOWQjOaEj+aMiemSriAqL1xyXG5cdC5hZ3JlZUJ0biB7XHJcblx0XHRiYWNrZ3JvdW5kOiAjRkZDODRFO1xyXG5cdFx0Y29sb3I6ICMyMzIzMjM7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHR3aWR0aDogMTcwcnB4ICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cclxuXHQuYWdyZWVCdG40IHtcclxuXHRcdGJhY2tncm91bmQ6IHJnYmEoMTg3LCAyMzAsIDAsIDEpO1xyXG5cdFx0Y29sb3I6ICMyMzIzMjM7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHR3aWR0aDogMTcwcnB4ICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cclxuXHQuY2xvc2VCdG4ge1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNSwgMzUsIDM1LCAwLjg3KTtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xyXG5cdH1cclxuXHJcblx0Lyog5o+Q56S65qGG5qC35byPICovXHJcblx0LnRvb2x0aXAtYm94IHtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHJpZ2h0OiAxOHJweDtcclxuXHRcdHRvcDogMTQwcnB4O1xyXG5cdFx0Lyog5qC55o2u5a+86Iiq5qCP6auY5bqm6LCD5pW0ICovXHJcblx0XHR6LWluZGV4OiA5OTk5O1xyXG5cdH1cclxuXHJcblx0LnRvb2x0aXAtYXJyb3cge1xyXG5cdFx0d2lkdGg6IDA7XHJcblx0XHRoZWlnaHQ6IDA7XHJcblx0XHRib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdFx0Ym9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0XHRib3JkZXItYm90dG9tOiA4cHggc29saWQgIzMzMztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHJpZ2h0OiAxMnB4O1xyXG5cdFx0dG9wOiAtOHB4O1xyXG5cdH1cclxuXHJcblx0LnRvb2x0aXAtY29udGVudCB7XHJcblx0XHRib3JkZXItcmFkaXVzOiA4cnB4O1xyXG5cdFx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xyXG5cdFx0YmFja2dyb3VuZDogcmdiYSg1OCwgNTgsIDU4LCAxKTtcclxuXHRcdHBhZGRpbmc6IDEwcHggMDtcclxuXHRcdG1pbi13aWR0aDogMTIwcHg7XHJcblx0fVxyXG5cclxuXHQudG9vbHRpcC1pdGVtIHtcclxuXHRcdHBhZGRpbmc6IDhweCAxNnB4O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdC50b29sdGlwLWl0ZW0gdGV4dCB7XHJcblx0XHRtYXJnaW4tbGVmdDogOHB4O1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdH1cclxuXHJcblx0Lml0ZW0taWNvbiB7XHJcblx0XHR3aWR0aDogMTZweDtcclxuXHRcdGhlaWdodDogMTZweDtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 50));\nvar _index = __webpack_require__(/*! @/api/common/index.js */ 56);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n data: function data() {\n return {\n navBarHeight: 70 + uni.getSystemInfoSync().statusBarHeight,\n deviceList: [],\n tabs: [],\n activeTab: 0,\n showTooltip: false,\n Options: [{\n text: '重命名',\n style: {\n backgroundColor: '#E09319',\n borderRadius: '16px',\n width: '240rpx' // 初始宽度\n }\n }, {\n text: '删除',\n style: {\n backgroundColor: 'rgb(240, 60, 60)',\n borderRadius: '16px',\n width: '240rpx' // 初始宽度\n }\n }],\n\n navTitle: \"我的设备\",\n deleteShow: false,\n RenameModel: false,\n menuItems: [{\n text: '扫一扫添加',\n icon: '/static/images/scane.png',\n action: 'scan'\n }, {\n text: '蓝牙添加',\n icon: '/static/images/bluetooth.png',\n action: 'bluetooth'\n }],\n page: 1,\n // 当前页码\n size: 10,\n // 每页条数\n total: 0,\n // 总数据量\n loading: false,\n finished: false,\n deviceId: '',\n deviceName: \"\" //重命名\n };\n },\n\n methods: {\n // tab导航切换栏\n getTab: function getTab() {\n var _this = this;\n (0, _index.deviceTypeList)({}).then(function (res) {\n if (res.code == 200) {\n _this.tabs = [{\n id: '',\n name: '全部设备',\n typeName: '全部设备'\n }].concat((0, _toConsumableArray2.default)(res.data.map(function (item) {\n return {\n id: item.id,\n name: item.typeName,\n typeName: item.typeName,\n communicationMode: item.communicationMode\n };\n })));\n }\n });\n },\n // tab切换页\n switchTab: function switchTab(tab, index) {\n this.deviceList = [];\n this.activeTab = index;\n this.page = 1; // 重置页码\n this.finished = false; // 重\n // 明确传递参数,空字符串改为null或undefined\n var deviceType = tab.id === '' ? undefined : tab.id;\n this.getData(deviceType);\n },\n // 获取设备列表\n getData: function getData() {\n var _this2 = this;\n var deviceType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (this.loading || this.finished) return;\n this.loading = true;\n var data = {\n pageNum: this.page,\n pageSize: this.size,\n deviceType: deviceType // 使用传入的设备类型\n };\n\n (0, _index.deviceInfo)(data).then(function (res) {\n if (res.code == 200) {\n var newDevices = res.rows.map(function (device) {\n return _objectSpread(_objectSpread({}, device), {}, {\n showConfirm: false\n });\n });\n\n // 如果是第一页或切换分类,替换数据\n _this2.deviceList = _this2.page === 1 ? newDevices : [].concat((0, _toConsumableArray2.default)(_this2.deviceList), (0, _toConsumableArray2.default)(newDevices));\n _this2.total = res.total;\n // 判断是否加载完成\n if (res.rows.length < _this2.size || _this2.deviceList.length >= _this2.total) {\n _this2.finished = true;\n } else {\n _this2.page++;\n }\n }\n }).finally(function () {\n _this2.loading = false;\n });\n },\n // 滚动触底事件处理\n onScrollToLower: function onScrollToLower() {\n this.getData();\n },\n scan: function scan() {\n this.showTooltip = !this.showTooltip;\n },\n handleMenuClick: function handleMenuClick(item) {\n this.showTooltip = false; // 关闭弹窗\n switch (item.action) {\n case 'scan':\n uni.navigateTo({\n url: '/pages/common/scan/scan'\n });\n break;\n case 'bluetooth':\n uni.navigateTo({\n url: '/pages/6155/bluetooth/bluetooth'\n });\n break;\n }\n },\n // 右滑点击事件处理\n handleSwipeClick: function handleSwipeClick(e, item, index) {\n var content = e.content;\n __f__(\"log\", e, 'eeeee', \" at pages/common/index/index.vue:278\");\n switch (content.text) {\n case '删除':\n this.handleDeleteDevice(item, index);\n break;\n case '重命名':\n this.handleRenameDevice(item, index);\n break;\n }\n ;\n },\n // 删除设备\n handleDeleteDevice: function handleDeleteDevice(item, index) {\n this.deviceId = item;\n this.deleteShow = true;\n uni.hideTabBar();\n },\n // 确认删除\n handleBtn: function handleBtn() {\n var _this3 = this;\n uni.showTabBar();\n var data = {\n id: this.deviceId.id\n };\n (0, _index.deviceUnbind)(data).then(function (res) {\n if (res.code == 200) {\n uni.showToast({\n title: '删除成功',\n icon: 'none',\n duration: 1000\n });\n setTimeout(function () {\n _this3.onIntall();\n }, 500);\n _this3.deleteShow = false;\n } else {\n uni.showToast({\n title: res.msg,\n icon: 'none',\n duration: 1000\n });\n }\n });\n },\n // 重命名设备\n handleRenameDevice: function handleRenameDevice(item, index) {\n this.RenameModel = true;\n uni.hideTabBar();\n this.deviceId = item;\n },\n handleBtnName: function handleBtnName() {\n var _this4 = this;\n uni.showTabBar();\n var data = {\n id: this.deviceId.id,\n deviceName: this.deviceName\n };\n (0, _index.deviceReName)(data).then(function (res) {\n if (res.code == 200) {\n uni.showToast({\n title: res.msg,\n icon: 'none',\n duration: 1000\n });\n setTimeout(function () {\n _this4.onIntall();\n }, 500);\n _this4.RenameModel = false;\n _this4.deviceName = '';\n } else {\n uni.showToast({\n title: res.msg,\n icon: 'none',\n duration: 1000\n });\n }\n });\n },\n // 发生短信\n handleSend: function handleSend() {\n uni.navigateTo({\n url: '/pages/common/send/index'\n });\n },\n // 位置\n location: function location() {\n uni.navigateTo({\n url: '/pages/common/map/index'\n });\n },\n handleFile: function handleFile(item) {\n __f__(\"log\", item, 'item', \" at pages/common/index/index.vue:366\");\n // communicationMode 0是4G 1是蓝牙\n if (item.communicationMode == 0) {\n uni.navigateTo({\n url: \"/pages/6170/deviceControl/index?id=\".concat(item.id)\n });\n } else {\n uni.navigateTo({\n url: '/pages/6155/index'\n });\n }\n },\n onIntall: function onIntall() {\n this.page = 1;\n this.finished = false;\n this.getData(); // 重新加载第一页数据\n }\n },\n onShow: function onShow() {\n this.getTab();\n this.onIntall();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY29tbW9uL2luZGV4L2luZGV4LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibmF2QmFySGVpZ2h0IiwiZGV2aWNlTGlzdCIsInRhYnMiLCJhY3RpdmVUYWIiLCJzaG93VG9vbHRpcCIsIk9wdGlvbnMiLCJ0ZXh0Iiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJ3aWR0aCIsIm5hdlRpdGxlIiwiZGVsZXRlU2hvdyIsIlJlbmFtZU1vZGVsIiwibWVudUl0ZW1zIiwiaWNvbiIsImFjdGlvbiIsInBhZ2UiLCJzaXplIiwidG90YWwiLCJsb2FkaW5nIiwiZmluaXNoZWQiLCJkZXZpY2VJZCIsImRldmljZU5hbWUiLCJtZXRob2RzIiwiZ2V0VGFiIiwiaWQiLCJuYW1lIiwidHlwZU5hbWUiLCJyZXMiLCJjb21tdW5pY2F0aW9uTW9kZSIsInN3aXRjaFRhYiIsImdldERhdGEiLCJwYWdlTnVtIiwicGFnZVNpemUiLCJkZXZpY2VUeXBlIiwiZGV2aWNlIiwic2hvd0NvbmZpcm0iLCJvblNjcm9sbFRvTG93ZXIiLCJzY2FuIiwiaGFuZGxlTWVudUNsaWNrIiwidW5pIiwidXJsIiwiaGFuZGxlU3dpcGVDbGljayIsImNvbnRlbnQiLCJlIiwiaGFuZGxlRGVsZXRlRGV2aWNlIiwiaGFuZGxlQnRuIiwidGl0bGUiLCJkdXJhdGlvbiIsInNldFRpbWVvdXQiLCJoYW5kbGVSZW5hbWVEZXZpY2UiLCJoYW5kbGVCdG5OYW1lIiwiaGFuZGxlU2VuZCIsImxvY2F0aW9uIiwiaGFuZGxlRmlsZSIsIm9uSW50YWxsIiwib25TaG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUF1SUE7QUFLQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0FDO1VBQ0FDO1VBQ0FDO1FBQ0E7TUFDQSxHQUNBO1FBQ0FKO1FBQ0FDO1VBQ0FDO1VBQ0FDO1VBQ0FDO1FBQ0E7TUFDQSxFQUNBOztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBUjtRQUNBUztRQUNBQztNQUNBLEdBQ0E7UUFDQVY7UUFDQVM7UUFDQUM7TUFDQSxFQUNBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTs7RUFDQUM7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtVQUNBO1lBQ0FDO1lBQ0FDO1lBQ0FDO1VBQ0EsMkNBQ0FDO1lBQUE7Y0FDQUg7Y0FDQUM7Y0FDQUM7Y0FDQUU7WUFDQTtVQUFBLElBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQUE7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTs7TUFDQTtRQUNBO1VBQ0E7WUFBQSx1Q0FDQUM7Y0FDQUM7WUFBQTtVQUFBLENBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO1FBQ0E7VUFDQUM7WUFDQUM7VUFDQTtVQUNBO1FBQ0E7VUFDQUQ7WUFDQUM7VUFDQTtVQUNBO01BQUE7SUFFQTtJQUNBO0lBQ0FDO01BQ0EsSUFDQUMsVUFDQUMsRUFEQUQ7TUFFQTtNQUNBO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO01BQUE7TUFDQTtJQUNBO0lBQ0E7SUFDQUU7TUFDQTtNQUNBO01BQ0FMO0lBQ0E7SUFDQTtJQUNBTTtNQUFBO01BQ0FOO01BQ0E7UUFDQWY7TUFDQTtNQUNBO1FBQ0E7VUFDQWU7WUFDQU87WUFDQWpDO1lBQ0FrQztVQUNBO1VBQ0FDO1lBQ0E7VUFDQTtVQUNBO1FBQ0E7VUFDQVQ7WUFDQU87WUFDQWpDO1lBQ0FrQztVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUU7TUFDQTtNQUNBVjtNQUNBO0lBQ0E7SUFDQVc7TUFBQTtNQUNBWDtNQUNBO1FBQ0FmO1FBQ0FIO01BQ0E7TUFDQTtRQUNBO1VBQ0FrQjtZQUNBTztZQUNBakM7WUFDQWtDO1VBQ0E7VUFDQUM7WUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO1VBQ0FUO1lBQ0FPO1lBQ0FqQztZQUNBa0M7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FJO01BQ0FaO1FBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FZO01BQ0FiO1FBQ0FDO01BQ0E7SUFDQTtJQUNBYTtNQUNBO01BQ0E7TUFDQTtRQUNBZDtVQUNBQztRQUNBO01BQ0E7UUFDQUQ7VUFDQUM7UUFDQTtNQUNBO0lBRUE7SUFDQWM7TUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtFQUNBO0FBRUE7QUFBQSwyQiIsImZpbGUiOiI0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHRcdDwhLS0g5L2/55So6Ieq5a6a5LmJ5a+86Iiq5qCPIC0tPlxyXG5cdFx0PGN1c3RvbS1uYXZiYXIgOnRpdGxlPVwibmF2VGl0bGVcIiA6c2hvd0JhY2s9XCJmYWxzZVwiIGJhY2tncm91bmRDb2xvcj1cIiMyMDIwMjBcIiBjb2xvcj1cIiNGRkZGRkZcIlxyXG5cdFx0XHRyaWdodEljb249XCIvc3RhdGljL2ltYWdlcy9hZGQucG5nXCIgQHJpZ2h0LWNsaWNrPVwic2NhblwiPjwvY3VzdG9tLW5hdmJhcj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLXBhZ2VcIiA6c3R5bGU9XCJ7IHBhZGRpbmdUb3A6IG5hdkJhckhlaWdodCArICdweCcgfVwiPlxyXG5cdFx0XHQ8IS0tIGhhbmRsZVNlbmQgICDlj5HpgIHkv6Hmga8gLS0+XHJcblx0XHRcdDxzY3JvbGwtdmlldyBjbGFzcz1cInRhYi1iYXJcIiBzY3JvbGwteD1cInRydWVcIiBzY3JvbGwtd2l0aC1hbmltYXRpb24+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWItY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHQ8dmlldyB2LWZvcj1cIih0YWIsIGluZGV4KSBpbiB0YWJzXCIgOmtleT1cImluZGV4XCJcclxuXHRcdFx0XHRcdFx0OmNsYXNzPVwiWyd0YWItaXRlbScsIGFjdGl2ZVRhYiA9PT0gaW5kZXggPyAnYWN0aXZlJyA6ICcnXVwiIEBjbGljaz1cInN3aXRjaFRhYih0YWIsaW5kZXgpXCI+XHJcblx0XHRcdFx0XHRcdHt7dGFiLnR5cGVOYW1lfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvc2Nyb2xsLXZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwic2VuZEZsZXhcIj5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjYWxscG9saWNlXCI+5oql6K2mPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiU2VuZG1lc3NhZ2VcIiBAY2xpY2s9XCJsb2NhdGlvblwiPuS9jee9rjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIlNlbmRtZXNzYWdlXCIgQGNsaWNrPVwiaGFuZGxlU2VuZFwiPuWPkemAgeS/oeaBrzwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PHNjcm9sbC12aWV3IGNsYXNzPVwiZGV2aWNlLWxpc3RcIiBzY3JvbGwteSBAc2Nyb2xsdG9sb3dlcj1cIm9uU2Nyb2xsVG9Mb3dlclwiIDpsb3dlci10aHJlc2hvbGQ9XCIxMDBcIlxyXG5cdFx0XHRcdHN0eWxlPVwiaGVpZ2h0Ojgwdmg7XCI+XHJcblx0XHRcdFx0PHVuaS1zd2lwZS1hY3Rpb24gcmVmPVwic3dpcGVBY3Rpb25cIj5cclxuXHRcdFx0XHRcdDxibG9jayB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gZGV2aWNlTGlzdFwiIDprZXk9XCJpbmRleFwiIDpyZWY9XCInc3dpcGVJdGVtXycgKyBpbmRleFwiPlxyXG5cdFx0XHRcdFx0XHQ8dW5pLXN3aXBlLWFjdGlvbi1pdGVtIDpyaWdodC1vcHRpb25zPVwiT3B0aW9uc1wiIEBjbGljaz1cImhhbmRsZVN3aXBlQ2xpY2soJGV2ZW50LCBpdGVtLCBpbmRleClcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiZGV2aWNlLWNhcmRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIOiuvuWkh+WNoeeJh+WGheWuueS/neaMgeS4jeWPmCAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIFx0XHRcdDx2aWV3IEBjbGljay5zdG9wPVwiaGFuZGxlRmlsZShpdGVtKVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2UtaGVhZGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlSU1HXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJpdGVtLmRldmljZVBpY1wiIGNsYXNzPVwiSU1HXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRldmljZS1uYW1lXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+6K6+5aSHOnt7aXRlbS5kZXZpY2VOYW1lfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2UtaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJJRFwiIHYtaWY9XCJpdGVtLmNvbW11bmljYXRpb25Nb2RlPT0wXCI+SUQ6e3tpdGVtLmRldmljZUltZWl9fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJJRFwiIHYtZWxzZT5JRDp7e2l0ZW0uZGV2aWNlTWFjfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRldmljZS1mbGV4XCIgdi1pZj1cIml0ZW0uY29tbXVuaWNhdGlvbk1vZGU9PTBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvbmxpbmVzXCIgPuWcqOe6vzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaW5lXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz7nlLXph4/vvJo5MCU8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHYtaWY9XCJpdGVtLmNvbW11bmljYXRpb25Nb2RlPT0xXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLXN0YXR1cyBvbmxpbmVcIj7lt7Lov57mjqU8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLXN0YXR1cyB1bmxpbmVcIj7mnKrov57mjqU8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBAY2xpY2suc3RvcD1cImhhbmRsZUZpbGUoaXRlbSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLWhlYWRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRldmljZUlNR1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSA6c3JjPVwiaXRlbS5kZXZpY2VQaWNcIiBjbGFzcz1cIklNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXZpY2UtbmFtZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3PuiuvuWkhzp7e2l0ZW0uZGV2aWNlTmFtZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiSURcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiSURcIiB2LWlmPVwiaXRlbS5jb21tdW5pY2F0aW9uTW9kZT09MFwiPklEOnt7aXRlbS5kZXZpY2VJbWVpfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiSURcIiB2LWVsc2U+SUQ6e3tpdGVtLmRldmljZU1hY319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvbmxpbmVzXCIgdi1pZj1cIml0ZW0uY29tbXVuaWNhdGlvbk1vZGU9PTBcIj7lnKjnur88L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz7nlLXph4/vvJo5MCU8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHYtaWY9XCJpdGVtLmNvbW11bmljYXRpb25Nb2RlPT0xXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLXN0YXR1cyBvbmxpbmVcIj7lt7Lov57mjqU8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLXN0YXR1cyB1bmxpbmVcIj7mnKrov57mjqU8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZXMvY2lyZXMucG5nXCIgY2xhc3M9XCJjaXJjbGVcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHQ8L3VuaS1zd2lwZS1hY3Rpb24taXRlbT5cclxuXHRcdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0PC91bmktc3dpcGUtYWN0aW9uPlxyXG5cdFx0XHRcdDwhLS0g5Yqg6L2954q25oCB5o+Q56S6IC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibG9hZGluZy1zdGF0dXNcIj5cclxuXHRcdFx0XHRcdDx0ZXh0IHYtaWY9XCJsb2FkaW5nXCI+5Yqg6L295LitLi4uPC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQgdi1pZj1cImZpbmlzaGVkXCI+5rKh5pyJ5pu05aSa5pWw5o2u5LqGPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC9zY3JvbGwtdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5Yig6Zmk5by55qGGIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtbWFza1wiIHYtaWY9XCJkZWxldGVTaG93XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYWdyZWVtZW50LXBvcHVwQ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9zdGF0aWMvaW1hZ2VzL2RlbGwucG5nXCIgbW9kZT1cIlwiIGNsYXNzPVwic3ZnXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDx1bmktaWNvbiBjbGFzcz1cInRyYXNoXCI+PC91bmktaWNvbj5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLVRpdGxlXCI+56Gu5a6a5Yig6Zmk5omA6YCJ6K6+5aSH77yBPC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaMiemSrue7hCAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4gYWdyZWVCdG5cIiBAY2xpY2s9XCJoYW5kbGVCdG5cIj7noa7lrpo8L2J1dHRvbj5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0gPT09PT09PT096YeN5ZG95ZCNPT09PT09PT09PT09PT0gLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImFncmVlbWVudC1tYXNrXCIgdi1pZj1cIlJlbmFtZU1vZGVsXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYWdyZWVtZW50LXBvcHVwRFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0PuiuvuWkh+WQjeensDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiZGV2aWNlTmFtZVwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl6K6+5aSH5ZCN56ewXCIgY2xhc3M9XCJwb3B1cC1pbnB1dFwiIC8+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDmjInpkq7nu4QgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1idXR0b25zXCIgc3R5bGU9XCJtYXJnaW4tdG9wOjUwcnB4O1wiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0biBhZ3JlZUJ0bjRcIiBAY2xpY2s9XCJoYW5kbGVCdG5OYW1lXCI+56Gu5a6aPC9idXR0b24+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOWwj+aPkOekuuahhiAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwidG9vbHRpcC1ib3hcIiB2LWlmPVwic2hvd1Rvb2x0aXBcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidG9vbHRpcC1pdGVtXCIgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIG1lbnVJdGVtc1wiIDprZXk9XCJpbmRleFwiXHJcblx0XHRcdFx0XHRAY2xpY2s9XCJoYW5kbGVNZW51Q2xpY2soaXRlbSlcIj5cclxuXHRcdFx0XHRcdDxpbWFnZSA6c3JjPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJpdGVtLWljb25cIiAvPlxyXG5cdFx0XHRcdFx0PHRleHQ+e3sgaXRlbS50ZXh0IH19PC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHtcclxuXHRcdGRldmljZVR5cGVMaXN0LFxyXG5cdFx0ZGV2aWNlSW5mbyxcclxuXHRcdGRldmljZVVuYmluZCwgLy/liKDpmaTorr7lpIdcclxuXHRcdGRldmljZVJlTmFtZVxyXG5cdH0gZnJvbSAnQC9hcGkvY29tbW9uL2luZGV4LmpzJ1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0bmF2QmFySGVpZ2h0OiA3MCArIHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnN0YXR1c0JhckhlaWdodCxcclxuXHRcdFx0XHRkZXZpY2VMaXN0OiBbXSxcclxuXHRcdFx0XHR0YWJzOiBbXSxcclxuXHRcdFx0XHRhY3RpdmVUYWI6IDAsXHJcblx0XHRcdFx0c2hvd1Rvb2x0aXA6IGZhbHNlLFxyXG5cdFx0XHRcdE9wdGlvbnM6IFt7XHJcblx0XHRcdFx0XHRcdHRleHQ6ICfph43lkb3lkI0nLFxyXG5cdFx0XHRcdFx0XHRzdHlsZToge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogJyNFMDkzMTknLFxyXG5cdFx0XHRcdFx0XHRcdGJvcmRlclJhZGl1czogJzE2cHgnLFxyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOiAnMjQwcnB4JywgLy8g5Yid5aeL5a695bqmXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHR0ZXh0OiAn5Yig6ZmkJyxcclxuXHRcdFx0XHRcdFx0c3R5bGU6IHtcclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2IoMjQwLCA2MCwgNjApJyxcclxuXHRcdFx0XHRcdFx0XHRib3JkZXJSYWRpdXM6ICcxNnB4JyxcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDogJzI0MHJweCcsIC8vIOWIneWni+WuveW6plxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRdLFxyXG5cdFx0XHRcdG5hdlRpdGxlOiBcIuaIkeeahOiuvuWkh1wiLFxyXG5cdFx0XHRcdGRlbGV0ZVNob3c6IGZhbHNlLFxyXG5cdFx0XHRcdFJlbmFtZU1vZGVsOiBmYWxzZSxcclxuXHRcdFx0XHRtZW51SXRlbXM6IFt7XHJcblx0XHRcdFx0XHRcdHRleHQ6ICfmiavkuIDmiavmt7vliqAnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnL3N0YXRpYy9pbWFnZXMvc2NhbmUucG5nJyxcclxuXHRcdFx0XHRcdFx0YWN0aW9uOiAnc2NhbidcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdHRleHQ6ICfok53niZnmt7vliqAnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnL3N0YXRpYy9pbWFnZXMvYmx1ZXRvb3RoLnBuZycsXHJcblx0XHRcdFx0XHRcdGFjdGlvbjogJ2JsdWV0b290aCdcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRdLFxyXG5cdFx0XHRcdHBhZ2U6IDEsIC8vIOW9k+WJjemhteeggVxyXG5cdFx0XHRcdHNpemU6IDEwLCAvLyDmr4/pobXmnaHmlbBcclxuXHRcdFx0XHR0b3RhbDogMCwgLy8g5oC75pWw5o2u6YePXHJcblx0XHRcdFx0bG9hZGluZzogZmFsc2UsXHJcblx0XHRcdFx0ZmluaXNoZWQ6IGZhbHNlLFxyXG5cdFx0XHRcdGRldmljZUlkOiAnJyxcclxuXHRcdFx0XHRkZXZpY2VOYW1lOiBcIlwiIC8v6YeN5ZG95ZCNXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8vIHRhYuWvvOiIquWIh+aNouagj1xyXG5cdFx0XHRnZXRUYWIoKSB7XHJcblx0XHRcdFx0ZGV2aWNlVHlwZUxpc3Qoe30pLnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnRhYnMgPSBbe1xyXG5cdFx0XHRcdFx0XHRcdFx0aWQ6ICcnLFxyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogJ+WFqOmDqOiuvuWkhycsXHJcblx0XHRcdFx0XHRcdFx0XHR0eXBlTmFtZTogJ+WFqOmDqOiuvuWkhydcclxuXHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdC4uLnJlcy5kYXRhLm1hcChpdGVtID0+ICh7XHJcblx0XHRcdFx0XHRcdFx0XHRpZDogaXRlbS5pZCxcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IGl0ZW0udHlwZU5hbWUsXHJcblx0XHRcdFx0XHRcdFx0XHR0eXBlTmFtZTogaXRlbS50eXBlTmFtZSxcclxuXHRcdFx0XHRcdFx0XHRcdGNvbW11bmljYXRpb25Nb2RlOiBpdGVtLmNvbW11bmljYXRpb25Nb2RlXHJcblx0XHRcdFx0XHRcdFx0fSkpXHJcblx0XHRcdFx0XHRcdF07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gdGFi5YiH5o2i6aG1XHJcblx0XHRcdHN3aXRjaFRhYih0YWIsIGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5kZXZpY2VMaXN0ID0gW107XHJcblx0XHRcdFx0dGhpcy5hY3RpdmVUYWIgPSBpbmRleDtcclxuXHRcdFx0XHR0aGlzLnBhZ2UgPSAxOyAvLyDph43nva7pobXnoIFcclxuXHRcdFx0XHR0aGlzLmZpbmlzaGVkID0gZmFsc2U7IC8vIOmHjVxyXG5cdFx0XHRcdC8vIOaYjuehruS8oOmAkuWPguaVsO+8jOepuuWtl+espuS4suaUueS4um51bGzmiJZ1bmRlZmluZWRcclxuXHRcdFx0XHRjb25zdCBkZXZpY2VUeXBlID0gdGFiLmlkID09PSAnJyA/IHVuZGVmaW5lZCA6IHRhYi5pZDtcclxuXHRcdFx0XHR0aGlzLmdldERhdGEoZGV2aWNlVHlwZSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOiOt+WPluiuvuWkh+WIl+ihqFxyXG5cdFx0XHRnZXREYXRhKGRldmljZVR5cGUgPSAnJykge1xyXG5cdFx0XHRcdGlmICh0aGlzLmxvYWRpbmcgfHwgdGhpcy5maW5pc2hlZCkgcmV0dXJuO1xyXG5cdFx0XHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0XHRcdFx0bGV0IGRhdGEgPSB7XHJcblx0XHRcdFx0XHRwYWdlTnVtOiB0aGlzLnBhZ2UsXHJcblx0XHRcdFx0XHRwYWdlU2l6ZTogdGhpcy5zaXplLFxyXG5cdFx0XHRcdFx0ZGV2aWNlVHlwZTogZGV2aWNlVHlwZSAvLyDkvb/nlKjkvKDlhaXnmoTorr7lpIfnsbvlnotcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZGV2aWNlSW5mbyhkYXRhKS50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV3RGV2aWNlcyA9IHJlcy5yb3dzLm1hcChkZXZpY2UgPT4gKHtcclxuXHRcdFx0XHRcdFx0XHQuLi5kZXZpY2UsXHJcblx0XHRcdFx0XHRcdFx0c2hvd0NvbmZpcm06IGZhbHNlXHJcblx0XHRcdFx0XHRcdH0pKTtcclxuXHJcblx0XHRcdFx0XHRcdC8vIOWmguaenOaYr+esrOS4gOmhteaIluWIh+aNouWIhuexu++8jOabv+aNouaVsOaNrlxyXG5cdFx0XHRcdFx0XHR0aGlzLmRldmljZUxpc3QgPSB0aGlzLnBhZ2UgPT09IDEgPyBuZXdEZXZpY2VzIDogWy4uLnRoaXMuZGV2aWNlTGlzdCwgLi4ubmV3RGV2aWNlc107XHJcblx0XHRcdFx0XHRcdHRoaXMudG90YWwgPSByZXMudG90YWw7XHJcblx0XHRcdFx0XHRcdC8vIOWIpOaWreaYr+WQpuWKoOi9veWujOaIkFxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnJvd3MubGVuZ3RoIDwgdGhpcy5zaXplIHx8IHRoaXMuZGV2aWNlTGlzdC5sZW5ndGggPj0gdGhpcy50b3RhbCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZmluaXNoZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGFnZSsrO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkuZmluYWxseSgoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5rua5Yqo6Kem5bqV5LqL5Lu25aSE55CGXHJcblx0XHRcdG9uU2Nyb2xsVG9Mb3dlcigpIHtcclxuXHRcdFx0XHR0aGlzLmdldERhdGEoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0c2NhbigpIHtcclxuXHRcdFx0XHR0aGlzLnNob3dUb29sdGlwID0gIXRoaXMuc2hvd1Rvb2x0aXA7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRoYW5kbGVNZW51Q2xpY2soaXRlbSkge1xyXG5cdFx0XHRcdHRoaXMuc2hvd1Rvb2x0aXAgPSBmYWxzZTsgLy8g5YWz6Zet5by556qXXHJcblx0XHRcdFx0c3dpdGNoIChpdGVtLmFjdGlvbikge1xyXG5cdFx0XHRcdFx0Y2FzZSAnc2Nhbic6XHJcblx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdFx0XHR1cmw6ICcvcGFnZXMvY29tbW9uL3NjYW4vc2NhbidcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAnYmx1ZXRvb3RoJzpcclxuXHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy82MTU1L2JsdWV0b290aC9ibHVldG9vdGgnXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWPs+a7keeCueWHu+S6i+S7tuWkhOeQhlxyXG5cdFx0XHRoYW5kbGVTd2lwZUNsaWNrKGUsIGl0ZW0sIGluZGV4KSB7XHJcblx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0Y29udGVudFxyXG5cdFx0XHRcdH0gPSBlXHJcblx0XHRcdFx0Y29uc29sZS5sb2coZSwgJ2VlZWVlJyk7XHJcblx0XHRcdFx0c3dpdGNoIChjb250ZW50LnRleHQpIHtcclxuXHRcdFx0XHRcdGNhc2UgJ+WIoOmZpCc6XHJcblx0XHRcdFx0XHRcdHRoaXMuaGFuZGxlRGVsZXRlRGV2aWNlKGl0ZW0sIGluZGV4KVxyXG5cdFx0XHRcdFx0XHRicmVha1xyXG5cdFx0XHRcdFx0Y2FzZSAn6YeN5ZG95ZCNJzpcclxuXHRcdFx0XHRcdFx0dGhpcy5oYW5kbGVSZW5hbWVEZXZpY2UoaXRlbSwgaW5kZXgpXHJcblx0XHRcdFx0XHRcdGJyZWFrXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5Yig6Zmk6K6+5aSHXHJcblx0XHRcdGhhbmRsZURlbGV0ZURldmljZShpdGVtLCBpbmRleCkge1xyXG5cdFx0XHRcdHRoaXMuZGV2aWNlSWQgPSBpdGVtXHJcblx0XHRcdFx0dGhpcy5kZWxldGVTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdHVuaS5oaWRlVGFiQmFyKClcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g56Gu6K6k5Yig6ZmkXHJcblx0XHRcdGhhbmRsZUJ0bigpIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RhYkJhcigpXHJcblx0XHRcdFx0bGV0IGRhdGEgPSB7XHJcblx0XHRcdFx0XHRpZDogdGhpcy5kZXZpY2VJZC5pZFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkZXZpY2VVbmJpbmQoZGF0YSkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiAn5Yig6Zmk5oiQ5YqfJyxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDEwMDBcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMub25JbnRhbGwoKTtcclxuXHRcdFx0XHRcdFx0fSwgNTAwKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5kZWxldGVTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiByZXMubXNnLFxyXG5cdFx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDph43lkb3lkI3orr7lpIdcclxuXHRcdFx0aGFuZGxlUmVuYW1lRGV2aWNlKGl0ZW0sIGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5SZW5hbWVNb2RlbCA9IHRydWVcclxuXHRcdFx0XHR1bmkuaGlkZVRhYkJhcigpXHJcblx0XHRcdFx0dGhpcy5kZXZpY2VJZCA9IGl0ZW1cclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlQnRuTmFtZSgpIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RhYkJhcigpXHJcblx0XHRcdFx0bGV0IGRhdGEgPSB7XHJcblx0XHRcdFx0XHRpZDogdGhpcy5kZXZpY2VJZC5pZCxcclxuXHRcdFx0XHRcdGRldmljZU5hbWU6IHRoaXMuZGV2aWNlTmFtZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkZXZpY2VSZU5hbWUoZGF0YSkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiByZXMubXNnLFxyXG5cdFx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5vbkludGFsbCgpO1xyXG5cdFx0XHRcdFx0XHR9LCA1MDApO1xyXG5cdFx0XHRcdFx0XHR0aGlzLlJlbmFtZU1vZGVsID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0dGhpcy5kZXZpY2VOYW1lID0gJydcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiByZXMubXNnLFxyXG5cdFx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlj5HnlJ/nn63kv6FcclxuXHRcdFx0aGFuZGxlU2VuZCgpIHtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6ICcvcGFnZXMvY29tbW9uL3NlbmQvaW5kZXgnXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5L2N572uXHJcblx0XHRcdGxvY2F0aW9uKCl7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOicvcGFnZXMvY29tbW9uL21hcC9pbmRleCdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVGaWxlKGl0ZW0pIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhpdGVtLCAnaXRlbScpO1xyXG5cdFx0XHRcdC8vIGNvbW11bmljYXRpb25Nb2RlIDDmmK80RyAx5piv6JOd54mZXHJcblx0XHRcdFx0aWYgKGl0ZW0uY29tbXVuaWNhdGlvbk1vZGUgPT0gMCkge1xyXG5cdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0XHR1cmw6IGAvcGFnZXMvNjE3MC9kZXZpY2VDb250cm9sL2luZGV4P2lkPSR7aXRlbS5pZH1gXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy82MTU1L2luZGV4J1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbkludGFsbCgpIHtcclxuXHRcdFx0XHR0aGlzLnBhZ2UgPSAxO1xyXG5cdFx0XHRcdHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmdldERhdGEoKTsgLy8g6YeN5paw5Yqg6L2956ys5LiA6aG15pWw5o2uXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0b25TaG93KCkge1xyXG5cdFx0XHR0aGlzLmdldFRhYigpXHJcblx0XHRcdHRoaXMub25JbnRhbGwoKVxyXG5cdFx0fVxyXG5cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC8qIOmhtemdouaVtOS9k+agt+W8jyAqL1xyXG5cdC5kZXZpY2UtcGFnZSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDE4LCAxOCwgMTgpO1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0fVxyXG5cclxuXHQudGFiLWJhciB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0Lyog56aB5q2i5o2i6KGMICovXHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHR9XHJcblxyXG5cdC50YWItY29udGFpbmVyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgKi9cclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDQwcnB4O1xyXG5cdFx0LyogXHRtaW4td2lkdGg6IDEwMCU7ICovXHJcblx0XHQvKiDmnIDlsI/lrr3luqYgKi9cclxuXHR9XHJcblxyXG5cdC50YWItaXRlbSB7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0LyogXHRtaW4td2lkdGg6IDEyMHJweDsgKi9cclxuXHRcdHBhZGRpbmc6IDAgMzBycHg7XHJcblx0XHQvKiDlt6blj7PlhoXovrnot50gKi9cclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdC8qIOaWh+Wtl+WxheS4rSAqL1xyXG5cdFx0Lyog6K6+572u5pyA5bCP5a695bqmICovXHJcblx0fVxyXG5cclxuXHQuYWN0aXZlIHtcclxuXHRcdGNvbG9yOiByZ2JhKDE4NywgMjMwLCAwLCAxKTtcclxuXHRcdGJvcmRlci1ib3R0b206IDZycHggc29saWQgcmdiYSgxODcsIDIzMCwgMCwgMSk7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdH1cclxuXHJcblx0LnNlbmRGbGV4IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAzMHJweDtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0fVxyXG5cclxuXHQuZ3BycyB7XHJcblx0XHR3aWR0aDogMjhycHg7XHJcblx0XHRoZWlnaHQ6IDM1cnB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bGVmdDogNTBycHhcclxuXHR9XHJcblxyXG5cdC5TZW5kbWVzc2FnZSB7XHJcblx0XHRtYXJnaW4tbGVmdDogNTBycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHR9XHJcblxyXG5cdC5jYWxscG9saWNlIHtcclxuXHRcdGNvbG9yOiByZ2JhKDIyNCwgNTIsIDUyLCAxKTtcclxuXHR9XHJcblxyXG5cdC8qIOiuvuWkh+WNoeeJhyAqL1xyXG5cdC5kZXZpY2UtY2FyZCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjYsIDI2LCAyNik7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG5cdC8qIFx0LmRldmljZS1oZWFkZXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxNXJweDtcclxuXHRcdHBhZGRpbmc6IDMwcnB4IDAgMTBycHggMzBycHg7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcblxyXG5cdC5kZXZpY2UtbmFtZSB7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0XHRtYXJnaW4tbGVmdDogMjRycHg7XHJcblx0XHRsaW5lLWhlaWdodDogNTBycHg7XHJcblx0fVxyXG5cclxuXHQuSUQge1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHRcdGZvbnQtc2l6ZTogMjRycHg7XHJcblx0fVxyXG5cclxuXHQuZGV2aWNlLXN0YXR1cyB7XHJcblx0XHR3aWR0aDogMTIycnB4O1xyXG5cdFx0aGVpZ2h0OiA1MnJweDtcclxuXHRcdGZvbnQtc2l6ZTogMjZycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAwcHggOHB4IDBweCA4cHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsIDQyLCA0Mik7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDBycHg7XHJcblx0XHRyaWdodDogMHJweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGxpbmUtaGVpZ2h0OiA1MnJweDtcclxuXHR9XHJcblxyXG5cdC5jaXJjbGUge1xyXG5cdFx0d2lkdGg6IDhycHg7XHJcblx0XHRoZWlnaHQ6IDQwcnB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDE4cnB4O1xyXG5cdFx0dG9wOiA2NXJweDtcclxuXHR9XHJcblxyXG5cdC5vbmxpbmUge1xyXG5cdFx0Y29sb3I6IHJnYigxODcsIDIzMCwgMCk7XHJcblx0fVxyXG5cclxuXHQudW5saW5lIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XHJcblx0fVxyXG5cclxuXHQuZGV2aWNlLWlkIHtcclxuXHRcdGZvbnQtc2l6ZTogMjZycHg7XHJcblx0XHRjb2xvcjogIzk5OTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0fVxyXG5cclxuXHQuZGV2aWNlLWluZm8ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHQuZGV2aWNlLWZsZXh7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0XHJcblx0fVxyXG5cclxuXHQuZGV2aWNlSU1HIHtcclxuXHRcdHdpZHRoOiAxMDBycHg7XHJcblx0XHRoZWlnaHQ6IDEwMHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MiwgNDIsIDQyLCAwLjYpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQuSU1HIHtcclxuXHRcdHdpZHRoOiA2OHJweDtcclxuXHRcdGhlaWdodDogNTBycHg7XHJcblx0XHRtYXJnaW4tbGVmdDogMTclO1xyXG5cdH1cclxuXHJcblx0Lm9ubGluZXM6OmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHdpZHRoOiAxNXJweDtcclxuXHRcdGhlaWdodDogMTVycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2IoMCwgMTcxLCAxMDMpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXG5cdFx0bGVmdDogMTIwcnB4O1xyXG5cdFx0dG9wOiAxNXJweFxyXG5cdH1cclxuXHJcblx0LmxpbmUge1xyXG5cdFx0d2lkdGg6IDJycHg7XHJcblx0XHRoZWlnaHQ6IDI0cnB4O1xyXG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLFxyXG5cdFx0XHRcdHJnYmEoMCwgMCwgMCwgMCkgMCUsXHJcblx0XHRcdFx0cmdiKDI1NSwgMjU1LCAyNTUpIDUwJSxcclxuXHRcdFx0XHRyZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpO1xyXG5cdFx0bWFyZ2luLXRvcDogMTJycHg7XHJcblx0fVxyXG5cclxuXHQubG9hZGluZy1zdGF0dXMge1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHRcdHBhZGRpbmc6IDIwcnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMnJweDtcclxuXHR9ICovXHJcblx0LmRldmljZS1oZWFkZXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxNXJweDtcclxuXHRcdHBhZGRpbmc6IDMwcnB4IDAgMTBycHggMzBycHg7XHJcblx0fVxyXG5cclxuXHQudW5saW5lIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XHJcblx0fVxyXG5cclxuXHQuZGV2aWNlLW5hbWUge1xyXG5cdFx0Zm9udC1zaXplOiAzMnJweDtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDI0cnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDUwcnB4O1xyXG5cdFx0d2lkdGg6IDc1JTtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0fVxyXG5cclxuXHQuSUQge1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHRcdGZvbnQtc2l6ZTogMjZycHg7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHR9XHJcblxyXG5cdC5kZXZpY2Utc3RhdHVzIHtcclxuXHRcdHdpZHRoOiAxMjJycHg7XHJcblx0XHRoZWlnaHQ6IDUycnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDBweCA4cHggMHB4IDhweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYig0MiwgNDIsIDQyKTtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMHJweDtcclxuXHRcdHJpZ2h0OiAwcnB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDUycnB4O1xyXG5cdH1cclxuXHJcblx0LmNpcmNsZSB7XHJcblx0XHR3aWR0aDogOHJweDtcclxuXHRcdGhlaWdodDogNDBycHg7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMjVycHg7XHJcblx0XHR0b3A6IDYwcnB4O1xyXG5cdH1cclxuXHJcblx0Lm9ubGluZSB7XHJcblx0XHRjb2xvcjogcmdiKDE4NywgMjMwLCAwKTtcclxuXHR9XHJcblxyXG5cdC5kZXZpY2UtaWQge1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdGNvbG9yOiAjOTk5O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHR9XHJcblxyXG5cdC5kZXZpY2UtaW5mbyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOiAwcnB4IDBycHggMzBycHggMzBycHg7XHJcblx0fVxyXG5cclxuXHQuZGV2aWNlSU1HIHtcclxuXHRcdHdpZHRoOiAxMDBycHg7XHJcblx0XHRoZWlnaHQ6IDEwMHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MiwgNDIsIDQyLCAwLjYpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQuSU1HIHtcclxuXHRcdHdpZHRoOiA2OHJweDtcclxuXHRcdGhlaWdodDogNTBycHg7XHJcblx0XHRtYXJnaW4tbGVmdDogMTclO1xyXG5cdH1cclxuXHJcblx0Lm9ubGluZXMge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuXHJcblx0Lm9ubGluZXM6OmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHdpZHRoOiAxNXJweDtcclxuXHRcdGhlaWdodDogMTVycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2IoMCwgMTcxLCAxMDMpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXG5cdFx0dG9wOiAyMHJweDtcclxuXHRcdGxlZnQ6IC0yMHJweFxyXG5cdH1cclxuXHJcblx0LmxpbmUge1xyXG5cdFx0d2lkdGg6IDJycHg7XHJcblx0XHRoZWlnaHQ6IDI0cnB4O1xyXG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLFxyXG5cdFx0XHRcdHJnYmEoMCwgMCwgMCwgMCkgMCUsXHJcblx0XHRcdFx0cmdiKDI1NSwgMjU1LCAyNTUpIDUwJSxcclxuXHRcdFx0XHRyZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpO1xyXG5cdFx0bWFyZ2luLXRvcDogMTJycHg7XHJcblx0fVxyXG5cclxuXHQubG9hZGluZy1zdGF0dXMge1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHRcdHBhZGRpbmc6IDIwcnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMnJweDtcclxuXHR9XHJcblxyXG5cdC8qIOmBrue9qeWxgiAqL1xyXG5cdC5hZ3JlZW1lbnQtbWFzayB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0ei1pbmRleDogOTk5OTtcclxuXHR9XHJcblxyXG5cdC5wb3B1cC1UaXRsZSB7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdHBhZGRpbmc6IDMwcnB4IDBycHg7XHJcblx0fVxyXG5cclxuXHQucG9wdXAtYnV0dG9ucyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0Lyog5by556qX5Li75L2TICovXHJcblx0LmFncmVlbWVudC1wb3B1cCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogNTAlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDQyLCA0MiwgNDIpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNjBycHggNjBycHggMHJweCAwcnB4O1xyXG5cdFx0cGFkZGluZzogNDBycHg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0Ym90dG9tOiAwcnB4O1xyXG5cdH1cclxuXHJcblx0LmFncmVlbWVudC1wb3B1cEMge1xyXG5cdFx0d2lkdGg6IDYwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYig0MiwgNDIsIDQyKTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDQwcnB4O1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjAwLCA3OCwgMC4zKTtcclxuXHR9XHJcblxyXG5cdC5hZ3JlZW1lbnQtcG9wdXBEIHtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsIDQyLCA0Mik7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0MHJweDtcclxuXHRcdHBhZGRpbmc6IDQwcnB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgxODcsIDIzMCwgMCwgMC4zKTtcclxuXHR9XHJcblxyXG5cdC5wb3B1cC1mbGV4IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0XHRoZWlnaHQ6IDUwcnB4O1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0fVxyXG5cclxuXHQucG9wdXAtaW5wdXQge1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTJycHg7XHJcblx0XHRtYXJnaW4tbGVmdDogMTVycHg7XHJcblx0XHRwYWRkaW5nOiAxMHJweCAwcnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHR9XHJcblxyXG5cdC5zdmcge1xyXG5cdFx0d2lkdGg6IDU4cnB4O1xyXG5cdFx0aGVpZ2h0OiA2MnJweDtcclxuXHR9XHJcblxyXG5cdC8qIOmAmueUqOaMiemSruagt+W8jyAqL1xyXG5cdC5idG4ge1xyXG5cdFx0aGVpZ2h0OiA2MHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA2MHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDQwcnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyNHJweDtcclxuXHRcdG1hcmdpbjogMTBycHggYXV0bztcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblx0fVxyXG5cclxuXHQvKiDlkIzmhI/mjInpkq4gKi9cclxuXHQuYWdyZWVCdG4ge1xyXG5cdFx0YmFja2dyb3VuZDogI0ZGQzg0RTtcclxuXHRcdGNvbG9yOiAjMjMyMzIzO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0d2lkdGg6IDE3MHJweCAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHJcblx0LmFncmVlQnRuNCB7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDE4NywgMjMwLCAwLCAxKTtcclxuXHRcdGNvbG9yOiAjMjMyMzIzO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0d2lkdGg6IDE3MHJweCAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHJcblx0LmNsb3NlQnRuIHtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzUsIDM1LCAzNSwgMC44Nyk7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcclxuXHR9XHJcblxyXG5cdC8qIOaPkOekuuahhuagt+W8jyAqL1xyXG5cdC50b29sdGlwLWJveCB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHRyaWdodDogMThycHg7XHJcblx0XHR0b3A6IDE0MHJweDtcclxuXHRcdC8qIOagueaNruWvvOiIquagj+mrmOW6puiwg+aVtCAqL1xyXG5cdFx0ei1pbmRleDogOTk5OTtcclxuXHR9XHJcblxyXG5cdC50b29sdGlwLWFycm93IHtcclxuXHRcdHdpZHRoOiAwO1xyXG5cdFx0aGVpZ2h0OiAwO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogOHB4IHNvbGlkICMzMzM7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMTJweDtcclxuXHRcdHRvcDogLThweDtcclxuXHR9XHJcblxyXG5cdC50b29sdGlwLWNvbnRlbnQge1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogOHJweDtcclxuXHRcdGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcclxuXHRcdGJhY2tncm91bmQ6IHJnYmEoNTgsIDU4LCA1OCwgMSk7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDA7XHJcblx0XHRtaW4td2lkdGg6IDEyMHB4O1xyXG5cdH1cclxuXHJcblx0LnRvb2x0aXAtaXRlbSB7XHJcblx0XHRwYWRkaW5nOiA4cHggMTZweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0fVxyXG5cclxuXHQudG9vbHRpcC1pdGVtIHRleHQge1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDhweDtcclxuXHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHR9XHJcblxyXG5cdC5pdGVtLWljb24ge1xyXG5cdFx0d2lkdGg6IDE2cHg7XHJcblx0XHRoZWlnaHQ6IDE2cHg7XHJcblx0fVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///49\n"); /***/ }), /* 50 */ @@ -16593,6 +16597,11 @@ var _default = { "style": { "navigationStyle": "custom" } + }, { + "path": "pages/common/map/index", + "style": { + "navigationBarTitleText": "地图" + } }], "tabBar": { "color": "#fff", @@ -17195,7 +17204,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _du_ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n mainMode: 'string',\n secondaryMode: 'string',\n navBarHeight: 70 + uni.getSystemInfoSync().statusBarHeight,\n navTitle: \"6170\",\n sliderValue: 50,\n lightModeA: false,\n currentMainMode: '强光模式',\n currentSecondaryMode: '泛光模式',\n lightModeB: false,\n lightModeC: false,\n //激光提示框\n items: [],\n isFormExpanded: true,\n // 默认展开\n deviceID: ''\n };\n },\n computed: {\n popupTitle: function popupTitle() {\n return this.modeType === 'main' ? '灯光模式' : '激光模式';\n }\n },\n methods: {\n selectMode: function selectMode(type) {\n this.modeType = type;\n this.lightModeA = true;\n if (type === 'main') {\n this.items = [{\n text: '强光',\n selected: this.currentMainMode === '强光模式',\n image: '/static/images/sett.png'\n }, {\n text: '弱光',\n selected: this.currentMainMode === '弱光模式',\n image: '/static/images/sett.png'\n }, {\n text: '爆闪',\n selected: this.currentMainMode === '爆闪模式',\n image: '/static/images/bs.png'\n }, {\n text: '泛光',\n selected: this.currentMainMode === '泛光模式',\n image: '/static/images/settt.png'\n }];\n }\n },\n // 激光模式\n lasermode: function lasermode() {\n this.lightModeC = true;\n },\n toggleForm: function toggleForm() {\n this.isFormExpanded = !this.isFormExpanded;\n },\n onItemClick: function onItemClick(index) {\n var selectedItem = this.items[index];\n __f__(\"log\", selectedItem.text, 'selectedItem.text', \" at pages/6170/deviceControl/index.vue:282\");\n if (selectedItem.text === '激光') {\n this.lightModeC = true;\n this.selectedItemIndex = index; // 记录当前选择的索引\n } else {\n this.updateSelectedItem(index);\n }\n },\n updateSelectedItem: function updateSelectedItem(index) {\n this.items = this.items.map(function (item, i) {\n return _objectSpread(_objectSpread({}, item), {}, {\n selected: i === index\n });\n });\n if (this.modeType === 'main') {\n this.currentMainMode = this.items[index].text + '模式';\n } else {\n this.currentSecondaryMode = this.items[index].text + '模式';\n }\n this.showPopup = false; // 关闭弹窗\n },\n // 确认\n handleSumbit: function handleSumbit() {\n this.lightModeA = false;\n },\n // 上传开机画面\n uploadStartup: function uploadStartup() {\n this.lightModeB = true;\n },\n // 上传开机画面确认按键\n handleupload: function handleupload() {\n this.lightModeB = false;\n },\n // 操纵说明\n operatingInst: function operatingInst() {\n uni.navigateTo({\n url: \"/pages/common/operatingInstruct/index?id=\".concat(this.deviceID)\n });\n },\n // 产品参数\n productparams: function productparams() {\n uni.navigateTo({\n url: \"/pages/common/productDes/index?id=\".concat(this.deviceID)\n });\n },\n // 操作视频\n operatingVideo: function operatingVideo() {\n uni.navigateTo({\n url: \"/pages/common/operationVideo/index?id=\".concat(this.deviceID)\n });\n },\n // 同意\n handleBtn: function handleBtn() {\n this.lightModeC = false;\n this.updateSelectedItem(this.selectedItemIndex); // 使用记录的索引来更新选择项\n this.lightModeA = false; //关闭大弹框\n },\n // 不同意\n handleDisagree: function handleDisagree() {\n this.lightModeC = false;\n }\n },\n onLoad: function onLoad(options) {\n __f__(\"log\", options.id, \" at pages/6170/deviceControl/index.vue:346\"); // 输出: 123\n this.deviceID = options.id;\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvNjE3MC9kZXZpY2VDb250cm9sL2luZGV4LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibWFpbk1vZGUiLCJzZWNvbmRhcnlNb2RlIiwibmF2QmFySGVpZ2h0IiwibmF2VGl0bGUiLCJzbGlkZXJWYWx1ZSIsImxpZ2h0TW9kZUEiLCJjdXJyZW50TWFpbk1vZGUiLCJjdXJyZW50U2Vjb25kYXJ5TW9kZSIsImxpZ2h0TW9kZUIiLCJsaWdodE1vZGVDIiwiaXRlbXMiLCJpc0Zvcm1FeHBhbmRlZCIsImRldmljZUlEIiwiY29tcHV0ZWQiLCJwb3B1cFRpdGxlIiwibWV0aG9kcyIsInNlbGVjdE1vZGUiLCJ0ZXh0Iiwic2VsZWN0ZWQiLCJpbWFnZSIsImxhc2VybW9kZSIsInRvZ2dsZUZvcm0iLCJvbkl0ZW1DbGljayIsInVwZGF0ZVNlbGVjdGVkSXRlbSIsIml0ZW0iLCJoYW5kbGVTdW1iaXQiLCJ1cGxvYWRTdGFydHVwIiwiaGFuZGxldXBsb2FkIiwib3BlcmF0aW5nSW5zdCIsInVuaSIsInVybCIsInByb2R1Y3RwYXJhbXMiLCJvcGVyYXRpbmdWaWRlbyIsImhhbmRsZUJ0biIsImhhbmRsZURpc2FncmVlIiwib25Mb2FkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUEyTkE7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQUE7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQUM7VUFDQUM7VUFDQUM7UUFDQSxHQUNBO1VBQ0FGO1VBQ0FDO1VBQ0FDO1FBQ0EsR0FDQTtVQUNBRjtVQUNBQztVQUNBQztRQUNBLEdBQ0E7VUFDQUY7VUFDQUM7VUFDQUM7UUFDQSxFQUVBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtRQUFBLHVDQUNBQztVQUNBTjtRQUFBO01BQUEsQ0FDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU87TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQUM7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQUY7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUU7TUFDQUg7UUFDQUM7TUFDQTtJQUVBO0lBQ0E7SUFDQUc7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtFQUNBO0FBRUE7QUFBQSwyQiIsImZpbGUiOiIxNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8IS0tIOS9v+eUqOiHquWumuS5ieWvvOiIquagjyAtLT5cclxuXHRcdDxjdXN0b20tbmF2YmFyIDp0aXRsZT1cIm5hdlRpdGxlXCIgOnNob3dCYWNrPVwidHJ1ZVwiIGNvbG9yPVwiI0ZGRkZGRlwiIHJpZ2h0SWNvbj1cIi9zdGF0aWMvaW1hZ2VzL3BhdGgucG5nXCJcclxuXHRcdFx0QHJpZ2h0LWNsaWNrPVwidXBsb2FkU3RhcnR1cFwiPjwvY3VzdG9tLW5hdmJhcj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLWRldGFpbC1jb250YWluZXJcIiA6c3R5bGU9XCJ7IHBhZGRpbmdUb3A6IG5hdkJhckhlaWdodCArICdweCcgfVwiPlxyXG5cdFx0XHQ8IS0tIOiuvuWkh+eUtemHj+S/oeaBryAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXNlY3Rpb25cIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJhdHRlcnktc2VjdGlvbkxlZnRcIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9iaXAuNi5wbmdcIiBjbGFzcz1cImJpcEltZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYxXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9kbC5wbmdcIiBjbGFzcz1cImRsSU1HXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+OTAlPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmF0dGVyeS12M1wiPueUtemHjzwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYxXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9uei5wbmdcIiBjbGFzcz1cImRsSU1HXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+MeWwj+aXtjwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJhdHRlcnktdjNcIj7nu63oiKrml7bpl7Q8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXc+XHJcblxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PCEtLSDorr7lpIfln7rmnKzkv6Hmga8gLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1jYXJkXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXJvd1wiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpbmZvLWxhYmVsXCI+SU1FSeWPtzwvdGV4dD5cclxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaW5mby12YWx1ZVwiPjEyMzQ1NjwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXJvd1wiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpbmZvLWxhYmVsXCI+6K6+5aSH54q25oCBPC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpbmZvLXZhbHVlIHN0YXR1cy1ydW5uaW5nXCI+6L+Q6KGM5LitPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tcm93XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImluZm8tbGFiZWxcIj7lrprkvY3kv6Hmga88L3RleHQ+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tdmFsdWUgc3RhdHVzLXJ1bm5pbmdcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXZhbHVlIHN0YXR1cy1ydW5uaW5nXCI+MTE0LjcyIDMwLjI4PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tdmFsdWUgc3RhdHVzLXJ1bm5pbmdcIj7mt7HlnLPluILpvpnljY7ljLrlr4zmupDmmZ88L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXJvd1wiPlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaW5mby1sYWJlbFwiPueBr+WFieS6ruW6pjwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImluZm8tdmFsdWUgc3RhdHVzLXJ1bm5pbmdcIj4lPC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8IS0tIOeBr+WFieS6ruW6puaOp+WItiAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJjb250cm9sLWNhcmRcIj5cclxuXHRcdFx0XHQ8c2xpZGVyIDp2YWx1ZT1cInNsaWRlclZhbHVlXCIgbWluPVwiMFwiIG1heD1cIjEwMFwiIGFjdGl2ZUNvbG9yPVwicmdiKDE4NywgMjMwLCAwKVwiXHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I9XCJyZ2IoMjYsIDI2LCAyNilcIiBzaG93LXZhbHVlIC8+XHJcblxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8IS0tIOeBr+WFieaooeW8j+mAieaLqSAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXNlY3Rpb25cIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1vZGUtYnV0dG9uc1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYxXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZS12MlwiIEBjbGljaz1cInNlbGVjdE1vZGUoJ21haW4nKVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9zZXQucG5nXCIgY2xhc3M9XCJzZXRJTUdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+54Gv5YWJ5qih5byPPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYzXCI+e3sgY3VycmVudE1haW5Nb2RlIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYxXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZS12MlwiIEBjbGljaz1cImxhc2VybW9kZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9qZy5wbmdcIiBjbGFzcz1cInNldElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJhdHRlcnktdjJcIj7mv4DlhYnmqKHlvI88L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1vZGUtdjNcIj57e2N1cnJlbnRTZWNvbmRhcnlNb2RlfX08L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYxXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZS12MlwiIEBjbGljaz1cInVwbG9hZFN0YXJ0dXBcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZXMvcGF0aDcucG5nXCIgY2xhc3M9XCJzZXRJTUdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+5byA5py655S76Z2iPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYzXCI+5LiK5LygPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PCEtLSDkurrlkZjkv6Hmga/nmbvorrAgLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuS6uuWRmOS/oeaBr+eZu+iusDwvdmlldz5cclxuXHRcdFx0XHRcdDwhLS0gPGJ1dHRvbiBjbGFzcz1cInNlbmQtYnRuXCI+5Y+R6YCBPC9idXR0b24+IC0tPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyaWdodC1pY29uc1wiPlxyXG5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyBAY2xpY2s9XCJ0b2dnbGVGb3JtXCIgOnR5cGU9XCJpc0Zvcm1FeHBhbmRlZCA/ICdhcnJvd3VwJyA6ICdkb3duJ1wiIHNpemU9XCIyMFwiXHJcblx0XHRcdFx0XHRcdFx0Y29sb3I9XCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODdcIiBjbGFzcz1cInRvZ2dsZS1pY29uXCIgLz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLWNvbnRlbnRcIiB2LWlmPVwiaXNGb3JtRXhwYW5kZWRcIj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0bjFcIj7lj5HpgIE8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJmb3JtLWxhYmVsXCI+5Y2V5L2N77yaPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXljZXkvY1cIiAvPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvd1wiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImZvcm0tbGFiZWxcIj7lp5PlkI3vvJo8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWnk+WQjVwiIC8+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZvcm0tcm93XCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiZm9ybS1sYWJlbFwiPuiBjOS9je+8mjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl6IGM5L2NXCIgLz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJmb3JtLWxhYmVsXCI+SUTvvJo8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpUlE5Y+3XCIgLz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSDkurrlkZjkv6Hmga/nmbvorrAgLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuWPkemAgeS/oeaBrzwvdmlldz5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0blwiPuWPkemAgTwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvd1wiPlxyXG5cdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5paH5a2XXCIgLz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSDkuqflk4Hkv6Hmga8gLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuS6p+WTgeS/oeaBrzwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1vZGVfMVwiIEBjbGljaz1cInByb2R1Y3RwYXJhbXNcIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9jcC5wbmdcIiBtb2RlPVwiXCIgY2xhc3M9XCJjcElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPuS6p+WTgeWPguaVsDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlXzFcIiBAY2xpY2s9XCJvcGVyYXRpbmdJbnN0XCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZXMvc20ucG5nXCIgbW9kZT1cIlwiIGNsYXNzPVwiY3BJTUdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIj7mk43kvZzor7TmmI48L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZV8xXCIgQGNsaWNrPVwib3BlcmF0aW5nVmlkZW9cIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9zcC5wbmdcIiBtb2RlPVwiXCIgY2xhc3M9XCJjcElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPuaTjeS9nOinhumikTwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5by55qGGIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtbWFza1wiIHYtaWY9XCJsaWdodE1vZGVBXCI+XHJcblx0XHRcdDwhLS0g5Y2P6K6u5by556qXIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImFncmVlbWVudC1wb3B1cFwiIEBjbGljay5zdG9wPlxyXG5cdFx0XHRcdDwhLS0g5qCH6aKYIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtdGl0bGVcIj4ge3sgcG9wdXBUaXRsZSB9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDx2aWV3IHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBpdGVtc1wiIDprZXk9XCJpbmRleFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiA6Y2xhc3M9XCJ7J3NlbGVjdGVkJzogaXRlbS5zZWxlY3RlZH1cIiBAY2xpY2s9XCJvbkl0ZW1DbGljayhpbmRleClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2UgOnNyYz1cIml0ZW0uaW1hZ2VcIiBjbGFzcz1cInNldElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0e3tpdGVtLnRleHR9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5oyJ6ZKu57uEIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtYnV0dG9uc1wiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImFncmVlXCIgQGNsaWNrPVwiaGFuZGxlU3VtYml0XCI+56Gu5a6aPC9idXR0b24+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOS4iuS8oOW8gOacuueUu+mdouW8ueahhiAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYWdyZWVtZW50LW1hc2tcIiB2LWlmPVwibGlnaHRNb2RlQlwiPlxyXG5cdFx0XHQ8IS0tIOS4iuS8oOeUu+mdouW8ueeqlyAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtcG9wdXBcIj5cclxuXHRcdFx0XHQ8IS0tIOagh+mimCAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLXRpdGxlXCI+5LiK5Lyg5byA5py655S76Z2iPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJleGFtcGxlLWJvZHlcIj5cclxuXHRcdFx0XHRcdFx0PHVuaS1maWxlLXBpY2tlciBsaW1pdD1cIjFcIj48L3VuaS1maWxlLXBpY2tlcj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJleGFtcGxlX3RpdGxlXCI+54K55Ye75LiK5Lyg5Zu+54mHPC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaMiemSrue7hCAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJhZ3JlZVwiIEBjbGljaz1cImhhbmRsZXVwbG9hZFwiPuehruWumjwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLT09PT09PT09PT09PT09PT09PT09PSDmv4DlhYnmj5DnpLrmoYY9PT09PT09PT09PT09PT09PT0gLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImFncmVlbWVudC1tYXNrXCIgdi1pZj1cImxpZ2h0TW9kZUNcIj5cclxuXHRcdFx0PCEtLSDkuIrkvKDnlLvpnaLlvLnnqpcgLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYWdyZWVtZW50LXBvcHVwQ1wiPlxyXG5cdFx0XHRcdDwhLS0g5qCH6aKYIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtdGl0bGVcIj7noa7orqTlvIDlkK/mv4DlhYnmqKHlvI/vvJ88L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLVRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3PuazqOaEj+S6i+mhuTwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXc+MS7npoHmraLnm7Top4blhYnmupDmiJblj43lsITpnaLvvIE8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3PjIu6YG/5YWN55u05bCE5Lq65oiW5piT54eD54mp77yBPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldz4zLumcgOS9qeaItOebuOW6lOS4k+S4mumYsuaKpOecvOmVnO+8gTwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDmjInpkq7nu4QgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1idXR0b25zXCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGRpc2FncmVlXCIgQGNsaWNrPVwiaGFuZGxlRGlzYWdyZWVcIj7lj5bmtog8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4gYWdyZWVCdG5cIiBAY2xpY2s9XCJoYW5kbGVCdG5cIj7noa7lrpo8L2J1dHRvbj5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0bWFpbk1vZGU6ICdzdHJpbmcnLFxyXG5cdFx0XHRcdHNlY29uZGFyeU1vZGU6ICdzdHJpbmcnLFxyXG5cdFx0XHRcdG5hdkJhckhlaWdodDogNzAgKyB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS5zdGF0dXNCYXJIZWlnaHQsXHJcblx0XHRcdFx0bmF2VGl0bGU6IFwiNjE3MFwiLFxyXG5cdFx0XHRcdHNsaWRlclZhbHVlOiA1MCxcclxuXHRcdFx0XHRsaWdodE1vZGVBOiBmYWxzZSxcclxuXHRcdFx0XHRjdXJyZW50TWFpbk1vZGU6ICflvLrlhYnmqKHlvI8nLFxyXG5cdFx0XHRcdGN1cnJlbnRTZWNvbmRhcnlNb2RlOiAn5rOb5YWJ5qih5byPJyxcclxuXHRcdFx0XHRsaWdodE1vZGVCOiBmYWxzZSxcclxuXHRcdFx0XHRsaWdodE1vZGVDOiBmYWxzZSwgLy/mv4DlhYnmj5DnpLrmoYZcclxuXHRcdFx0XHRpdGVtczogW10sXHJcblx0XHRcdFx0aXNGb3JtRXhwYW5kZWQ6IHRydWUsIC8vIOm7mOiupOWxleW8gFxyXG5cdFx0XHRcdGRldmljZUlEOiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0cG9wdXBUaXRsZSgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5tb2RlVHlwZSA9PT0gJ21haW4nID8gJ+eBr+WFieaooeW8jycgOiAn5r+A5YWJ5qih5byPJztcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0c2VsZWN0TW9kZSh0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5tb2RlVHlwZSA9IHR5cGU7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVBID0gdHJ1ZTtcclxuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ21haW4nKSB7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gW3tcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiAn5by65YWJJyxcclxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdGhpcy5jdXJyZW50TWFpbk1vZGUgPT09ICflvLrlhYnmqKHlvI8nLFxyXG5cdFx0XHRcdFx0XHRcdGltYWdlOiAnL3N0YXRpYy9pbWFnZXMvc2V0dC5wbmcnXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiAn5byx5YWJJyxcclxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdGhpcy5jdXJyZW50TWFpbk1vZGUgPT09ICflvLHlhYnmqKHlvI8nLFxyXG5cdFx0XHRcdFx0XHRcdGltYWdlOiAnL3N0YXRpYy9pbWFnZXMvc2V0dC5wbmcnXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiAn54iG6ZeqJyxcclxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdGhpcy5jdXJyZW50TWFpbk1vZGUgPT09ICfniIbpl6rmqKHlvI8nLFxyXG5cdFx0XHRcdFx0XHRcdGltYWdlOiAnL3N0YXRpYy9pbWFnZXMvYnMucG5nJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0dGV4dDogJ+azm+WFiScsXHJcblx0XHRcdFx0XHRcdFx0c2VsZWN0ZWQ6IHRoaXMuY3VycmVudE1haW5Nb2RlID09PSAn5rOb5YWJ5qih5byPJyxcclxuXHRcdFx0XHRcdFx0XHRpbWFnZTogJy9zdGF0aWMvaW1hZ2VzL3NldHR0LnBuZydcclxuXHRcdFx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0XHRdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5r+A5YWJ5qih5byPXHJcblx0XHRcdGxhc2VybW9kZSgpIHtcclxuXHRcdFx0XHR0aGlzLmxpZ2h0TW9kZUMgPSB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdHRvZ2dsZUZvcm0oKSB7XHJcblx0XHRcdFx0dGhpcy5pc0Zvcm1FeHBhbmRlZCA9ICF0aGlzLmlzRm9ybUV4cGFuZGVkO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0b25JdGVtQ2xpY2soaW5kZXgpIHtcclxuXHRcdFx0XHRjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLml0ZW1zW2luZGV4XTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhzZWxlY3RlZEl0ZW0udGV4dCwgJ3NlbGVjdGVkSXRlbS50ZXh0Jyk7XHJcblx0XHRcdFx0aWYgKHNlbGVjdGVkSXRlbS50ZXh0ID09PSAn5r+A5YWJJykge1xyXG5cdFx0XHRcdFx0dGhpcy5saWdodE1vZGVDID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IGluZGV4OyAvLyDorrDlvZXlvZPliY3pgInmi6nnmoTntKLlvJVcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oaW5kZXgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dXBkYXRlU2VsZWN0ZWRJdGVtKGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtLCBpKSA9PiAoe1xyXG5cdFx0XHRcdFx0Li4uaXRlbSxcclxuXHRcdFx0XHRcdHNlbGVjdGVkOiBpID09PSBpbmRleFxyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ21haW4nKSB7XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRNYWluTW9kZSA9IHRoaXMuaXRlbXNbaW5kZXhdLnRleHQgKyAn5qih5byPJztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50U2Vjb25kYXJ5TW9kZSA9IHRoaXMuaXRlbXNbaW5kZXhdLnRleHQgKyAn5qih5byPJztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zaG93UG9wdXAgPSBmYWxzZTsgLy8g5YWz6Zet5by556qXXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOehruiupFxyXG5cdFx0XHRoYW5kbGVTdW1iaXQoKSB7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVBID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5LiK5Lyg5byA5py655S76Z2iXHJcblx0XHRcdHVwbG9hZFN0YXJ0dXAoKSB7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVCID0gdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuIrkvKDlvIDmnLrnlLvpnaLnoa7orqTmjInplK5cclxuXHRcdFx0aGFuZGxldXBsb2FkKCkge1xyXG5cdFx0XHRcdHRoaXMubGlnaHRNb2RlQiA9IGZhbHNlXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvLyDmk43nurXor7TmmI5cclxuXHRcdFx0b3BlcmF0aW5nSW5zdCgpIHtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6IGAvcGFnZXMvY29tbW9uL29wZXJhdGluZ0luc3RydWN0L2luZGV4P2lkPSR7dGhpcy5kZXZpY2VJRH1gXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5Lqn5ZOB5Y+C5pWwXHJcblx0XHRcdHByb2R1Y3RwYXJhbXMoKSB7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOiBgL3BhZ2VzL2NvbW1vbi9wcm9kdWN0RGVzL2luZGV4P2lkPSR7dGhpcy5kZXZpY2VJRH1gXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pON5L2c6KeG6aKRXHJcblx0XHRcdG9wZXJhdGluZ1ZpZGVvKCkge1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybDogYC9wYWdlcy9jb21tb24vb3BlcmF0aW9uVmlkZW8vaW5kZXg/aWQ9JHt0aGlzLmRldmljZUlEfWBcclxuXHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5ZCM5oSPXHJcblx0XHRcdGhhbmRsZUJ0bigpIHtcclxuXHRcdFx0XHR0aGlzLmxpZ2h0TW9kZUMgPSBmYWxzZVxyXG5cdFx0XHRcdHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXgpOyAvLyDkvb/nlKjorrDlvZXnmoTntKLlvJXmnaXmm7TmlrDpgInmi6npoblcclxuXHRcdFx0XHR0aGlzLmxpZ2h0TW9kZUEgPSBmYWxzZSAvL+WFs+mXreWkp+W8ueahhlxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuI3lkIzmhI9cclxuXHRcdFx0aGFuZGxlRGlzYWdyZWUoKSB7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVDID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQob3B0aW9ucykge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhvcHRpb25zLmlkKSAvLyDovpPlh7o6IDEyM1xyXG5cdFx0XHR0aGlzLmRldmljZUlEID0gb3B0aW9ucy5pZFxyXG5cdFx0fVxyXG5cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5kZXZpY2UtZGV0YWlsLWNvbnRhaW5lciB7XHJcblx0XHRwYWRkaW5nOiAzMHJweDtcclxuXHRcdGJhY2tncm91bmQ6ICMxMjEyMTI7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtYmFyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRtYXJnaW4tYm90dG9tOiA0MHJweDtcclxuXHR9XHJcblxyXG5cdC50aW1lIHtcclxuXHRcdGZvbnQtc2l6ZTogMzZycHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHR9XHJcblxyXG5cdC5iYXR0ZXJ5IHtcclxuXHRcdGZvbnQtc2l6ZTogMzZycHg7XHJcblx0fVxyXG5cclxuXHQuYmF0dGVyeS1zZWN0aW9uIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMjYsIDI2KTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LmJhdHRlcnktaW5mbyxcclxuXHQuZHVyYXRpb24ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LmJpcEltZyB7XHJcblx0XHR3aWR0aDogMjA0cnB4O1xyXG5cdFx0aGVpZ2h0OiAxNDRycHg7XHJcblx0XHRtYXJnaW4tdG9wOiAzMHJweDtcclxuXHR9XHJcblxyXG5cdC5kbElNRyB7XHJcblx0XHR3aWR0aDogNTJycHg7XHJcblx0XHRoZWlnaHQ6IDUycnB4O1xyXG5cdH1cclxuXHJcblx0LmNwSU1HIHtcclxuXHRcdHdpZHRoOiA2NnJweDtcclxuXHRcdGhlaWdodDogNjZycHg7XHJcblx0fVxyXG5cclxuXHQuYmF0dGVyeS1zZWN0aW9uTGVmdCB7XHJcblx0XHR3aWR0aDogMzA4cnB4O1xyXG5cdFx0aGVpZ2h0OiAyMjBycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDQyLCA0MiwgNDIsIDAuNSk7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDogMjIwcnB4O1xyXG5cdH1cclxuXHJcblx0LnBlcmNlbnRhZ2Uge1xyXG5cdFx0Zm9udC1zaXplOiA0OHJweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0Y29sb3I6ICMwMDdBRkY7XHJcblx0fVxyXG5cclxuXHQubGFiZWwge1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHRcdGNvbG9yOiAjNjY2O1xyXG5cdFx0bWFyZ2luLXRvcDogMTBycHg7XHJcblx0fVxyXG5cclxuXHQuYmF0dGVyeS12MSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEwcnB4O1xyXG5cdH1cclxuXHJcblxyXG5cdC5iYXR0ZXJ5LXYyIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDE4cnB4O1xyXG5cdFx0Zm9udC1zaXplOiAzMnJweDtcclxuXHR9XHJcblxyXG5cdC5iYXR0ZXJ5LXYzIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XHJcblx0XHRtYXJnaW4tbGVmdDogMjVycHg7XHJcblx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdH1cclxuXHJcblx0Lm1vZGUtdjMge1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHRcdGZvbnQtc2l6ZTogMjZycHg7XHJcblx0XHRwYWRkaW5nLXRvcDogMTBycHg7XHJcblx0fVxyXG5cclxuXHQuaW5mby1jYXJkIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMjYsIDI2KTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0cGFkZGluZzogMTBycHggMzBycHggNXJweCAzMHJweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xyXG5cclxuXHR9XHJcblxyXG5cdC5pbmZvLXJvdyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0fVxyXG5cclxuXHQuaW5mby1sYWJlbCB7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0fVxyXG5cclxuXHQuaW5mby12YWx1ZSB7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0fVxyXG5cclxuXHQuc3RhdHVzLXJ1bm5pbmcge1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHRcdHRleHQtYWxpZ246IGVuZDtcclxuXHR9XHJcblxyXG5cdC5jb250cm9sLWNhcmQge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LCAyNiwgMjYpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG5cdC5saWdodCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHQvKiB0b3A6MTBycHg7ICovXHJcblx0XHRjb2xvcjogcmdiYSg3NCwgNzQsIDc0LCAwLjg3KTtcclxuXHRcdHRvcDogNThycHg7XHJcblx0XHRsZWZ0OiAxMDhycHhcclxuXHR9XHJcblxyXG5cdC5zZWN0aW9uLXRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTogMzJycHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0fVxyXG5cclxuXHQuc2xpZGVyLWNvbnRhaW5lciB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC5zbGlkZXIge1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdG1hcmdpbjogMCAyMHJweDtcclxuXHR9XHJcblxyXG5cdC5tb2RlLWJ1dHRvbnMge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHR9XHJcblxyXG5cdC5tb2RlXzEge1xyXG5cdFx0d2lkdGg6IDE4MHJweDtcclxuXHRcdGhlaWdodDogMTgwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2IoMjYsIDI2LCAyNik7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHRcdHBhZGRpbmctdG9wOiAzN3JweDtcclxuXHR9XHJcblxyXG5cdC5tb2RlLXYxIHtcclxuXHRcdGJhY2tncm91bmQ6ICMxQTFBMUE7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxOHJweDtcclxuXHRcdGhlaWdodDogMTUwcnB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0XHR3aWR0aDogNDclO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC5tb2RlLXYyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDQwcnB4O1xyXG5cclxuXHR9XHJcblxyXG5cdC5leGFtcGxlLWJvZHkge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bGVmdDogNTAlO1xyXG5cdFx0dG9wOiA3MCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNyUsIC0xMDAlKTtcclxuXHJcblx0fVxyXG5cclxuXHQudW5pLWZpbGUtcGlja2VyX19jb250YWluZXIge1xyXG5cdFx0d2lkdGg6IDIwMHJweCAhaW1wb3J0YW50O1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiKDU4LCA1OCwgNTgpO1xyXG5cdH1cclxuXHJcblx0OmRlZXAgLmZpbGUtcGlja2VyX19ib3gge1xyXG5cdFx0d2lkdGg6IDQwJSAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHJcblx0LmV4YW1wbGVfdGl0bGUge1xyXG5cdFx0cGFkZGluZy10b3A6IDIwcnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0fVxyXG5cclxuXHQubW9kZS1idG4ge1xyXG5cdFx0d2lkdGg6IDQ4JTtcclxuXHRcdGhlaWdodDogODBycHg7XHJcblx0XHRsaW5lLWhlaWdodDogODBycHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xyXG5cdFx0Y29sb3I6ICMzMzM7XHJcblx0XHRib3JkZXItcmFkaXVzOiA4cnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHRcdGJvcmRlcjogbm9uZTtcclxuXHR9XHJcblxyXG5cdC5tb2RlLWJ0bi5hY3RpdmUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwN0FGRjtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdH1cclxuXHJcblx0LmZvcm0tc2VjdGlvbiB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjYsIDI2LCAyNik7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdHBhZGRpbmc6IDMwcnB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMzBycHg7XHJcblxyXG5cdH1cclxuXHJcblx0LmZvcm0tcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2IoNDIsIDQyLCA0Mik7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdHBhZGRpbmctbGVmdDogMjBycHg7XHJcblx0fVxyXG5cclxuXHQuZm9ybS1sYWJlbCB7XHJcblx0XHRmb250LXNpemU6IDMycnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0fVxyXG5cclxuXHQuZm9ybS1pbnB1dCB7XHJcblx0XHRoZWlnaHQ6IDgwcnB4O1xyXG5cdFx0Ym9yZGVyOiAxcnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdFx0Zm9udC1zaXplOiAzMnJweDtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdH1cclxuXHJcblx0LnByb2R1Y3Qtc2VjdGlvbiB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRwYWRkaW5nOiAzMHJweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDMwcnB4O1xyXG5cdFx0Ym94LXNoYWRvdzogMCA0cnB4IDEycnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XHJcblx0fVxyXG5cclxuXHQucHJvZHVjdC10YWJzIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRtYXJnaW4tdG9wOiAyMHJweDtcclxuXHR9XHJcblxyXG5cdC50YWIge1xyXG5cdFx0cGFkZGluZzogMTVycHggMzBycHg7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0Y29sb3I6ICM2NjY7XHJcblx0XHRib3JkZXItYm90dG9tOiA0cnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdH1cclxuXHJcblx0LnRhYi5hY3RpdmUge1xyXG5cdFx0Y29sb3I6ICMwMDdBRkY7XHJcblx0XHRib3JkZXItYm90dG9tLWNvbG9yOiAjMDA3QUZGO1xyXG5cdH1cclxuXHJcblx0LmFjdGlvbi1idXR0b25zIHtcclxuXHRcdHBhZGRpbmc6IDMwcnB4IDA7XHJcblx0fVxyXG5cclxuXHQuc2VuZC1idG4ge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NywgMjMwLCAwKTtcclxuXHRcdGNvbG9yOiByZ2JhKDM1LCAzNSwgMzUsIDAuODcpO1xyXG5cdFx0aGVpZ2h0OiA1MHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA1MHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdHdpZHRoOiAxMTJycHg7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDcwcnB4O1xyXG5cclxuXHR9XHJcblxyXG5cdC5zZW5kLWJ0bjEge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NywgMjMwLCAwKTtcclxuXHRcdGNvbG9yOiByZ2JhKDM1LCAzNSwgMzUsIDAuODcpO1xyXG5cdFx0aGVpZ2h0OiA1MHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA1MHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdHdpZHRoOiAxMTJycHg7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDBycHg7XHJcblx0XHR0b3A6IC03MHJweFxyXG5cdH1cclxuXHJcblxyXG5cdC8qIOmBrue9qeWxgiAqL1xyXG5cdC5hZ3JlZW1lbnQtbWFzayB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0ei1pbmRleDogOTk5OTtcclxuXHR9XHJcblxyXG5cdC8qIOW8ueeql+S4u+S9kyAqL1xyXG5cdC5hZ3JlZW1lbnQtcG9wdXAge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDUwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYig0MiwgNDIsIDQyKTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDYwcnB4IDYwcnB4IDBycHggMHJweDtcclxuXHRcdHBhZGRpbmc6IDQwcnB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogMHJweDtcclxuXHR9XHJcblxyXG5cdC5hZ3JlZW1lbnQtcG9wdXBDIHtcclxuXHRcdHdpZHRoOiA4MCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsIDQyLCA0Mik7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0MHJweDtcclxuXHRcdHBhZGRpbmc6IDQwcnB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyMDAsIDc4LCAxKTtcclxuXHR9XHJcblxyXG5cdC5wb3B1cC1UaXRsZSB7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDIwMCwgNzgsIDEpO1xyXG5cdH1cclxuXHJcblx0Lyog5qCH6aKYICovXHJcblx0LnBvcHVwLXRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTogMzZycHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAzMHJweDtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdH1cclxuXHJcblx0Lyog5YaF5a655paH5pysICovXHJcblx0LnBvcHVwLWNvbnRlbnQge1xyXG5cdFx0Zm9udC1zaXplOiAzMHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjY7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDUwcnB4O1xyXG5cdH1cclxuXHJcblx0Lml0ZW0ge1xyXG5cdFx0cGFkZGluZzogMTBweDtcclxuXHRcdG1hcmdpbjogNXB4IDA7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcclxuXHR9XHJcblxyXG5cdC5zZXRJTUcge1xyXG5cdFx0d2lkdGg6IDI0cHg7XHJcblx0XHRoZWlnaHQ6IDI0cHg7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0fVxyXG5cclxuXHQuaXRlbS5zZWxlY3RlZCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTgsIDU4LCA1OCk7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDhycHg7XHJcblx0fVxyXG5cclxuXHQvKiDmjInpkq7lrrnlmaggKi9cclxuXHQucG9wdXAtYnV0dG9ucyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdH1cclxuXHJcblx0Lyrnoa7lrprmjInpkq4gKi9cclxuXHQuYWdyZWUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NywgMjMwLCAwKTtcclxuXHRcdGNvbG9yOiAjMjMyMzIzO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0Zm9udC1zaXplOiAyNHJweDtcclxuXHRcdGhlaWdodDogODhycHg7XHJcblx0XHRsaW5lLWhlaWdodDogODhycHg7XHJcblx0XHRmb250LXNpemU6IDMycnB4O1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRib3R0b206IDBycHg7XHJcblx0XHRsZWZ0OiAwcnB4XHJcblx0fVxyXG5cclxuXHQvKiDpgJrnlKjmjInpkq7moLflvI8gKi9cclxuXHQuYnRuIHtcclxuXHRcdGZsZXg6IDE7XHJcblx0XHRoZWlnaHQ6IDgwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDgwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNDBycHg7XHJcblx0XHRmb250LXNpemU6IDMycnB4O1xyXG5cdFx0bWFyZ2luOiAwIDIwcnB4O1xyXG5cdH1cclxuXHJcblx0Lyog5LiN5ZCM5oSP5oyJ6ZKuICovXHJcblx0LmRpc2FncmVlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjAwLCA3OCwgMC43KTtcclxuXHRcdGZvbnQtc2l6ZTogMjRycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDIwMCwgNzgsIDEpO1xyXG5cdH1cclxuXHJcblx0Lyog5ZCM5oSP5oyJ6ZKuICovXHJcblx0LmFncmVlQnRuIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDAsIDc4LCAxKTtcclxuXHRcdGNvbG9yOiAjMjMyMzIzO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0Zm9udC1zaXplOiAyNHJweDtcclxuXHR9XHJcblxyXG5cdC5yaWdodC1pY29ucyB7XHJcblx0XHQvKiBkaXNwbGF5OiBmbGV4OyAqL1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC50b2dnbGUtaWNvbiB7XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRtYXJnaW4tdG9wOiAtNDBycHg7XHJcblx0fVxyXG5cclxuXHQuaWNvbiB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdC5mb3JtLWNvbnRlbnQge1xyXG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuXHRcdG1hcmdpbi10b3A6IDYwcnB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///151\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n mainMode: 'string',\n secondaryMode: 'string',\n navBarHeight: 70 + uni.getSystemInfoSync().statusBarHeight,\n navTitle: \"6170\",\n sliderValue: 50,\n lightModeA: false,\n currentMainMode: '强光模式',\n currentSecondaryMode: '泛光模式',\n lightModeB: false,\n lightModeC: false,\n //激光提示框\n items: [],\n isFormExpanded: true,\n // 默认展开\n deviceID: ''\n };\n },\n computed: {\n popupTitle: function popupTitle() {\n return this.modeType === 'main' ? '灯光模式' : '激光模式';\n }\n },\n methods: {\n selectMode: function selectMode(type) {\n this.modeType = type;\n this.lightModeA = true;\n if (type === 'main') {\n this.items = [{\n text: '强光',\n selected: this.currentMainMode === '强光模式',\n image: '/static/images/sett.png'\n }, {\n text: '弱光',\n selected: this.currentMainMode === '弱光模式',\n image: '/static/images/sett.png'\n }, {\n text: '爆闪',\n selected: this.currentMainMode === '爆闪模式',\n image: '/static/images/bs.png'\n }, {\n text: '泛光',\n selected: this.currentMainMode === '泛光模式',\n image: '/static/images/settt.png'\n }];\n }\n },\n // 激光模式\n lasermode: function lasermode() {\n this.lightModeC = true;\n },\n toggleForm: function toggleForm() {\n this.isFormExpanded = !this.isFormExpanded;\n },\n onItemClick: function onItemClick(index) {\n var selectedItem = this.items[index];\n __f__(\"log\", selectedItem.text, 'selectedItem.text', \" at pages/6170/deviceControl/index.vue:282\");\n if (selectedItem.text === '激光') {\n this.lightModeC = true;\n this.selectedItemIndex = index; // 记录当前选择的索引\n } else {\n this.updateSelectedItem(index);\n }\n },\n updateSelectedItem: function updateSelectedItem(index) {\n this.items = this.items.map(function (item, i) {\n return _objectSpread(_objectSpread({}, item), {}, {\n selected: i === index\n });\n });\n if (this.modeType === 'main') {\n this.currentMainMode = this.items[index].text + '模式';\n } else {\n this.currentSecondaryMode = this.items[index].text + '模式';\n }\n this.showPopup = false; // 关闭弹窗\n },\n // 确认\n handleSumbit: function handleSumbit() {\n this.lightModeA = false;\n },\n // 上传开机画面\n uploadStartup: function uploadStartup() {\n this.lightModeB = true;\n },\n // 上传开机画面确认按键\n handleupload: function handleupload() {\n this.lightModeB = false;\n },\n // 操纵说明\n operatingInst: function operatingInst() {\n uni.navigateTo({\n url: \"/pages/common/operatingInstruct/index?id=\".concat(this.deviceID)\n });\n },\n // 产品参数\n productparams: function productparams() {\n uni.navigateTo({\n url: \"/pages/common/productDes/index?id=\".concat(this.deviceID)\n });\n },\n // 操作视频\n operatingVideo: function operatingVideo() {\n uni.navigateTo({\n url: \"/pages/common/operationVideo/index?id=\".concat(this.deviceID)\n });\n },\n // 同意\n handleBtn: function handleBtn() {\n this.lightModeC = false;\n this.updateSelectedItem(this.selectedItemIndex); // 使用记录的索引来更新选择项\n this.lightModeA = false; //关闭大弹框\n },\n // 不同意\n handleDisagree: function handleDisagree() {\n this.lightModeC = false;\n }\n },\n onLoad: function onLoad(options) {\n __f__(\"log\", options.id, \" at pages/6170/deviceControl/index.vue:346\"); // 输出: 123\n this.deviceID = options.id;\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvNjE3MC9kZXZpY2VDb250cm9sL2luZGV4LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibWFpbk1vZGUiLCJzZWNvbmRhcnlNb2RlIiwibmF2QmFySGVpZ2h0IiwibmF2VGl0bGUiLCJzbGlkZXJWYWx1ZSIsImxpZ2h0TW9kZUEiLCJjdXJyZW50TWFpbk1vZGUiLCJjdXJyZW50U2Vjb25kYXJ5TW9kZSIsImxpZ2h0TW9kZUIiLCJsaWdodE1vZGVDIiwiaXRlbXMiLCJpc0Zvcm1FeHBhbmRlZCIsImRldmljZUlEIiwiY29tcHV0ZWQiLCJwb3B1cFRpdGxlIiwibWV0aG9kcyIsInNlbGVjdE1vZGUiLCJ0ZXh0Iiwic2VsZWN0ZWQiLCJpbWFnZSIsImxhc2VybW9kZSIsInRvZ2dsZUZvcm0iLCJvbkl0ZW1DbGljayIsInVwZGF0ZVNlbGVjdGVkSXRlbSIsIml0ZW0iLCJoYW5kbGVTdW1iaXQiLCJ1cGxvYWRTdGFydHVwIiwiaGFuZGxldXBsb2FkIiwib3BlcmF0aW5nSW5zdCIsInVuaSIsInVybCIsInByb2R1Y3RwYXJhbXMiLCJvcGVyYXRpbmdWaWRlbyIsImhhbmRsZUJ0biIsImhhbmRsZURpc2FncmVlIiwib25Mb2FkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUEyTkE7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQUE7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQUM7VUFDQUM7VUFDQUM7UUFDQSxHQUNBO1VBQ0FGO1VBQ0FDO1VBQ0FDO1FBQ0EsR0FDQTtVQUNBRjtVQUNBQztVQUNBQztRQUNBLEdBQ0E7VUFDQUY7VUFDQUM7VUFDQUM7UUFDQSxFQUVBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtRQUFBLHVDQUNBQztVQUNBTjtRQUFBO01BQUEsQ0FDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU87TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQUM7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQUY7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUU7TUFDQUg7UUFDQUM7TUFDQTtJQUVBO0lBQ0E7SUFDQUc7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtFQUNBO0FBRUE7QUFBQSwyQiIsImZpbGUiOiIxNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8IS0tIOS9v+eUqOiHquWumuS5ieWvvOiIquagjyAtLT5cclxuXHRcdDxjdXN0b20tbmF2YmFyIDp0aXRsZT1cIm5hdlRpdGxlXCIgOnNob3dCYWNrPVwidHJ1ZVwiIGNvbG9yPVwiI0ZGRkZGRlwiIHJpZ2h0SWNvbj1cIi9zdGF0aWMvaW1hZ2VzL3BhdGgucG5nXCJcclxuXHRcdFx0QHJpZ2h0LWNsaWNrPVwidXBsb2FkU3RhcnR1cFwiPjwvY3VzdG9tLW5hdmJhcj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZGV2aWNlLWRldGFpbC1jb250YWluZXJcIiA6c3R5bGU9XCJ7IHBhZGRpbmdUb3A6IG5hdkJhckhlaWdodCArICdweCcgfVwiPlxyXG5cdFx0XHQ8IS0tIOiuvuWkh+eUtemHj+S/oeaBryAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXNlY3Rpb25cIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJhdHRlcnktc2VjdGlvbkxlZnRcIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9iaXAuNi5wbmdcIiBjbGFzcz1cImJpcEltZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYxXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9kbC5wbmdcIiBjbGFzcz1cImRsSU1HXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+OTAlPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmF0dGVyeS12M1wiPueUtemHjzwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYxXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9uei5wbmdcIiBjbGFzcz1cImRsSU1HXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+MeWwj+aXtjwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJhdHRlcnktdjNcIj7nu63oiKrml7bpl7Q8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXc+XHJcblxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PCEtLSDorr7lpIfln7rmnKzkv6Hmga8gLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1jYXJkXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXJvd1wiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpbmZvLWxhYmVsXCI+SU1FSeWPtzwvdGV4dD5cclxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaW5mby12YWx1ZVwiPjEyMzQ1NjwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXJvd1wiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpbmZvLWxhYmVsXCI+6K6+5aSH54q25oCBPC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpbmZvLXZhbHVlIHN0YXR1cy1ydW5uaW5nXCI+6L+Q6KGM5LitPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tcm93XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImluZm8tbGFiZWxcIj7lrprkvY3kv6Hmga88L3RleHQ+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tdmFsdWUgc3RhdHVzLXJ1bm5pbmdcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXZhbHVlIHN0YXR1cy1ydW5uaW5nXCI+MTE0LjcyIDMwLjI4PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tdmFsdWUgc3RhdHVzLXJ1bm5pbmdcIj7mt7HlnLPluILpvpnljY7ljLrlr4zmupDmmZ88L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLXJvd1wiPlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaW5mby1sYWJlbFwiPueBr+WFieS6ruW6pjwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImluZm8tdmFsdWUgc3RhdHVzLXJ1bm5pbmdcIj4lPC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8IS0tIOeBr+WFieS6ruW6puaOp+WItiAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJjb250cm9sLWNhcmRcIj5cclxuXHRcdFx0XHQ8c2xpZGVyIDp2YWx1ZT1cInNsaWRlclZhbHVlXCIgbWluPVwiMFwiIG1heD1cIjEwMFwiIGFjdGl2ZUNvbG9yPVwicmdiKDE4NywgMjMwLCAwKVwiXHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I9XCJyZ2IoMjYsIDI2LCAyNilcIiBzaG93LXZhbHVlIC8+XHJcblxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8IS0tIOeBr+WFieaooeW8j+mAieaLqSAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXNlY3Rpb25cIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1vZGUtYnV0dG9uc1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYxXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZS12MlwiIEBjbGljaz1cInNlbGVjdE1vZGUoJ21haW4nKVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9zZXQucG5nXCIgY2xhc3M9XCJzZXRJTUdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+54Gv5YWJ5qih5byPPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYzXCI+e3sgY3VycmVudE1haW5Nb2RlIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYxXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZS12MlwiIEBjbGljaz1cImxhc2VybW9kZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9qZy5wbmdcIiBjbGFzcz1cInNldElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJhdHRlcnktdjJcIj7mv4DlhYnmqKHlvI88L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1vZGUtdjNcIj57e2N1cnJlbnRTZWNvbmRhcnlNb2RlfX08L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYxXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZS12MlwiIEBjbGljaz1cInVwbG9hZFN0YXJ0dXBcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZXMvcGF0aDcucG5nXCIgY2xhc3M9XCJzZXRJTUdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiYXR0ZXJ5LXYyXCI+5byA5py655S76Z2iPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLXYzXCI+5LiK5LygPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PCEtLSDkurrlkZjkv6Hmga/nmbvorrAgLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuS6uuWRmOS/oeaBr+eZu+iusDwvdmlldz5cclxuXHRcdFx0XHRcdDwhLS0gPGJ1dHRvbiBjbGFzcz1cInNlbmQtYnRuXCI+5Y+R6YCBPC9idXR0b24+IC0tPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyaWdodC1pY29uc1wiPlxyXG5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyBAY2xpY2s9XCJ0b2dnbGVGb3JtXCIgOnR5cGU9XCJpc0Zvcm1FeHBhbmRlZCA/ICdhcnJvd3VwJyA6ICdkb3duJ1wiIHNpemU9XCIyMFwiXHJcblx0XHRcdFx0XHRcdFx0Y29sb3I9XCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODdcIiBjbGFzcz1cInRvZ2dsZS1pY29uXCIgLz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLWNvbnRlbnRcIiB2LWlmPVwiaXNGb3JtRXhwYW5kZWRcIj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0bjFcIj7lj5HpgIE8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJmb3JtLWxhYmVsXCI+5Y2V5L2N77yaPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXljZXkvY1cIiAvPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvd1wiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImZvcm0tbGFiZWxcIj7lp5PlkI3vvJo8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWnk+WQjVwiIC8+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZvcm0tcm93XCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiZm9ybS1sYWJlbFwiPuiBjOS9je+8mjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl6IGM5L2NXCIgLz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJmb3JtLWxhYmVsXCI+SUTvvJo8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpUlE5Y+3XCIgLz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSDkurrlkZjkv6Hmga/nmbvorrAgLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuWPkemAgeS/oeaBrzwvdmlldz5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0blwiPuWPkemAgTwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvd1wiPlxyXG5cdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5paH5a2XXCIgLz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSDkuqflk4Hkv6Hmga8gLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuS6p+WTgeS/oeaBrzwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1vZGVfMVwiIEBjbGljaz1cInByb2R1Y3RwYXJhbXNcIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9jcC5wbmdcIiBtb2RlPVwiXCIgY2xhc3M9XCJjcElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPuS6p+WTgeWPguaVsDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtb2RlXzFcIiBAY2xpY2s9XCJvcGVyYXRpbmdJbnN0XCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZXMvc20ucG5nXCIgbW9kZT1cIlwiIGNsYXNzPVwiY3BJTUdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIj7mk43kvZzor7TmmI48L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibW9kZV8xXCIgQGNsaWNrPVwib3BlcmF0aW5nVmlkZW9cIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlcy9zcC5wbmdcIiBtb2RlPVwiXCIgY2xhc3M9XCJjcElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPuaTjeS9nOinhumikTwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5by55qGGIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtbWFza1wiIHYtaWY9XCJsaWdodE1vZGVBXCI+XHJcblx0XHRcdDwhLS0g5Y2P6K6u5by556qXIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImFncmVlbWVudC1wb3B1cFwiIEBjbGljay5zdG9wPlxyXG5cdFx0XHRcdDwhLS0g5qCH6aKYIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtdGl0bGVcIj4ge3sgcG9wdXBUaXRsZSB9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDx2aWV3IHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBpdGVtc1wiIDprZXk9XCJpbmRleFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiA6Y2xhc3M9XCJ7J3NlbGVjdGVkJzogaXRlbS5zZWxlY3RlZH1cIiBAY2xpY2s9XCJvbkl0ZW1DbGljayhpbmRleClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2UgOnNyYz1cIml0ZW0uaW1hZ2VcIiBjbGFzcz1cInNldElNR1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0e3tpdGVtLnRleHR9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5oyJ6ZKu57uEIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtYnV0dG9uc1wiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImFncmVlXCIgQGNsaWNrPVwiaGFuZGxlU3VtYml0XCI+56Gu5a6aPC9idXR0b24+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOS4iuS8oOW8gOacuueUu+mdouW8ueahhiAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYWdyZWVtZW50LW1hc2tcIiB2LWlmPVwibGlnaHRNb2RlQlwiPlxyXG5cdFx0XHQ8IS0tIOS4iuS8oOeUu+mdouW8ueeqlyAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtcG9wdXBcIj5cclxuXHRcdFx0XHQ8IS0tIOagh+mimCAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLXRpdGxlXCI+5LiK5Lyg5byA5py655S76Z2iPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJleGFtcGxlLWJvZHlcIj5cclxuXHRcdFx0XHRcdFx0PHVuaS1maWxlLXBpY2tlciBsaW1pdD1cIjFcIj48L3VuaS1maWxlLXBpY2tlcj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJleGFtcGxlX3RpdGxlXCI+54K55Ye75LiK5Lyg5Zu+54mHPC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaMiemSrue7hCAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLWJ1dHRvbnNcIj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJhZ3JlZVwiIEBjbGljaz1cImhhbmRsZXVwbG9hZFwiPuehruWumjwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLT09PT09PT09PT09PT09PT09PT09PSDmv4DlhYnmj5DnpLrmoYY9PT09PT09PT09PT09PT09PT0gLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImFncmVlbWVudC1tYXNrXCIgdi1pZj1cImxpZ2h0TW9kZUNcIj5cclxuXHRcdFx0PCEtLSDkuIrkvKDnlLvpnaLlvLnnqpcgLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYWdyZWVtZW50LXBvcHVwQ1wiPlxyXG5cdFx0XHRcdDwhLS0g5qCH6aKYIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAtdGl0bGVcIj7noa7orqTlvIDlkK/mv4DlhYnmqKHlvI/vvJ88L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwLVRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3PuazqOaEj+S6i+mhuTwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXc+MS7npoHmraLnm7Top4blhYnmupDmiJblj43lsITpnaLvvIE8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3PjIu6YG/5YWN55u05bCE5Lq65oiW5piT54eD54mp77yBPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldz4zLumcgOS9qeaItOebuOW6lOS4k+S4mumYsuaKpOecvOmVnO+8gTwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDmjInpkq7nu4QgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cC1idXR0b25zXCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGRpc2FncmVlXCIgQGNsaWNrPVwiaGFuZGxlRGlzYWdyZWVcIj7lj5bmtog8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4gYWdyZWVCdG5cIiBAY2xpY2s9XCJoYW5kbGVCdG5cIj7noa7lrpo8L2J1dHRvbj5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0bWFpbk1vZGU6ICdzdHJpbmcnLFxyXG5cdFx0XHRcdHNlY29uZGFyeU1vZGU6ICdzdHJpbmcnLFxyXG5cdFx0XHRcdG5hdkJhckhlaWdodDogNzAgKyB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS5zdGF0dXNCYXJIZWlnaHQsXHJcblx0XHRcdFx0bmF2VGl0bGU6IFwiNjE3MFwiLFxyXG5cdFx0XHRcdHNsaWRlclZhbHVlOiA1MCxcclxuXHRcdFx0XHRsaWdodE1vZGVBOiBmYWxzZSxcclxuXHRcdFx0XHRjdXJyZW50TWFpbk1vZGU6ICflvLrlhYnmqKHlvI8nLFxyXG5cdFx0XHRcdGN1cnJlbnRTZWNvbmRhcnlNb2RlOiAn5rOb5YWJ5qih5byPJyxcclxuXHRcdFx0XHRsaWdodE1vZGVCOiBmYWxzZSxcclxuXHRcdFx0XHRsaWdodE1vZGVDOiBmYWxzZSwgLy/mv4DlhYnmj5DnpLrmoYZcclxuXHRcdFx0XHRpdGVtczogW10sXHJcblx0XHRcdFx0aXNGb3JtRXhwYW5kZWQ6IHRydWUsIC8vIOm7mOiupOWxleW8gFxyXG5cdFx0XHRcdGRldmljZUlEOiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0cG9wdXBUaXRsZSgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5tb2RlVHlwZSA9PT0gJ21haW4nID8gJ+eBr+WFieaooeW8jycgOiAn5r+A5YWJ5qih5byPJztcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0c2VsZWN0TW9kZSh0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5tb2RlVHlwZSA9IHR5cGU7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVBID0gdHJ1ZTtcclxuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ21haW4nKSB7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gW3tcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiAn5by65YWJJyxcclxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdGhpcy5jdXJyZW50TWFpbk1vZGUgPT09ICflvLrlhYnmqKHlvI8nLFxyXG5cdFx0XHRcdFx0XHRcdGltYWdlOiAnL3N0YXRpYy9pbWFnZXMvc2V0dC5wbmcnXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiAn5byx5YWJJyxcclxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdGhpcy5jdXJyZW50TWFpbk1vZGUgPT09ICflvLHlhYnmqKHlvI8nLFxyXG5cdFx0XHRcdFx0XHRcdGltYWdlOiAnL3N0YXRpYy9pbWFnZXMvc2V0dC5wbmcnXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiAn54iG6ZeqJyxcclxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdGhpcy5jdXJyZW50TWFpbk1vZGUgPT09ICfniIbpl6rmqKHlvI8nLFxyXG5cdFx0XHRcdFx0XHRcdGltYWdlOiAnL3N0YXRpYy9pbWFnZXMvYnMucG5nJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0dGV4dDogJ+azm+WFiScsXHJcblx0XHRcdFx0XHRcdFx0c2VsZWN0ZWQ6IHRoaXMuY3VycmVudE1haW5Nb2RlID09PSAn5rOb5YWJ5qih5byPJyxcclxuXHRcdFx0XHRcdFx0XHRpbWFnZTogJy9zdGF0aWMvaW1hZ2VzL3NldHR0LnBuZydcclxuXHRcdFx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0XHRdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5r+A5YWJ5qih5byPXHJcblx0XHRcdGxhc2VybW9kZSgpIHtcclxuXHRcdFx0XHR0aGlzLmxpZ2h0TW9kZUMgPSB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdHRvZ2dsZUZvcm0oKSB7XHJcblx0XHRcdFx0dGhpcy5pc0Zvcm1FeHBhbmRlZCA9ICF0aGlzLmlzRm9ybUV4cGFuZGVkO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0b25JdGVtQ2xpY2soaW5kZXgpIHtcclxuXHRcdFx0XHRjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLml0ZW1zW2luZGV4XTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhzZWxlY3RlZEl0ZW0udGV4dCwgJ3NlbGVjdGVkSXRlbS50ZXh0Jyk7XHJcblx0XHRcdFx0aWYgKHNlbGVjdGVkSXRlbS50ZXh0ID09PSAn5r+A5YWJJykge1xyXG5cdFx0XHRcdFx0dGhpcy5saWdodE1vZGVDID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IGluZGV4OyAvLyDorrDlvZXlvZPliY3pgInmi6nnmoTntKLlvJVcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oaW5kZXgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dXBkYXRlU2VsZWN0ZWRJdGVtKGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtLCBpKSA9PiAoe1xyXG5cdFx0XHRcdFx0Li4uaXRlbSxcclxuXHRcdFx0XHRcdHNlbGVjdGVkOiBpID09PSBpbmRleFxyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlVHlwZSA9PT0gJ21haW4nKSB7XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRNYWluTW9kZSA9IHRoaXMuaXRlbXNbaW5kZXhdLnRleHQgKyAn5qih5byPJztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50U2Vjb25kYXJ5TW9kZSA9IHRoaXMuaXRlbXNbaW5kZXhdLnRleHQgKyAn5qih5byPJztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zaG93UG9wdXAgPSBmYWxzZTsgLy8g5YWz6Zet5by556qXXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOehruiupFxyXG5cdFx0XHRoYW5kbGVTdW1iaXQoKSB7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVBID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5LiK5Lyg5byA5py655S76Z2iXHJcblx0XHRcdHVwbG9hZFN0YXJ0dXAoKSB7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVCID0gdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuIrkvKDlvIDmnLrnlLvpnaLnoa7orqTmjInplK5cclxuXHRcdFx0aGFuZGxldXBsb2FkKCkge1xyXG5cdFx0XHRcdHRoaXMubGlnaHRNb2RlQiA9IGZhbHNlXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvLyDmk43nurXor7TmmI5cclxuXHRcdFx0b3BlcmF0aW5nSW5zdCgpIHtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6IGAvcGFnZXMvY29tbW9uL29wZXJhdGluZ0luc3RydWN0L2luZGV4P2lkPSR7dGhpcy5kZXZpY2VJRH1gXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5Lqn5ZOB5Y+C5pWwXHJcblx0XHRcdHByb2R1Y3RwYXJhbXMoKSB7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOiBgL3BhZ2VzL2NvbW1vbi9wcm9kdWN0RGVzL2luZGV4P2lkPSR7dGhpcy5kZXZpY2VJRH1gXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pON5L2c6KeG6aKRXHJcblx0XHRcdG9wZXJhdGluZ1ZpZGVvKCkge1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybDogYC9wYWdlcy9jb21tb24vb3BlcmF0aW9uVmlkZW8vaW5kZXg/aWQ9JHt0aGlzLmRldmljZUlEfWBcclxuXHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5ZCM5oSPXHJcblx0XHRcdGhhbmRsZUJ0bigpIHtcclxuXHRcdFx0XHR0aGlzLmxpZ2h0TW9kZUMgPSBmYWxzZVxyXG5cdFx0XHRcdHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXgpOyAvLyDkvb/nlKjorrDlvZXnmoTntKLlvJXmnaXmm7TmlrDpgInmi6npoblcclxuXHRcdFx0XHR0aGlzLmxpZ2h0TW9kZUEgPSBmYWxzZSAvL+WFs+mXreWkp+W8ueahhlxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuI3lkIzmhI9cclxuXHRcdFx0aGFuZGxlRGlzYWdyZWUoKSB7XHJcblx0XHRcdFx0dGhpcy5saWdodE1vZGVDID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQob3B0aW9ucykge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhvcHRpb25zLmlkKSAvLyDovpPlh7o6IDEyM1xyXG5cdFx0XHR0aGlzLmRldmljZUlEID0gb3B0aW9ucy5pZFxyXG5cdFx0fVxyXG5cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5kZXZpY2UtZGV0YWlsLWNvbnRhaW5lciB7XHJcblx0XHRwYWRkaW5nOiAzMHJweDtcclxuXHRcdGJhY2tncm91bmQ6ICMxMjEyMTI7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtYmFyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRtYXJnaW4tYm90dG9tOiA0MHJweDtcclxuXHR9XHJcblxyXG5cdC50aW1lIHtcclxuXHRcdGZvbnQtc2l6ZTogMzZycHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHR9XHJcblxyXG5cdC5iYXR0ZXJ5IHtcclxuXHRcdGZvbnQtc2l6ZTogMzZycHg7XHJcblx0fVxyXG5cclxuXHQuYmF0dGVyeS1zZWN0aW9uIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMjYsIDI2KTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LmJhdHRlcnktaW5mbyxcclxuXHQuZHVyYXRpb24ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LmJpcEltZyB7XHJcblx0XHR3aWR0aDogMjA0cnB4O1xyXG5cdFx0aGVpZ2h0OiAxNDRycHg7XHJcblx0XHRtYXJnaW4tdG9wOiAzMHJweDtcclxuXHR9XHJcblxyXG5cdC5kbElNRyB7XHJcblx0XHR3aWR0aDogNTJycHg7XHJcblx0XHRoZWlnaHQ6IDUycnB4O1xyXG5cdH1cclxuXHJcblx0LmNwSU1HIHtcclxuXHRcdHdpZHRoOiA2NnJweDtcclxuXHRcdGhlaWdodDogNjZycHg7XHJcblx0fVxyXG5cclxuXHQuYmF0dGVyeS1zZWN0aW9uTGVmdCB7XHJcblx0XHR3aWR0aDogMzA4cnB4O1xyXG5cdFx0aGVpZ2h0OiAyMjBycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDQyLCA0MiwgNDIsIDAuNSk7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDogMjIwcnB4O1xyXG5cdH1cclxuXHJcblx0LnBlcmNlbnRhZ2Uge1xyXG5cdFx0Zm9udC1zaXplOiA0OHJweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0Y29sb3I6ICMwMDdBRkY7XHJcblx0fVxyXG5cclxuXHQubGFiZWwge1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHRcdGNvbG9yOiAjNjY2O1xyXG5cdFx0bWFyZ2luLXRvcDogMTBycHg7XHJcblx0fVxyXG5cclxuXHQuYmF0dGVyeS12MSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEwcnB4O1xyXG5cdH1cclxuXHJcblxyXG5cdC5iYXR0ZXJ5LXYyIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDE4cnB4O1xyXG5cdFx0Zm9udC1zaXplOiAzMnJweDtcclxuXHR9XHJcblxyXG5cdC5iYXR0ZXJ5LXYzIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XHJcblx0XHRtYXJnaW4tbGVmdDogMjVycHg7XHJcblx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcclxuXHQubW9kZS12MyB7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG5cdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdHBhZGRpbmctdG9wOiAxMHJweDtcclxuXHR9XHJcblxyXG5cdC5pbmZvLWNhcmQge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LCAyNiwgMjYpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRwYWRkaW5nOiAxMHJweCAzMHJweCA1cnB4IDMwcnB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XHJcblxyXG5cdH1cclxuXHJcblx0LmluZm8tcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcclxuXHR9XHJcblxyXG5cdC5pbmZvLWxhYmVsIHtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHR9XHJcblxyXG5cdC5pbmZvLXZhbHVlIHtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtcnVubmluZyB7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG5cdFx0dGV4dC1hbGlnbjogZW5kO1xyXG5cdH1cclxuXHJcblx0LmNvbnRyb2wtY2FyZCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjYsIDI2LCAyNik7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuXHJcblx0LmxpZ2h0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdC8qIHRvcDoxMHJweDsgKi9cclxuXHRcdGNvbG9yOiByZ2JhKDc0LCA3NCwgNzQsIDAuODcpO1xyXG5cdFx0dG9wOiA1OHJweDtcclxuXHRcdGxlZnQ6IDEwOHJweFxyXG5cdH1cclxuXHJcblx0LnNlY3Rpb24tdGl0bGUge1xyXG5cdFx0Zm9udC1zaXplOiAzMnJweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHR9XHJcblxyXG5cdC5zbGlkZXItY29udGFpbmVyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LnNsaWRlciB7XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0bWFyZ2luOiAwIDIwcnB4O1xyXG5cdH1cclxuXHJcblx0Lm1vZGUtYnV0dG9ucyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdH1cclxuXHJcblx0Lm1vZGVfMSB7XHJcblx0XHR3aWR0aDogMTgwcnB4O1xyXG5cdFx0aGVpZ2h0OiAxODBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdGJhY2tncm91bmQ6IHJnYigyNiwgMjYsIDI2KTtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG5cdFx0cGFkZGluZy10b3A6IDM3cnB4O1xyXG5cdH1cclxuXHJcblx0Lm1vZGUtdjEge1xyXG5cdFx0YmFja2dyb3VuZDogIzFBMUExQTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE4cnB4O1xyXG5cdFx0aGVpZ2h0OiAxNTBycHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcclxuXHRcdHdpZHRoOiA0NyU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0Lm1vZGUtdjIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tbGVmdDogNDBycHg7XHJcblxyXG5cdH1cclxuXHJcblx0LmV4YW1wbGUtYm9keSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRsZWZ0OiA1MCU7XHJcblx0XHR0b3A6IDcwJTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE3JSwgLTEwMCUpO1xyXG5cclxuXHR9XHJcblxyXG5cdC51bmktZmlsZS1waWNrZXJfX2NvbnRhaW5lciB7XHJcblx0XHR3aWR0aDogMjAwcnB4ICFpbXBvcnRhbnQ7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2IoNTgsIDU4LCA1OCk7XHJcblx0fVxyXG5cclxuXHQ6ZGVlcCAuZmlsZS1waWNrZXJfX2JveCB7XHJcblx0XHR3aWR0aDogNDAlICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cclxuXHQuZXhhbXBsZV90aXRsZSB7XHJcblx0XHRwYWRkaW5nLXRvcDogMjBycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHR9XHJcblxyXG5cdC5tb2RlLWJ0biB7XHJcblx0XHR3aWR0aDogNDglO1xyXG5cdFx0aGVpZ2h0OiA4MHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA4MHJweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcblx0XHRjb2xvcjogIzMzMztcclxuXHRcdGJvcmRlci1yYWRpdXM6IDhycHg7XHJcblx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdH1cclxuXHJcblx0Lm1vZGUtYnRuLmFjdGl2ZSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUZGO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0fVxyXG5cclxuXHQuZm9ybS1zZWN0aW9uIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMjYsIDI2KTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAzMHJweDtcclxuXHJcblx0fVxyXG5cclxuXHQuZm9ybS1yb3cge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcclxuXHRcdGJhY2tncm91bmQ6IHJnYig0MiwgNDIsIDQyKTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAyMHJweDtcclxuXHR9XHJcblxyXG5cdC5mb3JtLWxhYmVsIHtcclxuXHRcdGZvbnQtc2l6ZTogMzJycHg7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHR9XHJcblxyXG5cdC5mb3JtLWlucHV0IHtcclxuXHRcdGhlaWdodDogODBycHg7XHJcblx0XHRib3JkZXI6IDFycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0XHRmb250LXNpemU6IDMycnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0fVxyXG5cclxuXHQucHJvZHVjdC1zZWN0aW9uIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNnJweDtcclxuXHRcdHBhZGRpbmc6IDMwcnB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMzBycHg7XHJcblx0XHRib3gtc2hhZG93OiAwIDRycHggMTJycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcclxuXHR9XHJcblxyXG5cdC5wcm9kdWN0LXRhYnMge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdG1hcmdpbi10b3A6IDIwcnB4O1xyXG5cdH1cclxuXHJcblx0LnRhYiB7XHJcblx0XHRwYWRkaW5nOiAxNXJweCAzMHJweDtcclxuXHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRjb2xvcjogIzY2NjtcclxuXHRcdGJvcmRlci1ib3R0b206IDRycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0fVxyXG5cclxuXHQudGFiLmFjdGl2ZSB7XHJcblx0XHRjb2xvcjogIzAwN0FGRjtcclxuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDdBRkY7XHJcblx0fVxyXG5cclxuXHQuYWN0aW9uLWJ1dHRvbnMge1xyXG5cdFx0cGFkZGluZzogMzBycHggMDtcclxuXHR9XHJcblxyXG5cdC5zZW5kLWJ0biB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg3LCAyMzAsIDApO1xyXG5cdFx0Y29sb3I6IHJnYmEoMzUsIDM1LCAzNSwgMC44Nyk7XHJcblx0XHRoZWlnaHQ6IDUwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDUwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdFx0d2lkdGg6IDExMnJweDtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogNzBycHg7XHJcblxyXG5cdH1cclxuXHJcblx0LnNlbmQtYnRuMSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg3LCAyMzAsIDApO1xyXG5cdFx0Y29sb3I6IHJnYmEoMzUsIDM1LCAzNSwgMC44Nyk7XHJcblx0XHRoZWlnaHQ6IDUwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDUwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTZycHg7XHJcblx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdFx0d2lkdGg6IDExMnJweDtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMHJweDtcclxuXHRcdHRvcDogLTcwcnB4XHJcblx0fVxyXG5cclxuXHJcblx0Lyog6YGu572p5bGCICovXHJcblx0LmFncmVlbWVudC1tYXNrIHtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHR6LWluZGV4OiA5OTk5O1xyXG5cdH1cclxuXHJcblx0Lyog5by556qX5Li75L2TICovXHJcblx0LmFncmVlbWVudC1wb3B1cCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogNTAlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDQyLCA0MiwgNDIpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNjBycHggNjBycHggMHJweCAwcnB4O1xyXG5cdFx0cGFkZGluZzogNDBycHg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0Ym90dG9tOiAwcnB4O1xyXG5cdH1cclxuXHJcblx0LmFncmVlbWVudC1wb3B1cEMge1xyXG5cdFx0d2lkdGg6IDgwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYig0MiwgNDIsIDQyKTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDQwcnB4O1xyXG5cdFx0cGFkZGluZzogNDBycHg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDIwMCwgNzgsIDEpO1xyXG5cdH1cclxuXHJcblx0LnBvcHVwLVRpdGxlIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjAwLCA3OCwgMSk7XHJcblx0fVxyXG5cclxuXHQvKiDmoIfpopggKi9cclxuXHQucG9wdXAtdGl0bGUge1xyXG5cdFx0Zm9udC1zaXplOiAzNnJweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDMwcnB4O1xyXG5cdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7XHJcblx0fVxyXG5cclxuXHQvKiDlhoXlrrnmlofmnKwgKi9cclxuXHQucG9wdXAtY29udGVudCB7XHJcblx0XHRmb250LXNpemU6IDMwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuNjtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNTBycHg7XHJcblx0fVxyXG5cclxuXHQuaXRlbSB7XHJcblx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdFx0bWFyZ2luOiA1cHggMDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzO1xyXG5cdH1cclxuXHJcblx0LnNldElNRyB7XHJcblx0XHR3aWR0aDogMjRweDtcclxuXHRcdGhlaWdodDogMjRweDtcclxuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHR9XHJcblxyXG5cdC5pdGVtLnNlbGVjdGVkIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYig1OCwgNTgsIDU4KTtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogOHJweDtcclxuXHR9XHJcblxyXG5cdC8qIOaMiemSruWuueWZqCAqL1xyXG5cdC5wb3B1cC1idXR0b25zIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0fVxyXG5cclxuXHQvKuehruWumuaMiemSriAqL1xyXG5cdC5hZ3JlZSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg3LCAyMzAsIDApO1xyXG5cdFx0Y29sb3I6ICMyMzIzMjM7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0aGVpZ2h0OiA4OHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA4OHJweDtcclxuXHRcdGZvbnQtc2l6ZTogMzJycHg7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogMHJweDtcclxuXHRcdGxlZnQ6IDBycHhcclxuXHR9XHJcblxyXG5cdC8qIOmAmueUqOaMiemSruagt+W8jyAqL1xyXG5cdC5idG4ge1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdGhlaWdodDogODBycHg7XHJcblx0XHRsaW5lLWhlaWdodDogODBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0MHJweDtcclxuXHRcdGZvbnQtc2l6ZTogMzJycHg7XHJcblx0XHRtYXJnaW46IDAgMjBycHg7XHJcblx0fVxyXG5cclxuXHQvKiDkuI3lkIzmhI/mjInpkq4gKi9cclxuXHQuZGlzYWdyZWUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyMDAsIDc4LCAwLjcpO1xyXG5cdFx0Zm9udC1zaXplOiAyNHJweDtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjAwLCA3OCwgMSk7XHJcblx0fVxyXG5cclxuXHQvKiDlkIzmhI/mjInpkq4gKi9cclxuXHQuYWdyZWVCdG4ge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwMCwgNzgsIDEpO1xyXG5cdFx0Y29sb3I6ICMyMzIzMjM7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdH1cclxuXHJcblx0LnJpZ2h0LWljb25zIHtcclxuXHRcdC8qIGRpc3BsYXk6IGZsZXg7ICovXHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LnRvZ2dsZS1pY29uIHtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdG1hcmdpbi10b3A6IC00MHJweDtcclxuXHR9XHJcblxyXG5cdC5pY29uIHtcclxuXHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdH1cclxuXHJcblx0LmZvcm0tY29udGVudCB7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG5cdFx0bWFyZ2luLXRvcDogNjBycHg7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0fVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///151\n"); /***/ }), /* 152 */ @@ -18748,6 +18757,105 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ }), /* 184 */ +/*!*****************************************************!*\ + !*** D:/APP/pages/common/map/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_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=78172cf8&mpType=page */ 185);\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 */ 187);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 16);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_du_HBuilderX_4_64_2025042916_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_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/common/map/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ2dNO0FBQ2hNLGdCQUFnQiwwTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTg0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzgxNzJjZjgmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vZHUvSEJ1aWxkZXJYLjQuNjQuMjAyNTA0MjkxNi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2NvbW1vbi9tYXAvaW5kZXgudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///184\n"); + +/***/ }), +/* 185 */ +/*!***********************************************************************************!*\ + !*** D:/APP/pages/common/map/index.vue?vue&type=template&id=78172cf8&mpType=page ***! + \***********************************************************************************/ +/*! exports provided: render, staticRenderFns, recyclableRender, components */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_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_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=78172cf8&mpType=page */ 186); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_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_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_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_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_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_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_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_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); + + + +/***/ }), +/* 186 */ +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/APP/pages/common/map/index.vue?vue&type=template&id=78172cf8&mpType=page ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns, recyclableRender, components */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); +var components +var render = function () { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "view", + { + staticClass: _vm._$s(0, "sc", "page-section page-section-gap"), + attrs: { _i: 0 }, + }, + [ + _c("map", { + staticClass: _vm._$s(1, "sc", "map"), + attrs: { + latitude: _vm._$s(1, "a-latitude", _vm.latitude), + longitude: _vm._$s(1, "a-longitude", _vm.longitude), + customMapStyle: _vm._$s(1, "a-customMapStyle", _vm.amapStyle), + markers: _vm._$s(1, "a-markers", _vm.covers), + _i: 1, + }, + }), + ] + ) +} +var recyclableRender = false +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), +/* 187 */ +/*!*****************************************************************************!*\ + !*** D:/APP/pages/common/map/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 _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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__(/*! -!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../du/HBuilderX.4.64.2025042916/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 */ 188);\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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(_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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 _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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\"] = (_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdxQixDQUFnQiwwckJBQUcsRUFBQyIsImZpbGUiOiIxODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vZHUvSEJ1aWxkZXJYLjQuNjQuMjAyNTA0MjkxNi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vZHUvSEJ1aWxkZXJYLjQuNjQuMjAyNTA0MjkxNi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///187\n"); + +/***/ }), +/* 188 */ +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/APP/pages/common/map/index.vue?vue&type=script&lang=js&mpType=page ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n id: 0,\n // 使用 marker点击事件 需要填写id\n title: 'map',\n latitude: 39.909,\n longitude: 116.39742,\n covers: [{\n latitude: 39.909,\n longitude: 116.39742\n }],\n amapStyle: {}\n };\n },\n methods: {}\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY29tbW9uL21hcC9pbmRleC52dWUiXSwibmFtZXMiOlsiZGF0YSIsImlkIiwidGl0bGUiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsImNvdmVycyIsImFtYXBTdHlsZSIsIm1ldGhvZHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O2VBU0E7RUFDQUE7SUFDQTtNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FGO1FBQ0FDO01BRUE7TUFDQUUsWUFDQTtJQUNBO0VBQ0E7RUFDQUMsVUFFQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTg4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwicGFnZS1zZWN0aW9uIHBhZ2Utc2VjdGlvbi1nYXBcIj5cclxuXHRcdDxtYXAgY2xhc3M9XCJtYXBcIiA6bGF0aXR1ZGU9XCJsYXRpdHVkZVwiIDpsb25naXR1ZGU9XCJsb25naXR1ZGVcIiA6Y3VzdG9tTWFwU3R5bGU9XCJhbWFwU3R5bGVcIiA6c2hvdy1sb2NhdGlvbj1cInRydWVcIlxyXG5cdFx0XHQ6bWFya2Vycz1cImNvdmVyc1wiPlxyXG5cdFx0PC9tYXA+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGlkOiAwLCAvLyDkvb/nlKggbWFya2Vy54K55Ye75LqL5Lu2IOmcgOimgeWhq+WGmWlkXHJcblx0XHRcdFx0dGl0bGU6ICdtYXAnLFxyXG5cdFx0XHRcdGxhdGl0dWRlOiAzOS45MDksXHJcblx0XHRcdFx0bG9uZ2l0dWRlOiAxMTYuMzk3NDIsXHJcblx0XHRcdFx0Y292ZXJzOiBbe1xyXG5cdFx0XHRcdFx0bGF0aXR1ZGU6IDM5LjkwOSxcclxuXHRcdFx0XHRcdGxvbmdpdHVkZTogMTE2LjM5NzQyLFxyXG5cclxuXHRcdFx0XHR9XSxcclxuXHRcdFx0XHRhbWFwU3R5bGU6IHtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG5cclxuPHN0eWxlPlxyXG5cdC5tYXAge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMHZoO1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///188\n"); + +/***/ }), +/* 189 */ /*!**********************!*\ !*** D:/APP/App.vue ***! \**********************/ @@ -18755,10 +18863,10 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (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& */ 185);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 16);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_du_HBuilderX_4_64_2025042916_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDdUw7QUFDdkwsZ0JBQWdCLDBNQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjE4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50c1xudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJBcHAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///184\n"); +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& */ 190);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 16);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_du_HBuilderX_4_64_2025042916_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDdUw7QUFDdkwsZ0JBQWdCLDBNQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjE4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50c1xudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJBcHAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///189\n"); /***/ }), -/* 185 */ +/* 190 */ /*!***********************************************!*\ !*** D:/APP/App.vue?vue&type=script&lang=js& ***! \***********************************************/ @@ -18766,10 +18874,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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__(/*! -!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../du/HBuilderX.4.64.2025042916/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& */ 186);\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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(_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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 _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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\"] = (_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQSttQixDQUFnQiw2cUJBQUcsRUFBQyIsImZpbGUiOiIxODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vZHUvSEJ1aWxkZXJYLjQuNjQuMjAyNTA0MjkxNi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vZHUvSEJ1aWxkZXJYLjQuNjQuMjAyNTA0MjkxNi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///185\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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__(/*! -!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../du/HBuilderX.4.64.2025042916/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& */ 191);\n/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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(_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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 _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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\"] = (_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQSttQixDQUFnQiw2cUJBQUcsRUFBQyIsImZpbGUiOiIxOTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vZHUvSEJ1aWxkZXJYLjQuNjQuMjAyNTA0MjkxNi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vZHUvSEJ1aWxkZXJYLjQuNjQuMjAyNTA0MjkxNi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi9kdS9IQnVpbGRlclguNC42NC4yMDI1MDQyOTE2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uL2R1L0hCdWlsZGVyWC40LjY0LjIwMjUwNDI5MTYvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///190\n"); /***/ }), -/* 186 */ +/* 191 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/APP/App.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ @@ -18777,10 +18885,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _du_ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n onLaunch: function onLaunch() {},\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:8\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:11\");\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFFZEEsUUFBUSxFQUFFLG9CQUFXLENBRXJCLENBQUM7RUFDREMsTUFBTSxFQUFFLGtCQUFXO0lBQ2xCLGFBQVksVUFBVTtFQUN2QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkI7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiMTg2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cblx0b25MYXVuY2g6IGZ1bmN0aW9uKCkge1xuXG5cdH0sXG5cdG9uU2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///186\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n onLaunch: function onLaunch() {},\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:8\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:11\");\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFFZEEsUUFBUSxFQUFFLG9CQUFXLENBRXJCLENBQUM7RUFDREMsTUFBTSxFQUFFLGtCQUFXO0lBQ2xCLGFBQVksVUFBVTtFQUN2QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkI7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiMTkxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cblx0b25MYXVuY2g6IGZ1bmN0aW9uKCkge1xuXG5cdH0sXG5cdG9uU2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///191\n"); /***/ }), -/* 187 */ +/* 192 */ /*!************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/index.js ***! \************************************************/ @@ -18795,32 +18903,32 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; -var _mixin = _interopRequireDefault(__webpack_require__(/*! ./libs/mixin/mixin.js */ 188)); -var _request = _interopRequireDefault(__webpack_require__(/*! ./libs/request */ 189)); -var _queryParams = _interopRequireDefault(__webpack_require__(/*! ./libs/function/queryParams.js */ 193)); -var _route = _interopRequireDefault(__webpack_require__(/*! ./libs/function/route.js */ 194)); -var _timeFormat = _interopRequireDefault(__webpack_require__(/*! ./libs/function/timeFormat.js */ 195)); -var _timeFrom = _interopRequireDefault(__webpack_require__(/*! ./libs/function/timeFrom.js */ 196)); -var _colorGradient = _interopRequireDefault(__webpack_require__(/*! ./libs/function/colorGradient.js */ 197)); -var _guid = _interopRequireDefault(__webpack_require__(/*! ./libs/function/guid.js */ 198)); -var _color = _interopRequireDefault(__webpack_require__(/*! ./libs/function/color.js */ 199)); -var _type2icon = _interopRequireDefault(__webpack_require__(/*! ./libs/function/type2icon.js */ 200)); -var _randomArray = _interopRequireDefault(__webpack_require__(/*! ./libs/function/randomArray.js */ 201)); -var _deepClone = _interopRequireDefault(__webpack_require__(/*! ./libs/function/deepClone.js */ 191)); -var _deepMerge = _interopRequireDefault(__webpack_require__(/*! ./libs/function/deepMerge.js */ 190)); -var _addUnit = _interopRequireDefault(__webpack_require__(/*! ./libs/function/addUnit.js */ 202)); -var _test = _interopRequireDefault(__webpack_require__(/*! ./libs/function/test.js */ 192)); -var _random = _interopRequireDefault(__webpack_require__(/*! ./libs/function/random.js */ 203)); -var _trim = _interopRequireDefault(__webpack_require__(/*! ./libs/function/trim.js */ 204)); -var _toast = _interopRequireDefault(__webpack_require__(/*! ./libs/function/toast.js */ 205)); -var _getParent = _interopRequireDefault(__webpack_require__(/*! ./libs/function/getParent.js */ 206)); -var _$parent = _interopRequireDefault(__webpack_require__(/*! ./libs/function/$parent.js */ 207)); -var _sys = __webpack_require__(/*! ./libs/function/sys.js */ 208); -var _debounce = _interopRequireDefault(__webpack_require__(/*! ./libs/function/debounce.js */ 209)); -var _throttle = _interopRequireDefault(__webpack_require__(/*! ./libs/function/throttle.js */ 210)); -var _addStyle = _interopRequireDefault(__webpack_require__(/*! ./libs/function/addStyle.js */ 211)); -var _config = _interopRequireDefault(__webpack_require__(/*! ./libs/config/config.js */ 212)); -var _zIndex = _interopRequireDefault(__webpack_require__(/*! ./libs/config/zIndex.js */ 213)); +var _mixin = _interopRequireDefault(__webpack_require__(/*! ./libs/mixin/mixin.js */ 193)); +var _request = _interopRequireDefault(__webpack_require__(/*! ./libs/request */ 194)); +var _queryParams = _interopRequireDefault(__webpack_require__(/*! ./libs/function/queryParams.js */ 198)); +var _route = _interopRequireDefault(__webpack_require__(/*! ./libs/function/route.js */ 199)); +var _timeFormat = _interopRequireDefault(__webpack_require__(/*! ./libs/function/timeFormat.js */ 200)); +var _timeFrom = _interopRequireDefault(__webpack_require__(/*! ./libs/function/timeFrom.js */ 201)); +var _colorGradient = _interopRequireDefault(__webpack_require__(/*! ./libs/function/colorGradient.js */ 202)); +var _guid = _interopRequireDefault(__webpack_require__(/*! ./libs/function/guid.js */ 203)); +var _color = _interopRequireDefault(__webpack_require__(/*! ./libs/function/color.js */ 204)); +var _type2icon = _interopRequireDefault(__webpack_require__(/*! ./libs/function/type2icon.js */ 205)); +var _randomArray = _interopRequireDefault(__webpack_require__(/*! ./libs/function/randomArray.js */ 206)); +var _deepClone = _interopRequireDefault(__webpack_require__(/*! ./libs/function/deepClone.js */ 196)); +var _deepMerge = _interopRequireDefault(__webpack_require__(/*! ./libs/function/deepMerge.js */ 195)); +var _addUnit = _interopRequireDefault(__webpack_require__(/*! ./libs/function/addUnit.js */ 207)); +var _test = _interopRequireDefault(__webpack_require__(/*! ./libs/function/test.js */ 197)); +var _random = _interopRequireDefault(__webpack_require__(/*! ./libs/function/random.js */ 208)); +var _trim = _interopRequireDefault(__webpack_require__(/*! ./libs/function/trim.js */ 209)); +var _toast = _interopRequireDefault(__webpack_require__(/*! ./libs/function/toast.js */ 210)); +var _getParent = _interopRequireDefault(__webpack_require__(/*! ./libs/function/getParent.js */ 211)); +var _$parent = _interopRequireDefault(__webpack_require__(/*! ./libs/function/$parent.js */ 212)); +var _sys = __webpack_require__(/*! ./libs/function/sys.js */ 213); +var _debounce = _interopRequireDefault(__webpack_require__(/*! ./libs/function/debounce.js */ 214)); +var _throttle = _interopRequireDefault(__webpack_require__(/*! ./libs/function/throttle.js */ 215)); +var _addStyle = _interopRequireDefault(__webpack_require__(/*! ./libs/function/addStyle.js */ 216)); +var _config = _interopRequireDefault(__webpack_require__(/*! ./libs/config/config.js */ 217)); +var _zIndex = _interopRequireDefault(__webpack_require__(/*! ./libs/config/zIndex.js */ 218)); // 引入全局mixin // 引入关于是否mixin集成小程序分享的配置 @@ -18916,7 +19024,7 @@ exports.default = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)["default"])) /***/ }), -/* 188 */ +/* 193 */ /*!***********************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/mixin/mixin.js ***! \***********************************************************/ @@ -18998,7 +19106,7 @@ var _default = { exports.default = _default; /***/ }), -/* 189 */ +/* 194 */ /*!*************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/request/index.js ***! \*************************************************************/ @@ -19015,8 +19123,8 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 134)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 135)); -var _deepMerge = _interopRequireDefault(__webpack_require__(/*! ../function/deepMerge */ 190)); -var _test = _interopRequireDefault(__webpack_require__(/*! ../function/test */ 192)); +var _deepMerge = _interopRequireDefault(__webpack_require__(/*! ../function/deepMerge */ 195)); +var _test = _interopRequireDefault(__webpack_require__(/*! ../function/test */ 197)); var Request = /*#__PURE__*/function () { function Request() { var _this = this; @@ -19208,7 +19316,7 @@ var _default = new Request(); exports.default = _default; /***/ }), -/* 190 */ +/* 195 */ /*!******************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/deepMerge.js ***! \******************************************************************/ @@ -19224,7 +19332,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4)); -var _deepClone = _interopRequireDefault(__webpack_require__(/*! ./deepClone */ 191)); +var _deepClone = _interopRequireDefault(__webpack_require__(/*! ./deepClone */ 196)); // JS对象深度合并 function deepMerge() { var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; @@ -19257,7 +19365,7 @@ var _default = deepMerge; exports.default = _default; /***/ }), -/* 191 */ +/* 196 */ /*!******************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/deepClone.js ***! \******************************************************************/ @@ -19298,7 +19406,7 @@ var _default = deepClone; exports.default = _default; /***/ }), -/* 192 */ +/* 197 */ /*!*************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/test.js ***! \*************************************************************/ @@ -19601,7 +19709,7 @@ var _default = { exports.default = _default; /***/ }), -/* 193 */ +/* 198 */ /*!********************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/queryParams.js ***! \********************************************************************/ @@ -19682,7 +19790,7 @@ var _default = queryParams; exports.default = _default; /***/ }), -/* 194 */ +/* 199 */ /*!**************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/route.js ***! \**************************************************************/ @@ -19862,7 +19970,7 @@ var _default = new Router().route; exports.default = _default; /***/ }), -/* 195 */ +/* 200 */ /*!*******************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/timeFormat.js ***! \*******************************************************************/ @@ -19938,7 +20046,7 @@ var _default = timeFormat; exports.default = _default; /***/ }), -/* 196 */ +/* 201 */ /*!*****************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/timeFrom.js ***! \*****************************************************************/ @@ -19953,7 +20061,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; -var _timeFormat = _interopRequireDefault(__webpack_require__(/*! ../../libs/function/timeFormat.js */ 195)); +var _timeFormat = _interopRequireDefault(__webpack_require__(/*! ../../libs/function/timeFormat.js */ 200)); /** * 时间戳转为多久之前 * @param String timestamp 时间戳 @@ -20002,7 +20110,7 @@ var _default = timeFrom; exports.default = _default; /***/ }), -/* 197 */ +/* 202 */ /*!**********************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/colorGradient.js ***! \**********************************************************************/ @@ -20155,7 +20263,7 @@ var _default = { exports.default = _default; /***/ }), -/* 198 */ +/* 203 */ /*!*************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/guid.js ***! \*************************************************************/ @@ -20215,7 +20323,7 @@ var _default = guid; exports.default = _default; /***/ }), -/* 199 */ +/* 204 */ /*!**************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/color.js ***! \**************************************************************/ @@ -20263,7 +20371,7 @@ var _default = color; exports.default = _default; /***/ }), -/* 200 */ +/* 205 */ /*!******************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/type2icon.js ***! \******************************************************************/ @@ -20316,7 +20424,7 @@ var _default = type2icon; exports.default = _default; /***/ }), -/* 201 */ +/* 206 */ /*!********************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/randomArray.js ***! \********************************************************************/ @@ -20342,7 +20450,7 @@ var _default = randomArray; exports.default = _default; /***/ }), -/* 202 */ +/* 207 */ /*!****************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/addUnit.js ***! \****************************************************************/ @@ -20357,7 +20465,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = addUnit; -var _test = _interopRequireDefault(__webpack_require__(/*! ./test.js */ 192)); +var _test = _interopRequireDefault(__webpack_require__(/*! ./test.js */ 197)); // 添加单位,如果有rpx,%,px等单位结尾或者值为auto,直接返回,否则加上rpx单位结尾 function addUnit() { var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'auto'; @@ -20368,7 +20476,7 @@ function addUnit() { } /***/ }), -/* 203 */ +/* 208 */ /*!***************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/random.js ***! \***************************************************************/ @@ -20394,7 +20502,7 @@ var _default = random; exports.default = _default; /***/ }), -/* 204 */ +/* 209 */ /*!*************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/trim.js ***! \*************************************************************/ @@ -20426,7 +20534,7 @@ var _default = trim; exports.default = _default; /***/ }), -/* 205 */ +/* 210 */ /*!**************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/toast.js ***! \**************************************************************/ @@ -20452,7 +20560,7 @@ var _default = toast; exports.default = _default; /***/ }), -/* 206 */ +/* 211 */ /*!******************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/getParent.js ***! \******************************************************************/ @@ -20521,7 +20629,7 @@ function getParent(name, keys) { } /***/ }), -/* 207 */ +/* 212 */ /*!****************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/$parent.js ***! \****************************************************************/ @@ -20556,7 +20664,7 @@ function $parent() { } /***/ }), -/* 208 */ +/* 213 */ /*!************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/sys.js ***! \************************************************************/ @@ -20580,7 +20688,7 @@ function sys() { } /***/ }), -/* 209 */ +/* 214 */ /*!*****************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/debounce.js ***! \*****************************************************************/ @@ -20627,7 +20735,7 @@ var _default = debounce; exports.default = _default; /***/ }), -/* 210 */ +/* 215 */ /*!*****************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/throttle.js ***! \*****************************************************************/ @@ -20682,7 +20790,7 @@ var _default = throttle; exports.default = _default; /***/ }), -/* 211 */ +/* 216 */ /*!*****************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/function/addStyle.js ***! \*****************************************************************/ @@ -20698,7 +20806,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4)); -var _test = _interopRequireDefault(__webpack_require__(/*! ./test.js */ 192)); +var _test = _interopRequireDefault(__webpack_require__(/*! ./test.js */ 197)); /** * @description 样式转换 * 对象转字符串,或者字符串转对象 @@ -20743,7 +20851,7 @@ var _default = addStyle; exports.default = _default; /***/ }), -/* 212 */ +/* 217 */ /*!*************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/config/config.js ***! \*************************************************************/ @@ -20768,7 +20876,7 @@ var _default = { exports.default = _default; /***/ }), -/* 213 */ +/* 218 */ /*!*************************************************************!*\ !*** D:/APP/node_modules/vk-uview-ui/libs/config/zIndex.js ***! \*************************************************************/ @@ -20804,7 +20912,7 @@ var _default = { exports.default = _default; /***/ }), -/* 214 */ +/* 219 */ /*!********************************!*\ !*** D:/APP/store/BLETools.js ***! \********************************/ @@ -20812,10 +20920,10 @@ exports.default = _default; /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createBLEConnection = createBLEConnection;\nexports.getConnected = getConnected;\nexports.getConnectedDevice = getConnectedDevice;\nexports.getDeviceId = getDeviceId;\nexports.getDiscoveredDevices = getDiscoveredDevices;\nexports.initBlue = initBlue;\nexports.manualDisconnectDevice = manualDisconnectDevice;\nexports.openBluetoothAdapter = openBluetoothAdapter;\nexports.resetDevices = resetDevices;\nexports.sendImg = sendImg;\nexports.sendLightType = sendLightType;\nexports.setBatteryCallback = setBatteryCallback;\nexports.setCallback = setCallback;\nexports.setDisconnectCallback = setDisconnectCallback;\nexports.setLight = setLight;\nexports.setMacCallback = setMacCallback;\nexports.setScanCallback = setScanCallback;\nexports.setWriteCallback = setWriteCallback;\nexports.stopBlue = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 50));\n// 蓝牙设备结果集\nvar devices = [];\n\n// 当前连接的蓝牙设备\nvar device = '';\n\n// 蓝牙设备id\nvar deviceId = '';\n\n// 写了数据等待通知结果返回\nvar waitingForResult = false;\n\n// 连接状态\nvar isConnecting = false;\nvar connected = false;\n\n// 服务 uuid 和 特征值 uuid\n//正式\n//测试\n\nvar service_uuid = \"0000AE30-0000-1000-8000-00805F9B34FB\";\nvar write_characteristic = \"0000AE03-0000-1000-8000-00805F9B34FB\";\nvar notify_characteristic = \"0000AE03-0000-1000-8000-00805F9B34FB\";\nvar notify_characteristic_2 = \"0000AE02-0000-1000-8000-00805F9B34FB\"; //获取设备电量和设备mac地址\n\n// 命名规则\nvar rule1 = \"\"; // Android\nvar rule2 = \"\"; // ios\n\n// 手动断开\nvar manualDisconnect = true;\n\n// #################################################\n// #\n// # Callback Definitions\n// #\n// #################################################\n\n// 回调事件\nvar connectCallback = ''; // 连接成功回调\nvar scanCallback = ''; // 搜索到蓝牙设备回调\nvar disconnectCallback = ''; // 设备断开连接回调\nvar writeCallback = ''; // 写成功回调\n// 自定义 业务相关 回调事件\nvar realtimeCallback = ''; // 实时发送指令的回调\nvar batteryCallback = ''; // 电量回调\nvar macCallback = ''; // MAC地址回调\nvar lastBatteryLevel = 'N/A';\n\n// 自定义 业务相关 标识\nvar realtimeType = ''; // 实时发送指令的标识\n\n// 重连相关\nvar reconnectTimes = 0; // 重连次数\nvar reconnectTimer; // 重连计时器\n\n// 因为有心跳自动计时器发送,不是全是用户手动的操作,用户的手动操作设定为一个操作后才能操作下一个,但有自动心跳发送的话,可能会出现发送心跳时,\n// 用户也正好操作了,那这时可能会出现,同时写两条指令情况,即没收到上一条的回复就发送了下一条指令,现用数组暂存\nvar cmdList = []; // 看这里!!! 现在没有心跳,只有用户的操作,确保用户的操作都是有回复的,并且在队列内,等待前一条执行完才执行下一条\n\n// 当前蓝牙适配器是否打开的状态\nvar isOpen = false;\n\n// 自动连接\nvar auto_connect = false;\n\n// 准备去自动连接的 deviceId\nvar auto_mac = [];\nvar auto_mac_backup = []; // 备份\n\n// 扫描到设备后,再等待个几秒计时器\nvar after_timer = '';\n\n// 自动连接回调\nvar autoConnectCallback = '';\n\n// 自动连接检测计时器\nvar autoConnectTimer = '';\n\n/**\r\n * 手机蓝牙是否开启了\r\n */\nvar isBleOn = false;\nvar listener = function listener(res) {\n __f__(\"log\", res, \" at store/BLETools.js:91\");\n // 该方法回调中可以用于处理连接意外断开等异常情况\n if (!res.connected) {\n device = '';\n cmdList = []; // 这里清空指令\n isConnecting = false;\n connected = false;\n lastBatteryLevel = 'N/A';\n if (disconnectCallback && typeof disconnectCallback == 'function') {\n disconnectCallback();\n }\n uni.getBluetoothAdapterState({\n success: function success(res) {\n if (!res.available) {\n isOpen = false;\n auto_connect = true;\n }\n reconnectDevice();\n },\n fail: function fail(err) {}\n });\n }\n};\n\n// 初始化拓展函数\nString.prototype.padLeft = function (len, char) {\n var str = this;\n return new Array(len - str.length + 1).join(char || '') + str;\n};\nString.prototype.transFloat = function () {\n var str = this;\n return str.indexOf('.') != -1 ? parseFloat(str).toFixed(1) : str;\n};\n\n// //uni\nuni.onBluetoothAdapterStateChange(function (res) {\n if (!res.available) {\n isOpen = false;\n isBleOn = false;\n } else {\n isBleOn = true;\n }\n});\n\n// 获取 校验\nfunction getCheckSum(cmd) {\n // console.log(cmd, '我是cmd');\n var checkSum = getCrc16(cmd);\n // console.log(checkSum, '我是checkSum');\n // console.log(splitByLen(checkSum, 2).reverse().map(e => parseInt(e, 16)), 'woshi ');\n return splitByLen(checkSum, 2).reverse().map(function (e) {\n return parseInt(e, 16);\n });\n}\nfunction getCrc16(cmd) {\n var crc = 0xffff;\n var len = cmd.length;\n for (var i = 0; i < len; i++) {\n crc = crc ^ cmd[i] & 0xff;\n for (var j = 0; j < 8; j++) {\n if ((crc & 0x0001) == 1) {\n crc >>= 1;\n crc ^= 0xA001;\n } else {\n crc >>= 1;\n }\n }\n }\n // console.log(crc.toString(16).padLeft(4, '0'), '0121454878');\n return crc.toString(16).padLeft(4, '0');\n}\n\n// #################################################\n// #\n// # Module Setup & Configuration\n// #\n// #################################################\n\n// 初始化蓝牙模块\nfunction initBlue() {\n uni.onBluetoothDeviceFound(function (res) {\n res.devices.forEach(function (device) {\n // 过滤掉没有名字的设备\n if (!device.name) {\n return;\n }\n var foundDevices = devices;\n var idx = inArray(foundDevices, 'deviceId', device.deviceId);\n if (idx === -1) {\n devices.push(device);\n } else {\n devices[idx] = device;\n }\n\n // Always notify the UI of any found device\n if (scanCallback && typeof scanCallback == \"function\") {\n scanCallback(); // 查找结果集回调\n }\n\n // console.log('auto_connect:', auto_connect);\n // console.log('isConnecting:', isConnecting);\n // console.log('deviceId:', deviceId);\n if (auto_connect && !isConnecting && device.deviceId == deviceId) {\n isConnecting = true;\n createBLEConnection(deviceId, true);\n } else if (auto_connect) {\n // console.log('111111100000000000000000//////////////');\n if (!after_timer) {\n after_timer = setTimeout(function () {\n var valid = [];\n auto_mac = JSON.parse(JSON.stringify(auto_mac_backup));\n auto_mac.forEach(function (item) {\n valid.push(devices.some(function (e) {\n return e.deviceId == item;\n }));\n });\n valid.forEach(function (item, index) {\n if (!item) {\n auto_mac.splice(index, 1);\n }\n });\n __f__(\"log\", 'valid mac ', auto_mac, \" at store/BLETools.js:216\");\n if (auto_mac.length > 0) {\n uni.showLoading({\n title: '自动连接中...',\n mask: true\n });\n var mac = auto_mac[0];\n createBLEConnection(mac);\n auto_mac.splice(0, 1);\n } else {}\n clearTimeout(after_timer);\n after_timer = '';\n }, 1000 * 6);\n }\n }\n });\n });\n}\n\n// 设置连接成功回调\nfunction setCallback(e) {\n connectCallback = e;\n}\n\n// 设置搜索到蓝牙设备回调\nfunction setScanCallback(e) {\n scanCallback = e;\n}\n\n// 设置设备断开连接回调\nfunction setDisconnectCallback(e) {\n disconnectCallback = e;\n}\n\n// 设置写成功回调\nfunction setWriteCallback(e) {\n writeCallback = e;\n}\nfunction setBatteryCallback(e) {\n batteryCallback = e;\n if (lastBatteryLevel !== 'N/A' && typeof batteryCallback === 'function') {\n batteryCallback(lastBatteryLevel);\n }\n}\nfunction setMacCallback(e) {\n macCallback = e;\n}\nfunction getDeviceId() {\n return deviceId;\n}\nfunction getConnectedDevice() {\n return device;\n}\n\n// 业务相关回调\nfunction setRealtimeCallback(type, e) {\n realtimeType = type;\n // console.log('业务相关回调', e);\n realtimeCallback = e;\n // console.log('set realtimeType ', realtimeType)\n}\n\n// #################################################\n// #\n// # Core BLE Command Functions\n// #\n// #################################################\n\n// 转换16进制\n/**\r\n * @param {number} num 几位\r\n*/\nfunction conversion(str, num) {\n var result = [];\n for (var i = 0; i < str.length; i += num) {\n var temp = str.slice(i, i + num);\n // temp.toString(16);\n result.push(parseInt(temp, 16));\n }\n return result;\n}\n\n// 切换灯的模式\nfunction sendLightType(type, e) {\n setRealtimeCallback(type, e);\n var str1 = \"FA\".concat(e, \"000100FF\");\n var arr = [];\n arr = conversion(str1, 2);\n executeCmd(arr);\n}\n\n// 调节灯亮度\nfunction setLight(type, e, num) {\n setRealtimeCallback(type, e);\n // let str = `FA05${parseInt(num, 16)}00FF`;\n var str = \"FA050001\".concat(num.toString(16).padLeft(2, '0'), \"FF\");\n var arr = conversion(str, 2);\n __f__(\"log\", 'light数组', arr, \" at store/BLETools.js:318\");\n executeCmd(arr);\n}\n\n/**\r\n * @description 设置单位、部门、名字...\r\n * @param { Array } arr \r\n*/\nfunction sendImg(arr, e) {\n var dataArr = conversion(arr, 2);\n __f__(\"log\", dataArr, \" at store/BLETools.js:328\");\n executeCmd(dataArr);\n}\n\n// 如未空(未收到回复,收到回复会清掉第一个指令)进队列, 空直接执行\nfunction executeCmd(cmd) {\n // if (cmdList.length == 0) {\n // \twriteBLECharacteristicValue(write_characteristic, cmd)\n\n // }\n // cmdList.push(cmd)\n writeBLECharacteristicValue(write_characteristic, cmd);\n}\n\n// 清掉第一个指令,然后检查队列是否为空,不为空继续发送\nfunction continueExecute() {\n cmdList.splice(0, 1);\n if (cmdList.length != 0) {\n writeBLECharacteristicValue(write_characteristic, cmdList[0]);\n }\n}\n\n// #################################################\n// #\n// # Core BLE Connection Logic\n// #\n// #################################################\n\n// step 1\n// 打开蓝牙功能\nfunction openBluetoothAdapter(search, callback) {\n var operation = function operation() {\n openBleAdapter(function (err) {\n if (!err) {\n // On success (no error), start scanning for devices.\n startBluetoothDevicesDiscovery();\n }\n // Always call the page's callback to notify it of the result.\n if (callback) {\n callback(err);\n }\n });\n };\n if (search) {\n // First close any existing adapter session, then perform the operation.\n uni.closeBluetoothAdapter({\n complete: operation\n });\n } else {\n operation();\n }\n}\nfunction openBleAdapter(callback) {\n uni.openBluetoothAdapter({\n success: function success(res) {\n isOpen = true;\n isBleOn = true;\n if (callback) callback(); // Success, no error object.\n },\n\n fail: function fail(err) {\n // Log the full error to help diagnose release version issues\n __f__(\"error\", 'openBluetoothAdapter failed with error:', JSON.stringify(err), \" at store/BLETools.js:394\");\n if (err.errCode === 10001) {\n uni.showModal({\n content: '请打开手机蓝牙',\n showCancel: false\n });\n } else {\n // For other errors, show a detailed modal for debugging in the release version.\n uni.showModal({\n title: '蓝牙启动失败',\n content: \"\\u9519\\u8BEF: \".concat(JSON.stringify(err)),\n showCancel: false\n });\n }\n isOpen = false;\n isBleOn = false;\n // Propagate the error to the calling page\n if (callback) callback(err);\n }\n });\n}\n\n// step 2\n//开始搜索蓝牙设备\nfunction startBluetoothDevicesDiscovery() {\n __f__(\"log\", '开始搜索', \" at store/BLETools.js:420\");\n var option = {\n allowDuplicatesKey: false,\n success: function success(res) {\n __f__(\"log\", '搜索成功,有设备', res, \" at store/BLETools.js:424\");\n onBluetoothDeviceFound();\n },\n fail: function fail(err) {\n __f__(\"log\", '当前搜索蓝牙设备失败', err, \" at store/BLETools.js:428\");\n if (err.errCode == 10008) {\n uni.showToast({\n title: '扫描太过频繁,请稍后再试',\n icon: 'none'\n });\n }\n // resetDevices();\n // devices = []\n // openBluetoothAdapter(true);\n }\n };\n\n if (auto_connect) {\n option.services = [service_uuid];\n }\n uni.startBluetoothDevicesDiscovery(option);\n}\nvar hexString = '';\n// step 3\n// 设备查找结果处理\nfunction onBluetoothDeviceFound() {\n uni.onBluetoothDeviceFound(function (res) {\n res.devices.forEach(function (device) {\n // 过滤掉没有名字的设备\n if (!device.name) {\n return;\n }\n var foundDevices = devices;\n var idx = inArray(foundDevices, 'deviceId', device.deviceId);\n if (idx === -1) {\n devices.push(device);\n } else {\n devices[idx] = device;\n }\n\n // Always notify the UI of any found device\n if (scanCallback && typeof scanCallback == \"function\") {\n scanCallback(); // 查找结果集回调\n }\n\n // console.log('auto_connect:', auto_connect);\n // console.log('isConnecting:', isConnecting);\n // console.log('deviceId:', deviceId);\n if (auto_connect && !isConnecting && device.deviceId == deviceId) {\n isConnecting = true;\n createBLEConnection(deviceId, true);\n } else if (auto_connect) {\n // console.log('111111100000000000000000//////////////');\n if (!after_timer) {\n after_timer = setTimeout(function () {\n var valid = [];\n auto_mac = JSON.parse(JSON.stringify(auto_mac_backup));\n auto_mac.forEach(function (item) {\n valid.push(devices.some(function (e) {\n return e.deviceId == item;\n }));\n });\n valid.forEach(function (item, index) {\n if (!item) {\n auto_mac.splice(index, 1);\n }\n });\n __f__(\"log\", 'valid mac ', auto_mac, \" at store/BLETools.js:495\");\n if (auto_mac.length > 0) {\n uni.showLoading({\n title: '自动连接中...',\n mask: true\n });\n var mac = auto_mac[0];\n createBLEConnection(mac);\n auto_mac.splice(0, 1);\n } else {}\n clearTimeout(after_timer);\n after_timer = '';\n }, 1000 * 6);\n }\n }\n });\n });\n}\n\n// connect step 1\n// 连接蓝牙设备\nfunction createBLEConnection(id, advertisData, sameDevice, closeConnectLoading) {\n //直接连接设备\n __f__(\"log\", id, advertisData, sameDevice, '连接蓝牙设备', \" at store/BLETools.js:518\");\n closeBLEConnection(false, function () {\n //监听蓝牙连接状态\n uni.onBLEConnectionStateChange(listener);\n uni.createBLEConnection({\n deviceId: id,\n timeout: 5000,\n success: function success(res) {\n __f__(\"log\", res, '蓝牙连接状态', \" at store/BLETools.js:531\");\n auto_connect = false; // 重置\n auto_mac = []; // 重置\n closeAutoConnect(); // 关闭全局自动连接\n if (autoConnectCallback && typeof autoConnectCallback == 'function') {\n autoConnectCallback();\n }\n stopBluetoothDevicesDiscovery(); // 停止扫描蓝牙设备\n device = devices.find(function (item) {\n return item.deviceId == id;\n });\n isConnecting = false;\n connected = true;\n manualDisconnect = false;\n deviceId = id;\n __f__(\"log\", '连接的设备ID', deviceId, \" at store/BLETools.js:544\");\n getBLEDeviceServices(deviceId); // 获取服务,初始化特征值\n uni.setStorageSync('deviceId', deviceId);\n // uni.setStorageSync('deviceName', name);\n },\n\n fail: function fail(err) {\n __f__(\"log\", '设备连接失败', err, \" at store/BLETools.js:550\");\n isConnecting = false;\n if (auto_connect) {\n if (auto_mac.length > 0) {\n var mac = auto_mac[0];\n createBLEConnection(mac);\n auto_mac.splice(0, 1);\n } else {\n if (autoConnectCallback && typeof autoConnectCallback == 'function') {\n autoConnectCallback();\n }\n }\n } else {\n __f__(\"log\", '设备连接失败', \" at store/BLETools.js:563\");\n uni.hideLoading();\n uni.showToast({\n title: '设备连接失败!' + err.errMsg,\n icon: 'none',\n duration: 2000\n });\n }\n if (typeof closeConnectLoading === 'function') {\n closeConnectLoading();\n }\n },\n complete: function complete() {\n uni.hideLoading();\n }\n });\n }, sameDevice); // 关闭当前蓝牙连接\n __f__(\"log\", '结束连接方法', \" at store/BLETools.js:580\");\n}\n\n// connect step 2\n// 获取服务\nfunction getBLEDeviceServices(deviceId) {\n __f__(\"log\", '我获取服务成功接收到的Id是', deviceId, \" at store/BLETools.js:586\");\n setTimeout(function () {\n uni.getBLEDeviceServices({\n deviceId: deviceId,\n success: function success(res) {\n // console.log(res, '获取蓝牙设备所有服务2');\n // console.log('测试1',res.services[i].uuid, service_uuid.toUpperCase())\n for (var i = 0; i < res.services.length; i++) {\n // console.log('测试2',res.services[i].uuid, service_uuid.toUpperCase())\n // 消息服务\n if (res.services[i].uuid == service_uuid || res.services[i].uuid == service_uuid.toUpperCase()) {\n getBLEDeviceCharacteristics(deviceId, res.services[i].uuid);\n }\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, '获取服务失败', \" at store/BLETools.js:604\");\n }\n });\n }, 6000);\n}\n\n// connect step 3\n// 初始化特征值\nfunction getBLEDeviceCharacteristics(deviceId, serviceId) {\n uni.getBLEDeviceCharacteristics({\n deviceId: deviceId,\n serviceId: serviceId,\n success: function success(res) {\n __f__(\"log\", res, '通知特征值', \" at store/BLETools.js:643\");\n var _loop = function _loop(i) {\n var item = res.characteristics[i];\n var itemUUID = item.uuid.toUpperCase();\n var primaryNotifyUUID = notify_characteristic.toUpperCase();\n var secondaryNotifyUUID = notify_characteristic_2.toUpperCase();\n\n // Check if the characteristic is one of the notification sources\n if (itemUUID === primaryNotifyUUID || itemUUID === secondaryNotifyUUID) {\n if (item.properties.notify || item.properties.indicate) {\n uni.notifyBLECharacteristicValueChange({\n deviceId: deviceId,\n serviceId: serviceId,\n characteristicId: item.uuid,\n state: true,\n success: function success() {\n __f__(\"log\", \"\\u5DF2\\u6210\\u529F\\u76D1\\u542C\\u7279\\u5F81\\u503C: \".concat(item.uuid), \" at store/BLETools.js:660\");\n },\n fail: function fail(err) {\n __f__(\"error\", \"\\u76D1\\u542C\\u7279\\u5F81\\u503C \".concat(item.uuid, \" \\u5931\\u8D25:\"), err, \" at store/BLETools.js:663\");\n }\n });\n }\n }\n if (itemUUID === write_characteristic.toUpperCase()) {\n if (item.properties.write) {}\n }\n };\n for (var i = 0; i < res.characteristics.length; i++) {\n _loop(i);\n }\n },\n fail: function fail(res) {\n __f__(\"error\", 'getBLEDeviceCharacteristics', res, \" at store/BLETools.js:675\");\n }\n });\n // notify的回调函数,操作之前先监听,保证第一时间获取数据\n // 针对不同特征值的回调处理\n uni.onBLECharacteristicValueChange(function (res) {\n var result = ab2hex(res.value);\n\n // 打印来自 notify_characteristic_2 的数据\n if (res.characteristicId.toUpperCase() === notify_characteristic_2.toUpperCase()) {\n __f__(\"log\", \"\\u63A5\\u6536\\u5230\\u6765\\u81EA [notify_characteristic_2] \\u7684\\u539F\\u59CBHex\\u6570\\u636E: \".concat(result), \" at store/BLETools.js:685\");\n if (result.startsWith('fc') && result.endsWith('ff')) {\n var macHex = result.substring(2, result.length - 2);\n var macAddress = macHex.match(/.{1,2}/g).reverse().join(':').toUpperCase();\n __f__(\"log\", \"[notify_characteristic_2] \\u89E3\\u6790\\u540E\\u7684MAC\\u5730\\u5740: \".concat(macAddress), \" at store/BLETools.js:690\");\n if (macCallback && typeof macCallback === 'function') {\n macCallback(macAddress);\n }\n return;\n } else if (result.startsWith('fb') && result.endsWith('ff')) {\n var dataHex = result.substring(2, result.length - 2);\n var batteryHex = dataHex.substring(0, 2);\n var batteryLevel = parseInt(batteryHex, 16);\n lastBatteryLevel = batteryLevel;\n __f__(\"log\", \"[notify_characteristic_2] \\u89E3\\u6790\\u540E\\u7684\\u7535\\u91CF: \".concat(batteryLevel, \"%\"), \" at store/BLETools.js:700\");\n if (batteryCallback && typeof batteryCallback === 'function') {\n batteryCallback(batteryLevel);\n }\n return;\n }\n }\n\n // This is the original logic for the primary notification characteristic.\n // It is now generalized to handle responses from either characteristic if not handled above.\n __f__(\"log\", '通知特征值', result, \" at store/BLETools.js:710\");\n var length = result.length;\n var len = parseInt(splitByLen(result.substr(2, 4), 2).reverse().join(''), 16);\n // console.log(len)\n var checkArrHex = splitByLen(result.substr(0, length - 4), 2);\n // console.log(checkArrHex)\n var checkArr = checkArrHex.map(function (e) {\n return parseInt(e, 16);\n });\n // console.log(checkArr)\n var sendCheckSum = result.substr(-4);\n var checkSum = getCheckSum(checkArr).map(function (e) {\n return e.toString(16).padLeft(2, '0');\n }).join('');\n // console.log(checkSum)\n // console.log(sendCheckSum)\n // console.log(sendCheckSum === checkSum)\n if (sendCheckSum === checkSum) {\n var type = parseInt(result.substr(8, 2), 16);\n // console.log(type)\n // console.log(realtimeType)\n if (realtimeType == type && realtimeCallback && typeof realtimeCallback == 'function') {\n realtimeType = undefined;\n var tempCallback = realtimeCallback;\n realtimeCallback = undefined;\n tempCallback(result);\n // console.log('realtimeType ', realtimeType)\n }\n\n continueExecute();\n } else {\n uni.hideLoading(); // 校验值不对的情况\n continueExecute();\n }\n });\n connectCallback(deviceId);\n}\n\n// 获取当前是否连接上\nfunction getConnected() {\n return connected;\n}\n\n// 设置自动连接的 mac 地址\nfunction setAutoMac(arr) {\n auto_mac_backup = arr;\n auto_connect = true;\n openBluetoothAdapter();\n startAutoConnect();\n}\n\n/**\r\n * 开启全局自动连接\r\n */\nfunction startAutoConnect() {\n auto_connect = true;\n autoConnectTimer = setInterval(function () {\n if (auto_connect) {\n if (!connected) {\n __f__(\"log\", '自动连接扫描 ', isOpen, \" at store/BLETools.js:766\");\n if (isOpen) {} else {\n if (isBleOn) {\n openBluetoothAdapter();\n }\n }\n }\n }\n }, 1000 * 3);\n}\n\n/**\r\n * 关闭全局自动连接\r\n */\nfunction closeAutoConnect() {\n auto_connect = false;\n clearInterval(autoConnectTimer);\n}\n\n/**\r\n * 取消全局自动连接\r\n */\nfunction cancelAutoConnect() {\n auto_connect = false;\n auto_mac = [];\n autoConnectCallback = '';\n clearInterval(autoConnectTimer);\n closeBluetoothAdapter();\n}\n\n// 获取暂存的扫描到的设备数组\nfunction getDevices() {\n if (device) {\n devices.push(device);\n }\n return devices;\n}\n\n// 重置扫描到的设备数组\nfunction resetDevices() {\n devices = [];\n}\n\n// write msg 发送指令\n// msg 为 hexstring 形式\nfunction writeBLECharacteristicValue(characteristicId, msg) {\n if (connected == false) {\n reconnectDevice();\n return;\n }\n var buffer = hexArr2ab(msg);\n waitingForResult = true; //等待通知返回结果。\n var len = buffer.byteLength;\n var arr = [];\n if (len > 20) {\n for (var i = 0, j = 0; i < len; i += 20) {\n var start = j * 20;\n var end = start + 20 > len ? len - start : 20;\n var data = Uint8Array.from(new Uint8Array(buffer, start, end));\n // console.log(data)\n // let tempBuffer = data.buffer.slice(start, end)\n // console.log(tempBuffer)\n arr.push(data.buffer);\n j++;\n }\n stopFlag = false;\n writeData(characteristicId, arr);\n } else {\n stopFlag = false;\n writeData(characteristicId, [buffer]);\n }\n}\nvar stopFlag = false;\nvar timeoutTimer = '';\nvar timeoutCallback = '';\nfunction writeData(characteristicId, buffer) {\n __f__(\"log\", '准备发送', \" at store/BLETools.js:848\");\n clearTimeout(timeoutTimer);\n // console.log(buffer)\n if (stopFlag) {\n return;\n }\n uni.writeBLECharacteristicValue({\n deviceId: deviceId,\n serviceId: service_uuid,\n characteristicId: characteristicId,\n value: buffer[0],\n success: function success(res) {\n if (realtimeCallback) {\n var str = \"\\u5199\\u5165 \".concat(ab2hex(buffer[0]));\n __f__(\"log\", str, \" at store/BLETools.js:862\");\n }\n // 写入一次进度条就前进\n if (writeCallback && typeof writeCallback == 'function') {\n var _str2 = \"\\u5199\\u5165 \".concat(ab2hex(buffer[0]));\n __f__(\"log\", '分包发送了一次', \" at store/BLETools.js:867\");\n writeCallback(_str2);\n }\n if (!stopFlag && buffer.length > 1) {\n writeData(characteristicId, buffer.slice(1));\n } else {\n var time = new Date().getTime();\n // console.log('time ', time)\n timeoutTimer = setTimeout(function () {\n if (timeoutCallback && typeof timeoutCallback == 'function') {\n timeoutCallback();\n }\n }, 2000);\n }\n },\n fail: function fail(res) {\n cmdList = []; // 这里清空指令, 放弃队列中所有指令,为后续新指令的到来做准备\n waitingForResult = false;\n __f__(\"error\", 'write failed ', res, \" at store/BLETools.js:886\");\n uni.showToast({\n title: '请重新连接'\n });\n uni.navigateTo({\n url: '/pages/search/index'\n });\n }\n });\n}\n// 550800019301112f\n// 550800019105118c\n\n//重连设备\nfunction reconnectDevice() {\n reconnectTimes = 0;\n clearInterval(reconnectTimer);\n if (manualDisconnect)\n // 主动断开的不做处理\n return;\n uni.hideLoading();\n uni.showLoading({\n mask: true,\n title: '重连中...'\n });\n reconnect();\n reconnectTimer = setInterval(function () {\n __f__(\"log\", '重连?>>>>>>>', \" at store/BLETools.js:916\");\n reconnect();\n }, 3000); // 7000\n}\n\nfunction reconnect() {\n if (connected)\n //已连接\n {\n reconnectTimes = 0;\n clearInterval(reconnectTimer);\n return;\n }\n if (reconnectTimes >= 2)\n //超时 // 9\n {\n reconnectTimes = 0;\n clearInterval(reconnectTimer);\n uni.hideLoading();\n showModal();\n return;\n } else {\n reconnectTimes += 1;\n if (isOpen) {\n if (!auto_connect) {\n connectNow();\n }\n } else {\n if (isBleOn) {\n openBluetoothAdapter(true);\n }\n }\n }\n}\nfunction connectNow() {\n if (!isConnecting) {\n isConnecting = true;\n\n //监听蓝牙连接状态\n uni.onBLEConnectionStateChange(listener);\n uni.createBLEConnection({\n deviceId: deviceId,\n timeout: 3000,\n success: function success(res) {\n uni.hideLoading();\n device = devices.find(function (item) {\n return item.deviceId == deviceId;\n });\n isConnecting = false;\n connected = true;\n reconnectTimes = 0;\n clearInterval(reconnectTimer); //结束循环\n getBLEDeviceServices(deviceId);\n },\n fail: function fail(res) {\n isConnecting = false;\n }\n });\n }\n}\n\n// 获取当前状态\n// 用于下拉刷新\nfunction getBluetoothAdapterState() {\n uni.getBluetoothAdapterState({\n success: function success(res) {\n if (!res.available) {\n openBluetoothAdapter();\n } else {\n uni.stopBluetoothDevicesDiscovery({\n complete: function complete() {\n startBluetoothDevicesDiscovery();\n }\n });\n }\n },\n fail: function fail(err) {}\n });\n}\n\n// 断开蓝牙设备连接\nfunction closeBLEConnection(close, callback, sameDevice) {\n try {\n // console.log('123', close)\n if (close) {\n manualDisconnect = true;\n }\n __f__(\"log\", '123', deviceId, \" at store/BLETools.js:1005\");\n if (deviceId) {\n uni.closeBLEConnection({\n deviceId: deviceId,\n success: function success(res) {\n handleCloseBle(close, callback, sameDevice);\n },\n fail: function fail(err) {\n if (err.errCode == 10006) {\n handleCloseBle(close, callback, sameDevice);\n }\n }\n });\n } else {\n // console.log('123', typeof callback == 'function')\n if (callback && typeof callback == 'function') {\n callback();\n }\n }\n } catch (error) {\n uni.hideLoading();\n __f__(\"log\", error, \" at store/BLETools.js:1026\");\n }\n}\nfunction handleCloseBle(close, callback, sameDevice) {\n if (!sameDevice) {\n deviceId = '';\n }\n connected = false;\n lastBatteryLevel = 'N/A';\n // 手动断开连接处理\n if (close) {\n closeBluetoothAdapter(true);\n }\n if (callback && typeof callback == 'function') {\n callback();\n }\n}\n\n// 关闭蓝牙扫描\nfunction stopBluetoothDevicesDiscovery() {\n isConnecting = false;\n uni.stopBluetoothDevicesDiscovery({\n success: function success(res) {}\n });\n}\nvar stopBlue = stopBluetoothDevicesDiscovery;\n\n// 关闭蓝牙适配器\nexports.stopBlue = stopBlue;\nfunction closeBluetoothAdapter(doCallback) {\n uni.stopBluetoothDevicesDiscovery({\n success: function success(result) {\n uni.closeBluetoothAdapter({\n success: function success(res) {\n // 手动断开连接处理\n }\n });\n }\n });\n}\n\n// 蓝牙断开 弹窗提示 (重连不可连上)\nfunction showModal() {\n deviceId = '';\n devices = [];\n // auto_connect = true // 开启全局自动连接\n openBluetoothAdapter(true);\n // startAutoConnect()\n uni.showModal({\n content: '设备重连失败,已断开连接!',\n showCancel: false,\n success: function success() {\n uni.reLaunch({\n url: '/pages/search/index'\n });\n }\n });\n}\n\n// #################################################\n// #\n// # Utility Functions\n// #\n// #################################################\n\n/////////////////// 工具函数 /////////////////////\nfunction splitByLen(str, len) {\n var length = str.length;\n var newArr = [];\n for (var i = 0; i < length; i += len) {\n newArr.push(str.substr(i, len));\n }\n return newArr;\n}\nfunction arrayBufferToString(arr) {\n if (typeof arr === 'string') {\n return arr;\n }\n var dataview = new DataView(arr);\n var ints = new Uint8Array(arr.byteLength);\n for (var i = 0; i < ints.length; i++) {\n ints[i] = dataview.getUint8(i);\n }\n arr = ints;\n var str = '',\n _arr = arr;\n for (var i = 0; i < _arr.length; i++) {\n var one = _arr[i].toString(2),\n v = one.match(/^1+?(?=0)/);\n if (v && one.length == 8) {\n var bytesLength = v[0].length;\n var store = _arr[i].toString(2).slice(7 - bytesLength);\n for (var st = 1; st < bytesLength; st++) {\n store += _arr[st + i].toString(2).slice(2);\n }\n str += String.fromCharCode(parseInt(store, 2));\n i += bytesLength - 1;\n } else {\n str += String.fromCharCode(_arr[i]);\n }\n }\n return str;\n}\nfunction inArray(arr, key, val) {\n for (var i = 0; i < arr.length; i++) {\n if (arr[i][key] === val) {\n return i;\n }\n }\n return -1;\n}\n\n// 字符串转为ArrayBuffer对象,参数为字符串,注意这里的字符串为非hex字符串\nfunction stringToArrayBuffer(str) {\n var bytes = new Array();\n var len, c;\n len = str.length;\n for (var i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n if (c >= 0x010000 && c <= 0x10FFFF) {\n bytes.push(c >> 18 & 0x07 | 0xF0);\n bytes.push(c >> 12 & 0x3F | 0x80);\n bytes.push(c >> 6 & 0x3F | 0x80);\n bytes.push(c & 0x3F | 0x80);\n } else if (c >= 0x000800 && c <= 0x00FFFF) {\n bytes.push(c >> 12 & 0x0F | 0xE0);\n bytes.push(c >> 6 & 0x3F | 0x80);\n bytes.push(c & 0x3F | 0x80);\n } else if (c >= 0x000080 && c <= 0x0007FF) {\n bytes.push(c >> 6 & 0x1F | 0xC0);\n bytes.push(c & 0x3F | 0x80);\n } else {\n bytes.push(c & 0xFF);\n }\n }\n var array = new Int8Array(bytes.length);\n for (var i in bytes) {\n array[i] = bytes[i];\n }\n return array.buffer;\n}\nfunction hexArr2ab(hexArr) {\n var buffer = new ArrayBuffer(hexArr.length);\n var dataView = new DataView(buffer);\n for (var i = 0; i < hexArr.length; i++) {\n dataView.setUint8(i, hexArr[i]);\n }\n return buffer;\n}\nfunction hexStr2ab(hexStr) {\n var buffer = new ArrayBuffer(hexStr.length / 2);\n var dataView = new DataView(buffer);\n for (var i = 0, j = 0; i < hexStr.length; i += 2, j++) {\n var _str = \"0x\" + hexStr.substr(i, 2);\n dataView.setUint8(j, parseInt(_str, 16));\n }\n return buffer;\n}\n// ArrayBuffer转16进度字符串示例\nfunction ab2hex(buffer) {\n var hexArr = Array.prototype.map.call(new Uint8Array(buffer), function (bit) {\n return ('00' + bit.toString(16)).slice(-2);\n });\n return hexArr.join('');\n}\nfunction hexStr2HexArr(hexStr) {\n var a = [];\n for (var i = 0; i < hexStr.length; i += 2) {\n var _str = \"0x\" + hexStr.substr(i, 2);\n a.push(parseInt(_str, 16));\n }\n return a;\n}\nfunction hexArr2HexStr(hexArr) {\n var arr = [];\n hexArr.forEach(function (item) {\n arr.push(item.toString(16).padLeft(2, '0'));\n });\n return arr.join('');\n}\n\n// 10进制转16进制补0\nfunction dec2hex(dec, len) {\n //10进制转16进制补0\n var hex = \"\";\n while (dec) {\n var last = dec & 15;\n hex = String.fromCharCode((last > 9 ? 55 : 48) + last) + hex;\n dec >>= 4;\n }\n if (len) {\n while (hex.length < len) {\n hex = '0' + hex;\n }\n }\n return hex;\n}\n// 10进制转16进制补0\nfunction string_hex2int(hex) {\n //16进制转10进制\n var len = hex.length,\n a = new Array(len),\n code;\n for (var i = 0; i < len; i++) {\n code = hex.charCodeAt(i);\n if (48 <= code && code < 58) {\n code -= 48;\n } else {\n code = (code & 0xdf) - 65 + 10;\n }\n a[i] = code;\n }\n return a.reduce(function (acc, c) {\n acc = 16 * acc + c;\n return acc;\n }, 0);\n}\n\n//校验和\nfunction checkSumResult(hexStr, len)\n//返回校验和的hexstring\n{\n var abData = hexStr2HexArr(hexStr);\n var ucI = 0,\n ucJ = 0;\n var uiCrcValue = 0xffff;\n for (ucI = 0; ucI < len; ucI++) {\n uiCrcValue = uiCrcValue ^ abData[ucI] & 0xff;\n for (ucJ = 0; ucJ < 8; ucJ++) {\n if ((uiCrcValue & 0x0001) == 1) {\n uiCrcValue = uiCrcValue >> 1 ^ 0x8408;\n } else {\n uiCrcValue = uiCrcValue >> 1;\n }\n }\n }\n //校验和为uiCrcValue 的高低位互换\n var hexStr = dec2hex(uiCrcValue, 4);\n var resultStr = hexStr.substr(2, 2) + hexStr.substr(0, 2);\n return resultStr;\n}\nfunction Uint8ToStr(arr) {\n for (var i = 0, str = ''; i < arr.length; i++) {\n str += String.fromCharCode(arr[i]);\n }\n return str;\n}\nfunction strToUint8(str) {\n for (var i = 0, arr = []; i < str.length; i++) {\n arr.push(str.charCodeAt(i));\n }\n return new Uint8Array(arr);\n}\nfunction getDiscoveredDevices() {\n return (0, _toConsumableArray2.default)(devices);\n}\n\n// 手动断开蓝牙\nfunction manualDisconnectDevice() {\n closeBLEConnection(true);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvQkxFVG9vbHMuanMiXSwibmFtZXMiOlsiZGV2aWNlcyIsImRldmljZSIsImRldmljZUlkIiwid2FpdGluZ0ZvclJlc3VsdCIsImlzQ29ubmVjdGluZyIsImNvbm5lY3RlZCIsInNlcnZpY2VfdXVpZCIsIndyaXRlX2NoYXJhY3RlcmlzdGljIiwibm90aWZ5X2NoYXJhY3RlcmlzdGljIiwibm90aWZ5X2NoYXJhY3RlcmlzdGljXzIiLCJydWxlMSIsInJ1bGUyIiwibWFudWFsRGlzY29ubmVjdCIsImNvbm5lY3RDYWxsYmFjayIsInNjYW5DYWxsYmFjayIsImRpc2Nvbm5lY3RDYWxsYmFjayIsIndyaXRlQ2FsbGJhY2siLCJyZWFsdGltZUNhbGxiYWNrIiwiYmF0dGVyeUNhbGxiYWNrIiwibWFjQ2FsbGJhY2siLCJsYXN0QmF0dGVyeUxldmVsIiwicmVhbHRpbWVUeXBlIiwicmVjb25uZWN0VGltZXMiLCJyZWNvbm5lY3RUaW1lciIsImNtZExpc3QiLCJpc09wZW4iLCJhdXRvX2Nvbm5lY3QiLCJhdXRvX21hYyIsImF1dG9fbWFjX2JhY2t1cCIsImFmdGVyX3RpbWVyIiwiYXV0b0Nvbm5lY3RDYWxsYmFjayIsImF1dG9Db25uZWN0VGltZXIiLCJpc0JsZU9uIiwibGlzdGVuZXIiLCJyZXMiLCJ1bmkiLCJnZXRCbHVldG9vdGhBZGFwdGVyU3RhdGUiLCJzdWNjZXNzIiwiYXZhaWxhYmxlIiwicmVjb25uZWN0RGV2aWNlIiwiZmFpbCIsImVyciIsIlN0cmluZyIsInByb3RvdHlwZSIsInBhZExlZnQiLCJsZW4iLCJjaGFyIiwic3RyIiwiQXJyYXkiLCJsZW5ndGgiLCJqb2luIiwidHJhbnNGbG9hdCIsImluZGV4T2YiLCJwYXJzZUZsb2F0IiwidG9GaXhlZCIsIm9uQmx1ZXRvb3RoQWRhcHRlclN0YXRlQ2hhbmdlIiwiZ2V0Q2hlY2tTdW0iLCJjbWQiLCJjaGVja1N1bSIsImdldENyYzE2Iiwic3BsaXRCeUxlbiIsInJldmVyc2UiLCJtYXAiLCJlIiwicGFyc2VJbnQiLCJjcmMiLCJpIiwiaiIsInRvU3RyaW5nIiwiaW5pdEJsdWUiLCJvbkJsdWV0b290aERldmljZUZvdW5kIiwiZm9yRWFjaCIsIm5hbWUiLCJmb3VuZERldmljZXMiLCJpZHgiLCJpbkFycmF5IiwicHVzaCIsImNyZWF0ZUJMRUNvbm5lY3Rpb24iLCJzZXRUaW1lb3V0IiwidmFsaWQiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJpdGVtIiwic29tZSIsImluZGV4Iiwic3BsaWNlIiwic2hvd0xvYWRpbmciLCJ0aXRsZSIsIm1hc2siLCJtYWMiLCJjbGVhclRpbWVvdXQiLCJzZXRDYWxsYmFjayIsInNldFNjYW5DYWxsYmFjayIsInNldERpc2Nvbm5lY3RDYWxsYmFjayIsInNldFdyaXRlQ2FsbGJhY2siLCJzZXRCYXR0ZXJ5Q2FsbGJhY2siLCJzZXRNYWNDYWxsYmFjayIsImdldERldmljZUlkIiwiZ2V0Q29ubmVjdGVkRGV2aWNlIiwic2V0UmVhbHRpbWVDYWxsYmFjayIsInR5cGUiLCJjb252ZXJzaW9uIiwibnVtIiwicmVzdWx0IiwidGVtcCIsInNsaWNlIiwic2VuZExpZ2h0VHlwZSIsInN0cjEiLCJhcnIiLCJleGVjdXRlQ21kIiwic2V0TGlnaHQiLCJzZW5kSW1nIiwiZGF0YUFyciIsIndyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSIsImNvbnRpbnVlRXhlY3V0ZSIsIm9wZW5CbHVldG9vdGhBZGFwdGVyIiwic2VhcmNoIiwiY2FsbGJhY2siLCJvcGVyYXRpb24iLCJvcGVuQmxlQWRhcHRlciIsInN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSIsImNsb3NlQmx1ZXRvb3RoQWRhcHRlciIsImNvbXBsZXRlIiwiZXJyQ29kZSIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwib3B0aW9uIiwiYWxsb3dEdXBsaWNhdGVzS2V5Iiwic2hvd1RvYXN0IiwiaWNvbiIsInNlcnZpY2VzIiwiaGV4U3RyaW5nIiwiaWQiLCJhZHZlcnRpc0RhdGEiLCJzYW1lRGV2aWNlIiwiY2xvc2VDb25uZWN0TG9hZGluZyIsImNsb3NlQkxFQ29ubmVjdGlvbiIsIm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlIiwidGltZW91dCIsImNsb3NlQXV0b0Nvbm5lY3QiLCJzdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSIsImZpbmQiLCJnZXRCTEVEZXZpY2VTZXJ2aWNlcyIsInNldFN0b3JhZ2VTeW5jIiwiaGlkZUxvYWRpbmciLCJlcnJNc2ciLCJkdXJhdGlvbiIsInV1aWQiLCJ0b1VwcGVyQ2FzZSIsImdldEJMRURldmljZUNoYXJhY3RlcmlzdGljcyIsInNlcnZpY2VJZCIsImNoYXJhY3RlcmlzdGljcyIsIml0ZW1VVUlEIiwicHJpbWFyeU5vdGlmeVVVSUQiLCJzZWNvbmRhcnlOb3RpZnlVVUlEIiwicHJvcGVydGllcyIsIm5vdGlmeSIsImluZGljYXRlIiwibm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZUNoYW5nZSIsImNoYXJhY3RlcmlzdGljSWQiLCJzdGF0ZSIsIndyaXRlIiwib25CTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlIiwiYWIyaGV4IiwidmFsdWUiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJtYWNIZXgiLCJzdWJzdHJpbmciLCJtYWNBZGRyZXNzIiwibWF0Y2giLCJkYXRhSGV4IiwiYmF0dGVyeUhleCIsImJhdHRlcnlMZXZlbCIsInN1YnN0ciIsImNoZWNrQXJySGV4IiwiY2hlY2tBcnIiLCJzZW5kQ2hlY2tTdW0iLCJ1bmRlZmluZWQiLCJ0ZW1wQ2FsbGJhY2siLCJnZXRDb25uZWN0ZWQiLCJzZXRBdXRvTWFjIiwic3RhcnRBdXRvQ29ubmVjdCIsInNldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsImNhbmNlbEF1dG9Db25uZWN0IiwiZ2V0RGV2aWNlcyIsInJlc2V0RGV2aWNlcyIsIm1zZyIsImJ1ZmZlciIsImhleEFycjJhYiIsImJ5dGVMZW5ndGgiLCJzdGFydCIsImVuZCIsImRhdGEiLCJVaW50OEFycmF5IiwiZnJvbSIsInN0b3BGbGFnIiwid3JpdGVEYXRhIiwidGltZW91dFRpbWVyIiwidGltZW91dENhbGxiYWNrIiwidGltZSIsIkRhdGUiLCJnZXRUaW1lIiwibmF2aWdhdGVUbyIsInVybCIsInJlY29ubmVjdCIsImNvbm5lY3ROb3ciLCJjbG9zZSIsImhhbmRsZUNsb3NlQmxlIiwiZXJyb3IiLCJzdG9wQmx1ZSIsImRvQ2FsbGJhY2siLCJyZUxhdW5jaCIsIm5ld0FyciIsImFycmF5QnVmZmVyVG9TdHJpbmciLCJkYXRhdmlldyIsIkRhdGFWaWV3IiwiaW50cyIsImdldFVpbnQ4IiwiX2FyciIsIm9uZSIsInYiLCJieXRlc0xlbmd0aCIsInN0b3JlIiwic3QiLCJmcm9tQ2hhckNvZGUiLCJrZXkiLCJ2YWwiLCJzdHJpbmdUb0FycmF5QnVmZmVyIiwiYnl0ZXMiLCJjIiwiY2hhckNvZGVBdCIsImFycmF5IiwiSW50OEFycmF5IiwiaGV4QXJyIiwiQXJyYXlCdWZmZXIiLCJkYXRhVmlldyIsInNldFVpbnQ4IiwiaGV4U3RyMmFiIiwiaGV4U3RyIiwiX3N0ciIsImNhbGwiLCJiaXQiLCJoZXhTdHIySGV4QXJyIiwiYSIsImhleEFycjJIZXhTdHIiLCJkZWMyaGV4IiwiZGVjIiwiaGV4IiwibGFzdCIsInN0cmluZ19oZXgyaW50IiwiY29kZSIsInJlZHVjZSIsImFjYyIsImNoZWNrU3VtUmVzdWx0IiwiYWJEYXRhIiwidWNJIiwidWNKIiwidWlDcmNWYWx1ZSIsInJlc3VsdFN0ciIsIlVpbnQ4VG9TdHIiLCJzdHJUb1VpbnQ4IiwiZ2V0RGlzY292ZXJlZERldmljZXMiLCJtYW51YWxEaXNjb25uZWN0RGV2aWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0EsSUFBSUEsT0FBTyxHQUFHLEVBQUU7O0FBRWhCO0FBQ0EsSUFBSUMsTUFBTSxHQUFHLEVBQUU7O0FBRWY7QUFDQSxJQUFJQyxRQUFRLEdBQUcsRUFBRTs7QUFHakI7QUFDQSxJQUFJQyxnQkFBZ0IsR0FB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QUMsQ0FBQztFQUM1QjtFQUNBLE9BQU8sSUFBSW1JLFVBQVUsQ0FBQ3hGLEdBQUcsQ0FBQztBQUMzQjtBQUVPLFNBQVM0SixvQkFBb0IsR0FBRztFQUN0Qyx3Q0FBV3pRLE9BQU87QUFDbkI7O0FBRUE7QUFDTyxTQUFTMFEsc0JBQXNCLEdBQUc7RUFDeENoSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7QUFDekIsQyIsImZpbGUiOiIyMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDok53niZnorr7lpIfnu5Pmnpzpm4ZcclxubGV0IGRldmljZXMgPSBbXVxyXG5cclxuLy8g5b2T5YmN6L+e5o6l55qE6JOd54mZ6K6+5aSHXHJcbmxldCBkZXZpY2UgPSAnJ1xyXG5cclxuLy8g6JOd54mZ6K6+5aSHaWRcclxubGV0IGRldmljZUlkID0gJydcclxuXHJcblxyXG4vLyDlhpnkuobmlbDmja7nrYnlvoXpgJrnn6Xnu5Pmnpzov5Tlm55cclxubGV0IHdhaXRpbmdGb3JSZXN1bHQgPSBmYWxzZVxyXG5cclxuLy8g6L+e5o6l54q25oCBXHJcbmxldCBpc0Nvbm5lY3RpbmcgPSBmYWxzZVxyXG5sZXQgY29ubmVjdGVkID0gZmFsc2VcclxuXHJcbi8vIOacjeWKoSB1dWlkIOWSjCDnibnlvoHlgLwgdXVpZFxyXG4vL+ato+W8j1xyXG4vL+a1i+ivlVxyXG5cclxubGV0IHNlcnZpY2VfdXVpZCA9IFwiMDAwMEFFMzAtMDAwMC0xMDAwLTgwMDAtMDA4MDVGOUIzNEZCXCJcclxubGV0IHdyaXRlX2NoYXJhY3RlcmlzdGljID0gXCIwMDAwQUUwMy0wMDAwLTEwMDAtODAwMC0wMDgwNUY5QjM0RkJcIlxyXG5sZXQgbm90aWZ5X2NoYXJhY3RlcmlzdGljID0gXCIwMDAwQUUwMy0wMDAwLTEwMDAtODAwMC0wMDgwNUY5QjM0RkJcIlxyXG5sZXQgbm90aWZ5X2NoYXJhY3RlcmlzdGljXzIgPSBcIjAwMDBBRTAyLTAwMDAtMTAwMC04MDAwLTAwODA1RjlCMzRGQlwiLy/ojrflj5borr7lpIfnlLXph4/lkozorr7lpIdtYWPlnLDlnYBcclxuXHJcbi8vIOWRveWQjeinhOWImVxyXG5sZXQgcnVsZTEgPSBcIlwiIC8vIEFuZHJvaWRcclxubGV0IHJ1bGUyID0gXCJcIiAvLyBpb3NcclxuXHJcbi8vIOaJi+WKqOaWreW8gFxyXG52YXIgbWFudWFsRGlzY29ubmVjdCA9IHRydWVcclxuXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gI1xyXG4vLyAjICAgIENhbGxiYWNrIERlZmluaXRpb25zXHJcbi8vICNcclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuLy8g5Zue6LCD5LqL5Lu2XHJcbmxldCBjb25uZWN0Q2FsbGJhY2sgPSAnJyAvLyDov57mjqXmiJDlip/lm57osINcclxubGV0IHNjYW5DYWxsYmFjayA9ICcnIC8vIOaQnOe0ouWIsOiTneeJmeiuvuWkh+Wbnuiwg1xyXG5sZXQgZGlzY29ubmVjdENhbGxiYWNrID0gJycgLy8g6K6+5aSH5pat5byA6L+e5o6l5Zue6LCDXHJcbmxldCB3cml0ZUNhbGxiYWNrID0gJycgLy8g5YaZ5oiQ5Yqf5Zue6LCDXHJcbi8vIOiHquWumuS5iSDkuJrliqHnm7jlhbMg5Zue6LCD5LqL5Lu2XHJcbmxldCByZWFsdGltZUNhbGxiYWNrID0gJycgLy8g5a6e5pe25Y+R6YCB5oyH5Luk55qE5Zue6LCDXHJcbmxldCBiYXR0ZXJ5Q2FsbGJhY2sgPSAnJyAvLyDnlLXph4/lm57osINcclxubGV0IG1hY0NhbGxiYWNrID0gJycgLy8gTUFD5Zyw5Z2A5Zue6LCDXHJcbmxldCBsYXN0QmF0dGVyeUxldmVsID0gJ04vQSc7XHJcblxyXG4vLyDoh6rlrprkuYkg5Lia5Yqh55u45YWzIOagh+ivhlxyXG5sZXQgcmVhbHRpbWVUeXBlID0gJycgLy8g5a6e5pe25Y+R6YCB5oyH5Luk55qE5qCH6K+GXHJcblxyXG5cclxuLy8g6YeN6L+e55u45YWzXHJcbmxldCByZWNvbm5lY3RUaW1lcyA9IDAgLy8g6YeN6L+e5qyh5pWwXHJcbmxldCByZWNvbm5lY3RUaW1lciAvLyDph43ov57orqHml7blmahcclxuXHJcbi8vIOWboOS4uuacieW/g+i3s+iHquWKqOiuoeaXtuWZqOWPkemAge+8jOS4jeaYr+WFqOaYr+eUqOaIt+aJi+WKqOeahOaTjeS9nO+8jOeUqOaIt+eahOaJi+WKqOaTjeS9nOiuvuWumuS4uuS4gOS4quaTjeS9nOWQjuaJjeiDveaTjeS9nOS4i+S4gOS4qu+8jOS9huacieiHquWKqOW/g+i3s+WPkemAgeeahOivne+8jOWPr+iDveS8muWHuueOsOWPkemAgeW/g+i3s+aXtu+8jFxyXG4vLyDnlKjmiLfkuZ/mraPlpb3mk43kvZzkuobvvIzpgqPov5nml7blj6/og73kvJrlh7rnjrDvvIzlkIzml7blhpnkuKTmnaHmjIfku6Tmg4XlhrXvvIzljbPmsqHmlLbliLDkuIrkuIDmnaHnmoTlm57lpI3lsLHlj5HpgIHkuobkuIvkuIDmnaHmjIfku6TvvIznjrDnlKjmlbDnu4TmmoLlrZhcclxubGV0IGNtZExpc3QgPSBbXSAvLyDnnIvov5nph4zvvIHvvIHvvIEg546w5Zyo5rKh5pyJ5b+D6Lez77yM5Y+q5pyJ55So5oi355qE5pON5L2c77yM56Gu5L+d55So5oi355qE5pON5L2c6YO95piv5pyJ5Zue5aSN55qE77yM5bm25LiU5Zyo6Zif5YiX5YaF77yM562J5b6F5YmN5LiA5p2h5omn6KGM5a6M5omN5omn6KGM5LiL5LiA5p2hXHJcblxyXG4vLyDlvZPliY3ok53niZnpgILphY3lmajmmK/lkKbmiZPlvIDnmoTnirbmgIFcclxubGV0IGlzT3BlbiA9IGZhbHNlXHJcblxyXG4vLyDoh6rliqjov57mjqVcclxubGV0IGF1dG9fY29ubmVjdCA9IGZhbHNlXHJcblxyXG4vLyDlh4blpIfljrvoh6rliqjov57mjqXnmoQgZGV2aWNlSWRcclxubGV0IGF1dG9fbWFjID0gW11cclxubGV0IGF1dG9fbWFjX2JhY2t1cCA9IFtdIC8vIOWkh+S7vVxyXG5cclxuLy8g5omr5o+P5Yiw6K6+5aSH5ZCO77yM5YaN562J5b6F5Liq5Yeg56eS6K6h5pe25ZmoXHJcbmxldCBhZnRlcl90aW1lciA9ICcnXHJcblxyXG4vLyDoh6rliqjov57mjqXlm57osINcclxubGV0IGF1dG9Db25uZWN0Q2FsbGJhY2sgPSAnJ1xyXG5cclxuLy8g6Ieq5Yqo6L+e5o6l5qOA5rWL6K6h5pe25ZmoXHJcbmxldCBhdXRvQ29ubmVjdFRpbWVyID0gJydcclxuXHJcblxyXG4vKipcclxuICog5omL5py66JOd54mZ5piv5ZCm5byA5ZCv5LqGXHJcbiAqL1xyXG5sZXQgaXNCbGVPbiA9IGZhbHNlXHJcblxyXG5cclxuXHJcbmxldCBsaXN0ZW5lciA9IGZ1bmN0aW9uKHJlcykge1xyXG5cdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0Ly8g6K+l5pa55rOV5Zue6LCD5Lit5Y+v5Lul55So5LqO5aSE55CG6L+e5o6l5oSP5aSW5pat5byA562J5byC5bi45oOF5Ya1XHJcblx0aWYgKCFyZXMuY29ubmVjdGVkKSB7XHJcblx0XHRkZXZpY2UgPSAnJ1xyXG5cdFx0Y21kTGlzdCA9IFtdIC8vIOi/memHjOa4heepuuaMh+S7pFxyXG5cdFx0aXNDb25uZWN0aW5nID0gZmFsc2VcclxuXHRcdGNvbm5lY3RlZCA9IGZhbHNlXHJcblx0XHRsYXN0QmF0dGVyeUxldmVsID0gJ04vQSc7XHJcblx0XHRpZiAoZGlzY29ubmVjdENhbGxiYWNrICYmIHR5cGVvZiBkaXNjb25uZWN0Q2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkaXNjb25uZWN0Q2FsbGJhY2soKVxyXG5cdFx0fVxyXG5cdFx0dW5pLmdldEJsdWV0b290aEFkYXB0ZXJTdGF0ZSh7XHJcblx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRpZiAoIXJlcy5hdmFpbGFibGUpIHtcclxuXHRcdFx0XHRcdGlzT3BlbiA9IGZhbHNlXHJcblx0XHRcdFx0XHRhdXRvX2Nvbm5lY3QgPSB0cnVlXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJlY29ubmVjdERldmljZSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdGZhaWw6IChlcnIpID0+IHt9XHJcblx0XHR9KVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8vIOWIneWni+WMluaLk+WxleWHveaVsFxyXG5TdHJpbmcucHJvdG90eXBlLnBhZExlZnQgPSBmdW5jdGlvbihsZW4sIGNoYXIpIHtcclxuXHRsZXQgc3RyID0gdGhpcztcclxuXHRyZXR1cm4gbmV3IEFycmF5KGxlbiAtIHN0ci5sZW5ndGggKyAxKS5qb2luKGNoYXIgfHwgJycpICsgc3RyXHJcbn1cclxuU3RyaW5nLnByb3RvdHlwZS50cmFuc0Zsb2F0ID0gZnVuY3Rpb24oKSB7XHJcblx0bGV0IHN0ciA9IHRoaXM7XHJcblx0cmV0dXJuIHN0ci5pbmRleE9mKCcuJykgIT0gLTEgPyBwYXJzZUZsb2F0KHN0cikudG9GaXhlZCgxKSA6IHN0clxyXG59XHJcblxyXG4vLyAvL3VuaVxyXG51bmkub25CbHVldG9vdGhBZGFwdGVyU3RhdGVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XHJcblx0aWYgKCFyZXMuYXZhaWxhYmxlKSB7XHJcblx0XHRpc09wZW4gPSBmYWxzZVxyXG5cdFx0aXNCbGVPbiA9IGZhbHNlXHJcblx0fSBlbHNlIHtcclxuXHRcdGlzQmxlT24gPSB0cnVlXHJcblx0fVxyXG59KVxyXG5cclxuXHJcblxyXG5cclxuLy8g6I635Y+WICDmoKHpqoxcclxuZnVuY3Rpb24gZ2V0Q2hlY2tTdW0oY21kKSB7XHJcblx0Ly8gY29uc29sZS5sb2coY21kLCAn5oiR5pivY21kJyk7XHJcblx0bGV0IGNoZWNrU3VtID0gZ2V0Q3JjMTYoY21kKTtcclxuXHQvLyBjb25zb2xlLmxvZyhjaGVja1N1bSwgJ+aIkeaYr2NoZWNrU3VtJyk7XHJcblx0Ly8gY29uc29sZS5sb2coc3BsaXRCeUxlbihjaGVja1N1bSwgMikucmV2ZXJzZSgpLm1hcChlID0+IHBhcnNlSW50KGUsIDE2KSksICd3b3NoaSAnKTtcclxuXHRyZXR1cm4gc3BsaXRCeUxlbihjaGVja1N1bSwgMikucmV2ZXJzZSgpLm1hcChlID0+IHBhcnNlSW50KGUsIDE2KSlcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q3JjMTYoY21kKSB7XHJcblx0bGV0IGNyYyA9IDB4ZmZmZjtcclxuXHRsZXQgbGVuID0gY21kLmxlbmd0aDtcclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcblx0XHRjcmMgPSBjcmMgXiAoY21kW2ldICYgMHhmZilcclxuXHRcdGZvciAobGV0IGogPSAwOyBqIDwgODsgaisrKSB7XHJcblx0XHRcdGlmICgoY3JjICYgMHgwMDAxKSA9PSAxKSB7XHJcblx0XHRcdFx0Y3JjID4+PSAxXHJcblx0XHRcdFx0Y3JjIF49IDB4QTAwMVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNyYyA+Pj0gMVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC8vIGNvbnNvbGUubG9nKGNyYy50b1N0cmluZygxNikucGFkTGVmdCg0LCAnMCcpLCAnMDEyMTQ1NDg3OCcpO1xyXG5cdHJldHVybiBjcmMudG9TdHJpbmcoMTYpLnBhZExlZnQoNCwgJzAnKVxyXG59XHJcblxyXG5cclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyAjXHJcbi8vICMgICAgTW9kdWxlIFNldHVwICYgQ29uZmlndXJhdGlvblxyXG4vLyAjXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbi8vIOWIneWni+WMluiTneeJmeaooeWdl1xyXG5leHBvcnQgZnVuY3Rpb24gaW5pdEJsdWUoKSB7XHJcblx0dW5pLm9uQmx1ZXRvb3RoRGV2aWNlRm91bmQoKHJlcykgPT4ge1xyXG5cdFx0cmVzLmRldmljZXMuZm9yRWFjaChkZXZpY2UgPT4ge1xyXG5cdFx0XHQvLyDov4fmu6TmjonmsqHmnInlkI3lrZfnmoTorr7lpIdcclxuXHRcdFx0aWYgKCFkZXZpY2UubmFtZSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgZm91bmREZXZpY2VzID0gZGV2aWNlc1xyXG5cdFx0XHRjb25zdCBpZHggPSBpbkFycmF5KGZvdW5kRGV2aWNlcywgJ2RldmljZUlkJywgZGV2aWNlLmRldmljZUlkKVxyXG5cdFx0XHRpZiAoaWR4ID09PSAtMSkge1xyXG5cdFx0XHRcdGRldmljZXMucHVzaChkZXZpY2UpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZGV2aWNlc1tpZHhdID0gZGV2aWNlXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEFsd2F5cyBub3RpZnkgdGhlIFVJIG9mIGFueSBmb3VuZCBkZXZpY2VcclxuXHRcdFx0aWYgKHNjYW5DYWxsYmFjayAmJiB0eXBlb2Ygc2NhbkNhbGxiYWNrID09IFwiZnVuY3Rpb25cIikge1xyXG5cdFx0XHRcdHNjYW5DYWxsYmFjaygpIC8vIOafpeaJvue7k+aenOmbhuWbnuiwg1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnYXV0b19jb25uZWN0OicsIGF1dG9fY29ubmVjdCk7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdpc0Nvbm5lY3Rpbmc6JywgaXNDb25uZWN0aW5nKTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2RldmljZUlkOicsIGRldmljZUlkKTtcclxuXHRcdFx0aWYgKGF1dG9fY29ubmVjdCAmJiAhaXNDb25uZWN0aW5nICYmIGRldmljZS5kZXZpY2VJZCA9PSBkZXZpY2VJZCkge1xyXG5cdFx0XHRcdGlzQ29ubmVjdGluZyA9IHRydWVcclxuXHRcdFx0XHRjcmVhdGVCTEVDb25uZWN0aW9uKGRldmljZUlkLCB0cnVlKTtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoYXV0b19jb25uZWN0KSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJzExMTExMTEwMDAwMDAwMDAwMDAwMDAwMC8vLy8vLy8vLy8vLy8vJyk7XHJcblx0XHRcdFx0aWYgKCFhZnRlcl90aW1lcikge1xyXG5cdFx0XHRcdFx0YWZ0ZXJfdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0bGV0IHZhbGlkID0gW11cclxuXHRcdFx0XHRcdFx0YXV0b19tYWMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGF1dG9fbWFjX2JhY2t1cCkpXHJcblx0XHRcdFx0XHRcdGF1dG9fbWFjLmZvckVhY2goaXRlbSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dmFsaWQucHVzaChkZXZpY2VzLnNvbWUoZSA9PiBlLmRldmljZUlkID09IGl0ZW0pKVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR2YWxpZC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICghaXRlbSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0YXV0b19tYWMuc3BsaWNlKGluZGV4LCAxKVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3ZhbGlkIG1hYyAnLCBhdXRvX21hYylcclxuXHRcdFx0XHRcdFx0aWYgKGF1dG9fbWFjLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfoh6rliqjov57mjqXkuK0uLi4nLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWFzazogdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0bGV0IG1hYyA9IGF1dG9fbWFjWzBdXHJcblx0XHRcdFx0XHRcdFx0Y3JlYXRlQkxFQ29ubmVjdGlvbihtYWMpXHJcblx0XHRcdFx0XHRcdFx0YXV0b19tYWMuc3BsaWNlKDAsIDEpXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7fVxyXG5cdFx0XHRcdFx0XHRjbGVhclRpbWVvdXQoYWZ0ZXJfdGltZXIpXHJcblx0XHRcdFx0XHRcdGFmdGVyX3RpbWVyID0gJydcclxuXHRcdFx0XHRcdH0sIDEwMDAgKiA2KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSlcclxuXHR9KVxyXG59XHJcblxyXG4vLyDorr7nva7ov57mjqXmiJDlip/lm57osINcclxuZXhwb3J0IGZ1bmN0aW9uIHNldENhbGxiYWNrKGUpIHtcclxuXHRjb25uZWN0Q2FsbGJhY2sgPSBlXHJcbn1cclxuXHJcbi8vIOiuvue9ruaQnOe0ouWIsOiTneeJmeiuvuWkh+Wbnuiwg1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0U2NhbkNhbGxiYWNrKGUpIHtcclxuXHRzY2FuQ2FsbGJhY2sgPSBlXHJcbn1cclxuXHJcbi8vIOiuvue9ruiuvuWkh+aWreW8gOi/nuaOpeWbnuiwg1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RGlzY29ubmVjdENhbGxiYWNrKGUpIHtcclxuXHRkaXNjb25uZWN0Q2FsbGJhY2sgPSBlXHJcbn1cclxuXHJcbi8vIOiuvue9ruWGmeaIkOWKn+Wbnuiwg1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0V3JpdGVDYWxsYmFjayhlKSB7XHJcblx0d3JpdGVDYWxsYmFjayA9IGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCYXR0ZXJ5Q2FsbGJhY2soZSkge1xyXG5cdGJhdHRlcnlDYWxsYmFjayA9IGU7XHJcblx0aWYgKGxhc3RCYXR0ZXJ5TGV2ZWwgIT09ICdOL0EnICYmIHR5cGVvZiBiYXR0ZXJ5Q2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdGJhdHRlcnlDYWxsYmFjayhsYXN0QmF0dGVyeUxldmVsKTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRNYWNDYWxsYmFjayhlKSB7XHJcblx0bWFjQ2FsbGJhY2sgPSBlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGV2aWNlSWQoKXtcclxuXHRyZXR1cm4gZGV2aWNlSWRcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbm5lY3RlZERldmljZSgpIHtcclxuXHRyZXR1cm4gZGV2aWNlO1xyXG59XHJcblxyXG4vLyDkuJrliqHnm7jlhbPlm57osINcclxuZnVuY3Rpb24gc2V0UmVhbHRpbWVDYWxsYmFjayh0eXBlLCBlKSB7XHJcblx0cmVhbHRpbWVUeXBlID0gdHlwZVxyXG5cdC8vIGNvbnNvbGUubG9nKCfkuJrliqHnm7jlhbPlm57osIMnLCBlKTtcclxuXHRyZWFsdGltZUNhbGxiYWNrID0gZVxyXG5cdC8vIGNvbnNvbGUubG9nKCdzZXQgcmVhbHRpbWVUeXBlICcsIHJlYWx0aW1lVHlwZSlcclxufVxyXG5cclxuXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gI1xyXG4vLyAjICAgIENvcmUgQkxFIENvbW1hbmQgRnVuY3Rpb25zXHJcbi8vICNcclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuLy8g6L2s5o2iMTbov5vliLZcclxuLyoqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBudW0g5Yeg5L2NXHJcbiovXHJcbmZ1bmN0aW9uIGNvbnZlcnNpb24oc3RyLCBudW0pIHtcclxuXHRjb25zdCByZXN1bHQgPSBbXTtcclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkgKz0gbnVtKSB7XHJcblx0XHRsZXQgdGVtcCA9IHN0ci5zbGljZShpLCBpICsgbnVtKTtcclxuXHRcdC8vIHRlbXAudG9TdHJpbmcoMTYpO1xyXG5cdFx0cmVzdWx0LnB1c2gocGFyc2VJbnQodGVtcCwgMTYpKTtcclxuXHR9XHJcblx0cmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLy8g5YiH5o2i54Gv55qE5qih5byPXHJcbmV4cG9ydCBmdW5jdGlvbiBzZW5kTGlnaHRUeXBlKHR5cGUsIGUpe1xyXG5cdHNldFJlYWx0aW1lQ2FsbGJhY2sodHlwZSwgZSlcclxuXHRsZXQgc3RyMSA9IGBGQSR7ZX0wMDAxMDBGRmA7XHJcblx0bGV0IGFyciA9IFtdO1xyXG5cdGFyciA9IGNvbnZlcnNpb24oc3RyMSwgMik7XHJcblx0ZXhlY3V0ZUNtZChhcnIpO1xyXG59XHJcblxyXG4vLyDosIPoioLnga/kuq7luqZcclxuZXhwb3J0IGZ1bmN0aW9uIHNldExpZ2h0KHR5cGUsIGUsIG51bSkge1xyXG5cdHNldFJlYWx0aW1lQ2FsbGJhY2sodHlwZSwgZSlcclxuXHQvLyBsZXQgc3RyID0gYEZBMDUke3BhcnNlSW50KG51bSwgMTYpfTAwRkZgO1xyXG5cdGxldCBzdHIgPSBgRkEwNTAwMDEke251bS50b1N0cmluZygxNikucGFkTGVmdCgyLCcwJyl9RkZgO1xyXG5cdGxldCBhcnIgPSBjb252ZXJzaW9uKHN0ciwgMik7XHJcblx0Y29uc29sZS5sb2coJ2xpZ2h05pWw57uEJywgYXJyKTtcclxuXHRleGVjdXRlQ21kKGFycik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24g6K6+572u5Y2V5L2N44CB6YOo6Zeo44CB5ZCN5a2XLi4uXHJcbiAqIEBwYXJhbSB7IEFycmF5IH0gYXJyIFxyXG4qL1xyXG5leHBvcnQgZnVuY3Rpb24gc2VuZEltZyhhcnIsZSkge1xyXG5cdGxldCBkYXRhQXJyID0gY29udmVyc2lvbihhcnIsIDIpO1xyXG5cdGNvbnNvbGUubG9nKGRhdGFBcnIpO1xyXG5cdGV4ZWN1dGVDbWQoZGF0YUFycik7XHJcbn1cclxuXHJcblxyXG4vLyDlpoLmnKrnqbrvvIjmnKrmlLbliLDlm57lpI3vvIzmlLbliLDlm57lpI3kvJrmuIXmjonnrKzkuIDkuKrmjIfku6TvvInov5vpmJ/liJfvvIwg56m655u05o6l5omn6KGMXHJcbmZ1bmN0aW9uIGV4ZWN1dGVDbWQoY21kKSB7XHJcblx0Ly8gaWYgKGNtZExpc3QubGVuZ3RoID09IDApIHtcclxuXHQvLyBcdHdyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSh3cml0ZV9jaGFyYWN0ZXJpc3RpYywgY21kKVxyXG5cdFx0XHJcblx0Ly8gfVxyXG5cdC8vIGNtZExpc3QucHVzaChjbWQpXHJcblx0d3JpdGVCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKHdyaXRlX2NoYXJhY3RlcmlzdGljLCBjbWQpXHJcbn1cclxuXHJcbi8vIOa4heaOieesrOS4gOS4quaMh+S7pO+8jOeEtuWQjuajgOafpemYn+WIl+aYr+WQpuS4uuepuu+8jOS4jeS4uuepuue7p+e7reWPkemAgVxyXG5mdW5jdGlvbiBjb250aW51ZUV4ZWN1dGUoKSB7XHJcblx0Y21kTGlzdC5zcGxpY2UoMCwgMSlcclxuXHRpZiAoY21kTGlzdC5sZW5ndGggIT0gMCkge1xyXG5cdFx0d3JpdGVCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKHdyaXRlX2NoYXJhY3RlcmlzdGljLCBjbWRMaXN0WzBdKVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gI1xyXG4vLyAjICAgIENvcmUgQkxFIENvbm5lY3Rpb24gTG9naWNcclxuLy8gI1xyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG5cclxuLy8gc3RlcCAxXHJcbi8vIOaJk+W8gOiTneeJmeWKn+iDvVxyXG5leHBvcnQgZnVuY3Rpb24gb3BlbkJsdWV0b290aEFkYXB0ZXIoc2VhcmNoLCBjYWxsYmFjaykge1xyXG5cdGNvbnN0IG9wZXJhdGlvbiA9ICgpID0+IHtcclxuXHRcdG9wZW5CbGVBZGFwdGVyKChlcnIpID0+IHtcclxuXHRcdFx0aWYgKCFlcnIpIHtcclxuXHRcdFx0XHQvLyBPbiBzdWNjZXNzIChubyBlcnJvciksIHN0YXJ0IHNjYW5uaW5nIGZvciBkZXZpY2VzLlxyXG5cdFx0XHRcdHN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEFsd2F5cyBjYWxsIHRoZSBwYWdlJ3MgY2FsbGJhY2sgdG8gbm90aWZ5IGl0IG9mIHRoZSByZXN1bHQuXHJcblx0XHRcdGlmIChjYWxsYmFjaykge1xyXG5cdFx0XHRcdGNhbGxiYWNrKGVycik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH07XHJcblxyXG5cdGlmIChzZWFyY2gpIHtcclxuXHRcdC8vIEZpcnN0IGNsb3NlIGFueSBleGlzdGluZyBhZGFwdGVyIHNlc3Npb24sIHRoZW4gcGVyZm9ybSB0aGUgb3BlcmF0aW9uLlxyXG5cdFx0dW5pLmNsb3NlQmx1ZXRvb3RoQWRhcHRlcih7XHJcblx0XHRcdGNvbXBsZXRlOiBvcGVyYXRpb24sXHJcblx0XHR9KTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0b3BlcmF0aW9uKCk7XHJcblx0fVxyXG59XHJcblxyXG5mdW5jdGlvbiBvcGVuQmxlQWRhcHRlcihjYWxsYmFjaykge1xyXG5cdHVuaS5vcGVuQmx1ZXRvb3RoQWRhcHRlcih7XHJcblx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdGlzT3BlbiA9IHRydWU7XHJcblx0XHRcdGlzQmxlT24gPSB0cnVlO1xyXG5cdFx0XHRpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7IC8vIFN1Y2Nlc3MsIG5vIGVycm9yIG9iamVjdC5cclxuXHRcdH0sXHJcblx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdC8vIExvZyB0aGUgZnVsbCBlcnJvciB0byBoZWxwIGRpYWdub3NlIHJlbGVhc2UgdmVyc2lvbiBpc3N1ZXNcclxuXHRcdFx0Y29uc29sZS5lcnJvcignb3BlbkJsdWV0b290aEFkYXB0ZXIgZmFpbGVkIHdpdGggZXJyb3I6JywgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XHJcblxyXG5cdFx0XHRpZiAoZXJyLmVyckNvZGUgPT09IDEwMDAxKSB7XHJcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHRjb250ZW50OiAn6K+35omT5byA5omL5py66JOd54mZJyxcclxuXHRcdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdC8vIEZvciBvdGhlciBlcnJvcnMsIHNob3cgYSBkZXRhaWxlZCBtb2RhbCBmb3IgZGVidWdnaW5nIGluIHRoZSByZWxlYXNlIHZlcnNpb24uXHJcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHR0aXRsZTogJ+iTneeJmeWQr+WKqOWksei0pScsXHJcblx0XHRcdFx0XHRjb250ZW50OiBg6ZSZ6K+vOiAke0pTT04uc3RyaW5naWZ5KGVycil9YCxcclxuXHRcdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdFx0aXNPcGVuID0gZmFsc2U7XHJcblx0XHRcdGlzQmxlT24gPSBmYWxzZTtcclxuXHRcdFx0Ly8gUHJvcGFnYXRlIHRoZSBlcnJvciB0byB0aGUgY2FsbGluZyBwYWdlXHJcblx0XHRcdGlmIChjYWxsYmFjaykgY2FsbGJhY2soZXJyKTtcclxuXHRcdH0sXHJcblx0fSk7XHJcbn1cclxuXHJcbi8vIHN0ZXAgMlxyXG4vL+W8gOWni+aQnOe0ouiTneeJmeiuvuWkh1xyXG5mdW5jdGlvbiBzdGFydEJsdWV0b290aERldmljZXNEaXNjb3ZlcnkoKSB7XHJcblx0Y29uc29sZS5sb2coJ+W8gOWni+aQnOe0oicpO1xyXG5cdGxldCBvcHRpb24gPSB7XHJcblx0XHRhbGxvd0R1cGxpY2F0ZXNLZXk6IGZhbHNlLFxyXG5cdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZygn5pCc57Si5oiQ5YqfLOacieiuvuWkhycsIHJlcyk7XHJcblx0XHRcdG9uQmx1ZXRvb3RoRGV2aWNlRm91bmQoKTtcclxuXHRcdH0sXHJcblx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCflvZPliY3mkJzntKLok53niZnorr7lpIflpLHotKUnLCBlcnIpO1xyXG5cdFx0XHRpZihlcnIuZXJyQ29kZSA9PSAxMDAwOCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0dGl0bGU6ICfmiavmj4/lpKrov4fpopHnuYHvvIzor7fnqI3lkI7lho3or5UnLFxyXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gcmVzZXREZXZpY2VzKCk7XHJcblx0XHRcdC8vIGRldmljZXMgPSBbXVxyXG5cdFx0XHQvLyBvcGVuQmx1ZXRvb3RoQWRhcHRlcih0cnVlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0aWYgKGF1dG9fY29ubmVjdCkge1xyXG5cdFx0b3B0aW9uLnNlcnZpY2VzID0gW1xyXG5cdFx0XHRzZXJ2aWNlX3V1aWRcclxuXHRcdF1cclxuXHR9XHJcblx0dW5pLnN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeShvcHRpb24pXHJcbn1cclxuXHJcblxyXG5cclxubGV0IGhleFN0cmluZyA9ICcnXHJcbi8vIHN0ZXAgM1xyXG4vLyDorr7lpIfmn6Xmib7nu5PmnpzlpITnkIZcclxuZnVuY3Rpb24gb25CbHVldG9vdGhEZXZpY2VGb3VuZCgpIHtcclxuXHR1bmkub25CbHVldG9vdGhEZXZpY2VGb3VuZCgocmVzKSA9PiB7XHJcblx0XHRyZXMuZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiB7XHJcblx0XHRcdC8vIOi/h+a7pOaOieayoeacieWQjeWtl+eahOiuvuWkh1xyXG5cdFx0XHRpZiAoIWRldmljZS5uYW1lKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCBmb3VuZERldmljZXMgPSBkZXZpY2VzXHJcblx0XHRcdGNvbnN0IGlkeCA9IGluQXJyYXkoZm91bmREZXZpY2VzLCAnZGV2aWNlSWQnLCBkZXZpY2UuZGV2aWNlSWQpXHJcblx0XHRcdGlmIChpZHggPT09IC0xKSB7XHJcblx0XHRcdFx0ZGV2aWNlcy5wdXNoKGRldmljZSlcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRkZXZpY2VzW2lkeF0gPSBkZXZpY2VcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gQWx3YXlzIG5vdGlmeSB0aGUgVUkgb2YgYW55IGZvdW5kIGRldmljZVxyXG5cdFx0XHRpZiAoc2NhbkNhbGxiYWNrICYmIHR5cGVvZiBzY2FuQ2FsbGJhY2sgPT0gXCJmdW5jdGlvblwiKSB7XHJcblx0XHRcdFx0c2NhbkNhbGxiYWNrKCkgLy8g5p+l5om+57uT5p6c6ZuG5Zue6LCDXHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdhdXRvX2Nvbm5lY3Q6JywgYXV0b19jb25uZWN0KTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2lzQ29ubmVjdGluZzonLCBpc0Nvbm5lY3RpbmcpO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnZGV2aWNlSWQ6JywgZGV2aWNlSWQpO1xyXG5cdFx0XHRpZiAoYXV0b19jb25uZWN0ICYmICFpc0Nvbm5lY3RpbmcgJiYgZGV2aWNlLmRldmljZUlkID09IGRldmljZUlkKSB7XHJcblx0XHRcdFx0aXNDb25uZWN0aW5nID0gdHJ1ZVxyXG5cdFx0XHRcdGNyZWF0ZUJMRUNvbm5lY3Rpb24oZGV2aWNlSWQsIHRydWUpO1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmIChhdXRvX2Nvbm5lY3QpIHtcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnMTExMTExMTAwMDAwMDAwMDAwMDAwMDAwLy8vLy8vLy8vLy8vLy8nKTtcclxuXHRcdFx0XHRpZiAoIWFmdGVyX3RpbWVyKSB7XHJcblx0XHRcdFx0XHRhZnRlcl90aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgdmFsaWQgPSBbXVxyXG5cdFx0XHRcdFx0XHRhdXRvX21hYyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYXV0b19tYWNfYmFja3VwKSlcclxuXHRcdFx0XHRcdFx0YXV0b19tYWMuZm9yRWFjaChpdGVtID0+IHtcclxuXHRcdFx0XHRcdFx0XHR2YWxpZC5wdXNoKGRldmljZXMuc29tZShlID0+IGUuZGV2aWNlSWQgPT0gaXRlbSkpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdHZhbGlkLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCFpdGVtKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRhdXRvX21hYy5zcGxpY2UoaW5kZXgsIDEpXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygndmFsaWQgbWFjICcsIGF1dG9fbWFjKVxyXG5cdFx0XHRcdFx0XHRpZiAoYXV0b19tYWMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TG9hZGluZyh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+iHquWKqOi/nuaOpeS4rS4uLicsXHJcblx0XHRcdFx0XHRcdFx0XHRtYXNrOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRsZXQgbWFjID0gYXV0b19tYWNbMF1cclxuXHRcdFx0XHRcdFx0XHRjcmVhdGVCTEVDb25uZWN0aW9uKG1hYylcclxuXHRcdFx0XHRcdFx0XHRhdXRvX21hYy5zcGxpY2UoMCwgMSlcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHt9XHJcblx0XHRcdFx0XHRcdGNsZWFyVGltZW91dChhZnRlcl90aW1lcilcclxuXHRcdFx0XHRcdFx0YWZ0ZXJfdGltZXIgPSAnJ1xyXG5cdFx0XHRcdFx0fSwgMTAwMCAqIDYpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH0pXHJcbn1cclxuXHJcblxyXG4vLyBjb25uZWN0IHN0ZXAgMVxyXG4vLyDov57mjqXok53niZnorr7lpIdcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJMRUNvbm5lY3Rpb24oaWQsIGFkdmVydGlzRGF0YSwgc2FtZURldmljZSwgY2xvc2VDb25uZWN0TG9hZGluZykgeyAvL+ebtOaOpei/nuaOpeiuvuWkh1xyXG5cdGNvbnNvbGUubG9nKGlkLCBhZHZlcnRpc0RhdGEsIHNhbWVEZXZpY2UsICfov57mjqXok53niZnorr7lpIcnKTtcclxuXHRjbG9zZUJMRUNvbm5lY3Rpb24oZmFsc2UsICgpID0+IHtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0Ly/nm5HlkKzok53niZnov57mjqXnirbmgIFcclxuXHRcdHVuaS5vbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZShsaXN0ZW5lcilcclxuXHRcdHVuaS5jcmVhdGVCTEVDb25uZWN0aW9uKHtcclxuXHRcdFx0ZGV2aWNlSWQ6IGlkLFxyXG5cdFx0XHR0aW1lb3V0OiA1MDAwLFxyXG5cdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2cocmVzLCAn6JOd54mZ6L+e5o6l54q25oCBJyk7XHJcblx0XHRcdFx0YXV0b19jb25uZWN0ID0gZmFsc2UgLy8g6YeN572uXHJcblx0XHRcdFx0YXV0b19tYWMgPSBbXSAvLyDph43nva5cclxuXHRcdFx0XHRjbG9zZUF1dG9Db25uZWN0KCkgLy8g5YWz6Zet5YWo5bGA6Ieq5Yqo6L+e5o6lXHJcblx0XHRcdFx0aWYgKGF1dG9Db25uZWN0Q2FsbGJhY2sgJiYgdHlwZW9mIGF1dG9Db25uZWN0Q2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdFx0YXV0b0Nvbm5lY3RDYWxsYmFjaygpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KCkgLy8g5YGc5q2i5omr5o+P6JOd54mZ6K6+5aSHXHJcblx0XHRcdFx0ZGV2aWNlID0gZGV2aWNlcy5maW5kKGl0ZW0gPT4gaXRlbS5kZXZpY2VJZCA9PSBpZClcclxuXHRcdFx0XHRpc0Nvbm5lY3RpbmcgPSBmYWxzZVxyXG5cdFx0XHRcdGNvbm5lY3RlZCA9IHRydWVcclxuXHRcdFx0XHRtYW51YWxEaXNjb25uZWN0ID0gZmFsc2VcclxuXHRcdFx0XHRkZXZpY2VJZCA9IGlkXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+i/nuaOpeeahOiuvuWkh0lEJywgZGV2aWNlSWQpO1xyXG5cdFx0XHRcdGdldEJMRURldmljZVNlcnZpY2VzKGRldmljZUlkKSAvLyDojrflj5bmnI3liqHvvIzliJ3lp4vljJbnibnlvoHlgLxcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2RldmljZUlkJywgZGV2aWNlSWQpO1xyXG5cdFx0XHRcdC8vIHVuaS5zZXRTdG9yYWdlU3luYygnZGV2aWNlTmFtZScsIG5hbWUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+iuvuWkh+i/nuaOpeWksei0pScsIGVycik7XHJcblx0XHRcdFx0aXNDb25uZWN0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0aWYgKGF1dG9fY29ubmVjdCkge1xyXG5cdFx0XHRcdFx0aWYgKGF1dG9fbWFjLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0bGV0IG1hYyA9IGF1dG9fbWFjWzBdXHJcblx0XHRcdFx0XHRcdGNyZWF0ZUJMRUNvbm5lY3Rpb24obWFjKVxyXG5cdFx0XHRcdFx0XHRhdXRvX21hYy5zcGxpY2UoMCwgMSlcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGlmIChhdXRvQ29ubmVjdENhbGxiYWNrICYmIHR5cGVvZiBhdXRvQ29ubmVjdENhbGxiYWNrID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdFx0XHRhdXRvQ29ubmVjdENhbGxiYWNrKClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K6+5aSH6L+e5o6l5aSx6LSlJyk7XHJcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKVxyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6K6+5aSH6L+e5o6l5aSx6LSl77yBJyArIGVyci5lcnJNc2csXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodHlwZW9mIGNsb3NlQ29ubmVjdExvYWRpbmcgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdGNsb3NlQ29ubmVjdExvYWRpbmcoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbXBsZXRlOiAoKSA9PiB7XHJcblx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fSwgc2FtZURldmljZSkgLy8g5YWz6Zet5b2T5YmN6JOd54mZ6L+e5o6lXHJcblx0Y29uc29sZS5sb2coJ+e7k+adn+i/nuaOpeaWueazlScpO1xyXG59XHJcblxyXG4vLyBjb25uZWN0IHN0ZXAgMlxyXG4vLyDojrflj5bmnI3liqFcclxuZnVuY3Rpb24gZ2V0QkxFRGV2aWNlU2VydmljZXMoZGV2aWNlSWQpIHtcclxuXHRjb25zb2xlLmxvZygn5oiR6I635Y+W5pyN5Yqh5oiQ5Yqf5o6l5pS25Yiw55qESWTmmK8nLCBkZXZpY2VJZCk7XHJcblxyXG5cdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0dW5pLmdldEJMRURldmljZVNlcnZpY2VzKHtcclxuXHRcdFx0ZGV2aWNlSWQsXHJcblx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMsICfojrflj5bok53niZnorr7lpIfmiYDmnInmnI3liqEyJyk7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+a1i+ivlTEnLHJlcy5zZXJ2aWNlc1tpXS51dWlkLCBzZXJ2aWNlX3V1aWQudG9VcHBlckNhc2UoKSlcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5zZXJ2aWNlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+a1i+ivlTInLHJlcy5zZXJ2aWNlc1tpXS51dWlkLCBzZXJ2aWNlX3V1aWQudG9VcHBlckNhc2UoKSlcclxuXHRcdFx0XHRcdC8vIOa2iOaBr+acjeWKoVxyXG5cdFx0XHRcdFx0aWYgKHJlcy5zZXJ2aWNlc1tpXS51dWlkID09IHNlcnZpY2VfdXVpZCB8fFxyXG5cdFx0XHRcdFx0XHRyZXMuc2VydmljZXNbaV0udXVpZCA9PSBzZXJ2aWNlX3V1aWQudG9VcHBlckNhc2UoKSkge1xyXG5cdFx0XHRcdFx0XHRnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MoZGV2aWNlSWQsIHJlcy5zZXJ2aWNlc1tpXS51dWlkKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGVyciwgJ+iOt+WPluacjeWKoeWksei0pScpXHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fSwgNjAwMClcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbn1cclxuXHJcblxyXG4vLyBjb25uZWN0IHN0ZXAgM1xyXG4vLyDliJ3lp4vljJbnibnlvoHlgLxcclxuZnVuY3Rpb24gZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKGRldmljZUlkLCBzZXJ2aWNlSWQpIHtcclxuXHR1bmkuZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKHtcclxuXHRcdGRldmljZUlkLFxyXG5cdFx0c2VydmljZUlkLFxyXG5cdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhyZXMsJ+mAmuefpeeJueW+geWAvCcpXHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzLmNoYXJhY3RlcmlzdGljcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGxldCBpdGVtID0gcmVzLmNoYXJhY3RlcmlzdGljc1tpXVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGNvbnN0IGl0ZW1VVUlEID0gaXRlbS51dWlkLnRvVXBwZXJDYXNlKCk7XHJcblx0XHRcdFx0Y29uc3QgcHJpbWFyeU5vdGlmeVVVSUQgPSBub3RpZnlfY2hhcmFjdGVyaXN0aWMudG9VcHBlckNhc2UoKTtcclxuXHRcdFx0XHRjb25zdCBzZWNvbmRhcnlOb3RpZnlVVUlEID0gbm90aWZ5X2NoYXJhY3RlcmlzdGljXzIudG9VcHBlckNhc2UoKTtcclxuXHJcblx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIGNoYXJhY3RlcmlzdGljIGlzIG9uZSBvZiB0aGUgbm90aWZpY2F0aW9uIHNvdXJjZXNcclxuXHRcdFx0XHRpZiAoaXRlbVVVSUQgPT09IHByaW1hcnlOb3RpZnlVVUlEIHx8IGl0ZW1VVUlEID09PSBzZWNvbmRhcnlOb3RpZnlVVUlEKSB7XHJcblx0XHRcdFx0XHRpZiAoaXRlbS5wcm9wZXJ0aWVzLm5vdGlmeSB8fCBpdGVtLnByb3BlcnRpZXMuaW5kaWNhdGUpIHtcclxuXHRcdFx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xyXG5cdFx0XHRcdFx0XHRcdGRldmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdFx0XHRjaGFyYWN0ZXJpc3RpY0lkOiBpdGVtLnV1aWQsXHJcblx0XHRcdFx0XHRcdFx0c3RhdGU6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYOW3suaIkOWKn+ebkeWQrOeJueW+geWAvDogJHtpdGVtLnV1aWR9YCk7XHJcblx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGDnm5HlkKznibnlvoHlgLwgJHtpdGVtLnV1aWR9IOWksei0pTpgLCBlcnIpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoaXRlbVVVSUQgPT09IHdyaXRlX2NoYXJhY3RlcmlzdGljLnRvVXBwZXJDYXNlKCkpIHtcclxuXHRcdFx0XHRcdGlmIChpdGVtLnByb3BlcnRpZXMud3JpdGUpIHt9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZmFpbDogKHJlcykgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MnLCByZXMpXHJcblx0XHR9XHJcblx0fSlcclxuXHQvLyBub3RpZnnnmoTlm57osIPlh73mlbDvvIzmk43kvZzkuYvliY3lhYjnm5HlkKzvvIzkv53or4HnrKzkuIDml7bpl7Tojrflj5bmlbDmja5cclxuXHQvLyDpkojlr7nkuI3lkIznibnlvoHlgLznmoTlm57osIPlpITnkIZcclxuXHR1bmkub25CTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKChyZXMpID0+IHtcclxuXHRcdGxldCByZXN1bHQgPSBhYjJoZXgocmVzLnZhbHVlKVxyXG5cclxuXHRcdC8vIOaJk+WNsOadpeiHqiBub3RpZnlfY2hhcmFjdGVyaXN0aWNfMiDnmoTmlbDmja5cclxuXHRcdGlmIChyZXMuY2hhcmFjdGVyaXN0aWNJZC50b1VwcGVyQ2FzZSgpID09PSBub3RpZnlfY2hhcmFjdGVyaXN0aWNfMi50b1VwcGVyQ2FzZSgpKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKGDmjqXmlLbliLDmnaXoh6ogW25vdGlmeV9jaGFyYWN0ZXJpc3RpY18yXSDnmoTljp/lp4tIZXjmlbDmja46ICR7cmVzdWx0fWApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCdmYycpICYmIHJlc3VsdC5lbmRzV2l0aCgnZmYnKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWFjSGV4ID0gcmVzdWx0LnN1YnN0cmluZygyLCByZXN1bHQubGVuZ3RoIC0gMik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYWNBZGRyZXNzID0gbWFjSGV4Lm1hdGNoKC8uezEsMn0vZykucmV2ZXJzZSgpLmpvaW4oJzonKS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFtub3RpZnlfY2hhcmFjdGVyaXN0aWNfMl0g6Kej5p6Q5ZCO55qETUFD5Zyw5Z2AOiAke21hY0FkZHJlc3N9YCk7XHJcbiAgICAgICAgICAgICAgICBpZiAobWFjQ2FsbGJhY2sgJiYgdHlwZW9mIG1hY0NhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFjQ2FsbGJhY2sobWFjQWRkcmVzcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0cmV0dXJuO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCdmYicpICYmIHJlc3VsdC5lbmRzV2l0aCgnZmYnKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YUhleCA9IHJlc3VsdC5zdWJzdHJpbmcoMiwgcmVzdWx0Lmxlbmd0aCAtIDIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYmF0dGVyeUhleCA9IGRhdGFIZXguc3Vic3RyaW5nKDAsIDIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYmF0dGVyeUxldmVsID0gcGFyc2VJbnQoYmF0dGVyeUhleCwgMTYpO1xyXG4gICAgICAgICAgICAgICAgbGFzdEJhdHRlcnlMZXZlbCA9IGJhdHRlcnlMZXZlbDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbbm90aWZ5X2NoYXJhY3RlcmlzdGljXzJdIOino+aekOWQjueahOeUtemHjzogJHtiYXR0ZXJ5TGV2ZWx9JWApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJhdHRlcnlDYWxsYmFjayAmJiB0eXBlb2YgYmF0dGVyeUNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmF0dGVyeUNhbGxiYWNrKGJhdHRlcnlMZXZlbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0cmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIFRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvZ2ljIGZvciB0aGUgcHJpbWFyeSBub3RpZmljYXRpb24gY2hhcmFjdGVyaXN0aWMuXHJcblx0XHQvLyBJdCBpcyBub3cgZ2VuZXJhbGl6ZWQgdG8gaGFuZGxlIHJlc3BvbnNlcyBmcm9tIGVpdGhlciBjaGFyYWN0ZXJpc3RpYyBpZiBub3QgaGFuZGxlZCBhYm92ZS5cclxuXHRcdGNvbnNvbGUubG9nKCfpgJrnn6XnibnlvoHlgLwnLHJlc3VsdClcclxuXHJcblx0XHRsZXQgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aFxyXG5cdFx0bGV0IGxlbiA9IHBhcnNlSW50KHNwbGl0QnlMZW4ocmVzdWx0LnN1YnN0cigyLCA0KSwgMikucmV2ZXJzZSgpLmpvaW4oJycpLCAxNilcclxuXHRcdC8vIGNvbnNvbGUubG9nKGxlbilcclxuXHRcdGxldCBjaGVja0FyckhleCA9IHNwbGl0QnlMZW4ocmVzdWx0LnN1YnN0cigwLCBsZW5ndGggLSA0KSwgMilcclxuXHRcdC8vIGNvbnNvbGUubG9nKGNoZWNrQXJySGV4KVxyXG5cdFx0bGV0IGNoZWNrQXJyID0gY2hlY2tBcnJIZXgubWFwKGUgPT4gcGFyc2VJbnQoZSwgMTYpKVxyXG5cdFx0Ly8gY29uc29sZS5sb2coY2hlY2tBcnIpXHJcblx0XHRsZXQgc2VuZENoZWNrU3VtID0gcmVzdWx0LnN1YnN0cigtNClcclxuXHRcdGxldCBjaGVja1N1bSA9IGdldENoZWNrU3VtKGNoZWNrQXJyKS5tYXAoZSA9PiBlLnRvU3RyaW5nKDE2KS5wYWRMZWZ0KDIsICcwJykpLmpvaW4oJycpXHJcblx0XHQvLyBjb25zb2xlLmxvZyhjaGVja1N1bSlcclxuXHRcdC8vIGNvbnNvbGUubG9nKHNlbmRDaGVja1N1bSlcclxuXHRcdC8vIGNvbnNvbGUubG9nKHNlbmRDaGVja1N1bSA9PT0gY2hlY2tTdW0pXHJcblx0XHRpZiAoc2VuZENoZWNrU3VtID09PSBjaGVja1N1bSkge1xyXG5cdFx0XHRsZXQgdHlwZSA9IHBhcnNlSW50KHJlc3VsdC5zdWJzdHIoOCwgMiksIDE2KVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0eXBlKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhyZWFsdGltZVR5cGUpXHJcblx0XHRcdGlmIChyZWFsdGltZVR5cGUgPT0gdHlwZSAmJiByZWFsdGltZUNhbGxiYWNrICYmIHR5cGVvZiByZWFsdGltZUNhbGxiYWNrID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRyZWFsdGltZVR5cGUgPSB1bmRlZmluZWRcclxuXHRcdFx0XHRsZXQgdGVtcENhbGxiYWNrID0gcmVhbHRpbWVDYWxsYmFja1xyXG5cdFx0XHRcdHJlYWx0aW1lQ2FsbGJhY2sgPSB1bmRlZmluZWRcclxuXHRcdFx0XHR0ZW1wQ2FsbGJhY2socmVzdWx0KVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdyZWFsdGltZVR5cGUgJywgcmVhbHRpbWVUeXBlKVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnRpbnVlRXhlY3V0ZSgpXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR1bmkuaGlkZUxvYWRpbmcoKSAvLyDmoKHpqozlgLzkuI3lr7nnmoTmg4XlhrVcclxuXHRcdFx0Y29udGludWVFeGVjdXRlKClcclxuXHRcdH1cclxuXHR9KVxyXG5cdGNvbm5lY3RDYWxsYmFjayhkZXZpY2VJZClcclxufVxyXG5cclxuXHJcbi8vIOiOt+WPluW9k+WJjeaYr+WQpui/nuaOpeS4ilxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29ubmVjdGVkKCkge1xyXG5cdHJldHVybiBjb25uZWN0ZWRcclxufVxyXG5cclxuLy8g6K6+572u6Ieq5Yqo6L+e5o6l55qEIG1hYyDlnLDlnYBcclxuZnVuY3Rpb24gc2V0QXV0b01hYyhhcnIpIHtcclxuXHRhdXRvX21hY19iYWNrdXAgPSBhcnJcclxuXHRhdXRvX2Nvbm5lY3QgPSB0cnVlXHJcblx0b3BlbkJsdWV0b290aEFkYXB0ZXIoKVxyXG5cdHN0YXJ0QXV0b0Nvbm5lY3QoKVxyXG59XHJcblxyXG4vKipcclxuICog5byA5ZCv5YWo5bGA6Ieq5Yqo6L+e5o6lXHJcbiAqL1xyXG5mdW5jdGlvbiBzdGFydEF1dG9Db25uZWN0KCkge1xyXG5cdGF1dG9fY29ubmVjdCA9IHRydWVcclxuXHRhdXRvQ29ubmVjdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG5cdFx0aWYgKGF1dG9fY29ubmVjdCkge1xyXG5cdFx0XHRpZiAoIWNvbm5lY3RlZCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfoh6rliqjov57mjqXmiavmj48gJywgaXNPcGVuKVxyXG5cdFx0XHRcdGlmIChpc09wZW4pIHtcclxuXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmIChpc0JsZU9uKSB7XHJcblx0XHRcdFx0XHRcdG9wZW5CbHVldG9vdGhBZGFwdGVyKClcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LCAxMDAwICogMylcclxufVxyXG5cclxuLyoqXHJcbiAqIOWFs+mXreWFqOWxgOiHquWKqOi/nuaOpVxyXG4gKi9cclxuZnVuY3Rpb24gY2xvc2VBdXRvQ29ubmVjdCgpIHtcclxuXHRhdXRvX2Nvbm5lY3QgPSBmYWxzZVxyXG5cdGNsZWFySW50ZXJ2YWwoYXV0b0Nvbm5lY3RUaW1lcilcclxufVxyXG5cclxuLyoqXHJcbiAqIOWPlua2iOWFqOWxgOiHquWKqOi/nuaOpVxyXG4gKi9cclxuZnVuY3Rpb24gY2FuY2VsQXV0b0Nvbm5lY3QoKSB7XHJcblx0YXV0b19jb25uZWN0ID0gZmFsc2VcclxuXHRhdXRvX21hYyA9IFtdXHJcblx0YXV0b0Nvbm5lY3RDYWxsYmFjayA9ICcnXHJcblx0Y2xlYXJJbnRlcnZhbChhdXRvQ29ubmVjdFRpbWVyKVxyXG5cdGNsb3NlQmx1ZXRvb3RoQWRhcHRlcigpXHJcbn1cclxuXHJcblxyXG4vLyDojrflj5bmmoLlrZjnmoTmiavmj4/liLDnmoTorr7lpIfmlbDnu4RcclxuZnVuY3Rpb24gZ2V0RGV2aWNlcygpIHtcclxuXHRpZiAoZGV2aWNlKSB7XHJcblx0XHRkZXZpY2VzLnB1c2goZGV2aWNlKVxyXG5cdH1cclxuXHRyZXR1cm4gZGV2aWNlc1xyXG59XHJcblxyXG4vLyDph43nva7miavmj4/liLDnmoTorr7lpIfmlbDnu4RcclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0RGV2aWNlcygpIHtcclxuXHRkZXZpY2VzID0gW107XHJcbn1cclxuXHJcbi8vIHdyaXRlIG1zZyDlj5HpgIHmjIfku6RcclxuLy8gbXNnIOS4uiBoZXhzdHJpbmcg5b2i5byPXHJcbmZ1bmN0aW9uIHdyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZShjaGFyYWN0ZXJpc3RpY0lkLCBtc2cpIHtcclxuXHRpZiAoY29ubmVjdGVkID09IGZhbHNlKSB7XHJcblx0XHRyZWNvbm5lY3REZXZpY2UoKTtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblx0bGV0IGJ1ZmZlciA9IGhleEFycjJhYihtc2cpO1xyXG5cdHdhaXRpbmdGb3JSZXN1bHQgPSB0cnVlOyAvL+etieW+hemAmuefpei/lOWbnue7k+aenOOAglxyXG5cdGxldCBsZW4gPSBidWZmZXIuYnl0ZUxlbmd0aFxyXG5cdGxldCBhcnIgPSBbXVxyXG5cdGlmIChsZW4gPiAyMCkge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDAsIGogPSAwOyBpIDwgbGVuOyBpICs9IDIwKSB7XHJcblx0XHRcdGxldCBzdGFydCA9IGogKiAyMDtcclxuXHRcdFx0bGV0IGVuZCA9IHN0YXJ0ICsgMjAgPiBsZW4gPyBsZW4gLSBzdGFydCA6IDIwXHJcblx0XHRcdGxldCBkYXRhID0gVWludDhBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgc3RhcnQsIGVuZCkpXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGEpXHJcblx0XHRcdC8vIGxldCB0ZW1wQnVmZmVyID0gZGF0YS5idWZmZXIuc2xpY2Uoc3RhcnQsIGVuZClcclxuXHRcdFx0Ly8gY29uc29sZS5sb2codGVtcEJ1ZmZlcilcclxuXHRcdFx0YXJyLnB1c2goZGF0YS5idWZmZXIpXHJcblx0XHRcdGorK1xyXG5cdFx0fVxyXG5cdFx0c3RvcEZsYWcgPSBmYWxzZVxyXG5cdFx0d3JpdGVEYXRhKGNoYXJhY3RlcmlzdGljSWQsIGFycilcclxuXHR9IGVsc2Uge1xyXG5cdFx0c3RvcEZsYWcgPSBmYWxzZVxyXG5cdFx0d3JpdGVEYXRhKGNoYXJhY3RlcmlzdGljSWQsIFtidWZmZXJdKVxyXG5cdH1cclxuXHJcbn1cclxuXHJcbmxldCBzdG9wRmxhZyA9IGZhbHNlXHJcbmxldCB0aW1lb3V0VGltZXIgPSAnJ1xyXG5sZXQgdGltZW91dENhbGxiYWNrID0gJydcclxuXHJcbmZ1bmN0aW9uIHdyaXRlRGF0YShjaGFyYWN0ZXJpc3RpY0lkLCBidWZmZXIpIHtcclxuXHRjb25zb2xlLmxvZygn5YeG5aSH5Y+R6YCBJyk7XHJcblx0Y2xlYXJUaW1lb3V0KHRpbWVvdXRUaW1lcilcclxuXHQvLyBjb25zb2xlLmxvZyhidWZmZXIpXHJcblx0aWYgKHN0b3BGbGFnKSB7XHJcblx0XHRyZXR1cm5cclxuXHR9XHJcblx0dW5pLndyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSh7XHJcblx0XHRkZXZpY2VJZCxcclxuXHRcdHNlcnZpY2VJZDogc2VydmljZV91dWlkLFxyXG5cdFx0Y2hhcmFjdGVyaXN0aWNJZCxcclxuXHRcdHZhbHVlOiBidWZmZXJbMF0sXHJcblx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdGlmIChyZWFsdGltZUNhbGxiYWNrKSB7XHJcblx0XHRcdFx0bGV0IHN0ciA9IGDlhpnlhaUgJHthYjJoZXgoYnVmZmVyWzBdKX1gXHJcblx0XHRcdFx0Y29uc29sZS5sb2coc3RyKVxyXG5cdFx0XHR9XHJcblx0XHRcdC8vIOWGmeWFpeS4gOasoei/m+W6puadoeWwseWJjei/m1xyXG5cdFx0XHRpZiAod3JpdGVDYWxsYmFjayAmJiB0eXBlb2Ygd3JpdGVDYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0bGV0IHN0ciA9IGDlhpnlhaUgJHthYjJoZXgoYnVmZmVyWzBdKX1gXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+WIhuWMheWPkemAgeS6huS4gOasoScpO1xyXG5cdFx0XHRcdHdyaXRlQ2FsbGJhY2soc3RyKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0aWYgKCFzdG9wRmxhZyAmJiBidWZmZXIubGVuZ3RoID4gMSkge1xyXG5cdFx0XHRcdHdyaXRlRGF0YShjaGFyYWN0ZXJpc3RpY0lkLCBidWZmZXIuc2xpY2UoMSkpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0bGV0IHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd0aW1lICcsIHRpbWUpXHJcblx0XHRcdFx0dGltZW91dFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGltZW91dENhbGxiYWNrICYmIHR5cGVvZiB0aW1lb3V0Q2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdFx0XHR0aW1lb3V0Q2FsbGJhY2soKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sIDIwMDApXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRmYWlsOiAocmVzKSA9PiB7XHJcblx0XHRcdGNtZExpc3QgPSBbXSAvLyDov5nph4zmuIXnqbrmjIfku6TvvIwg5pS+5byD6Zif5YiX5Lit5omA5pyJ5oyH5Luk77yM5Li65ZCO57ut5paw5oyH5Luk55qE5Yiw5p2l5YGa5YeG5aSHXHJcblx0XHRcdHdhaXRpbmdGb3JSZXN1bHQgPSBmYWxzZTtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignd3JpdGUgZmFpbGVkICcsIHJlcyk7XHJcblx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdHRpdGxlOiAn6K+36YeN5paw6L+e5o6lJ1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdHVybDogJy9wYWdlcy9zZWFyY2gvaW5kZXgnXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdH0pXHJcbn1cclxuLy8gNTUwODAwMDE5MzAxMTEyZlxyXG4vLyA1NTA4MDAwMTkxMDUxMThjXHJcblxyXG4vL+mHjei/nuiuvuWkh1xyXG5mdW5jdGlvbiByZWNvbm5lY3REZXZpY2UoKSB7XHJcblxyXG5cclxuXHJcblx0cmVjb25uZWN0VGltZXMgPSAwO1xyXG5cdGNsZWFySW50ZXJ2YWwocmVjb25uZWN0VGltZXIpXHJcblx0aWYgKG1hbnVhbERpc2Nvbm5lY3QpIC8vIOS4u+WKqOaWreW8gOeahOS4jeWBmuWkhOeQhlxyXG5cdFx0cmV0dXJuXHJcblx0dW5pLmhpZGVMb2FkaW5nKClcclxuXHR1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdFx0bWFzazogdHJ1ZSxcclxuXHRcdHRpdGxlOiAn6YeN6L+e5LitLi4uJ1xyXG5cdH0pXHJcblx0cmVjb25uZWN0KClcclxuXHRyZWNvbm5lY3RUaW1lciA9IHNldEludGVydmFsKFxyXG5cdFx0KCkgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZygn6YeN6L+ePz4+Pj4+Pj4nKTtcclxuXHRcdFx0cmVjb25uZWN0KClcclxuXHRcdH0sIDMwMDApOyAvLyA3MDAwXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlY29ubmVjdCgpIHtcclxuXHRpZiAoY29ubmVjdGVkKSAvL+W3sui/nuaOpVxyXG5cdHtcclxuXHRcdHJlY29ubmVjdFRpbWVzID0gMDtcclxuXHRcdGNsZWFySW50ZXJ2YWwocmVjb25uZWN0VGltZXIpXHJcblx0XHRyZXR1cm5cclxuXHR9XHJcblx0aWYgKHJlY29ubmVjdFRpbWVzID49IDIpIC8v6LaF5pe2IC8vIDlcclxuXHR7XHJcblx0XHRyZWNvbm5lY3RUaW1lcyA9IDA7XHJcblx0XHRjbGVhckludGVydmFsKHJlY29ubmVjdFRpbWVyKVxyXG5cdFx0dW5pLmhpZGVMb2FkaW5nKClcclxuXHRcdHNob3dNb2RhbCgpXHJcblx0XHRyZXR1cm5cclxuXHR9IGVsc2Uge1xyXG5cdFx0cmVjb25uZWN0VGltZXMgKz0gMVxyXG5cdFx0aWYgKGlzT3Blbikge1xyXG5cdFx0XHRpZiAoIWF1dG9fY29ubmVjdCkge1xyXG5cdFx0XHRcdGNvbm5lY3ROb3coKVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAoaXNCbGVPbikge1xyXG5cdFx0XHRcdG9wZW5CbHVldG9vdGhBZGFwdGVyKHRydWUpXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbm5lY3ROb3coKSB7XHJcblx0aWYgKCFpc0Nvbm5lY3RpbmcpIHtcclxuXHRcdGlzQ29ubmVjdGluZyA9IHRydWVcclxuXHJcblxyXG5cclxuXHRcdC8v55uR5ZCs6JOd54mZ6L+e5o6l54q25oCBXHJcblx0XHR1bmkub25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UobGlzdGVuZXIpXHJcblx0XHR1bmkuY3JlYXRlQkxFQ29ubmVjdGlvbih7XHJcblx0XHRcdGRldmljZUlkOiBkZXZpY2VJZCxcclxuXHRcdFx0dGltZW91dDogMzAwMCxcclxuXHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpXHJcblx0XHRcdFx0ZGV2aWNlID0gZGV2aWNlcy5maW5kKGl0ZW0gPT4gaXRlbS5kZXZpY2VJZCA9PSBkZXZpY2VJZClcclxuXHRcdFx0XHRpc0Nvbm5lY3RpbmcgPSBmYWxzZVxyXG5cdFx0XHRcdGNvbm5lY3RlZCA9IHRydWVcclxuXHRcdFx0XHRyZWNvbm5lY3RUaW1lcyA9IDA7XHJcblx0XHRcdFx0Y2xlYXJJbnRlcnZhbChyZWNvbm5lY3RUaW1lcikgLy/nu5PmnZ/lvqrnjq9cclxuXHRcdFx0XHRnZXRCTEVEZXZpY2VTZXJ2aWNlcyhkZXZpY2VJZClcclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRmYWlsOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0aXNDb25uZWN0aW5nID0gZmFsc2VcclxuXHRcdFx0fVxyXG5cdFx0fSlcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vLyDojrflj5blvZPliY3nirbmgIFcclxuLy8g55So5LqO5LiL5ouJ5Yi35pawXHJcbmZ1bmN0aW9uIGdldEJsdWV0b290aEFkYXB0ZXJTdGF0ZSgpIHtcclxuXHR1bmkuZ2V0Qmx1ZXRvb3RoQWRhcHRlclN0YXRlKHtcclxuXHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0aWYgKCFyZXMuYXZhaWxhYmxlKSB7XHJcblx0XHRcdFx0b3BlbkJsdWV0b290aEFkYXB0ZXIoKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHVuaS5zdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGZhaWw6IChlcnIpID0+IHt9XHJcblx0fSlcclxufVxyXG5cclxuLy8g5pat5byA6JOd54mZ6K6+5aSH6L+e5o6lXHJcbmZ1bmN0aW9uIGNsb3NlQkxFQ29ubmVjdGlvbihjbG9zZSwgY2FsbGJhY2ssIHNhbWVEZXZpY2UpIHtcclxuXHR0cnkge1xyXG5cdFx0Ly8gY29uc29sZS5sb2coJzEyMycsIGNsb3NlKVxyXG5cdFx0aWYgKGNsb3NlKSB7XHJcblx0XHRcdG1hbnVhbERpc2Nvbm5lY3QgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0Y29uc29sZS5sb2coJzEyMycsIGRldmljZUlkKVxyXG5cdFx0aWYgKGRldmljZUlkKSB7XHJcblx0XHRcdHVuaS5jbG9zZUJMRUNvbm5lY3Rpb24oe1xyXG5cdFx0XHRcdGRldmljZUlkOiBkZXZpY2VJZCxcclxuXHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRoYW5kbGVDbG9zZUJsZShjbG9zZSwgY2FsbGJhY2ssIHNhbWVEZXZpY2UpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoZXJyLmVyckNvZGUgPT0gMTAwMDYpIHtcclxuXHRcdFx0XHRcdFx0aGFuZGxlQ2xvc2VCbGUoY2xvc2UsIGNhbGxiYWNrLCBzYW1lRGV2aWNlKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCcxMjMnLCB0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJylcclxuXHRcdFx0aWYgKGNhbGxiYWNrICYmIHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0Y2FsbGJhY2soKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdHVuaS5oaWRlTG9hZGluZygpXHJcblx0XHRjb25zb2xlLmxvZyhlcnJvcilcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhbmRsZUNsb3NlQmxlKGNsb3NlLCBjYWxsYmFjaywgc2FtZURldmljZSkge1xyXG5cdGlmICghc2FtZURldmljZSkge1xyXG5cdFx0ZGV2aWNlSWQgPSAnJ1xyXG5cdH1cclxuXHRjb25uZWN0ZWQgPSBmYWxzZVxyXG5cdGxhc3RCYXR0ZXJ5TGV2ZWwgPSAnTi9BJztcclxuXHQvLyDmiYvliqjmlq3lvIDov57mjqXlpITnkIZcclxuXHRpZiAoY2xvc2UpIHtcclxuXHRcdGNsb3NlQmx1ZXRvb3RoQWRhcHRlcih0cnVlKVxyXG5cdH1cclxuXHRpZiAoY2FsbGJhY2sgJiYgdHlwZW9mIGNhbGxiYWNrID09ICdmdW5jdGlvbicpIHtcclxuXHRcdGNhbGxiYWNrKClcclxuXHR9XHJcbn1cclxuXHJcbi8vIOWFs+mXreiTneeJmeaJq+aPj1xyXG5mdW5jdGlvbiBzdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSgpIHtcclxuXHRpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcclxuXHR1bmkuc3RvcEJsdWV0b290aERldmljZXNEaXNjb3Zlcnkoe1xyXG5cdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0fVxyXG5cdH0pXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBzdG9wQmx1ZSA9IHN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5O1xyXG5cclxuLy8g5YWz6Zet6JOd54mZ6YCC6YWN5ZmoXHJcbmZ1bmN0aW9uIGNsb3NlQmx1ZXRvb3RoQWRhcHRlcihkb0NhbGxiYWNrKSB7XHJcblx0dW5pLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KHtcclxuXHRcdHN1Y2Nlc3M6IChyZXN1bHQpID0+IHtcclxuXHRcdFx0dW5pLmNsb3NlQmx1ZXRvb3RoQWRhcHRlcih7XHJcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Ly8g5omL5Yqo5pat5byA6L+e5o6l5aSE55CGXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0fVxyXG5cdH0pXHJcbn1cclxuXHJcbi8vIOiTneeJmeaWreW8gCDlvLnnqpfmj5DnpLogKOmHjei/nuS4jeWPr+i/nuS4iilcclxuZnVuY3Rpb24gc2hvd01vZGFsKCkge1xyXG5cdGRldmljZUlkID0gJydcclxuXHRkZXZpY2VzID0gW11cclxuXHQvLyBhdXRvX2Nvbm5lY3QgPSB0cnVlIC8vIOW8gOWQr+WFqOWxgOiHquWKqOi/nuaOpVxyXG5cdG9wZW5CbHVldG9vdGhBZGFwdGVyKHRydWUpXHJcblx0Ly8gc3RhcnRBdXRvQ29ubmVjdCgpXHJcblx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRjb250ZW50OiAn6K6+5aSH6YeN6L+e5aSx6LSl77yM5bey5pat5byA6L+e5o6l77yBJyxcclxuXHRcdHNob3dDYW5jZWw6IGZhbHNlLFxyXG5cdFx0c3VjY2VzcygpIHtcclxuXHRcdFx0dW5pLnJlTGF1bmNoKHtcclxuXHRcdFx0XHR1cmw6ICcvcGFnZXMvc2VhcmNoL2luZGV4J1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9KVxyXG59XHJcblxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbi8vICNcclxuLy8gIyAgICBVdGlsaXR5IEZ1bmN0aW9uc1xyXG4vLyAjXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8gICAg5bel5YW35Ye95pWwICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5mdW5jdGlvbiBzcGxpdEJ5TGVuKHN0ciwgbGVuKSB7XHJcblx0bGV0IGxlbmd0aCA9IHN0ci5sZW5ndGhcclxuXHRsZXQgbmV3QXJyID0gW11cclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSBsZW4pIHtcclxuXHRcdG5ld0Fyci5wdXNoKHN0ci5zdWJzdHIoaSwgbGVuKSlcclxuXHR9XHJcblx0cmV0dXJuIG5ld0FyclxyXG59XHJcblxyXG5mdW5jdGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGFycikge1xyXG5cdGlmICh0eXBlb2YgYXJyID09PSAnc3RyaW5nJykge1xyXG5cdFx0cmV0dXJuIGFycjtcclxuXHR9XHJcblx0dmFyIGRhdGF2aWV3ID0gbmV3IERhdGFWaWV3KGFycik7XHJcblx0dmFyIGludHMgPSBuZXcgVWludDhBcnJheShhcnIuYnl0ZUxlbmd0aCk7XHJcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBpbnRzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRpbnRzW2ldID0gZGF0YXZpZXcuZ2V0VWludDgoaSk7XHJcblx0fVxyXG5cdGFyciA9IGludHM7XHJcblx0dmFyIHN0ciA9ICcnLFxyXG5cdFx0X2FyciA9IGFycjtcclxuXHRmb3IgKHZhciBpID0gMDsgaSA8IF9hcnIubGVuZ3RoOyBpKyspIHtcclxuXHRcdHZhciBvbmUgPSBfYXJyW2ldLnRvU3RyaW5nKDIpLFxyXG5cdFx0XHR2ID0gb25lLm1hdGNoKC9eMSs/KD89MCkvKTtcclxuXHRcdGlmICh2ICYmIG9uZS5sZW5ndGggPT0gOCkge1xyXG5cdFx0XHR2YXIgYnl0ZXNMZW5ndGggPSB2WzBdLmxlbmd0aDtcclxuXHRcdFx0dmFyIHN0b3JlID0gX2FycltpXS50b1N0cmluZygyKS5zbGljZSg3IC0gYnl0ZXNMZW5ndGgpO1xyXG5cdFx0XHRmb3IgKHZhciBzdCA9IDE7IHN0IDwgYnl0ZXNMZW5ndGg7IHN0KyspIHtcclxuXHRcdFx0XHRzdG9yZSArPSBfYXJyW3N0ICsgaV0udG9TdHJpbmcoMikuc2xpY2UoMik7XHJcblx0XHRcdH1cclxuXHRcdFx0c3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoc3RvcmUsIDIpKTtcclxuXHRcdFx0aSArPSBieXRlc0xlbmd0aCAtIDE7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShfYXJyW2ldKTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIHN0cjtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGluQXJyYXkoYXJyLCBrZXksIHZhbCkge1xyXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRpZiAoYXJyW2ldW2tleV0gPT09IHZhbCkge1xyXG5cdFx0XHRyZXR1cm4gaTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIC0xO1xyXG59XHJcblxyXG4vLyDlrZfnrKbkuLLovazkuLpBcnJheUJ1ZmZlcuWvueixoe+8jOWPguaVsOS4uuWtl+espuS4su+8jOazqOaEj+i/memHjOeahOWtl+espuS4suS4uumdnmhleOWtl+espuS4slxyXG5mdW5jdGlvbiBzdHJpbmdUb0FycmF5QnVmZmVyKHN0cikge1xyXG5cdHZhciBieXRlcyA9IG5ldyBBcnJheSgpO1xyXG5cdHZhciBsZW4sIGM7XHJcblx0bGVuID0gc3RyLmxlbmd0aDtcclxuXHRmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcblx0XHRjID0gc3RyLmNoYXJDb2RlQXQoaSk7XHJcblx0XHRpZiAoYyA+PSAweDAxMDAwMCAmJiBjIDw9IDB4MTBGRkZGKSB7XHJcblx0XHRcdGJ5dGVzLnB1c2goKChjID4+IDE4KSAmIDB4MDcpIHwgMHhGMCk7XHJcblx0XHRcdGJ5dGVzLnB1c2goKChjID4+IDEyKSAmIDB4M0YpIHwgMHg4MCk7XHJcblx0XHRcdGJ5dGVzLnB1c2goKChjID4+IDYpICYgMHgzRikgfCAweDgwKTtcclxuXHRcdFx0Ynl0ZXMucHVzaCgoYyAmIDB4M0YpIHwgMHg4MCk7XHJcblx0XHR9IGVsc2UgaWYgKGMgPj0gMHgwMDA4MDAgJiYgYyA8PSAweDAwRkZGRikge1xyXG5cdFx0XHRieXRlcy5wdXNoKCgoYyA+PiAxMikgJiAweDBGKSB8IDB4RTApO1xyXG5cdFx0XHRieXRlcy5wdXNoKCgoYyA+PiA2KSAmIDB4M0YpIHwgMHg4MCk7XHJcblx0XHRcdGJ5dGVzLnB1c2goKGMgJiAweDNGKSB8IDB4ODApO1xyXG5cdFx0fSBlbHNlIGlmIChjID49IDB4MDAwMDgwICYmIGMgPD0gMHgwMDA3RkYpIHtcclxuXHRcdFx0Ynl0ZXMucHVzaCgoKGMgPj4gNikgJiAweDFGKSB8IDB4QzApO1xyXG5cdFx0XHRieXRlcy5wdXNoKChjICYgMHgzRikgfCAweDgwKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGJ5dGVzLnB1c2goYyAmIDB4RkYpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR2YXIgYXJyYXkgPSBuZXcgSW50OEFycmF5KGJ5dGVzLmxlbmd0aCk7XHJcblx0Zm9yICh2YXIgaSBpbiBieXRlcykge1xyXG5cdFx0YXJyYXlbaV0gPSBieXRlc1tpXTtcclxuXHR9XHJcblx0cmV0dXJuIGFycmF5LmJ1ZmZlcjtcclxufVxyXG5cclxuZnVuY3Rpb24gaGV4QXJyMmFiKGhleEFycikge1xyXG5cdGxldCBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoaGV4QXJyLmxlbmd0aClcclxuXHRsZXQgZGF0YVZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKVxyXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgaGV4QXJyLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRkYXRhVmlldy5zZXRVaW50OChpLCBoZXhBcnJbaV0pXHJcblx0fVxyXG5cdHJldHVybiBidWZmZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhleFN0cjJhYihoZXhTdHIpIHtcclxuXHRsZXQgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGhleFN0ci5sZW5ndGggLyAyKVxyXG5cdGxldCBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpXHJcblx0Zm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgaGV4U3RyLmxlbmd0aDsgaSArPSAyLCBqKyspIHtcclxuXHRcdGxldCBfc3RyID0gXCIweFwiICsgaGV4U3RyLnN1YnN0cihpLCAyKVxyXG5cdFx0ZGF0YVZpZXcuc2V0VWludDgoaiwgcGFyc2VJbnQoX3N0ciwgMTYpKVxyXG5cdH1cclxuXHRyZXR1cm4gYnVmZmVyO1xyXG59XHJcbi8vIEFycmF5QnVmZmVy6L2sMTbov5vluqblrZfnrKbkuLLnpLrkvotcclxuZnVuY3Rpb24gYWIyaGV4KGJ1ZmZlcikge1xyXG5cdHZhciBoZXhBcnIgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoXHJcblx0XHRuZXcgVWludDhBcnJheShidWZmZXIpLFxyXG5cdFx0ZnVuY3Rpb24oYml0KSB7XHJcblx0XHRcdHJldHVybiAoJzAwJyArIGJpdC50b1N0cmluZygxNikpLnNsaWNlKC0yKVxyXG5cdFx0fVxyXG5cdClcclxuXHRyZXR1cm4gaGV4QXJyLmpvaW4oJycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoZXhTdHIySGV4QXJyKGhleFN0cikge1xyXG5cdHZhciBhID0gW107XHJcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBoZXhTdHIubGVuZ3RoOyBpICs9IDIpIHtcclxuXHRcdGxldCBfc3RyID0gXCIweFwiICsgaGV4U3RyLnN1YnN0cihpLCAyKVxyXG5cdFx0YS5wdXNoKHBhcnNlSW50KF9zdHIsIDE2KSk7XHJcblx0fVxyXG5cdHJldHVybiBhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoZXhBcnIySGV4U3RyKGhleEFycikge1xyXG5cdGxldCBhcnIgPSBbXVxyXG5cdGhleEFyci5mb3JFYWNoKGl0ZW0gPT4ge1xyXG5cdFx0YXJyLnB1c2goaXRlbS50b1N0cmluZygxNikucGFkTGVmdCgyLCAnMCcpKVxyXG5cdH0pXHJcblx0cmV0dXJuIGFyci5qb2luKCcnKVxyXG59XHJcblxyXG4vLyAxMOi/m+WItui9rDE26L+b5Yi26KGlMFxyXG5mdW5jdGlvbiBkZWMyaGV4KGRlYywgbGVuKSB7IC8vMTDov5vliLbovawxNui/m+WItuihpTBcclxuXHR2YXIgaGV4ID0gXCJcIjtcclxuXHR3aGlsZSAoZGVjKSB7XHJcblx0XHR2YXIgbGFzdCA9IGRlYyAmIDE1O1xyXG5cdFx0aGV4ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGxhc3QgPiA5KSA/IDU1IDogNDgpICsgbGFzdCkgKyBoZXg7XHJcblx0XHRkZWMgPj49IDQ7XHJcblx0fVxyXG5cdGlmIChsZW4pIHtcclxuXHRcdHdoaWxlIChoZXgubGVuZ3RoIDwgbGVuKSBoZXggPSAnMCcgKyBoZXg7XHJcblx0fVxyXG5cdHJldHVybiBoZXg7XHJcbn1cclxuLy8gMTDov5vliLbovawxNui/m+WItuihpTBcclxuZnVuY3Rpb24gc3RyaW5nX2hleDJpbnQoaGV4KSB7IC8vMTbov5vliLbovawxMOi/m+WItlxyXG5cdHZhciBsZW4gPSBoZXgubGVuZ3RoLFxyXG5cdFx0YSA9IG5ldyBBcnJheShsZW4pLFxyXG5cdFx0Y29kZTtcclxuXHRmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcblx0XHRjb2RlID0gaGV4LmNoYXJDb2RlQXQoaSk7XHJcblx0XHRpZiAoNDggPD0gY29kZSAmJiBjb2RlIDwgNTgpIHtcclxuXHRcdFx0Y29kZSAtPSA0ODtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvZGUgPSAoY29kZSAmIDB4ZGYpIC0gNjUgKyAxMDtcclxuXHRcdH1cclxuXHRcdGFbaV0gPSBjb2RlO1xyXG5cdH1cclxuXHRyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBjKSB7XHJcblx0XHRhY2MgPSAxNiAqIGFjYyArIGM7XHJcblx0XHRyZXR1cm4gYWNjO1xyXG5cdH0sIDApO1xyXG59XHJcblxyXG4vL+agoemqjOWSjFxyXG5mdW5jdGlvbiBjaGVja1N1bVJlc3VsdChoZXhTdHIsIGxlbikgLy/ov5Tlm57moKHpqozlkoznmoRoZXhzdHJpbmdcclxue1xyXG5cdGxldCBhYkRhdGEgPSBoZXhTdHIySGV4QXJyKGhleFN0cilcclxuXHR2YXIgdWNJID0gMCxcclxuXHRcdHVjSiA9IDA7XHJcblx0dmFyIHVpQ3JjVmFsdWUgPSAweGZmZmY7XHJcblx0Zm9yICh1Y0kgPSAwOyB1Y0kgPCBsZW47IHVjSSsrKSB7XHJcblx0XHR1aUNyY1ZhbHVlID0gKHVpQ3JjVmFsdWUgXiAoYWJEYXRhW3VjSV0gJiAweGZmKSk7XHJcblx0XHRmb3IgKHVjSiA9IDA7IHVjSiA8IDg7IHVjSisrKSB7XHJcblx0XHRcdGlmICgodWlDcmNWYWx1ZSAmIDB4MDAwMSkgPT0gMSkge1xyXG5cdFx0XHRcdHVpQ3JjVmFsdWUgPSAoKHVpQ3JjVmFsdWUgPj4gMSkgXiAweDg0MDgpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHVpQ3JjVmFsdWUgPSAodWlDcmNWYWx1ZSA+PiAxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQvL+agoemqjOWSjOS4unVpQ3JjVmFsdWUg55qE6auY5L2O5L2N5LqS5o2iXHJcblx0dmFyIGhleFN0ciA9IGRlYzJoZXgodWlDcmNWYWx1ZSwgNCk7XHJcblx0dmFyIHJlc3VsdFN0ciA9IGhleFN0ci5zdWJzdHIoMiwgMikgKyBoZXhTdHIuc3Vic3RyKDAsIDIpXHJcblx0cmV0dXJuIHJlc3VsdFN0cjtcclxufVxyXG5cclxuZnVuY3Rpb24gVWludDhUb1N0cihhcnIpIHtcclxuXHRmb3IgKHZhciBpID0gMCwgc3RyID0gJyc7IGkgPCBhcnIubGVuZ3RoOyBpKyspXHJcblx0XHRzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShhcnJbaV0pO1xyXG5cdHJldHVybiBzdHI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHN0clRvVWludDgoc3RyKSB7XHJcblx0Zm9yICh2YXIgaSA9IDAsIGFyciA9IFtdOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRhcnIucHVzaChzdHIuY2hhckNvZGVBdChpKSk7XHJcblx0fVxyXG5cdHJldHVybiBuZXcgVWludDhBcnJheShhcnIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzY292ZXJlZERldmljZXMoKSB7XHJcblx0cmV0dXJuIFsuLi5kZXZpY2VzXTtcclxufVxyXG5cclxuLy8g5omL5Yqo5pat5byA6JOd54mZXHJcbmV4cG9ydCBmdW5jdGlvbiBtYW51YWxEaXNjb25uZWN0RGV2aWNlKCkge1xyXG5cdGNsb3NlQkxFQ29ubmVjdGlvbih0cnVlKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///214\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createBLEConnection = createBLEConnection;\nexports.getConnected = getConnected;\nexports.getConnectedDevice = getConnectedDevice;\nexports.getDeviceId = getDeviceId;\nexports.getDiscoveredDevices = getDiscoveredDevices;\nexports.initBlue = initBlue;\nexports.manualDisconnectDevice = manualDisconnectDevice;\nexports.openBluetoothAdapter = openBluetoothAdapter;\nexports.resetDevices = resetDevices;\nexports.sendImg = sendImg;\nexports.sendLightType = sendLightType;\nexports.setBatteryCallback = setBatteryCallback;\nexports.setCallback = setCallback;\nexports.setDisconnectCallback = setDisconnectCallback;\nexports.setLight = setLight;\nexports.setMacCallback = setMacCallback;\nexports.setScanCallback = setScanCallback;\nexports.setWriteCallback = setWriteCallback;\nexports.stopBlue = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 50));\n// 蓝牙设备结果集\nvar devices = [];\n\n// 当前连接的蓝牙设备\nvar device = '';\n\n// 蓝牙设备id\nvar deviceId = '';\n\n// 写了数据等待通知结果返回\nvar waitingForResult = false;\n\n// 连接状态\nvar isConnecting = false;\nvar connected = false;\n\n// 服务 uuid 和 特征值 uuid\n//正式\n//测试\n\nvar service_uuid = \"0000AE30-0000-1000-8000-00805F9B34FB\";\nvar write_characteristic = \"0000AE03-0000-1000-8000-00805F9B34FB\";\nvar notify_characteristic = \"0000AE03-0000-1000-8000-00805F9B34FB\";\nvar notify_characteristic_2 = \"0000AE02-0000-1000-8000-00805F9B34FB\"; //获取设备电量和设备mac地址\n\n// 命名规则\nvar rule1 = \"\"; // Android\nvar rule2 = \"\"; // ios\n\n// 手动断开\nvar manualDisconnect = true;\n\n// #################################################\n// #\n// # Callback Definitions\n// #\n// #################################################\n\n// 回调事件\nvar connectCallback = ''; // 连接成功回调\nvar scanCallback = ''; // 搜索到蓝牙设备回调\nvar disconnectCallback = ''; // 设备断开连接回调\nvar writeCallback = ''; // 写成功回调\n// 自定义 业务相关 回调事件\nvar realtimeCallback = ''; // 实时发送指令的回调\nvar batteryCallback = ''; // 电量回调\nvar macCallback = ''; // MAC地址回调\nvar lastBatteryLevel = 'N/A';\n\n// 自定义 业务相关 标识\nvar realtimeType = ''; // 实时发送指令的标识\n\n// 重连相关\nvar reconnectTimes = 0; // 重连次数\nvar reconnectTimer; // 重连计时器\n\n// 因为有心跳自动计时器发送,不是全是用户手动的操作,用户的手动操作设定为一个操作后才能操作下一个,但有自动心跳发送的话,可能会出现发送心跳时,\n// 用户也正好操作了,那这时可能会出现,同时写两条指令情况,即没收到上一条的回复就发送了下一条指令,现用数组暂存\nvar cmdList = []; // 看这里!!! 现在没有心跳,只有用户的操作,确保用户的操作都是有回复的,并且在队列内,等待前一条执行完才执行下一条\n\n// 当前蓝牙适配器是否打开的状态\nvar isOpen = false;\n\n// 自动连接\nvar auto_connect = false;\n\n// 准备去自动连接的 deviceId\nvar auto_mac = [];\nvar auto_mac_backup = []; // 备份\n\n// 扫描到设备后,再等待个几秒计时器\nvar after_timer = '';\n\n// 自动连接回调\nvar autoConnectCallback = '';\n\n// 自动连接检测计时器\nvar autoConnectTimer = '';\n\n/**\r\n * 手机蓝牙是否开启了\r\n */\nvar isBleOn = false;\nvar listener = function listener(res) {\n __f__(\"log\", res, \" at store/BLETools.js:91\");\n // 该方法回调中可以用于处理连接意外断开等异常情况\n if (!res.connected) {\n device = '';\n cmdList = []; // 这里清空指令\n isConnecting = false;\n connected = false;\n lastBatteryLevel = 'N/A';\n if (disconnectCallback && typeof disconnectCallback == 'function') {\n disconnectCallback();\n }\n uni.getBluetoothAdapterState({\n success: function success(res) {\n if (!res.available) {\n isOpen = false;\n auto_connect = true;\n }\n reconnectDevice();\n },\n fail: function fail(err) {}\n });\n }\n};\n\n// 初始化拓展函数\nString.prototype.padLeft = function (len, char) {\n var str = this;\n return new Array(len - str.length + 1).join(char || '') + str;\n};\nString.prototype.transFloat = function () {\n var str = this;\n return str.indexOf('.') != -1 ? parseFloat(str).toFixed(1) : str;\n};\n\n// //uni\nuni.onBluetoothAdapterStateChange(function (res) {\n if (!res.available) {\n isOpen = false;\n isBleOn = false;\n } else {\n isBleOn = true;\n }\n});\n\n// 获取 校验\nfunction getCheckSum(cmd) {\n // console.log(cmd, '我是cmd');\n var checkSum = getCrc16(cmd);\n // console.log(checkSum, '我是checkSum');\n // console.log(splitByLen(checkSum, 2).reverse().map(e => parseInt(e, 16)), 'woshi ');\n return splitByLen(checkSum, 2).reverse().map(function (e) {\n return parseInt(e, 16);\n });\n}\nfunction getCrc16(cmd) {\n var crc = 0xffff;\n var len = cmd.length;\n for (var i = 0; i < len; i++) {\n crc = crc ^ cmd[i] & 0xff;\n for (var j = 0; j < 8; j++) {\n if ((crc & 0x0001) == 1) {\n crc >>= 1;\n crc ^= 0xA001;\n } else {\n crc >>= 1;\n }\n }\n }\n // console.log(crc.toString(16).padLeft(4, '0'), '0121454878');\n return crc.toString(16).padLeft(4, '0');\n}\n\n// #################################################\n// #\n// # Module Setup & Configuration\n// #\n// #################################################\n\n// 初始化蓝牙模块\nfunction initBlue() {\n uni.onBluetoothDeviceFound(function (res) {\n res.devices.forEach(function (device) {\n // 过滤掉没有名字的设备\n if (!device.name) {\n return;\n }\n var foundDevices = devices;\n var idx = inArray(foundDevices, 'deviceId', device.deviceId);\n if (idx === -1) {\n devices.push(device);\n } else {\n devices[idx] = device;\n }\n\n // Always notify the UI of any found device\n if (scanCallback && typeof scanCallback == \"function\") {\n scanCallback(); // 查找结果集回调\n }\n\n // console.log('auto_connect:', auto_connect);\n // console.log('isConnecting:', isConnecting);\n // console.log('deviceId:', deviceId);\n if (auto_connect && !isConnecting && device.deviceId == deviceId) {\n isConnecting = true;\n createBLEConnection(deviceId, true);\n } else if (auto_connect) {\n // console.log('111111100000000000000000//////////////');\n if (!after_timer) {\n after_timer = setTimeout(function () {\n var valid = [];\n auto_mac = JSON.parse(JSON.stringify(auto_mac_backup));\n auto_mac.forEach(function (item) {\n valid.push(devices.some(function (e) {\n return e.deviceId == item;\n }));\n });\n valid.forEach(function (item, index) {\n if (!item) {\n auto_mac.splice(index, 1);\n }\n });\n __f__(\"log\", 'valid mac ', auto_mac, \" at store/BLETools.js:216\");\n if (auto_mac.length > 0) {\n uni.showLoading({\n title: '自动连接中...',\n mask: true\n });\n var mac = auto_mac[0];\n createBLEConnection(mac);\n auto_mac.splice(0, 1);\n } else {}\n clearTimeout(after_timer);\n after_timer = '';\n }, 1000 * 6);\n }\n }\n });\n });\n}\n\n// 设置连接成功回调\nfunction setCallback(e) {\n connectCallback = e;\n}\n\n// 设置搜索到蓝牙设备回调\nfunction setScanCallback(e) {\n scanCallback = e;\n}\n\n// 设置设备断开连接回调\nfunction setDisconnectCallback(e) {\n disconnectCallback = e;\n}\n\n// 设置写成功回调\nfunction setWriteCallback(e) {\n writeCallback = e;\n}\nfunction setBatteryCallback(e) {\n batteryCallback = e;\n if (lastBatteryLevel !== 'N/A' && typeof batteryCallback === 'function') {\n batteryCallback(lastBatteryLevel);\n }\n}\nfunction setMacCallback(e) {\n macCallback = e;\n}\nfunction getDeviceId() {\n return deviceId;\n}\nfunction getConnectedDevice() {\n return device;\n}\n\n// 业务相关回调\nfunction setRealtimeCallback(type, e) {\n realtimeType = type;\n // console.log('业务相关回调', e);\n realtimeCallback = e;\n // console.log('set realtimeType ', realtimeType)\n}\n\n// #################################################\n// #\n// # Core BLE Command Functions\n// #\n// #################################################\n\n// 转换16进制\n/**\r\n * @param {number} num 几位\r\n*/\nfunction conversion(str, num) {\n var result = [];\n for (var i = 0; i < str.length; i += num) {\n var temp = str.slice(i, i + num);\n // temp.toString(16);\n result.push(parseInt(temp, 16));\n }\n return result;\n}\n\n// 切换灯的模式\nfunction sendLightType(type, e) {\n setRealtimeCallback(type, e);\n var str1 = \"FA\".concat(e, \"000100FF\");\n var arr = [];\n arr = conversion(str1, 2);\n executeCmd(arr);\n}\n\n// 调节灯亮度\nfunction setLight(type, e, num) {\n setRealtimeCallback(type, e);\n // let str = `FA05${parseInt(num, 16)}00FF`;\n var str = \"FA050001\".concat(num.toString(16).padLeft(2, '0'), \"FF\");\n var arr = conversion(str, 2);\n __f__(\"log\", 'light数组', arr, \" at store/BLETools.js:318\");\n executeCmd(arr);\n}\n\n/**\r\n * @description 设置单位、部门、名字...\r\n * @param { Array } arr \r\n*/\nfunction sendImg(arr, e) {\n var dataArr = conversion(arr, 2);\n __f__(\"log\", dataArr, \" at store/BLETools.js:328\");\n executeCmd(dataArr);\n}\n\n// 如未空(未收到回复,收到回复会清掉第一个指令)进队列, 空直接执行\nfunction executeCmd(cmd) {\n // if (cmdList.length == 0) {\n // \twriteBLECharacteristicValue(write_characteristic, cmd)\n\n // }\n // cmdList.push(cmd)\n writeBLECharacteristicValue(write_characteristic, cmd);\n}\n\n// 清掉第一个指令,然后检查队列是否为空,不为空继续发送\nfunction continueExecute() {\n cmdList.splice(0, 1);\n if (cmdList.length != 0) {\n writeBLECharacteristicValue(write_characteristic, cmdList[0]);\n }\n}\n\n// #################################################\n// #\n// # Core BLE Connection Logic\n// #\n// #################################################\n\n// step 1\n// 打开蓝牙功能\nfunction openBluetoothAdapter(search, callback) {\n var operation = function operation() {\n openBleAdapter(function (err) {\n if (!err) {\n // On success (no error), start scanning for devices.\n startBluetoothDevicesDiscovery();\n }\n // Always call the page's callback to notify it of the result.\n if (callback) {\n callback(err);\n }\n });\n };\n if (search) {\n // First close any existing adapter session, then perform the operation.\n uni.closeBluetoothAdapter({\n complete: operation\n });\n } else {\n operation();\n }\n}\nfunction openBleAdapter(callback) {\n uni.openBluetoothAdapter({\n success: function success(res) {\n isOpen = true;\n isBleOn = true;\n if (callback) callback(); // Success, no error object.\n },\n\n fail: function fail(err) {\n // Log the full error to help diagnose release version issues\n __f__(\"error\", 'openBluetoothAdapter failed with error:', JSON.stringify(err), \" at store/BLETools.js:394\");\n if (err.errCode === 10001) {\n uni.showModal({\n content: '请打开手机蓝牙',\n showCancel: false\n });\n } else {\n // For other errors, show a detailed modal for debugging in the release version.\n uni.showModal({\n title: '蓝牙启动失败',\n content: \"\\u9519\\u8BEF: \".concat(JSON.stringify(err)),\n showCancel: false\n });\n }\n isOpen = false;\n isBleOn = false;\n // Propagate the error to the calling page\n if (callback) callback(err);\n }\n });\n}\n\n// step 2\n//开始搜索蓝牙设备\nfunction startBluetoothDevicesDiscovery() {\n __f__(\"log\", '开始搜索', \" at store/BLETools.js:420\");\n var option = {\n allowDuplicatesKey: false,\n success: function success(res) {\n __f__(\"log\", '搜索成功,有设备', res, \" at store/BLETools.js:424\");\n onBluetoothDeviceFound();\n },\n fail: function fail(err) {\n __f__(\"log\", '当前搜索蓝牙设备失败', err, \" at store/BLETools.js:428\");\n if (err.errCode == 10008) {\n uni.showToast({\n title: '扫描太过频繁,请稍后再试',\n icon: 'none'\n });\n }\n // resetDevices();\n // devices = []\n // openBluetoothAdapter(true);\n }\n };\n\n if (auto_connect) {\n option.services = [service_uuid];\n }\n uni.startBluetoothDevicesDiscovery(option);\n}\nvar hexString = '';\n// step 3\n// 设备查找结果处理\nfunction onBluetoothDeviceFound() {\n uni.onBluetoothDeviceFound(function (res) {\n res.devices.forEach(function (device) {\n // 过滤掉没有名字的设备\n if (!device.name) {\n return;\n }\n var foundDevices = devices;\n var idx = inArray(foundDevices, 'deviceId', device.deviceId);\n if (idx === -1) {\n devices.push(device);\n } else {\n devices[idx] = device;\n }\n\n // Always notify the UI of any found device\n if (scanCallback && typeof scanCallback == \"function\") {\n scanCallback(); // 查找结果集回调\n }\n\n // console.log('auto_connect:', auto_connect);\n // console.log('isConnecting:', isConnecting);\n // console.log('deviceId:', deviceId);\n if (auto_connect && !isConnecting && device.deviceId == deviceId) {\n isConnecting = true;\n createBLEConnection(deviceId, true);\n } else if (auto_connect) {\n // console.log('111111100000000000000000//////////////');\n if (!after_timer) {\n after_timer = setTimeout(function () {\n var valid = [];\n auto_mac = JSON.parse(JSON.stringify(auto_mac_backup));\n auto_mac.forEach(function (item) {\n valid.push(devices.some(function (e) {\n return e.deviceId == item;\n }));\n });\n valid.forEach(function (item, index) {\n if (!item) {\n auto_mac.splice(index, 1);\n }\n });\n __f__(\"log\", 'valid mac ', auto_mac, \" at store/BLETools.js:495\");\n if (auto_mac.length > 0) {\n uni.showLoading({\n title: '自动连接中...',\n mask: true\n });\n var mac = auto_mac[0];\n createBLEConnection(mac);\n auto_mac.splice(0, 1);\n } else {}\n clearTimeout(after_timer);\n after_timer = '';\n }, 1000 * 6);\n }\n }\n });\n });\n}\n\n// connect step 1\n// 连接蓝牙设备\nfunction createBLEConnection(id, advertisData, sameDevice, closeConnectLoading) {\n //直接连接设备\n __f__(\"log\", id, advertisData, sameDevice, '连接蓝牙设备', \" at store/BLETools.js:518\");\n closeBLEConnection(false, function () {\n //监听蓝牙连接状态\n uni.onBLEConnectionStateChange(listener);\n uni.createBLEConnection({\n deviceId: id,\n timeout: 5000,\n success: function success(res) {\n __f__(\"log\", res, '蓝牙连接状态', \" at store/BLETools.js:531\");\n auto_connect = false; // 重置\n auto_mac = []; // 重置\n closeAutoConnect(); // 关闭全局自动连接\n if (autoConnectCallback && typeof autoConnectCallback == 'function') {\n autoConnectCallback();\n }\n stopBluetoothDevicesDiscovery(); // 停止扫描蓝牙设备\n device = devices.find(function (item) {\n return item.deviceId == id;\n });\n isConnecting = false;\n connected = true;\n manualDisconnect = false;\n deviceId = id;\n __f__(\"log\", '连接的设备ID', deviceId, \" at store/BLETools.js:544\");\n getBLEDeviceServices(deviceId); // 获取服务,初始化特征值\n uni.setStorageSync('deviceId', deviceId);\n // uni.setStorageSync('deviceName', name);\n },\n\n fail: function fail(err) {\n __f__(\"log\", '设备连接失败', err, \" at store/BLETools.js:550\");\n isConnecting = false;\n if (auto_connect) {\n if (auto_mac.length > 0) {\n var mac = auto_mac[0];\n createBLEConnection(mac);\n auto_mac.splice(0, 1);\n } else {\n if (autoConnectCallback && typeof autoConnectCallback == 'function') {\n autoConnectCallback();\n }\n }\n } else {\n __f__(\"log\", '设备连接失败', \" at store/BLETools.js:563\");\n uni.hideLoading();\n uni.showToast({\n title: '设备连接失败!' + err.errMsg,\n icon: 'none',\n duration: 2000\n });\n }\n if (typeof closeConnectLoading === 'function') {\n closeConnectLoading();\n }\n },\n complete: function complete() {\n uni.hideLoading();\n }\n });\n }, sameDevice); // 关闭当前蓝牙连接\n __f__(\"log\", '结束连接方法', \" at store/BLETools.js:580\");\n}\n\n// connect step 2\n// 获取服务\nfunction getBLEDeviceServices(deviceId) {\n __f__(\"log\", '我获取服务成功接收到的Id是', deviceId, \" at store/BLETools.js:586\");\n setTimeout(function () {\n uni.getBLEDeviceServices({\n deviceId: deviceId,\n success: function success(res) {\n // console.log(res, '获取蓝牙设备所有服务2');\n // console.log('测试1',res.services[i].uuid, service_uuid.toUpperCase())\n for (var i = 0; i < res.services.length; i++) {\n // console.log('测试2',res.services[i].uuid, service_uuid.toUpperCase())\n // 消息服务\n if (res.services[i].uuid == service_uuid || res.services[i].uuid == service_uuid.toUpperCase()) {\n getBLEDeviceCharacteristics(deviceId, res.services[i].uuid);\n }\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, '获取服务失败', \" at store/BLETools.js:604\");\n }\n });\n }, 6000);\n}\n\n// connect step 3\n// 初始化特征值\nfunction getBLEDeviceCharacteristics(deviceId, serviceId) {\n uni.getBLEDeviceCharacteristics({\n deviceId: deviceId,\n serviceId: serviceId,\n success: function success(res) {\n __f__(\"log\", res, '通知特征值', \" at store/BLETools.js:643\");\n var _loop = function _loop(i) {\n var item = res.characteristics[i];\n var itemUUID = item.uuid.toUpperCase();\n var primaryNotifyUUID = notify_characteristic.toUpperCase();\n var secondaryNotifyUUID = notify_characteristic_2.toUpperCase();\n\n // Check if the characteristic is one of the notification sources\n if (itemUUID === primaryNotifyUUID || itemUUID === secondaryNotifyUUID) {\n if (item.properties.notify || item.properties.indicate) {\n uni.notifyBLECharacteristicValueChange({\n deviceId: deviceId,\n serviceId: serviceId,\n characteristicId: item.uuid,\n state: true,\n success: function success() {\n __f__(\"log\", \"\\u5DF2\\u6210\\u529F\\u76D1\\u542C\\u7279\\u5F81\\u503C: \".concat(item.uuid), \" at store/BLETools.js:660\");\n },\n fail: function fail(err) {\n __f__(\"error\", \"\\u76D1\\u542C\\u7279\\u5F81\\u503C \".concat(item.uuid, \" \\u5931\\u8D25:\"), err, \" at store/BLETools.js:663\");\n }\n });\n }\n }\n if (itemUUID === write_characteristic.toUpperCase()) {\n if (item.properties.write) {}\n }\n };\n for (var i = 0; i < res.characteristics.length; i++) {\n _loop(i);\n }\n },\n fail: function fail(res) {\n __f__(\"error\", 'getBLEDeviceCharacteristics', res, \" at store/BLETools.js:675\");\n }\n });\n // notify的回调函数,操作之前先监听,保证第一时间获取数据\n // 针对不同特征值的回调处理\n uni.onBLECharacteristicValueChange(function (res) {\n var result = ab2hex(res.value);\n\n // 打印来自 notify_characteristic_2 的数据\n if (res.characteristicId.toUpperCase() === notify_characteristic_2.toUpperCase()) {\n __f__(\"log\", \"\\u63A5\\u6536\\u5230\\u6765\\u81EA [notify_characteristic_2] \\u7684\\u539F\\u59CBHex\\u6570\\u636E: \".concat(result), \" at store/BLETools.js:685\");\n if (result.startsWith('fc') && result.endsWith('ff')) {\n var macHex = result.substring(2, result.length - 2);\n var macAddress = macHex.match(/.{1,2}/g).reverse().join(':').toUpperCase();\n __f__(\"log\", \"[notify_characteristic_2] \\u89E3\\u6790\\u540E\\u7684MAC\\u5730\\u5740: \".concat(macAddress), \" at store/BLETools.js:690\");\n if (macCallback && typeof macCallback === 'function') {\n macCallback(macAddress);\n }\n return;\n } else if (result.startsWith('fb') && result.endsWith('ff')) {\n var dataHex = result.substring(2, result.length - 2);\n var batteryHex = dataHex.substring(0, 2);\n var batteryLevel = parseInt(batteryHex, 16);\n lastBatteryLevel = batteryLevel;\n __f__(\"log\", \"[notify_characteristic_2] \\u89E3\\u6790\\u540E\\u7684\\u7535\\u91CF: \".concat(batteryLevel, \"%\"), \" at store/BLETools.js:700\");\n if (batteryCallback && typeof batteryCallback === 'function') {\n batteryCallback(batteryLevel);\n }\n return;\n }\n }\n\n // This is the original logic for the primary notification characteristic.\n // It is now generalized to handle responses from either characteristic if not handled above.\n __f__(\"log\", '通知特征值', result, \" at store/BLETools.js:710\");\n var length = result.length;\n var len = parseInt(splitByLen(result.substr(2, 4), 2).reverse().join(''), 16);\n // console.log(len)\n var checkArrHex = splitByLen(result.substr(0, length - 4), 2);\n // console.log(checkArrHex)\n var checkArr = checkArrHex.map(function (e) {\n return parseInt(e, 16);\n });\n // console.log(checkArr)\n var sendCheckSum = result.substr(-4);\n var checkSum = getCheckSum(checkArr).map(function (e) {\n return e.toString(16).padLeft(2, '0');\n }).join('');\n // console.log(checkSum)\n // console.log(sendCheckSum)\n // console.log(sendCheckSum === checkSum)\n if (sendCheckSum === checkSum) {\n var type = parseInt(result.substr(8, 2), 16);\n // console.log(type)\n // console.log(realtimeType)\n if (realtimeType == type && realtimeCallback && typeof realtimeCallback == 'function') {\n realtimeType = undefined;\n var tempCallback = realtimeCallback;\n realtimeCallback = undefined;\n tempCallback(result);\n // console.log('realtimeType ', realtimeType)\n }\n\n continueExecute();\n } else {\n uni.hideLoading(); // 校验值不对的情况\n continueExecute();\n }\n });\n connectCallback(deviceId);\n}\n\n// 获取当前是否连接上\nfunction getConnected() {\n return connected;\n}\n\n// 设置自动连接的 mac 地址\nfunction setAutoMac(arr) {\n auto_mac_backup = arr;\n auto_connect = true;\n openBluetoothAdapter();\n startAutoConnect();\n}\n\n/**\r\n * 开启全局自动连接\r\n */\nfunction startAutoConnect() {\n auto_connect = true;\n autoConnectTimer = setInterval(function () {\n if (auto_connect) {\n if (!connected) {\n __f__(\"log\", '自动连接扫描 ', isOpen, \" at store/BLETools.js:766\");\n if (isOpen) {} else {\n if (isBleOn) {\n openBluetoothAdapter();\n }\n }\n }\n }\n }, 1000 * 3);\n}\n\n/**\r\n * 关闭全局自动连接\r\n */\nfunction closeAutoConnect() {\n auto_connect = false;\n clearInterval(autoConnectTimer);\n}\n\n/**\r\n * 取消全局自动连接\r\n */\nfunction cancelAutoConnect() {\n auto_connect = false;\n auto_mac = [];\n autoConnectCallback = '';\n clearInterval(autoConnectTimer);\n closeBluetoothAdapter();\n}\n\n// 获取暂存的扫描到的设备数组\nfunction getDevices() {\n if (device) {\n devices.push(device);\n }\n return devices;\n}\n\n// 重置扫描到的设备数组\nfunction resetDevices() {\n devices = [];\n}\n\n// write msg 发送指令\n// msg 为 hexstring 形式\nfunction writeBLECharacteristicValue(characteristicId, msg) {\n if (connected == false) {\n reconnectDevice();\n return;\n }\n var buffer = hexArr2ab(msg);\n waitingForResult = true; //等待通知返回结果。\n var len = buffer.byteLength;\n var arr = [];\n if (len > 20) {\n for (var i = 0, j = 0; i < len; i += 20) {\n var start = j * 20;\n var end = start + 20 > len ? len - start : 20;\n var data = Uint8Array.from(new Uint8Array(buffer, start, end));\n // console.log(data)\n // let tempBuffer = data.buffer.slice(start, end)\n // console.log(tempBuffer)\n arr.push(data.buffer);\n j++;\n }\n stopFlag = false;\n writeData(characteristicId, arr);\n } else {\n stopFlag = false;\n writeData(characteristicId, [buffer]);\n }\n}\nvar stopFlag = false;\nvar timeoutTimer = '';\nvar timeoutCallback = '';\nfunction writeData(characteristicId, buffer) {\n __f__(\"log\", '准备发送', \" at store/BLETools.js:848\");\n clearTimeout(timeoutTimer);\n // console.log(buffer)\n if (stopFlag) {\n return;\n }\n uni.writeBLECharacteristicValue({\n deviceId: deviceId,\n serviceId: service_uuid,\n characteristicId: characteristicId,\n value: buffer[0],\n success: function success(res) {\n if (realtimeCallback) {\n var str = \"\\u5199\\u5165 \".concat(ab2hex(buffer[0]));\n __f__(\"log\", str, \" at store/BLETools.js:862\");\n }\n // 写入一次进度条就前进\n if (writeCallback && typeof writeCallback == 'function') {\n var _str2 = \"\\u5199\\u5165 \".concat(ab2hex(buffer[0]));\n __f__(\"log\", '分包发送了一次', \" at store/BLETools.js:867\");\n writeCallback(_str2);\n }\n if (!stopFlag && buffer.length > 1) {\n writeData(characteristicId, buffer.slice(1));\n } else {\n var time = new Date().getTime();\n // console.log('time ', time)\n timeoutTimer = setTimeout(function () {\n if (timeoutCallback && typeof timeoutCallback == 'function') {\n timeoutCallback();\n }\n }, 2000);\n }\n },\n fail: function fail(res) {\n cmdList = []; // 这里清空指令, 放弃队列中所有指令,为后续新指令的到来做准备\n waitingForResult = false;\n __f__(\"error\", 'write failed ', res, \" at store/BLETools.js:886\");\n uni.showToast({\n title: '请重新连接'\n });\n uni.navigateTo({\n url: '/pages/search/index'\n });\n }\n });\n}\n// 550800019301112f\n// 550800019105118c\n\n//重连设备\nfunction reconnectDevice() {\n reconnectTimes = 0;\n clearInterval(reconnectTimer);\n if (manualDisconnect)\n // 主动断开的不做处理\n return;\n uni.hideLoading();\n uni.showLoading({\n mask: true,\n title: '重连中...'\n });\n reconnect();\n reconnectTimer = setInterval(function () {\n __f__(\"log\", '重连?>>>>>>>', \" at store/BLETools.js:916\");\n reconnect();\n }, 3000); // 7000\n}\n\nfunction reconnect() {\n if (connected)\n //已连接\n {\n reconnectTimes = 0;\n clearInterval(reconnectTimer);\n return;\n }\n if (reconnectTimes >= 2)\n //超时 // 9\n {\n reconnectTimes = 0;\n clearInterval(reconnectTimer);\n uni.hideLoading();\n showModal();\n return;\n } else {\n reconnectTimes += 1;\n if (isOpen) {\n if (!auto_connect) {\n connectNow();\n }\n } else {\n if (isBleOn) {\n openBluetoothAdapter(true);\n }\n }\n }\n}\nfunction connectNow() {\n if (!isConnecting) {\n isConnecting = true;\n\n //监听蓝牙连接状态\n uni.onBLEConnectionStateChange(listener);\n uni.createBLEConnection({\n deviceId: deviceId,\n timeout: 3000,\n success: function success(res) {\n uni.hideLoading();\n device = devices.find(function (item) {\n return item.deviceId == deviceId;\n });\n isConnecting = false;\n connected = true;\n reconnectTimes = 0;\n clearInterval(reconnectTimer); //结束循环\n getBLEDeviceServices(deviceId);\n },\n fail: function fail(res) {\n isConnecting = false;\n }\n });\n }\n}\n\n// 获取当前状态\n// 用于下拉刷新\nfunction getBluetoothAdapterState() {\n uni.getBluetoothAdapterState({\n success: function success(res) {\n if (!res.available) {\n openBluetoothAdapter();\n } else {\n uni.stopBluetoothDevicesDiscovery({\n complete: function complete() {\n startBluetoothDevicesDiscovery();\n }\n });\n }\n },\n fail: function fail(err) {}\n });\n}\n\n// 断开蓝牙设备连接\nfunction closeBLEConnection(close, callback, sameDevice) {\n try {\n // console.log('123', close)\n if (close) {\n manualDisconnect = true;\n }\n __f__(\"log\", '123', deviceId, \" at store/BLETools.js:1005\");\n if (deviceId) {\n uni.closeBLEConnection({\n deviceId: deviceId,\n success: function success(res) {\n handleCloseBle(close, callback, sameDevice);\n },\n fail: function fail(err) {\n if (err.errCode == 10006) {\n handleCloseBle(close, callback, sameDevice);\n }\n }\n });\n } else {\n // console.log('123', typeof callback == 'function')\n if (callback && typeof callback == 'function') {\n callback();\n }\n }\n } catch (error) {\n uni.hideLoading();\n __f__(\"log\", error, \" at store/BLETools.js:1026\");\n }\n}\nfunction handleCloseBle(close, callback, sameDevice) {\n if (!sameDevice) {\n deviceId = '';\n }\n connected = false;\n lastBatteryLevel = 'N/A';\n // 手动断开连接处理\n if (close) {\n closeBluetoothAdapter(true);\n }\n if (callback && typeof callback == 'function') {\n callback();\n }\n}\n\n// 关闭蓝牙扫描\nfunction stopBluetoothDevicesDiscovery() {\n isConnecting = false;\n uni.stopBluetoothDevicesDiscovery({\n success: function success(res) {}\n });\n}\nvar stopBlue = stopBluetoothDevicesDiscovery;\n\n// 关闭蓝牙适配器\nexports.stopBlue = stopBlue;\nfunction closeBluetoothAdapter(doCallback) {\n uni.stopBluetoothDevicesDiscovery({\n success: function success(result) {\n uni.closeBluetoothAdapter({\n success: function success(res) {\n // 手动断开连接处理\n }\n });\n }\n });\n}\n\n// 蓝牙断开 弹窗提示 (重连不可连上)\nfunction showModal() {\n deviceId = '';\n devices = [];\n // auto_connect = true // 开启全局自动连接\n openBluetoothAdapter(true);\n // startAutoConnect()\n uni.showModal({\n content: '设备重连失败,已断开连接!',\n showCancel: false,\n success: function success() {\n uni.reLaunch({\n url: '/pages/search/index'\n });\n }\n });\n}\n\n// #################################################\n// #\n// # Utility Functions\n// #\n// #################################################\n\n/////////////////// 工具函数 /////////////////////\nfunction splitByLen(str, len) {\n var length = str.length;\n var newArr = [];\n for (var i = 0; i < length; i += len) {\n newArr.push(str.substr(i, len));\n }\n return newArr;\n}\nfunction arrayBufferToString(arr) {\n if (typeof arr === 'string') {\n return arr;\n }\n var dataview = new DataView(arr);\n var ints = new Uint8Array(arr.byteLength);\n for (var i = 0; i < ints.length; i++) {\n ints[i] = dataview.getUint8(i);\n }\n arr = ints;\n var str = '',\n _arr = arr;\n for (var i = 0; i < _arr.length; i++) {\n var one = _arr[i].toString(2),\n v = one.match(/^1+?(?=0)/);\n if (v && one.length == 8) {\n var bytesLength = v[0].length;\n var store = _arr[i].toString(2).slice(7 - bytesLength);\n for (var st = 1; st < bytesLength; st++) {\n store += _arr[st + i].toString(2).slice(2);\n }\n str += String.fromCharCode(parseInt(store, 2));\n i += bytesLength - 1;\n } else {\n str += String.fromCharCode(_arr[i]);\n }\n }\n return str;\n}\nfunction inArray(arr, key, val) {\n for (var i = 0; i < arr.length; i++) {\n if (arr[i][key] === val) {\n return i;\n }\n }\n return -1;\n}\n\n// 字符串转为ArrayBuffer对象,参数为字符串,注意这里的字符串为非hex字符串\nfunction stringToArrayBuffer(str) {\n var bytes = new Array();\n var len, c;\n len = str.length;\n for (var i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n if (c >= 0x010000 && c <= 0x10FFFF) {\n bytes.push(c >> 18 & 0x07 | 0xF0);\n bytes.push(c >> 12 & 0x3F | 0x80);\n bytes.push(c >> 6 & 0x3F | 0x80);\n bytes.push(c & 0x3F | 0x80);\n } else if (c >= 0x000800 && c <= 0x00FFFF) {\n bytes.push(c >> 12 & 0x0F | 0xE0);\n bytes.push(c >> 6 & 0x3F | 0x80);\n bytes.push(c & 0x3F | 0x80);\n } else if (c >= 0x000080 && c <= 0x0007FF) {\n bytes.push(c >> 6 & 0x1F | 0xC0);\n bytes.push(c & 0x3F | 0x80);\n } else {\n bytes.push(c & 0xFF);\n }\n }\n var array = new Int8Array(bytes.length);\n for (var i in bytes) {\n array[i] = bytes[i];\n }\n return array.buffer;\n}\nfunction hexArr2ab(hexArr) {\n var buffer = new ArrayBuffer(hexArr.length);\n var dataView = new DataView(buffer);\n for (var i = 0; i < hexArr.length; i++) {\n dataView.setUint8(i, hexArr[i]);\n }\n return buffer;\n}\nfunction hexStr2ab(hexStr) {\n var buffer = new ArrayBuffer(hexStr.length / 2);\n var dataView = new DataView(buffer);\n for (var i = 0, j = 0; i < hexStr.length; i += 2, j++) {\n var _str = \"0x\" + hexStr.substr(i, 2);\n dataView.setUint8(j, parseInt(_str, 16));\n }\n return buffer;\n}\n// ArrayBuffer转16进度字符串示例\nfunction ab2hex(buffer) {\n var hexArr = Array.prototype.map.call(new Uint8Array(buffer), function (bit) {\n return ('00' + bit.toString(16)).slice(-2);\n });\n return hexArr.join('');\n}\nfunction hexStr2HexArr(hexStr) {\n var a = [];\n for (var i = 0; i < hexStr.length; i += 2) {\n var _str = \"0x\" + hexStr.substr(i, 2);\n a.push(parseInt(_str, 16));\n }\n return a;\n}\nfunction hexArr2HexStr(hexArr) {\n var arr = [];\n hexArr.forEach(function (item) {\n arr.push(item.toString(16).padLeft(2, '0'));\n });\n return arr.join('');\n}\n\n// 10进制转16进制补0\nfunction dec2hex(dec, len) {\n //10进制转16进制补0\n var hex = \"\";\n while (dec) {\n var last = dec & 15;\n hex = String.fromCharCode((last > 9 ? 55 : 48) + last) + hex;\n dec >>= 4;\n }\n if (len) {\n while (hex.length < len) {\n hex = '0' + hex;\n }\n }\n return hex;\n}\n// 10进制转16进制补0\nfunction string_hex2int(hex) {\n //16进制转10进制\n var len = hex.length,\n a = new Array(len),\n code;\n for (var i = 0; i < len; i++) {\n code = hex.charCodeAt(i);\n if (48 <= code && code < 58) {\n code -= 48;\n } else {\n code = (code & 0xdf) - 65 + 10;\n }\n a[i] = code;\n }\n return a.reduce(function (acc, c) {\n acc = 16 * acc + c;\n return acc;\n }, 0);\n}\n\n//校验和\nfunction checkSumResult(hexStr, len)\n//返回校验和的hexstring\n{\n var abData = hexStr2HexArr(hexStr);\n var ucI = 0,\n ucJ = 0;\n var uiCrcValue = 0xffff;\n for (ucI = 0; ucI < len; ucI++) {\n uiCrcValue = uiCrcValue ^ abData[ucI] & 0xff;\n for (ucJ = 0; ucJ < 8; ucJ++) {\n if ((uiCrcValue & 0x0001) == 1) {\n uiCrcValue = uiCrcValue >> 1 ^ 0x8408;\n } else {\n uiCrcValue = uiCrcValue >> 1;\n }\n }\n }\n //校验和为uiCrcValue 的高低位互换\n var hexStr = dec2hex(uiCrcValue, 4);\n var resultStr = hexStr.substr(2, 2) + hexStr.substr(0, 2);\n return resultStr;\n}\nfunction Uint8ToStr(arr) {\n for (var i = 0, str = ''; i < arr.length; i++) {\n str += String.fromCharCode(arr[i]);\n }\n return str;\n}\nfunction strToUint8(str) {\n for (var i = 0, arr = []; i < str.length; i++) {\n arr.push(str.charCodeAt(i));\n }\n return new Uint8Array(arr);\n}\nfunction getDiscoveredDevices() {\n return (0, _toConsumableArray2.default)(devices);\n}\n\n// 手动断开蓝牙\nfunction manualDisconnectDevice() {\n closeBLEConnection(true);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 19)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvQkxFVG9vbHMuanMiXSwibmFtZXMiOlsiZGV2aWNlcyIsImRldmljZSIsImRldmljZUlkIiwid2FpdGluZ0ZvclJlc3VsdCIsImlzQ29ubmVjdGluZyIsImNvbm5lY3RlZCIsInNlcnZpY2VfdXVpZCIsIndyaXRlX2NoYXJhY3RlcmlzdGljIiwibm90aWZ5X2NoYXJhY3RlcmlzdGljIiwibm90aWZ5X2NoYXJhY3RlcmlzdGljXzIiLCJydWxlMSIsInJ1bGUyIiwibWFudWFsRGlzY29ubmVjdCIsImNvbm5lY3RDYWxsYmFjayIsInNjYW5DYWxsYmFjayIsImRpc2Nvbm5lY3RDYWxsYmFjayIsIndyaXRlQ2FsbGJhY2siLCJyZWFsdGltZUNhbGxiYWNrIiwiYmF0dGVyeUNhbGxiYWNrIiwibWFjQ2FsbGJhY2siLCJsYXN0QmF0dGVyeUxldmVsIiwicmVhbHRpbWVUeXBlIiwicmVjb25uZWN0VGltZXMiLCJyZWNvbm5lY3RUaW1lciIsImNtZExpc3QiLCJpc09wZW4iLCJhdXRvX2Nvbm5lY3QiLCJhdXRvX21hYyIsImF1dG9fbWFjX2JhY2t1cCIsImFmdGVyX3RpbWVyIiwiYXV0b0Nvbm5lY3RDYWxsYmFjayIsImF1dG9Db25uZWN0VGltZXIiLCJpc0JsZU9uIiwibGlzdGVuZXIiLCJyZXMiLCJ1bmkiLCJnZXRCbHVldG9vdGhBZGFwdGVyU3RhdGUiLCJzdWNjZXNzIiwiYXZhaWxhYmxlIiwicmVjb25uZWN0RGV2aWNlIiwiZmFpbCIsImVyciIsIlN0cmluZyIsInByb3RvdHlwZSIsInBhZExlZnQiLCJsZW4iLCJjaGFyIiwic3RyIiwiQXJyYXkiLCJsZW5ndGgiLCJqb2luIiwidHJhbnNGbG9hdCIsImluZGV4T2YiLCJwYXJzZUZsb2F0IiwidG9GaXhlZCIsIm9uQmx1ZXRvb3RoQWRhcHRlclN0YXRlQ2hhbmdlIiwiZ2V0Q2hlY2tTdW0iLCJjbWQiLCJjaGVja1N1bSIsImdldENyYzE2Iiwic3BsaXRCeUxlbiIsInJldmVyc2UiLCJtYXAiLCJlIiwicGFyc2VJbnQiLCJjcmMiLCJpIiwiaiIsInRvU3RyaW5nIiwiaW5pdEJsdWUiLCJvbkJsdWV0b290aERldmljZUZvdW5kIiwiZm9yRWFjaCIsIm5hbWUiLCJmb3VuZERldmljZXMiLCJpZHgiLCJpbkFycmF5IiwicHVzaCIsImNyZWF0ZUJMRUNvbm5lY3Rpb24iLCJzZXRUaW1lb3V0IiwidmFsaWQiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJpdGVtIiwic29tZSIsImluZGV4Iiwic3BsaWNlIiwic2hvd0xvYWRpbmciLCJ0aXRsZSIsIm1hc2siLCJtYWMiLCJjbGVhclRpbWVvdXQiLCJzZXRDYWxsYmFjayIsInNldFNjYW5DYWxsYmFjayIsInNldERpc2Nvbm5lY3RDYWxsYmFjayIsInNldFdyaXRlQ2FsbGJhY2siLCJzZXRCYXR0ZXJ5Q2FsbGJhY2siLCJzZXRNYWNDYWxsYmFjayIsImdldERldmljZUlkIiwiZ2V0Q29ubmVjdGVkRGV2aWNlIiwic2V0UmVhbHRpbWVDYWxsYmFjayIsInR5cGUiLCJjb252ZXJzaW9uIiwibnVtIiwicmVzdWx0IiwidGVtcCIsInNsaWNlIiwic2VuZExpZ2h0VHlwZSIsInN0cjEiLCJhcnIiLCJleGVjdXRlQ21kIiwic2V0TGlnaHQiLCJzZW5kSW1nIiwiZGF0YUFyciIsIndyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSIsImNvbnRpbnVlRXhlY3V0ZSIsIm9wZW5CbHVldG9vdGhBZGFwdGVyIiwic2VhcmNoIiwiY2FsbGJhY2siLCJvcGVyYXRpb24iLCJvcGVuQmxlQWRhcHRlciIsInN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSIsImNsb3NlQmx1ZXRvb3RoQWRhcHRlciIsImNvbXBsZXRlIiwiZXJyQ29kZSIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwib3B0aW9uIiwiYWxsb3dEdXBsaWNhdGVzS2V5Iiwic2hvd1RvYXN0IiwiaWNvbiIsInNlcnZpY2VzIiwiaGV4U3RyaW5nIiwiaWQiLCJhZHZlcnRpc0RhdGEiLCJzYW1lRGV2aWNlIiwiY2xvc2VDb25uZWN0TG9hZGluZyIsImNsb3NlQkxFQ29ubmVjdGlvbiIsIm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlIiwidGltZW91dCIsImNsb3NlQXV0b0Nvbm5lY3QiLCJzdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSIsImZpbmQiLCJnZXRCTEVEZXZpY2VTZXJ2aWNlcyIsInNldFN0b3JhZ2VTeW5jIiwiaGlkZUxvYWRpbmciLCJlcnJNc2ciLCJkdXJhdGlvbiIsInV1aWQiLCJ0b1VwcGVyQ2FzZSIsImdldEJMRURldmljZUNoYXJhY3RlcmlzdGljcyIsInNlcnZpY2VJZCIsImNoYXJhY3RlcmlzdGljcyIsIml0ZW1VVUlEIiwicHJpbWFyeU5vdGlmeVVVSUQiLCJzZWNvbmRhcnlOb3RpZnlVVUlEIiwicHJvcGVydGllcyIsIm5vdGlmeSIsImluZGljYXRlIiwibm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZUNoYW5nZSIsImNoYXJhY3RlcmlzdGljSWQiLCJzdGF0ZSIsIndyaXRlIiwib25CTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlIiwiYWIyaGV4IiwidmFsdWUiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJtYWNIZXgiLCJzdWJzdHJpbmciLCJtYWNBZGRyZXNzIiwibWF0Y2giLCJkYXRhSGV4IiwiYmF0dGVyeUhleCIsImJhdHRlcnlMZXZlbCIsInN1YnN0ciIsImNoZWNrQXJySGV4IiwiY2hlY2tBcnIiLCJzZW5kQ2hlY2tTdW0iLCJ1bmRlZmluZWQiLCJ0ZW1wQ2FsbGJhY2siLCJnZXRDb25uZWN0ZWQiLCJzZXRBdXRvTWFjIiwic3RhcnRBdXRvQ29ubmVjdCIsInNldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsImNhbmNlbEF1dG9Db25uZWN0IiwiZ2V0RGV2aWNlcyIsInJlc2V0RGV2aWNlcyIsIm1zZyIsImJ1ZmZlciIsImhleEFycjJhYiIsImJ5dGVMZW5ndGgiLCJzdGFydCIsImVuZCIsImRhdGEiLCJVaW50OEFycmF5IiwiZnJvbSIsInN0b3BGbGFnIiwid3JpdGVEYXRhIiwidGltZW91dFRpbWVyIiwidGltZW91dENhbGxiYWNrIiwidGltZSIsIkRhdGUiLCJnZXRUaW1lIiwibmF2aWdhdGVUbyIsInVybCIsInJlY29ubmVjdCIsImNvbm5lY3ROb3ciLCJjbG9zZSIsImhhbmRsZUNsb3NlQmxlIiwiZXJyb3IiLCJzdG9wQmx1ZSIsImRvQ2FsbGJhY2siLCJyZUxhdW5jaCIsIm5ld0FyciIsImFycmF5QnVmZmVyVG9TdHJpbmciLCJkYXRhdmlldyIsIkRhdGFWaWV3IiwiaW50cyIsImdldFVpbnQ4IiwiX2FyciIsIm9uZSIsInYiLCJieXRlc0xlbmd0aCIsInN0b3JlIiwic3QiLCJmcm9tQ2hhckNvZGUiLCJrZXkiLCJ2YWwiLCJzdHJpbmdUb0FycmF5QnVmZmVyIiwiYnl0ZXMiLCJjIiwiY2hhckNvZGVBdCIsImFycmF5IiwiSW50OEFycmF5IiwiaGV4QXJyIiwiQXJyYXlCdWZmZXIiLCJkYXRhVmlldyIsInNldFVpbnQ4IiwiaGV4U3RyMmFiIiwiaGV4U3RyIiwiX3N0ciIsImNhbGwiLCJiaXQiLCJoZXhTdHIySGV4QXJyIiwiYSIsImhleEFycjJIZXhTdHIiLCJkZWMyaGV4IiwiZGVjIiwiaGV4IiwibGFzdCIsInN0cmluZ19oZXgyaW50IiwiY29kZSIsInJlZHVjZSIsImFjYyIsImNoZWNrU3VtUmVzdWx0IiwiYWJEYXRhIiwidWNJIiwidWNKIiwidWlDcmNWYWx1ZSIsInJlc3VsdFN0ciIsIlVpbnQ4VG9TdHIiLCJzdHJUb1VpbnQ4IiwiZ2V0RGlzY292ZXJlZERldmljZXMiLCJtYW51YWxEaXNjb25uZWN0RGV2aWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0EsSUFBSUEsT0FBTyxHQUFHLEVBQUU7O0FBRWhCO0FBQ0EsSUFBSUMsTUFBTSxHQUFHLEVBQUU7O0FBRWY7QUFDQSxJQUFJQyxRQUFRLEdBQUcsRUFBRTs7QUFHakI7QUFDQSxJQUFJQyxnQkFBZ0IsR0FB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QUMsQ0FBQztFQUM1QjtFQUNBLE9BQU8sSUFBSW1JLFVBQVUsQ0FBQ3hGLEdBQUcsQ0FBQztBQUMzQjtBQUVPLFNBQVM0SixvQkFBb0IsR0FBRztFQUN0Qyx3Q0FBV3pRLE9BQU87QUFDbkI7O0FBRUE7QUFDTyxTQUFTMFEsc0JBQXNCLEdBQUc7RUFDeENoSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7QUFDekIsQyIsImZpbGUiOiIyMTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDok53niZnorr7lpIfnu5Pmnpzpm4ZcclxubGV0IGRldmljZXMgPSBbXVxyXG5cclxuLy8g5b2T5YmN6L+e5o6l55qE6JOd54mZ6K6+5aSHXHJcbmxldCBkZXZpY2UgPSAnJ1xyXG5cclxuLy8g6JOd54mZ6K6+5aSHaWRcclxubGV0IGRldmljZUlkID0gJydcclxuXHJcblxyXG4vLyDlhpnkuobmlbDmja7nrYnlvoXpgJrnn6Xnu5Pmnpzov5Tlm55cclxubGV0IHdhaXRpbmdGb3JSZXN1bHQgPSBmYWxzZVxyXG5cclxuLy8g6L+e5o6l54q25oCBXHJcbmxldCBpc0Nvbm5lY3RpbmcgPSBmYWxzZVxyXG5sZXQgY29ubmVjdGVkID0gZmFsc2VcclxuXHJcbi8vIOacjeWKoSB1dWlkIOWSjCDnibnlvoHlgLwgdXVpZFxyXG4vL+ato+W8j1xyXG4vL+a1i+ivlVxyXG5cclxubGV0IHNlcnZpY2VfdXVpZCA9IFwiMDAwMEFFMzAtMDAwMC0xMDAwLTgwMDAtMDA4MDVGOUIzNEZCXCJcclxubGV0IHdyaXRlX2NoYXJhY3RlcmlzdGljID0gXCIwMDAwQUUwMy0wMDAwLTEwMDAtODAwMC0wMDgwNUY5QjM0RkJcIlxyXG5sZXQgbm90aWZ5X2NoYXJhY3RlcmlzdGljID0gXCIwMDAwQUUwMy0wMDAwLTEwMDAtODAwMC0wMDgwNUY5QjM0RkJcIlxyXG5sZXQgbm90aWZ5X2NoYXJhY3RlcmlzdGljXzIgPSBcIjAwMDBBRTAyLTAwMDAtMTAwMC04MDAwLTAwODA1RjlCMzRGQlwiLy/ojrflj5borr7lpIfnlLXph4/lkozorr7lpIdtYWPlnLDlnYBcclxuXHJcbi8vIOWRveWQjeinhOWImVxyXG5sZXQgcnVsZTEgPSBcIlwiIC8vIEFuZHJvaWRcclxubGV0IHJ1bGUyID0gXCJcIiAvLyBpb3NcclxuXHJcbi8vIOaJi+WKqOaWreW8gFxyXG52YXIgbWFudWFsRGlzY29ubmVjdCA9IHRydWVcclxuXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gI1xyXG4vLyAjICAgIENhbGxiYWNrIERlZmluaXRpb25zXHJcbi8vICNcclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuLy8g5Zue6LCD5LqL5Lu2XHJcbmxldCBjb25uZWN0Q2FsbGJhY2sgPSAnJyAvLyDov57mjqXmiJDlip/lm57osINcclxubGV0IHNjYW5DYWxsYmFjayA9ICcnIC8vIOaQnOe0ouWIsOiTneeJmeiuvuWkh+Wbnuiwg1xyXG5sZXQgZGlzY29ubmVjdENhbGxiYWNrID0gJycgLy8g6K6+5aSH5pat5byA6L+e5o6l5Zue6LCDXHJcbmxldCB3cml0ZUNhbGxiYWNrID0gJycgLy8g5YaZ5oiQ5Yqf5Zue6LCDXHJcbi8vIOiHquWumuS5iSDkuJrliqHnm7jlhbMg5Zue6LCD5LqL5Lu2XHJcbmxldCByZWFsdGltZUNhbGxiYWNrID0gJycgLy8g5a6e5pe25Y+R6YCB5oyH5Luk55qE5Zue6LCDXHJcbmxldCBiYXR0ZXJ5Q2FsbGJhY2sgPSAnJyAvLyDnlLXph4/lm57osINcclxubGV0IG1hY0NhbGxiYWNrID0gJycgLy8gTUFD5Zyw5Z2A5Zue6LCDXHJcbmxldCBsYXN0QmF0dGVyeUxldmVsID0gJ04vQSc7XHJcblxyXG4vLyDoh6rlrprkuYkg5Lia5Yqh55u45YWzIOagh+ivhlxyXG5sZXQgcmVhbHRpbWVUeXBlID0gJycgLy8g5a6e5pe25Y+R6YCB5oyH5Luk55qE5qCH6K+GXHJcblxyXG5cclxuLy8g6YeN6L+e55u45YWzXHJcbmxldCByZWNvbm5lY3RUaW1lcyA9IDAgLy8g6YeN6L+e5qyh5pWwXHJcbmxldCByZWNvbm5lY3RUaW1lciAvLyDph43ov57orqHml7blmahcclxuXHJcbi8vIOWboOS4uuacieW/g+i3s+iHquWKqOiuoeaXtuWZqOWPkemAge+8jOS4jeaYr+WFqOaYr+eUqOaIt+aJi+WKqOeahOaTjeS9nO+8jOeUqOaIt+eahOaJi+WKqOaTjeS9nOiuvuWumuS4uuS4gOS4quaTjeS9nOWQjuaJjeiDveaTjeS9nOS4i+S4gOS4qu+8jOS9huacieiHquWKqOW/g+i3s+WPkemAgeeahOivne+8jOWPr+iDveS8muWHuueOsOWPkemAgeW/g+i3s+aXtu+8jFxyXG4vLyDnlKjmiLfkuZ/mraPlpb3mk43kvZzkuobvvIzpgqPov5nml7blj6/og73kvJrlh7rnjrDvvIzlkIzml7blhpnkuKTmnaHmjIfku6Tmg4XlhrXvvIzljbPmsqHmlLbliLDkuIrkuIDmnaHnmoTlm57lpI3lsLHlj5HpgIHkuobkuIvkuIDmnaHmjIfku6TvvIznjrDnlKjmlbDnu4TmmoLlrZhcclxubGV0IGNtZExpc3QgPSBbXSAvLyDnnIvov5nph4zvvIHvvIHvvIEg546w5Zyo5rKh5pyJ5b+D6Lez77yM5Y+q5pyJ55So5oi355qE5pON5L2c77yM56Gu5L+d55So5oi355qE5pON5L2c6YO95piv5pyJ5Zue5aSN55qE77yM5bm25LiU5Zyo6Zif5YiX5YaF77yM562J5b6F5YmN5LiA5p2h5omn6KGM5a6M5omN5omn6KGM5LiL5LiA5p2hXHJcblxyXG4vLyDlvZPliY3ok53niZnpgILphY3lmajmmK/lkKbmiZPlvIDnmoTnirbmgIFcclxubGV0IGlzT3BlbiA9IGZhbHNlXHJcblxyXG4vLyDoh6rliqjov57mjqVcclxubGV0IGF1dG9fY29ubmVjdCA9IGZhbHNlXHJcblxyXG4vLyDlh4blpIfljrvoh6rliqjov57mjqXnmoQgZGV2aWNlSWRcclxubGV0IGF1dG9fbWFjID0gW11cclxubGV0IGF1dG9fbWFjX2JhY2t1cCA9IFtdIC8vIOWkh+S7vVxyXG5cclxuLy8g5omr5o+P5Yiw6K6+5aSH5ZCO77yM5YaN562J5b6F5Liq5Yeg56eS6K6h5pe25ZmoXHJcbmxldCBhZnRlcl90aW1lciA9ICcnXHJcblxyXG4vLyDoh6rliqjov57mjqXlm57osINcclxubGV0IGF1dG9Db25uZWN0Q2FsbGJhY2sgPSAnJ1xyXG5cclxuLy8g6Ieq5Yqo6L+e5o6l5qOA5rWL6K6h5pe25ZmoXHJcbmxldCBhdXRvQ29ubmVjdFRpbWVyID0gJydcclxuXHJcblxyXG4vKipcclxuICog5omL5py66JOd54mZ5piv5ZCm5byA5ZCv5LqGXHJcbiAqL1xyXG5sZXQgaXNCbGVPbiA9IGZhbHNlXHJcblxyXG5cclxuXHJcbmxldCBsaXN0ZW5lciA9IGZ1bmN0aW9uKHJlcykge1xyXG5cdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0Ly8g6K+l5pa55rOV5Zue6LCD5Lit5Y+v5Lul55So5LqO5aSE55CG6L+e5o6l5oSP5aSW5pat5byA562J5byC5bi45oOF5Ya1XHJcblx0aWYgKCFyZXMuY29ubmVjdGVkKSB7XHJcblx0XHRkZXZpY2UgPSAnJ1xyXG5cdFx0Y21kTGlzdCA9IFtdIC8vIOi/memHjOa4heepuuaMh+S7pFxyXG5cdFx0aXNDb25uZWN0aW5nID0gZmFsc2VcclxuXHRcdGNvbm5lY3RlZCA9IGZhbHNlXHJcblx0XHRsYXN0QmF0dGVyeUxldmVsID0gJ04vQSc7XHJcblx0XHRpZiAoZGlzY29ubmVjdENhbGxiYWNrICYmIHR5cGVvZiBkaXNjb25uZWN0Q2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkaXNjb25uZWN0Q2FsbGJhY2soKVxyXG5cdFx0fVxyXG5cdFx0dW5pLmdldEJsdWV0b290aEFkYXB0ZXJTdGF0ZSh7XHJcblx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRpZiAoIXJlcy5hdmFpbGFibGUpIHtcclxuXHRcdFx0XHRcdGlzT3BlbiA9IGZhbHNlXHJcblx0XHRcdFx0XHRhdXRvX2Nvbm5lY3QgPSB0cnVlXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJlY29ubmVjdERldmljZSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdGZhaWw6IChlcnIpID0+IHt9XHJcblx0XHR9KVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8vIOWIneWni+WMluaLk+WxleWHveaVsFxyXG5TdHJpbmcucHJvdG90eXBlLnBhZExlZnQgPSBmdW5jdGlvbihsZW4sIGNoYXIpIHtcclxuXHRsZXQgc3RyID0gdGhpcztcclxuXHRyZXR1cm4gbmV3IEFycmF5KGxlbiAtIHN0ci5sZW5ndGggKyAxKS5qb2luKGNoYXIgfHwgJycpICsgc3RyXHJcbn1cclxuU3RyaW5nLnByb3RvdHlwZS50cmFuc0Zsb2F0ID0gZnVuY3Rpb24oKSB7XHJcblx0bGV0IHN0ciA9IHRoaXM7XHJcblx0cmV0dXJuIHN0ci5pbmRleE9mKCcuJykgIT0gLTEgPyBwYXJzZUZsb2F0KHN0cikudG9GaXhlZCgxKSA6IHN0clxyXG59XHJcblxyXG4vLyAvL3VuaVxyXG51bmkub25CbHVldG9vdGhBZGFwdGVyU3RhdGVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XHJcblx0aWYgKCFyZXMuYXZhaWxhYmxlKSB7XHJcblx0XHRpc09wZW4gPSBmYWxzZVxyXG5cdFx0aXNCbGVPbiA9IGZhbHNlXHJcblx0fSBlbHNlIHtcclxuXHRcdGlzQmxlT24gPSB0cnVlXHJcblx0fVxyXG59KVxyXG5cclxuXHJcblxyXG5cclxuLy8g6I635Y+WICDmoKHpqoxcclxuZnVuY3Rpb24gZ2V0Q2hlY2tTdW0oY21kKSB7XHJcblx0Ly8gY29uc29sZS5sb2coY21kLCAn5oiR5pivY21kJyk7XHJcblx0bGV0IGNoZWNrU3VtID0gZ2V0Q3JjMTYoY21kKTtcclxuXHQvLyBjb25zb2xlLmxvZyhjaGVja1N1bSwgJ+aIkeaYr2NoZWNrU3VtJyk7XHJcblx0Ly8gY29uc29sZS5sb2coc3BsaXRCeUxlbihjaGVja1N1bSwgMikucmV2ZXJzZSgpLm1hcChlID0+IHBhcnNlSW50KGUsIDE2KSksICd3b3NoaSAnKTtcclxuXHRyZXR1cm4gc3BsaXRCeUxlbihjaGVja1N1bSwgMikucmV2ZXJzZSgpLm1hcChlID0+IHBhcnNlSW50KGUsIDE2KSlcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q3JjMTYoY21kKSB7XHJcblx0bGV0IGNyYyA9IDB4ZmZmZjtcclxuXHRsZXQgbGVuID0gY21kLmxlbmd0aDtcclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcblx0XHRjcmMgPSBjcmMgXiAoY21kW2ldICYgMHhmZilcclxuXHRcdGZvciAobGV0IGogPSAwOyBqIDwgODsgaisrKSB7XHJcblx0XHRcdGlmICgoY3JjICYgMHgwMDAxKSA9PSAxKSB7XHJcblx0XHRcdFx0Y3JjID4+PSAxXHJcblx0XHRcdFx0Y3JjIF49IDB4QTAwMVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNyYyA+Pj0gMVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC8vIGNvbnNvbGUubG9nKGNyYy50b1N0cmluZygxNikucGFkTGVmdCg0LCAnMCcpLCAnMDEyMTQ1NDg3OCcpO1xyXG5cdHJldHVybiBjcmMudG9TdHJpbmcoMTYpLnBhZExlZnQoNCwgJzAnKVxyXG59XHJcblxyXG5cclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyAjXHJcbi8vICMgICAgTW9kdWxlIFNldHVwICYgQ29uZmlndXJhdGlvblxyXG4vLyAjXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbi8vIOWIneWni+WMluiTneeJmeaooeWdl1xyXG5leHBvcnQgZnVuY3Rpb24gaW5pdEJsdWUoKSB7XHJcblx0dW5pLm9uQmx1ZXRvb3RoRGV2aWNlRm91bmQoKHJlcykgPT4ge1xyXG5cdFx0cmVzLmRldmljZXMuZm9yRWFjaChkZXZpY2UgPT4ge1xyXG5cdFx0XHQvLyDov4fmu6TmjonmsqHmnInlkI3lrZfnmoTorr7lpIdcclxuXHRcdFx0aWYgKCFkZXZpY2UubmFtZSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgZm91bmREZXZpY2VzID0gZGV2aWNlc1xyXG5cdFx0XHRjb25zdCBpZHggPSBpbkFycmF5KGZvdW5kRGV2aWNlcywgJ2RldmljZUlkJywgZGV2aWNlLmRldmljZUlkKVxyXG5cdFx0XHRpZiAoaWR4ID09PSAtMSkge1xyXG5cdFx0XHRcdGRldmljZXMucHVzaChkZXZpY2UpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZGV2aWNlc1tpZHhdID0gZGV2aWNlXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEFsd2F5cyBub3RpZnkgdGhlIFVJIG9mIGFueSBmb3VuZCBkZXZpY2VcclxuXHRcdFx0aWYgKHNjYW5DYWxsYmFjayAmJiB0eXBlb2Ygc2NhbkNhbGxiYWNrID09IFwiZnVuY3Rpb25cIikge1xyXG5cdFx0XHRcdHNjYW5DYWxsYmFjaygpIC8vIOafpeaJvue7k+aenOmbhuWbnuiwg1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnYXV0b19jb25uZWN0OicsIGF1dG9fY29ubmVjdCk7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdpc0Nvbm5lY3Rpbmc6JywgaXNDb25uZWN0aW5nKTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2RldmljZUlkOicsIGRldmljZUlkKTtcclxuXHRcdFx0aWYgKGF1dG9fY29ubmVjdCAmJiAhaXNDb25uZWN0aW5nICYmIGRldmljZS5kZXZpY2VJZCA9PSBkZXZpY2VJZCkge1xyXG5cdFx0XHRcdGlzQ29ubmVjdGluZyA9IHRydWVcclxuXHRcdFx0XHRjcmVhdGVCTEVDb25uZWN0aW9uKGRldmljZUlkLCB0cnVlKTtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoYXV0b19jb25uZWN0KSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJzExMTExMTEwMDAwMDAwMDAwMDAwMDAwMC8vLy8vLy8vLy8vLy8vJyk7XHJcblx0XHRcdFx0aWYgKCFhZnRlcl90aW1lcikge1xyXG5cdFx0XHRcdFx0YWZ0ZXJfdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0bGV0IHZhbGlkID0gW11cclxuXHRcdFx0XHRcdFx0YXV0b19tYWMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGF1dG9fbWFjX2JhY2t1cCkpXHJcblx0XHRcdFx0XHRcdGF1dG9fbWFjLmZvckVhY2goaXRlbSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dmFsaWQucHVzaChkZXZpY2VzLnNvbWUoZSA9PiBlLmRldmljZUlkID09IGl0ZW0pKVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR2YWxpZC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICghaXRlbSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0YXV0b19tYWMuc3BsaWNlKGluZGV4LCAxKVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3ZhbGlkIG1hYyAnLCBhdXRvX21hYylcclxuXHRcdFx0XHRcdFx0aWYgKGF1dG9fbWFjLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfoh6rliqjov57mjqXkuK0uLi4nLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWFzazogdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0bGV0IG1hYyA9IGF1dG9fbWFjWzBdXHJcblx0XHRcdFx0XHRcdFx0Y3JlYXRlQkxFQ29ubmVjdGlvbihtYWMpXHJcblx0XHRcdFx0XHRcdFx0YXV0b19tYWMuc3BsaWNlKDAsIDEpXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7fVxyXG5cdFx0XHRcdFx0XHRjbGVhclRpbWVvdXQoYWZ0ZXJfdGltZXIpXHJcblx0XHRcdFx0XHRcdGFmdGVyX3RpbWVyID0gJydcclxuXHRcdFx0XHRcdH0sIDEwMDAgKiA2KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSlcclxuXHR9KVxyXG59XHJcblxyXG4vLyDorr7nva7ov57mjqXmiJDlip/lm57osINcclxuZXhwb3J0IGZ1bmN0aW9uIHNldENhbGxiYWNrKGUpIHtcclxuXHRjb25uZWN0Q2FsbGJhY2sgPSBlXHJcbn1cclxuXHJcbi8vIOiuvue9ruaQnOe0ouWIsOiTneeJmeiuvuWkh+Wbnuiwg1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0U2NhbkNhbGxiYWNrKGUpIHtcclxuXHRzY2FuQ2FsbGJhY2sgPSBlXHJcbn1cclxuXHJcbi8vIOiuvue9ruiuvuWkh+aWreW8gOi/nuaOpeWbnuiwg1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RGlzY29ubmVjdENhbGxiYWNrKGUpIHtcclxuXHRkaXNjb25uZWN0Q2FsbGJhY2sgPSBlXHJcbn1cclxuXHJcbi8vIOiuvue9ruWGmeaIkOWKn+Wbnuiwg1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0V3JpdGVDYWxsYmFjayhlKSB7XHJcblx0d3JpdGVDYWxsYmFjayA9IGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCYXR0ZXJ5Q2FsbGJhY2soZSkge1xyXG5cdGJhdHRlcnlDYWxsYmFjayA9IGU7XHJcblx0aWYgKGxhc3RCYXR0ZXJ5TGV2ZWwgIT09ICdOL0EnICYmIHR5cGVvZiBiYXR0ZXJ5Q2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdGJhdHRlcnlDYWxsYmFjayhsYXN0QmF0dGVyeUxldmVsKTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRNYWNDYWxsYmFjayhlKSB7XHJcblx0bWFjQ2FsbGJhY2sgPSBlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGV2aWNlSWQoKXtcclxuXHRyZXR1cm4gZGV2aWNlSWRcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbm5lY3RlZERldmljZSgpIHtcclxuXHRyZXR1cm4gZGV2aWNlO1xyXG59XHJcblxyXG4vLyDkuJrliqHnm7jlhbPlm57osINcclxuZnVuY3Rpb24gc2V0UmVhbHRpbWVDYWxsYmFjayh0eXBlLCBlKSB7XHJcblx0cmVhbHRpbWVUeXBlID0gdHlwZVxyXG5cdC8vIGNvbnNvbGUubG9nKCfkuJrliqHnm7jlhbPlm57osIMnLCBlKTtcclxuXHRyZWFsdGltZUNhbGxiYWNrID0gZVxyXG5cdC8vIGNvbnNvbGUubG9nKCdzZXQgcmVhbHRpbWVUeXBlICcsIHJlYWx0aW1lVHlwZSlcclxufVxyXG5cclxuXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gI1xyXG4vLyAjICAgIENvcmUgQkxFIENvbW1hbmQgRnVuY3Rpb25zXHJcbi8vICNcclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuLy8g6L2s5o2iMTbov5vliLZcclxuLyoqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBudW0g5Yeg5L2NXHJcbiovXHJcbmZ1bmN0aW9uIGNvbnZlcnNpb24oc3RyLCBudW0pIHtcclxuXHRjb25zdCByZXN1bHQgPSBbXTtcclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkgKz0gbnVtKSB7XHJcblx0XHRsZXQgdGVtcCA9IHN0ci5zbGljZShpLCBpICsgbnVtKTtcclxuXHRcdC8vIHRlbXAudG9TdHJpbmcoMTYpO1xyXG5cdFx0cmVzdWx0LnB1c2gocGFyc2VJbnQodGVtcCwgMTYpKTtcclxuXHR9XHJcblx0cmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLy8g5YiH5o2i54Gv55qE5qih5byPXHJcbmV4cG9ydCBmdW5jdGlvbiBzZW5kTGlnaHRUeXBlKHR5cGUsIGUpe1xyXG5cdHNldFJlYWx0aW1lQ2FsbGJhY2sodHlwZSwgZSlcclxuXHRsZXQgc3RyMSA9IGBGQSR7ZX0wMDAxMDBGRmA7XHJcblx0bGV0IGFyciA9IFtdO1xyXG5cdGFyciA9IGNvbnZlcnNpb24oc3RyMSwgMik7XHJcblx0ZXhlY3V0ZUNtZChhcnIpO1xyXG59XHJcblxyXG4vLyDosIPoioLnga/kuq7luqZcclxuZXhwb3J0IGZ1bmN0aW9uIHNldExpZ2h0KHR5cGUsIGUsIG51bSkge1xyXG5cdHNldFJlYWx0aW1lQ2FsbGJhY2sodHlwZSwgZSlcclxuXHQvLyBsZXQgc3RyID0gYEZBMDUke3BhcnNlSW50KG51bSwgMTYpfTAwRkZgO1xyXG5cdGxldCBzdHIgPSBgRkEwNTAwMDEke251bS50b1N0cmluZygxNikucGFkTGVmdCgyLCcwJyl9RkZgO1xyXG5cdGxldCBhcnIgPSBjb252ZXJzaW9uKHN0ciwgMik7XHJcblx0Y29uc29sZS5sb2coJ2xpZ2h05pWw57uEJywgYXJyKTtcclxuXHRleGVjdXRlQ21kKGFycik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24g6K6+572u5Y2V5L2N44CB6YOo6Zeo44CB5ZCN5a2XLi4uXHJcbiAqIEBwYXJhbSB7IEFycmF5IH0gYXJyIFxyXG4qL1xyXG5leHBvcnQgZnVuY3Rpb24gc2VuZEltZyhhcnIsZSkge1xyXG5cdGxldCBkYXRhQXJyID0gY29udmVyc2lvbihhcnIsIDIpO1xyXG5cdGNvbnNvbGUubG9nKGRhdGFBcnIpO1xyXG5cdGV4ZWN1dGVDbWQoZGF0YUFycik7XHJcbn1cclxuXHJcblxyXG4vLyDlpoLmnKrnqbrvvIjmnKrmlLbliLDlm57lpI3vvIzmlLbliLDlm57lpI3kvJrmuIXmjonnrKzkuIDkuKrmjIfku6TvvInov5vpmJ/liJfvvIwg56m655u05o6l5omn6KGMXHJcbmZ1bmN0aW9uIGV4ZWN1dGVDbWQoY21kKSB7XHJcblx0Ly8gaWYgKGNtZExpc3QubGVuZ3RoID09IDApIHtcclxuXHQvLyBcdHdyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSh3cml0ZV9jaGFyYWN0ZXJpc3RpYywgY21kKVxyXG5cdFx0XHJcblx0Ly8gfVxyXG5cdC8vIGNtZExpc3QucHVzaChjbWQpXHJcblx0d3JpdGVCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKHdyaXRlX2NoYXJhY3RlcmlzdGljLCBjbWQpXHJcbn1cclxuXHJcbi8vIOa4heaOieesrOS4gOS4quaMh+S7pO+8jOeEtuWQjuajgOafpemYn+WIl+aYr+WQpuS4uuepuu+8jOS4jeS4uuepuue7p+e7reWPkemAgVxyXG5mdW5jdGlvbiBjb250aW51ZUV4ZWN1dGUoKSB7XHJcblx0Y21kTGlzdC5zcGxpY2UoMCwgMSlcclxuXHRpZiAoY21kTGlzdC5sZW5ndGggIT0gMCkge1xyXG5cdFx0d3JpdGVCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKHdyaXRlX2NoYXJhY3RlcmlzdGljLCBjbWRMaXN0WzBdKVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gI1xyXG4vLyAjICAgIENvcmUgQkxFIENvbm5lY3Rpb24gTG9naWNcclxuLy8gI1xyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG5cclxuLy8gc3RlcCAxXHJcbi8vIOaJk+W8gOiTneeJmeWKn+iDvVxyXG5leHBvcnQgZnVuY3Rpb24gb3BlbkJsdWV0b290aEFkYXB0ZXIoc2VhcmNoLCBjYWxsYmFjaykge1xyXG5cdGNvbnN0IG9wZXJhdGlvbiA9ICgpID0+IHtcclxuXHRcdG9wZW5CbGVBZGFwdGVyKChlcnIpID0+IHtcclxuXHRcdFx0aWYgKCFlcnIpIHtcclxuXHRcdFx0XHQvLyBPbiBzdWNjZXNzIChubyBlcnJvciksIHN0YXJ0IHNjYW5uaW5nIGZvciBkZXZpY2VzLlxyXG5cdFx0XHRcdHN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEFsd2F5cyBjYWxsIHRoZSBwYWdlJ3MgY2FsbGJhY2sgdG8gbm90aWZ5IGl0IG9mIHRoZSByZXN1bHQuXHJcblx0XHRcdGlmIChjYWxsYmFjaykge1xyXG5cdFx0XHRcdGNhbGxiYWNrKGVycik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH07XHJcblxyXG5cdGlmIChzZWFyY2gpIHtcclxuXHRcdC8vIEZpcnN0IGNsb3NlIGFueSBleGlzdGluZyBhZGFwdGVyIHNlc3Npb24sIHRoZW4gcGVyZm9ybSB0aGUgb3BlcmF0aW9uLlxyXG5cdFx0dW5pLmNsb3NlQmx1ZXRvb3RoQWRhcHRlcih7XHJcblx0XHRcdGNvbXBsZXRlOiBvcGVyYXRpb24sXHJcblx0XHR9KTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0b3BlcmF0aW9uKCk7XHJcblx0fVxyXG59XHJcblxyXG5mdW5jdGlvbiBvcGVuQmxlQWRhcHRlcihjYWxsYmFjaykge1xyXG5cdHVuaS5vcGVuQmx1ZXRvb3RoQWRhcHRlcih7XHJcblx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdGlzT3BlbiA9IHRydWU7XHJcblx0XHRcdGlzQmxlT24gPSB0cnVlO1xyXG5cdFx0XHRpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7IC8vIFN1Y2Nlc3MsIG5vIGVycm9yIG9iamVjdC5cclxuXHRcdH0sXHJcblx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdC8vIExvZyB0aGUgZnVsbCBlcnJvciB0byBoZWxwIGRpYWdub3NlIHJlbGVhc2UgdmVyc2lvbiBpc3N1ZXNcclxuXHRcdFx0Y29uc29sZS5lcnJvcignb3BlbkJsdWV0b290aEFkYXB0ZXIgZmFpbGVkIHdpdGggZXJyb3I6JywgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XHJcblxyXG5cdFx0XHRpZiAoZXJyLmVyckNvZGUgPT09IDEwMDAxKSB7XHJcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHRjb250ZW50OiAn6K+35omT5byA5omL5py66JOd54mZJyxcclxuXHRcdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdC8vIEZvciBvdGhlciBlcnJvcnMsIHNob3cgYSBkZXRhaWxlZCBtb2RhbCBmb3IgZGVidWdnaW5nIGluIHRoZSByZWxlYXNlIHZlcnNpb24uXHJcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHR0aXRsZTogJ+iTneeJmeWQr+WKqOWksei0pScsXHJcblx0XHRcdFx0XHRjb250ZW50OiBg6ZSZ6K+vOiAke0pTT04uc3RyaW5naWZ5KGVycil9YCxcclxuXHRcdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdFx0aXNPcGVuID0gZmFsc2U7XHJcblx0XHRcdGlzQmxlT24gPSBmYWxzZTtcclxuXHRcdFx0Ly8gUHJvcGFnYXRlIHRoZSBlcnJvciB0byB0aGUgY2FsbGluZyBwYWdlXHJcblx0XHRcdGlmIChjYWxsYmFjaykgY2FsbGJhY2soZXJyKTtcclxuXHRcdH0sXHJcblx0fSk7XHJcbn1cclxuXHJcbi8vIHN0ZXAgMlxyXG4vL+W8gOWni+aQnOe0ouiTneeJmeiuvuWkh1xyXG5mdW5jdGlvbiBzdGFydEJsdWV0b290aERldmljZXNEaXNjb3ZlcnkoKSB7XHJcblx0Y29uc29sZS5sb2coJ+W8gOWni+aQnOe0oicpO1xyXG5cdGxldCBvcHRpb24gPSB7XHJcblx0XHRhbGxvd0R1cGxpY2F0ZXNLZXk6IGZhbHNlLFxyXG5cdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZygn5pCc57Si5oiQ5YqfLOacieiuvuWkhycsIHJlcyk7XHJcblx0XHRcdG9uQmx1ZXRvb3RoRGV2aWNlRm91bmQoKTtcclxuXHRcdH0sXHJcblx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCflvZPliY3mkJzntKLok53niZnorr7lpIflpLHotKUnLCBlcnIpO1xyXG5cdFx0XHRpZihlcnIuZXJyQ29kZSA9PSAxMDAwOCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0dGl0bGU6ICfmiavmj4/lpKrov4fpopHnuYHvvIzor7fnqI3lkI7lho3or5UnLFxyXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gcmVzZXREZXZpY2VzKCk7XHJcblx0XHRcdC8vIGRldmljZXMgPSBbXVxyXG5cdFx0XHQvLyBvcGVuQmx1ZXRvb3RoQWRhcHRlcih0cnVlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0aWYgKGF1dG9fY29ubmVjdCkge1xyXG5cdFx0b3B0aW9uLnNlcnZpY2VzID0gW1xyXG5cdFx0XHRzZXJ2aWNlX3V1aWRcclxuXHRcdF1cclxuXHR9XHJcblx0dW5pLnN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeShvcHRpb24pXHJcbn1cclxuXHJcblxyXG5cclxubGV0IGhleFN0cmluZyA9ICcnXHJcbi8vIHN0ZXAgM1xyXG4vLyDorr7lpIfmn6Xmib7nu5PmnpzlpITnkIZcclxuZnVuY3Rpb24gb25CbHVldG9vdGhEZXZpY2VGb3VuZCgpIHtcclxuXHR1bmkub25CbHVldG9vdGhEZXZpY2VGb3VuZCgocmVzKSA9PiB7XHJcblx0XHRyZXMuZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiB7XHJcblx0XHRcdC8vIOi/h+a7pOaOieayoeacieWQjeWtl+eahOiuvuWkh1xyXG5cdFx0XHRpZiAoIWRldmljZS5uYW1lKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCBmb3VuZERldmljZXMgPSBkZXZpY2VzXHJcblx0XHRcdGNvbnN0IGlkeCA9IGluQXJyYXkoZm91bmREZXZpY2VzLCAnZGV2aWNlSWQnLCBkZXZpY2UuZGV2aWNlSWQpXHJcblx0XHRcdGlmIChpZHggPT09IC0xKSB7XHJcblx0XHRcdFx0ZGV2aWNlcy5wdXNoKGRldmljZSlcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRkZXZpY2VzW2lkeF0gPSBkZXZpY2VcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gQWx3YXlzIG5vdGlmeSB0aGUgVUkgb2YgYW55IGZvdW5kIGRldmljZVxyXG5cdFx0XHRpZiAoc2NhbkNhbGxiYWNrICYmIHR5cGVvZiBzY2FuQ2FsbGJhY2sgPT0gXCJmdW5jdGlvblwiKSB7XHJcblx0XHRcdFx0c2NhbkNhbGxiYWNrKCkgLy8g5p+l5om+57uT5p6c6ZuG5Zue6LCDXHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdhdXRvX2Nvbm5lY3Q6JywgYXV0b19jb25uZWN0KTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2lzQ29ubmVjdGluZzonLCBpc0Nvbm5lY3RpbmcpO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnZGV2aWNlSWQ6JywgZGV2aWNlSWQpO1xyXG5cdFx0XHRpZiAoYXV0b19jb25uZWN0ICYmICFpc0Nvbm5lY3RpbmcgJiYgZGV2aWNlLmRldmljZUlkID09IGRldmljZUlkKSB7XHJcblx0XHRcdFx0aXNDb25uZWN0aW5nID0gdHJ1ZVxyXG5cdFx0XHRcdGNyZWF0ZUJMRUNvbm5lY3Rpb24oZGV2aWNlSWQsIHRydWUpO1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmIChhdXRvX2Nvbm5lY3QpIHtcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnMTExMTExMTAwMDAwMDAwMDAwMDAwMDAwLy8vLy8vLy8vLy8vLy8nKTtcclxuXHRcdFx0XHRpZiAoIWFmdGVyX3RpbWVyKSB7XHJcblx0XHRcdFx0XHRhZnRlcl90aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgdmFsaWQgPSBbXVxyXG5cdFx0XHRcdFx0XHRhdXRvX21hYyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYXV0b19tYWNfYmFja3VwKSlcclxuXHRcdFx0XHRcdFx0YXV0b19tYWMuZm9yRWFjaChpdGVtID0+IHtcclxuXHRcdFx0XHRcdFx0XHR2YWxpZC5wdXNoKGRldmljZXMuc29tZShlID0+IGUuZGV2aWNlSWQgPT0gaXRlbSkpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdHZhbGlkLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCFpdGVtKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRhdXRvX21hYy5zcGxpY2UoaW5kZXgsIDEpXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygndmFsaWQgbWFjICcsIGF1dG9fbWFjKVxyXG5cdFx0XHRcdFx0XHRpZiAoYXV0b19tYWMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TG9hZGluZyh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+iHquWKqOi/nuaOpeS4rS4uLicsXHJcblx0XHRcdFx0XHRcdFx0XHRtYXNrOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRsZXQgbWFjID0gYXV0b19tYWNbMF1cclxuXHRcdFx0XHRcdFx0XHRjcmVhdGVCTEVDb25uZWN0aW9uKG1hYylcclxuXHRcdFx0XHRcdFx0XHRhdXRvX21hYy5zcGxpY2UoMCwgMSlcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHt9XHJcblx0XHRcdFx0XHRcdGNsZWFyVGltZW91dChhZnRlcl90aW1lcilcclxuXHRcdFx0XHRcdFx0YWZ0ZXJfdGltZXIgPSAnJ1xyXG5cdFx0XHRcdFx0fSwgMTAwMCAqIDYpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH0pXHJcbn1cclxuXHJcblxyXG4vLyBjb25uZWN0IHN0ZXAgMVxyXG4vLyDov57mjqXok53niZnorr7lpIdcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJMRUNvbm5lY3Rpb24oaWQsIGFkdmVydGlzRGF0YSwgc2FtZURldmljZSwgY2xvc2VDb25uZWN0TG9hZGluZykgeyAvL+ebtOaOpei/nuaOpeiuvuWkh1xyXG5cdGNvbnNvbGUubG9nKGlkLCBhZHZlcnRpc0RhdGEsIHNhbWVEZXZpY2UsICfov57mjqXok53niZnorr7lpIcnKTtcclxuXHRjbG9zZUJMRUNvbm5lY3Rpb24oZmFsc2UsICgpID0+IHtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0Ly/nm5HlkKzok53niZnov57mjqXnirbmgIFcclxuXHRcdHVuaS5vbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZShsaXN0ZW5lcilcclxuXHRcdHVuaS5jcmVhdGVCTEVDb25uZWN0aW9uKHtcclxuXHRcdFx0ZGV2aWNlSWQ6IGlkLFxyXG5cdFx0XHR0aW1lb3V0OiA1MDAwLFxyXG5cdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2cocmVzLCAn6JOd54mZ6L+e5o6l54q25oCBJyk7XHJcblx0XHRcdFx0YXV0b19jb25uZWN0ID0gZmFsc2UgLy8g6YeN572uXHJcblx0XHRcdFx0YXV0b19tYWMgPSBbXSAvLyDph43nva5cclxuXHRcdFx0XHRjbG9zZUF1dG9Db25uZWN0KCkgLy8g5YWz6Zet5YWo5bGA6Ieq5Yqo6L+e5o6lXHJcblx0XHRcdFx0aWYgKGF1dG9Db25uZWN0Q2FsbGJhY2sgJiYgdHlwZW9mIGF1dG9Db25uZWN0Q2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdFx0YXV0b0Nvbm5lY3RDYWxsYmFjaygpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KCkgLy8g5YGc5q2i5omr5o+P6JOd54mZ6K6+5aSHXHJcblx0XHRcdFx0ZGV2aWNlID0gZGV2aWNlcy5maW5kKGl0ZW0gPT4gaXRlbS5kZXZpY2VJZCA9PSBpZClcclxuXHRcdFx0XHRpc0Nvbm5lY3RpbmcgPSBmYWxzZVxyXG5cdFx0XHRcdGNvbm5lY3RlZCA9IHRydWVcclxuXHRcdFx0XHRtYW51YWxEaXNjb25uZWN0ID0gZmFsc2VcclxuXHRcdFx0XHRkZXZpY2VJZCA9IGlkXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+i/nuaOpeeahOiuvuWkh0lEJywgZGV2aWNlSWQpO1xyXG5cdFx0XHRcdGdldEJMRURldmljZVNlcnZpY2VzKGRldmljZUlkKSAvLyDojrflj5bmnI3liqHvvIzliJ3lp4vljJbnibnlvoHlgLxcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2RldmljZUlkJywgZGV2aWNlSWQpO1xyXG5cdFx0XHRcdC8vIHVuaS5zZXRTdG9yYWdlU3luYygnZGV2aWNlTmFtZScsIG5hbWUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+iuvuWkh+i/nuaOpeWksei0pScsIGVycik7XHJcblx0XHRcdFx0aXNDb25uZWN0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0aWYgKGF1dG9fY29ubmVjdCkge1xyXG5cdFx0XHRcdFx0aWYgKGF1dG9fbWFjLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0bGV0IG1hYyA9IGF1dG9fbWFjWzBdXHJcblx0XHRcdFx0XHRcdGNyZWF0ZUJMRUNvbm5lY3Rpb24obWFjKVxyXG5cdFx0XHRcdFx0XHRhdXRvX21hYy5zcGxpY2UoMCwgMSlcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGlmIChhdXRvQ29ubmVjdENhbGxiYWNrICYmIHR5cGVvZiBhdXRvQ29ubmVjdENhbGxiYWNrID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdFx0XHRhdXRvQ29ubmVjdENhbGxiYWNrKClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K6+5aSH6L+e5o6l5aSx6LSlJyk7XHJcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKVxyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6K6+5aSH6L+e5o6l5aSx6LSl77yBJyArIGVyci5lcnJNc2csXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodHlwZW9mIGNsb3NlQ29ubmVjdExvYWRpbmcgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdGNsb3NlQ29ubmVjdExvYWRpbmcoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbXBsZXRlOiAoKSA9PiB7XHJcblx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fSwgc2FtZURldmljZSkgLy8g5YWz6Zet5b2T5YmN6JOd54mZ6L+e5o6lXHJcblx0Y29uc29sZS5sb2coJ+e7k+adn+i/nuaOpeaWueazlScpO1xyXG59XHJcblxyXG4vLyBjb25uZWN0IHN0ZXAgMlxyXG4vLyDojrflj5bmnI3liqFcclxuZnVuY3Rpb24gZ2V0QkxFRGV2aWNlU2VydmljZXMoZGV2aWNlSWQpIHtcclxuXHRjb25zb2xlLmxvZygn5oiR6I635Y+W5pyN5Yqh5oiQ5Yqf5o6l5pS25Yiw55qESWTmmK8nLCBkZXZpY2VJZCk7XHJcblxyXG5cdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0dW5pLmdldEJMRURldmljZVNlcnZpY2VzKHtcclxuXHRcdFx0ZGV2aWNlSWQsXHJcblx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMsICfojrflj5bok53niZnorr7lpIfmiYDmnInmnI3liqEyJyk7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+a1i+ivlTEnLHJlcy5zZXJ2aWNlc1tpXS51dWlkLCBzZXJ2aWNlX3V1aWQudG9VcHBlckNhc2UoKSlcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5zZXJ2aWNlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+a1i+ivlTInLHJlcy5zZXJ2aWNlc1tpXS51dWlkLCBzZXJ2aWNlX3V1aWQudG9VcHBlckNhc2UoKSlcclxuXHRcdFx0XHRcdC8vIOa2iOaBr+acjeWKoVxyXG5cdFx0XHRcdFx0aWYgKHJlcy5zZXJ2aWNlc1tpXS51dWlkID09IHNlcnZpY2VfdXVpZCB8fFxyXG5cdFx0XHRcdFx0XHRyZXMuc2VydmljZXNbaV0udXVpZCA9PSBzZXJ2aWNlX3V1aWQudG9VcHBlckNhc2UoKSkge1xyXG5cdFx0XHRcdFx0XHRnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MoZGV2aWNlSWQsIHJlcy5zZXJ2aWNlc1tpXS51dWlkKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGVyciwgJ+iOt+WPluacjeWKoeWksei0pScpXHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fSwgNjAwMClcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbn1cclxuXHJcblxyXG4vLyBjb25uZWN0IHN0ZXAgM1xyXG4vLyDliJ3lp4vljJbnibnlvoHlgLxcclxuZnVuY3Rpb24gZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKGRldmljZUlkLCBzZXJ2aWNlSWQpIHtcclxuXHR1bmkuZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKHtcclxuXHRcdGRldmljZUlkLFxyXG5cdFx0c2VydmljZUlkLFxyXG5cdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhyZXMsJ+mAmuefpeeJueW+geWAvCcpXHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzLmNoYXJhY3RlcmlzdGljcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGxldCBpdGVtID0gcmVzLmNoYXJhY3RlcmlzdGljc1tpXVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGNvbnN0IGl0ZW1VVUlEID0gaXRlbS51dWlkLnRvVXBwZXJDYXNlKCk7XHJcblx0XHRcdFx0Y29uc3QgcHJpbWFyeU5vdGlmeVVVSUQgPSBub3RpZnlfY2hhcmFjdGVyaXN0aWMudG9VcHBlckNhc2UoKTtcclxuXHRcdFx0XHRjb25zdCBzZWNvbmRhcnlOb3RpZnlVVUlEID0gbm90aWZ5X2NoYXJhY3RlcmlzdGljXzIudG9VcHBlckNhc2UoKTtcclxuXHJcblx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIGNoYXJhY3RlcmlzdGljIGlzIG9uZSBvZiB0aGUgbm90aWZpY2F0aW9uIHNvdXJjZXNcclxuXHRcdFx0XHRpZiAoaXRlbVVVSUQgPT09IHByaW1hcnlOb3RpZnlVVUlEIHx8IGl0ZW1VVUlEID09PSBzZWNvbmRhcnlOb3RpZnlVVUlEKSB7XHJcblx0XHRcdFx0XHRpZiAoaXRlbS5wcm9wZXJ0aWVzLm5vdGlmeSB8fCBpdGVtLnByb3BlcnRpZXMuaW5kaWNhdGUpIHtcclxuXHRcdFx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xyXG5cdFx0XHRcdFx0XHRcdGRldmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdFx0XHRjaGFyYWN0ZXJpc3RpY0lkOiBpdGVtLnV1aWQsXHJcblx0XHRcdFx0XHRcdFx0c3RhdGU6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYOW3suaIkOWKn+ebkeWQrOeJueW+geWAvDogJHtpdGVtLnV1aWR9YCk7XHJcblx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGDnm5HlkKznibnlvoHlgLwgJHtpdGVtLnV1aWR9IOWksei0pTpgLCBlcnIpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoaXRlbVVVSUQgPT09IHdyaXRlX2NoYXJhY3RlcmlzdGljLnRvVXBwZXJDYXNlKCkpIHtcclxuXHRcdFx0XHRcdGlmIChpdGVtLnByb3BlcnRpZXMud3JpdGUpIHt9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZmFpbDogKHJlcykgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MnLCByZXMpXHJcblx0XHR9XHJcblx0fSlcclxuXHQvLyBub3RpZnnnmoTlm57osIPlh73mlbDvvIzmk43kvZzkuYvliY3lhYjnm5HlkKzvvIzkv53or4HnrKzkuIDml7bpl7Tojrflj5bmlbDmja5cclxuXHQvLyDpkojlr7nkuI3lkIznibnlvoHlgLznmoTlm57osIPlpITnkIZcclxuXHR1bmkub25CTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKChyZXMpID0+IHtcclxuXHRcdGxldCByZXN1bHQgPSBhYjJoZXgocmVzLnZhbHVlKVxyXG5cclxuXHRcdC8vIOaJk+WNsOadpeiHqiBub3RpZnlfY2hhcmFjdGVyaXN0aWNfMiDnmoTmlbDmja5cclxuXHRcdGlmIChyZXMuY2hhcmFjdGVyaXN0aWNJZC50b1VwcGVyQ2FzZSgpID09PSBub3RpZnlfY2hhcmFjdGVyaXN0aWNfMi50b1VwcGVyQ2FzZSgpKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKGDmjqXmlLbliLDmnaXoh6ogW25vdGlmeV9jaGFyYWN0ZXJpc3RpY18yXSDnmoTljp/lp4tIZXjmlbDmja46ICR7cmVzdWx0fWApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCdmYycpICYmIHJlc3VsdC5lbmRzV2l0aCgnZmYnKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWFjSGV4ID0gcmVzdWx0LnN1YnN0cmluZygyLCByZXN1bHQubGVuZ3RoIC0gMik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYWNBZGRyZXNzID0gbWFjSGV4Lm1hdGNoKC8uezEsMn0vZykucmV2ZXJzZSgpLmpvaW4oJzonKS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFtub3RpZnlfY2hhcmFjdGVyaXN0aWNfMl0g6Kej5p6Q5ZCO55qETUFD5Zyw5Z2AOiAke21hY0FkZHJlc3N9YCk7XHJcbiAgICAgICAgICAgICAgICBpZiAobWFjQ2FsbGJhY2sgJiYgdHlwZW9mIG1hY0NhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFjQ2FsbGJhY2sobWFjQWRkcmVzcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0cmV0dXJuO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCdmYicpICYmIHJlc3VsdC5lbmRzV2l0aCgnZmYnKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YUhleCA9IHJlc3VsdC5zdWJzdHJpbmcoMiwgcmVzdWx0Lmxlbmd0aCAtIDIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYmF0dGVyeUhleCA9IGRhdGFIZXguc3Vic3RyaW5nKDAsIDIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYmF0dGVyeUxldmVsID0gcGFyc2VJbnQoYmF0dGVyeUhleCwgMTYpO1xyXG4gICAgICAgICAgICAgICAgbGFzdEJhdHRlcnlMZXZlbCA9IGJhdHRlcnlMZXZlbDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbbm90aWZ5X2NoYXJhY3RlcmlzdGljXzJdIOino+aekOWQjueahOeUtemHjzogJHtiYXR0ZXJ5TGV2ZWx9JWApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJhdHRlcnlDYWxsYmFjayAmJiB0eXBlb2YgYmF0dGVyeUNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmF0dGVyeUNhbGxiYWNrKGJhdHRlcnlMZXZlbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblx0XHRcdFx0cmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIFRoaXMgaXMgdGhlIG9yaWdpbmFsIGxvZ2ljIGZvciB0aGUgcHJpbWFyeSBub3RpZmljYXRpb24gY2hhcmFjdGVyaXN0aWMuXHJcblx0XHQvLyBJdCBpcyBub3cgZ2VuZXJhbGl6ZWQgdG8gaGFuZGxlIHJlc3BvbnNlcyBmcm9tIGVpdGhlciBjaGFyYWN0ZXJpc3RpYyBpZiBub3QgaGFuZGxlZCBhYm92ZS5cclxuXHRcdGNvbnNvbGUubG9nKCfpgJrnn6XnibnlvoHlgLwnLHJlc3VsdClcclxuXHJcblx0XHRsZXQgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aFxyXG5cdFx0bGV0IGxlbiA9IHBhcnNlSW50KHNwbGl0QnlMZW4ocmVzdWx0LnN1YnN0cigyLCA0KSwgMikucmV2ZXJzZSgpLmpvaW4oJycpLCAxNilcclxuXHRcdC8vIGNvbnNvbGUubG9nKGxlbilcclxuXHRcdGxldCBjaGVja0FyckhleCA9IHNwbGl0QnlMZW4ocmVzdWx0LnN1YnN0cigwLCBsZW5ndGggLSA0KSwgMilcclxuXHRcdC8vIGNvbnNvbGUubG9nKGNoZWNrQXJySGV4KVxyXG5cdFx0bGV0IGNoZWNrQXJyID0gY2hlY2tBcnJIZXgubWFwKGUgPT4gcGFyc2VJbnQoZSwgMTYpKVxyXG5cdFx0Ly8gY29uc29sZS5sb2coY2hlY2tBcnIpXHJcblx0XHRsZXQgc2VuZENoZWNrU3VtID0gcmVzdWx0LnN1YnN0cigtNClcclxuXHRcdGxldCBjaGVja1N1bSA9IGdldENoZWNrU3VtKGNoZWNrQXJyKS5tYXAoZSA9PiBlLnRvU3RyaW5nKDE2KS5wYWRMZWZ0KDIsICcwJykpLmpvaW4oJycpXHJcblx0XHQvLyBjb25zb2xlLmxvZyhjaGVja1N1bSlcclxuXHRcdC8vIGNvbnNvbGUubG9nKHNlbmRDaGVja1N1bSlcclxuXHRcdC8vIGNvbnNvbGUubG9nKHNlbmRDaGVja1N1bSA9PT0gY2hlY2tTdW0pXHJcblx0XHRpZiAoc2VuZENoZWNrU3VtID09PSBjaGVja1N1bSkge1xyXG5cdFx0XHRsZXQgdHlwZSA9IHBhcnNlSW50KHJlc3VsdC5zdWJzdHIoOCwgMiksIDE2KVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyh0eXBlKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhyZWFsdGltZVR5cGUpXHJcblx0XHRcdGlmIChyZWFsdGltZVR5cGUgPT0gdHlwZSAmJiByZWFsdGltZUNhbGxiYWNrICYmIHR5cGVvZiByZWFsdGltZUNhbGxiYWNrID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRyZWFsdGltZVR5cGUgPSB1bmRlZmluZWRcclxuXHRcdFx0XHRsZXQgdGVtcENhbGxiYWNrID0gcmVhbHRpbWVDYWxsYmFja1xyXG5cdFx0XHRcdHJlYWx0aW1lQ2FsbGJhY2sgPSB1bmRlZmluZWRcclxuXHRcdFx0XHR0ZW1wQ2FsbGJhY2socmVzdWx0KVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdyZWFsdGltZVR5cGUgJywgcmVhbHRpbWVUeXBlKVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnRpbnVlRXhlY3V0ZSgpXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR1bmkuaGlkZUxvYWRpbmcoKSAvLyDmoKHpqozlgLzkuI3lr7nnmoTmg4XlhrVcclxuXHRcdFx0Y29udGludWVFeGVjdXRlKClcclxuXHRcdH1cclxuXHR9KVxyXG5cdGNvbm5lY3RDYWxsYmFjayhkZXZpY2VJZClcclxufVxyXG5cclxuXHJcbi8vIOiOt+WPluW9k+WJjeaYr+WQpui/nuaOpeS4ilxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29ubmVjdGVkKCkge1xyXG5cdHJldHVybiBjb25uZWN0ZWRcclxufVxyXG5cclxuLy8g6K6+572u6Ieq5Yqo6L+e5o6l55qEIG1hYyDlnLDlnYBcclxuZnVuY3Rpb24gc2V0QXV0b01hYyhhcnIpIHtcclxuXHRhdXRvX21hY19iYWNrdXAgPSBhcnJcclxuXHRhdXRvX2Nvbm5lY3QgPSB0cnVlXHJcblx0b3BlbkJsdWV0b290aEFkYXB0ZXIoKVxyXG5cdHN0YXJ0QXV0b0Nvbm5lY3QoKVxyXG59XHJcblxyXG4vKipcclxuICog5byA5ZCv5YWo5bGA6Ieq5Yqo6L+e5o6lXHJcbiAqL1xyXG5mdW5jdGlvbiBzdGFydEF1dG9Db25uZWN0KCkge1xyXG5cdGF1dG9fY29ubmVjdCA9IHRydWVcclxuXHRhdXRvQ29ubmVjdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG5cdFx0aWYgKGF1dG9fY29ubmVjdCkge1xyXG5cdFx0XHRpZiAoIWNvbm5lY3RlZCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfoh6rliqjov57mjqXmiavmj48gJywgaXNPcGVuKVxyXG5cdFx0XHRcdGlmIChpc09wZW4pIHtcclxuXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmIChpc0JsZU9uKSB7XHJcblx0XHRcdFx0XHRcdG9wZW5CbHVldG9vdGhBZGFwdGVyKClcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LCAxMDAwICogMylcclxufVxyXG5cclxuLyoqXHJcbiAqIOWFs+mXreWFqOWxgOiHquWKqOi/nuaOpVxyXG4gKi9cclxuZnVuY3Rpb24gY2xvc2VBdXRvQ29ubmVjdCgpIHtcclxuXHRhdXRvX2Nvbm5lY3QgPSBmYWxzZVxyXG5cdGNsZWFySW50ZXJ2YWwoYXV0b0Nvbm5lY3RUaW1lcilcclxufVxyXG5cclxuLyoqXHJcbiAqIOWPlua2iOWFqOWxgOiHquWKqOi/nuaOpVxyXG4gKi9cclxuZnVuY3Rpb24gY2FuY2VsQXV0b0Nvbm5lY3QoKSB7XHJcblx0YXV0b19jb25uZWN0ID0gZmFsc2VcclxuXHRhdXRvX21hYyA9IFtdXHJcblx0YXV0b0Nvbm5lY3RDYWxsYmFjayA9ICcnXHJcblx0Y2xlYXJJbnRlcnZhbChhdXRvQ29ubmVjdFRpbWVyKVxyXG5cdGNsb3NlQmx1ZXRvb3RoQWRhcHRlcigpXHJcbn1cclxuXHJcblxyXG4vLyDojrflj5bmmoLlrZjnmoTmiavmj4/liLDnmoTorr7lpIfmlbDnu4RcclxuZnVuY3Rpb24gZ2V0RGV2aWNlcygpIHtcclxuXHRpZiAoZGV2aWNlKSB7XHJcblx0XHRkZXZpY2VzLnB1c2goZGV2aWNlKVxyXG5cdH1cclxuXHRyZXR1cm4gZGV2aWNlc1xyXG59XHJcblxyXG4vLyDph43nva7miavmj4/liLDnmoTorr7lpIfmlbDnu4RcclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0RGV2aWNlcygpIHtcclxuXHRkZXZpY2VzID0gW107XHJcbn1cclxuXHJcbi8vIHdyaXRlIG1zZyDlj5HpgIHmjIfku6RcclxuLy8gbXNnIOS4uiBoZXhzdHJpbmcg5b2i5byPXHJcbmZ1bmN0aW9uIHdyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZShjaGFyYWN0ZXJpc3RpY0lkLCBtc2cpIHtcclxuXHRpZiAoY29ubmVjdGVkID09IGZhbHNlKSB7XHJcblx0XHRyZWNvbm5lY3REZXZpY2UoKTtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblx0bGV0IGJ1ZmZlciA9IGhleEFycjJhYihtc2cpO1xyXG5cdHdhaXRpbmdGb3JSZXN1bHQgPSB0cnVlOyAvL+etieW+hemAmuefpei/lOWbnue7k+aenOOAglxyXG5cdGxldCBsZW4gPSBidWZmZXIuYnl0ZUxlbmd0aFxyXG5cdGxldCBhcnIgPSBbXVxyXG5cdGlmIChsZW4gPiAyMCkge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDAsIGogPSAwOyBpIDwgbGVuOyBpICs9IDIwKSB7XHJcblx0XHRcdGxldCBzdGFydCA9IGogKiAyMDtcclxuXHRcdFx0bGV0IGVuZCA9IHN0YXJ0ICsgMjAgPiBsZW4gPyBsZW4gLSBzdGFydCA6IDIwXHJcblx0XHRcdGxldCBkYXRhID0gVWludDhBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgc3RhcnQsIGVuZCkpXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGEpXHJcblx0XHRcdC8vIGxldCB0ZW1wQnVmZmVyID0gZGF0YS5idWZmZXIuc2xpY2Uoc3RhcnQsIGVuZClcclxuXHRcdFx0Ly8gY29uc29sZS5sb2codGVtcEJ1ZmZlcilcclxuXHRcdFx0YXJyLnB1c2goZGF0YS5idWZmZXIpXHJcblx0XHRcdGorK1xyXG5cdFx0fVxyXG5cdFx0c3RvcEZsYWcgPSBmYWxzZVxyXG5cdFx0d3JpdGVEYXRhKGNoYXJhY3RlcmlzdGljSWQsIGFycilcclxuXHR9IGVsc2Uge1xyXG5cdFx0c3RvcEZsYWcgPSBmYWxzZVxyXG5cdFx0d3JpdGVEYXRhKGNoYXJhY3RlcmlzdGljSWQsIFtidWZmZXJdKVxyXG5cdH1cclxuXHJcbn1cclxuXHJcbmxldCBzdG9wRmxhZyA9IGZhbHNlXHJcbmxldCB0aW1lb3V0VGltZXIgPSAnJ1xyXG5sZXQgdGltZW91dENhbGxiYWNrID0gJydcclxuXHJcbmZ1bmN0aW9uIHdyaXRlRGF0YShjaGFyYWN0ZXJpc3RpY0lkLCBidWZmZXIpIHtcclxuXHRjb25zb2xlLmxvZygn5YeG5aSH5Y+R6YCBJyk7XHJcblx0Y2xlYXJUaW1lb3V0KHRpbWVvdXRUaW1lcilcclxuXHQvLyBjb25zb2xlLmxvZyhidWZmZXIpXHJcblx0aWYgKHN0b3BGbGFnKSB7XHJcblx0XHRyZXR1cm5cclxuXHR9XHJcblx0dW5pLndyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSh7XHJcblx0XHRkZXZpY2VJZCxcclxuXHRcdHNlcnZpY2VJZDogc2VydmljZV91dWlkLFxyXG5cdFx0Y2hhcmFjdGVyaXN0aWNJZCxcclxuXHRcdHZhbHVlOiBidWZmZXJbMF0sXHJcblx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdGlmIChyZWFsdGltZUNhbGxiYWNrKSB7XHJcblx0XHRcdFx0bGV0IHN0ciA9IGDlhpnlhaUgJHthYjJoZXgoYnVmZmVyWzBdKX1gXHJcblx0XHRcdFx0Y29uc29sZS5sb2coc3RyKVxyXG5cdFx0XHR9XHJcblx0XHRcdC8vIOWGmeWFpeS4gOasoei/m+W6puadoeWwseWJjei/m1xyXG5cdFx0XHRpZiAod3JpdGVDYWxsYmFjayAmJiB0eXBlb2Ygd3JpdGVDYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0bGV0IHN0ciA9IGDlhpnlhaUgJHthYjJoZXgoYnVmZmVyWzBdKX1gXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+WIhuWMheWPkemAgeS6huS4gOasoScpO1xyXG5cdFx0XHRcdHdyaXRlQ2FsbGJhY2soc3RyKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0aWYgKCFzdG9wRmxhZyAmJiBidWZmZXIubGVuZ3RoID4gMSkge1xyXG5cdFx0XHRcdHdyaXRlRGF0YShjaGFyYWN0ZXJpc3RpY0lkLCBidWZmZXIuc2xpY2UoMSkpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0bGV0IHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd0aW1lICcsIHRpbWUpXHJcblx0XHRcdFx0dGltZW91dFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGltZW91dENhbGxiYWNrICYmIHR5cGVvZiB0aW1lb3V0Q2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdFx0XHR0aW1lb3V0Q2FsbGJhY2soKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sIDIwMDApXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRmYWlsOiAocmVzKSA9PiB7XHJcblx0XHRcdGNtZExpc3QgPSBbXSAvLyDov5nph4zmuIXnqbrmjIfku6TvvIwg5pS+5byD6Zif5YiX5Lit5omA5pyJ5oyH5Luk77yM5Li65ZCO57ut5paw5oyH5Luk55qE5Yiw5p2l5YGa5YeG5aSHXHJcblx0XHRcdHdhaXRpbmdGb3JSZXN1bHQgPSBmYWxzZTtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignd3JpdGUgZmFpbGVkICcsIHJlcyk7XHJcblx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdHRpdGxlOiAn6K+36YeN5paw6L+e5o6lJ1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdHVybDogJy9wYWdlcy9zZWFyY2gvaW5kZXgnXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdH0pXHJcbn1cclxuLy8gNTUwODAwMDE5MzAxMTEyZlxyXG4vLyA1NTA4MDAwMTkxMDUxMThjXHJcblxyXG4vL+mHjei/nuiuvuWkh1xyXG5mdW5jdGlvbiByZWNvbm5lY3REZXZpY2UoKSB7XHJcblxyXG5cclxuXHJcblx0cmVjb25uZWN0VGltZXMgPSAwO1xyXG5cdGNsZWFySW50ZXJ2YWwocmVjb25uZWN0VGltZXIpXHJcblx0aWYgKG1hbnVhbERpc2Nvbm5lY3QpIC8vIOS4u+WKqOaWreW8gOeahOS4jeWBmuWkhOeQhlxyXG5cdFx0cmV0dXJuXHJcblx0dW5pLmhpZGVMb2FkaW5nKClcclxuXHR1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdFx0bWFzazogdHJ1ZSxcclxuXHRcdHRpdGxlOiAn6YeN6L+e5LitLi4uJ1xyXG5cdH0pXHJcblx0cmVjb25uZWN0KClcclxuXHRyZWNvbm5lY3RUaW1lciA9IHNldEludGVydmFsKFxyXG5cdFx0KCkgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZygn6YeN6L+ePz4+Pj4+Pj4nKTtcclxuXHRcdFx0cmVjb25uZWN0KClcclxuXHRcdH0sIDMwMDApOyAvLyA3MDAwXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlY29ubmVjdCgpIHtcclxuXHRpZiAoY29ubmVjdGVkKSAvL+W3sui/nuaOpVxyXG5cdHtcclxuXHRcdHJlY29ubmVjdFRpbWVzID0gMDtcclxuXHRcdGNsZWFySW50ZXJ2YWwocmVjb25uZWN0VGltZXIpXHJcblx0XHRyZXR1cm5cclxuXHR9XHJcblx0aWYgKHJlY29ubmVjdFRpbWVzID49IDIpIC8v6LaF5pe2IC8vIDlcclxuXHR7XHJcblx0XHRyZWNvbm5lY3RUaW1lcyA9IDA7XHJcblx0XHRjbGVhckludGVydmFsKHJlY29ubmVjdFRpbWVyKVxyXG5cdFx0dW5pLmhpZGVMb2FkaW5nKClcclxuXHRcdHNob3dNb2RhbCgpXHJcblx0XHRyZXR1cm5cclxuXHR9IGVsc2Uge1xyXG5cdFx0cmVjb25uZWN0VGltZXMgKz0gMVxyXG5cdFx0aWYgKGlzT3Blbikge1xyXG5cdFx0XHRpZiAoIWF1dG9fY29ubmVjdCkge1xyXG5cdFx0XHRcdGNvbm5lY3ROb3coKVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAoaXNCbGVPbikge1xyXG5cdFx0XHRcdG9wZW5CbHVldG9vdGhBZGFwdGVyKHRydWUpXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbm5lY3ROb3coKSB7XHJcblx0aWYgKCFpc0Nvbm5lY3RpbmcpIHtcclxuXHRcdGlzQ29ubmVjdGluZyA9IHRydWVcclxuXHJcblxyXG5cclxuXHRcdC8v55uR5ZCs6JOd54mZ6L+e5o6l54q25oCBXHJcblx0XHR1bmkub25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UobGlzdGVuZXIpXHJcblx0XHR1bmkuY3JlYXRlQkxFQ29ubmVjdGlvbih7XHJcblx0XHRcdGRldmljZUlkOiBkZXZpY2VJZCxcclxuXHRcdFx0dGltZW91dDogMzAwMCxcclxuXHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpXHJcblx0XHRcdFx0ZGV2aWNlID0gZGV2aWNlcy5maW5kKGl0ZW0gPT4gaXRlbS5kZXZpY2VJZCA9PSBkZXZpY2VJZClcclxuXHRcdFx0XHRpc0Nvbm5lY3RpbmcgPSBmYWxzZVxyXG5cdFx0XHRcdGNvbm5lY3RlZCA9IHRydWVcclxuXHRcdFx0XHRyZWNvbm5lY3RUaW1lcyA9IDA7XHJcblx0XHRcdFx0Y2xlYXJJbnRlcnZhbChyZWNvbm5lY3RUaW1lcikgLy/nu5PmnZ/lvqrnjq9cclxuXHRcdFx0XHRnZXRCTEVEZXZpY2VTZXJ2aWNlcyhkZXZpY2VJZClcclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRmYWlsOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0aXNDb25uZWN0aW5nID0gZmFsc2VcclxuXHRcdFx0fVxyXG5cdFx0fSlcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vLyDojrflj5blvZPliY3nirbmgIFcclxuLy8g55So5LqO5LiL5ouJ5Yi35pawXHJcbmZ1bmN0aW9uIGdldEJsdWV0b290aEFkYXB0ZXJTdGF0ZSgpIHtcclxuXHR1bmkuZ2V0Qmx1ZXRvb3RoQWRhcHRlclN0YXRlKHtcclxuXHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0aWYgKCFyZXMuYXZhaWxhYmxlKSB7XHJcblx0XHRcdFx0b3BlbkJsdWV0b290aEFkYXB0ZXIoKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHVuaS5zdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGZhaWw6IChlcnIpID0+IHt9XHJcblx0fSlcclxufVxyXG5cclxuLy8g5pat5byA6JOd54mZ6K6+5aSH6L+e5o6lXHJcbmZ1bmN0aW9uIGNsb3NlQkxFQ29ubmVjdGlvbihjbG9zZSwgY2FsbGJhY2ssIHNhbWVEZXZpY2UpIHtcclxuXHR0cnkge1xyXG5cdFx0Ly8gY29uc29sZS5sb2coJzEyMycsIGNsb3NlKVxyXG5cdFx0aWYgKGNsb3NlKSB7XHJcblx0XHRcdG1hbnVhbERpc2Nvbm5lY3QgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0Y29uc29sZS5sb2coJzEyMycsIGRldmljZUlkKVxyXG5cdFx0aWYgKGRldmljZUlkKSB7XHJcblx0XHRcdHVuaS5jbG9zZUJMRUNvbm5lY3Rpb24oe1xyXG5cdFx0XHRcdGRldmljZUlkOiBkZXZpY2VJZCxcclxuXHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRoYW5kbGVDbG9zZUJsZShjbG9zZSwgY2FsbGJhY2ssIHNhbWVEZXZpY2UpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoZXJyLmVyckNvZGUgPT0gMTAwMDYpIHtcclxuXHRcdFx0XHRcdFx0aGFuZGxlQ2xvc2VCbGUoY2xvc2UsIGNhbGxiYWNrLCBzYW1lRGV2aWNlKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCcxMjMnLCB0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJylcclxuXHRcdFx0aWYgKGNhbGxiYWNrICYmIHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0Y2FsbGJhY2soKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdHVuaS5oaWRlTG9hZGluZygpXHJcblx0XHRjb25zb2xlLmxvZyhlcnJvcilcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhbmRsZUNsb3NlQmxlKGNsb3NlLCBjYWxsYmFjaywgc2FtZURldmljZSkge1xyXG5cdGlmICghc2FtZURldmljZSkge1xyXG5cdFx0ZGV2aWNlSWQgPSAnJ1xyXG5cdH1cclxuXHRjb25uZWN0ZWQgPSBmYWxzZVxyXG5cdGxhc3RCYXR0ZXJ5TGV2ZWwgPSAnTi9BJztcclxuXHQvLyDmiYvliqjmlq3lvIDov57mjqXlpITnkIZcclxuXHRpZiAoY2xvc2UpIHtcclxuXHRcdGNsb3NlQmx1ZXRvb3RoQWRhcHRlcih0cnVlKVxyXG5cdH1cclxuXHRpZiAoY2FsbGJhY2sgJiYgdHlwZW9mIGNhbGxiYWNrID09ICdmdW5jdGlvbicpIHtcclxuXHRcdGNhbGxiYWNrKClcclxuXHR9XHJcbn1cclxuXHJcbi8vIOWFs+mXreiTneeJmeaJq+aPj1xyXG5mdW5jdGlvbiBzdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSgpIHtcclxuXHRpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcclxuXHR1bmkuc3RvcEJsdWV0b290aERldmljZXNEaXNjb3Zlcnkoe1xyXG5cdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0fVxyXG5cdH0pXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBzdG9wQmx1ZSA9IHN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5O1xyXG5cclxuLy8g5YWz6Zet6JOd54mZ6YCC6YWN5ZmoXHJcbmZ1bmN0aW9uIGNsb3NlQmx1ZXRvb3RoQWRhcHRlcihkb0NhbGxiYWNrKSB7XHJcblx0dW5pLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KHtcclxuXHRcdHN1Y2Nlc3M6IChyZXN1bHQpID0+IHtcclxuXHRcdFx0dW5pLmNsb3NlQmx1ZXRvb3RoQWRhcHRlcih7XHJcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Ly8g5omL5Yqo5pat5byA6L+e5o6l5aSE55CGXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0fVxyXG5cdH0pXHJcbn1cclxuXHJcbi8vIOiTneeJmeaWreW8gCDlvLnnqpfmj5DnpLogKOmHjei/nuS4jeWPr+i/nuS4iilcclxuZnVuY3Rpb24gc2hvd01vZGFsKCkge1xyXG5cdGRldmljZUlkID0gJydcclxuXHRkZXZpY2VzID0gW11cclxuXHQvLyBhdXRvX2Nvbm5lY3QgPSB0cnVlIC8vIOW8gOWQr+WFqOWxgOiHquWKqOi/nuaOpVxyXG5cdG9wZW5CbHVldG9vdGhBZGFwdGVyKHRydWUpXHJcblx0Ly8gc3RhcnRBdXRvQ29ubmVjdCgpXHJcblx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRjb250ZW50OiAn6K6+5aSH6YeN6L+e5aSx6LSl77yM5bey5pat5byA6L+e5o6l77yBJyxcclxuXHRcdHNob3dDYW5jZWw6IGZhbHNlLFxyXG5cdFx0c3VjY2VzcygpIHtcclxuXHRcdFx0dW5pLnJlTGF1bmNoKHtcclxuXHRcdFx0XHR1cmw6ICcvcGFnZXMvc2VhcmNoL2luZGV4J1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9KVxyXG59XHJcblxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbi8vICNcclxuLy8gIyAgICBVdGlsaXR5IEZ1bmN0aW9uc1xyXG4vLyAjXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8gICAg5bel5YW35Ye95pWwICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5mdW5jdGlvbiBzcGxpdEJ5TGVuKHN0ciwgbGVuKSB7XHJcblx0bGV0IGxlbmd0aCA9IHN0ci5sZW5ndGhcclxuXHRsZXQgbmV3QXJyID0gW11cclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSBsZW4pIHtcclxuXHRcdG5ld0Fyci5wdXNoKHN0ci5zdWJzdHIoaSwgbGVuKSlcclxuXHR9XHJcblx0cmV0dXJuIG5ld0FyclxyXG59XHJcblxyXG5mdW5jdGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGFycikge1xyXG5cdGlmICh0eXBlb2YgYXJyID09PSAnc3RyaW5nJykge1xyXG5cdFx0cmV0dXJuIGFycjtcclxuXHR9XHJcblx0dmFyIGRhdGF2aWV3ID0gbmV3IERhdGFWaWV3KGFycik7XHJcblx0dmFyIGludHMgPSBuZXcgVWludDhBcnJheShhcnIuYnl0ZUxlbmd0aCk7XHJcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBpbnRzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRpbnRzW2ldID0gZGF0YXZpZXcuZ2V0VWludDgoaSk7XHJcblx0fVxyXG5cdGFyciA9IGludHM7XHJcblx0dmFyIHN0ciA9ICcnLFxyXG5cdFx0X2FyciA9IGFycjtcclxuXHRmb3IgKHZhciBpID0gMDsgaSA8IF9hcnIubGVuZ3RoOyBpKyspIHtcclxuXHRcdHZhciBvbmUgPSBfYXJyW2ldLnRvU3RyaW5nKDIpLFxyXG5cdFx0XHR2ID0gb25lLm1hdGNoKC9eMSs/KD89MCkvKTtcclxuXHRcdGlmICh2ICYmIG9uZS5sZW5ndGggPT0gOCkge1xyXG5cdFx0XHR2YXIgYnl0ZXNMZW5ndGggPSB2WzBdLmxlbmd0aDtcclxuXHRcdFx0dmFyIHN0b3JlID0gX2FycltpXS50b1N0cmluZygyKS5zbGljZSg3IC0gYnl0ZXNMZW5ndGgpO1xyXG5cdFx0XHRmb3IgKHZhciBzdCA9IDE7IHN0IDwgYnl0ZXNMZW5ndGg7IHN0KyspIHtcclxuXHRcdFx0XHRzdG9yZSArPSBfYXJyW3N0ICsgaV0udG9TdHJpbmcoMikuc2xpY2UoMik7XHJcblx0XHRcdH1cclxuXHRcdFx0c3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoc3RvcmUsIDIpKTtcclxuXHRcdFx0aSArPSBieXRlc0xlbmd0aCAtIDE7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShfYXJyW2ldKTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIHN0cjtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGluQXJyYXkoYXJyLCBrZXksIHZhbCkge1xyXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRpZiAoYXJyW2ldW2tleV0gPT09IHZhbCkge1xyXG5cdFx0XHRyZXR1cm4gaTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIC0xO1xyXG59XHJcblxyXG4vLyDlrZfnrKbkuLLovazkuLpBcnJheUJ1ZmZlcuWvueixoe+8jOWPguaVsOS4uuWtl+espuS4su+8jOazqOaEj+i/memHjOeahOWtl+espuS4suS4uumdnmhleOWtl+espuS4slxyXG5mdW5jdGlvbiBzdHJpbmdUb0FycmF5QnVmZmVyKHN0cikge1xyXG5cdHZhciBieXRlcyA9IG5ldyBBcnJheSgpO1xyXG5cdHZhciBsZW4sIGM7XHJcblx0bGVuID0gc3RyLmxlbmd0aDtcclxuXHRmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcblx0XHRjID0gc3RyLmNoYXJDb2RlQXQoaSk7XHJcblx0XHRpZiAoYyA+PSAweDAxMDAwMCAmJiBjIDw9IDB4MTBGRkZGKSB7XHJcblx0XHRcdGJ5dGVzLnB1c2goKChjID4+IDE4KSAmIDB4MDcpIHwgMHhGMCk7XHJcblx0XHRcdGJ5dGVzLnB1c2goKChjID4+IDEyKSAmIDB4M0YpIHwgMHg4MCk7XHJcblx0XHRcdGJ5dGVzLnB1c2goKChjID4+IDYpICYgMHgzRikgfCAweDgwKTtcclxuXHRcdFx0Ynl0ZXMucHVzaCgoYyAmIDB4M0YpIHwgMHg4MCk7XHJcblx0XHR9IGVsc2UgaWYgKGMgPj0gMHgwMDA4MDAgJiYgYyA8PSAweDAwRkZGRikge1xyXG5cdFx0XHRieXRlcy5wdXNoKCgoYyA+PiAxMikgJiAweDBGKSB8IDB4RTApO1xyXG5cdFx0XHRieXRlcy5wdXNoKCgoYyA+PiA2KSAmIDB4M0YpIHwgMHg4MCk7XHJcblx0XHRcdGJ5dGVzLnB1c2goKGMgJiAweDNGKSB8IDB4ODApO1xyXG5cdFx0fSBlbHNlIGlmIChjID49IDB4MDAwMDgwICYmIGMgPD0gMHgwMDA3RkYpIHtcclxuXHRcdFx0Ynl0ZXMucHVzaCgoKGMgPj4gNikgJiAweDFGKSB8IDB4QzApO1xyXG5cdFx0XHRieXRlcy5wdXNoKChjICYgMHgzRikgfCAweDgwKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGJ5dGVzLnB1c2goYyAmIDB4RkYpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR2YXIgYXJyYXkgPSBuZXcgSW50OEFycmF5KGJ5dGVzLmxlbmd0aCk7XHJcblx0Zm9yICh2YXIgaSBpbiBieXRlcykge1xyXG5cdFx0YXJyYXlbaV0gPSBieXRlc1tpXTtcclxuXHR9XHJcblx0cmV0dXJuIGFycmF5LmJ1ZmZlcjtcclxufVxyXG5cclxuZnVuY3Rpb24gaGV4QXJyMmFiKGhleEFycikge1xyXG5cdGxldCBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoaGV4QXJyLmxlbmd0aClcclxuXHRsZXQgZGF0YVZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKVxyXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgaGV4QXJyLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRkYXRhVmlldy5zZXRVaW50OChpLCBoZXhBcnJbaV0pXHJcblx0fVxyXG5cdHJldHVybiBidWZmZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhleFN0cjJhYihoZXhTdHIpIHtcclxuXHRsZXQgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGhleFN0ci5sZW5ndGggLyAyKVxyXG5cdGxldCBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpXHJcblx0Zm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgaGV4U3RyLmxlbmd0aDsgaSArPSAyLCBqKyspIHtcclxuXHRcdGxldCBfc3RyID0gXCIweFwiICsgaGV4U3RyLnN1YnN0cihpLCAyKVxyXG5cdFx0ZGF0YVZpZXcuc2V0VWludDgoaiwgcGFyc2VJbnQoX3N0ciwgMTYpKVxyXG5cdH1cclxuXHRyZXR1cm4gYnVmZmVyO1xyXG59XHJcbi8vIEFycmF5QnVmZmVy6L2sMTbov5vluqblrZfnrKbkuLLnpLrkvotcclxuZnVuY3Rpb24gYWIyaGV4KGJ1ZmZlcikge1xyXG5cdHZhciBoZXhBcnIgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoXHJcblx0XHRuZXcgVWludDhBcnJheShidWZmZXIpLFxyXG5cdFx0ZnVuY3Rpb24oYml0KSB7XHJcblx0XHRcdHJldHVybiAoJzAwJyArIGJpdC50b1N0cmluZygxNikpLnNsaWNlKC0yKVxyXG5cdFx0fVxyXG5cdClcclxuXHRyZXR1cm4gaGV4QXJyLmpvaW4oJycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoZXhTdHIySGV4QXJyKGhleFN0cikge1xyXG5cdHZhciBhID0gW107XHJcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBoZXhTdHIubGVuZ3RoOyBpICs9IDIpIHtcclxuXHRcdGxldCBfc3RyID0gXCIweFwiICsgaGV4U3RyLnN1YnN0cihpLCAyKVxyXG5cdFx0YS5wdXNoKHBhcnNlSW50KF9zdHIsIDE2KSk7XHJcblx0fVxyXG5cdHJldHVybiBhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoZXhBcnIySGV4U3RyKGhleEFycikge1xyXG5cdGxldCBhcnIgPSBbXVxyXG5cdGhleEFyci5mb3JFYWNoKGl0ZW0gPT4ge1xyXG5cdFx0YXJyLnB1c2goaXRlbS50b1N0cmluZygxNikucGFkTGVmdCgyLCAnMCcpKVxyXG5cdH0pXHJcblx0cmV0dXJuIGFyci5qb2luKCcnKVxyXG59XHJcblxyXG4vLyAxMOi/m+WItui9rDE26L+b5Yi26KGlMFxyXG5mdW5jdGlvbiBkZWMyaGV4KGRlYywgbGVuKSB7IC8vMTDov5vliLbovawxNui/m+WItuihpTBcclxuXHR2YXIgaGV4ID0gXCJcIjtcclxuXHR3aGlsZSAoZGVjKSB7XHJcblx0XHR2YXIgbGFzdCA9IGRlYyAmIDE1O1xyXG5cdFx0aGV4ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGxhc3QgPiA5KSA/IDU1IDogNDgpICsgbGFzdCkgKyBoZXg7XHJcblx0XHRkZWMgPj49IDQ7XHJcblx0fVxyXG5cdGlmIChsZW4pIHtcclxuXHRcdHdoaWxlIChoZXgubGVuZ3RoIDwgbGVuKSBoZXggPSAnMCcgKyBoZXg7XHJcblx0fVxyXG5cdHJldHVybiBoZXg7XHJcbn1cclxuLy8gMTDov5vliLbovawxNui/m+WItuihpTBcclxuZnVuY3Rpb24gc3RyaW5nX2hleDJpbnQoaGV4KSB7IC8vMTbov5vliLbovawxMOi/m+WItlxyXG5cdHZhciBsZW4gPSBoZXgubGVuZ3RoLFxyXG5cdFx0YSA9IG5ldyBBcnJheShsZW4pLFxyXG5cdFx0Y29kZTtcclxuXHRmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcblx0XHRjb2RlID0gaGV4LmNoYXJDb2RlQXQoaSk7XHJcblx0XHRpZiAoNDggPD0gY29kZSAmJiBjb2RlIDwgNTgpIHtcclxuXHRcdFx0Y29kZSAtPSA0ODtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvZGUgPSAoY29kZSAmIDB4ZGYpIC0gNjUgKyAxMDtcclxuXHRcdH1cclxuXHRcdGFbaV0gPSBjb2RlO1xyXG5cdH1cclxuXHRyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBjKSB7XHJcblx0XHRhY2MgPSAxNiAqIGFjYyArIGM7XHJcblx0XHRyZXR1cm4gYWNjO1xyXG5cdH0sIDApO1xyXG59XHJcblxyXG4vL+agoemqjOWSjFxyXG5mdW5jdGlvbiBjaGVja1N1bVJlc3VsdChoZXhTdHIsIGxlbikgLy/ov5Tlm57moKHpqozlkoznmoRoZXhzdHJpbmdcclxue1xyXG5cdGxldCBhYkRhdGEgPSBoZXhTdHIySGV4QXJyKGhleFN0cilcclxuXHR2YXIgdWNJID0gMCxcclxuXHRcdHVjSiA9IDA7XHJcblx0dmFyIHVpQ3JjVmFsdWUgPSAweGZmZmY7XHJcblx0Zm9yICh1Y0kgPSAwOyB1Y0kgPCBsZW47IHVjSSsrKSB7XHJcblx0XHR1aUNyY1ZhbHVlID0gKHVpQ3JjVmFsdWUgXiAoYWJEYXRhW3VjSV0gJiAweGZmKSk7XHJcblx0XHRmb3IgKHVjSiA9IDA7IHVjSiA8IDg7IHVjSisrKSB7XHJcblx0XHRcdGlmICgodWlDcmNWYWx1ZSAmIDB4MDAwMSkgPT0gMSkge1xyXG5cdFx0XHRcdHVpQ3JjVmFsdWUgPSAoKHVpQ3JjVmFsdWUgPj4gMSkgXiAweDg0MDgpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHVpQ3JjVmFsdWUgPSAodWlDcmNWYWx1ZSA+PiAxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQvL+agoemqjOWSjOS4unVpQ3JjVmFsdWUg55qE6auY5L2O5L2N5LqS5o2iXHJcblx0dmFyIGhleFN0ciA9IGRlYzJoZXgodWlDcmNWYWx1ZSwgNCk7XHJcblx0dmFyIHJlc3VsdFN0ciA9IGhleFN0ci5zdWJzdHIoMiwgMikgKyBoZXhTdHIuc3Vic3RyKDAsIDIpXHJcblx0cmV0dXJuIHJlc3VsdFN0cjtcclxufVxyXG5cclxuZnVuY3Rpb24gVWludDhUb1N0cihhcnIpIHtcclxuXHRmb3IgKHZhciBpID0gMCwgc3RyID0gJyc7IGkgPCBhcnIubGVuZ3RoOyBpKyspXHJcblx0XHRzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShhcnJbaV0pO1xyXG5cdHJldHVybiBzdHI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHN0clRvVWludDgoc3RyKSB7XHJcblx0Zm9yICh2YXIgaSA9IDAsIGFyciA9IFtdOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRhcnIucHVzaChzdHIuY2hhckNvZGVBdChpKSk7XHJcblx0fVxyXG5cdHJldHVybiBuZXcgVWludDhBcnJheShhcnIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzY292ZXJlZERldmljZXMoKSB7XHJcblx0cmV0dXJuIFsuLi5kZXZpY2VzXTtcclxufVxyXG5cclxuLy8g5omL5Yqo5pat5byA6JOd54mZXHJcbmV4cG9ydCBmdW5jdGlvbiBtYW51YWxEaXNjb25uZWN0RGV2aWNlKCkge1xyXG5cdGNsb3NlQkxFQ29ubmVjdGlvbih0cnVlKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///219\n"); /***/ }), -/* 215 */ +/* 220 */ /*!*****************************!*\ !*** D:/APP/store/store.js ***! \*****************************/ @@ -20823,10 +20931,10 @@ eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefaul /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 124));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 216));\n// store/index.js\n\n_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n state: {\n userInfo: null,\n // 用户信息\n theme: 'light',\n // 主题\n token: '' // 登录凭证\n },\n\n mutations: {\n setUserInfo: function setUserInfo(state, userInfo) {\n state.userInfo = userInfo;\n },\n setTheme: function setTheme(state, theme) {\n state.theme = theme;\n },\n setToken: function setToken(state, token) {\n state.token = token;\n }\n },\n actions: {\n updateUserInfo: function updateUserInfo(_ref, userInfo) {\n var commit = _ref.commit;\n commit('setUserInfo', userInfo);\n },\n updateTheme: function updateTheme(_ref2, theme) {\n var commit = _ref2.commit;\n commit('setTheme', theme);\n },\n updateToken: function updateToken(_ref3, token) {\n var commit = _ref3.commit;\n commit('setToken', token);\n }\n },\n getters: {\n getUserInfo: function getUserInfo(state) {\n return state.userInfo;\n },\n getTheme: function getTheme(state) {\n return state.theme;\n },\n getToken: function getToken(state) {\n return state.token;\n }\n }\n});\nvar _default = store;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvc3RvcmUuanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJzdGF0ZSIsInVzZXJJbmZvIiwidGhlbWUiLCJ0b2tlbiIsIm11dGF0aW9ucyIsInNldFVzZXJJbmZvIiwic2V0VGhlbWUiLCJzZXRUb2tlbiIsImFjdGlvbnMiLCJ1cGRhdGVVc2VySW5mbyIsImNvbW1pdCIsInVwZGF0ZVRoZW1lIiwidXBkYXRlVG9rZW4iLCJnZXR0ZXJzIiwiZ2V0VXNlckluZm8iLCJnZXRUaGVtZSIsImdldFRva2VuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7QUFDQTtBQUZBOztBQUlBQSxZQUFHLENBQUNDLEdBQUcsQ0FBQ0MsYUFBSSxDQUFDO0FBRWIsSUFBTUMsS0FBSyxHQUFHLElBQUlELGFBQUksQ0FBQ0UsS0FBSyxDQUFDO0VBQzNCQyxLQUFLLEVBQUU7SUFDTEMsUUFBUSxFQUFFLElBQUk7SUFBRTtJQUNoQkMsS0FBSyxFQUFFLE9BQU87SUFBRTtJQUNoQkMsS0FBSyxFQUFFLEVBQUUsQ0FBRTtFQUNiLENBQUM7O0VBQ0RDLFNBQVMsRUFBRTtJQUNUQyxXQUFXLHVCQUFDTCxLQUFLLEVBQUVDLFFBQVEsRUFBRTtNQUMzQkQsS0FBSyxDQUFDQyxRQUFRLEdBQUdBLFFBQVE7SUFDM0IsQ0FBQztJQUNESyxRQUFRLG9CQUFDTixLQUFLLEVBQUVFLEtBQUssRUFBRTtNQUNyQkYsS0FBSyxDQUFDRSxLQUFLLEdBQUdBLEtBQUs7SUFDckIsQ0FBQztJQUNESyxRQUFRLG9CQUFDUCxLQUFLLEVBQUVHLEtBQUssRUFBRTtNQUNyQkgsS0FBSyxDQUFDRyxLQUFLLEdBQUdBLEtBQUs7SUFDckI7RUFDRixDQUFDO0VBQ0RLLE9BQU8sRUFBRTtJQUNQQyxjQUFjLGdDQUFhUixRQUFRLEVBQUU7TUFBQSxJQUFwQlMsTUFBTSxRQUFOQSxNQUFNO01BQ3JCQSxNQUFNLENBQUMsYUFBYSxFQUFFVCxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUNEVSxXQUFXLDhCQUFhVCxLQUFLLEVBQUU7TUFBQSxJQUFqQlEsTUFBTSxTQUFOQSxNQUFNO01BQ2xCQSxNQUFNLENBQUMsVUFBVSxFQUFFUixLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNEVSxXQUFXLDhCQUFhVCxLQUFLLEVBQUU7TUFBQSxJQUFqQk8sTUFBTSxTQUFOQSxNQUFNO01BQ2xCQSxNQUFNLENBQUMsVUFBVSxFQUFFUCxLQUFLLENBQUM7SUFDM0I7RUFDRixDQUFDO0VBQ0RVLE9BQU8sRUFBRTtJQUNQQyxXQUFXLEVBQUUscUJBQUNkLEtBQUs7TUFBQSxPQUFLQSxLQUFLLENBQUNDLFFBQVE7SUFBQTtJQUN0Q2MsUUFBUSxFQUFFLGtCQUFDZixLQUFLO01BQUEsT0FBS0EsS0FBSyxDQUFDRSxLQUFLO0lBQUE7SUFDaENjLFFBQVEsRUFBRSxrQkFBQ2hCLEtBQUs7TUFBQSxPQUFLQSxLQUFLLENBQUNHLEtBQUs7SUFBQTtFQUNsQztBQUNGLENBQUMsQ0FBQztBQUFDLGVBRVlMLEtBQUs7QUFBQSIsImZpbGUiOiIyMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdG9yZS9pbmRleC5qc1xyXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBWdWV4IGZyb20gJ3Z1ZXgnO1xyXG5cclxuVnVlLnVzZShWdWV4KTtcclxuXHJcbmNvbnN0IHN0b3JlID0gbmV3IFZ1ZXguU3RvcmUoe1xyXG4gIHN0YXRlOiB7XHJcbiAgICB1c2VySW5mbzogbnVsbCwgLy8g55So5oi35L+h5oGvXHJcbiAgICB0aGVtZTogJ2xpZ2h0JywgLy8g5Li76aKYXHJcbiAgICB0b2tlbjogJycsIC8vIOeZu+W9leWHreivgVxyXG4gIH0sXHJcbiAgbXV0YXRpb25zOiB7XHJcbiAgICBzZXRVc2VySW5mbyhzdGF0ZSwgdXNlckluZm8pIHtcclxuICAgICAgc3RhdGUudXNlckluZm8gPSB1c2VySW5mbztcclxuICAgIH0sXHJcbiAgICBzZXRUaGVtZShzdGF0ZSwgdGhlbWUpIHtcclxuICAgICAgc3RhdGUudGhlbWUgPSB0aGVtZTtcclxuICAgIH0sXHJcbiAgICBzZXRUb2tlbihzdGF0ZSwgdG9rZW4pIHtcclxuICAgICAgc3RhdGUudG9rZW4gPSB0b2tlbjtcclxuICAgIH1cclxuICB9LFxyXG4gIGFjdGlvbnM6IHtcclxuICAgIHVwZGF0ZVVzZXJJbmZvKHsgY29tbWl0IH0sIHVzZXJJbmZvKSB7XHJcbiAgICAgIGNvbW1pdCgnc2V0VXNlckluZm8nLCB1c2VySW5mbyk7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlVGhlbWUoeyBjb21taXQgfSwgdGhlbWUpIHtcclxuICAgICAgY29tbWl0KCdzZXRUaGVtZScsIHRoZW1lKTtcclxuICAgIH0sXHJcbiAgICB1cGRhdGVUb2tlbih7IGNvbW1pdCB9LCB0b2tlbikge1xyXG4gICAgICBjb21taXQoJ3NldFRva2VuJywgdG9rZW4pO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgZ2V0dGVyczoge1xyXG4gICAgZ2V0VXNlckluZm86IChzdGF0ZSkgPT4gc3RhdGUudXNlckluZm8sXHJcbiAgICBnZXRUaGVtZTogKHN0YXRlKSA9PiBzdGF0ZS50aGVtZSxcclxuICAgIGdldFRva2VuOiAoc3RhdGUpID0+IHN0YXRlLnRva2VuXHJcbiAgfVxyXG59KTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHN0b3JlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///215\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 124));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 221));\n// store/index.js\n\n_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n state: {\n userInfo: null,\n // 用户信息\n theme: 'light',\n // 主题\n token: '' // 登录凭证\n },\n\n mutations: {\n setUserInfo: function setUserInfo(state, userInfo) {\n state.userInfo = userInfo;\n },\n setTheme: function setTheme(state, theme) {\n state.theme = theme;\n },\n setToken: function setToken(state, token) {\n state.token = token;\n }\n },\n actions: {\n updateUserInfo: function updateUserInfo(_ref, userInfo) {\n var commit = _ref.commit;\n commit('setUserInfo', userInfo);\n },\n updateTheme: function updateTheme(_ref2, theme) {\n var commit = _ref2.commit;\n commit('setTheme', theme);\n },\n updateToken: function updateToken(_ref3, token) {\n var commit = _ref3.commit;\n commit('setToken', token);\n }\n },\n getters: {\n getUserInfo: function getUserInfo(state) {\n return state.userInfo;\n },\n getTheme: function getTheme(state) {\n return state.theme;\n },\n getToken: function getToken(state) {\n return state.token;\n }\n }\n});\nvar _default = store;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvc3RvcmUuanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJzdGF0ZSIsInVzZXJJbmZvIiwidGhlbWUiLCJ0b2tlbiIsIm11dGF0aW9ucyIsInNldFVzZXJJbmZvIiwic2V0VGhlbWUiLCJzZXRUb2tlbiIsImFjdGlvbnMiLCJ1cGRhdGVVc2VySW5mbyIsImNvbW1pdCIsInVwZGF0ZVRoZW1lIiwidXBkYXRlVG9rZW4iLCJnZXR0ZXJzIiwiZ2V0VXNlckluZm8iLCJnZXRUaGVtZSIsImdldFRva2VuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7QUFDQTtBQUZBOztBQUlBQSxZQUFHLENBQUNDLEdBQUcsQ0FBQ0MsYUFBSSxDQUFDO0FBRWIsSUFBTUMsS0FBSyxHQUFHLElBQUlELGFBQUksQ0FBQ0UsS0FBSyxDQUFDO0VBQzNCQyxLQUFLLEVBQUU7SUFDTEMsUUFBUSxFQUFFLElBQUk7SUFBRTtJQUNoQkMsS0FBSyxFQUFFLE9BQU87SUFBRTtJQUNoQkMsS0FBSyxFQUFFLEVBQUUsQ0FBRTtFQUNiLENBQUM7O0VBQ0RDLFNBQVMsRUFBRTtJQUNUQyxXQUFXLHVCQUFDTCxLQUFLLEVBQUVDLFFBQVEsRUFBRTtNQUMzQkQsS0FBSyxDQUFDQyxRQUFRLEdBQUdBLFFBQVE7SUFDM0IsQ0FBQztJQUNESyxRQUFRLG9CQUFDTixLQUFLLEVBQUVFLEtBQUssRUFBRTtNQUNyQkYsS0FBSyxDQUFDRSxLQUFLLEdBQUdBLEtBQUs7SUFDckIsQ0FBQztJQUNESyxRQUFRLG9CQUFDUCxLQUFLLEVBQUVHLEtBQUssRUFBRTtNQUNyQkgsS0FBSyxDQUFDRyxLQUFLLEdBQUdBLEtBQUs7SUFDckI7RUFDRixDQUFDO0VBQ0RLLE9BQU8sRUFBRTtJQUNQQyxjQUFjLGdDQUFhUixRQUFRLEVBQUU7TUFBQSxJQUFwQlMsTUFBTSxRQUFOQSxNQUFNO01BQ3JCQSxNQUFNLENBQUMsYUFBYSxFQUFFVCxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUNEVSxXQUFXLDhCQUFhVCxLQUFLLEVBQUU7TUFBQSxJQUFqQlEsTUFBTSxTQUFOQSxNQUFNO01BQ2xCQSxNQUFNLENBQUMsVUFBVSxFQUFFUixLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNEVSxXQUFXLDhCQUFhVCxLQUFLLEVBQUU7TUFBQSxJQUFqQk8sTUFBTSxTQUFOQSxNQUFNO01BQ2xCQSxNQUFNLENBQUMsVUFBVSxFQUFFUCxLQUFLLENBQUM7SUFDM0I7RUFDRixDQUFDO0VBQ0RVLE9BQU8sRUFBRTtJQUNQQyxXQUFXLEVBQUUscUJBQUNkLEtBQUs7TUFBQSxPQUFLQSxLQUFLLENBQUNDLFFBQVE7SUFBQTtJQUN0Q2MsUUFBUSxFQUFFLGtCQUFDZixLQUFLO01BQUEsT0FBS0EsS0FBSyxDQUFDRSxLQUFLO0lBQUE7SUFDaENjLFFBQVEsRUFBRSxrQkFBQ2hCLEtBQUs7TUFBQSxPQUFLQSxLQUFLLENBQUNHLEtBQUs7SUFBQTtFQUNsQztBQUNGLENBQUMsQ0FBQztBQUFDLGVBRVlMLEtBQUs7QUFBQSIsImZpbGUiOiIyMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdG9yZS9pbmRleC5qc1xyXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBWdWV4IGZyb20gJ3Z1ZXgnO1xyXG5cclxuVnVlLnVzZShWdWV4KTtcclxuXHJcbmNvbnN0IHN0b3JlID0gbmV3IFZ1ZXguU3RvcmUoe1xyXG4gIHN0YXRlOiB7XHJcbiAgICB1c2VySW5mbzogbnVsbCwgLy8g55So5oi35L+h5oGvXHJcbiAgICB0aGVtZTogJ2xpZ2h0JywgLy8g5Li76aKYXHJcbiAgICB0b2tlbjogJycsIC8vIOeZu+W9leWHreivgVxyXG4gIH0sXHJcbiAgbXV0YXRpb25zOiB7XHJcbiAgICBzZXRVc2VySW5mbyhzdGF0ZSwgdXNlckluZm8pIHtcclxuICAgICAgc3RhdGUudXNlckluZm8gPSB1c2VySW5mbztcclxuICAgIH0sXHJcbiAgICBzZXRUaGVtZShzdGF0ZSwgdGhlbWUpIHtcclxuICAgICAgc3RhdGUudGhlbWUgPSB0aGVtZTtcclxuICAgIH0sXHJcbiAgICBzZXRUb2tlbihzdGF0ZSwgdG9rZW4pIHtcclxuICAgICAgc3RhdGUudG9rZW4gPSB0b2tlbjtcclxuICAgIH1cclxuICB9LFxyXG4gIGFjdGlvbnM6IHtcclxuICAgIHVwZGF0ZVVzZXJJbmZvKHsgY29tbWl0IH0sIHVzZXJJbmZvKSB7XHJcbiAgICAgIGNvbW1pdCgnc2V0VXNlckluZm8nLCB1c2VySW5mbyk7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlVGhlbWUoeyBjb21taXQgfSwgdGhlbWUpIHtcclxuICAgICAgY29tbWl0KCdzZXRUaGVtZScsIHRoZW1lKTtcclxuICAgIH0sXHJcbiAgICB1cGRhdGVUb2tlbih7IGNvbW1pdCB9LCB0b2tlbikge1xyXG4gICAgICBjb21taXQoJ3NldFRva2VuJywgdG9rZW4pO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgZ2V0dGVyczoge1xyXG4gICAgZ2V0VXNlckluZm86IChzdGF0ZSkgPT4gc3RhdGUudXNlckluZm8sXHJcbiAgICBnZXRUaGVtZTogKHN0YXRlKSA9PiBzdGF0ZS50aGVtZSxcclxuICAgIGdldFRva2VuOiAoc3RhdGUpID0+IHN0YXRlLnRva2VuXHJcbiAgfVxyXG59KTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHN0b3JlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///220\n"); /***/ }), -/* 216 */ +/* 221 */ /*!**************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js ***! \**************************************************************************************/ @@ -22082,14 +22190,14 @@ module.exports = index_cjs; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 118))) /***/ }), -/* 217 */ +/* 222 */ /*!***************************************!*\ !*** D:/APP/uni.promisify.adaptor.js ***! \***************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nuni.addInterceptor({\n returnValue: function returnValue(res) {\n if (!(!!res && (_typeof(res) === \"object\" || typeof res === \"function\") && typeof res.then === \"function\")) {\n return res;\n }\n return new Promise(function (resolve, reject) {\n res.then(function (res) {\n if (!res) return resolve(res);\n return res[0] ? reject(res[0]) : resolve(res[1]);\n });\n });\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pLnByb21pc2lmeS5hZGFwdG9yLmpzIl0sIm5hbWVzIjpbInVuaSIsImFkZEludGVyY2VwdG9yIiwicmV0dXJuVmFsdWUiLCJyZXMiLCJ0aGVuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiXSwibWFwcGluZ3MiOiI7QUFBQUEsR0FBRyxDQUFDQyxjQUFjLENBQUM7RUFDakJDLFdBQVcsdUJBQUVDLEdBQUcsRUFBRTtJQUNoQixJQUFJLEVBQUUsQ0FBQyxDQUFDQSxHQUFHLEtBQUssUUFBT0EsR0FBRyxNQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssVUFBVSxDQUFDLElBQUksT0FBT0EsR0FBRyxDQUFDQyxJQUFJLEtBQUssVUFBVSxDQUFDLEVBQUU7TUFDeEcsT0FBT0QsR0FBRztJQUNaO0lBQ0EsT0FBTyxJQUFJRSxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7TUFDdENKLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDLFVBQUNELEdBQUcsRUFBSztRQUNoQixJQUFJLENBQUNBLEdBQUcsRUFBRSxPQUFPRyxPQUFPLENBQUNILEdBQUcsQ0FBQztRQUM3QixPQUFPQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUdJLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUdHLE9BQU8sQ0FBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQ2xELENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKO0FBQ0YsQ0FBQyxDQUFDIiwiZmlsZSI6IjIxNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInVuaS5hZGRJbnRlcmNlcHRvcih7XHJcbiAgcmV0dXJuVmFsdWUgKHJlcykge1xyXG4gICAgaWYgKCEoISFyZXMgJiYgKHR5cGVvZiByZXMgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIHJlcyA9PT0gXCJmdW5jdGlvblwiKSAmJiB0eXBlb2YgcmVzLnRoZW4gPT09IFwiZnVuY3Rpb25cIikpIHtcclxuICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHJlcy50aGVuKChyZXMpID0+IHtcclxuICAgICAgICBpZiAoIXJlcykgcmV0dXJuIHJlc29sdmUocmVzKSBcclxuICAgICAgICByZXR1cm4gcmVzWzBdID8gcmVqZWN0KHJlc1swXSkgOiByZXNvbHZlKHJlc1sxXSlcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9LFxyXG59KTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///217\n"); +eval("var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nuni.addInterceptor({\n returnValue: function returnValue(res) {\n if (!(!!res && (_typeof(res) === \"object\" || typeof res === \"function\") && typeof res.then === \"function\")) {\n return res;\n }\n return new Promise(function (resolve, reject) {\n res.then(function (res) {\n if (!res) return resolve(res);\n return res[0] ? reject(res[0]) : resolve(res[1]);\n });\n });\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pLnByb21pc2lmeS5hZGFwdG9yLmpzIl0sIm5hbWVzIjpbInVuaSIsImFkZEludGVyY2VwdG9yIiwicmV0dXJuVmFsdWUiLCJyZXMiLCJ0aGVuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiXSwibWFwcGluZ3MiOiI7QUFBQUEsR0FBRyxDQUFDQyxjQUFjLENBQUM7RUFDakJDLFdBQVcsdUJBQUVDLEdBQUcsRUFBRTtJQUNoQixJQUFJLEVBQUUsQ0FBQyxDQUFDQSxHQUFHLEtBQUssUUFBT0EsR0FBRyxNQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssVUFBVSxDQUFDLElBQUksT0FBT0EsR0FBRyxDQUFDQyxJQUFJLEtBQUssVUFBVSxDQUFDLEVBQUU7TUFDeEcsT0FBT0QsR0FBRztJQUNaO0lBQ0EsT0FBTyxJQUFJRSxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7TUFDdENKLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDLFVBQUNELEdBQUcsRUFBSztRQUNoQixJQUFJLENBQUNBLEdBQUcsRUFBRSxPQUFPRyxPQUFPLENBQUNILEdBQUcsQ0FBQztRQUM3QixPQUFPQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUdJLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUdHLE9BQU8sQ0FBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQ2xELENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKO0FBQ0YsQ0FBQyxDQUFDIiwiZmlsZSI6IjIyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbInVuaS5hZGRJbnRlcmNlcHRvcih7XHJcbiAgcmV0dXJuVmFsdWUgKHJlcykge1xyXG4gICAgaWYgKCEoISFyZXMgJiYgKHR5cGVvZiByZXMgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIHJlcyA9PT0gXCJmdW5jdGlvblwiKSAmJiB0eXBlb2YgcmVzLnRoZW4gPT09IFwiZnVuY3Rpb25cIikpIHtcclxuICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHJlcy50aGVuKChyZXMpID0+IHtcclxuICAgICAgICBpZiAoIXJlcykgcmV0dXJuIHJlc29sdmUocmVzKSBcclxuICAgICAgICByZXR1cm4gcmVzWzBdID8gcmVqZWN0KHJlc1swXSkgOiByZXNvbHZlKHJlc1sxXSlcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9LFxyXG59KTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///222\n"); /***/ }) ],[[0,"app-config"]]]); \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/app-view.js b/unpackage/dist/dev/app-plus/app-view.js index cf4006b..37ecb05 100644 --- a/unpackage/dist/dev/app-plus/app-view.js +++ b/unpackage/dist/dev/app-plus/app-view.js @@ -100,7 +100,7 @@ __webpack_require__(/*! uni-pages?{"type":"view"} */ 1); function initView() { function injectStyles(context) { - var style0 = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=scss& */ 192); + var style0 = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=scss& */ 197); if (style0.__inject__) style0.__inject__(context); } typeof injectStyles === 'function' && injectStyles(); @@ -209,6 +209,9 @@ __definePage('pages/6155/index', function () { __definePage('pages/6155/bluetooth/bluetooth', function () { return Vue.extend(__webpack_require__(/*! pages/6155/bluetooth/bluetooth.vue?mpType=page */ 184).default); }); +__definePage('pages/common/map/index', function () { + return Vue.extend(__webpack_require__(/*! pages/common/map/index.vue?mpType=page */ 192).default); +}); /***/ }), /* 2 */ @@ -1639,7 +1642,15 @@ var render = function () { ), _c( "uni-view", - { staticClass: _vm._$g(8, "sc"), attrs: { _i: 8 } }, + { + staticClass: _vm._$g(8, "sc"), + attrs: { _i: 8 }, + on: { + click: function ($event) { + return _vm.$handleViewEvent($event) + }, + }, + }, [_vm._v("位置")] ), _c( @@ -3639,7 +3650,7 @@ if(false) {} var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 13); exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* 页面整体样式 */\n.device-page {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 100vh;\n\tbackground-color: rgb(18, 18, 18);\n\tpadding: 30rpx;\n}\n.tab-bar {\n\twidth: 100%;\n\tcolor: rgb(255, 255, 255);\n\twhite-space: nowrap;\n\t/* 禁止换行 */\n\toverflow: hidden;\n}\n.tab-container {\n\tdisplay: flex;\n\t/* justify-content: space-around; */\n\tcursor: pointer;\n\tmargin-bottom: 40rpx;\n\t/* \tmin-width: 100%; */\n\t/* 最小宽度 */\n}\n.tab-item {\n\tfont-size: 28rpx;\n\t/* \tmin-width: 120rpx; */\n\tpadding: 0 30rpx;\n\t/* 左右内边距 */\n\ttext-align: center;\n\t/* 文字居中 */\n\t/* 设置最小宽度 */\n}\n.active {\n\tcolor: rgba(187, 230, 0, 1);\n\tborder-bottom: 6rpx solid rgba(187, 230, 0, 1);\n\theight: 60rpx;\n}\n.sendFlex {\n\tdisplay: flex;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tjustify-content: flex-end;\n\tcursor: pointer;\n\tmargin-bottom: 30rpx;\n\tfont-size: 28rpx;\n}\n.gprs {\n\twidth: 28rpx;\n\theight: 35rpx;\n\tposition: absolute;\n\tleft: 50rpx\n}\n.Sendmessage {\n\tmargin-left: 50rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n}\n.callpolice {\n\tcolor: rgba(224, 52, 52, 1);\n}\n/* 设备卡片 */\n.device-card {\n\tbackground-color: rgb(26, 26, 26);\n\tborder-radius: 16rpx;\n\tmargin-bottom: 20rpx;\n\tbox-sizing: border-box;\n\tposition: relative;\n}\n/* \t.device-header {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-bottom: 15rpx;\n\tpadding: 30rpx 0 10rpx 30rpx;\n\twidth: 100%;\n}\n\n.device-name {\n\tfont-size: 28rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tmargin-left: 24rpx;\n\tline-height: 50rpx;\n}\n\n.ID {\n\tcolor: rgba(255, 255, 255, 0.6);\n\tfont-size: 24rpx;\n}\n\n.device-status {\n\twidth: 122rpx;\n\theight: 52rpx;\n\tfont-size: 26rpx;\n\tborder-radius: 0px 8px 0px 8px;\n\tbackground-color: rgb(42, 42, 42);\n\tposition: absolute;\n\ttop: 0rpx;\n\tright: 0rpx;\n\ttext-align: center;\n\tline-height: 52rpx;\n}\n\n.circle {\n\twidth: 8rpx;\n\theight: 40rpx;\n\tposition: absolute;\n\tright: 18rpx;\n\ttop: 65rpx;\n}\n\n.online {\n\tcolor: rgb(187, 230, 0);\n}\n\n.unline {\n\tcolor: rgba(255, 255, 255, 0.4);\n}\n\n.device-id {\n\tfont-size: 26rpx;\n\tcolor: #999;\n\tmargin-bottom: 20rpx;\n\tdisplay: block;\n}\n\n.device-info {\n\tdisplay: flex;\n\tfont-size: 28rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tposition: relative;\n\twidth: 100%;\n}\n.device-flex{\n\tdisplay: flex;\n\tjustify-content: space-between;\n\t\n}\n\n.deviceIMG {\n\twidth: 100rpx;\n\theight: 100rpx;\n\tborder-radius: 16rpx;\n\tposition: relative;\n\tbackground-color: rgba(42, 42, 42, 0.6);\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.IMG {\n\twidth: 68rpx;\n\theight: 50rpx;\n\tmargin-left: 17%;\n}\n\n.onlines::before {\n\tcontent: '';\n\tposition: absolute;\n\twidth: 15rpx;\n\theight: 15rpx;\n\tbackground: rgb(0, 171, 103);\n\tborder-radius: 50%;\n\tleft: 120rpx;\n\ttop: 15rpx\n}\n\n.line {\n\twidth: 2rpx;\n\theight: 24rpx;\n\tbackground: linear-gradient(90deg,\n\t\t\trgba(0, 0, 0, 0) 0%,\n\t\t\trgb(255, 255, 255) 50%,\n\t\t\trgba(255, 255, 255, 0) 100%);\n\tmargin-top: 12rpx;\n}\n\n.loading-status {\n\ttext-align: center;\n\tcolor: rgba(255, 255, 255, 0.6);\n\tpadding: 20rpx;\n\tfont-size: 22rpx;\n} */\n.device-header {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-bottom: 15rpx;\n\tpadding: 30rpx 0 10rpx 30rpx;\n}\n.unline {\n\tcolor: rgba(255, 255, 255, 0.4);\n}\n.device-name {\n\tfont-size: 32rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tmargin-left: 24rpx;\n\tline-height: 50rpx;\n\twidth: 75%;\n\twhite-space: nowrap;\n}\n.ID {\n\tcolor: rgba(255, 255, 255, 0.6);\n\tfont-size: 26rpx;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tposition: relative;\n}\n.device-status {\n\twidth: 122rpx;\n\theight: 52rpx;\n\tfont-size: 26rpx;\n\tborder-radius: 0px 8px 0px 8px;\n\tbackground-color: rgb(42, 42, 42);\n\tposition: absolute;\n\ttop: 0rpx;\n\tright: 0rpx;\n\ttext-align: center;\n\tline-height: 52rpx;\n}\n.circle {\n\twidth: 8rpx;\n\theight: 40rpx;\n\tposition: absolute;\n\tright: 25rpx;\n\ttop: 60rpx;\n}\n.online {\n\tcolor: rgb(187, 230, 0);\n}\n.device-id {\n\tfont-size: 26rpx;\n\tcolor: #999;\n\tmargin-bottom: 20rpx;\n\tdisplay: block;\n}\n.device-info {\n\tdisplay: flex;\n\tjustify-content: space-evenly;\n\tfont-size: 28rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tposition: relative;\n\tpadding: 0rpx 0rpx 30rpx 30rpx;\n}\n.deviceIMG {\n\twidth: 100rpx;\n\theight: 100rpx;\n\tborder-radius: 16rpx;\n\tposition: relative;\n\tbackground-color: rgba(42, 42, 42, 0.6);\n\tdisplay: flex;\n\talign-items: center;\n}\n.IMG {\n\twidth: 68rpx;\n\theight: 50rpx;\n\tmargin-left: 17%;\n}\n.onlines {\n\tposition: relative;\n}\n.onlines::before {\n\tcontent: '';\n\tposition: absolute;\n\twidth: 15rpx;\n\theight: 15rpx;\n\tbackground: rgb(0, 171, 103);\n\tborder-radius: 50%;\n\ttop: 20rpx;\n\tleft: -20rpx\n}\n.line {\n\twidth: 2rpx;\n\theight: 24rpx;\n\tbackground: linear-gradient(90deg,\n\t\t\trgba(0, 0, 0, 0) 0%,\n\t\t\trgb(255, 255, 255) 50%,\n\t\t\trgba(255, 255, 255, 0) 100%);\n\tmargin-top: 12rpx;\n}\n.loading-status {\n\ttext-align: center;\n\tcolor: rgba(255, 255, 255, 0.6);\n\tpadding: 20rpx;\n\tfont-size: 22rpx;\n}\n/* 遮罩层 */\n.agreement-mask {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tz-index: 9999;\n}\n.popup-Title {\n\tcolor: rgba(255, 255, 255, 0.86);\n\ttext-align: center;\n\tpadding: 30rpx 0rpx;\n}\n.popup-buttons {\n\tdisplay: flex;\n\ttext-align: center;\n}\n/* 弹窗主体 */\n.agreement-popup {\n\twidth: 100%;\n\theight: 50%;\n\tbackground-color: rgb(42, 42, 42);\n\tborder-radius: 60rpx 60rpx 0rpx 0rpx;\n\tpadding: 40rpx;\n\tbox-sizing: border-box;\n\tposition: absolute;\n\tbottom: 0rpx;\n}\n.agreement-popupC {\n\twidth: 60%;\n\tbackground-color: rgb(42, 42, 42);\n\tborder-radius: 40rpx;\n\tpadding: 30rpx;\n\ttext-align: center;\n\tborder: 1px solid rgba(255, 200, 78, 0.3);\n}\n.agreement-popupD {\n\twidth: 70%;\n\tbackground-color: rgb(42, 42, 42);\n\tborder-radius: 40rpx;\n\tpadding: 40rpx;\n\ttext-align: center;\n\tborder: 1px solid rgba(187, 230, 0, 0.3);\n}\n.popup-flex {\n\tdisplay: flex;\n\twhite-space: nowrap;\n\tcolor: rgba(255, 255, 255, 0.87);\n\theight: 50rpx;\n\tpadding: 30rpx;\n}\n.popup-input {\n\tborder: 1px solid rgba(255, 255, 255, 0.4);\n\tborder-radius: 12rpx;\n\tmargin-left: 15rpx;\n\tpadding: 10rpx 0rpx;\n\tfont-size: 28rpx;\n}\n.svg {\n\twidth: 58rpx;\n\theight: 62rpx;\n}\n/* 通用按钮样式 */\n.btn {\n\theight: 60rpx;\n\tline-height: 60rpx;\n\tborder-radius: 40rpx;\n\tfont-size: 24rpx;\n\tmargin: 10rpx auto;\n\ttext-align: center;\n}\n/* 同意按钮 */\n.agreeBtn {\n\tbackground: #FFC84E;\n\tcolor: #232323;\n\tborder: none;\n\twidth: 170rpx !important;\n}\n.agreeBtn4 {\n\tbackground: rgba(187, 230, 0, 1);\n\tcolor: #232323;\n\tborder: none;\n\twidth: 170rpx !important;\n}\n.closeBtn {\n\tborder: 1px solid rgba(255, 255, 255, 0.2);\n\tbackground-color: rgba(35, 35, 35, 0.87);\n\tcolor: rgba(255, 255, 255, 1);\n}\n/* 提示框样式 */\n.tooltip-box {\n\tposition: fixed;\n\tright: 18rpx;\n\ttop: 140rpx;\n\t/* 根据导航栏高度调整 */\n\tz-index: 9999;\n}\n.tooltip-arrow {\n\twidth: 0;\n\theight: 0;\n\tborder-left: 8px solid transparent;\n\tborder-right: 8px solid transparent;\n\tborder-bottom: 8px solid #333;\n\tposition: absolute;\n\tright: 12px;\n\ttop: -8px;\n}\n.tooltip-content {\n\tborder-radius: 8rpx;\n\t-webkit-backdrop-filter: blur(14px);\n\t backdrop-filter: blur(14px);\n\tbackground: rgba(58, 58, 58, 1);\n\tpadding: 10px 0;\n\tmin-width: 120px;\n}\n.tooltip-item {\n\tpadding: 8px 16px;\n\tdisplay: flex;\n\talign-items: center;\n\tcolor: #fff;\n}\n.tooltip-item uni-text {\n\tmargin-left: 8px;\n\tfont-size: 14px;\n}\n.item-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n", ""]); +exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* 页面整体样式 */\n.device-page {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 100vh;\n\tbackground-color: rgb(18, 18, 18);\n\tpadding: 30rpx;\n}\n.tab-bar {\n\twidth: 100%;\n\tcolor: rgb(255, 255, 255);\n\twhite-space: nowrap;\n\t/* 禁止换行 */\n\toverflow: hidden;\n}\n.tab-container {\n\tdisplay: flex;\n\t/* justify-content: space-around; */\n\tcursor: pointer;\n\tmargin-bottom: 40rpx;\n\t/* \tmin-width: 100%; */\n\t/* 最小宽度 */\n}\n.tab-item {\n\tfont-size: 28rpx;\n\t/* \tmin-width: 120rpx; */\n\tpadding: 0 30rpx;\n\t/* 左右内边距 */\n\ttext-align: center;\n\t/* 文字居中 */\n\t/* 设置最小宽度 */\n}\n.active {\n\tcolor: rgba(187, 230, 0, 1);\n\tborder-bottom: 6rpx solid rgba(187, 230, 0, 1);\n\theight: 60rpx;\n}\n.sendFlex {\n\tdisplay: flex;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tjustify-content: flex-end;\n\tcursor: pointer;\n\tmargin-bottom: 30rpx;\n\tfont-size: 28rpx;\n}\n.gprs {\n\twidth: 28rpx;\n\theight: 35rpx;\n\tposition: absolute;\n\tleft: 50rpx\n}\n.Sendmessage {\n\tmargin-left: 50rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n}\n.callpolice {\n\tcolor: rgba(224, 52, 52, 1);\n}\n/* 设备卡片 */\n.device-card {\n\tbackground-color: rgb(26, 26, 26);\n\tborder-radius: 16rpx;\n\tmargin-bottom: 20rpx;\n\tbox-sizing: border-box;\n\tposition: relative;\n}\n/* \t.device-header {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-bottom: 15rpx;\n\tpadding: 30rpx 0 10rpx 30rpx;\n\twidth: 100%;\n}\n\n.device-name {\n\tfont-size: 28rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tmargin-left: 24rpx;\n\tline-height: 50rpx;\n}\n\n.ID {\n\tcolor: rgba(255, 255, 255, 0.6);\n\tfont-size: 24rpx;\n}\n\n.device-status {\n\twidth: 122rpx;\n\theight: 52rpx;\n\tfont-size: 26rpx;\n\tborder-radius: 0px 8px 0px 8px;\n\tbackground-color: rgb(42, 42, 42);\n\tposition: absolute;\n\ttop: 0rpx;\n\tright: 0rpx;\n\ttext-align: center;\n\tline-height: 52rpx;\n}\n\n.circle {\n\twidth: 8rpx;\n\theight: 40rpx;\n\tposition: absolute;\n\tright: 18rpx;\n\ttop: 65rpx;\n}\n\n.online {\n\tcolor: rgb(187, 230, 0);\n}\n\n.unline {\n\tcolor: rgba(255, 255, 255, 0.4);\n}\n\n.device-id {\n\tfont-size: 26rpx;\n\tcolor: #999;\n\tmargin-bottom: 20rpx;\n\tdisplay: block;\n}\n\n.device-info {\n\tdisplay: flex;\n\tfont-size: 28rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tposition: relative;\n\twidth: 100%;\n}\n.device-flex{\n\tdisplay: flex;\n\tjustify-content: space-between;\n\t\n}\n\n.deviceIMG {\n\twidth: 100rpx;\n\theight: 100rpx;\n\tborder-radius: 16rpx;\n\tposition: relative;\n\tbackground-color: rgba(42, 42, 42, 0.6);\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.IMG {\n\twidth: 68rpx;\n\theight: 50rpx;\n\tmargin-left: 17%;\n}\n\n.onlines::before {\n\tcontent: '';\n\tposition: absolute;\n\twidth: 15rpx;\n\theight: 15rpx;\n\tbackground: rgb(0, 171, 103);\n\tborder-radius: 50%;\n\tleft: 120rpx;\n\ttop: 15rpx\n}\n\n.line {\n\twidth: 2rpx;\n\theight: 24rpx;\n\tbackground: linear-gradient(90deg,\n\t\t\trgba(0, 0, 0, 0) 0%,\n\t\t\trgb(255, 255, 255) 50%,\n\t\t\trgba(255, 255, 255, 0) 100%);\n\tmargin-top: 12rpx;\n}\n\n.loading-status {\n\ttext-align: center;\n\tcolor: rgba(255, 255, 255, 0.6);\n\tpadding: 20rpx;\n\tfont-size: 22rpx;\n} */\n.device-header {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-bottom: 15rpx;\n\tpadding: 30rpx 0 10rpx 30rpx;\n}\n.unline {\n\tcolor: rgba(255, 255, 255, 0.4);\n}\n.device-name {\n\tfont-size: 32rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tmargin-left: 24rpx;\n\tline-height: 50rpx;\n\twidth: 75%;\n\twhite-space: nowrap;\n}\n.ID {\n\tcolor: rgba(255, 255, 255, 0.6);\n\tfont-size: 26rpx;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tposition: relative;\n}\n.device-status {\n\twidth: 122rpx;\n\theight: 52rpx;\n\tfont-size: 26rpx;\n\tborder-radius: 0px 8px 0px 8px;\n\tbackground-color: rgb(42, 42, 42);\n\tposition: absolute;\n\ttop: 0rpx;\n\tright: 0rpx;\n\ttext-align: center;\n\tline-height: 52rpx;\n}\n.circle {\n\twidth: 8rpx;\n\theight: 40rpx;\n\tposition: absolute;\n\tright: 25rpx;\n\ttop: 60rpx;\n}\n.online {\n\tcolor: rgb(187, 230, 0);\n}\n.device-id {\n\tfont-size: 26rpx;\n\tcolor: #999;\n\tmargin-bottom: 20rpx;\n\tdisplay: block;\n}\n.device-info {\n\tdisplay: flex;\n\tjustify-content: space-evenly;\n\tfont-size: 28rpx;\n\tcolor: rgba(255, 255, 255, 0.87);\n\tposition: relative;\n\tpadding: 0rpx 0rpx 30rpx 30rpx;\n}\n.deviceIMG {\n\twidth: 100rpx;\n\theight: 100rpx;\n\tborder-radius: 16rpx;\n\tposition: relative;\n\tbackground-color: rgba(42, 42, 42, 0.6);\n\tdisplay: flex;\n\talign-items: center;\n}\n.IMG {\n\twidth: 68rpx;\n\theight: 50rpx;\n\tmargin-left: 17%;\n}\n.onlines {\n\tposition: relative;\n}\n.onlines::before {\n\tcontent: '';\n\tposition: absolute;\n\twidth: 15rpx;\n\theight: 15rpx;\n\tbackground: rgb(0, 171, 103);\n\tborder-radius: 50%;\n\ttop: 20rpx;\n\tleft: -20rpx\n}\n.line {\n\twidth: 2rpx;\n\theight: 24rpx;\n\tbackground: linear-gradient(90deg,\n\t\t\trgba(0, 0, 0, 0) 0%,\n\t\t\trgb(255, 255, 255) 50%,\n\t\t\trgba(255, 255, 255, 0) 100%);\n\tmargin-top: 12rpx;\n}\n.loading-status {\n\ttext-align: center;\n\tcolor: rgba(255, 255, 255, 0.6);\n\tpadding: 20rpx;\n\tfont-size: 22rpx;\n}\n/* 遮罩层 */\n.agreement-mask {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tz-index: 9999;\n}\n.popup-Title {\n\tcolor: rgba(255, 255, 255, 0.86);\n\ttext-align: center;\n\tpadding: 30rpx 0rpx;\n}\n.popup-buttons {\n\tdisplay: flex;\n\ttext-align: center;\n}\n/* 弹窗主体 */\n.agreement-popup {\n\twidth: 100%;\n\theight: 50%;\n\tbackground-color: rgb(42, 42, 42);\n\tborder-radius: 60rpx 60rpx 0rpx 0rpx;\n\tpadding: 40rpx;\n\tbox-sizing: border-box;\n\tposition: absolute;\n\tbottom: 0rpx;\n}\n.agreement-popupC {\n\twidth: 60%;\n\tbackground-color: rgb(42, 42, 42);\n\tborder-radius: 40rpx;\n\tpadding: 30rpx;\n\ttext-align: center;\n\tborder: 1px solid rgba(255, 200, 78, 0.3);\n}\n.agreement-popupD {\n\twidth: 70%;\n\tbackground-color: rgb(42, 42, 42);\n\tborder-radius: 40rpx;\n\tpadding: 40rpx;\n\ttext-align: center;\n\tborder: 1px solid rgba(187, 230, 0, 0.3);\n}\n.popup-flex {\n\tdisplay: flex;\n\twhite-space: nowrap;\n\tcolor: rgba(255, 255, 255, 0.87);\n\theight: 50rpx;\n\tpadding: 30rpx;\n}\n.popup-input {\n\tborder: 1px solid rgba(255, 255, 255, 0.4);\n\tborder-radius: 12rpx;\n\tmargin-left: 15rpx;\n\tpadding: 10rpx 0rpx;\n\tfont-size: 28rpx;\n}\n.svg {\n\twidth: 58rpx;\n\theight: 62rpx;\n}\n/* 通用按钮样式 */\n.btn {\n\theight: 60rpx;\n\tline-height: 60rpx;\n\tborder-radius: 40rpx;\n\tfont-size: 24rpx;\n\tmargin: 10rpx auto;\n\ttext-align: center;\n}\n/* 同意按钮 */\n.agreeBtn {\n\tbackground: #FFC84E;\n\tcolor: #232323;\n\tborder: none;\n\twidth: 170rpx !important;\n}\n.agreeBtn4 {\n\tbackground: rgba(187, 230, 0, 1);\n\tcolor: #232323;\n\tborder: none;\n\twidth: 170rpx !important;\n}\n.closeBtn {\n\tborder: 1px solid rgba(255, 255, 255, 0.2);\n\tbackground-color: rgba(35, 35, 35, 0.87);\n\tcolor: rgba(255, 255, 255, 1);\n}\n/* 提示框样式 */\n.tooltip-box {\n\tposition: fixed;\n\tright: 18rpx;\n\ttop: 140rpx;\n\t/* 根据导航栏高度调整 */\n\tz-index: 9999;\n}\n.tooltip-arrow {\n\twidth: 0;\n\theight: 0;\n\tborder-left: 8px solid transparent;\n\tborder-right: 8px solid transparent;\n\tborder-bottom: 8px solid #333;\n\tposition: absolute;\n\tright: 12px;\n\ttop: -8px;\n}\n.tooltip-content {\n\tborder-radius: 8rpx;\n\t-webkit-backdrop-filter: blur(14px);\n\t backdrop-filter: blur(14px);\n\tbackground: rgba(58, 58, 58, 1);\n\tpadding: 10px 0;\n\tmin-width: 120px;\n}\n.tooltip-item {\n\tpadding: 8px 16px;\n\tdisplay: flex;\n\talign-items: center;\n\tcolor: #fff;\n}\n.tooltip-item uni-text {\n\tmargin-left: 8px;\n\tfont-size: 14px;\n}\n.item-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n", ""]); // Exports module.exports = exports; @@ -9526,6 +9537,151 @@ module.exports = exports; /***/ }), /* 192 */ +/*!*****************************************************!*\ + !*** D:/APP/pages/common/map/index.vue?mpType=page ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=78172cf8&mpType=page */ 193); +/* 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 */ 195); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony import */ var _index_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&lang=css&mpType=page */ 200); +/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 18); + +var renderjs + + + + + +/* normalize component */ + +var component = Object(_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__["default"], + _index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"], + _index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null, + false, + _index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"], + renderjs +) + +component.options.__file = "pages/common/map/index.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), +/* 193 */ +/*!***********************************************************************************!*\ + !*** D:/APP/pages/common/map/index.vue?vue&type=template&id=78172cf8&mpType=page ***! + \***********************************************************************************/ +/*! exports provided: render, staticRenderFns, recyclableRender, components */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./index.vue?vue&type=template&id=78172cf8&mpType=page */ 194); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_78172cf8_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); + + + +/***/ }), +/* 194 */ +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./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--17-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!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/APP/pages/common/map/index.vue?vue&type=template&id=78172cf8&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( + "uni-view", + { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } }, + [ + _c("v-uni-map", { + staticClass: _vm._$g(1, "sc"), + attrs: { + latitude: _vm._$g(1, "a-latitude"), + longitude: _vm._$g(1, "a-longitude"), + customMapStyle: _vm._$g(1, "a-customMapStyle"), + "show-location": true, + markers: _vm._$g(1, "a-markers"), + _i: 1, + }, + }), + ], + 1 + ) +} +var recyclableRender = false +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), +/* 195 */ +/*!*****************************************************************************!*\ + !*** D:/APP/pages/common/map/index.vue?vue&type=script&lang=js&mpType=page ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./index.vue?vue&type=script&lang=js&mpType=page */ 196); +/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), +/* 196 */ +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./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!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/APP/pages/common/map/index.vue?vue&type=script&lang=js&mpType=page ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _default = { + data: function data() { + return { + wxsProps: {} + }; + }, + components: {} +}; +exports.default = _default; + +/***/ }), +/* 197 */ /*!********************************************************!*\ !*** D:/APP/App.vue?vue&type=style&index=0&lang=scss& ***! \********************************************************/ @@ -9534,13 +9690,13 @@ module.exports = exports; "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--8-oneOf-1-3!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./App.vue?vue&type=style&index=0&lang=scss& */ 193); +/* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--8-oneOf-1-3!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../du/HBuilderX.4.64.2025042916/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./App.vue?vue&type=style&index=0&lang=scss& */ 198); /* harmony import */ var _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_du_HBuilderX_4_64_2025042916_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 193 */ +/* 198 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/APP/App.vue?vue&type=style&index=0&lang=scss& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ @@ -9550,7 +9706,7 @@ __webpack_require__.r(__webpack_exports__); // style-loader: Adds some css to the DOM by adding a