diff --git a/java-mall-app-shop-admin/App.vue b/java-mall-app-shop-admin/App.vue index e8d29c0..744b412 100644 --- a/java-mall-app-shop-admin/App.vue +++ b/java-mall-app-shop-admin/App.vue @@ -28,16 +28,6 @@ export default { onAPPUpdate() { APPUpdate(this.version); }, - async getAPPversion() { - let params = { - marketId: 100, - packageName: "com.xiaofa.shopAdmin", - currVersionKey: 1, - }; - - let res = await GetAPPversion(params); - console.log(res); - }, }, }; diff --git a/java-mall-app-shop-admin/api/login.js b/java-mall-app-shop-admin/api/login.js index 4d25c46..688f3b0 100644 --- a/java-mall-app-shop-admin/api/login.js +++ b/java-mall-app-shop-admin/api/login.js @@ -1,5 +1,5 @@ -import http from '../utils/http' -import config from '../config/config' +import http from '../utils/http'; +import config from '../config/config'; /** * 登录/注册同一个接口 @@ -10,17 +10,18 @@ import config from '../config/config' * @see https://mall.gpxscs.cn/mobile/account/login/doMerchSmsRegisterAndLogin */ -export function GetLogin (params){ - params.isFilter = true - return new Promise((resolve, reject) => { +export function GetLogin(params) { + return new Promise((resolve, reject) => { http({ - url:'/account/login/doMerchSmsRegisterAndLogin', - method:'post', - data:params, - }).then(res=>{ - resolve(res) - }).catch(e => reject(console.warn(e))) - }) + url: '/account/login/doMerchSmsRegisterAndLogin', + method: 'post', + data: params, + }) + .then((res) => { + resolve(res); + }) + .catch((e) => reject(console.warn(e))); + }); } /** @@ -31,17 +32,19 @@ export function GetLogin (params){ * @see https://mall.gpxscs.cn/mobile/account/login/sendVerifyCode */ -export function GetSmsCode(params){ - params.isFilter = true - return new Promise((resolve, reject) => { +export function GetSmsCode(params) { + params.isFilter = true; + return new Promise((resolve, reject) => { http({ - url:'/account/login/sendVerifyCode', - method:'post', - data:params, - }).then(res=>{ - resolve(res) - }).catch(e => reject(console.warn(e))) - }) + url: '/account/login/sendVerifyCode', + method: 'post', + data: params, + }) + .then((res) => { + resolve(res); + }) + .catch((e) => reject(console.warn(e))); + }); } /** @@ -52,20 +55,21 @@ export function GetSmsCode(params){ * @see https://mall.gpxscs.cn/api/admin/account/account-user-base/doLogin */ -export function GetAccountLogin(params){ - return new Promise((resolve, reject) => { +export function GetAccountLogin(params) { + return new Promise((resolve, reject) => { http({ - url:'/account/account-user-base/doLogin', - method:'post', + url: '/account/account-user-base/doLogin', + method: 'post', params, - baseURL:config.adminApi - }).then(res=>{ - resolve(res) - }).catch(e => reject(console.warn(e))) - }) + baseURL: config.adminApi, + }) + .then((res) => { + resolve(res); + }) + .catch((e) => reject(console.warn(e))); + }); } - /** * 获取图形验证码 * @author Seven @@ -74,15 +78,15 @@ export function GetAccountLogin(params){ * @see https://mall.gpxscs.cn/api/admin/shop/shop-base-config/image */ -export function GetVerifyCode(params){ - return new Promise((resolve, reject) => { +export function GetVerifyCode(params) { + return new Promise((resolve, reject) => { http({ - url:'/shop/shop-base-config/image', - method:'GET', + url: '/shop/shop-base-config/image', + method: 'GET', params, - baseURL:config.adminApi - }).then(res=>{ - resolve(res) - }) - }) -} \ No newline at end of file + baseURL: config.adminApi, + }).then((res) => { + resolve(res); + }); + }); +} diff --git a/java-mall-app-shop-admin/config/appUpdate.js b/java-mall-app-shop-admin/config/appUpdate.js index a91c5e0..d3acdca 100644 --- a/java-mall-app-shop-admin/config/appUpdate.js +++ b/java-mall-app-shop-admin/config/appUpdate.js @@ -8,7 +8,7 @@ const $mainColor = componentConfig.appUpdateColor // 弹窗图标url const $iconUrl = componentConfig.appUpdateIcon ? componentConfig.appUpdateIcon - : '../static/ic_ar.png'; + : '@/static/ic_ar.png'; // 获取当前应用的版本号 export const getCurrentNo = function (callback) { @@ -23,6 +23,7 @@ export const getCurrentNo = function (callback) { }; // 从服务器下载应用资源包(wgt文件) const getDownload = function (data) { + console.log(data.downloadUrl); let dtask; if (data.updateType == 'forcibly' || data.updateType == 'solicit') { let popupData = { @@ -865,32 +866,28 @@ function downloadPopup(data) { export default function (isPrompt = false) { getCurrentNo((versionInfo) => { componentConfig.getServerNo(versionInfo, isPrompt, (res) => { - if (res.updateType == 'forcibly' || res.updateType == 'silent') { - if (/\.wgt$/i.test(res.download_wgt_url)) { - getDownload(res); - } else if (/\.html$/i.test(res.downloadUrl)) { - plus.runtime.openURL(res.downloadUrl); + if (res) { + res.versionInfo = res.description; + + if (res.version_name > versionInfo.versionName) { + res.versionName = res.version_name; + res.downloadUrl = res.download_apk_url; } else { - if (platform == 'android') { - getDownload(res); - } else { - plus.runtime.openURL(res.downloadUrl); + if (res.version_key > versionInfo.versionCode) { + res.versionName = res.version_key; + res.downloadUrl = res.download_wgt_url; } } - } else if (res.updateType == 'solicit') { - updatePopup(res, function () { - if (/\.wgt$/i.test(res.downloadUrl)) { + } + + if (res) { + if (res.updateType == 'forcibly' || res.updateType == 'silent') { + getDownload(res); + } else if (res.updateType == 'solicit') { + updatePopup(res, function () { getDownload(res); - } else if (/\.html$/i.test(res.downloadUrl)) { - plus.runtime.openURL(res.downloadUrl); - } else { - if (platform == 'android') { - getDownload(res); - } else { - plus.runtime.openURL(res.downloadUrl); - } - } - }); + }); + } } }); }); diff --git a/java-mall-app-shop-admin/config/componentConfig.js b/java-mall-app-shop-admin/config/componentConfig.js index 231e219..f0dde0c 100644 --- a/java-mall-app-shop-admin/config/componentConfig.js +++ b/java-mall-app-shop-admin/config/componentConfig.js @@ -84,8 +84,8 @@ export default { if (res && res.status == 200) { if (res.data) { res.data.updateType = 'solicit'; - if (res.data.is_force_update) { - res.updateType = 'forcibly'; + if (res.data.is_force_update == 1) { + res.data.updateType = 'forcibly'; callback && callback(res.data); } else { callback && callback(res.data); @@ -130,5 +130,5 @@ export default { // 弹窗主颜色(不填默认粉色) appUpdateColor: 'f00', // 弹窗图标(不填显示默认图标,链接配置示例如: '/static/demo/ic_attention.png') - appUpdateIcon: '', + appUpdateIcon: '/static/ic_ar.png', }; diff --git a/java-mall-app-shop-admin/manifest.json b/java-mall-app-shop-admin/manifest.json index 6a8a607..c588b6c 100644 --- a/java-mall-app-shop-admin/manifest.json +++ b/java-mall-app-shop-admin/manifest.json @@ -3,7 +3,7 @@ "appid" : "__UNI__95F809F", "package" : "com.xiaofa.shopAdmin", "description" : "", - "versionName" : "1.0.0", + "versionName" : "1.0.1", "versionCode" : 100, "transformPx" : false, /* 5+App特有相关 */ diff --git a/java-mall-app-shop-admin/pages/login/login.vue b/java-mall-app-shop-admin/pages/login/login.vue index 27120f4..6e8162b 100644 --- a/java-mall-app-shop-admin/pages/login/login.vue +++ b/java-mall-app-shop-admin/pages/login/login.vue @@ -85,7 +85,7 @@ 0) {\n this.verifyText = time;\n this.loadSmsTime();\n }\n this.getVerifyCode();\n },\n onHide: function onHide() {},\n methods: _objectSpread(_objectSpread({}, (0, _vuex.mapActions)(\"user\", [\"GetLogin\", \"GetSmsCode\", \"GetAccountLogin\"])), {}, {\n loadSmsTime: function loadSmsTime() {\n var _this = this;\n this.time = setInterval(function () {\n _this.verifyText--;\n uni.setStorageSync(\"loginSmsTime\", _this.verifyText);\n if (_this.verifyText == 0) {\n clearInterval(_this.time);\n _this.verifyText = \"获取验证码\";\n uni.removeStorageSync(\"loginSmsTime\");\n }\n }, 1000);\n },\n skipuRegister: function skipuRegister() {\n uni.navigateTo({\n url: \"/pages/register/register\"\n });\n },\n skipuForgetPwd: function skipuForgetPwd() {\n uni.navigateTo({\n url: \"/pages/forgetPassword/forgetPassword\"\n });\n },\n showPassWord: function showPassWord() {\n if (this.loginType == 1) {\n return \"number\";\n }\n if ([0, 2, 3].includes(this.loginType) && !this.showPwd) {\n return \"password\";\n } else {\n return \"text\";\n }\n },\n handleActiveLoginType: function handleActiveLoginType(index) {\n this.loginType = index;\n if ([1, 2].includes(this.loginType)) {\n this.isPHone = true;\n } else {\n this.isPHone = false;\n }\n this.account = \"\";\n this.password = \"\";\n },\n // 账号密码登录\n accountLogin: function accountLogin() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var params;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (_this2.account) {\n _context.next = 3;\n break;\n }\n _this2.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 3:\n if (_this2.password) {\n _context.next = 6;\n break;\n }\n _this2.$refs[\"uToast\"].show({\n message: \"请输入您的密码\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 6:\n if (_this2.accountCode) {\n _context.next = 9;\n break;\n }\n _this2.$refs[\"uToast\"].show({\n message: \"请输入您的验证码\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 9:\n params = {\n user_account: _this2.account,\n user_password: _this2.password,\n verify_code: _this2.accountCode,\n verify_token: _this2.verify_token\n };\n _this2.isLoading = true;\n _context.next = 13;\n return _this2.GetAccountLogin(params);\n case 13:\n _this2.isLoading = false;\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 验证码 登录 通用验证码为9999\n smsLogin: function smsLogin() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var params;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this3.account) {\n _context2.next = 3;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 3:\n if (_this3.password) {\n _context2.next = 6;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入您的验证码\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 6:\n params = {\n user_mobile: _this3.account,\n rand_key: _this3.account,\n verify_code: _this3.password\n };\n _this3.isLoading = true;\n _context2.next = 10;\n return _this3.GetLogin(params);\n case 10:\n _this3.isLoading = false;\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n handleLogin: function handleLogin() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.t0 = _this4.loginType;\n _context3.next = _context3.t0 === 0 ? 3 : _context3.t0 === 1 ? 6 : _context3.t0 === 2 ? 9 : _context3.t0 === 3 ? 12 : 15;\n break;\n case 3:\n _context3.next = 5;\n return _this4.accountLogin();\n case 5:\n return _context3.abrupt(\"break\", 16);\n case 6:\n _context3.next = 8;\n return _this4.smsLogin();\n case 8:\n return _context3.abrupt(\"break\", 16);\n case 9:\n _context3.next = 11;\n return _this4.accountLogin();\n case 11:\n return _context3.abrupt(\"break\", 16);\n case 12:\n _context3.next = 14;\n return _this4.accountLogin();\n case 14:\n return _context3.abrupt(\"break\", 16);\n case 15:\n return _context3.abrupt(\"break\", 16);\n case 16:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n getSmsCode: function getSmsCode() {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var params;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n __f__(\"log\", _this5.account, \" at pages/login/login.vue:323\");\n if (_this5.account) {\n _context4.next = 4;\n break;\n }\n _this5.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context4.abrupt(\"return\");\n case 4:\n if (_this5.isValidPhoneNumber(_this5.account)) {\n _context4.next = 7;\n break;\n }\n _this5.$refs[\"uToast\"].show({\n message: \"请输入正确的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context4.abrupt(\"return\");\n case 7:\n params = {\n number: _this5.account\n };\n if (!_this5.isSMS) {\n _context4.next = 10;\n break;\n }\n return _context4.abrupt(\"return\");\n case 10:\n _this5.verifyText = 60;\n _this5.isSMS = true;\n _this5.time = setInterval(function () {\n _this5.verifyText--;\n uni.setStorageSync(\"loginSmsTime\", _this5.verifyText);\n if (_this5.verifyText == 0) {\n clearInterval(_this5.time);\n _this5.verifyText = \"获取验证码\";\n _this5.isSMS = false;\n uni.removeStorageSync(\"loginSmsTime\");\n }\n }, 1000);\n _context4.next = 15;\n return _this5.GetSmsCode(params);\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n getVerifyCode: function getVerifyCode() {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var res;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _this6.verify_token = new Date().getTime();\n _context5.next = 3;\n return (0, _login.GetVerifyCode)({\n verify_token: _this6.verify_token\n });\n case 3:\n res = _context5.sent;\n _this6.verifyImgUrl = \"https://mall.gpxscs.cn/api/admin/shop/shop-base-config/image?verify_token=\".concat(_this6.verify_token);\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n handerSkip: function handerSkip() {\n uni.navigateTo({\n url: \"/pages/agreement/agreement\"\n });\n },\n isValidPhoneNumber: function isValidPhoneNumber(phoneNumber) {\n // 定义正则表达式,校验中国大陆手机号码\n var phoneRegex = /^1[3-9]\\d{9}$/;\n return phoneRegex.test(phoneNumber);\n },\n isValidEmail: function isValidEmail(email) {\n var emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/;\n return emailRegex.test(email);\n }\n })\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbG9naW4vbG9naW4udnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJkYXRhIiwiYWNjb3VudCIsInBhc3N3b3JkIiwiaXNMb2FkaW5nIiwicmVnaXN0ZXJDb2RlIiwibG9naW5UeXBlIiwicGxhY2Vob2xkZXJBcnIiLCJwbGFjZWhvbGRlckFycjIiLCJ2ZXJpZnlUZXh0IiwidGltZSIsImNsaWVudF9pbmZvIiwiaXNQSG9uZSIsImlzU01TIiwic2hvd1B3ZCIsInZlcmlmeV90b2tlbiIsInZlcmlmeUltZ1VybCIsImFjY291bnRDb2RlIiwiY29tcHV0ZWQiLCJvblNob3ciLCJvbkhpZGUiLCJtZXRob2RzIiwibG9hZFNtc1RpbWUiLCJ1bmkiLCJjbGVhckludGVydmFsIiwic2tpcHVSZWdpc3RlciIsInVybCIsInNraXB1Rm9yZ2V0UHdkIiwic2hvd1Bhc3NXb3JkIiwiaGFuZGxlQWN0aXZlTG9naW5UeXBlIiwiYWNjb3VudExvZ2luIiwibWVzc2FnZSIsInR5cGUiLCJkdXJhdGlvbiIsInBhcmFtcyIsInVzZXJfYWNjb3VudCIsInVzZXJfcGFzc3dvcmQiLCJ2ZXJpZnlfY29kZSIsInNtc0xvZ2luIiwidXNlcl9tb2JpbGUiLCJyYW5kX2tleSIsImhhbmRsZUxvZ2luIiwiZ2V0U21zQ29kZSIsIm51bWJlciIsImdldFZlcmlmeUNvZGUiLCJyZXMiLCJoYW5kZXJTa2lwIiwiaXNWYWxpZFBob25lTnVtYmVyIiwiaXNWYWxpZEVtYWlsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBNElBO0FBQ0E7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDLGlCQUNBLGVBQ0EsWUFDQSxZQUNBLFVBQ0E7TUFDQUMsa0JBQ0EsV0FDQSxZQUNBLFdBQ0EsVUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNB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QUFBO1VBQUE7UUFBQTtNQUFBO0lBQ0E7SUFDQUM7TUFDQXZCO1FBQ0FHO01BQ0E7SUFDQTtJQUNBcUI7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtFQUFBO0FBRUE7QUFBQSwyQiIsImZpbGUiOiI5Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImxvZ2luLWNvbnRhaW5lclwiPlxyXG4gICAgPHUtbmF2YmFyIDphdXRvQmFjaz1cInRydWVcIiA6c2FmZUFyZWFJbnNldFRvcD1cInRydWVcIj5cclxuICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJyaWdodFwiPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwiYnRuLXJlZ2lzdGVyXCIgQGNsaWNrPVwic2tpcHVSZWdpc3RlclwiPuW8gOW6lzwvdmlldz5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgIDwvdS1uYXZiYXI+XHJcbiAgICA8dmlldyBjbGFzcz1cImxvZ2luLWNvbnRlbnRcIj5cclxuICAgICAgPHZpZXcgY2xhc3M9XCJhY2NvdW50LWNvbnRlbnRcIj5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImxvZ2luLXR5cGVcIj5cclxuICAgICAgICAgIDx2aWV3XHJcbiAgICAgICAgICAgIDpjbGFzcz1cIlsnbG9naW4tdHlwZS1pdGVtJywgeyBhY3RpdmU6IGxvZ2luVHlwZSA9PSAwIH1dXCJcclxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQWN0aXZlTG9naW5UeXBlKDApXCJcclxuICAgICAgICAgICAgPui0puWPt+eZu+W9lTwvdmlld1xyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPHZpZXcgY2xhc3M9XCJsb2dpbi10eXBlLWxpbmVcIj48L3ZpZXc+XHJcbiAgICAgICAgICA8dmlld1xyXG4gICAgICAgICAgICA6Y2xhc3M9XCJbJ2xvZ2luLXR5cGUtaXRlbScsIHsgYWN0aXZlOiBsb2dpblR5cGUgPT0gMSB9XVwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZUFjdGl2ZUxvZ2luVHlwZSgxKVwiXHJcbiAgICAgICAgICAgID7pqozor4HnoIHnmbvlvZU8L3ZpZXdcclxuICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJpbnB1dC1jb250ZW50XCI+XHJcbiAgICAgICAgICA8dmlldyBjbGFzcz1cImFjY291bnQtbG9naW5cIj5cclxuICAgICAgICAgICAgPHUtaW5wdXRcclxuICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWJsb2NrXCJcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiYWNjb3VudFwiXHJcbiAgICAgICAgICAgICAgOnR5cGU9XCJpc1BIb25lID8gJ251bWJlcicgOiAndGV4dCdcIlxyXG4gICAgICAgICAgICAgIDpib3JkZXI9XCInZmFsc2UnXCJcclxuICAgICAgICAgICAgICA6Y29sb3I9XCInIzU1NTU1NSdcIlxyXG4gICAgICAgICAgICAgIDpjbGVhcmFibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA6bWF4bGVuZ3RoPVwiaXNQSG9uZSA/IDExIDogOTlcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlcj1cInBsYWNlaG9sZGVyQXJyW2xvZ2luVHlwZV1cIlxyXG4gICAgICAgICAgICAgIDpoZWlnaHQ9XCI2MFwiXHJcbiAgICAgICAgICAgICAgOmF1dG8taGVpZ2h0PVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgOnBsYWNlaG9sZGVyLXN0eWxlPVwiJ2NvbG9yOiM5OTk5OTk7J1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cInByZWZpeFwiPlxyXG4gICAgICAgICAgICAgICAgPHRleHQgY2xhc3M9XCJpbnB1dC1sYWJlbFwiPui0puWPty/miYvmnLrlj7c8L3RleHQ+XHJcbiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC91LWlucHV0PlxyXG4gICAgICAgICAgICA8dS1pbnB1dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtYmxvY2tcIlxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgOnR5cGU9XCJzaG93UGFzc1dvcmQoKVwiXHJcbiAgICAgICAgICAgICAgOmNvbG9yPVwiJyM1NTU1NTUnXCJcclxuICAgICAgICAgICAgICA6Ym9yZGVyPVwiJ2ZhbHNlJ1wiXHJcbiAgICAgICAgICAgICAgOmNsZWFyYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlcj1cInBsYWNlaG9sZGVyQXJyMltsb2dpblR5cGVdXCJcclxuICAgICAgICAgICAgICA6aGVpZ2h0PVwiNjBcIlxyXG4gICAgICAgICAgICAgIDphdXRvLWhlaWdodD1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlci1zdHlsZT1cIidjb2xvcjogIzk5OTk5OTsnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDIwcnB4XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImlucHV0LWxhYmVsXCI+e3tcclxuICAgICAgICAgICAgICAgICAgbG9naW5UeXBlID09IDAgPyBcIuWvhueggVwiIDogXCLpqozor4HnoIFcIlxyXG4gICAgICAgICAgICAgICAgfX08L3RleHQ+XHJcbiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cInN1ZmZpeFwiPlxyXG4gICAgICAgICAgICAgICAgPHUtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIHYtaWY9XCJsb2dpblR5cGUgPT0gMVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVyaWZ5LWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgIDpoYWlyLWxpbmU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiZ2V0U21zQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgID57eyB2ZXJpZnlUZXh0IH19PC91LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHUtaWNvblxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZXllXCJcclxuICAgICAgICAgICAgICAgICAgdi1pZj1cIlswLCAyLCAzXS5pbmNsdWRlcyhsb2dpblR5cGUpICYmICFzaG93UHdkXCJcclxuICAgICAgICAgICAgICAgICAgOmNvbG9yPVwiJyM1NTU1NTUnXCJcclxuICAgICAgICAgICAgICAgICAgc2l6ZT1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd1B3ZCA9ICFzaG93UHdkXCJcclxuICAgICAgICAgICAgICAgID48L3UtaWNvbj5cclxuICAgICAgICAgICAgICAgIDx1LWljb25cclxuICAgICAgICAgICAgICAgICAgbmFtZT1cImV5ZS1maWxsXCJcclxuICAgICAgICAgICAgICAgICAgdi1pZj1cIlswLCAyLCAzXS5pbmNsdWRlcyhsb2dpblR5cGUpICYmIHNob3dQd2RcIlxyXG4gICAgICAgICAgICAgICAgICA6Y29sb3I9XCInIzU1NTU1NSdcIlxyXG4gICAgICAgICAgICAgICAgICBzaXplPVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzaG93UHdkID0gIXNob3dQd2RcIlxyXG4gICAgICAgICAgICAgICAgPjwvdS1pY29uPlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvdS1pbnB1dD5cclxuICAgICAgICAgICAgPHUtaW5wdXRcclxuICAgICAgICAgICAgICB2LWlmPVwibG9naW5UeXBlID09IDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtYmxvY2tcIlxyXG4gICAgICAgICAgICAgIHYtbW9kZWwubnVtYmVyPVwiYWNjb3VudENvZGVcIlxyXG4gICAgICAgICAgICAgIDpjb2xvcj1cIicjNTU1NTU1J1wiXHJcbiAgICAgICAgICAgICAgOmJvcmRlcj1cIidmYWxzZSdcIlxyXG4gICAgICAgICAgICAgIDpjbGVhcmFibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA6cGxhY2Vob2xkZXI9XCIn6L6T5YWl6aqM6K+B56CBJ1wiXHJcbiAgICAgICAgICAgICAgOmhlaWdodD1cIjYwXCJcclxuICAgICAgICAgICAgICA6YXV0by1oZWlnaHQ9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA6cGxhY2Vob2xkZXItc3R5bGU9XCInY29sb3I6ICM5OTk5OTk7J1wiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAyMHJweFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cInByZWZpeFwiPlxyXG4gICAgICAgICAgICAgICAgPHRleHQgY2xhc3M9XCJpbnB1dC1sYWJlbFwiPumqjOivgeeggTwvdGV4dD5cclxuICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwic3VmZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dS0taW1hZ2VcclxuICAgICAgICAgICAgICAgICAgOnNob3dMb2FkaW5nPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpzcmM9XCJ2ZXJpZnlJbWdVcmxcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEyMHB4XCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNDBweFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cImdldFZlcmlmeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgPjwvdS0taW1hZ2U+XHJcbiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC91LWlucHV0PlxyXG4gICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgPCEtLSA8dmlldyBjbGFzcz1cInRpcHMtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cInRpcHMtaXRlbVwiIEBjbGljaz1cInNraXB1UmVnaXN0ZXJcIj7nq4vljbPms6jlhow8L3ZpZXc+XHJcbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidGlwcy1pdGVtXCIgQGNsaWNrPVwic2tpcHVGb3JnZXRQd2RcIj7lv5jorrDlr4bnoIHvvJ88L3ZpZXc+XHJcbiAgICAgICAgICA8L3ZpZXc+IC0tPlxyXG4gICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJidG4tY29udGVudFwiPlxyXG4gICAgICAgICAgPHUtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLWxvZ2luXCJcclxuICAgICAgICAgICAgOnJpcHBsZT1cInRydWVcIlxyXG4gICAgICAgICAgICA6cmlwcGxlLWJnLWNvbG9yPVwiJ3JnYmEoMCwgMCwgMCwgMC4xNSknXCJcclxuICAgICAgICAgICAgOmxvYWRpbmc9XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVMb2dpblwiXHJcbiAgICAgICAgICAgID7nmbvlvZU8L3UtYnV0dG9uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcmdldC1wd2RcIiBAY2xpY2s9XCJza2lwdUZvcmdldFB3ZFwiPuW/mOiusOWvhueggTwvdmlldz5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtY29udGVudFwiPlxyXG4gICAgICAgICAg55m75b2V5Luj6KGo5L2g5bey57uP5ZCM5oSPPHRleHQgQGNsaWNrPVwiaGFuZGVyU2tpcCgpXCIgY2xhc3M9XCJhZ3JlZW1lbnQtaXRlbVwiXHJcbiAgICAgICAgICAgID7jgIrnlKjmiLfljY/orq7jgIs8L3RleHRcclxuICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgIDwvdmlldz5cclxuICAgIDwvdmlldz5cclxuICAgIDx1LXRvYXN0IHJlZj1cInVUb2FzdFwiIC8+XHJcbiAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHsgbWFwQWN0aW9ucywgbWFwU3RhdGUgfSBmcm9tIFwidnVleFwiO1xyXG5pbXBvcnQgeyBHZXRWZXJpZnlDb2RlIH0gZnJvbSBcIkAvYXBpL2xvZ2luXCI7XHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcImxvZ2luXCIsXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFjY291bnQ6IFwiXCIsXHJcbiAgICAgIHBhc3N3b3JkOiBcIlwiLFxyXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICByZWdpc3RlckNvZGU6IFwiXCIsXHJcbiAgICAgIGxvZ2luVHlwZTogMCxcclxuICAgICAgcGxhY2Vob2xkZXJBcnI6IFtcclxuICAgICAgICBcIuivt+i+k+WFpeaCqOeahOi0puWPty/miYvmnLrlj7dcIixcclxuICAgICAgICBcIuivt+i+k+WFpeaCqOeahOaJi+acuuWPt1wiLFxyXG4gICAgICAgIFwi6K+36L6T5YWl5oKo55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgXCLor7fovpPlhaXmgqjnmoTpgq7nrrFcIixcclxuICAgICAgXSxcclxuICAgICAgcGxhY2Vob2xkZXJBcnIyOiBbXHJcbiAgICAgICAgXCLor7fovpPlhaXmgqjnmoTlr4bnoIFcIixcclxuICAgICAgICBcIuivt+i+k+WFpeaCqOeahOmqjOivgeeggVwiLFxyXG4gICAgICAgIFwi6K+36L6T5YWl5oKo55qE5a+G56CBXCIsXHJcbiAgICAgICAgXCLor7fovpPlhaXmgqjnmoTlr4bnoIFcIixcclxuICAgICAgXSxcclxuICAgICAgdmVyaWZ5VGV4dDogXCLojrflj5bpqozor4HnoIFcIixcclxuICAgICAgdGltZTogNjAsXHJcbiAgICAgIGNsaWVudF9pbmZvOiB7fSxcclxuICAgICAgaXNQSG9uZTogZmFsc2UsXHJcbiAgICAgIGlzU01TOiBmYWxzZSxcclxuICAgICAgc2hvd1B3ZDogZmFsc2UsXHJcbiAgICAgIHZlcmlmeV90b2tlbjogXCJcIixcclxuICAgICAgdmVyaWZ5SW1nVXJsOiBcIlwiLFxyXG4gICAgICBhY2NvdW50Q29kZTogXCJcIixcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RhdGUoXCJ1c2VyXCIsIFtcInVrZXlcIiwgXCJhcHByb3ZhbFN0YXR1c1wiXSksXHJcbiAgfSxcclxuICBvblNob3coKSB7XHJcbiAgICAvLyBpZiAodGhpcy51a2V5ICYmIFsxLCAyLCAzXS5pbmNsdWRlcyh0aGlzLmFwcHJvdmFsU3RhdHVzKSkge1xyXG4gICAgLy8gICB1bmkubmF2aWdhdGVUbyh7IHVybDogXCIvcGFnZXMvYXVkaXQvY2hlY2tBdWRpdFwiIH0pO1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gaWYgKHRoaXMudWtleSAmJiB0aGlzLmFwcHJvdmFsU3RhdHVzID09IDQpIHtcclxuICAgIC8vICAgdW5pLm5hdmlnYXRlVG8oeyB1cmw6IFwiL3BhZ2VzL2F1ZGl0L3Nob3AxXCIgfSk7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBsZXQgdGltZSA9IHVuaS5nZXRTdG9yYWdlU3luYyhcImxvZ2luU21zVGltZVwiKSB8fCAwO1xyXG4gICAgaWYgKHRpbWUgPiAwKSB7XHJcbiAgICAgIHRoaXMudmVyaWZ5VGV4dCA9IHRpbWU7XHJcbiAgICAgIHRoaXMubG9hZFNtc1RpbWUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0VmVyaWZ5Q29kZSgpO1xyXG4gIH0sXHJcbiAgb25IaWRlKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLi4ubWFwQWN0aW9ucyhcInVzZXJcIiwgW1wiR2V0TG9naW5cIiwgXCJHZXRTbXNDb2RlXCIsIFwiR2V0QWNjb3VudExvZ2luXCJdKSxcclxuICAgIGxvYWRTbXNUaW1lKCkge1xyXG4gICAgICB0aGlzLnRpbWUgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlUZXh0LS07XHJcblxyXG4gICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYyhcImxvZ2luU21zVGltZVwiLCB0aGlzLnZlcmlmeVRleHQpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52ZXJpZnlUZXh0ID09IDApIHtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lKTtcclxuICAgICAgICAgIHRoaXMudmVyaWZ5VGV4dCA9IFwi6I635Y+W6aqM6K+B56CBXCI7XHJcbiAgICAgICAgICB1bmkucmVtb3ZlU3RvcmFnZVN5bmMoXCJsb2dpblNtc1RpbWVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH0sXHJcbiAgICBza2lwdVJlZ2lzdGVyKCkge1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7IHVybDogXCIvcGFnZXMvcmVnaXN0ZXIvcmVnaXN0ZXJcIiB9KTtcclxuICAgIH0sXHJcbiAgICBza2lwdUZvcmdldFB3ZCgpIHtcclxuICAgICAgdW5pLm5hdmlnYXRlVG8oeyB1cmw6IFwiL3BhZ2VzL2ZvcmdldFBhc3N3b3JkL2ZvcmdldFBhc3N3b3JkXCIgfSk7XHJcbiAgICB9LFxyXG4gICAgc2hvd1Bhc3NXb3JkKCkge1xyXG4gICAgICBpZiAodGhpcy5sb2dpblR5cGUgPT0gMSkge1xyXG4gICAgICAgIHJldHVybiBcIm51bWJlclwiO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChbMCwgMiwgM10uaW5jbHVkZXModGhpcy5sb2dpblR5cGUpICYmICF0aGlzLnNob3dQd2QpIHtcclxuICAgICAgICByZXR1cm4gXCJwYXNzd29yZFwiO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBcInRleHRcIjtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUFjdGl2ZUxvZ2luVHlwZShpbmRleCkge1xyXG4gICAgICB0aGlzLmxvZ2luVHlwZSA9IGluZGV4O1xyXG4gICAgICBpZiAoWzEsIDJdLmluY2x1ZGVzKHRoaXMubG9naW5UeXBlKSkge1xyXG4gICAgICAgIHRoaXMuaXNQSG9uZSA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc1BIb25lID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY2NvdW50ID0gXCJcIjtcclxuICAgICAgdGhpcy5wYXNzd29yZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLy8g6LSm5Y+35a+G56CB55m75b2VXHJcbiAgICBhc3luYyBhY2NvdW50TG9naW4oKSB7XHJcbiAgICAgIGlmICghdGhpcy5hY2NvdW50KSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5oKo55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnBhc3N3b3JkKSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5oKo55qE5a+G56CBXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmFjY291bnRDb2RlKSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5oKo55qE6aqM6K+B56CBXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgdXNlcl9hY2NvdW50OiB0aGlzLmFjY291bnQsXHJcbiAgICAgICAgdXNlcl9wYXNzd29yZDogdGhpcy5wYXNzd29yZCxcclxuICAgICAgICB2ZXJpZnlfY29kZTogdGhpcy5hY2NvdW50Q29kZSxcclxuICAgICAgICB2ZXJpZnlfdG9rZW46IHRoaXMudmVyaWZ5X3Rva2VuLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBhd2FpdCB0aGlzLkdldEFjY291bnRMb2dpbihwYXJhbXMpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSxcclxuICAgIC8vIOmqjOivgeeggSDnmbvlvZUg6YCa55So6aqM6K+B56CB5Li6OTk5OVxyXG4gICAgYXN5bmMgc21zTG9naW4oKSB7XHJcbiAgICAgIGlmICghdGhpcy5hY2NvdW50KSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5oKo55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnBhc3N3b3JkKSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5oKo55qE6aqM6K+B56CBXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgdXNlcl9tb2JpbGU6IHRoaXMuYWNjb3VudCxcclxuICAgICAgICByYW5kX2tleTogdGhpcy5hY2NvdW50LFxyXG4gICAgICAgIHZlcmlmeV9jb2RlOiB0aGlzLnBhc3N3b3JkLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGF3YWl0IHRoaXMuR2V0TG9naW4ocGFyYW1zKTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBoYW5kbGVMb2dpbigpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLmxvZ2luVHlwZSkge1xyXG4gICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgIGF3YWl0IHRoaXMuYWNjb3VudExvZ2luKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnNtc0xvZ2luKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjY291bnRMb2dpbigpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgYXdhaXQgdGhpcy5hY2NvdW50TG9naW4oKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGFzeW5jIGdldFNtc0NvZGUoKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuYWNjb3VudCk7XHJcbiAgICAgIGlmICghdGhpcy5hY2NvdW50KSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5oKo55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRQaG9uZU51bWJlcih0aGlzLmFjY291bnQpKSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5q2j56Gu55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgbnVtYmVyOiB0aGlzLmFjY291bnQsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAodGhpcy5pc1NNUykgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gNjA7XHJcbiAgICAgIHRoaXMuaXNTTVMgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRpbWUgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlUZXh0LS07XHJcblxyXG4gICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYyhcImxvZ2luU21zVGltZVwiLCB0aGlzLnZlcmlmeVRleHQpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52ZXJpZnlUZXh0ID09IDApIHtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lKTtcclxuICAgICAgICAgIHRoaXMudmVyaWZ5VGV4dCA9IFwi6I635Y+W6aqM6K+B56CBXCI7XHJcbiAgICAgICAgICB0aGlzLmlzU01TID0gZmFsc2U7XHJcbiAgICAgICAgICB1bmkucmVtb3ZlU3RvcmFnZVN5bmMoXCJsb2dpblNtc1RpbWVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuR2V0U21zQ29kZShwYXJhbXMpO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGdldFZlcmlmeUNvZGUoKSB7XHJcbiAgICAgIHRoaXMudmVyaWZ5X3Rva2VuID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgIGxldCByZXMgPSBhd2FpdCBHZXRWZXJpZnlDb2RlKHsgdmVyaWZ5X3Rva2VuOiB0aGlzLnZlcmlmeV90b2tlbiB9KTtcclxuICAgICAgdGhpcy52ZXJpZnlJbWdVcmwgPSBgaHR0cHM6Ly9tYWxsLmdweHNjcy5jbi9hcGkvYWRtaW4vc2hvcC9zaG9wLWJhc2UtY29uZmlnL2ltYWdlP3ZlcmlmeV90b2tlbj0ke3RoaXMudmVyaWZ5X3Rva2VufWA7XHJcbiAgICB9LFxyXG4gICAgaGFuZGVyU2tpcCgpIHtcclxuICAgICAgdW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAgIHVybDogXCIvcGFnZXMvYWdyZWVtZW50L2FncmVlbWVudFwiLFxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBpc1ZhbGlkUGhvbmVOdW1iZXIocGhvbmVOdW1iZXIpIHtcclxuICAgICAgLy8g5a6a5LmJ5q2j5YiZ6KGo6L6+5byP77yM5qCh6aqM5Lit5Zu95aSn6ZmG5omL5py65Y+356CBXHJcbiAgICAgIGNvbnN0IHBob25lUmVnZXggPSAvXjFbMy05XVxcZHs5fSQvO1xyXG4gICAgICByZXR1cm4gcGhvbmVSZWdleC50ZXN0KHBob25lTnVtYmVyKTtcclxuICAgIH0sXHJcbiAgICBpc1ZhbGlkRW1haWwoZW1haWwpIHtcclxuICAgICAgdmFyIGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsNn0kLztcclxuICAgICAgcmV0dXJuIGVtYWlsUmVnZXgudGVzdChlbWFpbCk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XHJcbi5sb2dpbi1jb250YWluZXIge1xyXG4gIC5idG4tcmVnaXN0ZXIge1xyXG4gICAgY29sb3I6ICNmNTlhMjM7XHJcbiAgfVxyXG5cclxuICAubG9naW4tY29udGVudCB7XHJcbiAgICBwYWRkaW5nOiAzNCUgNDBycHggMCA0MHJweDtcclxuXHJcbiAgICAubG9nby1ibG9jayB7XHJcbiAgICAgIHdpZHRoOiAyMDBycHg7XHJcbiAgICAgIGhlaWdodDogMjAwcnB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICAgICAgLmxvZ28taW1nIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9zdGF0aWMveGlhb2ZhLWxvZ28ucG5nXCIpO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5sb2dpbi10eXBlIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgIC5sb2dpbi10eXBlLWl0ZW0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwcnB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMDBycHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzJycHg7XHJcbiAgICAgICAgY29sb3I6ICNhYWFhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubG9naW4tdHlwZS1saW5lIHtcclxuICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIGJsYWNrOyAvKiDlt6bovrnmoYYgKi9cclxuICAgICAgICBib3JkZXItcmlnaHQ6IDA7IC8qIOWPs+i+ueahhiAqL1xyXG4gICAgICAgIGJvcmRlci10b3A6IDA7IC8qIOS4iui+ueahhiAqL1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IC8qIOS4i+i+ueahhiAqL1xyXG4gICAgICAgIGhlaWdodDogMzBweDsgLyog5qC55o2u6ZyA6KaB6K6+572u6auY5bqmICovXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgY29sb3I6ICM1NTU1NTU7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAvLyBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgLy8gbGVmdDogODlweDtcclxuICAgICAgICAgIC8vIHRvcDogMzlweDtcclxuICAgICAgICAgIC8vIGJvcmRlci10b3A6IDlweCBzb2xpZCByZWQ7XHJcbiAgICAgICAgICAvLyAvL2JvcmRlci1sZWZ05ZKMYm9yZGVyLXJpZ2h05o2i5oiQ6YCP5piO6ImyIOaJjeiDveW9ouaIkOS4ieinkuW9oiDkuI3nhLbmmK/plb/mlrnlvaJcclxuICAgICAgICAgIC8vIGJvcmRlci1sZWZ0OiAxMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgLy8gYm9yZGVyLXJpZ2h0OiAxMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWNvbnRlbnQge1xyXG4gICAgICBtYXJnaW46IDY4cnB4IDQ0cnB4O1xyXG4gICAgICBwYWRkaW5nOiA0MHJweCAwO1xyXG5cclxuICAgICAgLnUtaW5wdXQge1xyXG4gICAgICAgIHBhZGRpbmc6IDE2cnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBycHg7XHJcbiAgICAgICAgaGVpZ2h0OiA4MHJweDtcclxuICAgICAgICBjb2xvcjogIzk5OTk5OTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwJTtcclxuICAgICAgICBjb2xvcjogIzU1NTU1NTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmlucHV0LWxhYmVsIHtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHJweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGlwcy1jb250ZW50IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBtYXJnaW46IDAgNDhycHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhycHg7XHJcbiAgICAgIGNvbG9yOiByZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ0bi1jb250ZW50IHtcclxuICAgICAgbWFyZ2luOiA0MHJweCA1NnJweDtcclxuXHJcbiAgICAgIC5idG4tbG9naW4ge1xyXG4gICAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjNGI3MWZmO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9yZ2V0LXB3ZCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNjBycHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNnJweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICM3ZjdmN2Y7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWdyZWVtZW50LWNvbnRlbnQge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIGJvdHRvbTogMTAlO1xyXG4gICAgICB3aWR0aDogOTAlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhycHg7XHJcbiAgICAgIGNvbG9yOiAjY2NjO1xyXG5cclxuICAgICAgLmFncmVlbWVudC1pdGVtIHtcclxuICAgICAgICBjb2xvcjogIzRiNzFmZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50aGlyZC1wYXJ0eS1jb250ZW50IHtcclxuICAgICAgbWFyZ2luOiA0MHJweCAwO1xyXG5cclxuICAgICAgLnRpdGxlLWJsb2NrIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMjRycHggMjAlO1xyXG4gICAgICAgIGNvbG9yOiAjOTQ5NDk0O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG4gICAgICAgIC50aXRsZS10ZXh0IHtcclxuICAgICAgICAgIHBhZGRpbmc6IDAgMjBycHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGl0bGUtbGluZSB7XHJcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5NDk0OTQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRoaXJkLXBhcnR5LWltZy1ibG9jayB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xyXG4gICAgfVxyXG5cclxuICAgIC52ZXJpZnktYnRuIHtcclxuICAgICAgd2lkdGg6IDE1MnJweDtcclxuICAgICAgaGVpZ2h0OiA2NHJweDtcclxuICAgICAgZm9udC1zaXplOiAyNHJweDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDUsIDE1NCwgMzUsIDEpO1xyXG5cclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKGRldmljZS13aWR0aDogMzIwcHgpIGFuZCAoZGV2aWNlLWhlaWdodDogNTY4cHgpIGFuZCAoLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpIHtcclxuICAgIC5sb2dpbi1jb250ZW50IHtcclxuICAgICAgcGFkZGluZzogMTBycHggNjBycHggMCA2MHJweDtcclxuXHJcbiAgICAgIC5hY2NvdW50LWNvbnRlbnQge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDQwcnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 72));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 74));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 34);\nvar _login = __webpack_require__(/*! @/api/login */ 99);\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 name: \"login\",\n data: function data() {\n return {\n account: \"\",\n password: \"\",\n isLoading: false,\n registerCode: \"\",\n loginType: 0,\n placeholderArr: [\"请输入您的账号/手机号\", \"请输入您的手机号\", \"请输入您的手机号\", \"请输入您的邮箱\"],\n placeholderArr2: [\"请输入您的密码\", \"请输入您的验证码\", \"请输入您的密码\", \"请输入您的密码\"],\n verifyText: \"获取验证码\",\n time: 60,\n client_info: {},\n isPHone: false,\n isSMS: false,\n showPwd: false,\n verify_token: \"\",\n verifyImgUrl: \"\",\n accountCode: \"\"\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)(\"user\", [\"ukey\", \"approvalStatus\"])),\n onShow: function onShow() {\n // if (this.ukey && [1, 2, 3].includes(this.approvalStatus)) {\n // uni.navigateTo({ url: \"/pages/audit/checkAudit\" });\n // return;\n // }\n\n // if (this.ukey && this.approvalStatus == 4) {\n // uni.navigateTo({ url: \"/pages/audit/shop1\" });\n // return;\n // }\n\n var time = uni.getStorageSync(\"loginSmsTime\") || 0;\n if (time > 0) {\n this.verifyText = time;\n this.loadSmsTime();\n }\n this.getVerifyCode();\n },\n onHide: function onHide() {},\n methods: _objectSpread(_objectSpread({}, (0, _vuex.mapActions)(\"user\", [\"GetLogin\", \"GetSmsCode\", \"GetAccountLogin\"])), {}, {\n loadSmsTime: function loadSmsTime() {\n var _this = this;\n this.time = setInterval(function () {\n _this.verifyText--;\n uni.setStorageSync(\"loginSmsTime\", _this.verifyText);\n if (_this.verifyText == 0) {\n clearInterval(_this.time);\n _this.verifyText = \"获取验证码\";\n uni.removeStorageSync(\"loginSmsTime\");\n }\n }, 1000);\n },\n skipuRegister: function skipuRegister() {\n uni.navigateTo({\n url: \"/pages/register/register\"\n });\n },\n skipuForgetPwd: function skipuForgetPwd() {\n uni.navigateTo({\n url: \"/pages/forgetPassword/forgetPassword\"\n });\n },\n showPassWord: function showPassWord() {\n if (this.loginType == 1) {\n return \"number\";\n }\n if ([0, 2, 3].includes(this.loginType) && !this.showPwd) {\n return \"password\";\n } else {\n return \"text\";\n }\n },\n handleActiveLoginType: function handleActiveLoginType(index) {\n this.loginType = index;\n if ([1, 2].includes(this.loginType)) {\n this.isPHone = true;\n } else {\n this.isPHone = false;\n }\n this.account = \"\";\n this.password = \"\";\n },\n // 账号密码登录\n accountLogin: function accountLogin() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var params;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (_this2.account) {\n _context.next = 3;\n break;\n }\n _this2.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 3:\n if (_this2.password) {\n _context.next = 6;\n break;\n }\n _this2.$refs[\"uToast\"].show({\n message: \"请输入您的密码\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 6:\n if (_this2.accountCode) {\n _context.next = 9;\n break;\n }\n _this2.$refs[\"uToast\"].show({\n message: \"请输入您的验证码\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 9:\n params = {\n user_account: _this2.account,\n user_password: _this2.password,\n verify_code: _this2.accountCode,\n verify_token: _this2.verify_token\n };\n _this2.isLoading = true;\n _context.next = 13;\n return _this2.GetAccountLogin(params);\n case 13:\n _this2.isLoading = false;\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 验证码 登录 通用验证码为9999\n smsLogin: function smsLogin() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var params;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this3.account) {\n _context2.next = 3;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 3:\n if (_this3.password) {\n _context2.next = 6;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入您的验证码\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 6:\n params = {\n user_mobile: _this3.account,\n rand_key: _this3.account,\n verify_code: _this3.password\n };\n _this3.isLoading = true;\n _context2.next = 10;\n return _this3.GetLogin(params);\n case 10:\n _this3.isLoading = false;\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n handleLogin: function handleLogin() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.t0 = _this4.loginType;\n _context3.next = _context3.t0 === 0 ? 3 : _context3.t0 === 1 ? 6 : _context3.t0 === 2 ? 9 : _context3.t0 === 3 ? 12 : 15;\n break;\n case 3:\n _context3.next = 5;\n return _this4.accountLogin();\n case 5:\n return _context3.abrupt(\"break\", 16);\n case 6:\n _context3.next = 8;\n return _this4.smsLogin();\n case 8:\n return _context3.abrupt(\"break\", 16);\n case 9:\n _context3.next = 11;\n return _this4.accountLogin();\n case 11:\n return _context3.abrupt(\"break\", 16);\n case 12:\n _context3.next = 14;\n return _this4.accountLogin();\n case 14:\n return _context3.abrupt(\"break\", 16);\n case 15:\n return _context3.abrupt(\"break\", 16);\n case 16:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n getSmsCode: function getSmsCode() {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var params;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n __f__(\"log\", _this5.account, \" at pages/login/login.vue:323\");\n if (_this5.account) {\n _context4.next = 4;\n break;\n }\n _this5.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context4.abrupt(\"return\");\n case 4:\n if (_this5.isValidPhoneNumber(_this5.account)) {\n _context4.next = 7;\n break;\n }\n _this5.$refs[\"uToast\"].show({\n message: \"请输入正确的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context4.abrupt(\"return\");\n case 7:\n params = {\n number: _this5.account\n };\n if (!_this5.isSMS) {\n _context4.next = 10;\n break;\n }\n return _context4.abrupt(\"return\");\n case 10:\n _this5.verifyText = 60;\n _this5.isSMS = true;\n _this5.time = setInterval(function () {\n _this5.verifyText--;\n uni.setStorageSync(\"loginSmsTime\", _this5.verifyText);\n if (_this5.verifyText == 0) {\n clearInterval(_this5.time);\n _this5.verifyText = \"获取验证码\";\n _this5.isSMS = false;\n uni.removeStorageSync(\"loginSmsTime\");\n }\n }, 1000);\n _context4.next = 15;\n return _this5.getSmsCode(params);\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n getVerifyCode: function getVerifyCode() {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var res;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _this6.verify_token = new Date().getTime();\n _context5.next = 3;\n return (0, _login.GetVerifyCode)({\n verify_token: _this6.verify_token\n });\n case 3:\n res = _context5.sent;\n _this6.verifyImgUrl = \"https://mall.gpxscs.cn/api/admin/shop/shop-base-config/image?verify_token=\".concat(_this6.verify_token);\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n handerSkip: function handerSkip() {\n uni.navigateTo({\n url: \"/pages/agreement/agreement\"\n });\n },\n isValidPhoneNumber: function isValidPhoneNumber(phoneNumber) {\n // 定义正则表达式,校验中国大陆手机号码\n var phoneRegex = /^1[3-9]\\d{9}$/;\n return phoneRegex.test(phoneNumber);\n },\n isValidEmail: function isValidEmail(email) {\n var emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/;\n return emailRegex.test(email);\n }\n })\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbG9naW4vbG9naW4udnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJkYXRhIiwiYWNjb3VudCIsInBhc3N3b3JkIiwiaXNMb2FkaW5nIiwicmVnaXN0ZXJDb2RlIiwibG9naW5UeXBlIiwicGxhY2Vob2xkZXJBcnIiLCJwbGFjZWhvbGRlckFycjIiLCJ2ZXJpZnlUZXh0IiwidGltZSIsImNsaWVudF9pbmZvIiwiaXNQSG9uZSIsImlzU01TIiwic2hvd1B3ZCIsInZlcmlmeV90b2tlbiIsInZlcmlmeUltZ1VybCIsImFjY291bnRDb2RlIiwiY29tcHV0ZWQiLCJvblNob3ciLCJvbkhpZGUiLCJtZXRob2RzIiwibG9hZFNtc1RpbWUiLCJ1bmkiLCJjbGVhckludGVydmFsIiwic2tpcHVSZWdpc3RlciIsInVybCIsInNraXB1Rm9yZ2V0UHdkIiwic2hvd1Bhc3NXb3JkIiwiaGFuZGxlQWN0aXZlTG9naW5UeXBlIiwiYWNjb3VudExvZ2luIiwibWVzc2FnZSIsInR5cGUiLCJkdXJhdGlvbiIsInBhcmFtcyIsInVzZXJfYWNjb3VudCIsInVzZXJfcGFzc3dvcmQiLCJ2ZXJpZnlfY29kZSIsInNtc0xvZ2luIiwidXNlcl9tb2JpbGUiLCJyYW5kX2tleSIsImhhbmRsZUxvZ2luIiwiZ2V0U21zQ29kZSIsIm51bWJlciIsImdldFZlcmlmeUNvZGUiLCJyZXMiLCJoYW5kZXJTa2lwIiwiaXNWYWxpZFBob25lTnVtYmVyIiwiaXNWYWxpZEVtYWlsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBNElBO0FBQ0E7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDLGlCQUNBLGVBQ0EsWUFDQSxZQUNBLFVBQ0E7TUFDQUMsa0JBQ0EsV0FDQSxZQUNBLFdBQ0EsVUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNB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QUFBO1VBQUE7UUFBQTtNQUFBO0lBQ0E7SUFDQUM7TUFDQXZCO1FBQ0FHO01BQ0E7SUFDQTtJQUNBcUI7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtFQUFBO0FBRUE7QUFBQSwyQiIsImZpbGUiOiI5Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImxvZ2luLWNvbnRhaW5lclwiPlxyXG4gICAgPHUtbmF2YmFyIDphdXRvQmFjaz1cInRydWVcIiA6c2FmZUFyZWFJbnNldFRvcD1cInRydWVcIj5cclxuICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJyaWdodFwiPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwiYnRuLXJlZ2lzdGVyXCIgQGNsaWNrPVwic2tpcHVSZWdpc3RlclwiPuW8gOW6lzwvdmlldz5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgIDwvdS1uYXZiYXI+XHJcbiAgICA8dmlldyBjbGFzcz1cImxvZ2luLWNvbnRlbnRcIj5cclxuICAgICAgPHZpZXcgY2xhc3M9XCJhY2NvdW50LWNvbnRlbnRcIj5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImxvZ2luLXR5cGVcIj5cclxuICAgICAgICAgIDx2aWV3XHJcbiAgICAgICAgICAgIDpjbGFzcz1cIlsnbG9naW4tdHlwZS1pdGVtJywgeyBhY3RpdmU6IGxvZ2luVHlwZSA9PSAwIH1dXCJcclxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQWN0aXZlTG9naW5UeXBlKDApXCJcclxuICAgICAgICAgICAgPui0puWPt+eZu+W9lTwvdmlld1xyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPHZpZXcgY2xhc3M9XCJsb2dpbi10eXBlLWxpbmVcIj48L3ZpZXc+XHJcbiAgICAgICAgICA8dmlld1xyXG4gICAgICAgICAgICA6Y2xhc3M9XCJbJ2xvZ2luLXR5cGUtaXRlbScsIHsgYWN0aXZlOiBsb2dpblR5cGUgPT0gMSB9XVwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZUFjdGl2ZUxvZ2luVHlwZSgxKVwiXHJcbiAgICAgICAgICAgID7pqozor4HnoIHnmbvlvZU8L3ZpZXdcclxuICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJpbnB1dC1jb250ZW50XCI+XHJcbiAgICAgICAgICA8dmlldyBjbGFzcz1cImFjY291bnQtbG9naW5cIj5cclxuICAgICAgICAgICAgPHUtaW5wdXRcclxuICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWJsb2NrXCJcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiYWNjb3VudFwiXHJcbiAgICAgICAgICAgICAgOnR5cGU9XCJpc1BIb25lID8gJ251bWJlcicgOiAndGV4dCdcIlxyXG4gICAgICAgICAgICAgIDpib3JkZXI9XCInZmFsc2UnXCJcclxuICAgICAgICAgICAgICA6Y29sb3I9XCInIzU1NTU1NSdcIlxyXG4gICAgICAgICAgICAgIDpjbGVhcmFibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA6bWF4bGVuZ3RoPVwiaXNQSG9uZSA/IDExIDogOTlcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlcj1cInBsYWNlaG9sZGVyQXJyW2xvZ2luVHlwZV1cIlxyXG4gICAgICAgICAgICAgIDpoZWlnaHQ9XCI2MFwiXHJcbiAgICAgICAgICAgICAgOmF1dG8taGVpZ2h0PVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgOnBsYWNlaG9sZGVyLXN0eWxlPVwiJ2NvbG9yOiM5OTk5OTk7J1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cInByZWZpeFwiPlxyXG4gICAgICAgICAgICAgICAgPHRleHQgY2xhc3M9XCJpbnB1dC1sYWJlbFwiPui0puWPty/miYvmnLrlj7c8L3RleHQ+XHJcbiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC91LWlucHV0PlxyXG4gICAgICAgICAgICA8dS1pbnB1dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtYmxvY2tcIlxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgOnR5cGU9XCJzaG93UGFzc1dvcmQoKVwiXHJcbiAgICAgICAgICAgICAgOmNvbG9yPVwiJyM1NTU1NTUnXCJcclxuICAgICAgICAgICAgICA6Ym9yZGVyPVwiJ2ZhbHNlJ1wiXHJcbiAgICAgICAgICAgICAgOmNsZWFyYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlcj1cInBsYWNlaG9sZGVyQXJyMltsb2dpblR5cGVdXCJcclxuICAgICAgICAgICAgICA6aGVpZ2h0PVwiNjBcIlxyXG4gICAgICAgICAgICAgIDphdXRvLWhlaWdodD1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlci1zdHlsZT1cIidjb2xvcjogIzk5OTk5OTsnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDIwcnB4XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImlucHV0LWxhYmVsXCI+e3tcclxuICAgICAgICAgICAgICAgICAgbG9naW5UeXBlID09IDAgPyBcIuWvhueggVwiIDogXCLpqozor4HnoIFcIlxyXG4gICAgICAgICAgICAgICAgfX08L3RleHQ+XHJcbiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cInN1ZmZpeFwiPlxyXG4gICAgICAgICAgICAgICAgPHUtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIHYtaWY9XCJsb2dpblR5cGUgPT0gMVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVyaWZ5LWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgIDpoYWlyLWxpbmU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiZ2V0U21zQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgID57eyB2ZXJpZnlUZXh0IH19PC91LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHUtaWNvblxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZXllXCJcclxuICAgICAgICAgICAgICAgICAgdi1pZj1cIlswLCAyLCAzXS5pbmNsdWRlcyhsb2dpblR5cGUpICYmICFzaG93UHdkXCJcclxuICAgICAgICAgICAgICAgICAgOmNvbG9yPVwiJyM1NTU1NTUnXCJcclxuICAgICAgICAgICAgICAgICAgc2l6ZT1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd1B3ZCA9ICFzaG93UHdkXCJcclxuICAgICAgICAgICAgICAgID48L3UtaWNvbj5cclxuICAgICAgICAgICAgICAgIDx1LWljb25cclxuICAgICAgICAgICAgICAgICAgbmFtZT1cImV5ZS1maWxsXCJcclxuICAgICAgICAgICAgICAgICAgdi1pZj1cIlswLCAyLCAzXS5pbmNsdWRlcyhsb2dpblR5cGUpICYmIHNob3dQd2RcIlxyXG4gICAgICAgICAgICAgICAgICA6Y29sb3I9XCInIzU1NTU1NSdcIlxyXG4gICAgICAgICAgICAgICAgICBzaXplPVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzaG93UHdkID0gIXNob3dQd2RcIlxyXG4gICAgICAgICAgICAgICAgPjwvdS1pY29uPlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvdS1pbnB1dD5cclxuICAgICAgICAgICAgPHUtaW5wdXRcclxuICAgICAgICAgICAgICB2LWlmPVwibG9naW5UeXBlID09IDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtYmxvY2tcIlxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJhY2NvdW50Q29kZVwiXHJcbiAgICAgICAgICAgICAgOmNvbG9yPVwiJyM1NTU1NTUnXCJcclxuICAgICAgICAgICAgICA6Ym9yZGVyPVwiJ2ZhbHNlJ1wiXHJcbiAgICAgICAgICAgICAgOmNsZWFyYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlcj1cIifovpPlhaXpqozor4HnoIEnXCJcclxuICAgICAgICAgICAgICA6aGVpZ2h0PVwiNjBcIlxyXG4gICAgICAgICAgICAgIDphdXRvLWhlaWdodD1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlci1zdHlsZT1cIidjb2xvcjogIzk5OTk5OTsnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDIwcnB4XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImlucHV0LWxhYmVsXCI+6aqM6K+B56CBPC90ZXh0PlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJzdWZmaXhcIj5cclxuICAgICAgICAgICAgICAgIDx1LS1pbWFnZVxyXG4gICAgICAgICAgICAgICAgICA6c2hvd0xvYWRpbmc9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgOnNyYz1cInZlcmlmeUltZ1VybFwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI0MHB4XCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiZ2V0VmVyaWZ5Q29kZVwiXHJcbiAgICAgICAgICAgICAgICA+PC91LS1pbWFnZT5cclxuICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3UtaW5wdXQ+XHJcbiAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICA8IS0tIDx2aWV3IGNsYXNzPVwidGlwcy1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidGlwcy1pdGVtXCIgQGNsaWNrPVwic2tpcHVSZWdpc3RlclwiPueri+WNs+azqOWGjDwvdmlldz5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ0aXBzLWl0ZW1cIiBAY2xpY2s9XCJza2lwdUZvcmdldFB3ZFwiPuW/mOiusOWvhuegge+8nzwvdmlldz5cclxuICAgICAgICAgIDwvdmlldz4gLS0+XHJcbiAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImJ0bi1jb250ZW50XCI+XHJcbiAgICAgICAgICA8dS1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tbG9naW5cIlxyXG4gICAgICAgICAgICA6cmlwcGxlPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIDpyaXBwbGUtYmctY29sb3I9XCIncmdiYSgwLCAwLCAwLCAwLjE1KSdcIlxyXG4gICAgICAgICAgICA6bG9hZGluZz1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZUxvZ2luXCJcclxuICAgICAgICAgICAgPueZu+W9lTwvdS1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZm9yZ2V0LXB3ZFwiIEBjbGljaz1cInNraXB1Rm9yZ2V0UHdkXCI+5b+Y6K6w5a+G56CBPC92aWV3PlxyXG4gICAgICAgIDwvdmlldz5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImFncmVlbWVudC1jb250ZW50XCI+XHJcbiAgICAgICAgICDnmbvlvZXku6PooajkvaDlt7Lnu4/lkIzmhI88dGV4dCBAY2xpY2s9XCJoYW5kZXJTa2lwKClcIiBjbGFzcz1cImFncmVlbWVudC1pdGVtXCJcclxuICAgICAgICAgICAgPuOAiueUqOaIt+WNj+iuruOAizwvdGV4dFxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvdmlldz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC92aWV3PlxyXG4gICAgPHUtdG9hc3QgcmVmPVwidVRvYXN0XCIgLz5cclxuICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBtYXBBY3Rpb25zLCBtYXBTdGF0ZSB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCB7IEdldFZlcmlmeUNvZGUgfSBmcm9tIFwiQC9hcGkvbG9naW5cIjtcclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwibG9naW5cIixcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWNjb3VudDogXCJcIixcclxuICAgICAgcGFzc3dvcmQ6IFwiXCIsXHJcbiAgICAgIGlzTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIHJlZ2lzdGVyQ29kZTogXCJcIixcclxuICAgICAgbG9naW5UeXBlOiAwLFxyXG4gICAgICBwbGFjZWhvbGRlckFycjogW1xyXG4gICAgICAgIFwi6K+36L6T5YWl5oKo55qE6LSm5Y+3L+aJi+acuuWPt1wiLFxyXG4gICAgICAgIFwi6K+36L6T5YWl5oKo55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgXCLor7fovpPlhaXmgqjnmoTmiYvmnLrlj7dcIixcclxuICAgICAgICBcIuivt+i+k+WFpeaCqOeahOmCrueusVwiLFxyXG4gICAgICBdLFxyXG4gICAgICBwbGFjZWhvbGRlckFycjI6IFtcclxuICAgICAgICBcIuivt+i+k+WFpeaCqOeahOWvhueggVwiLFxyXG4gICAgICAgIFwi6K+36L6T5YWl5oKo55qE6aqM6K+B56CBXCIsXHJcbiAgICAgICAgXCLor7fovpPlhaXmgqjnmoTlr4bnoIFcIixcclxuICAgICAgICBcIuivt+i+k+WFpeaCqOeahOWvhueggVwiLFxyXG4gICAgICBdLFxyXG4gICAgICB2ZXJpZnlUZXh0OiBcIuiOt+WPlumqjOivgeeggVwiLFxyXG4gICAgICB0aW1lOiA2MCxcclxuICAgICAgY2xpZW50X2luZm86IHt9LFxyXG4gICAgICBpc1BIb25lOiBmYWxzZSxcclxuICAgICAgaXNTTVM6IGZhbHNlLFxyXG4gICAgICBzaG93UHdkOiBmYWxzZSxcclxuICAgICAgdmVyaWZ5X3Rva2VuOiBcIlwiLFxyXG4gICAgICB2ZXJpZnlJbWdVcmw6IFwiXCIsXHJcbiAgICAgIGFjY291bnRDb2RlOiBcIlwiLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAuLi5tYXBTdGF0ZShcInVzZXJcIiwgW1widWtleVwiLCBcImFwcHJvdmFsU3RhdHVzXCJdKSxcclxuICB9LFxyXG4gIG9uU2hvdygpIHtcclxuICAgIC8vIGlmICh0aGlzLnVrZXkgJiYgWzEsIDIsIDNdLmluY2x1ZGVzKHRoaXMuYXBwcm92YWxTdGF0dXMpKSB7XHJcbiAgICAvLyAgIHVuaS5uYXZpZ2F0ZVRvKHsgdXJsOiBcIi9wYWdlcy9hdWRpdC9jaGVja0F1ZGl0XCIgfSk7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBpZiAodGhpcy51a2V5ICYmIHRoaXMuYXBwcm92YWxTdGF0dXMgPT0gNCkge1xyXG4gICAgLy8gICB1bmkubmF2aWdhdGVUbyh7IHVybDogXCIvcGFnZXMvYXVkaXQvc2hvcDFcIiB9KTtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGxldCB0aW1lID0gdW5pLmdldFN0b3JhZ2VTeW5jKFwibG9naW5TbXNUaW1lXCIpIHx8IDA7XHJcbiAgICBpZiAodGltZSA+IDApIHtcclxuICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gdGltZTtcclxuICAgICAgdGhpcy5sb2FkU21zVGltZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRWZXJpZnlDb2RlKCk7XHJcbiAgfSxcclxuICBvbkhpZGUoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAuLi5tYXBBY3Rpb25zKFwidXNlclwiLCBbXCJHZXRMb2dpblwiLCBcIkdldFNtc0NvZGVcIiwgXCJHZXRBY2NvdW50TG9naW5cIl0pLFxyXG4gICAgbG9hZFNtc1RpbWUoKSB7XHJcbiAgICAgIHRoaXMudGltZSA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLnZlcmlmeVRleHQtLTtcclxuXHJcbiAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKFwibG9naW5TbXNUaW1lXCIsIHRoaXMudmVyaWZ5VGV4dCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZlcmlmeVRleHQgPT0gMCkge1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWUpO1xyXG4gICAgICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gXCLojrflj5bpqozor4HnoIFcIjtcclxuICAgICAgICAgIHVuaS5yZW1vdmVTdG9yYWdlU3luYyhcImxvZ2luU21zVGltZVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfSxcclxuICAgIHNraXB1UmVnaXN0ZXIoKSB7XHJcbiAgICAgIHVuaS5uYXZpZ2F0ZVRvKHsgdXJsOiBcIi9wYWdlcy9yZWdpc3Rlci9yZWdpc3RlclwiIH0pO1xyXG4gICAgfSxcclxuICAgIHNraXB1Rm9yZ2V0UHdkKCkge1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7IHVybDogXCIvcGFnZXMvZm9yZ2V0UGFzc3dvcmQvZm9yZ2V0UGFzc3dvcmRcIiB9KTtcclxuICAgIH0sXHJcbiAgICBzaG93UGFzc1dvcmQoKSB7XHJcbiAgICAgIGlmICh0aGlzLmxvZ2luVHlwZSA9PSAxKSB7XHJcbiAgICAgICAgcmV0dXJuIFwibnVtYmVyXCI7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFswLCAyLCAzXS5pbmNsdWRlcyh0aGlzLmxvZ2luVHlwZSkgJiYgIXRoaXMuc2hvd1B3ZCkge1xyXG4gICAgICAgIHJldHVybiBcInBhc3N3b3JkXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlQWN0aXZlTG9naW5UeXBlKGluZGV4KSB7XHJcbiAgICAgIHRoaXMubG9naW5UeXBlID0gaW5kZXg7XHJcbiAgICAgIGlmIChbMSwgMl0uaW5jbHVkZXModGhpcy5sb2dpblR5cGUpKSB7XHJcbiAgICAgICAgdGhpcy5pc1BIb25lID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzUEhvbmUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjY291bnQgPSBcIlwiO1xyXG4gICAgICB0aGlzLnBhc3N3b3JkID0gXCJcIjtcclxuICAgIH0sXHJcbiAgICAvLyDotKblj7flr4bnoIHnmbvlvZVcclxuICAgIGFzeW5jIGFjY291bnRMb2dpbigpIHtcclxuICAgICAgaWYgKCF0aGlzLmFjY291bnQpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTmiYvmnLrlj7dcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMucGFzc3dvcmQpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTlr4bnoIFcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuYWNjb3VudENvZGUpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTpqozor4HnoIFcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICB1c2VyX2FjY291bnQ6IHRoaXMuYWNjb3VudCxcclxuICAgICAgICB1c2VyX3Bhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLFxyXG4gICAgICAgIHZlcmlmeV9jb2RlOiB0aGlzLmFjY291bnRDb2RlLFxyXG4gICAgICAgIHZlcmlmeV90b2tlbjogdGhpcy52ZXJpZnlfdG9rZW4sXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGF3YWl0IHRoaXMuR2V0QWNjb3VudExvZ2luKHBhcmFtcyk7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgLy8g6aqM6K+B56CBIOeZu+W9lSDpgJrnlKjpqozor4HnoIHkuLo5OTk5XHJcbiAgICBhc3luYyBzbXNMb2dpbigpIHtcclxuICAgICAgaWYgKCF0aGlzLmFjY291bnQpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTmiYvmnLrlj7dcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMucGFzc3dvcmQpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTpqozor4HnoIFcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICB1c2VyX21vYmlsZTogdGhpcy5hY2NvdW50LFxyXG4gICAgICAgIHJhbmRfa2V5OiB0aGlzLmFjY291bnQsXHJcbiAgICAgICAgdmVyaWZ5X2NvZGU6IHRoaXMucGFzc3dvcmQsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgYXdhaXQgdGhpcy5HZXRMb2dpbihwYXJhbXMpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGhhbmRsZUxvZ2luKCkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMubG9naW5UeXBlKSB7XHJcbiAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgYXdhaXQgdGhpcy5hY2NvdW50TG9naW4oKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgIGF3YWl0IHRoaXMuc21zTG9naW4oKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgIGF3YWl0IHRoaXMuYWNjb3VudExvZ2luKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjY291bnRMb2dpbigpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgZ2V0U21zQ29kZSgpIHtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5hY2NvdW50KTtcclxuICAgICAgaWYgKCF0aGlzLmFjY291bnQpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTmiYvmnLrlj7dcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuaXNWYWxpZFBob25lTnVtYmVyKHRoaXMuYWNjb3VudCkpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmraPnoa7nmoTmiYvmnLrlj7dcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICBudW1iZXI6IHRoaXMuYWNjb3VudCxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmlzU01TKSByZXR1cm47XHJcblxyXG4gICAgICB0aGlzLnZlcmlmeVRleHQgPSA2MDtcclxuICAgICAgdGhpcy5pc1NNUyA9IHRydWU7XHJcbiAgICAgIHRoaXMudGltZSA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLnZlcmlmeVRleHQtLTtcclxuXHJcbiAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKFwibG9naW5TbXNUaW1lXCIsIHRoaXMudmVyaWZ5VGV4dCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZlcmlmeVRleHQgPT0gMCkge1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWUpO1xyXG4gICAgICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gXCLojrflj5bpqozor4HnoIFcIjtcclxuICAgICAgICAgIHRoaXMuaXNTTVMgPSBmYWxzZTtcclxuICAgICAgICAgIHVuaS5yZW1vdmVTdG9yYWdlU3luYyhcImxvZ2luU21zVGltZVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5nZXRTbXNDb2RlKHBhcmFtcyk7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgZ2V0VmVyaWZ5Q29kZSgpIHtcclxuICAgICAgdGhpcy52ZXJpZnlfdG9rZW4gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgbGV0IHJlcyA9IGF3YWl0IEdldFZlcmlmeUNvZGUoeyB2ZXJpZnlfdG9rZW46IHRoaXMudmVyaWZ5X3Rva2VuIH0pO1xyXG4gICAgICB0aGlzLnZlcmlmeUltZ1VybCA9IGBodHRwczovL21hbGwuZ3B4c2NzLmNuL2FwaS9hZG1pbi9zaG9wL3Nob3AtYmFzZS1jb25maWcvaW1hZ2U/dmVyaWZ5X3Rva2VuPSR7dGhpcy52ZXJpZnlfdG9rZW59YDtcclxuICAgIH0sXHJcbiAgICBoYW5kZXJTa2lwKCkge1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgICAgdXJsOiBcIi9wYWdlcy9hZ3JlZW1lbnQvYWdyZWVtZW50XCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGlzVmFsaWRQaG9uZU51bWJlcihwaG9uZU51bWJlcikge1xyXG4gICAgICAvLyDlrprkuYnmraPliJnooajovr7lvI/vvIzmoKHpqozkuK3lm73lpKfpmYbmiYvmnLrlj7fnoIFcclxuICAgICAgY29uc3QgcGhvbmVSZWdleCA9IC9eMVszLTldXFxkezl9JC87XHJcbiAgICAgIHJldHVybiBwaG9uZVJlZ2V4LnRlc3QocGhvbmVOdW1iZXIpO1xyXG4gICAgfSxcclxuICAgIGlzVmFsaWRFbWFpbChlbWFpbCkge1xyXG4gICAgICB2YXIgZW1haWxSZWdleCA9IC9eW2EtekEtWjAtOS5fLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Miw2fSQvO1xyXG4gICAgICByZXR1cm4gZW1haWxSZWdleC50ZXN0KGVtYWlsKTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIj5cclxuLmxvZ2luLWNvbnRhaW5lciB7XHJcbiAgLmJ0bi1yZWdpc3RlciB7XHJcbiAgICBjb2xvcjogI2Y1OWEyMztcclxuICB9XHJcblxyXG4gIC5sb2dpbi1jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDM0JSA0MHJweCAwIDQwcnB4O1xyXG5cclxuICAgIC5sb2dvLWJsb2NrIHtcclxuICAgICAgd2lkdGg6IDIwMHJweDtcclxuICAgICAgaGVpZ2h0OiAyMDBycHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4gICAgICAubG9nby1pbWcge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL3N0YXRpYy94aWFvZmEtbG9nby5wbmdcIik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmxvZ2luLXR5cGUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgLmxvZ2luLXR5cGUtaXRlbSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDBycHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEwMHJweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnJweDtcclxuICAgICAgICBjb2xvcjogI2FhYWFhYTtcclxuICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sb2dpbi10eXBlLWxpbmUge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgYmxhY2s7IC8qIOW3pui+ueahhiAqL1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogMDsgLyog5Y+z6L655qGGICovXHJcbiAgICAgICAgYm9yZGVyLXRvcDogMDsgLyog5LiK6L655qGGICovXHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDsgLyog5LiL6L655qGGICovXHJcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyAvKiDmoLnmja7pnIDopoHorr7nva7pq5jluqYgKi9cclxuICAgICAgfVxyXG5cclxuICAgICAgLmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBjb2xvcjogIzU1NTU1NTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIC8vIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAvLyBsZWZ0OiA4OXB4O1xyXG4gICAgICAgICAgLy8gdG9wOiAzOXB4O1xyXG4gICAgICAgICAgLy8gYm9yZGVyLXRvcDogOXB4IHNvbGlkIHJlZDtcclxuICAgICAgICAgIC8vIC8vYm9yZGVyLWxlZnTlkoxib3JkZXItcmlnaHTmjaLmiJDpgI/mmI7oibIg5omN6IO95b2i5oiQ5LiJ6KeS5b2iIOS4jeeEtuaYr+mVv+aWueW9olxyXG4gICAgICAgICAgLy8gYm9yZGVyLWxlZnQ6IDEycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAvLyBib3JkZXItcmlnaHQ6IDEycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQtY29udGVudCB7XHJcbiAgICAgIG1hcmdpbjogNjhycHggNDRycHg7XHJcbiAgICAgIHBhZGRpbmc6IDQwcnB4IDA7XHJcblxyXG4gICAgICAudS1pbnB1dCB7XHJcbiAgICAgICAgcGFkZGluZzogMTZycHggIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHJweDtcclxuICAgICAgICBoZWlnaHQ6IDgwcnB4O1xyXG4gICAgICAgIGNvbG9yOiAjOTk5OTk5O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAlO1xyXG4gICAgICAgIGNvbG9yOiAjNTU1NTU1O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaW5wdXQtbGFiZWwge1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50aXBzLWNvbnRlbnQge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIG1hcmdpbjogMCA0OHJweDtcclxuICAgICAgZm9udC1zaXplOiAyOHJweDtcclxuICAgICAgY29sb3I6IHJlZDtcclxuICAgIH1cclxuXHJcbiAgICAuYnRuLWNvbnRlbnQge1xyXG4gICAgICBtYXJnaW46IDQwcnB4IDU2cnB4O1xyXG5cclxuICAgICAgLmJ0bi1sb2dpbiB7XHJcbiAgICAgICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM0YjcxZmY7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JnZXQtcHdkIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA2MHJweDtcclxuICAgICAgICBmb250LXNpemU6IDI2cnB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogIzdmN2Y3ZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hZ3JlZW1lbnQtY29udGVudCB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgYm90dG9tOiAxMCU7XHJcbiAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZm9udC1zaXplOiAyOHJweDtcclxuICAgICAgY29sb3I6ICNjY2M7XHJcblxyXG4gICAgICAuYWdyZWVtZW50LWl0ZW0ge1xyXG4gICAgICAgIGNvbG9yOiAjNGI3MWZmO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRoaXJkLXBhcnR5LWNvbnRlbnQge1xyXG4gICAgICBtYXJnaW46IDQwcnB4IDA7XHJcblxyXG4gICAgICAudGl0bGUtYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiAyNHJweCAyMCU7XHJcbiAgICAgICAgY29sb3I6ICM5NDk0OTQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgICAgICAgLnRpdGxlLXRleHQge1xyXG4gICAgICAgICAgcGFkZGluZzogMCAyMHJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50aXRsZS1saW5lIHtcclxuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk0OTQ5NDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGhpcmQtcGFydHktaW1nLWJsb2NrIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XHJcbiAgICB9XHJcblxyXG4gICAgLnZlcmlmeS1idG4ge1xyXG4gICAgICB3aWR0aDogMTUycnB4O1xyXG4gICAgICBoZWlnaHQ6IDY0cnB4O1xyXG4gICAgICBmb250LXNpemU6IDI0cnB4O1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NSwgMTU0LCAzNSwgMSk7XHJcblxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAoZGV2aWNlLXdpZHRoOiAzMjBweCkgYW5kIChkZXZpY2UtaGVpZ2h0OiA1NjhweCkgYW5kICgtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogMikge1xyXG4gICAgLmxvZ2luLWNvbnRlbnQge1xyXG4gICAgICBwYWRkaW5nOiAxMHJweCA2MHJweCAwIDYwcnB4O1xyXG5cclxuICAgICAgLmFjY291bnQtY29udGVudCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNDBycHggIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///97\n"); /***/ }), /* 98 */ @@ -4939,7 +4939,7 @@ function formatLog () { /***/ (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.GetAccountLogin = GetAccountLogin;\nexports.GetLogin = GetLogin;\nexports.GetSmsCode = GetSmsCode;\nexports.GetVerifyCode = GetVerifyCode;\nvar _http = _interopRequireDefault(__webpack_require__(/*! ../utils/http */ 100));\nvar _config = _interopRequireDefault(__webpack_require__(/*! ../config/config */ 139));\n/**\r\n * 登录/注册同一个接口\r\n * @author Seven\r\n * @data 2025-1-28\r\n * @param number // 验证码\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/mobile/account/login/doMerchSmsRegisterAndLogin\r\n */\n\nfunction GetLogin(params) {\n params.isFilter = true;\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/account/login/doMerchSmsRegisterAndLogin',\n method: 'post',\n data: params\n }).then(function (res) {\n resolve(res);\n }).catch(function (e) {\n return reject(__f__(\"warn\", e, \" at api/login.js:22\"));\n });\n });\n}\n\n/**\r\n * 获取验证码\r\n * @author Seven\r\n * @data 2025-1-6\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/mobile/account/login/sendVerifyCode\r\n */\n\nfunction GetSmsCode(params) {\n params.isFilter = true;\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/account/login/sendVerifyCode',\n method: 'post',\n data: params\n }).then(function (res) {\n resolve(res);\n }).catch(function (e) {\n return reject(__f__(\"warn\", e, \" at api/login.js:43\"));\n });\n });\n}\n\n/**\r\n * 账号密码登录\r\n * @author Seven\r\n * @data 2025-1-6\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/api/admin/account/account-user-base/doLogin\r\n */\n\nfunction GetAccountLogin(params) {\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/account/account-user-base/doLogin',\n method: 'post',\n params: params,\n baseURL: _config.default.adminApi\n }).then(function (res) {\n resolve(res);\n }).catch(function (e) {\n return reject(__f__(\"warn\", e, \" at api/login.js:64\"));\n });\n });\n}\n\n/**\r\n * 获取图形验证码\r\n * @author Seven\r\n * @data 2025-1-6\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/api/admin/shop/shop-base-config/image\r\n */\n\nfunction GetVerifyCode(params) {\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/shop/shop-base-config/image',\n method: 'GET',\n params: params,\n baseURL: _config.default.adminApi\n }).then(function (res) {\n resolve(res);\n });\n });\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vYXBpL2xvZ2luLmpzIl0sIm5hbWVzIjpbIkdldExvZ2luIiwicGFyYW1zIiwiaXNGaWx0ZXIiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImh0dHAiLCJ1cmwiLCJtZXRob2QiLCJkYXRhIiwidGhlbiIsInJlcyIsImNhdGNoIiwiZSIsIkdldFNtc0NvZGUiLCJHZXRBY2NvdW50TG9naW4iLCJiYXNlVVJMIiwiY29uZmlnIiwiYWRtaW5BcGkiLCJHZXRWZXJpZnlDb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sU0FBU0EsUUFBUSxDQUFFQyxNQUFNLEVBQUM7RUFDL0JBLE1BQU0sQ0FBQ0MsUUFBUSxHQUFHLElBQUk7RUFDdEIsT0FBUSxJQUFJQyxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdkMsSUFBQUMsYUFBSSxFQUFDO01BQ0hDLEdBQUcsRUFBQywyQ0FBMkM7TUFDL0NDLE1BQU0sRUFBQyxNQUFNO01BQ2JDLElBQUksRUFBQ1I7SUFDUCxDQUFDLENBQUMsQ0FBQ1MsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBRTtNQUNYUCxPQUFPLENBQUNPLEdBQUcsQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsVUFBQUMsQ0FBQztNQUFBLE9BQUlSLE1BQU0sZUFBY1EsQ0FBQyx5QkFBRTtJQUFBLEVBQUM7RUFDeEMsQ0FBQyxDQUFDO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sU0FBU0MsVUFBVSxDQUFDYixNQUFNLEVBQUM7RUFDaENBLE1BQU0sQ0FBQ0MsUUFBUSxHQUFHLElBQUk7RUFDdEIsT0FBUSxJQUFJQyxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdkMsSUFBQUMsYUFBSSxFQUFDO01BQ0hDLEdBQUcsRUFBQywrQkFBK0I7TUFDbkNDLE1BQU0sRUFBQyxNQUFNO01BQ2JDLElBQUksRUFBQ1I7SUFDUCxDQUFDLENBQUMsQ0FBQ1MsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBRTtNQUNYUCxPQUFPLENBQUNPLEdBQUcsQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsVUFBQUMsQ0FBQztNQUFBLE9BQUlSLE1BQU0sZUFBY1EsQ0FBQyx5QkFBRTtJQUFBLEVBQUM7RUFDeEMsQ0FBQyxDQUFDO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sU0FBU0UsZUFBZSxDQUFDZCxNQUFNLEVBQUM7RUFDckMsT0FBUSxJQUFJRSxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdkMsSUFBQUMsYUFBSSxFQUFDO01BQ0hDLEdBQUcsRUFBQyxvQ0FBb0M7TUFDeENDLE1BQU0sRUFBQyxNQUFNO01BQ2JQLE1BQU0sRUFBTkEsTUFBTTtNQUNOZSxPQUFPLEVBQUNDLGVBQU0sQ0FBQ0M7SUFDakIsQ0FBQyxDQUFDLENBQUNSLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUU7TUFDWFAsT0FBTyxDQUFDTyxHQUFHLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDLFVBQUFDLENBQUM7TUFBQSxPQUFJUixNQUFNLGVBQWNRLENBQUMseUJBQUU7SUFBQSxFQUFDO0VBQ3hDLENBQUMsQ0FBQztBQUNKOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVPLFNBQVNNLGFBQWEsQ0FBQ2xCLE1BQU0sRUFBQztFQUNuQyxPQUFRLElBQUlFLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUVDLE1BQU0sRUFBSztJQUN2QyxJQUFBQyxhQUFJLEVBQUM7TUFDSEMsR0FBRyxFQUFDLDhCQUE4QjtNQUNsQ0MsTUFBTSxFQUFDLEtBQUs7TUFDWlAsTUFBTSxFQUFOQSxNQUFNO01BQ05lLE9BQU8sRUFBQ0MsZUFBTSxDQUFDQztJQUNqQixDQUFDLENBQUMsQ0FBQ1IsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBRTtNQUNYUCxPQUFPLENBQUNPLEdBQUcsQ0FBQztJQUNkLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLEMiLCJmaWxlIjoiOTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaHR0cCBmcm9tICcuLi91dGlscy9odHRwJ1xyXG5pbXBvcnQgY29uZmlnICBmcm9tICcuLi9jb25maWcvY29uZmlnJ1xyXG5cclxuLyoqXHJcbiAqIOeZu+W9lS/ms6jlhozlkIzkuIDkuKrmjqXlj6NcclxuICogQGF1dGhvciBTZXZlblxyXG4gKiBAZGF0YSAyMDI1LTEtMjhcclxuICogQHBhcmFtIG51bWJlciAvLyDpqozor4HnoIFcclxuICogQHJldHVybnMgeyAgfVxyXG4gKiBAc2VlIGh0dHBzOi8vbWFsbC5ncHhzY3MuY24vbW9iaWxlL2FjY291bnQvbG9naW4vZG9NZXJjaFNtc1JlZ2lzdGVyQW5kTG9naW5cclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gR2V0TG9naW4gKHBhcmFtcyl7XHJcbiAgcGFyYW1zLmlzRmlsdGVyID0gdHJ1ZSAgXHJcbiAgcmV0dXJuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBodHRwKHtcclxuICAgICAgdXJsOicvYWNjb3VudC9sb2dpbi9kb01lcmNoU21zUmVnaXN0ZXJBbmRMb2dpbicsXHJcbiAgICAgIG1ldGhvZDoncG9zdCcsXHJcbiAgICAgIGRhdGE6cGFyYW1zLFxyXG4gICAgfSkudGhlbihyZXM9PntcclxuICAgICAgcmVzb2x2ZShyZXMpXHJcbiAgICB9KS5jYXRjaChlID0+IHJlamVjdChjb25zb2xlLndhcm4oZSkpKVxyXG4gIH0pXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5bpqozor4HnoIFcclxuICogQGF1dGhvciBTZXZlblxyXG4gKiBAZGF0YSAyMDI1LTEtNlxyXG4gKiBAcmV0dXJucyB7ICB9XHJcbiAqIEBzZWUgaHR0cHM6Ly9tYWxsLmdweHNjcy5jbi9tb2JpbGUvYWNjb3VudC9sb2dpbi9zZW5kVmVyaWZ5Q29kZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBHZXRTbXNDb2RlKHBhcmFtcyl7XHJcbiAgcGFyYW1zLmlzRmlsdGVyID0gdHJ1ZSBcclxuICByZXR1cm4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGh0dHAoe1xyXG4gICAgICB1cmw6Jy9hY2NvdW50L2xvZ2luL3NlbmRWZXJpZnlDb2RlJyxcclxuICAgICAgbWV0aG9kOidwb3N0JyxcclxuICAgICAgZGF0YTpwYXJhbXMsXHJcbiAgICB9KS50aGVuKHJlcz0+e1xyXG4gICAgICByZXNvbHZlKHJlcylcclxuICAgIH0pLmNhdGNoKGUgPT4gcmVqZWN0KGNvbnNvbGUud2FybihlKSkpXHJcbiAgfSlcclxufVxyXG5cclxuLyoqXHJcbiAqIOi0puWPt+WvhueggeeZu+W9lVxyXG4gKiBAYXV0aG9yIFNldmVuXHJcbiAqIEBkYXRhIDIwMjUtMS02XHJcbiAqIEByZXR1cm5zIHsgIH1cclxuICogQHNlZSBodHRwczovL21hbGwuZ3B4c2NzLmNuL2FwaS9hZG1pbi9hY2NvdW50L2FjY291bnQtdXNlci1iYXNlL2RvTG9naW5cclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gR2V0QWNjb3VudExvZ2luKHBhcmFtcyl7XHJcbiAgcmV0dXJuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBodHRwKHtcclxuICAgICAgdXJsOicvYWNjb3VudC9hY2NvdW50LXVzZXItYmFzZS9kb0xvZ2luJyxcclxuICAgICAgbWV0aG9kOidwb3N0JyxcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICBiYXNlVVJMOmNvbmZpZy5hZG1pbkFwaVxyXG4gICAgfSkudGhlbihyZXM9PntcclxuICAgICAgcmVzb2x2ZShyZXMpXHJcbiAgICB9KS5jYXRjaChlID0+IHJlamVjdChjb25zb2xlLndhcm4oZSkpKVxyXG4gIH0pXHJcbn1cclxuXHJcblxyXG4vKipcclxuICog6I635Y+W5Zu+5b2i6aqM6K+B56CBXHJcbiAqIEBhdXRob3IgU2V2ZW5cclxuICogQGRhdGEgMjAyNS0xLTZcclxuICogQHJldHVybnMgeyAgfVxyXG4gKiBAc2VlIGh0dHBzOi8vbWFsbC5ncHhzY3MuY24vYXBpL2FkbWluL3Nob3Avc2hvcC1iYXNlLWNvbmZpZy9pbWFnZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBHZXRWZXJpZnlDb2RlKHBhcmFtcyl7XHJcbiAgcmV0dXJuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBodHRwKHtcclxuICAgICAgdXJsOicvc2hvcC9zaG9wLWJhc2UtY29uZmlnL2ltYWdlJyxcclxuICAgICAgbWV0aG9kOidHRVQnLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIGJhc2VVUkw6Y29uZmlnLmFkbWluQXBpXHJcbiAgICB9KS50aGVuKHJlcz0+e1xyXG4gICAgICByZXNvbHZlKHJlcylcclxuICAgIH0pXHJcbiAgfSlcclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///99\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.GetAccountLogin = GetAccountLogin;\nexports.GetLogin = GetLogin;\nexports.GetSmsCode = GetSmsCode;\nexports.GetVerifyCode = GetVerifyCode;\nvar _http = _interopRequireDefault(__webpack_require__(/*! ../utils/http */ 100));\nvar _config = _interopRequireDefault(__webpack_require__(/*! ../config/config */ 139));\n/**\r\n * 登录/注册同一个接口\r\n * @author Seven\r\n * @data 2025-1-28\r\n * @param number // 验证码\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/mobile/account/login/doMerchSmsRegisterAndLogin\r\n */\n\nfunction GetLogin(params) {\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/account/login/doMerchSmsRegisterAndLogin',\n method: 'post',\n data: params\n }).then(function (res) {\n resolve(res);\n }).catch(function (e) {\n return reject(__f__(\"warn\", e, \" at api/login.js:23\"));\n });\n });\n}\n\n/**\r\n * 获取验证码\r\n * @author Seven\r\n * @data 2025-1-6\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/mobile/account/login/sendVerifyCode\r\n */\n\nfunction GetSmsCode(params) {\n params.isFilter = true;\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/account/login/sendVerifyCode',\n method: 'post',\n data: params\n }).then(function (res) {\n resolve(res);\n }).catch(function (e) {\n return reject(__f__(\"warn\", e, \" at api/login.js:46\"));\n });\n });\n}\n\n/**\r\n * 账号密码登录\r\n * @author Seven\r\n * @data 2025-1-6\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/api/admin/account/account-user-base/doLogin\r\n */\n\nfunction GetAccountLogin(params) {\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/account/account-user-base/doLogin',\n method: 'post',\n params: params,\n baseURL: _config.default.adminApi\n }).then(function (res) {\n resolve(res);\n }).catch(function (e) {\n return reject(__f__(\"warn\", e, \" at api/login.js:69\"));\n });\n });\n}\n\n/**\r\n * 获取图形验证码\r\n * @author Seven\r\n * @data 2025-1-6\r\n * @returns { }\r\n * @see https://mall.gpxscs.cn/api/admin/shop/shop-base-config/image\r\n */\n\nfunction GetVerifyCode(params) {\n return new Promise(function (resolve, reject) {\n (0, _http.default)({\n url: '/shop/shop-base-config/image',\n method: 'GET',\n params: params,\n baseURL: _config.default.adminApi\n }).then(function (res) {\n resolve(res);\n });\n });\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vYXBpL2xvZ2luLmpzIl0sIm5hbWVzIjpbIkdldExvZ2luIiwicGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJodHRwIiwidXJsIiwibWV0aG9kIiwiZGF0YSIsInRoZW4iLCJyZXMiLCJjYXRjaCIsImUiLCJHZXRTbXNDb2RlIiwiaXNGaWx0ZXIiLCJHZXRBY2NvdW50TG9naW4iLCJiYXNlVVJMIiwiY29uZmlnIiwiYWRtaW5BcGkiLCJHZXRWZXJpZnlDb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sU0FBU0EsUUFBUSxDQUFDQyxNQUFNLEVBQUU7RUFDL0IsT0FBTyxJQUFJQyxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdEMsSUFBQUMsYUFBSSxFQUFDO01BQ0hDLEdBQUcsRUFBRSwyQ0FBMkM7TUFDaERDLE1BQU0sRUFBRSxNQUFNO01BQ2RDLElBQUksRUFBRVA7SUFDUixDQUFDLENBQUMsQ0FDQ1EsSUFBSSxDQUFDLFVBQUNDLEdBQUcsRUFBSztNQUNiUCxPQUFPLENBQUNPLEdBQUcsQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUNEQyxLQUFLLENBQUMsVUFBQ0MsQ0FBQztNQUFBLE9BQUtSLE1BQU0sZUFBY1EsQ0FBQyx5QkFBRTtJQUFBLEVBQUM7RUFDMUMsQ0FBQyxDQUFDO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sU0FBU0MsVUFBVSxDQUFDWixNQUFNLEVBQUU7RUFDakNBLE1BQU0sQ0FBQ2EsUUFBUSxHQUFHLElBQUk7RUFDdEIsT0FBTyxJQUFJWixPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdEMsSUFBQUMsYUFBSSxFQUFDO01BQ0hDLEdBQUcsRUFBRSwrQkFBK0I7TUFDcENDLE1BQU0sRUFBRSxNQUFNO01BQ2RDLElBQUksRUFBRVA7SUFDUixDQUFDLENBQUMsQ0FDQ1EsSUFBSSxDQUFDLFVBQUNDLEdBQUcsRUFBSztNQUNiUCxPQUFPLENBQUNPLEdBQUcsQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUNEQyxLQUFLLENBQUMsVUFBQ0MsQ0FBQztNQUFBLE9BQUtSLE1BQU0sZUFBY1EsQ0FBQyx5QkFBRTtJQUFBLEVBQUM7RUFDMUMsQ0FBQyxDQUFDO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sU0FBU0csZUFBZSxDQUFDZCxNQUFNLEVBQUU7RUFDdEMsT0FBTyxJQUFJQyxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDdEMsSUFBQUMsYUFBSSxFQUFDO01BQ0hDLEdBQUcsRUFBRSxvQ0FBb0M7TUFDekNDLE1BQU0sRUFBRSxNQUFNO01BQ2ROLE1BQU0sRUFBTkEsTUFBTTtNQUNOZSxPQUFPLEVBQUVDLGVBQU0sQ0FBQ0M7SUFDbEIsQ0FBQyxDQUFDLENBQ0NULElBQUksQ0FBQyxVQUFDQyxHQUFHLEVBQUs7TUFDYlAsT0FBTyxDQUFDTyxHQUFHLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FDREMsS0FBSyxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFLUixNQUFNLGVBQWNRLENBQUMseUJBQUU7SUFBQSxFQUFDO0VBQzFDLENBQUMsQ0FBQztBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVPLFNBQVNPLGFBQWEsQ0FBQ2xCLE1BQU0sRUFBRTtFQUNwQyxPQUFPLElBQUlDLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUVDLE1BQU0sRUFBSztJQUN0QyxJQUFBQyxhQUFJLEVBQUM7TUFDSEMsR0FBRyxFQUFFLDhCQUE4QjtNQUNuQ0MsTUFBTSxFQUFFLEtBQUs7TUFDYk4sTUFBTSxFQUFOQSxNQUFNO01BQ05lLE9BQU8sRUFBRUMsZUFBTSxDQUFDQztJQUNsQixDQUFDLENBQUMsQ0FBQ1QsSUFBSSxDQUFDLFVBQUNDLEdBQUcsRUFBSztNQUNmUCxPQUFPLENBQUNPLEdBQUcsQ0FBQztJQUNkLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLEMiLCJmaWxlIjoiOTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaHR0cCBmcm9tICcuLi91dGlscy9odHRwJztcclxuaW1wb3J0IGNvbmZpZyBmcm9tICcuLi9jb25maWcvY29uZmlnJztcclxuXHJcbi8qKlxyXG4gKiDnmbvlvZUv5rOo5YaM5ZCM5LiA5Liq5o6l5Y+jXHJcbiAqIEBhdXRob3IgU2V2ZW5cclxuICogQGRhdGEgMjAyNS0xLTI4XHJcbiAqIEBwYXJhbSBudW1iZXIgLy8g6aqM6K+B56CBXHJcbiAqIEByZXR1cm5zIHsgIH1cclxuICogQHNlZSBodHRwczovL21hbGwuZ3B4c2NzLmNuL21vYmlsZS9hY2NvdW50L2xvZ2luL2RvTWVyY2hTbXNSZWdpc3RlckFuZExvZ2luXHJcbiAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEdldExvZ2luKHBhcmFtcykge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBodHRwKHtcclxuICAgICAgdXJsOiAnL2FjY291bnQvbG9naW4vZG9NZXJjaFNtc1JlZ2lzdGVyQW5kTG9naW4nLFxyXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcclxuICAgICAgZGF0YTogcGFyYW1zLFxyXG4gICAgfSlcclxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlKSA9PiByZWplY3QoY29uc29sZS53YXJuKGUpKSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5bpqozor4HnoIFcclxuICogQGF1dGhvciBTZXZlblxyXG4gKiBAZGF0YSAyMDI1LTEtNlxyXG4gKiBAcmV0dXJucyB7ICB9XHJcbiAqIEBzZWUgaHR0cHM6Ly9tYWxsLmdweHNjcy5jbi9tb2JpbGUvYWNjb3VudC9sb2dpbi9zZW5kVmVyaWZ5Q29kZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBHZXRTbXNDb2RlKHBhcmFtcykge1xyXG4gIHBhcmFtcy5pc0ZpbHRlciA9IHRydWU7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGh0dHAoe1xyXG4gICAgICB1cmw6ICcvYWNjb3VudC9sb2dpbi9zZW5kVmVyaWZ5Q29kZScsXHJcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxyXG4gICAgICBkYXRhOiBwYXJhbXMsXHJcbiAgICB9KVxyXG4gICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXMpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGUpID0+IHJlamVjdChjb25zb2xlLndhcm4oZSkpKTtcclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIOi0puWPt+WvhueggeeZu+W9lVxyXG4gKiBAYXV0aG9yIFNldmVuXHJcbiAqIEBkYXRhIDIwMjUtMS02XHJcbiAqIEByZXR1cm5zIHsgIH1cclxuICogQHNlZSBodHRwczovL21hbGwuZ3B4c2NzLmNuL2FwaS9hZG1pbi9hY2NvdW50L2FjY291bnQtdXNlci1iYXNlL2RvTG9naW5cclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gR2V0QWNjb3VudExvZ2luKHBhcmFtcykge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBodHRwKHtcclxuICAgICAgdXJsOiAnL2FjY291bnQvYWNjb3VudC11c2VyLWJhc2UvZG9Mb2dpbicsXHJcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIGJhc2VVUkw6IGNvbmZpZy5hZG1pbkFwaSxcclxuICAgIH0pXHJcbiAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICByZXNvbHZlKHJlcyk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZSkgPT4gcmVqZWN0KGNvbnNvbGUud2FybihlKSkpO1xyXG4gIH0pO1xyXG59XHJcblxyXG4vKipcclxuICog6I635Y+W5Zu+5b2i6aqM6K+B56CBXHJcbiAqIEBhdXRob3IgU2V2ZW5cclxuICogQGRhdGEgMjAyNS0xLTZcclxuICogQHJldHVybnMgeyAgfVxyXG4gKiBAc2VlIGh0dHBzOi8vbWFsbC5ncHhzY3MuY24vYXBpL2FkbWluL3Nob3Avc2hvcC1iYXNlLWNvbmZpZy9pbWFnZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBHZXRWZXJpZnlDb2RlKHBhcmFtcykge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBodHRwKHtcclxuICAgICAgdXJsOiAnL3Nob3Avc2hvcC1iYXNlLWNvbmZpZy9pbWFnZScsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgYmFzZVVSTDogY29uZmlnLmFkbWluQXBpLFxyXG4gICAgfSkudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIHJlc29sdmUocmVzKTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///99\n"); /***/ }), /* 100 */ @@ -4958,29 +4958,1068 @@ eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefaul !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/index.js ***! \********************************************************************************************/ /*! no static exports found */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -throw new Error("Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js):\nError: ENOENT: no such file or directory, open 'G:\\pro\\java-mall-app-shop-admin\\java-mall-app-shop-admin\\node_modules\\axios\\index.js'"); +module.exports = __webpack_require__(/*! ./lib/axios */ 102); + +/***/ }), +/* 102 */ +/*!************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/axios.js ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./utils */ 103); +var bind = __webpack_require__(/*! ./helpers/bind */ 104); +var Axios = __webpack_require__(/*! ./core/Axios */ 105); +var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ 133); +var defaults = __webpack_require__(/*! ./defaults */ 110); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + return instance; +} + +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Expose Cancel & CancelToken +axios.CanceledError = __webpack_require__(/*! ./cancel/CanceledError */ 129); +axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ 136); +axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ 132); +axios.VERSION = __webpack_require__(/*! ./env/data */ 135).version; +axios.toFormData = __webpack_require__(/*! ./helpers/toFormData */ 116); + +// Expose AxiosError class +axios.AxiosError = __webpack_require__(/*! ../lib/core/AxiosError */ 114); + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = __webpack_require__(/*! ./helpers/spread */ 137); + +// Expose isAxiosError +axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ 138); +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; + +/***/ }), +/* 103 */ +/*!************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/utils.js ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); +var bind = __webpack_require__(/*! ./helpers/bind */ 104); + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString; + +// eslint-disable-next-line func-names +var kindOf = function (cache) { + // eslint-disable-next-line func-names + return function (thing) { + var str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); + }; +}(Object.create(null)); +function kindOfTest(type) { + type = type.toLowerCase(); + return function isKindOf(thing) { + return kindOf(thing) === type; + }; +} + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return Array.isArray(val); +} + +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +var isArrayBuffer = kindOfTest('ArrayBuffer'); + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && isArrayBuffer(val.buffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} + +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; +} + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && _typeof(val) === 'object'; +} + +/** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ +function isPlainObject(val) { + if (kindOf(val) !== 'object') { + return false; + } + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; +} + +/** + * Determine if a value is a Date + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +var isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +var isFile = kindOfTest('File'); + +/** + * Determine if a value is a Blob + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +var isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +var isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} + +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} + +/** + * Determine if a value is a FormData + * + * @param {Object} thing The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(thing) { + var pattern = '[object FormData]'; + return thing && (typeof FormData === 'function' && thing instanceof FormData || toString.call(thing) === pattern || isFunction(thing.toString) && thing.toString() === pattern); +} + +/** + * Determine if a value is a URLSearchParams object + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +var isURLSearchParams = kindOfTest('URLSearchParams'); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); +} + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) { + return false; + } + return typeof window !== 'undefined' && typeof document !== 'undefined'; +} + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (_typeof(obj) !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } +} + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge( /* obj1, obj2, obj3, ... */ +) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; +} + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + */ + +function inherits(constructor, superConstructor, props, descriptors) { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + constructor.prototype.constructor = constructor; + props && Object.assign(constructor.prototype, props); +} + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function} [filter] + * @returns {Object} + */ + +function toFlatObject(sourceObj, destObj, filter) { + var props; + var i; + var prop; + var merged = {}; + destObj = destObj || {}; + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if (!merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = Object.getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + return destObj; +} + +/* + * determines whether a string ends with the characters of a specified string + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * @returns {boolean} + */ +function endsWith(str, searchString, position) { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + var lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +} + +/** + * Returns new array from array like object + * @param {*} [thing] + * @returns {Array} + */ +function toArray(thing) { + if (!thing) return null; + var i = thing.length; + if (isUndefined(i)) return null; + var arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +} + +// eslint-disable-next-line func-names +var isTypedArray = function (TypedArray) { + // eslint-disable-next-line func-names + return function (thing) { + return TypedArray && thing instanceof TypedArray; + }; +}(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array)); +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM, + inherits: inherits, + toFlatObject: toFlatObject, + kindOf: kindOf, + kindOfTest: kindOfTest, + endsWith: endsWith, + toArray: toArray, + isTypedArray: isTypedArray, + isFileList: isFileList +}; + +/***/ }), +/* 104 */ +/*!*******************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/bind.js ***! + \*******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; + +/***/ }), +/* 105 */ +/*!*****************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/Axios.js ***! + \*****************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +var buildURL = __webpack_require__(/*! ../helpers/buildURL */ 106); +var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ 107); +var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ 108); +var mergeConfig = __webpack_require__(/*! ./mergeConfig */ 133); +var buildFullPath = __webpack_require__(/*! ./buildFullPath */ 124); +var validator = __webpack_require__(/*! ../helpers/validator */ 134); +var validators = validator.validators; +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; +} + +/** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ +Axios.prototype.request = function request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + var transitional = config.transitional; + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + + // filter out skipped interceptors + var requestInterceptorChain = []; + var synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + var responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + var promise; + if (!synchronousRequestInterceptors) { + var chain = [dispatchRequest, undefined]; + Array.prototype.unshift.apply(chain, requestInterceptorChain); + chain = chain.concat(responseInterceptorChain); + promise = Promise.resolve(config); + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + return promise; + } + var newConfig = config; + while (requestInterceptorChain.length) { + var onFulfilled = requestInterceptorChain.shift(); + var onRejected = requestInterceptorChain.shift(); + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected(error); + break; + } + } + try { + promise = dispatchRequest(newConfig); + } catch (error) { + return Promise.reject(error); + } + while (responseInterceptorChain.length) { + promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); + } + return promise; +}; +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + var fullPath = buildFullPath(config.baseURL, config.url); + return buildURL(fullPath, config.params, config.paramsSerializer); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function (url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: (config || {}).data + })); + }; +}); +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url: url, + data: data + })); + }; + } + Axios.prototype[method] = generateHTTPMethod(); + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); +module.exports = Axios; /***/ }), -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, /* 106 */ /*!***********************************************************************************************************!*\ !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/buildURL.js ***! \***********************************************************************************************************/ /*! no static exports found */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -throw new Error("Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js):\nError: ENOENT: no such file or directory, open 'G:\\pro\\java-mall-app-shop-admin\\java-mall-app-shop-admin\\node_modules\\axios\\lib\\helpers\\buildURL.js'"); +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +function encode(val) { + return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + serializedParams = parts.join('&'); + } + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + return url; +}; + +/***/ }), +/* 107 */ +/*!******************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/InterceptorManager.js ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +function InterceptorManager() { + this.handlers = []; +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; +}; + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; +module.exports = InterceptorManager; + +/***/ }), +/* 108 */ +/*!***************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/dispatchRequest.js ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +var transformData = __webpack_require__(/*! ./transformData */ 109); +var isCancel = __webpack_require__(/*! ../cancel/isCancel */ 132); +var defaults = __webpack_require__(/*! ../defaults */ 110); +var CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ 129); + +/** + * Throws a `CanceledError` if cancellation has been requested. + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + if (config.signal && config.signal.aborted) { + throw new CanceledError(); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData.call(config, config.data, config.headers, config.transformRequest); + + // Flatten headers + config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers); + utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) { + delete config.headers[method]; + }); + var adapter = config.adapter || defaults.adapter; + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call(config, response.data, response.headers, config.transformResponse); + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse); + } + } + return Promise.reject(reason); + }); +}; + +/***/ }), +/* 109 */ +/*!*************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/transformData.js ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +var defaults = __webpack_require__(/*! ../defaults */ 110); + +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + var context = this || defaults; + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn.call(context, data, headers); + }); + return data; +}; + +/***/ }), +/* 110 */ +/*!*********************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/defaults/index.js ***! + \*********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +var utils = __webpack_require__(/*! ../utils */ 103); +var normalizeHeaderName = __webpack_require__(/*! ../helpers/normalizeHeaderName */ 113); +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ 114); +var transitionalDefaults = __webpack_require__(/*! ./transitional */ 115); +var toFormData = __webpack_require__(/*! ../helpers/toFormData */ 116); +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(/*! ../adapters/xhr */ 121); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = __webpack_require__(/*! ../adapters/http */ 121); + } + return adapter; +} +function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + return (encoder || JSON.stringify)(rawValue); +} +var defaults = { + transitional: transitionalDefaults, + adapter: getDefaultAdapter(), + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + var isObjectPayload = utils.isObject(data); + var contentType = headers && headers['Content-Type']; + var isFileList; + if ((isFileList = utils.isFileList(data)) || isObjectPayload && contentType === 'multipart/form-data') { + var _FormData = this.env && this.env.FormData; + return toFormData(isFileList ? { + 'files[]': data + } : data, _FormData && new _FormData()); + } else if (isObjectPayload || contentType === 'application/json') { + setContentTypeIfUnset(headers, 'application/json'); + return stringifySafely(data); + } + return data; + }], + transformResponse: [function transformResponse(data) { + var transitional = this.transitional || defaults.transitional; + var silentJSONParsing = transitional && transitional.silentJSONParsing; + var forcedJSONParsing = transitional && transitional.forcedJSONParsing; + var strictJSONParsing = !silentJSONParsing && this.responseType === 'json'; + if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) { + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); + } + throw e; + } + } + } + return data; + }], + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + maxContentLength: -1, + maxBodyLength: -1, + env: { + FormData: __webpack_require__(/*! ./env/FormData */ 131) + }, + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + headers: { + common: { + 'Accept': 'application/json, text/plain, */*' + } + } +}; +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); +module.exports = defaults; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/node-libs-browser/mock/process.js */ 111))) /***/ }), -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, /* 111 */ /*!********************************************************!*\ !*** ./node_modules/node-libs-browser/mock/process.js ***! @@ -5338,10 +6377,194 @@ var substr = 'ab'.substr(-1) === 'b' /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/mock/process.js */ 111))) /***/ }), -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, +/* 113 */ +/*!**********************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/normalizeHeaderName.js ***! + \**********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ 103); +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; + +/***/ }), +/* 114 */ +/*!**********************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/AxiosError.js ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ 103); + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ +function AxiosError(message, code, config, request, response) { + Error.call(this); + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} +utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); +var prototype = AxiosError.prototype; +var descriptors = {}; +['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED' +// eslint-disable-next-line func-names +].forEach(function (code) { + descriptors[code] = { + value: code + }; +}); +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype, 'isAxiosError', { + value: true +}); + +// eslint-disable-next-line func-names +AxiosError.from = function (error, code, config, request, response, customProps) { + var axiosError = Object.create(prototype); + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }); + AxiosError.call(axiosError, error.message, code, config, request, response); + axiosError.name = error.name; + customProps && Object.assign(axiosError, customProps); + return axiosError; +}; +module.exports = AxiosError; + +/***/ }), +/* 115 */ +/*!****************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/defaults/transitional.js ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + +/***/ }), +/* 116 */ +/*!*************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/toFormData.js ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(Buffer) { + +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); +var utils = __webpack_require__(/*! ../utils */ 103); + +/** + * Convert a data object to FormData + * @param {Object} obj + * @param {?Object} [formData] + * @returns {Object} + **/ + +function toFormData(obj, formData) { + // eslint-disable-next-line no-param-reassign + formData = formData || new FormData(); + var stack = []; + function convertValue(value) { + if (value === null) return ''; + if (utils.isDate(value)) { + return value.toISOString(); + } + if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { + return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + return value; + } + function build(data, parentKey) { + if (utils.isPlainObject(data) || utils.isArray(data)) { + if (stack.indexOf(data) !== -1) { + throw Error('Circular reference detected in ' + parentKey); + } + stack.push(data); + utils.forEach(data, function each(value, key) { + if (utils.isUndefined(value)) return; + var fullKey = parentKey ? parentKey + '.' + key : key; + var arr; + if (value && !parentKey && _typeof(value) === 'object') { + if (utils.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) { + // eslint-disable-next-line func-names + arr.forEach(function (el) { + !utils.isUndefined(el) && formData.append(fullKey, convertValue(el)); + }); + return; + } + } + build(value, fullKey); + }); + stack.pop(); + } else { + formData.append(parentKey, convertValue(data)); + } + } + build(obj); + return formData; +} +module.exports = toFormData; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/buffer/index.js */ 117).Buffer)) + +/***/ }), /* 117 */ /*!**************************************!*\ !*** ./node_modules/buffer/index.js ***! @@ -7414,42 +8637,949 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 121 */, +/* 121 */ +/*!*******************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/adapters/xhr.js ***! + \*******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +var settle = __webpack_require__(/*! ./../core/settle */ 122); +var cookies = __webpack_require__(/*! ./../helpers/cookies */ 123); +var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ 106); +var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ 124); +var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ 127); +var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ 128); +var transitionalDefaults = __webpack_require__(/*! ../defaults/transitional */ 115); +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ 114); +var CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ 129); +var parseProtocol = __webpack_require__(/*! ../helpers/parseProtocol */ 130); +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + var responseType = config.responseType; + var onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + function onloadend() { + if (!request) { + return; + } + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + var transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined; + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = config.responseType; + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + if (config.cancelToken || config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = function onCanceled(cancel) { + if (!request) { + return; + } + reject(!cancel || cancel && cancel.type ? new CanceledError() : cancel); + request.abort(); + request = null; + }; + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + if (!requestData) { + requestData = null; + } + var protocol = parseProtocol(fullPath); + if (protocol && ['http', 'https', 'file'].indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + // Send the request + request.send(requestData); + }); +}; + +/***/ }), /* 122 */ /*!******************************************************************************************************!*\ !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/settle.js ***! \******************************************************************************************************/ /*! no static exports found */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -throw new Error("Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js):\nError: ENOENT: no such file or directory, open 'G:\\pro\\java-mall-app-shop-admin\\java-mall-app-shop-admin\\node_modules\\axios\\lib\\core\\settle.js'"); +"use strict"; + + +var AxiosError = __webpack_require__(/*! ./AxiosError */ 114); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response)); + } +}; + +/***/ }), +/* 123 */ +/*!**********************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/cookies.js ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +module.exports = utils.isStandardBrowserEnv() ? +// Standard browser envs support document.cookie +function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + if (utils.isString(path)) { + cookie.push('path=' + path); + } + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + if (secure === true) { + cookie.push('secure'); + } + document.cookie = cookie.join('; '); + }, + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return match ? decodeURIComponent(match[3]) : null; + }, + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; +}() : +// Non standard browser env (web workers, react-native) lack needed support. +function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { + return null; + }, + remove: function remove() {} + }; +}(); /***/ }), -/* 123 */, /* 124 */ /*!*************************************************************************************************************!*\ !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/buildFullPath.js ***! \*************************************************************************************************************/ /*! no static exports found */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -throw new Error("Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js):\nError: ENOENT: no such file or directory, open 'G:\\pro\\java-mall-app-shop-admin\\java-mall-app-shop-admin\\node_modules\\axios\\lib\\core\\buildFullPath.js'"); +"use strict"; + + +var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ 125); +var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ 126); + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; + +/***/ }), +/* 125 */ +/*!****************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/isAbsoluteURL.js ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +}; + +/***/ }), +/* 126 */ +/*!**************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/combineURLs.js ***! + \**************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; +}; + +/***/ }), +/* 127 */ +/*!***************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/parseHeaders.js ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); + +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']; + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + if (!headers) { + return parsed; + } + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + return parsed; +}; + +/***/ }), +/* 128 */ +/*!******************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/isURLSameOrigin.js ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); +module.exports = utils.isStandardBrowserEnv() ? +// Standard browser envs have full support of the APIs needed to test +// whether the request URL is of the same origin as current location. +function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname + }; + } + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL; + return parsed.protocol === originURL.protocol && parsed.host === originURL.host; + }; +}() : +// Non standard browser envs (web workers, react-native) lack needed support. +function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; +}(); + +/***/ }), +/* 129 */ +/*!***************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/cancel/CanceledError.js ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ 114); +var utils = __webpack_require__(/*! ../utils */ 103); + +/** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ +function CanceledError(message) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED); + this.name = 'CanceledError'; +} +utils.inherits(CanceledError, AxiosError, { + __CANCEL__: true +}); +module.exports = CanceledError; + +/***/ }), +/* 130 */ +/*!****************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/parseProtocol.js ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function parseProtocol(url) { + var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +}; + +/***/ }), +/* 131 */ +/*!*******************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/null.js ***! + \*******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// eslint-disable-next-line strict +module.exports = null; + +/***/ }), +/* 132 */ +/*!**********************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/cancel/isCancel.js ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; + +/***/ }), +/* 133 */ +/*!***********************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/core/mergeConfig.js ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ 103); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(undefined, config1[prop]); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(undefined, config2[prop]); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(undefined, config1[prop]); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(prop) { + if (prop in config2) { + return getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + return getMergedValue(undefined, config1[prop]); + } + } + var mergeMap = { + 'url': valueFromConfig2, + 'method': valueFromConfig2, + 'data': valueFromConfig2, + 'baseURL': defaultToConfig2, + 'transformRequest': defaultToConfig2, + 'transformResponse': defaultToConfig2, + 'paramsSerializer': defaultToConfig2, + 'timeout': defaultToConfig2, + 'timeoutMessage': defaultToConfig2, + 'withCredentials': defaultToConfig2, + 'adapter': defaultToConfig2, + 'responseType': defaultToConfig2, + 'xsrfCookieName': defaultToConfig2, + 'xsrfHeaderName': defaultToConfig2, + 'onUploadProgress': defaultToConfig2, + 'onDownloadProgress': defaultToConfig2, + 'decompress': defaultToConfig2, + 'maxContentLength': defaultToConfig2, + 'maxBodyLength': defaultToConfig2, + 'beforeRedirect': defaultToConfig2, + 'transport': defaultToConfig2, + 'httpAgent': defaultToConfig2, + 'httpsAgent': defaultToConfig2, + 'cancelToken': defaultToConfig2, + 'socketPath': defaultToConfig2, + 'responseEncoding': defaultToConfig2, + 'validateStatus': mergeDirectKeys + }; + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + var merge = mergeMap[prop] || mergeDeepProperties; + var configValue = merge(prop); + utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); + }); + return config; +}; + +/***/ }), +/* 134 */ +/*!************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/validator.js ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(__f__) { + +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); +var VERSION = __webpack_require__(/*! ../env/data */ 135).version; +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ 114); +var validators = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) { + validators[type] = function validator(thing) { + return _typeof(thing) === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); +var deprecatedWarnings = {}; + +/** + * Transitional option validator + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * @returns {function} + */ +validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return function (value, opt, opts) { + if (validator === false) { + throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED); + } + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + __f__("warn", formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'), " at node_modules/axios/lib/helpers/validator.js:41"); + } + return validator ? validator(value, opt, opts) : true; + }; +}; + +/** + * Assert object's properties type + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + */ + +function assertOptions(options, schema, allowUnknown) { + if (_typeof(options) !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + var keys = Object.keys(options); + var i = keys.length; + while (i-- > 0) { + var opt = keys[i]; + var validator = schema[opt]; + if (validator) { + var value = options[opt]; + var result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} +module.exports = { + assertOptions: assertOptions, + validators: validators +}; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)["default"])) + +/***/ }), +/* 135 */ +/*!***************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/env/data.js ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = { + "version": "0.27.2" +}; + +/***/ }), +/* 136 */ +/*!*************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/cancel/CancelToken.js ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var CanceledError = __webpack_require__(/*! ./CanceledError */ 129); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + var token = this; + + // eslint-disable-next-line func-names + this.promise.then(function (cancel) { + if (!token._listeners) return; + var i; + var l = token._listeners.length; + for (i = 0; i < l; i++) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = function (onfulfilled) { + var _resolve; + // eslint-disable-next-line func-names + var promise = new Promise(function (resolve) { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + return promise; + }; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + token.reason = new CanceledError(message); + resolvePromise(token.reason); + }); +} + +/** + * Throws a `CanceledError` if cancellation has been requested. + */ +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } +}; + +/** + * Subscribe to the cancel signal + */ + +CancelToken.prototype.subscribe = function subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } +}; + +/** + * Unsubscribe from the cancel signal + */ + +CancelToken.prototype.unsubscribe = function unsubscribe(listener) { + if (!this._listeners) { + return; + } + var index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } +}; + +/** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; +module.exports = CancelToken; + +/***/ }), +/* 137 */ +/*!*********************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/spread.js ***! + \*********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; + +/***/ }), +/* 138 */ +/*!***************************************************************************************************************!*\ + !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/node_modules/axios/lib/helpers/isAxiosError.js ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ 103); + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +module.exports = function isAxiosError(payload) { + return utils.isObject(payload) && payload.isAxiosError === true; +}; /***/ }), -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, /* 139 */ /*!*********************************************************************************!*\ !*** G:/pro/java-mall-app-shop-admin/java-mall-app-shop-admin/config/config.js ***! @@ -14416,7 +16546,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _H_H /***/ (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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 72));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 74));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 34);\nvar _login = __webpack_require__(/*! ../../api/login */ 99);\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 name: \"login\",\n data: function data() {\n return {\n account: \"\",\n password: \"\",\n password2: \"\",\n isLoading: false,\n registerCode: \"\",\n loginType: 0,\n verifyText: \"获取验证码\",\n time: 0,\n client_info: {},\n showPwd: false,\n showPwd2: false,\n showLogin: false\n };\n },\n onLoad: function onLoad(options) {},\n computed: _objectSpread({}, (0, _vuex.mapState)(\"user\", [\"ukey\", \"approvalStatus\"])),\n onShow: function onShow() {\n if (this.ukey && [1, 2, 3].includes(this.approvalStatus)) {\n uni.navigateTo({\n url: \"/pages/audit/checkAudit\"\n });\n }\n if (this.ukey && this.approvalStatus == 4) {\n uni.navigateTo({\n url: \"/pages/audit/shop1\"\n });\n }\n var time = uni.getStorageSync(\"registerSmsTime\") || 0;\n if (time > 0) {\n this.verifyText = time;\n this.loadSmsTime();\n }\n },\n onHide: function onHide() {},\n methods: {\n // 手机注册\n handleRegister: function handleRegister() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var params;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (_this.account) {\n _context.next = 3;\n break;\n }\n _this.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 3:\n if (_this.isValidPhoneNumber(_this.account)) {\n _context.next = 6;\n break;\n }\n _this.$refs[\"uToast\"].show({\n message: \"请输入正确的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 6:\n if (_this.registerCode) {\n _context.next = 9;\n break;\n }\n _this.$refs[\"uToast\"].show({\n message: \"请输入验证码\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 9:\n params = {\n user_mobile: _this.account,\n rand_key: _this.account,\n verify_code: _this.registerCode\n };\n _context.next = 12;\n return _this.GetLogin(params);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n loadSmsTime: function loadSmsTime() {\n var _this2 = this;\n this.time = setInterval(function () {\n _this2.verifyText--;\n uni.setStorageSync(\"registerSmsTime\", _this2.verifyText);\n if (_this2.verifyText == 0) {\n clearInterval(_this2.time);\n _this2.verifyText = \"获取验证码\";\n uni.removeStorageSync(\"registerSmsTime\");\n }\n }, 1000);\n },\n getSmsCode: function getSmsCode() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var params;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this3.account) {\n _context2.next = 3;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 3:\n if (_this3.isValidPhoneNumber(_this3.account)) {\n _context2.next = 6;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入正确的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 6:\n params = {\n number: _this3.account\n };\n if (!(Number(_this3.verifyText) > 0)) {\n _context2.next = 9;\n break;\n }\n return _context2.abrupt(\"return\");\n case 9:\n _this3.verifyText = 60;\n _this3.time = setInterval(function () {\n _this3.verifyText--;\n uni.setStorageSync(\"registerSmsTime\", _this3.verifyText);\n if (_this3.verifyText == 0) {\n clearInterval(_this3.time);\n _this3.verifyText = \"获取验证码\";\n uni.removeStorageSync(\"registerSmsTime\");\n }\n }, 1000);\n _context2.next = 13;\n return (0, _login.GetSmsCode)(params);\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n isValidPhoneNumber: function isValidPhoneNumber(phoneNumber) {\n // 定义正则表达式,校验中国大陆手机号码\n var phoneRegex = /^1[3-9]\\d{9}$/;\n return phoneRegex.test(phoneNumber);\n },\n handerSkipLogin: function handerSkipLogin() {\n this.showLogin = false;\n uni.navigateBack();\n },\n handerSkip: function handerSkip() {\n uni.navigateTo({\n url: \"/pages/agreement/agreement\"\n });\n },\n login: function login() {\n // uni.navigateTo({\n // url: \"/pages/or/index\",\n // });\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcmVnaXN0ZXIvcmVnaXN0ZXIudnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJkYXRhIiwiYWNjb3VudCIsInBhc3N3b3JkIiwicGFzc3dvcmQyIiwiaXNMb2FkaW5nIiwicmVnaXN0ZXJDb2RlIiwibG9naW5UeXBlIiwidmVyaWZ5VGV4dCIsInRpbWUiLCJjbGllbnRfaW5mbyIsInNob3dQd2QiLCJzaG93UHdkMiIsInNob3dMb2dpbiIsIm9uTG9hZCIsImNvbXB1dGVkIiwib25TaG93IiwidW5pIiwidXJsIiwib25IaWRlIiwibWV0aG9kcyIsImhhbmRsZVJlZ2lzdGVyIiwibWVzc2FnZSIsInR5cGUiLCJkdXJhdGlvbiIsInBhcmFtcyIsInVzZXJfbW9iaWxlIiwicmFuZF9rZXkiLCJ2ZXJpZnlfY29kZSIsImxvYWRTbXNUaW1lIiwiY2xlYXJJbnRlcnZhbCIsImdldFNtc0NvZGUiLCJudW1iZXIiLCJOdW1iZXIiLCJpc1ZhbGlkUGhvbmVOdW1iZXIiLCJoYW5kZXJTa2lwTG9naW4iLCJoYW5kZXJTa2lwIiwibG9naW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFrRkE7QUFDQTtBQUFBO0FBQUE7QUFBQSxlQUNBO0VBQ0FBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0VBQ0FDLDRCQUNBLHdEQUNBO0VBQ0FDO0lBQ0E7TUFDQUM7UUFBQUM7TUFBQTtJQUNBO0lBRUE7TUFDQUQ7UUFBQUM7TUFBQTtJQUNBO0lBRUE7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0VBQ0FDO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQSxJQUNBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBO2tCQUNBQztrQkFDQUM7a0JBQ0FDO2dCQUNBO2dCQUFBO2NBQUE7Z0JBQUEsSUFJQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQTtrQkFDQUY7a0JBQ0FDO2tCQUNBQztnQkFDQTtnQkFBQTtjQUFBO2dCQUFBLElBSUE7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7a0JBQ0FGO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFJQUM7a0JBQ0FDO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FFQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBO1FBRUFaO1FBRUE7VUFDQWE7VUFDQTtVQUNBYjtRQUNBO01BQ0E7SUFDQTtJQUNBYztNQUFBO01BQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUFBLElBQ0E7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7a0JBQ0FUO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFBQSxJQUdBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBO2tCQUNBRjtrQkFDQUM7a0JBQ0FDO2dCQUNBO2dCQUFBO2NBQUE7Z0JBSUFDO2tCQUNBTztnQkFDQTtnQkFBQSxNQUVBQztrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUVBO2dCQUNBO2tCQUNBO2tCQUVBaEI7a0JBRUE7b0JBQ0FhO29CQUNBO29CQUNBYjtrQkFDQTtnQkFDQTtnQkFBQTtnQkFBQSxPQUVBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBQ0E7SUFDQWlCO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBbEI7SUFDQTtJQUNBbUI7TUFDQW5CO1FBQ0FDO01BQ0E7SUFDQTtJQUNBbUI7TUFDQTtNQUNBO01BQ0E7SUFBQTtFQUVBO0FBQ0E7QUFBQSIsImZpbGUiOiIyODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgPHZpZXcgY2xhc3M9XCJyZWdpc3Rlci1jb250YWluZXJcIj5cclxuICAgIDx2aWV3IGNsYXNzPVwidGl0bGVcIj7lhY3otLnlvIDlupc8L3ZpZXc+XHJcbiAgICA8dmlldyBjbGFzcz1cInJlZ2lzdGVyLWNvbnRlbnRcIj5cclxuICAgICAgPHZpZXcgY2xhc3M9XCJhY2NvdW50LWNvbnRlbnRcIj5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImlucHV0LWNvbnRlbnRcIj5cclxuICAgICAgICAgIDx2aWV3IGNsYXNzPVwiYWNjb3VudC1yZWdpc3RlclwiPlxyXG4gICAgICAgICAgICA8IS0t6LSm5Y+3LS0+XHJcbiAgICAgICAgICAgIDx1LWlucHV0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ibG9ja1wiXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImFjY291bnRcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIDpib3JkZXI9XCInZmFsc2UnXCJcclxuICAgICAgICAgICAgICA6Y29sb3I9XCInIzU1NTU1NSdcIlxyXG4gICAgICAgICAgICAgIDpjbGVhcmFibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA6bWF4bGVuZ3RoPVwiMTFcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oKo55qE5omL5py65Y+356CBXCJcclxuICAgICAgICAgICAgICA6aGVpZ2h0PVwiNjBcIlxyXG4gICAgICAgICAgICAgIDphdXRvLWhlaWdodD1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlci1zdHlsZT1cIidjb2xvcjogIzk5OTk5OTsnXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImlucHV0LWxhYmVsXCI+5omL5py65Y+3PC90ZXh0PlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvdS1pbnB1dD5cclxuICAgICAgICAgICAgPHUtaW5wdXRcclxuICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWJsb2NrXCJcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwicmVnaXN0ZXJDb2RlXCJcclxuICAgICAgICAgICAgICA6dHlwZT1cIid0ZXh0J1wiXHJcbiAgICAgICAgICAgICAgOmNvbG9yPVwiJyM1NTU1NTUnXCJcclxuICAgICAgICAgICAgICA6Ym9yZGVyPVwiJ2ZhbHNlJ1wiXHJcbiAgICAgICAgICAgICAgOmNsZWFyYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oKo55qE6aqM6K+B56CBXCJcclxuICAgICAgICAgICAgICA6aGVpZ2h0PVwiNjBcIlxyXG4gICAgICAgICAgICAgIDphdXRvLWhlaWdodD1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlci1zdHlsZT1cIidjb2xvcjogIzk5OTk5OTsnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDIwcnB4XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImlucHV0LWxhYmVsXCI+6aqM6K+B56CBPC90ZXh0PlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJzdWZmaXhcIj5cclxuICAgICAgICAgICAgICAgIDx1LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcmlmeS1idG5cIlxyXG4gICAgICAgICAgICAgICAgICA6aGFpci1saW5lPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cImdldFNtc0NvZGVcIlxyXG4gICAgICAgICAgICAgICAgICA+e3sgdmVyaWZ5VGV4dCB9fTwvdS1idXR0b25cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3UtaW5wdXQ+XHJcbiAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImJ0bi1jb250ZW50XCI+XHJcbiAgICAgICAgICA8dS1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tcmVnaXN0ZXJcIlxyXG4gICAgICAgICAgICA6cmlwcGxlPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIDpyaXBwbGUtYmctY29sb3I9XCIncmdiYSgwLCAwLCAwLCAwLjE1KSdcIlxyXG4gICAgICAgICAgICA6bG9hZGluZz1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZVJlZ2lzdGVyXCJcclxuICAgICAgICAgICAgPuazqOWGjDwvdS1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtY29udGVudFwiPlxyXG4gICAgICAgICAg5rOo5YaM5Luj6KGo5L2g5bey57uP5ZCM5oSPPHRleHQgQGNsaWNrPVwiaGFuZGVyU2tpcCgpXCIgY2xhc3M9XCJhZ3JlZW1lbnQtaXRlbVwiXHJcbiAgICAgICAgICAgID7jgIrnlKjmiLfljY/orq7jgIs8L3RleHRcclxuICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgIDwvdmlldz5cclxuICAgIDwvdmlldz5cclxuICAgIDx1LXRvYXN0IHJlZj1cInVUb2FzdFwiIC8+XHJcbiAgICA8dS1tb2RhbFxyXG4gICAgICB2LW1vZGVsPVwic2hvd0xvZ2luXCJcclxuICAgICAgOmNvbnRlbnQ9XCIn5rOo5YaM5oiQ5YqfJ1wiXHJcbiAgICAgIDpjb25maXJtPVwibG9naW5cIlxyXG4gICAgICA6Y2FuY2VsPVwiaGFuZGVyU2tpcExvZ2luXCJcclxuICAgID48L3UtbW9kYWw+XHJcbiAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHsgbWFwQWN0aW9ucywgbWFwU3RhdGUgfSBmcm9tIFwidnVleFwiO1xyXG5pbXBvcnQgeyBHZXRTbXNDb2RlIH0gZnJvbSBcIi4uLy4uL2FwaS9sb2dpblwiO1xyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogXCJsb2dpblwiLFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhY2NvdW50OiBcIlwiLFxyXG4gICAgICBwYXNzd29yZDogXCJcIixcclxuICAgICAgcGFzc3dvcmQyOiBcIlwiLFxyXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICByZWdpc3RlckNvZGU6IFwiXCIsXHJcbiAgICAgIGxvZ2luVHlwZTogMCxcclxuICAgICAgdmVyaWZ5VGV4dDogXCLojrflj5bpqozor4HnoIFcIixcclxuICAgICAgdGltZTogMCxcclxuICAgICAgY2xpZW50X2luZm86IHt9LFxyXG4gICAgICBzaG93UHdkOiBmYWxzZSxcclxuICAgICAgc2hvd1B3ZDI6IGZhbHNlLFxyXG4gICAgICBzaG93TG9naW46IGZhbHNlLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG9uTG9hZChvcHRpb25zKSB7fSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RhdGUoXCJ1c2VyXCIsIFtcInVrZXlcIiwgXCJhcHByb3ZhbFN0YXR1c1wiXSksXHJcbiAgfSxcclxuICBvblNob3coKSB7XHJcbiAgICBpZiAodGhpcy51a2V5ICYmIFsxLCAyLCAzXS5pbmNsdWRlcyh0aGlzLmFwcHJvdmFsU3RhdHVzKSkge1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7IHVybDogXCIvcGFnZXMvYXVkaXQvY2hlY2tBdWRpdFwiIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnVrZXkgJiYgdGhpcy5hcHByb3ZhbFN0YXR1cyA9PSA0KSB7XHJcbiAgICAgIHVuaS5uYXZpZ2F0ZVRvKHsgdXJsOiBcIi9wYWdlcy9hdWRpdC9zaG9wMVwiIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0aW1lID0gdW5pLmdldFN0b3JhZ2VTeW5jKFwicmVnaXN0ZXJTbXNUaW1lXCIpIHx8IDA7XHJcbiAgICBpZiAodGltZSA+IDApIHtcclxuICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gdGltZTtcclxuICAgICAgdGhpcy5sb2FkU21zVGltZSgpO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgb25IaWRlKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLy8g5omL5py65rOo5YaMXHJcbiAgICBhc3luYyBoYW5kbGVSZWdpc3RlcigpIHtcclxuICAgICAgaWYgKCF0aGlzLmFjY291bnQpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTmiYvmnLrlj7dcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRQaG9uZU51bWJlcih0aGlzLmFjY291bnQpKSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5q2j56Gu55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy5yZWdpc3RlckNvZGUpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXpqozor4HnoIFcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICB1c2VyX21vYmlsZTogdGhpcy5hY2NvdW50LFxyXG4gICAgICAgIHJhbmRfa2V5OiB0aGlzLmFjY291bnQsXHJcbiAgICAgICAgdmVyaWZ5X2NvZGU6IHRoaXMucmVnaXN0ZXJDb2RlLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5HZXRMb2dpbihwYXJhbXMpO1xyXG4gICAgfSxcclxuICAgIGxvYWRTbXNUaW1lKCkge1xyXG4gICAgICB0aGlzLnRpbWUgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlUZXh0LS07XHJcblxyXG4gICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYyhcInJlZ2lzdGVyU21zVGltZVwiLCB0aGlzLnZlcmlmeVRleHQpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52ZXJpZnlUZXh0ID09IDApIHtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lKTtcclxuICAgICAgICAgIHRoaXMudmVyaWZ5VGV4dCA9IFwi6I635Y+W6aqM6K+B56CBXCI7XHJcbiAgICAgICAgICB1bmkucmVtb3ZlU3RvcmFnZVN5bmMoXCJyZWdpc3RlclNtc1RpbWVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBnZXRTbXNDb2RlKCkge1xyXG4gICAgICBpZiAoIXRoaXMuYWNjb3VudCkge1xyXG4gICAgICAgIHRoaXMuJHJlZnNbXCJ1VG9hc3RcIl0uc2hvdyh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBcIuivt+i+k+WFpeaCqOeahOaJi+acuuWPt1wiLFxyXG4gICAgICAgICAgdHlwZTogXCJlcnJvclwiLFxyXG4gICAgICAgICAgZHVyYXRpb246IDEwMDAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkUGhvbmVOdW1iZXIodGhpcy5hY2NvdW50KSkge1xyXG4gICAgICAgIHRoaXMuJHJlZnNbXCJ1VG9hc3RcIl0uc2hvdyh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBcIuivt+i+k+WFpeato+ehrueahOaJi+acuuWPt1wiLFxyXG4gICAgICAgICAgdHlwZTogXCJlcnJvclwiLFxyXG4gICAgICAgICAgZHVyYXRpb246IDEwMDAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgIG51bWJlcjogdGhpcy5hY2NvdW50LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKE51bWJlcih0aGlzLnZlcmlmeVRleHQpID4gMCkgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gNjA7XHJcbiAgICAgIHRoaXMudGltZSA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLnZlcmlmeVRleHQtLTtcclxuXHJcbiAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKFwicmVnaXN0ZXJTbXNUaW1lXCIsIHRoaXMudmVyaWZ5VGV4dCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZlcmlmeVRleHQgPT0gMCkge1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWUpO1xyXG4gICAgICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gXCLojrflj5bpqozor4HnoIFcIjtcclxuICAgICAgICAgIHVuaS5yZW1vdmVTdG9yYWdlU3luYyhcInJlZ2lzdGVyU21zVGltZVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgICAgYXdhaXQgR2V0U21zQ29kZShwYXJhbXMpO1xyXG4gICAgfSxcclxuICAgIGlzVmFsaWRQaG9uZU51bWJlcihwaG9uZU51bWJlcikge1xyXG4gICAgICAvLyDlrprkuYnmraPliJnooajovr7lvI/vvIzmoKHpqozkuK3lm73lpKfpmYbmiYvmnLrlj7fnoIFcclxuICAgICAgY29uc3QgcGhvbmVSZWdleCA9IC9eMVszLTldXFxkezl9JC87XHJcbiAgICAgIHJldHVybiBwaG9uZVJlZ2V4LnRlc3QocGhvbmVOdW1iZXIpO1xyXG4gICAgfSxcclxuICAgIGhhbmRlclNraXBMb2dpbigpIHtcclxuICAgICAgdGhpcy5zaG93TG9naW4gPSBmYWxzZTtcclxuICAgICAgdW5pLm5hdmlnYXRlQmFjaygpO1xyXG4gICAgfSxcclxuICAgIGhhbmRlclNraXAoKSB7XHJcbiAgICAgIHVuaS5uYXZpZ2F0ZVRvKHtcclxuICAgICAgICB1cmw6IFwiL3BhZ2VzL2FncmVlbWVudC9hZ3JlZW1lbnRcIixcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgbG9naW4oKSB7XHJcbiAgICAgIC8vIHVuaS5uYXZpZ2F0ZVRvKHtcclxuICAgICAgLy8gICB1cmw6IFwiL3BhZ2VzL29yL2luZGV4XCIsXHJcbiAgICAgIC8vIH0pO1xyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG4ucmVnaXN0ZXItY29udGFpbmVyIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIC50aXRsZSB7XHJcbiAgICBtYXJnaW46IDEwMHJweCAwJTtcclxuICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLnJlZ2lzdGVyLWNvbnRlbnQge1xyXG4gICAgcGFkZGluZzogMTQlIDQwcnB4IDAgNDBycHg7XHJcblxyXG4gICAgLnJlZ2lzdGVyLWJsb2NrIHtcclxuICAgICAgd2lkdGg6IDIwMHJweDtcclxuICAgICAgaGVpZ2h0OiAyMDBycHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLmFjY291bnQtY29udGVudCB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDQ0cnB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG5cclxuICAgIC5sb2dpbi10eXBlIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAgIC5sb2dpbi10eXBlLWl0ZW0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwcnB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMDBycHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnJweDtcclxuICAgICAgICBjb2xvcjogIzVjNWM1YztcclxuICAgICAgfVxyXG5cclxuICAgICAgLmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBjb2xvcjogI2ZkODA2YjtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIC8vIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAvLyBsZWZ0OiA4OXB4O1xyXG4gICAgICAgICAgLy8gdG9wOiAzOXB4O1xyXG4gICAgICAgICAgLy8gYm9yZGVyLXRvcDogOXB4IHNvbGlkIHJlZDtcclxuICAgICAgICAgIC8vIC8vYm9yZGVyLWxlZnTlkoxib3JkZXItcmlnaHTmjaLmiJDpgI/mmI7oibIg5omN6IO95b2i5oiQ5LiJ6KeS5b2iIOS4jeeEtuaYr+mVv+aWueW9olxyXG4gICAgICAgICAgLy8gYm9yZGVyLWxlZnQ6IDEycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAvLyBib3JkZXItcmlnaHQ6IDEycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQtY29udGVudCB7XHJcbiAgICAgIG1hcmdpbjogNjhycHggNDRycHg7XHJcblxyXG4gICAgICAudS1pbnB1dCB7XHJcbiAgICAgICAgcGFkZGluZzogMTZycHggIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHJweDtcclxuICAgICAgICBoZWlnaHQ6IDgwcnB4O1xyXG4gICAgICAgIGNvbG9yOiAjOTk5OTk5O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAlO1xyXG4gICAgICAgIGNvbG9yOiAjNTU1NTU1O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaW5wdXQtbGFiZWwge1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmlucHV0LWxhYmVsIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGlwcy1jb250ZW50IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBtYXJnaW46IDAgNDhycHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhycHg7XHJcbiAgICAgIGNvbG9yOiByZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ0bi1jb250ZW50IHtcclxuICAgICAgbWFyZ2luOiAxMjBycHggNTZycHg7XHJcblxyXG4gICAgICAuYnRuLXJlZ2lzdGVyIHtcclxuICAgICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMTBweDtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzRiNzFmZjtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hZ3JlZW1lbnQtY29udGVudCB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgYm90dG9tOiAxMCU7XHJcbiAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZm9udC1zaXplOiAyOHJweDtcclxuICAgICAgY29sb3I6ICNjY2M7XHJcblxyXG4gICAgICAuYWdyZWVtZW50LWl0ZW0ge1xyXG4gICAgICAgIGNvbG9yOiAjNGI3MWZmO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRoaXJkLXBhcnR5LWNvbnRlbnQge1xyXG4gICAgICBtYXJnaW46IDQwcnB4IDA7XHJcblxyXG4gICAgICAudGl0bGUtYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiAyNHJweCAyMCU7XHJcbiAgICAgICAgY29sb3I6ICM5NDk0OTQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgICAgICAgLnRpdGxlLXRleHQge1xyXG4gICAgICAgICAgcGFkZGluZzogMCAyMHJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50aXRsZS1saW5lIHtcclxuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk0OTQ5NDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGhpcmQtcGFydHktaW1nLWJsb2NrIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XHJcbiAgICB9XHJcblxyXG4gICAgLnZlcmlmeS1idG4ge1xyXG4gICAgICB3aWR0aDogMTUycnB4O1xyXG4gICAgICBoZWlnaHQ6IDY0cnB4O1xyXG4gICAgICBmb250LXNpemU6IDI0cnB4O1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NSwgMTU0LCAzNSwgMSk7XHJcblxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAoZGV2aWNlLXdpZHRoOiAzMjBweCkgYW5kIChkZXZpY2UtaGVpZ2h0OiA1NjhweCkgYW5kICgtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogMikge1xyXG4gICAgLmxvZ2luLWNvbnRlbnQge1xyXG4gICAgICBwYWRkaW5nOiAxMHJweCA2MHJweCAwIDYwcnB4O1xyXG5cclxuICAgICAgLmFjY291bnQtY29udGVudCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNDBycHggIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///285\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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 72));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 74));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 34);\nvar _login = __webpack_require__(/*! ../../api/login */ 99);\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 name: \"login\",\n data: function data() {\n return {\n account: \"\",\n password: \"\",\n password2: \"\",\n isLoading: false,\n registerCode: \"\",\n loginType: 0,\n verifyText: \"获取验证码\",\n time: 0,\n client_info: {},\n showPwd: false,\n showPwd2: false,\n showLogin: false\n };\n },\n onLoad: function onLoad(options) {},\n computed: _objectSpread({}, (0, _vuex.mapState)(\"user\", [\"ukey\", \"approvalStatus\"])),\n onShow: function onShow() {\n if (this.ukey && [1, 2, 3].includes(this.approvalStatus)) {\n uni.navigateTo({\n url: \"/pages/audit/checkAudit\"\n });\n }\n if (this.ukey && this.approvalStatus == 4) {\n uni.navigateTo({\n url: \"/pages/audit/shop1\"\n });\n }\n var time = uni.getStorageSync(\"registerSmsTime\") || 0;\n if (time > 0) {\n this.verifyText = time;\n this.loadSmsTime();\n }\n },\n onHide: function onHide() {},\n methods: _objectSpread(_objectSpread({}, (0, _vuex.mapActions)(\"user\", [\"GetLogin\", \"GetSmsCode\", \"GetAccountLogin\"])), {}, {\n // 手机注册\n handleRegister: function handleRegister() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var params;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (_this.account) {\n _context.next = 3;\n break;\n }\n _this.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 3:\n if (_this.isValidPhoneNumber(_this.account)) {\n _context.next = 6;\n break;\n }\n _this.$refs[\"uToast\"].show({\n message: \"请输入正确的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 6:\n if (_this.registerCode) {\n _context.next = 9;\n break;\n }\n _this.$refs[\"uToast\"].show({\n message: \"请输入验证码\",\n type: \"error\",\n duration: 1000\n });\n return _context.abrupt(\"return\");\n case 9:\n params = {\n user_mobile: _this.account,\n rand_key: _this.account,\n verify_code: _this.registerCode\n };\n _context.next = 12;\n return _this.GetLogin(params);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n loadSmsTime: function loadSmsTime() {\n var _this2 = this;\n this.time = setInterval(function () {\n _this2.verifyText--;\n uni.setStorageSync(\"registerSmsTime\", _this2.verifyText);\n if (_this2.verifyText == 0) {\n clearInterval(_this2.time);\n _this2.verifyText = \"获取验证码\";\n uni.removeStorageSync(\"registerSmsTime\");\n }\n }, 1000);\n },\n getSmsCode: function getSmsCode() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var params;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this3.account) {\n _context2.next = 3;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入您的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 3:\n if (_this3.isValidPhoneNumber(_this3.account)) {\n _context2.next = 6;\n break;\n }\n _this3.$refs[\"uToast\"].show({\n message: \"请输入正确的手机号\",\n type: \"error\",\n duration: 1000\n });\n return _context2.abrupt(\"return\");\n case 6:\n params = {\n number: _this3.account\n };\n if (!(Number(_this3.verifyText) > 0)) {\n _context2.next = 9;\n break;\n }\n return _context2.abrupt(\"return\");\n case 9:\n _this3.verifyText = 60;\n _this3.time = setInterval(function () {\n _this3.verifyText--;\n uni.setStorageSync(\"registerSmsTime\", _this3.verifyText);\n if (_this3.verifyText == 0) {\n clearInterval(_this3.time);\n _this3.verifyText = \"获取验证码\";\n uni.removeStorageSync(\"registerSmsTime\");\n }\n }, 1000);\n _context2.next = 13;\n return (0, _login.GetSmsCode)(params);\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n isValidPhoneNumber: function isValidPhoneNumber(phoneNumber) {\n // 定义正则表达式,校验中国大陆手机号码\n var phoneRegex = /^1[3-9]\\d{9}$/;\n return phoneRegex.test(phoneNumber);\n },\n handerSkipLogin: function handerSkipLogin() {\n this.showLogin = false;\n uni.navigateBack();\n },\n handerSkip: function handerSkip() {\n uni.navigateTo({\n url: \"/pages/agreement/agreement\"\n });\n },\n login: function login() {\n // uni.navigateTo({\n // url: \"/pages/or/index\",\n // });\n }\n })\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcmVnaXN0ZXIvcmVnaXN0ZXIudnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJkYXRhIiwiYWNjb3VudCIsInBhc3N3b3JkIiwicGFzc3dvcmQyIiwiaXNMb2FkaW5nIiwicmVnaXN0ZXJDb2RlIiwibG9naW5UeXBlIiwidmVyaWZ5VGV4dCIsInRpbWUiLCJjbGllbnRfaW5mbyIsInNob3dQd2QiLCJzaG93UHdkMiIsInNob3dMb2dpbiIsIm9uTG9hZCIsImNvbXB1dGVkIiwib25TaG93IiwidW5pIiwidXJsIiwib25IaWRlIiwibWV0aG9kcyIsImhhbmRsZVJlZ2lzdGVyIiwibWVzc2FnZSIsInR5cGUiLCJkdXJhdGlvbiIsInBhcmFtcyIsInVzZXJfbW9iaWxlIiwicmFuZF9rZXkiLCJ2ZXJpZnlfY29kZSIsImxvYWRTbXNUaW1lIiwiY2xlYXJJbnRlcnZhbCIsImdldFNtc0NvZGUiLCJudW1iZXIiLCJOdW1iZXIiLCJpc1ZhbGlkUGhvbmVOdW1iZXIiLCJoYW5kZXJTa2lwTG9naW4iLCJoYW5kZXJTa2lwIiwibG9naW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFrRkE7QUFDQTtBQUFBO0FBQUE7QUFBQSxlQUNBO0VBQ0FBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0VBQ0FDLDRCQUNBLHdEQUNBO0VBQ0FDO0lBQ0E7TUFDQUM7UUFBQUM7TUFBQTtJQUNBO0lBRUE7TUFDQUQ7UUFBQUM7TUFBQTtJQUNBO0lBRUE7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0VBQ0FDLHlDQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQSxJQUNBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBO2tCQUNBQztrQkFDQUM7a0JBQ0FDO2dCQUNBO2dCQUFBO2NBQUE7Z0JBQUEsSUFJQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQTtrQkFDQUY7a0JBQ0FDO2tCQUNBQztnQkFDQTtnQkFBQTtjQUFBO2dCQUFBLElBSUE7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7a0JBQ0FGO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFJQUM7a0JBQ0FDO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FFQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBO1FBRUFaO1FBRUE7VUFDQWE7VUFDQTtVQUNBYjtRQUNBO01BQ0E7SUFDQTtJQUNBYztNQUFBO01BQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUFBLElBQ0E7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7a0JBQ0FUO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFBQSxJQUdBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBO2tCQUNBRjtrQkFDQUM7a0JBQ0FDO2dCQUNBO2dCQUFBO2NBQUE7Z0JBSUFDO2tCQUNBTztnQkFDQTtnQkFBQSxNQUVBQztrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUVBO2dCQUNBO2tCQUNBO2tCQUVBaEI7a0JBRUE7b0JBQ0FhO29CQUNBO29CQUNBYjtrQkFDQTtnQkFDQTtnQkFBQTtnQkFBQSxPQUVBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBQ0E7SUFDQWlCO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBbEI7SUFDQTtJQUNBbUI7TUFDQW5CO1FBQ0FDO01BQ0E7SUFDQTtJQUNBbUI7TUFDQTtNQUNBO01BQ0E7SUFBQTtFQUNBO0FBRUE7QUFBQSIsImZpbGUiOiIyODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgPHZpZXcgY2xhc3M9XCJyZWdpc3Rlci1jb250YWluZXJcIj5cclxuICAgIDx2aWV3IGNsYXNzPVwidGl0bGVcIj7lhY3otLnlvIDlupc8L3ZpZXc+XHJcbiAgICA8dmlldyBjbGFzcz1cInJlZ2lzdGVyLWNvbnRlbnRcIj5cclxuICAgICAgPHZpZXcgY2xhc3M9XCJhY2NvdW50LWNvbnRlbnRcIj5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImlucHV0LWNvbnRlbnRcIj5cclxuICAgICAgICAgIDx2aWV3IGNsYXNzPVwiYWNjb3VudC1yZWdpc3RlclwiPlxyXG4gICAgICAgICAgICA8IS0t6LSm5Y+3LS0+XHJcbiAgICAgICAgICAgIDx1LWlucHV0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ibG9ja1wiXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImFjY291bnRcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIDpib3JkZXI9XCInZmFsc2UnXCJcclxuICAgICAgICAgICAgICA6Y29sb3I9XCInIzU1NTU1NSdcIlxyXG4gICAgICAgICAgICAgIDpjbGVhcmFibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA6bWF4bGVuZ3RoPVwiMTFcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oKo55qE5omL5py65Y+356CBXCJcclxuICAgICAgICAgICAgICA6aGVpZ2h0PVwiNjBcIlxyXG4gICAgICAgICAgICAgIDphdXRvLWhlaWdodD1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlci1zdHlsZT1cIidjb2xvcjogIzk5OTk5OTsnXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImlucHV0LWxhYmVsXCI+5omL5py65Y+3PC90ZXh0PlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvdS1pbnB1dD5cclxuICAgICAgICAgICAgPHUtaW5wdXRcclxuICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWJsb2NrXCJcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwicmVnaXN0ZXJDb2RlXCJcclxuICAgICAgICAgICAgICA6dHlwZT1cIid0ZXh0J1wiXHJcbiAgICAgICAgICAgICAgOmNvbG9yPVwiJyM1NTU1NTUnXCJcclxuICAgICAgICAgICAgICA6Ym9yZGVyPVwiJ2ZhbHNlJ1wiXHJcbiAgICAgICAgICAgICAgOmNsZWFyYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oKo55qE6aqM6K+B56CBXCJcclxuICAgICAgICAgICAgICA6aGVpZ2h0PVwiNjBcIlxyXG4gICAgICAgICAgICAgIDphdXRvLWhlaWdodD1cInRydWVcIlxyXG4gICAgICAgICAgICAgIDpwbGFjZWhvbGRlci1zdHlsZT1cIidjb2xvcjogIzk5OTk5OTsnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDIwcnB4XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImlucHV0LWxhYmVsXCI+6aqM6K+B56CBPC90ZXh0PlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJzdWZmaXhcIj5cclxuICAgICAgICAgICAgICAgIDx1LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcmlmeS1idG5cIlxyXG4gICAgICAgICAgICAgICAgICA6aGFpci1saW5lPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cImdldFNtc0NvZGVcIlxyXG4gICAgICAgICAgICAgICAgICA+e3sgdmVyaWZ5VGV4dCB9fTwvdS1idXR0b25cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3UtaW5wdXQ+XHJcbiAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICA8dmlldyBjbGFzcz1cImJ0bi1jb250ZW50XCI+XHJcbiAgICAgICAgICA8dS1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tcmVnaXN0ZXJcIlxyXG4gICAgICAgICAgICA6cmlwcGxlPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIDpyaXBwbGUtYmctY29sb3I9XCIncmdiYSgwLCAwLCAwLCAwLjE1KSdcIlxyXG4gICAgICAgICAgICA6bG9hZGluZz1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZVJlZ2lzdGVyXCJcclxuICAgICAgICAgICAgPuazqOWGjDwvdS1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJhZ3JlZW1lbnQtY29udGVudFwiPlxyXG4gICAgICAgICAg5rOo5YaM5Luj6KGo5L2g5bey57uP5ZCM5oSPPHRleHQgQGNsaWNrPVwiaGFuZGVyU2tpcCgpXCIgY2xhc3M9XCJhZ3JlZW1lbnQtaXRlbVwiXHJcbiAgICAgICAgICAgID7jgIrnlKjmiLfljY/orq7jgIs8L3RleHRcclxuICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICAgIDwvdmlldz5cclxuICAgIDwvdmlldz5cclxuICAgIDx1LXRvYXN0IHJlZj1cInVUb2FzdFwiIC8+XHJcbiAgICA8dS1tb2RhbFxyXG4gICAgICB2LW1vZGVsPVwic2hvd0xvZ2luXCJcclxuICAgICAgOmNvbnRlbnQ9XCIn5rOo5YaM5oiQ5YqfJ1wiXHJcbiAgICAgIDpjb25maXJtPVwibG9naW5cIlxyXG4gICAgICA6Y2FuY2VsPVwiaGFuZGVyU2tpcExvZ2luXCJcclxuICAgID48L3UtbW9kYWw+XHJcbiAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHsgbWFwQWN0aW9ucywgbWFwU3RhdGUgfSBmcm9tIFwidnVleFwiO1xyXG5pbXBvcnQgeyBHZXRTbXNDb2RlIH0gZnJvbSBcIi4uLy4uL2FwaS9sb2dpblwiO1xyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogXCJsb2dpblwiLFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhY2NvdW50OiBcIlwiLFxyXG4gICAgICBwYXNzd29yZDogXCJcIixcclxuICAgICAgcGFzc3dvcmQyOiBcIlwiLFxyXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICByZWdpc3RlckNvZGU6IFwiXCIsXHJcbiAgICAgIGxvZ2luVHlwZTogMCxcclxuICAgICAgdmVyaWZ5VGV4dDogXCLojrflj5bpqozor4HnoIFcIixcclxuICAgICAgdGltZTogMCxcclxuICAgICAgY2xpZW50X2luZm86IHt9LFxyXG4gICAgICBzaG93UHdkOiBmYWxzZSxcclxuICAgICAgc2hvd1B3ZDI6IGZhbHNlLFxyXG4gICAgICBzaG93TG9naW46IGZhbHNlLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG9uTG9hZChvcHRpb25zKSB7fSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RhdGUoXCJ1c2VyXCIsIFtcInVrZXlcIiwgXCJhcHByb3ZhbFN0YXR1c1wiXSksXHJcbiAgfSxcclxuICBvblNob3coKSB7XHJcbiAgICBpZiAodGhpcy51a2V5ICYmIFsxLCAyLCAzXS5pbmNsdWRlcyh0aGlzLmFwcHJvdmFsU3RhdHVzKSkge1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7IHVybDogXCIvcGFnZXMvYXVkaXQvY2hlY2tBdWRpdFwiIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnVrZXkgJiYgdGhpcy5hcHByb3ZhbFN0YXR1cyA9PSA0KSB7XHJcbiAgICAgIHVuaS5uYXZpZ2F0ZVRvKHsgdXJsOiBcIi9wYWdlcy9hdWRpdC9zaG9wMVwiIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0aW1lID0gdW5pLmdldFN0b3JhZ2VTeW5jKFwicmVnaXN0ZXJTbXNUaW1lXCIpIHx8IDA7XHJcbiAgICBpZiAodGltZSA+IDApIHtcclxuICAgICAgdGhpcy52ZXJpZnlUZXh0ID0gdGltZTtcclxuICAgICAgdGhpcy5sb2FkU21zVGltZSgpO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgb25IaWRlKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLi4ubWFwQWN0aW9ucyhcInVzZXJcIiwgW1wiR2V0TG9naW5cIiwgXCJHZXRTbXNDb2RlXCIsIFwiR2V0QWNjb3VudExvZ2luXCJdKSxcclxuICAgIC8vIOaJi+acuuazqOWGjFxyXG4gICAgYXN5bmMgaGFuZGxlUmVnaXN0ZXIoKSB7XHJcbiAgICAgIGlmICghdGhpcy5hY2NvdW50KSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl5oKo55qE5omL5py65Y+3XCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkUGhvbmVOdW1iZXIodGhpcy5hY2NvdW50KSkge1xyXG4gICAgICAgIHRoaXMuJHJlZnNbXCJ1VG9hc3RcIl0uc2hvdyh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBcIuivt+i+k+WFpeato+ehrueahOaJi+acuuWPt1wiLFxyXG4gICAgICAgICAgdHlwZTogXCJlcnJvclwiLFxyXG4gICAgICAgICAgZHVyYXRpb246IDEwMDAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXRoaXMucmVnaXN0ZXJDb2RlKSB7XHJcbiAgICAgICAgdGhpcy4kcmVmc1tcInVUb2FzdFwiXS5zaG93KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6K+36L6T5YWl6aqM6K+B56CBXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgdXNlcl9tb2JpbGU6IHRoaXMuYWNjb3VudCxcclxuICAgICAgICByYW5kX2tleTogdGhpcy5hY2NvdW50LFxyXG4gICAgICAgIHZlcmlmeV9jb2RlOiB0aGlzLnJlZ2lzdGVyQ29kZSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuR2V0TG9naW4ocGFyYW1zKTtcclxuICAgIH0sXHJcbiAgICBsb2FkU21zVGltZSgpIHtcclxuICAgICAgdGhpcy50aW1lID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmVyaWZ5VGV4dC0tO1xyXG5cclxuICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoXCJyZWdpc3RlclNtc1RpbWVcIiwgdGhpcy52ZXJpZnlUZXh0KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmVyaWZ5VGV4dCA9PSAwKSB7XHJcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZSk7XHJcbiAgICAgICAgICB0aGlzLnZlcmlmeVRleHQgPSBcIuiOt+WPlumqjOivgeeggVwiO1xyXG4gICAgICAgICAgdW5pLnJlbW92ZVN0b3JhZ2VTeW5jKFwicmVnaXN0ZXJTbXNUaW1lXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgZ2V0U21zQ29kZSgpIHtcclxuICAgICAgaWYgKCF0aGlzLmFjY291bnQpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmgqjnmoTmiYvmnLrlj7dcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuaXNWYWxpZFBob25lTnVtYmVyKHRoaXMuYWNjb3VudCkpIHtcclxuICAgICAgICB0aGlzLiRyZWZzW1widVRvYXN0XCJdLnNob3coe1xyXG4gICAgICAgICAgbWVzc2FnZTogXCLor7fovpPlhaXmraPnoa7nmoTmiYvmnLrlj7dcIixcclxuICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICBudW1iZXI6IHRoaXMuYWNjb3VudCxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmIChOdW1iZXIodGhpcy52ZXJpZnlUZXh0KSA+IDApIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMudmVyaWZ5VGV4dCA9IDYwO1xyXG4gICAgICB0aGlzLnRpbWUgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlUZXh0LS07XHJcblxyXG4gICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYyhcInJlZ2lzdGVyU21zVGltZVwiLCB0aGlzLnZlcmlmeVRleHQpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52ZXJpZnlUZXh0ID09IDApIHtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lKTtcclxuICAgICAgICAgIHRoaXMudmVyaWZ5VGV4dCA9IFwi6I635Y+W6aqM6K+B56CBXCI7XHJcbiAgICAgICAgICB1bmkucmVtb3ZlU3RvcmFnZVN5bmMoXCJyZWdpc3RlclNtc1RpbWVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgIGF3YWl0IEdldFNtc0NvZGUocGFyYW1zKTtcclxuICAgIH0sXHJcbiAgICBpc1ZhbGlkUGhvbmVOdW1iZXIocGhvbmVOdW1iZXIpIHtcclxuICAgICAgLy8g5a6a5LmJ5q2j5YiZ6KGo6L6+5byP77yM5qCh6aqM5Lit5Zu95aSn6ZmG5omL5py65Y+356CBXHJcbiAgICAgIGNvbnN0IHBob25lUmVnZXggPSAvXjFbMy05XVxcZHs5fSQvO1xyXG4gICAgICByZXR1cm4gcGhvbmVSZWdleC50ZXN0KHBob25lTnVtYmVyKTtcclxuICAgIH0sXHJcbiAgICBoYW5kZXJTa2lwTG9naW4oKSB7XHJcbiAgICAgIHRoaXMuc2hvd0xvZ2luID0gZmFsc2U7XHJcbiAgICAgIHVuaS5uYXZpZ2F0ZUJhY2soKTtcclxuICAgIH0sXHJcbiAgICBoYW5kZXJTa2lwKCkge1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgICAgdXJsOiBcIi9wYWdlcy9hZ3JlZW1lbnQvYWdyZWVtZW50XCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGxvZ2luKCkge1xyXG4gICAgICAvLyB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgIC8vICAgdXJsOiBcIi9wYWdlcy9vci9pbmRleFwiLFxyXG4gICAgICAvLyB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIj5cclxuLnJlZ2lzdGVyLWNvbnRhaW5lciB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAudGl0bGUge1xyXG4gICAgbWFyZ2luOiAxMDBycHggMCU7XHJcbiAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5yZWdpc3Rlci1jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDE0JSA0MHJweCAwIDQwcnB4O1xyXG5cclxuICAgIC5yZWdpc3Rlci1ibG9jayB7XHJcbiAgICAgIHdpZHRoOiAyMDBycHg7XHJcbiAgICAgIGhlaWdodDogMjAwcnB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5hY2NvdW50LWNvbnRlbnQge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0NHJweDtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICAubG9naW4tdHlwZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgICAubG9naW4tdHlwZS1pdGVtIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMHJweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTAwcnB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzJycHg7XHJcbiAgICAgICAgY29sb3I6ICM1YzVjNWM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgY29sb3I6ICNmZDgwNmI7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAvLyBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgLy8gbGVmdDogODlweDtcclxuICAgICAgICAgIC8vIHRvcDogMzlweDtcclxuICAgICAgICAgIC8vIGJvcmRlci10b3A6IDlweCBzb2xpZCByZWQ7XHJcbiAgICAgICAgICAvLyAvL2JvcmRlci1sZWZ05ZKMYm9yZGVyLXJpZ2h05o2i5oiQ6YCP5piO6ImyIOaJjeiDveW9ouaIkOS4ieinkuW9oiDkuI3nhLbmmK/plb/mlrnlvaJcclxuICAgICAgICAgIC8vIGJvcmRlci1sZWZ0OiAxMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgLy8gYm9yZGVyLXJpZ2h0OiAxMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWNvbnRlbnQge1xyXG4gICAgICBtYXJnaW46IDY4cnB4IDQ0cnB4O1xyXG5cclxuICAgICAgLnUtaW5wdXQge1xyXG4gICAgICAgIHBhZGRpbmc6IDE2cnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBycHg7XHJcbiAgICAgICAgaGVpZ2h0OiA4MHJweDtcclxuICAgICAgICBjb2xvcjogIzk5OTk5OTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwJTtcclxuICAgICAgICBjb2xvcjogIzU1NTU1NTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmlucHV0LWxhYmVsIHtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHJweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pbnB1dC1sYWJlbCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRpcHMtY29udGVudCB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgbWFyZ2luOiAwIDQ4cnB4O1xyXG4gICAgICBmb250LXNpemU6IDI4cnB4O1xyXG4gICAgICBjb2xvcjogcmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC5idG4tY29udGVudCB7XHJcbiAgICAgIG1hcmdpbjogMTIwcnB4IDU2cnB4O1xyXG5cclxuICAgICAgLmJ0bi1yZWdpc3RlciB7XHJcbiAgICAgICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM0YjcxZmY7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWdyZWVtZW50LWNvbnRlbnQge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIGJvdHRvbTogMTAlO1xyXG4gICAgICB3aWR0aDogOTAlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhycHg7XHJcbiAgICAgIGNvbG9yOiAjY2NjO1xyXG5cclxuICAgICAgLmFncmVlbWVudC1pdGVtIHtcclxuICAgICAgICBjb2xvcjogIzRiNzFmZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50aGlyZC1wYXJ0eS1jb250ZW50IHtcclxuICAgICAgbWFyZ2luOiA0MHJweCAwO1xyXG5cclxuICAgICAgLnRpdGxlLWJsb2NrIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMjRycHggMjAlO1xyXG4gICAgICAgIGNvbG9yOiAjOTQ5NDk0O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG4gICAgICAgIC50aXRsZS10ZXh0IHtcclxuICAgICAgICAgIHBhZGRpbmc6IDAgMjBycHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGl0bGUtbGluZSB7XHJcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5NDk0OTQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRoaXJkLXBhcnR5LWltZy1ibG9jayB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xyXG4gICAgfVxyXG5cclxuICAgIC52ZXJpZnktYnRuIHtcclxuICAgICAgd2lkdGg6IDE1MnJweDtcclxuICAgICAgaGVpZ2h0OiA2NHJweDtcclxuICAgICAgZm9udC1zaXplOiAyNHJweDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDUsIDE1NCwgMzUsIDEpO1xyXG5cclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKGRldmljZS13aWR0aDogMzIwcHgpIGFuZCAoZGV2aWNlLWhlaWdodDogNTY4cHgpIGFuZCAoLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpIHtcclxuICAgIC5sb2dpbi1jb250ZW50IHtcclxuICAgICAgcGFkZGluZzogMTBycHggNjBycHggMCA2MHJweDtcclxuXHJcbiAgICAgIC5hY2NvdW50LWNvbnRlbnQge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDQwcnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///285\n"); /***/ }), /* 286 */ @@ -28091,7 +30221,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _H_H /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 72));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 74));\nvar _appUpdate = _interopRequireWildcard(__webpack_require__(/*! @/config/appUpdate */ 523));\nvar _checkAPPupdate = __webpack_require__(/*! @/api/checkAPPupdate */ 525);\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar _default = {\n data: function data() {\n return {\n version: \"\"\n };\n },\n onLaunch: function onLaunch() {\n var _this = this;\n (0, _appUpdate.getCurrentNo)(function (res) {\n _this.version = res.version;\n __f__(\"log\", \"asdas\", res, \" at App.vue:17\");\n });\n this.onAPPUpdate();\n },\n onShow: function onShow() {\n this.getAPPversion();\n },\n onHide: function onHide() {},\n onBackPress: function onBackPress() {},\n methods: {\n onAPPUpdate: function onAPPUpdate() {\n (0, _appUpdate.default)(this.version);\n },\n getAPPversion: function getAPPversion() {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var params, res;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n params = {\n marketId: 100,\n packageName: \"com.xiaofa.shopAdmin\",\n currVersionKey: 1\n };\n _context.next = 3;\n return (0, _checkAPPupdate.GetAPPversion)(params);\n case 3:\n res = _context.sent;\n __f__(\"log\", res, \" at App.vue:39\");\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwidmVyc2lvbiIsIm9uTGF1bmNoIiwiZ2V0Q3VycmVudE5vIiwicmVzIiwib25BUFBVcGRhdGUiLCJvblNob3ciLCJnZXRBUFB2ZXJzaW9uIiwib25IaWRlIiwib25CYWNrUHJlc3MiLCJtZXRob2RzIiwiQVBQVXBkYXRlIiwicGFyYW1zIiwibWFya2V0SWQiLCJwYWNrYWdlTmFtZSIsImN1cnJWZXJzaW9uS2V5IiwiR2V0QVBQdmVyc2lvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBO0FBRUE7QUFBcUQ7QUFBQTtBQUFBLGVBRXRDO0VBQ2JBLElBQUksa0JBQUc7SUFDTCxPQUFPO01BQ0xDLE9BQU8sRUFBRTtJQUNYLENBQUM7RUFDSCxDQUFDO0VBQ0RDLFFBQVEsRUFBRSxvQkFBWTtJQUFBO0lBRXBCLElBQUFDLHVCQUFZLEVBQUMsVUFBQ0MsR0FBRyxFQUFLO01BQ3BCLEtBQUksQ0FBQ0gsT0FBTyxHQUFHRyxHQUFHLENBQUNILE9BQU87TUFDMUIsYUFBWSxPQUFPLEVBQUVHLEdBQUc7SUFDMUIsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDQyxXQUFXLEVBQUU7RUFFcEIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVk7SUFDbEIsSUFBSSxDQUFDQyxhQUFhLEVBQUU7RUFDdEIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVksQ0FBQyxDQUFDO0VBQ3RCQyxXQUFXLEVBQUUsdUJBQVksQ0FBQyxDQUFDO0VBQzNCQyxPQUFPLEVBQUU7SUFDUEwsV0FBVyx5QkFBRztNQUNaLElBQUFNLGtCQUFTLEVBQUMsSUFBSSxDQUFDVixPQUFPLENBQUM7SUFDekIsQ0FBQztJQUNLTSxhQUFhLDJCQUFHO01BQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUNoQkssTUFBTSxHQUFHO2tCQUNYQyxRQUFRLEVBQUUsR0FBRztrQkFDYkMsV0FBVyxFQUFFLHNCQUFzQjtrQkFDbkNDLGNBQWMsRUFBRTtnQkFDbEIsQ0FBQztnQkFBQTtnQkFBQSxPQUVlLElBQUFDLDZCQUFhLEVBQUNKLE1BQU0sQ0FBQztjQUFBO2dCQUFqQ1IsR0FBRztnQkFDUCxhQUFZQSxHQUFHO2NBQUU7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBQ25CO0VBQ0Y7QUFDRixDQUFDO0FBQUEsMkIiLCJmaWxlIjoiNTIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG5pbXBvcnQgQVBQVXBkYXRlLCB7IGdldEN1cnJlbnRObyB9IGZyb20gXCJAL2NvbmZpZy9hcHBVcGRhdGVcIjtcclxuXHJcbmltcG9ydCB7IEdldEFQUHZlcnNpb24gfSBmcm9tIFwiQC9hcGkvY2hlY2tBUFB1cGRhdGVcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmVyc2lvbjogXCJcIixcclxuICAgIH07XHJcbiAgfSxcclxuICBvbkxhdW5jaDogZnVuY3Rpb24gKCkge1xyXG5cclxuICAgIGdldEN1cnJlbnRObygocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMudmVyc2lvbiA9IHJlcy52ZXJzaW9uO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImFzZGFzXCIsIHJlcyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMub25BUFBVcGRhdGUoKTtcclxuXHJcbiAgfSxcclxuICBvblNob3c6IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuZ2V0QVBQdmVyc2lvbigpO1xyXG4gIH0sXHJcbiAgb25IaWRlOiBmdW5jdGlvbiAoKSB7fSxcclxuICBvbkJhY2tQcmVzczogZnVuY3Rpb24gKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgb25BUFBVcGRhdGUoKSB7XHJcbiAgICAgIEFQUFVwZGF0ZSh0aGlzLnZlcnNpb24pO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGdldEFQUHZlcnNpb24oKSB7XHJcbiAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgbWFya2V0SWQ6IDEwMCxcclxuICAgICAgICBwYWNrYWdlTmFtZTogXCJjb20ueGlhb2ZhLnNob3BBZG1pblwiLFxyXG4gICAgICAgIGN1cnJWZXJzaW9uS2V5OiAxLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgbGV0IHJlcyA9IGF3YWl0IEdldEFQUHZlcnNpb24ocGFyYW1zKTtcclxuICAgICAgY29uc29sZS5sb2cocmVzKTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///522\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _appUpdate = _interopRequireWildcard(__webpack_require__(/*! @/config/appUpdate */ 523));\nvar _checkAPPupdate = __webpack_require__(/*! @/api/checkAPPupdate */ 525);\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar _default = {\n data: function data() {\n return {\n version: \"\"\n };\n },\n onLaunch: function onLaunch() {\n var _this = this;\n (0, _appUpdate.getCurrentNo)(function (res) {\n _this.version = res.version;\n __f__(\"log\", \"asdas\", res, \" at App.vue:17\");\n });\n this.onAPPUpdate();\n },\n onShow: function onShow() {\n this.getAPPversion();\n },\n onHide: function onHide() {},\n onBackPress: function onBackPress() {},\n methods: {\n onAPPUpdate: function onAPPUpdate() {\n (0, _appUpdate.default)(this.version);\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwidmVyc2lvbiIsIm9uTGF1bmNoIiwiZ2V0Q3VycmVudE5vIiwicmVzIiwib25BUFBVcGRhdGUiLCJvblNob3ciLCJnZXRBUFB2ZXJzaW9uIiwib25IaWRlIiwib25CYWNrUHJlc3MiLCJtZXRob2RzIiwiQVBQVXBkYXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7QUFFQTtBQUFxRDtBQUFBO0FBQUEsZUFFdEM7RUFDYkEsSUFBSSxrQkFBRztJQUNMLE9BQU87TUFDTEMsT0FBTyxFQUFFO0lBQ1gsQ0FBQztFQUNILENBQUM7RUFDREMsUUFBUSxFQUFFLG9CQUFZO0lBQUE7SUFFcEIsSUFBQUMsdUJBQVksRUFBQyxVQUFDQyxHQUFHLEVBQUs7TUFDcEIsS0FBSSxDQUFDSCxPQUFPLEdBQUdHLEdBQUcsQ0FBQ0gsT0FBTztNQUMxQixhQUFZLE9BQU8sRUFBRUcsR0FBRztJQUMxQixDQUFDLENBQUM7SUFDRixJQUFJLENBQUNDLFdBQVcsRUFBRTtFQUVwQixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBWTtJQUNsQixJQUFJLENBQUNDLGFBQWEsRUFBRTtFQUN0QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBWSxDQUFDLENBQUM7RUFDdEJDLFdBQVcsRUFBRSx1QkFBWSxDQUFDLENBQUM7RUFDM0JDLE9BQU8sRUFBRTtJQUNQTCxXQUFXLHlCQUFHO01BQ1osSUFBQU0sa0JBQVMsRUFBQyxJQUFJLENBQUNWLE9BQU8sQ0FBQztJQUN6QjtFQUNGO0FBQ0YsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjUyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuaW1wb3J0IEFQUFVwZGF0ZSwgeyBnZXRDdXJyZW50Tm8gfSBmcm9tIFwiQC9jb25maWcvYXBwVXBkYXRlXCI7XHJcblxyXG5pbXBvcnQgeyBHZXRBUFB2ZXJzaW9uIH0gZnJvbSBcIkAvYXBpL2NoZWNrQVBQdXBkYXRlXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHZlcnNpb246IFwiXCIsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgb25MYXVuY2g6IGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICBnZXRDdXJyZW50Tm8oKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnZlcnNpb24gPSByZXMudmVyc2lvbjtcclxuICAgICAgY29uc29sZS5sb2coXCJhc2Rhc1wiLCByZXMpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uQVBQVXBkYXRlKCk7XHJcblxyXG4gIH0sXHJcbiAgb25TaG93OiBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLmdldEFQUHZlcnNpb24oKTtcclxuICB9LFxyXG4gIG9uSGlkZTogZnVuY3Rpb24gKCkge30sXHJcbiAgb25CYWNrUHJlc3M6IGZ1bmN0aW9uICgpIHt9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIG9uQVBQVXBkYXRlKCkge1xyXG4gICAgICBBUFBVcGRhdGUodGhpcy52ZXJzaW9uKTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///522\n"); /***/ }), /* 523 */ @@ -28102,7 +30232,7 @@ eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefaul /***/ (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 = _default;\nexports.getCurrentNo = void 0;\nvar _componentConfig = _interopRequireDefault(__webpack_require__(/*! @/config/componentConfig */ 524));\nvar platform = uni.getSystemInfoSync().platform;\n// 主颜色\nvar $mainColor = _componentConfig.default.appUpdateColor ? _componentConfig.default.appUpdateColor : 'FF5B78';\n// 弹窗图标url\nvar $iconUrl = _componentConfig.default.appUpdateIcon ? _componentConfig.default.appUpdateIcon : '../static/ic_ar.png';\n\n// 获取当前应用的版本号\nvar getCurrentNo = function getCurrentNo(callback) {\n // 获取本地应用资源版本号\n plus.runtime.getProperty(plus.runtime.appid, function (inf) {\n callback && callback({\n versionCode: inf.versionCode,\n versionName: inf.version\n });\n });\n};\n// 从服务器下载应用资源包(wgt文件)\nexports.getCurrentNo = getCurrentNo;\nvar getDownload = function getDownload(data) {\n var dtask;\n if (data.updateType == 'forcibly' || data.updateType == 'solicit') {\n var popupData = {\n progress: true,\n buttonNum: 2\n };\n if (data.updateType == 'forcibly') {\n popupData.buttonNum = 0;\n }\n var lastProgressValue = 0;\n var popupObj = downloadPopup(popupData);\n dtask = plus.downloader.createDownload(data.downloadUrl, {\n filename: '_doc/update/'\n }, function (download, status) {\n if (status == 200) {\n popupObj.change({\n progressValue: 100,\n progressTip: '正在安装文件...',\n progress: true,\n buttonNum: 0\n });\n plus.runtime.install(download.filename, {}, function () {\n popupObj.change({\n contentText: '应用资源更新完成!',\n buttonNum: 1,\n progress: false\n });\n }, function (e) {\n popupObj.cancel();\n plus.nativeUI.alert('安装文件失败[' + e.code + ']:' + e.message);\n });\n } else {\n popupObj.change({\n contentText: '文件下载失败...',\n buttonNum: 1,\n progress: false\n });\n }\n });\n dtask.start();\n dtask.addEventListener('statechanged', function (task, status) {\n switch (task.state) {\n case 1:\n // 开始\n popupObj.change({\n progressValue: 0,\n progressTip: '准备下载...',\n progress: true\n });\n break;\n case 2:\n // 已连接到服务器\n popupObj.change({\n progressValue: 0,\n progressTip: '开始下载...',\n progress: true\n });\n break;\n case 3:\n var progress = parseInt(task.downloadedSize / task.totalSize * 100);\n if (progress - lastProgressValue >= 2) {\n lastProgressValue = progress;\n popupObj.change({\n progressValue: progress,\n progressTip: '已下载' + progress + '%',\n progress: true\n });\n }\n break;\n }\n });\n // 取消下载\n popupObj.cancelDownload = function () {\n dtask && dtask.abort();\n uni.showToast({\n title: '已取消下载',\n icon: 'none'\n });\n };\n // 重启APP\n popupObj.reboot = function () {\n plus.runtime.restart();\n };\n } else if (data.updateType == 'silent') {\n dtask = plus.downloader.createDownload(data.downloadUrl, {\n filename: '_doc/update/'\n }, function (download, status) {\n if (status == 200) {\n plus.runtime.install(download.filename, {}, function () {\n __f__(\"log\", '应用资源更新完成', \" at config/appUpdate.js:130\");\n }, function (e) {\n plus.nativeUI.alert('安装文件失败[' + e.code + ']:' + e.message);\n });\n } else {\n plus.nativeUI.alert('文件下载失败...');\n }\n });\n dtask.start();\n }\n};\n// 文字换行\nfunction drawtext(text, maxWidth) {\n var textArr = text.split('');\n var len = textArr.length;\n // 上个节点\n var previousNode = 0;\n // 记录节点宽度\n var nodeWidth = 0;\n // 文本换行数组\n var rowText = [];\n // 如果是字母,侧保存长度\n var letterWidth = 0;\n // 汉字宽度\n var chineseWidth = 14;\n // otherFont宽度\n var otherWidth = 7;\n for (var i = 0; i < len; i++) {\n if (/[\\u4e00-\\u9fa5]|[\\uFE30-\\uFFA0]/g.test(textArr[i])) {\n if (letterWidth > 0) {\n if (nodeWidth + chineseWidth + letterWidth * otherWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i)\n });\n previousNode = i;\n nodeWidth = chineseWidth;\n letterWidth = 0;\n } else {\n nodeWidth += chineseWidth + letterWidth * otherWidth;\n letterWidth = 0;\n }\n } else {\n if (nodeWidth + chineseWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i)\n });\n previousNode = i;\n nodeWidth = chineseWidth;\n } else {\n nodeWidth += chineseWidth;\n }\n }\n } else {\n if (/\\n/g.test(textArr[i])) {\n rowText.push({\n type: 'break',\n content: text.substring(previousNode, i)\n });\n previousNode = i + 1;\n nodeWidth = 0;\n letterWidth = 0;\n } else if (textArr[i] == '\\\\' && textArr[i + 1] == 'n') {\n rowText.push({\n type: 'break',\n content: text.substring(previousNode, i)\n });\n previousNode = i + 2;\n nodeWidth = 0;\n letterWidth = 0;\n } else if (/[a-zA-Z0-9]/g.test(textArr[i])) {\n letterWidth += 1;\n if (nodeWidth + letterWidth * otherWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i + 1 - letterWidth)\n });\n previousNode = i + 1 - letterWidth;\n nodeWidth = letterWidth * otherWidth;\n letterWidth = 0;\n }\n } else {\n if (nodeWidth + otherWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i)\n });\n previousNode = i;\n nodeWidth = otherWidth;\n } else {\n nodeWidth += otherWidth;\n }\n }\n }\n }\n if (previousNode < len) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, len)\n });\n }\n return rowText;\n}\n// 是否更新弹窗\nfunction updatePopup(data, callback) {\n // 弹窗遮罩层\n var maskLayer = new plus.nativeObj.View('maskLayer', {\n //先创建遮罩层\n top: '0px',\n left: '0px',\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0.5)'\n });\n\n // 以下为计算菜单的nview绘制布局,为固定算法,使用者无关关心\n var screenWidth = plus.screen.resolutionWidth;\n var screenHeight = plus.screen.resolutionHeight;\n //弹窗容器宽度\n var popupViewWidth = screenWidth * 0.7;\n // 弹窗容器的Padding\n var viewContentPadding = 20;\n // 弹窗容器的宽度\n var viewContentWidth = parseInt(popupViewWidth - viewContentPadding * 2);\n // 描述的列表\n var descriptionList = drawtext(data.versionInfo, viewContentWidth);\n // 弹窗容器高度\n var popupViewHeight = 80 + 20 + 20 + 90 + 10;\n var popupViewContentList = [{\n src: $iconUrl,\n id: 'logo',\n tag: 'img',\n position: {\n top: '0px',\n left: (popupViewWidth - 124) / 2 + 'px',\n width: '124px',\n height: '80px'\n }\n }, {\n tag: 'font',\n id: 'title',\n text: '发现新版本' + data.versionName,\n textStyles: {\n size: '18px',\n color: '#333',\n weight: 'bold',\n whiteSpace: 'normal'\n },\n position: {\n top: '90px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '30px'\n }\n }];\n var textHeight = 18;\n var contentTop = 130;\n descriptionList.forEach(function (item, index) {\n if (index > 0) {\n popupViewHeight += textHeight;\n contentTop += textHeight;\n }\n popupViewContentList.push({\n tag: 'font',\n id: 'content' + index + 1,\n text: item.content,\n textStyles: {\n size: '14px',\n color: '#666',\n lineSpacing: '50%',\n align: 'left'\n },\n position: {\n top: contentTop + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: textHeight + 'px'\n }\n });\n if (item.type == 'break') {\n contentTop += 10;\n popupViewHeight += 10;\n }\n });\n if (data.updateType == 'forcibly') {\n popupViewContentList.push({\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '6px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'font',\n id: 'confirmText',\n text: '立即升级',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '30px'\n }\n });\n } else {\n // 绘制底边按钮\n popupViewContentList.push({\n tag: 'rect',\n id: 'cancelBox',\n rectStyles: {\n radius: '3px',\n borderColor: '#f1f1f1',\n borderWidth: '1px'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'rect',\n id: 'confirmBox',\n rectStyles: {\n radius: '3px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'font',\n id: 'cancelText',\n text: '暂不升级',\n textStyles: {\n size: '14px',\n color: '#666',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'font',\n id: 'confirmText',\n text: '立即升级',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n }\n // 弹窗内容\n var popupView = new plus.nativeObj.View('popupView', {\n //创建底部图标菜单\n tag: 'rect',\n top: (screenHeight - popupViewHeight) / 2 + 'px',\n left: '15%',\n height: popupViewHeight + 'px',\n width: '70%'\n });\n // 绘制白色背景\n popupView.drawRect({\n color: '#FFFFFF',\n radius: '8px'\n }, {\n top: '40px',\n height: popupViewHeight - 40 + 'px'\n });\n popupView.draw(popupViewContentList);\n popupView.addEventListener('click', function (e) {\n var maxTop = popupViewHeight - viewContentPadding;\n var maxLeft = popupViewWidth - viewContentPadding;\n var buttonWidth = (viewContentWidth - viewContentPadding) / 2;\n if (e.clientY > maxTop - 30 && e.clientY < maxTop) {\n if (data.updateType == 'forcibly') {\n if (e.clientX > viewContentPadding && e.clientX < maxLeft) {\n // 立即升级\n maskLayer.hide();\n popupView.hide();\n callback && callback();\n }\n } else {\n // 暂不升级\n if (e.clientX > viewContentPadding && e.clientX < maxLeft - buttonWidth - viewContentPadding) {\n maskLayer.hide();\n popupView.hide();\n } else if (e.clientX > maxLeft - buttonWidth && e.clientX < maxLeft) {\n // 立即升级\n maskLayer.hide();\n popupView.hide();\n callback && callback();\n }\n }\n }\n });\n if (data.updateType == 'solicit') {\n // 点击遮罩层\n maskLayer.addEventListener('click', function () {\n //处理遮罩层点击\n maskLayer.hide();\n popupView.hide();\n });\n }\n // 显示弹窗\n maskLayer.show();\n popupView.show();\n}\n// 文件下载的弹窗绘图\nfunction downloadPopupDrawing(data) {\n // 以下为计算菜单的nview绘制布局,为固定算法,使用者无关关心\n var screenWidth = plus.screen.resolutionWidth;\n var screenHeight = plus.screen.resolutionHeight;\n //弹窗容器宽度\n var popupViewWidth = screenWidth * 0.7;\n // 弹窗容器的Padding\n var viewContentPadding = 20;\n // 弹窗容器的宽度\n var viewContentWidth = popupViewWidth - viewContentPadding * 2;\n // 弹窗容器高度\n var popupViewHeight = viewContentPadding * 3 + 60;\n var progressTip = data.progressTip || '准备下载...';\n var contentText = data.contentText || '正在为您更新,请耐心等待';\n var elementList = [{\n tag: 'rect',\n //背景色\n color: '#FFFFFF',\n rectStyles: {\n radius: '8px'\n }\n }, {\n tag: 'font',\n id: 'title',\n text: '升级APP',\n textStyles: {\n size: '16px',\n color: '#333',\n weight: 'bold',\n verticalAlign: 'middle',\n whiteSpace: 'normal'\n },\n position: {\n top: viewContentPadding + 'px',\n height: '30px'\n }\n }, {\n tag: 'font',\n id: 'content',\n text: contentText,\n textStyles: {\n size: '14px',\n color: '#333',\n verticalAlign: 'middle',\n whiteSpace: 'normal'\n },\n position: {\n top: viewContentPadding * 2 + 30 + 'px',\n height: '20px'\n }\n }];\n // 是否有进度条\n if (data.progress) {\n popupViewHeight += viewContentPadding + 40;\n elementList = elementList.concat([{\n tag: 'font',\n id: 'progressValue',\n text: progressTip,\n textStyles: {\n size: '14px',\n color: $mainColor,\n whiteSpace: 'normal'\n },\n position: {\n top: viewContentPadding * 4 + 20 + 'px',\n height: '30px'\n }\n }, {\n tag: 'rect',\n //绘制进度条背景\n id: 'progressBg',\n rectStyles: {\n radius: '4px',\n borderColor: '#f1f1f1',\n borderWidth: '1px'\n },\n position: {\n top: viewContentPadding * 4 + 60 + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '8px'\n }\n }]);\n }\n if (data.buttonNum == 2) {\n popupViewHeight += viewContentPadding + 30;\n elementList = elementList.concat([{\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '3px',\n borderColor: '#f1f1f1',\n borderWidth: '1px'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }, {\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '3px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }, {\n tag: 'font',\n id: 'cancelText',\n text: '取消下载',\n textStyles: {\n size: '14px',\n color: '#666',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }, {\n tag: 'font',\n id: 'confirmText',\n text: '后台下载',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }]);\n }\n if (data.buttonNum == 1) {\n popupViewHeight += viewContentPadding + 40;\n elementList = elementList.concat([{\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '6px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '40px'\n }\n }, {\n tag: 'font',\n id: 'confirmText',\n text: '关闭',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '40px'\n }\n }]);\n }\n return {\n popupViewHeight: popupViewHeight,\n popupViewWidth: popupViewWidth,\n screenHeight: screenHeight,\n viewContentWidth: viewContentWidth,\n viewContentPadding: viewContentPadding,\n elementList: elementList\n };\n}\n// 文件下载的弹窗\nfunction downloadPopup(data) {\n // 弹窗遮罩层\n var maskLayer = new plus.nativeObj.View('maskLayer', {\n //先创建遮罩层\n top: '0px',\n left: '0px',\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0.5)'\n });\n var popupViewData = downloadPopupDrawing(data);\n // 弹窗内容\n var popupView = new plus.nativeObj.View('popupView', {\n //创建底部图标菜单\n tag: 'rect',\n top: (popupViewData.screenHeight - popupViewData.popupViewHeight) / 2 + 'px',\n left: '15%',\n height: popupViewData.popupViewHeight + 'px',\n width: '70%'\n });\n var progressValue = 0;\n var progressTip = 0;\n var contentText = 0;\n var buttonNum = 2;\n if (data.buttonNum >= 0) {\n buttonNum = data.buttonNum;\n }\n popupView.draw(popupViewData.elementList);\n var callbackData = {\n change: function change(res) {\n var progressElement = [];\n if (res.progressValue) {\n progressValue = res.progressValue;\n // 绘制进度条\n progressElement.push({\n tag: 'rect',\n //绘制进度条背景\n id: 'progressValueBg',\n rectStyles: {\n radius: '4px',\n color: $mainColor\n },\n position: {\n top: popupViewData.viewContentPadding * 4 + 60 + 'px',\n left: popupViewData.viewContentPadding + 'px',\n width: popupViewData.viewContentWidth * (res.progressValue / 100) + 'px',\n height: '8px'\n }\n });\n }\n if (res.progressTip) {\n progressTip = res.progressTip;\n progressElement.push({\n tag: 'font',\n id: 'progressValue',\n text: res.progressTip,\n textStyles: {\n size: '14px',\n color: $mainColor,\n whiteSpace: 'normal'\n },\n position: {\n top: popupViewData.viewContentPadding * 4 + 20 + 'px',\n height: '30px'\n }\n });\n }\n if (res.contentText) {\n contentText = res.contentText;\n progressElement.push({\n tag: 'font',\n id: 'content',\n text: res.contentText,\n textStyles: {\n size: '16px',\n color: '#333',\n whiteSpace: 'normal'\n },\n position: {\n top: popupViewData.viewContentPadding * 2 + 30 + 'px',\n height: '30px'\n }\n });\n }\n if (res.buttonNum >= 0 && buttonNum != res.buttonNum) {\n buttonNum = res.buttonNum;\n popupView.reset();\n popupViewData = downloadPopupDrawing(Object.assign({\n progressValue: progressValue,\n progressTip: progressTip,\n contentText: contentText\n }, res));\n var newElement = [];\n popupViewData.elementList.map(function (item, index) {\n var have = false;\n progressElement.forEach(function (childItem, childIndex) {\n if (item.id == childItem.id) {\n have = true;\n }\n });\n if (!have) {\n newElement.push(item);\n }\n });\n progressElement = newElement.concat(progressElement);\n popupView.setStyle({\n tag: 'rect',\n top: (popupViewData.screenHeight - popupViewData.popupViewHeight) / 2 + 'px',\n left: '15%',\n height: popupViewData.popupViewHeight + 'px',\n width: '70%'\n });\n popupView.draw(progressElement);\n } else {\n popupView.draw(progressElement);\n }\n },\n cancel: function cancel() {\n maskLayer.hide();\n popupView.hide();\n }\n };\n popupView.addEventListener('click', function (e) {\n var maxTop = popupViewData.popupViewHeight - popupViewData.viewContentPadding;\n var maxLeft = popupViewData.popupViewWidth - popupViewData.viewContentPadding;\n if (e.clientY > maxTop - 40 && e.clientY < maxTop) {\n if (buttonNum == 1) {\n // 单按钮\n if (e.clientX > popupViewData.viewContentPadding && e.clientX < maxLeft) {\n maskLayer.hide();\n popupView.hide();\n callbackData.reboot();\n }\n } else if (buttonNum == 2) {\n // 双按钮\n var buttonWidth = (popupViewData.viewContentWidth - popupViewData.viewContentPadding) / 2;\n if (e.clientX > popupViewData.viewContentPadding && e.clientX < maxLeft - buttonWidth - popupViewData.viewContentPadding) {\n maskLayer.hide();\n popupView.hide();\n callbackData.cancelDownload();\n } else if (e.clientX > maxLeft - buttonWidth && e.clientX < maxLeft) {\n maskLayer.hide();\n popupView.hide();\n }\n }\n }\n });\n // 显示弹窗\n maskLayer.show();\n popupView.show();\n // 改变进度条\n return callbackData;\n}\nfunction _default() {\n var isPrompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n getCurrentNo(function (versionInfo) {\n _componentConfig.default.getServerNo(versionInfo, isPrompt, function (res) {\n if (res.updateType == 'forcibly' || res.updateType == 'silent') {\n if (/\\.wgt$/i.test(res.download_wgt_url)) {\n getDownload(res);\n } else if (/\\.html$/i.test(res.downloadUrl)) {\n plus.runtime.openURL(res.downloadUrl);\n } else {\n if (platform == 'android') {\n getDownload(res);\n } else {\n plus.runtime.openURL(res.downloadUrl);\n }\n }\n } else if (res.updateType == 'solicit') {\n updatePopup(res, function () {\n if (/\\.wgt$/i.test(res.downloadUrl)) {\n getDownload(res);\n } else if (/\\.html$/i.test(res.downloadUrl)) {\n plus.runtime.openURL(res.downloadUrl);\n } else {\n if (platform == 'android') {\n getDownload(res);\n } else {\n plus.runtime.openURL(res.downloadUrl);\n }\n }\n });\n }\n });\n });\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29uZmlnL2FwcFVwZGF0ZS5qcyJdLCJuYW1lcyI6WyJwbGF0Zm9ybSIsInVuaSIsImdldFN5c3RlbUluZm9TeW5jIiwiJG1haW5Db2xvciIsImNvbXBvbmVudENvbmZpZyIsImFwcFVwZGF0ZUNvbG9yIiwiJGljb25VcmwiLCJhcHBVcGRhdGVJY29uIiwiZ2V0Q3VycmVudE5vIiwiY2FsbGJhY2siLCJwbHVzIiwicnVudGltZSIsImdldFByb3BlcnR5IiwiYXBwaWQiLCJpbmYiLCJ2ZXJzaW9uQ29kZSIsInZlcnNpb25OYW1lIiwidmVyc2lvbiIsImdldERvd25sb2FkIiwiZGF0YSIsImR0YXNrIiwidXBkYXRlVHlwZSIsInBvcHVwRGF0YSIsInByb2dyZXNzIiwiYnV0dG9uTnVtIiwibGFzdFByb2dyZXNzVmFsdWUiLCJwb3B1cE9iaiIsImRvd25sb2FkUG9wdXAiLCJkb3dubG9hZGVyIiwiY3JlYXRlRG93bmxvYWQiLCJkb3dubG9hZFVybCIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzdGF0dXMiLCJjaGFuZ2UiLCJwcm9ncmVzc1ZhbHVlIiwicHJvZ3Jlc3NUaXAiLCJpbnN0YWxsIiwiY29udGVudFRleHQiLCJlIiwiY2FuY2VsIiwibmF0aXZlVUkiLCJhbGVydCIsImNvZGUiLCJtZXNzYWdlIiwic3RhcnQiLCJhZGRFdmVudExpc3RlbmVyIiwidGFzayIsInN0YXRlIiwicGFyc2VJbnQiLCJkb3dubG9hZGVkU2l6ZSIsInRvdGFsU2l6ZSIsImNhbmNlbERvd25sb2FkIiwiYWJvcnQiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImljb24iLCJyZWJvb3QiLCJyZXN0YXJ0IiwiZHJhd3RleHQiLCJ0ZXh0IiwibWF4V2lkdGgiLCJ0ZXh0QXJyIiwic3BsaXQiLCJsZW4iLCJsZW5ndGgiLCJwcmV2aW91c05vZGUiLCJub2RlV2lkdGgiLCJyb3dUZXh0IiwibGV0dGVyV2lkdGgiLCJjaGluZXNlV2lkdGgiLCJvdGhlcldpZHRoIiwiaSIsInRlc3QiLCJwdXNoIiwidHlwZSIsImNvbnRlbnQiLCJzdWJzdHJpbmciLCJ1cGRhdGVQb3B1cCIsIm1hc2tMYXllciIsIm5hdGl2ZU9iaiIsIlZpZXciLCJ0b3AiLCJsZWZ0IiwiaGVpZ2h0Iiwid2lkdGgiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzY3JlZW5XaWR0aCIsInNjcmVlbiIsInJlc29sdXRpb25XaWR0aCIsInNjcmVlbkhlaWdodCIsInJlc29sdXRpb25IZWlnaHQiLCJwb3B1cFZpZXdXaWR0aCIsInZpZXdDb250ZW50UGFkZGluZyIsInZpZXdDb250ZW50V2lkdGgiLCJkZXNjcmlwdGlvbkxpc3QiLCJ2ZXJzaW9uSW5mbyIsInBvcHVwVmlld0hlaWdodCIsInBvcHVwVmlld0NvbnRlbnRMaXN0Iiwic3JjIiwiaWQiLCJ0YWciLCJwb3NpdGlvbiIsInRleHRTdHlsZXMiLCJzaXplIiwiY29sb3IiLCJ3ZWlnaHQiLCJ3aGl0ZVNwYWNlIiwidGV4dEhlaWdodCIsImNvbnRlbnRUb3AiLCJmb3JFYWNoIiwiaXRlbSIsImluZGV4IiwibGluZVNwYWNpbmciLCJhbGlnbiIsInJlY3RTdHlsZXMiLCJyYWRpdXMiLCJib3R0b20iLCJib3JkZXJDb2xvciIsImJvcmRlcldpZHRoIiwicG9wdXBWaWV3IiwiZHJhd1JlY3QiLCJkcmF3IiwibWF4VG9wIiwibWF4TGVmdCIsImJ1dHRvbldpZHRoIiwiY2xpZW50WSIsImNsaWVudFgiLCJoaWRlIiwic2hvdyIsImRvd25sb2FkUG9wdXBEcmF3aW5nIiwiZWxlbWVudExpc3QiLCJ2ZXJ0aWNhbEFsaWduIiwiY29uY2F0IiwicG9wdXBWaWV3RGF0YSIsImNhbGxiYWNrRGF0YSIsInJlcyIsInByb2dyZXNzRWxlbWVudCIsInJlc2V0IiwiT2JqZWN0IiwiYXNzaWduIiwibmV3RWxlbWVudCIsIm1hcCIsImhhdmUiLCJjaGlsZEl0ZW0iLCJjaGlsZEluZGV4Iiwic2V0U3R5bGUiLCJpc1Byb21wdCIsImdldFNlcnZlck5vIiwiZG93bmxvYWRfd2d0X3VybCIsIm9wZW5VUkwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0E7QUFDQSxJQUFNQSxRQUFRLEdBQUdDLEdBQUcsQ0FBQ0MsaUJBQWlCLEVBQUUsQ0FBQ0YsUUFBUTtBQUNqRDtBQUNBLElBQU1HLFVBQVUsR0FBR0Msd0JBQWUsQ0FBQ0MsY0FBYyxHQUM3Q0Qsd0JBQWUsQ0FBQ0MsY0FBYyxHQUM5QixRQUFRO0FBQ1o7QUFDQSxJQUFNQyxRQUFRLEdBQUdGLHdCQUFlLENBQUNHLGFBQWEsR0FDMUNILHdCQUFlLENBQUNHLGFBQWEsR0FDN0IscUJBQXFCOztBQUV6QjtBQUNPLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZLENBQWFDLFFBQVEsRUFBRTtFQUM5QztFQUNBQyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDRixJQUFJLENBQUNDLE9BQU8sQ0FBQ0UsS0FBSyxFQUFFLFVBQVVDLEdBQUcsRUFBRTtJQUMxREwsUUFBUSxJQUNOQSxRQUFRLENBQUM7TUFDUE0sV0FBVyxFQUFFRCxHQUFHLENBQUNDLFdBQVc7TUFDNUJDLFdBQVcsRUFBRUYsR0FBRyxDQUFDRztJQUNuQixDQUFDLENBQUM7RUFDTixDQUFDLENBQUM7QUFDSixDQUFDO0FBQ0Q7QUFBQTtBQUNBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXLENBQWFDLElBQUksRUFBRTtFQUNsQyxJQUFJQyxLQUFLO0VBQ1QsSUFBSUQsSUFBSSxDQUFDRSxVQUFVLElBQUksVUFBVSxJQUFJRixJQUFJLENBQUNFLFVBQVUsSUFBSSxTQUFTLEVBQUU7SUFDakUsSUFBSUMsU0FBUyxHQUFHO01BQ2RDLFFBQVEsRUFBRSxJQUFJO01BQ2RDLFNBQVMsRUFBRTtJQUNiLENBQUM7SUFDRCxJQUFJTCxJQUFJLENBQUNFLFVBQVUsSUFBSSxVQUFVLEVBQUU7TUFDakNDLFNBQVMsQ0FBQ0UsU0FBUyxHQUFHLENBQUM7SUFDekI7SUFDQSxJQUFJQyxpQkFBaUIsR0FBRyxDQUFDO0lBQ3pCLElBQUlDLFFBQVEsR0FBR0MsYUFBYSxDQUFDTCxTQUFTLENBQUM7SUFDdkNGLEtBQUssR0FBR1YsSUFBSSxDQUFDa0IsVUFBVSxDQUFDQyxjQUFjLENBQ3BDVixJQUFJLENBQUNXLFdBQVcsRUFDaEI7TUFDRUMsUUFBUSxFQUFFO0lBQ1osQ0FBQyxFQUNELFVBQVVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFO01BQzFCLElBQUlBLE1BQU0sSUFBSSxHQUFHLEVBQUU7UUFDakJQLFFBQVEsQ0FBQ1EsTUFBTSxDQUFDO1VBQ2RDLGFBQWEsRUFBRSxHQUFHO1VBQ2xCQyxXQUFXLEVBQUUsV0FBVztVQUN4QmIsUUFBUSxFQUFFLElBQUk7VUFDZEMsU0FBUyxFQUFFO1FBQ2IsQ0FBQyxDQUFDO1FBQ0ZkLElBQUksQ0FBQ0MsT0FBTyxDQUFDMEIsT0FBTyxDQUNsQkwsUUFBUSxDQUFDRCxRQUFRLEVBQ2pCLENBQUMsQ0FBQyxFQUNGLFlBQVk7VUFDVkwsUUFBUSxDQUFDUSxNQUFNLENBQUM7WUFDZEksV0FBVyxFQUFFLFdBQVc7WUFDeEJkLFNBQVMsRUFBRSxDQUFDO1lBQ1pELFFBQVEsRUFBRTtVQUNaLENBQUMsQ0FBQztRQUNKLENBQUMsRUFDRCxVQUFVZ0IsQ0FBQyxFQUFFO1VBQ1hiLFFBQVEsQ0FBQ2MsTUFBTSxFQUFFO1VBQ2pCOUIsSUFBSSxDQUFDK0IsUUFBUSxDQUFDQyxLQUFLLENBQUMsU0FBUyxHQUFHSCxDQUFDLENBQUNJLElBQUksR0FBRyxJQUFJLEdBQUdKLENBQUMsQ0FBQ0ssT0FBTyxDQUFDO1FBQzVELENBQUMsQ0FDRjtNQUNILENBQUMsTUFBTTtRQUNMbEIsUUFBUSxDQUFDUSxNQUFNLENBQUM7VUFDZEksV0FBVyxFQUFFLFdBQVc7VUFDeEJkLFNBQVMsRUFBRSxDQUFDO1VBQ1pELFFBQVEsRUFBRTtRQUNaLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUNGO0lBQ0RILEtBQUssQ0FBQ3lCLEtBQUssRUFBRTtJQUNiekIsS0FBSyxDQUFDMEIsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLFVBQVVDLElBQUksRUFBRWQsTUFBTSxFQUFFO01BQzdELFFBQVFjLElBQUksQ0FBQ0MsS0FBSztRQUNoQixLQUFLLENBQUM7VUFBRTtVQUNOdEIsUUFBUSxDQUFDUSxNQUFNLENBQUM7WUFDZEMsYUFBYSxFQUFFLENBQUM7WUFDaEJDLFdBQVcsRUFBRSxTQUFTO1lBQ3RCYixRQUFRLEVBQUU7VUFDWixDQUFDLENBQUM7VUFDRjtRQUNGLEtBQUssQ0FBQztVQUFFO1VBQ05HLFFBQVEsQ0FBQ1EsTUFBTSxDQUFDO1lBQ2RDLGFBQWEsRUFBRSxDQUFDO1lBQ2hCQyxXQUFXLEVBQUUsU0FBUztZQUN0QmIsUUFBUSxFQUFFO1VBQ1osQ0FBQyxDQUFDO1VBQ0Y7UUFDRixLQUFLLENBQUM7VUFDSixJQUFNQSxRQUFRLEdBQUcwQixRQUFRLENBQ3RCRixJQUFJLENBQUNHLGNBQWMsR0FBR0gsSUFBSSxDQUFDSSxTQUFTLEdBQUksR0FBRyxDQUM3QztVQUNELElBQUk1QixRQUFRLEdBQUdFLGlCQUFpQixJQUFJLENBQUMsRUFBRTtZQUNyQ0EsaUJBQWlCLEdBQUdGLFFBQVE7WUFDNUJHLFFBQVEsQ0FBQ1EsTUFBTSxDQUFDO2NBQ2RDLGFBQWEsRUFBRVosUUFBUTtjQUN2QmEsV0FBVyxFQUFFLEtBQUssR0FBR2IsUUFBUSxHQUFHLEdBQUc7Y0FDbkNBLFFBQVEsRUFBRTtZQUNaLENBQUMsQ0FBQztVQUNKO1VBQ0E7TUFBTTtJQUVaLENBQUMsQ0FBQztJQUNGO0lBQ0FHLFFBQVEsQ0FBQzBCLGNBQWMsR0FBRyxZQUFZO01BQ3BDaEMsS0FBSyxJQUFJQSxLQUFLLENBQUNpQyxLQUFLLEVBQUU7TUFDdEJwRCxHQUFHLENBQUNxRCxTQUFTLENBQUM7UUFDWkMsS0FBSyxFQUFFLE9BQU87UUFDZEMsSUFBSSxFQUFFO01BQ1IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNEO0lBQ0E5QixRQUFRLENBQUMrQixNQUFNLEdBQUcsWUFBWTtNQUM1Qi9DLElBQUksQ0FBQ0MsT0FBTyxDQUFDK0MsT0FBTyxFQUFFO0lBQ3hCLENBQUM7RUFDSCxDQUFDLE1BQU0sSUFBSXZDLElBQUksQ0FBQ0UsVUFBVSxJQUFJLFFBQVEsRUFBRTtJQUN0Q0QsS0FBSyxHQUFHVixJQUFJLENBQUNrQixVQUFVLENBQUNDLGNBQWMsQ0FDcENWLElBQUksQ0FBQ1csV0FBVyxFQUNoQjtNQUNFQyxRQUFRLEVBQUU7SUFDWixDQUFDLEVBQ0QsVUFBVUMsUUFBUSxFQUFFQyxNQUFNLEVBQUU7TUFDMUIsSUFBSUEsTUFBTSxJQUFJLEdBQUcsRUFBRTtRQUNqQnZCLElBQUksQ0FBQ0MsT0FBTyxDQUFDMEIsT0FBTyxDQUNsQkwsUUFBUSxDQUFDRCxRQUFRLEVBQ2pCLENBQUMsQ0FBQyxFQUNGLFlBQVk7VUFDVixhQUFZLFVBQVU7UUFDeEIsQ0FBQyxFQUNELFVBQVVRLENBQUMsRUFBRTtVQUNYN0IsSUFBSSxDQUFDK0IsUUFBUSxDQUFDQyxLQUFLLENBQUMsU0FBUyxHQUFHSCxDQUFDLENBQUNJLElBQUksR0FBRyxJQUFJLEdBQUdKLENBQUMsQ0FBQ0ssT0FBTyxDQUFDO1FBQzVELENBQUMsQ0FDRjtNQUNILENBQUMsTUFBTTtRQUNMbEMsSUFBSSxDQUFDK0IsUUFBUSxDQUFDQyxLQUFLLENBQUMsV0FBVyxDQUFDO01BQ2xDO0lBQ0YsQ0FBQyxDQUNGO0lBQ0R0QixLQUFLLENBQUN5QixLQUFLLEVBQUU7RUFDZjtBQUNGLENBQUM7QUFDRDtBQUNBLFNBQVNjLFFBQVEsQ0FBQ0MsSUFBSSxFQUFFQyxRQUFRLEVBQUU7RUFDaEMsSUFBSUMsT0FBTyxHQUFHRixJQUFJLENBQUNHLEtBQUssQ0FBQyxFQUFFLENBQUM7RUFDNUIsSUFBSUMsR0FBRyxHQUFHRixPQUFPLENBQUNHLE1BQU07RUFDeEI7RUFDQSxJQUFJQyxZQUFZLEdBQUcsQ0FBQztFQUNwQjtFQUNBLElBQUlDLFNBQVMsR0FBRyxDQUFDO0VBQ2pCO0VBQ0EsSUFBSUMsT0FBTyxHQUFHLEVBQUU7RUFDaEI7RUFDQSxJQUFJQyxXQUFXLEdBQUcsQ0FBQztFQUNuQjtFQUNBLElBQUlDLFlBQVksR0FBRyxFQUFFO0VBQ3JCO0VBQ0EsSUFBSUMsVUFBVSxHQUFHLENBQUM7RUFDbEIsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdSLEdBQUcsRUFBRVEsQ0FBQyxFQUFFLEVBQUU7SUFDNUIsSUFBSSxrQ0FBa0MsQ0FBQ0MsSUFBSSxDQUFDWCxPQUFPLENBQUNVLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDdkQsSUFBSUgsV0FBVyxHQUFHLENBQUMsRUFBRTtRQUNuQixJQUFJRixTQUFTLEdBQUdHLFlBQVksR0FBR0QsV0FBVyxHQUFHRSxVQUFVLEdBQUdWLFFBQVEsRUFBRTtVQUNsRU8sT0FBTyxDQUFDTSxJQUFJLENBQUM7WUFDWEMsSUFBSSxFQUFFLE1BQU07WUFDWkMsT0FBTyxFQUFFaEIsSUFBSSxDQUFDaUIsU0FBUyxDQUFDWCxZQUFZLEVBQUVNLENBQUM7VUFDekMsQ0FBQyxDQUFDO1VBQ0ZOLFlBQVksR0FBR00sQ0FBQztVQUNoQkwsU0FBUyxHQUFHRyxZQUFZO1VBQ3hCRCxXQUFXLEdBQUcsQ0FBQztRQUNqQixDQUFDLE1BQU07VUFDTEYsU0FBUyxJQUFJRyxZQUFZLEdBQUdELFdBQVcsR0FBR0UsVUFBVTtVQUNwREYsV0FBVyxHQUFHLENBQUM7UUFDakI7TUFDRixDQUFDLE1BQU07UUFDTCxJQUFJRixTQUFTLEdBQUdHLFlBQVksR0FBR1QsUUFBUSxFQUFFO1VBQ3ZDTyxPQUFPLENBQUNNLElBQUksQ0FBQztZQUNYQyxJQUFJLEVBQUUsTUFBTTtZQUNaQyxPQUFPLEVBQUVoQixJQUFJLENBQUNpQixTQUFTLENBQUNYLFlBQVksRUFBRU0sQ0FBQztVQUN6QyxDQUFDLENBQUM7VUFDRk4sWUFBWSxHQUFHTSxDQUFDO1VBQ2hCTCxTQUFTLEdBQUdHLFlBQVk7UUFDMUIsQ0FBQyxNQUFNO1VBQ0xILFNBQVMsSUFBSUcsWUFBWTtRQUMzQjtNQUNGO0lBQ0YsQ0FBQyxNQUFNO01BQ0wsSUFBSSxLQUFLLENBQUNHLElBQUksQ0FBQ1gsT0FBTyxDQUFDVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzFCSixPQUFPLENBQUNNLElBQUksQ0FBQztVQUNYQyxJQUFJLEVBQUUsT0FBTztVQUNiQyxPQUFPLEVBQUVoQixJQUFJLENBQUNpQixTQUFTLENBQUNYLFlBQVksRUFBRU0sQ0FBQztRQUN6QyxDQUFDLENBQUM7UUFDRk4sWUFBWSxHQUFHTSxDQUFDLEdBQUcsQ0FBQztRQUNwQkwsU0FBUyxHQUFHLENBQUM7UUFDYkUsV0FBVyxHQUFHLENBQUM7TUFDakIsQ0FBQyxNQUFNLElBQUlQLE9BQU8sQ0FBQ1UsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJVixPQUFPLENBQUNVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDdERKLE9BQU8sQ0FBQ00sSUFBSSxDQUFDO1VBQ1hDLElBQUksRUFBRSxPQUFPO1VBQ2JDLE9BQU8sRUFBRWhCLElBQUksQ0FBQ2lCLFNBQVMsQ0FBQ1gsWUFBWSxFQUFFTSxDQUFDO1FBQ3pDLENBQUMsQ0FBQztRQUNGTixZQUFZLEdBQUdNLENBQUMsR0FBRyxDQUFDO1FBQ3BCTCxTQUFTLEdBQUcsQ0FBQztRQUNiRSxXQUFXLEdBQUcsQ0FBQztNQUNqQixDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUNJLElBQUksQ0FBQ1gsT0FBTyxDQUFDVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzFDSCxXQUFXLElBQUksQ0FBQztRQUNoQixJQUFJRixTQUFTLEdBQUdFLFdBQVcsR0FBR0UsVUFBVSxHQUFHVixRQUFRLEVBQUU7VUFDbkRPLE9BQU8sQ0FBQ00sSUFBSSxDQUFDO1lBQ1hDLElBQUksRUFBRSxNQUFNO1lBQ1pDLE9BQU8sRUFBRWhCLElBQUksQ0FBQ2lCLFNBQVMsQ0FBQ1gsWUFBWSxFQUFFTSxDQUFDLEdBQUcsQ0FBQyxHQUFHSCxXQUFXO1VBQzNELENBQUMsQ0FBQztVQUNGSCxZQUFZLEdBQUdNLENBQUMsR0FBRyxDQUFDLEdBQUdILFdBQVc7VUFDbENGLFNBQVMsR0FBR0UsV0FBVyxHQUFHRSxVQUFVO1VBQ3BDRixXQUFXLEdBQUcsQ0FBQztRQUNqQjtNQUNGLENBQUMsTUFBTTtRQUNMLElBQUlGLFNBQVMsR0FBR0ksVUFBVSxHQUFHVixRQUFRLEVBQUU7VUFDckNPLE9BQU8sQ0FBQ00sSUFBSSxDQUFDO1lBQ1hDLElBQUksRUFBRSxNQUFNO1lBQ1pDLE9BQU8sRUFBRWhCLElBQUksQ0FBQ2lCLFNBQVMsQ0FBQ1gsWUFBWSxFQUFFTSxDQUFDO1VBQ3pDLENBQUMsQ0FBQztVQUNGTixZQUFZLEdBQUdNLENBQUM7VUFDaEJMLFNBQVMsR0FBR0ksVUFBVTtRQUN4QixDQUFDLE1BQU07VUFDTEosU0FBUyxJQUFJSSxVQUFVO1FBQ3pCO01BQ0Y7SUFDRjtFQUNGO0VBQ0EsSUFBSUwsWUFBWSxHQUFHRixHQUFHLEVBQUU7SUFDdEJJLE9BQU8sQ0FBQ00sSUFBSSxDQUFDO01BQ1hDLElBQUksRUFBRSxNQUFNO01BQ1pDLE9BQU8sRUFBRWhCLElBQUksQ0FBQ2lCLFNBQVMsQ0FBQ1gsWUFBWSxFQUFFRixHQUFHO0lBQzNDLENBQUMsQ0FBQztFQUNKO0VBQ0EsT0FBT0ksT0FBTztBQUNoQjtBQUNBO0FBQ0EsU0FBU1UsV0FBVyxDQUFDM0QsSUFBSSxFQUFFVixRQUFRLEVBQUU7RUFDbkM7RUFDQSxJQUFJc0UsU0FBUyxHQUFHLElBQUlyRSxJQUFJLENBQUNzRSxTQUFTLENBQUNDLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDbkQ7SUFDQUMsR0FBRyxFQUFFLEtBQUs7SUFDVkMsSUFBSSxFQUFFLEtBQUs7SUFDWEMsTUFBTSxFQUFFLE1BQU07SUFDZEMsS0FBSyxFQUFFLE1BQU07SUFDYkMsZUFBZSxFQUFFO0VBQ25CLENBQUMsQ0FBQzs7RUFFRjtFQUNBLElBQU1DLFdBQVcsR0FBRzdFLElBQUksQ0FBQzhFLE1BQU0sQ0FBQ0MsZUFBZTtFQUMvQyxJQUFNQyxZQUFZLEdBQUdoRixJQUFJLENBQUM4RSxNQUFNLENBQUNHLGdCQUFnQjtFQUNqRDtFQUNBLElBQU1DLGNBQWMsR0FBR0wsV0FBVyxHQUFHLEdBQUc7RUFDeEM7RUFDQSxJQUFNTSxrQkFBa0IsR0FBRyxFQUFFO0VBQzdCO0VBQ0EsSUFBTUMsZ0JBQWdCLEdBQUc3QyxRQUFRLENBQUMyQyxjQUFjLEdBQUdDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztFQUMxRTtFQUNBLElBQU1FLGVBQWUsR0FBR3BDLFFBQVEsQ0FBQ3hDLElBQUksQ0FBQzZFLFdBQVcsRUFBRUYsZ0JBQWdCLENBQUM7RUFDcEU7RUFDQSxJQUFJRyxlQUFlLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7RUFFNUMsSUFBSUMsb0JBQW9CLEdBQUcsQ0FDekI7SUFDRUMsR0FBRyxFQUFFN0YsUUFBUTtJQUNiOEYsRUFBRSxFQUFFLE1BQU07SUFDVkMsR0FBRyxFQUFFLEtBQUs7SUFDVkMsUUFBUSxFQUFFO01BQ1JwQixHQUFHLEVBQUUsS0FBSztNQUNWQyxJQUFJLEVBQUUsQ0FBQ1MsY0FBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSTtNQUN2Q1AsS0FBSyxFQUFFLE9BQU87TUFDZEQsTUFBTSxFQUFFO0lBQ1Y7RUFDRixDQUFDLEVBQ0Q7SUFDRWlCLEdBQUcsRUFBRSxNQUFNO0lBQ1hELEVBQUUsRUFBRSxPQUFPO0lBQ1h4QyxJQUFJLEVBQUUsT0FBTyxHQUFHekMsSUFBSSxDQUFDSCxXQUFXO0lBQ2hDdUYsVUFBVSxFQUFFO01BQ1ZDLElBQUksRUFBRSxNQUFNO01BQ1pDLEtBQUssRUFBRSxNQUFNO01BQ2JDLE1BQU0sRUFBRSxNQUFNO01BQ2RDLFVBQVUsRUFBRTtJQUNkLENBQUM7SUFDREwsUUFBUSxFQUFFO01BQ1JwQixHQUFHLEVBQUUsTUFBTTtNQUNYQyxJQUFJLEVBQUVVLGtCQUFrQixHQUFHLElBQUk7TUFDL0JSLEtBQUssRUFBRVMsZ0JBQWdCLEdBQUcsSUFBSTtNQUM5QlYsTUFBTSxFQUFFO0lBQ1Y7RUFDRixDQUFDLENBQ0Y7RUFDRCxJQUFNd0IsVUFBVSxHQUFHLEVBQUU7RUFDckIsSUFBSUMsVUFBVSxHQUFHLEdBQUc7RUFDcEJkLGVBQWUsQ0FBQ2UsT0FBTyxDQUFDLFVBQUNDLElBQUksRUFBRUMsS0FBSyxFQUFLO0lBQ3ZDLElBQUlBLEtBQUssR0FBRyxDQUFDLEVBQUU7TUFDYmYsZUFBZSxJQUFJVyxVQUFVO01BQzdCQyxVQUFVLElBQUlELFVBQVU7SUFDMUI7SUFDQVYsb0JBQW9CLENBQUN4QixJQUFJLENBQUM7TUFDeEIyQixHQUFHLEVBQUUsTUFBTTtNQUNYRCxFQUFFLEVBQUUsU0FBUyxHQUFHWSxLQUFLLEdBQUcsQ0FBQztNQUN6QnBELElBQUksRUFBRW1ELElBQUksQ0FBQ25DLE9BQU87TUFDbEIyQixVQUFVLEVBQUU7UUFDVkMsSUFBSSxFQUFFLE1BQU07UUFDWkMsS0FBSyxFQUFFLE1BQU07UUFDYlEsV0FBVyxFQUFFLEtBQUs7UUFDbEJDLEtBQUssRUFBRTtNQUNULENBQUM7TUFDRFosUUFBUSxFQUFFO1FBQ1JwQixHQUFHLEVBQUUyQixVQUFVLEdBQUcsSUFBSTtRQUN0QjFCLElBQUksRUFBRVUsa0JBQWtCLEdBQUcsSUFBSTtRQUMvQlIsS0FBSyxFQUFFUyxnQkFBZ0IsR0FBRyxJQUFJO1FBQzlCVixNQUFNLEVBQUV3QixVQUFVLEdBQUc7TUFDdkI7SUFDRixDQUFDLENBQUM7SUFDRixJQUFJRyxJQUFJLENBQUNwQyxJQUFJLElBQUksT0FBTyxFQUFFO01BQ3hCa0MsVUFBVSxJQUFJLEVBQUU7TUFDaEJaLGVBQWUsSUFBSSxFQUFFO0lBQ3ZCO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsSUFBSTlFLElBQUksQ0FBQ0UsVUFBVSxJQUFJLFVBQVUsRUFBRTtJQUNqQzZFLG9CQUFvQixDQUFDeEIsSUFBSSxDQUFDO01BQ3hCMkIsR0FBRyxFQUFFLE1BQU07TUFBRTtNQUNiYyxVQUFVLEVBQUU7UUFDVkMsTUFBTSxFQUFFLEtBQUs7UUFDYlgsS0FBSyxFQUFFdEc7TUFDVCxDQUFDO01BQ0RtRyxRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUFFVSxrQkFBa0IsR0FBRyxJQUFJO1FBQy9CUixLQUFLLEVBQUVTLGdCQUFnQixHQUFHLElBQUk7UUFDOUJWLE1BQU0sRUFBRTtNQUNWO0lBQ0YsQ0FBQyxDQUFDO0lBQ0ZjLG9CQUFvQixDQUFDeEIsSUFBSSxDQUFDO01BQ3hCMkIsR0FBRyxFQUFFLE1BQU07TUFDWEQsRUFBRSxFQUFFLGFBQWE7TUFDakJ4QyxJQUFJLEVBQUUsTUFBTTtNQUNaMkMsVUFBVSxFQUFFO1FBQ1ZDLElBQUksRUFBRSxNQUFNO1FBQ1pDLEtBQUssRUFBRSxNQUFNO1FBQ2JRLFdBQVcsRUFBRTtNQUNmLENBQUM7TUFDRFgsUUFBUSxFQUFFO1FBQ1JlLE1BQU0sRUFBRXhCLGtCQUFrQixHQUFHLElBQUk7UUFDakNWLElBQUksRUFBRVUsa0JBQWtCLEdBQUcsSUFBSTtRQUMvQlIsS0FBSyxFQUFFUyxnQkFBZ0IsR0FBRyxJQUFJO1FBQzlCVixNQUFNLEVBQUU7TUFDVjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUMsTUFBTTtJQUNMO0lBQ0FjLG9CQUFvQixDQUFDeEIsSUFBSSxDQUFDO01BQ3hCMkIsR0FBRyxFQUFFLE1BQU07TUFDWEQsRUFBRSxFQUFFLFdBQVc7TUFDZmUsVUFBVSxFQUFFO1FBQ1ZDLE1BQU0sRUFBRSxLQUFLO1FBQ2JFLFdBQVcsRUFBRSxTQUFTO1FBQ3RCQyxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RqQixRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUFFVSxrQkFBa0IsR0FBRyxJQUFJO1FBQy9CUixLQUFLLEVBQUUsQ0FBQ1MsZ0JBQWdCLEdBQUdELGtCQUFrQixJQUFJLENBQUMsR0FBRyxJQUFJO1FBQ3pEVCxNQUFNLEVBQUU7TUFDVjtJQUNGLENBQUMsQ0FBQztJQUNGYyxvQkFBb0IsQ0FBQ3hCLElBQUksQ0FBQztNQUN4QjJCLEdBQUcsRUFBRSxNQUFNO01BQ1hELEVBQUUsRUFBRSxZQUFZO01BQ2hCZSxVQUFVLEVBQUU7UUFDVkMsTUFBTSxFQUFFLEtBQUs7UUFDYlgsS0FBSyxFQUFFdEc7TUFDVCxDQUFDO01BQ0RtRyxRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUNGLENBQUNXLGdCQUFnQixHQUFHRCxrQkFBa0IsSUFBSSxDQUFDLEdBQzNDQSxrQkFBa0IsR0FBRyxDQUFDLEdBQ3RCLElBQUk7UUFDTlIsS0FBSyxFQUFFLENBQUNTLGdCQUFnQixHQUFHRCxrQkFBa0IsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUN6RFQsTUFBTSxFQUFFO01BQ1Y7SUFDRixDQUFDLENBQUM7SUFDRmMsb0JBQW9CLENBQUN4QixJQUFJLENBQUM7TUFDeEIyQixHQUFHLEVBQUUsTUFBTTtNQUNYRCxFQUFFLEVBQUUsWUFBWTtNQUNoQnhDLElBQUksRUFBRSxNQUFNO01BQ1oyQyxVQUFVLEVBQUU7UUFDVkMsSUFBSSxFQUFFLE1BQU07UUFDWkMsS0FBSyxFQUFFLE1BQU07UUFDYlEsV0FBVyxFQUFFLElBQUk7UUFDakJOLFVBQVUsRUFBRTtNQUNkLENBQUM7TUFDREwsUUFBUSxFQUFFO1FBQ1JlLE1BQU0sRUFBRXhCLGtCQUFrQixHQUFHLElBQUk7UUFDakNWLElBQUksRUFBRVUsa0JBQWtCLEdBQUcsSUFBSTtRQUMvQlIsS0FBSyxFQUFFLENBQUNTLGdCQUFnQixHQUFHRCxrQkFBa0IsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUN6RFQsTUFBTSxFQUFFO01BQ1Y7SUFDRixDQUFDLENBQUM7SUFDRmMsb0JBQW9CLENBQUN4QixJQUFJLENBQUM7TUFDeEIyQixHQUFHLEVBQUUsTUFBTTtNQUNYRCxFQUFFLEVBQUUsYUFBYTtNQUNqQnhDLElBQUksRUFBRSxNQUFNO01BQ1oyQyxVQUFVLEVBQUU7UUFDVkMsSUFBSSxFQUFFLE1BQU07UUFDWkMsS0FBSyxFQUFFLE1BQU07UUFDYlEsV0FBVyxFQUFFLElBQUk7UUFDakJOLFVBQVUsRUFBRTtNQUNkLENBQUM7TUFDREwsUUFBUSxFQUFFO1FBQ1JlLE1BQU0sRUFBRXhCLGtCQUFrQixHQUFHLElBQUk7UUFDakNWLElBQUksRUFDRixDQUFDVyxnQkFBZ0IsR0FBR0Qsa0JBQWtCLElBQUksQ0FBQyxHQUMzQ0Esa0JBQWtCLEdBQUcsQ0FBQyxHQUN0QixJQUFJO1FBQ05SLEtBQUssRUFBRSxDQUFDUyxnQkFBZ0IsR0FBR0Qsa0JBQWtCLElBQUksQ0FBQyxHQUFHLElBQUk7UUFDekRULE1BQU0sRUFBRTtNQUNWO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7RUFDQTtFQUNBLElBQUlvQyxTQUFTLEdBQUcsSUFBSTlHLElBQUksQ0FBQ3NFLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtJQUNuRDtJQUNBb0IsR0FBRyxFQUFFLE1BQU07SUFDWG5CLEdBQUcsRUFBRSxDQUFDUSxZQUFZLEdBQUdPLGVBQWUsSUFBSSxDQUFDLEdBQUcsSUFBSTtJQUNoRGQsSUFBSSxFQUFFLEtBQUs7SUFDWEMsTUFBTSxFQUFFYSxlQUFlLEdBQUcsSUFBSTtJQUM5QlosS0FBSyxFQUFFO0VBQ1QsQ0FBQyxDQUFDO0VBQ0Y7RUFDQW1DLFNBQVMsQ0FBQ0MsUUFBUSxDQUNoQjtJQUNFaEIsS0FBSyxFQUFFLFNBQVM7SUFDaEJXLE1BQU0sRUFBRTtFQUNWLENBQUMsRUFDRDtJQUNFbEMsR0FBRyxFQUFFLE1BQU07SUFDWEUsTUFBTSxFQUFFYSxlQUFlLEdBQUcsRUFBRSxHQUFHO0VBQ2pDLENBQUMsQ0FDRjtFQUVEdUIsU0FBUyxDQUFDRSxJQUFJLENBQUN4QixvQkFBb0IsQ0FBQztFQUNwQ3NCLFNBQVMsQ0FBQzFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFVUCxDQUFDLEVBQUU7SUFDL0MsSUFBSW9GLE1BQU0sR0FBRzFCLGVBQWUsR0FBR0osa0JBQWtCO0lBQ2pELElBQUkrQixPQUFPLEdBQUdoQyxjQUFjLEdBQUdDLGtCQUFrQjtJQUNqRCxJQUFJZ0MsV0FBVyxHQUFHLENBQUMvQixnQkFBZ0IsR0FBR0Qsa0JBQWtCLElBQUksQ0FBQztJQUM3RCxJQUFJdEQsQ0FBQyxDQUFDdUYsT0FBTyxHQUFHSCxNQUFNLEdBQUcsRUFBRSxJQUFJcEYsQ0FBQyxDQUFDdUYsT0FBTyxHQUFHSCxNQUFNLEVBQUU7TUFDakQsSUFBSXhHLElBQUksQ0FBQ0UsVUFBVSxJQUFJLFVBQVUsRUFBRTtRQUNqQyxJQUFJa0IsQ0FBQyxDQUFDd0YsT0FBTyxHQUFHbEMsa0JBQWtCLElBQUl0RCxDQUFDLENBQUN3RixPQUFPLEdBQUdILE9BQU8sRUFBRTtVQUN6RDtVQUNBN0MsU0FBUyxDQUFDaUQsSUFBSSxFQUFFO1VBQ2hCUixTQUFTLENBQUNRLElBQUksRUFBRTtVQUNoQnZILFFBQVEsSUFBSUEsUUFBUSxFQUFFO1FBQ3hCO01BQ0YsQ0FBQyxNQUFNO1FBQ0w7UUFDQSxJQUNFOEIsQ0FBQyxDQUFDd0YsT0FBTyxHQUFHbEMsa0JBQWtCLElBQzlCdEQsQ0FBQyxDQUFDd0YsT0FBTyxHQUFHSCxPQUFPLEdBQUdDLFdBQVcsR0FBR2hDLGtCQUFrQixFQUN0RDtVQUNBZCxTQUFTLENBQUNpRCxJQUFJLEVBQUU7VUFDaEJSLFNBQVMsQ0FBQ1EsSUFBSSxFQUFFO1FBQ2xCLENBQUMsTUFBTSxJQUFJekYsQ0FBQyxDQUFDd0YsT0FBTyxHQUFHSCxPQUFPLEdBQUdDLFdBQVcsSUFBSXRGLENBQUMsQ0FBQ3dGLE9BQU8sR0FBR0gsT0FBTyxFQUFFO1VBQ25FO1VBQ0E3QyxTQUFTLENBQUNpRCxJQUFJLEVBQUU7VUFDaEJSLFNBQVMsQ0FBQ1EsSUFBSSxFQUFFO1VBQ2hCdkgsUUFBUSxJQUFJQSxRQUFRLEVBQUU7UUFDeEI7TUFDRjtJQUNGO0VBQ0YsQ0FBQyxDQUFDO0VBQ0YsSUFBSVUsSUFBSSxDQUFDRSxVQUFVLElBQUksU0FBUyxFQUFFO0lBQ2hDO0lBQ0EwRCxTQUFTLENBQUNqQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWTtNQUM5QztNQUNBaUMsU0FBUyxDQUFDaUQsSUFBSSxFQUFFO01BQ2hCUixTQUFTLENBQUNRLElBQUksRUFBRTtJQUNsQixDQUFDLENBQUM7RUFDSjtFQUNBO0VBQ0FqRCxTQUFTLENBQUNrRCxJQUFJLEVBQUU7RUFDaEJULFNBQVMsQ0FBQ1MsSUFBSSxFQUFFO0FBQ2xCO0FBQ0E7QUFDQSxTQUFTQyxvQkFBb0IsQ0FBQy9HLElBQUksRUFBRTtFQUNsQztFQUNBLElBQU1vRSxXQUFXLEdBQUc3RSxJQUFJLENBQUM4RSxNQUFNLENBQUNDLGVBQWU7RUFDL0MsSUFBTUMsWUFBWSxHQUFHaEYsSUFBSSxDQUFDOEUsTUFBTSxDQUFDRyxnQkFBZ0I7RUFDakQ7RUFDQSxJQUFNQyxjQUFjLEdBQUdMLFdBQVcsR0FBRyxHQUFHO0VBQ3hDO0VBQ0EsSUFBTU0sa0JBQWtCLEdBQUcsRUFBRTtFQUM3QjtFQUNBLElBQU1DLGdCQUFnQixHQUFHRixjQUFjLEdBQUdDLGtCQUFrQixHQUFHLENBQUM7RUFDaEU7RUFDQSxJQUFJSSxlQUFlLEdBQUdKLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFO0VBQ2pELElBQUl6RCxXQUFXLEdBQUdqQixJQUFJLENBQUNpQixXQUFXLElBQUksU0FBUztFQUMvQyxJQUFJRSxXQUFXLEdBQUduQixJQUFJLENBQUNtQixXQUFXLElBQUksY0FBYztFQUNwRCxJQUFJNkYsV0FBVyxHQUFHLENBQ2hCO0lBQ0U5QixHQUFHLEVBQUUsTUFBTTtJQUFFO0lBQ2JJLEtBQUssRUFBRSxTQUFTO0lBQ2hCVSxVQUFVLEVBQUU7TUFDVkMsTUFBTSxFQUFFO0lBQ1Y7RUFDRixDQUFDLEVBQ0Q7SUFDRWYsR0FBRyxFQUFFLE1BQU07SUFDWEQsRUFBRSxFQUFFLE9BQU87SUFDWHhDLElBQUksRUFBRSxPQUFPO0lBQ2IyQyxVQUFVLEVBQUU7TUFDVkMsSUFBSSxFQUFFLE1BQU07TUFDWkMsS0FBSyxFQUFFLE1BQU07TUFDYkMsTUFBTSxFQUFFLE1BQU07TUFDZDBCLGFBQWEsRUFBRSxRQUFRO01BQ3ZCekIsVUFBVSxFQUFFO0lBQ2QsQ0FBQztJQUNETCxRQUFRLEVBQUU7TUFDUnBCLEdBQUcsRUFBRVcsa0JBQWtCLEdBQUcsSUFBSTtNQUM5QlQsTUFBTSxFQUFFO0lBQ1Y7RUFDRixDQUFDLEVBQ0Q7SUFDRWlCLEdBQUcsRUFBRSxNQUFNO0lBQ1hELEVBQUUsRUFBRSxTQUFTO0lBQ2J4QyxJQUFJLEVBQUV0QixXQUFXO0lBQ2pCaUUsVUFBVSxFQUFFO01BQ1ZDLElBQUksRUFBRSxNQUFNO01BQ1pDLEtBQUssRUFBRSxNQUFNO01BQ2IyQixhQUFhLEVBQUUsUUFBUTtNQUN2QnpCLFVBQVUsRUFBRTtJQUNkLENBQUM7SUFDREwsUUFBUSxFQUFFO01BQ1JwQixHQUFHLEVBQUVXLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSTtNQUN2Q1QsTUFBTSxFQUFFO0lBQ1Y7RUFDRixDQUFDLENBQ0Y7RUFDRDtFQUNBLElBQUlqRSxJQUFJLENBQUNJLFFBQVEsRUFBRTtJQUNqQjBFLGVBQWUsSUFBSUosa0JBQWtCLEdBQUcsRUFBRTtJQUMxQ3NDLFdBQVcsR0FBR0EsV0FBVyxDQUFDRSxNQUFNLENBQUMsQ0FDL0I7TUFDRWhDLEdBQUcsRUFBRSxNQUFNO01BQ1hELEVBQUUsRUFBRSxlQUFlO01BQ25CeEMsSUFBSSxFQUFFeEIsV0FBVztNQUNqQm1FLFVBQVUsRUFBRTtRQUNWQyxJQUFJLEVBQUUsTUFBTTtRQUNaQyxLQUFLLEVBQUV0RyxVQUFVO1FBQ2pCd0csVUFBVSxFQUFFO01BQ2QsQ0FBQztNQUNETCxRQUFRLEVBQUU7UUFDUnBCLEdBQUcsRUFBRVcsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO1FBQ3ZDVCxNQUFNLEVBQUU7TUFDVjtJQUNGLENBQUMsRUFDRDtNQUNFaUIsR0FBRyxFQUFFLE1BQU07TUFBRTtNQUNiRCxFQUFFLEVBQUUsWUFBWTtNQUNoQmUsVUFBVSxFQUFFO1FBQ1ZDLE1BQU0sRUFBRSxLQUFLO1FBQ2JFLFdBQVcsRUFBRSxTQUFTO1FBQ3RCQyxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RqQixRQUFRLEVBQUU7UUFDUnBCLEdBQUcsRUFBRVcsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO1FBQ3ZDVixJQUFJLEVBQUVVLGtCQUFrQixHQUFHLElBQUk7UUFDL0JSLEtBQUssRUFBRVMsZ0JBQWdCLEdBQUcsSUFBSTtRQUM5QlYsTUFBTSxFQUFFO01BQ1Y7SUFDRixDQUFDLENBQ0YsQ0FBQztFQUNKO0VBQ0EsSUFBSWpFLElBQUksQ0FBQ0ssU0FBUyxJQUFJLENBQUMsRUFBRTtJQUN2QnlFLGVBQWUsSUFBSUosa0JBQWtCLEdBQUcsRUFBRTtJQUMxQ3NDLFdBQVcsR0FBR0EsV0FBVyxDQUFDRSxNQUFNLENBQUMsQ0FDL0I7TUFDRWhDLEdBQUcsRUFBRSxNQUFNO01BQUU7TUFDYmMsVUFBVSxFQUFFO1FBQ1ZDLE1BQU0sRUFBRSxLQUFLO1FBQ2JFLFdBQVcsRUFBRSxTQUFTO1FBQ3RCQyxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RqQixRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUFFVSxrQkFBa0IsR0FBRyxJQUFJO1FBQy9CUixLQUFLLEVBQUUsQ0FBQ1MsZ0JBQWdCLEdBQUdELGtCQUFrQixJQUFJLENBQUMsR0FBRyxJQUFJO1FBQ3pEVCxNQUFNLEVBQUU7TUFDVjtJQUNGLENBQUMsRUFDRDtNQUNFaUIsR0FBRyxFQUFFLE1BQU07TUFBRTtNQUNiYyxVQUFVLEVBQUU7UUFDVkMsTUFBTSxFQUFFLEtBQUs7UUFDYlgsS0FBSyxFQUFFdEc7TUFDVCxDQUFDO01BQ0RtRyxRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUNGLENBQUNXLGdCQUFnQixHQUFHRCxrQkFBa0IsSUFBSSxDQUFDLEdBQzNDQSxrQkFBa0IsR0FBRyxDQUFDLEdBQ3RCLElBQUk7UUFDTlIsS0FBSyxFQUFFLENBQUNTLGdCQUFnQixHQUFHRCxrQkFBa0IsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUN6RFQsTUFBTSxFQUFFO01BQ1Y7SUFDRixDQUFDLEVBQ0Q7TUFDRWlCLEdBQUcsRUFBRSxNQUFNO01BQ1hELEVBQUUsRUFBRSxZQUFZO01BQ2hCeEMsSUFBSSxFQUFFLE1BQU07TUFDWjJDLFVBQVUsRUFBRTtRQUNWQyxJQUFJLEVBQUUsTUFBTTtRQUNaQyxLQUFLLEVBQUUsTUFBTTtRQUNiUSxXQUFXLEVBQUUsSUFBSTtRQUNqQk4sVUFBVSxFQUFFO01BQ2QsQ0FBQztNQUNETCxRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUFFVSxrQkFBa0IsR0FBRyxJQUFJO1FBQy9CUixLQUFLLEVBQUUsQ0FBQ1MsZ0JBQWdCLEdBQUdELGtCQUFrQixJQUFJLENBQUMsR0FBRyxJQUFJO1FBQ3pEVCxNQUFNLEVBQUU7TUFDVjtJQUNGLENBQUMsRUFDRDtNQUNFaUIsR0FBRyxFQUFFLE1BQU07TUFDWEQsRUFBRSxFQUFFLGFBQWE7TUFDakJ4QyxJQUFJLEVBQUUsTUFBTTtNQUNaMkMsVUFBVSxFQUFFO1FBQ1ZDLElBQUksRUFBRSxNQUFNO1FBQ1pDLEtBQUssRUFBRSxNQUFNO1FBQ2JRLFdBQVcsRUFBRSxJQUFJO1FBQ2pCTixVQUFVLEVBQUU7TUFDZCxDQUFDO01BQ0RMLFFBQVEsRUFBRTtRQUNSZSxNQUFNLEVBQUV4QixrQkFBa0IsR0FBRyxJQUFJO1FBQ2pDVixJQUFJLEVBQ0YsQ0FBQ1csZ0JBQWdCLEdBQUdELGtCQUFrQixJQUFJLENBQUMsR0FDM0NBLGtCQUFrQixHQUFHLENBQUMsR0FDdEIsSUFBSTtRQUNOUixLQUFLLEVBQUUsQ0FBQ1MsZ0JBQWdCLEdBQUdELGtCQUFrQixJQUFJLENBQUMsR0FBRyxJQUFJO1FBQ3pEVCxNQUFNLEVBQUU7TUFDVjtJQUNGLENBQUMsQ0FDRixDQUFDO0VBQ0o7RUFDQSxJQUFJakUsSUFBSSxDQUFDSyxTQUFTLElBQUksQ0FBQyxFQUFFO0lBQ3ZCeUUsZUFBZSxJQUFJSixrQkFBa0IsR0FBRyxFQUFFO0lBQzFDc0MsV0FBVyxHQUFHQSxXQUFXLENBQUNFLE1BQU0sQ0FBQyxDQUMvQjtNQUNFaEMsR0FBRyxFQUFFLE1BQU07TUFBRTtNQUNiYyxVQUFVLEVBQUU7UUFDVkMsTUFBTSxFQUFFLEtBQUs7UUFDYlgsS0FBSyxFQUFFdEc7TUFDVCxDQUFDO01BQ0RtRyxRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUFFVSxrQkFBa0IsR0FBRyxJQUFJO1FBQy9CUixLQUFLLEVBQUVTLGdCQUFnQixHQUFHLElBQUk7UUFDOUJWLE1BQU0sRUFBRTtNQUNWO0lBQ0YsQ0FBQyxFQUNEO01BQ0VpQixHQUFHLEVBQUUsTUFBTTtNQUNYRCxFQUFFLEVBQUUsYUFBYTtNQUNqQnhDLElBQUksRUFBRSxJQUFJO01BQ1YyQyxVQUFVLEVBQUU7UUFDVkMsSUFBSSxFQUFFLE1BQU07UUFDWkMsS0FBSyxFQUFFLE1BQU07UUFDYlEsV0FBVyxFQUFFO01BQ2YsQ0FBQztNQUNEWCxRQUFRLEVBQUU7UUFDUmUsTUFBTSxFQUFFeEIsa0JBQWtCLEdBQUcsSUFBSTtRQUNqQ1YsSUFBSSxFQUFFVSxrQkFBa0IsR0FBRyxJQUFJO1FBQy9CUixLQUFLLEVBQUVTLGdCQUFnQixHQUFHLElBQUk7UUFDOUJWLE1BQU0sRUFBRTtNQUNWO0lBQ0YsQ0FBQyxDQUNGLENBQUM7RUFDSjtFQUNBLE9BQU87SUFDTGEsZUFBZSxFQUFFQSxlQUFlO0lBQ2hDTCxjQUFjLEVBQUVBLGNBQWM7SUFDOUJGLFlBQVksRUFBRUEsWUFBWTtJQUMxQkksZ0JBQWdCLEVBQUVBLGdCQUFnQjtJQUNsQ0Qsa0JBQWtCLEVBQUVBLGtCQUFrQjtJQUN0Q3NDLFdBQVcsRUFBRUE7RUFDZixDQUFDO0FBQ0g7QUFDQTtBQUNBLFNBQVN4RyxhQUFhLENBQUNSLElBQUksRUFBRTtFQUMzQjtFQUNBLElBQUk0RCxTQUFTLEdBQUcsSUFBSXJFLElBQUksQ0FBQ3NFLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtJQUNuRDtJQUNBQyxHQUFHLEVBQUUsS0FBSztJQUNWQyxJQUFJLEVBQUUsS0FBSztJQUNYQyxNQUFNLEVBQUUsTUFBTTtJQUNkQyxLQUFLLEVBQUUsTUFBTTtJQUNiQyxlQUFlLEVBQUU7RUFDbkIsQ0FBQyxDQUFDO0VBQ0YsSUFBSWdELGFBQWEsR0FBR0osb0JBQW9CLENBQUMvRyxJQUFJLENBQUM7RUFDOUM7RUFDQSxJQUFJcUcsU0FBUyxHQUFHLElBQUk5RyxJQUFJLENBQUNzRSxTQUFTLENBQUNDLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDbkQ7SUFDQW9CLEdBQUcsRUFBRSxNQUFNO0lBQ1huQixHQUFHLEVBQ0QsQ0FBQ29ELGFBQWEsQ0FBQzVDLFlBQVksR0FBRzRDLGFBQWEsQ0FBQ3JDLGVBQWUsSUFBSSxDQUFDLEdBQUcsSUFBSTtJQUN6RWQsSUFBSSxFQUFFLEtBQUs7SUFDWEMsTUFBTSxFQUFFa0QsYUFBYSxDQUFDckMsZUFBZSxHQUFHLElBQUk7SUFDNUNaLEtBQUssRUFBRTtFQUNULENBQUMsQ0FBQztFQUNGLElBQUlsRCxhQUFhLEdBQUcsQ0FBQztFQUNyQixJQUFJQyxXQUFXLEdBQUcsQ0FBQztFQUNuQixJQUFJRSxXQUFXLEdBQUcsQ0FBQztFQUNuQixJQUFJZCxTQUFTLEdBQUcsQ0FBQztFQUNqQixJQUFJTCxJQUFJLENBQUNLLFNBQVMsSUFBSSxDQUFDLEVBQUU7SUFDdkJBLFNBQVMsR0FBR0wsSUFBSSxDQUFDSyxTQUFTO0VBQzVCO0VBQ0FnRyxTQUFTLENBQUNFLElBQUksQ0FBQ1ksYUFBYSxDQUFDSCxXQUFXLENBQUM7RUFDekMsSUFBSUksWUFBWSxHQUFHO0lBQ2pCckcsTUFBTSxFQUFFLGdCQUFVc0csR0FBRyxFQUFFO01BQ3JCLElBQUlDLGVBQWUsR0FBRyxFQUFFO01BQ3hCLElBQUlELEdBQUcsQ0FBQ3JHLGFBQWEsRUFBRTtRQUNyQkEsYUFBYSxHQUFHcUcsR0FBRyxDQUFDckcsYUFBYTtRQUNqQztRQUNBc0csZUFBZSxDQUFDL0QsSUFBSSxDQUFDO1VBQ25CMkIsR0FBRyxFQUFFLE1BQU07VUFBRTtVQUNiRCxFQUFFLEVBQUUsaUJBQWlCO1VBQ3JCZSxVQUFVLEVBQUU7WUFDVkMsTUFBTSxFQUFFLEtBQUs7WUFDYlgsS0FBSyxFQUFFdEc7VUFDVCxDQUFDO1VBQ0RtRyxRQUFRLEVBQUU7WUFDUnBCLEdBQUcsRUFBRW9ELGFBQWEsQ0FBQ3pDLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSTtZQUNyRFYsSUFBSSxFQUFFbUQsYUFBYSxDQUFDekMsa0JBQWtCLEdBQUcsSUFBSTtZQUM3Q1IsS0FBSyxFQUNIaUQsYUFBYSxDQUFDeEMsZ0JBQWdCLElBQUkwQyxHQUFHLENBQUNyRyxhQUFhLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSTtZQUNuRWlELE1BQU0sRUFBRTtVQUNWO1FBQ0YsQ0FBQyxDQUFDO01BQ0o7TUFDQSxJQUFJb0QsR0FBRyxDQUFDcEcsV0FBVyxFQUFFO1FBQ25CQSxXQUFXLEdBQUdvRyxHQUFHLENBQUNwRyxXQUFXO1FBQzdCcUcsZUFBZSxDQUFDL0QsSUFBSSxDQUFDO1VBQ25CMkIsR0FBRyxFQUFFLE1BQU07VUFDWEQsRUFBRSxFQUFFLGVBQWU7VUFDbkJ4QyxJQUFJLEVBQUU0RSxHQUFHLENBQUNwRyxXQUFXO1VBQ3JCbUUsVUFBVSxFQUFFO1lBQ1ZDLElBQUksRUFBRSxNQUFNO1lBQ1pDLEtBQUssRUFBRXRHLFVBQVU7WUFDakJ3RyxVQUFVLEVBQUU7VUFDZCxDQUFDO1VBQ0RMLFFBQVEsRUFBRTtZQUNScEIsR0FBRyxFQUFFb0QsYUFBYSxDQUFDekMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO1lBQ3JEVCxNQUFNLEVBQUU7VUFDVjtRQUNGLENBQUMsQ0FBQztNQUNKO01BQ0EsSUFBSW9ELEdBQUcsQ0FBQ2xHLFdBQVcsRUFBRTtRQUNuQkEsV0FBVyxHQUFHa0csR0FBRyxDQUFDbEcsV0FBVztRQUM3Qm1HLGVBQWUsQ0FBQy9ELElBQUksQ0FBQztVQUNuQjJCLEdBQUcsRUFBRSxNQUFNO1VBQ1hELEVBQUUsRUFBRSxTQUFTO1VBQ2J4QyxJQUFJLEVBQUU0RSxHQUFHLENBQUNsRyxXQUFXO1VBQ3JCaUUsVUFBVSxFQUFFO1lBQ1ZDLElBQUksRUFBRSxNQUFNO1lBQ1pDLEtBQUssRUFBRSxNQUFNO1lBQ2JFLFVBQVUsRUFBRTtVQUNkLENBQUM7VUFDREwsUUFBUSxFQUFFO1lBQ1JwQixHQUFHLEVBQUVvRCxhQUFhLENBQUN6QyxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUk7WUFDckRULE1BQU0sRUFBRTtVQUNWO1FBQ0YsQ0FBQyxDQUFDO01BQ0o7TUFDQSxJQUFJb0QsR0FBRyxDQUFDaEgsU0FBUyxJQUFJLENBQUMsSUFBSUEsU0FBUyxJQUFJZ0gsR0FBRyxDQUFDaEgsU0FBUyxFQUFFO1FBQ3BEQSxTQUFTLEdBQUdnSCxHQUFHLENBQUNoSCxTQUFTO1FBQ3pCZ0csU0FBUyxDQUFDa0IsS0FBSyxFQUFFO1FBQ2pCSixhQUFhLEdBQUdKLG9CQUFvQixDQUNsQ1MsTUFBTSxDQUFDQyxNQUFNLENBQ1g7VUFDRXpHLGFBQWEsRUFBRUEsYUFBYTtVQUM1QkMsV0FBVyxFQUFFQSxXQUFXO1VBQ3hCRSxXQUFXLEVBQUVBO1FBQ2YsQ0FBQyxFQUNEa0csR0FBRyxDQUNKLENBQ0Y7UUFDRCxJQUFJSyxVQUFVLEdBQUcsRUFBRTtRQUNuQlAsYUFBYSxDQUFDSCxXQUFXLENBQUNXLEdBQUcsQ0FBQyxVQUFDL0IsSUFBSSxFQUFFQyxLQUFLLEVBQUs7VUFDN0MsSUFBSStCLElBQUksR0FBRyxLQUFLO1VBQ2hCTixlQUFlLENBQUMzQixPQUFPLENBQUMsVUFBQ2tDLFNBQVMsRUFBRUMsVUFBVSxFQUFLO1lBQ2pELElBQUlsQyxJQUFJLENBQUNYLEVBQUUsSUFBSTRDLFNBQVMsQ0FBQzVDLEVBQUUsRUFBRTtjQUMzQjJDLElBQUksR0FBRyxJQUFJO1lBQ2I7VUFDRixDQUFDLENBQUM7VUFDRixJQUFJLENBQUNBLElBQUksRUFBRTtZQUNURixVQUFVLENBQUNuRSxJQUFJLENBQUNxQyxJQUFJLENBQUM7VUFDdkI7UUFDRixDQUFDLENBQUM7UUFDRjBCLGVBQWUsR0FBR0ksVUFBVSxDQUFDUixNQUFNLENBQUNJLGVBQWUsQ0FBQztRQUNwRGpCLFNBQVMsQ0FBQzBCLFFBQVEsQ0FBQztVQUNqQjdDLEdBQUcsRUFBRSxNQUFNO1VBQ1huQixHQUFHLEVBQ0QsQ0FBQ29ELGFBQWEsQ0FBQzVDLFlBQVksR0FBRzRDLGFBQWEsQ0FBQ3JDLGVBQWUsSUFBSSxDQUFDLEdBQ2hFLElBQUk7VUFDTmQsSUFBSSxFQUFFLEtBQUs7VUFDWEMsTUFBTSxFQUFFa0QsYUFBYSxDQUFDckMsZUFBZSxHQUFHLElBQUk7VUFDNUNaLEtBQUssRUFBRTtRQUNULENBQUMsQ0FBQztRQUNGbUMsU0FBUyxDQUFDRSxJQUFJLENBQUNlLGVBQWUsQ0FBQztNQUNqQyxDQUFDLE1BQU07UUFDTGpCLFNBQVMsQ0FBQ0UsSUFBSSxDQUFDZSxlQUFlLENBQUM7TUFDakM7SUFDRixDQUFDO0lBQ0RqRyxNQUFNLEVBQUUsa0JBQVk7TUFDbEJ1QyxTQUFTLENBQUNpRCxJQUFJLEVBQUU7TUFDaEJSLFNBQVMsQ0FBQ1EsSUFBSSxFQUFFO0lBQ2xCO0VBQ0YsQ0FBQztFQUNEUixTQUFTLENBQUMxRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsVUFBVVAsQ0FBQyxFQUFFO0lBQy9DLElBQUlvRixNQUFNLEdBQ1JXLGFBQWEsQ0FBQ3JDLGVBQWUsR0FBR3FDLGFBQWEsQ0FBQ3pDLGtCQUFrQjtJQUNsRSxJQUFJK0IsT0FBTyxHQUNUVSxhQUFhLENBQUMxQyxjQUFjLEdBQUcwQyxhQUFhLENBQUN6QyxrQkFBa0I7SUFDakUsSUFBSXRELENBQUMsQ0FBQ3VGLE9BQU8sR0FBR0gsTUFBTSxHQUFHLEVBQUUsSUFBSXBGLENBQUMsQ0FBQ3VGLE9BQU8sR0FBR0gsTUFBTSxFQUFFO01BQ2pELElBQUluRyxTQUFTLElBQUksQ0FBQyxFQUFFO1FBQ2xCO1FBQ0EsSUFDRWUsQ0FBQyxDQUFDd0YsT0FBTyxHQUFHTyxhQUFhLENBQUN6QyxrQkFBa0IsSUFDNUN0RCxDQUFDLENBQUN3RixPQUFPLEdBQUdILE9BQU8sRUFDbkI7VUFDQTdDLFNBQVMsQ0FBQ2lELElBQUksRUFBRTtVQUNoQlIsU0FBUyxDQUFDUSxJQUFJLEVBQUU7VUFDaEJPLFlBQVksQ0FBQzlFLE1BQU0sRUFBRTtRQUN2QjtNQUNGLENBQUMsTUFBTSxJQUFJakMsU0FBUyxJQUFJLENBQUMsRUFBRTtRQUN6QjtRQUNBLElBQUlxRyxXQUFXLEdBQ2IsQ0FBQ1MsYUFBYSxDQUFDeEMsZ0JBQWdCLEdBQUd3QyxhQUFhLENBQUN6QyxrQkFBa0IsSUFDbEUsQ0FBQztRQUNILElBQ0V0RCxDQUFDLENBQUN3RixPQUFPLEdBQUdPLGFBQWEsQ0FBQ3pDLGtCQUFrQixJQUM1Q3RELENBQUMsQ0FBQ3dGLE9BQU8sR0FBR0gsT0FBTyxHQUFHQyxXQUFXLEdBQUdTLGFBQWEsQ0FBQ3pDLGtCQUFrQixFQUNwRTtVQUNBZCxTQUFTLENBQUNpRCxJQUFJLEVBQUU7VUFDaEJSLFNBQVMsQ0FBQ1EsSUFBSSxFQUFFO1VBQ2hCTyxZQUFZLENBQUNuRixjQUFjLEVBQUU7UUFDL0IsQ0FBQyxNQUFNLElBQUliLENBQUMsQ0FBQ3dGLE9BQU8sR0FBR0gsT0FBTyxHQUFHQyxXQUFXLElBQUl0RixDQUFDLENBQUN3RixPQUFPLEdBQUdILE9BQU8sRUFBRTtVQUNuRTdDLFNBQVMsQ0FBQ2lELElBQUksRUFBRTtVQUNoQlIsU0FBUyxDQUFDUSxJQUFJLEVBQUU7UUFDbEI7TUFDRjtJQUNGO0VBQ0YsQ0FBQyxDQUFDO0VBQ0Y7RUFDQWpELFNBQVMsQ0FBQ2tELElBQUksRUFBRTtFQUNoQlQsU0FBUyxDQUFDUyxJQUFJLEVBQUU7RUFDaEI7RUFDQSxPQUFPTSxZQUFZO0FBQ3JCO0FBQ2Usb0JBQTRCO0VBQUEsSUFBbEJZLFFBQVEsdUVBQUcsS0FBSztFQUN2QzNJLFlBQVksQ0FBQyxVQUFDd0YsV0FBVyxFQUFLO0lBQzVCNUYsd0JBQWUsQ0FBQ2dKLFdBQVcsQ0FBQ3BELFdBQVcsRUFBRW1ELFFBQVEsRUFBRSxVQUFDWCxHQUFHLEVBQUs7TUFDMUQsSUFBSUEsR0FBRyxDQUFDbkgsVUFBVSxJQUFJLFVBQVUsSUFBSW1ILEdBQUcsQ0FBQ25ILFVBQVUsSUFBSSxRQUFRLEVBQUU7UUFDOUQsSUFBSSxTQUFTLENBQUNvRCxJQUFJLENBQUMrRCxHQUFHLENBQUNhLGdCQUFnQixDQUFDLEVBQUU7VUFDeENuSSxXQUFXLENBQUNzSCxHQUFHLENBQUM7UUFDbEIsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDL0QsSUFBSSxDQUFDK0QsR0FBRyxDQUFDMUcsV0FBVyxDQUFDLEVBQUU7VUFDM0NwQixJQUFJLENBQUNDLE9BQU8sQ0FBQzJJLE9BQU8sQ0FBQ2QsR0FBRyxDQUFDMUcsV0FBVyxDQUFDO1FBQ3ZDLENBQUMsTUFBTTtVQUNMLElBQUk5QixRQUFRLElBQUksU0FBUyxFQUFFO1lBQ3pCa0IsV0FBVyxDQUFDc0gsR0FBRyxDQUFDO1VBQ2xCLENBQUMsTUFBTTtZQUNMOUgsSUFBSSxDQUFDQyxPQUFPLENBQUMySSxPQUFPLENBQUNkLEdBQUcsQ0FBQzFHLFdBQVcsQ0FBQztVQUN2QztRQUNGO01BQ0YsQ0FBQyxNQUFNLElBQUkwRyxHQUFHLENBQUNuSCxVQUFVLElBQUksU0FBUyxFQUFFO1FBQ3RDeUQsV0FBVyxDQUFDMEQsR0FBRyxFQUFFLFlBQVk7VUFDM0IsSUFBSSxTQUFTLENBQUMvRCxJQUFJLENBQUMrRCxHQUFHLENBQUMxRyxXQUFXLENBQUMsRUFBRTtZQUNuQ1osV0FBVyxDQUFDc0gsR0FBRyxDQUFDO1VBQ2xCLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQy9ELElBQUksQ0FBQytELEdBQUcsQ0FBQzFHLFdBQVcsQ0FBQyxFQUFFO1lBQzNDcEIsSUFBSSxDQUFDQyxPQUFPLENBQUMySSxPQUFPLENBQUNkLEdBQUcsQ0FBQzFHLFdBQVcsQ0FBQztVQUN2QyxDQUFDLE1BQU07WUFDTCxJQUFJOUIsUUFBUSxJQUFJLFNBQVMsRUFBRTtjQUN6QmtCLFdBQVcsQ0FBQ3NILEdBQUcsQ0FBQztZQUNsQixDQUFDLE1BQU07Y0FDTDlILElBQUksQ0FBQ0MsT0FBTyxDQUFDMkksT0FBTyxDQUFDZCxHQUFHLENBQUMxRyxXQUFXLENBQUM7WUFDdkM7VUFDRjtRQUNGLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQyIsImZpbGUiOiI1MjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IGNvbXBvbmVudENvbmZpZyBmcm9tICdAL2NvbmZpZy9jb21wb25lbnRDb25maWcnO1xyXG5jb25zdCBwbGF0Zm9ybSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtO1xyXG4vLyDkuLvpopzoibJcclxuY29uc3QgJG1haW5Db2xvciA9IGNvbXBvbmVudENvbmZpZy5hcHBVcGRhdGVDb2xvclxyXG4gID8gY29tcG9uZW50Q29uZmlnLmFwcFVwZGF0ZUNvbG9yXHJcbiAgOiAnRkY1Qjc4JztcclxuLy8g5by556qX5Zu+5qCHdXJsXHJcbmNvbnN0ICRpY29uVXJsID0gY29tcG9uZW50Q29uZmlnLmFwcFVwZGF0ZUljb25cclxuICA/IGNvbXBvbmVudENvbmZpZy5hcHBVcGRhdGVJY29uXHJcbiAgOiAnLi4vc3RhdGljL2ljX2FyLnBuZyc7XHJcblxyXG4vLyDojrflj5blvZPliY3lupTnlKjnmoTniYjmnKzlj7dcclxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRObyA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xyXG4gIC8vIOiOt+WPluacrOWcsOW6lOeUqOi1hOa6kOeJiOacrOWPt1xyXG4gIHBsdXMucnVudGltZS5nZXRQcm9wZXJ0eShwbHVzLnJ1bnRpbWUuYXBwaWQsIGZ1bmN0aW9uIChpbmYpIHtcclxuICAgIGNhbGxiYWNrICYmXHJcbiAgICAgIGNhbGxiYWNrKHtcclxuICAgICAgICB2ZXJzaW9uQ29kZTogaW5mLnZlcnNpb25Db2RlLFxyXG4gICAgICAgIHZlcnNpb25OYW1lOiBpbmYudmVyc2lvbixcclxuICAgICAgfSk7XHJcbiAgfSk7XHJcbn07XHJcbi8vIOS7juacjeWKoeWZqOS4i+i9veW6lOeUqOi1hOa6kOWMhe+8iHdndOaWh+S7tu+8iVxyXG5jb25zdCBnZXREb3dubG9hZCA9IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgbGV0IGR0YXNrO1xyXG4gIGlmIChkYXRhLnVwZGF0ZVR5cGUgPT0gJ2ZvcmNpYmx5JyB8fCBkYXRhLnVwZGF0ZVR5cGUgPT0gJ3NvbGljaXQnKSB7XHJcbiAgICBsZXQgcG9wdXBEYXRhID0ge1xyXG4gICAgICBwcm9ncmVzczogdHJ1ZSxcclxuICAgICAgYnV0dG9uTnVtOiAyLFxyXG4gICAgfTtcclxuICAgIGlmIChkYXRhLnVwZGF0ZVR5cGUgPT0gJ2ZvcmNpYmx5Jykge1xyXG4gICAgICBwb3B1cERhdGEuYnV0dG9uTnVtID0gMDtcclxuICAgIH1cclxuICAgIGxldCBsYXN0UHJvZ3Jlc3NWYWx1ZSA9IDA7XHJcbiAgICBsZXQgcG9wdXBPYmogPSBkb3dubG9hZFBvcHVwKHBvcHVwRGF0YSk7XHJcbiAgICBkdGFzayA9IHBsdXMuZG93bmxvYWRlci5jcmVhdGVEb3dubG9hZChcclxuICAgICAgZGF0YS5kb3dubG9hZFVybCxcclxuICAgICAge1xyXG4gICAgICAgIGZpbGVuYW1lOiAnX2RvYy91cGRhdGUvJyxcclxuICAgICAgfSxcclxuICAgICAgZnVuY3Rpb24gKGRvd25sb2FkLCBzdGF0dXMpIHtcclxuICAgICAgICBpZiAoc3RhdHVzID09IDIwMCkge1xyXG4gICAgICAgICAgcG9wdXBPYmouY2hhbmdlKHtcclxuICAgICAgICAgICAgcHJvZ3Jlc3NWYWx1ZTogMTAwLFxyXG4gICAgICAgICAgICBwcm9ncmVzc1RpcDogJ+ato+WcqOWuieijheaWh+S7ti4uLicsXHJcbiAgICAgICAgICAgIHByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgICAgICBidXR0b25OdW06IDAsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHBsdXMucnVudGltZS5pbnN0YWxsKFxyXG4gICAgICAgICAgICBkb3dubG9hZC5maWxlbmFtZSxcclxuICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICBwb3B1cE9iai5jaGFuZ2Uoe1xyXG4gICAgICAgICAgICAgICAgY29udGVudFRleHQ6ICflupTnlKjotYTmupDmm7TmlrDlrozmiJDvvIEnLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uTnVtOiAxLFxyXG4gICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgIHBvcHVwT2JqLmNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgIHBsdXMubmF0aXZlVUkuYWxlcnQoJ+WuieijheaWh+S7tuWksei0pVsnICsgZS5jb2RlICsgJ13vvJonICsgZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcG9wdXBPYmouY2hhbmdlKHtcclxuICAgICAgICAgICAgY29udGVudFRleHQ6ICfmlofku7bkuIvovb3lpLHotKUuLi4nLFxyXG4gICAgICAgICAgICBidXR0b25OdW06IDEsXHJcbiAgICAgICAgICAgIHByb2dyZXNzOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGR0YXNrLnN0YXJ0KCk7XHJcbiAgICBkdGFzay5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZWQnLCBmdW5jdGlvbiAodGFzaywgc3RhdHVzKSB7XHJcbiAgICAgIHN3aXRjaCAodGFzay5zdGF0ZSkge1xyXG4gICAgICAgIGNhc2UgMTogLy8g5byA5aeLXHJcbiAgICAgICAgICBwb3B1cE9iai5jaGFuZ2Uoe1xyXG4gICAgICAgICAgICBwcm9ncmVzc1ZhbHVlOiAwLFxyXG4gICAgICAgICAgICBwcm9ncmVzc1RpcDogJ+WHhuWkh+S4i+i9vS4uLicsXHJcbiAgICAgICAgICAgIHByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDI6IC8vIOW3sui/nuaOpeWIsOacjeWKoeWZqFxyXG4gICAgICAgICAgcG9wdXBPYmouY2hhbmdlKHtcclxuICAgICAgICAgICAgcHJvZ3Jlc3NWYWx1ZTogMCxcclxuICAgICAgICAgICAgcHJvZ3Jlc3NUaXA6ICflvIDlp4vkuIvovb0uLi4nLFxyXG4gICAgICAgICAgICBwcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBwYXJzZUludChcclxuICAgICAgICAgICAgKHRhc2suZG93bmxvYWRlZFNpemUgLyB0YXNrLnRvdGFsU2l6ZSkgKiAxMDBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAocHJvZ3Jlc3MgLSBsYXN0UHJvZ3Jlc3NWYWx1ZSA+PSAyKSB7XHJcbiAgICAgICAgICAgIGxhc3RQcm9ncmVzc1ZhbHVlID0gcHJvZ3Jlc3M7XHJcbiAgICAgICAgICAgIHBvcHVwT2JqLmNoYW5nZSh7XHJcbiAgICAgICAgICAgICAgcHJvZ3Jlc3NWYWx1ZTogcHJvZ3Jlc3MsXHJcbiAgICAgICAgICAgICAgcHJvZ3Jlc3NUaXA6ICflt7LkuIvovb0nICsgcHJvZ3Jlc3MgKyAnJScsXHJcbiAgICAgICAgICAgICAgcHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8g5Y+W5raI5LiL6L29XHJcbiAgICBwb3B1cE9iai5jYW5jZWxEb3dubG9hZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgZHRhc2sgJiYgZHRhc2suYWJvcnQoKTtcclxuICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgdGl0bGU6ICflt7Llj5bmtojkuIvovb0nLFxyXG4gICAgICAgIGljb246ICdub25lJyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgLy8g6YeN5ZCvQVBQXHJcbiAgICBwb3B1cE9iai5yZWJvb3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHBsdXMucnVudGltZS5yZXN0YXJ0KCk7XHJcbiAgICB9O1xyXG4gIH0gZWxzZSBpZiAoZGF0YS51cGRhdGVUeXBlID09ICdzaWxlbnQnKSB7XHJcbiAgICBkdGFzayA9IHBsdXMuZG93bmxvYWRlci5jcmVhdGVEb3dubG9hZChcclxuICAgICAgZGF0YS5kb3dubG9hZFVybCxcclxuICAgICAge1xyXG4gICAgICAgIGZpbGVuYW1lOiAnX2RvYy91cGRhdGUvJyxcclxuICAgICAgfSxcclxuICAgICAgZnVuY3Rpb24gKGRvd25sb2FkLCBzdGF0dXMpIHtcclxuICAgICAgICBpZiAoc3RhdHVzID09IDIwMCkge1xyXG4gICAgICAgICAgcGx1cy5ydW50aW1lLmluc3RhbGwoXHJcbiAgICAgICAgICAgIGRvd25sb2FkLmZpbGVuYW1lLFxyXG4gICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCflupTnlKjotYTmupDmm7TmlrDlrozmiJAnKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgICBwbHVzLm5hdGl2ZVVJLmFsZXJ0KCflronoo4Xmlofku7blpLHotKVbJyArIGUuY29kZSArICdd77yaJyArIGUubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBsdXMubmF0aXZlVUkuYWxlcnQoJ+aWh+S7tuS4i+i9veWksei0pS4uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGR0YXNrLnN0YXJ0KCk7XHJcbiAgfVxyXG59O1xyXG4vLyDmloflrZfmjaLooYxcclxuZnVuY3Rpb24gZHJhd3RleHQodGV4dCwgbWF4V2lkdGgpIHtcclxuICBsZXQgdGV4dEFyciA9IHRleHQuc3BsaXQoJycpO1xyXG4gIGxldCBsZW4gPSB0ZXh0QXJyLmxlbmd0aDtcclxuICAvLyDkuIrkuKroioLngrlcclxuICBsZXQgcHJldmlvdXNOb2RlID0gMDtcclxuICAvLyDorrDlvZXoioLngrnlrr3luqZcclxuICBsZXQgbm9kZVdpZHRoID0gMDtcclxuICAvLyDmlofmnKzmjaLooYzmlbDnu4RcclxuICBsZXQgcm93VGV4dCA9IFtdO1xyXG4gIC8vIOWmguaenOaYr+Wtl+avje+8jOS+p+S/neWtmOmVv+W6plxyXG4gIGxldCBsZXR0ZXJXaWR0aCA9IDA7XHJcbiAgLy8g5rGJ5a2X5a695bqmXHJcbiAgbGV0IGNoaW5lc2VXaWR0aCA9IDE0O1xyXG4gIC8vIG90aGVyRm9udOWuveW6plxyXG4gIGxldCBvdGhlcldpZHRoID0gNztcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICBpZiAoL1tcXHU0ZTAwLVxcdTlmYTVdfFtcXHVGRTMwLVxcdUZGQTBdL2cudGVzdCh0ZXh0QXJyW2ldKSkge1xyXG4gICAgICBpZiAobGV0dGVyV2lkdGggPiAwKSB7XHJcbiAgICAgICAgaWYgKG5vZGVXaWR0aCArIGNoaW5lc2VXaWR0aCArIGxldHRlcldpZHRoICogb3RoZXJXaWR0aCA+IG1heFdpZHRoKSB7XHJcbiAgICAgICAgICByb3dUZXh0LnB1c2goe1xyXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRleHQuc3Vic3RyaW5nKHByZXZpb3VzTm9kZSwgaSksXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHByZXZpb3VzTm9kZSA9IGk7XHJcbiAgICAgICAgICBub2RlV2lkdGggPSBjaGluZXNlV2lkdGg7XHJcbiAgICAgICAgICBsZXR0ZXJXaWR0aCA9IDA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5vZGVXaWR0aCArPSBjaGluZXNlV2lkdGggKyBsZXR0ZXJXaWR0aCAqIG90aGVyV2lkdGg7XHJcbiAgICAgICAgICBsZXR0ZXJXaWR0aCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChub2RlV2lkdGggKyBjaGluZXNlV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgcm93VGV4dC5wdXNoKHtcclxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgICBjb250ZW50OiB0ZXh0LnN1YnN0cmluZyhwcmV2aW91c05vZGUsIGkpLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBwcmV2aW91c05vZGUgPSBpO1xyXG4gICAgICAgICAgbm9kZVdpZHRoID0gY2hpbmVzZVdpZHRoO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBub2RlV2lkdGggKz0gY2hpbmVzZVdpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKC9cXG4vZy50ZXN0KHRleHRBcnJbaV0pKSB7XHJcbiAgICAgICAgcm93VGV4dC5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdicmVhaycsXHJcbiAgICAgICAgICBjb250ZW50OiB0ZXh0LnN1YnN0cmluZyhwcmV2aW91c05vZGUsIGkpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHByZXZpb3VzTm9kZSA9IGkgKyAxO1xyXG4gICAgICAgIG5vZGVXaWR0aCA9IDA7XHJcbiAgICAgICAgbGV0dGVyV2lkdGggPSAwO1xyXG4gICAgICB9IGVsc2UgaWYgKHRleHRBcnJbaV0gPT0gJ1xcXFwnICYmIHRleHRBcnJbaSArIDFdID09ICduJykge1xyXG4gICAgICAgIHJvd1RleHQucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiAnYnJlYWsnLFxyXG4gICAgICAgICAgY29udGVudDogdGV4dC5zdWJzdHJpbmcocHJldmlvdXNOb2RlLCBpKSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwcmV2aW91c05vZGUgPSBpICsgMjtcclxuICAgICAgICBub2RlV2lkdGggPSAwO1xyXG4gICAgICAgIGxldHRlcldpZHRoID0gMDtcclxuICAgICAgfSBlbHNlIGlmICgvW2EtekEtWjAtOV0vZy50ZXN0KHRleHRBcnJbaV0pKSB7XHJcbiAgICAgICAgbGV0dGVyV2lkdGggKz0gMTtcclxuICAgICAgICBpZiAobm9kZVdpZHRoICsgbGV0dGVyV2lkdGggKiBvdGhlcldpZHRoID4gbWF4V2lkdGgpIHtcclxuICAgICAgICAgIHJvd1RleHQucHVzaCh7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgY29udGVudDogdGV4dC5zdWJzdHJpbmcocHJldmlvdXNOb2RlLCBpICsgMSAtIGxldHRlcldpZHRoKSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcHJldmlvdXNOb2RlID0gaSArIDEgLSBsZXR0ZXJXaWR0aDtcclxuICAgICAgICAgIG5vZGVXaWR0aCA9IGxldHRlcldpZHRoICogb3RoZXJXaWR0aDtcclxuICAgICAgICAgIGxldHRlcldpZHRoID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG5vZGVXaWR0aCArIG90aGVyV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgcm93VGV4dC5wdXNoKHtcclxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgICBjb250ZW50OiB0ZXh0LnN1YnN0cmluZyhwcmV2aW91c05vZGUsIGkpLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBwcmV2aW91c05vZGUgPSBpO1xyXG4gICAgICAgICAgbm9kZVdpZHRoID0gb3RoZXJXaWR0aDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbm9kZVdpZHRoICs9IG90aGVyV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlmIChwcmV2aW91c05vZGUgPCBsZW4pIHtcclxuICAgIHJvd1RleHQucHVzaCh7XHJcbiAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgY29udGVudDogdGV4dC5zdWJzdHJpbmcocHJldmlvdXNOb2RlLCBsZW4pLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiByb3dUZXh0O1xyXG59XHJcbi8vIOaYr+WQpuabtOaWsOW8ueeql1xyXG5mdW5jdGlvbiB1cGRhdGVQb3B1cChkYXRhLCBjYWxsYmFjaykge1xyXG4gIC8vIOW8ueeql+mBrue9qeWxglxyXG4gIGxldCBtYXNrTGF5ZXIgPSBuZXcgcGx1cy5uYXRpdmVPYmouVmlldygnbWFza0xheWVyJywge1xyXG4gICAgLy/lhYjliJvlu7rpga7nvanlsYJcclxuICAgIHRvcDogJzBweCcsXHJcbiAgICBsZWZ0OiAnMHB4JyxcclxuICAgIGhlaWdodDogJzEwMCUnLFxyXG4gICAgd2lkdGg6ICcxMDAlJyxcclxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMC41KScsXHJcbiAgfSk7XHJcblxyXG4gIC8vIOS7peS4i+S4uuiuoeeul+iPnOWNleeahG52aWV357uY5Yi25biD5bGA77yM5Li65Zu65a6a566X5rOV77yM5L2/55So6ICF5peg5YWz5YWz5b+DXHJcbiAgY29uc3Qgc2NyZWVuV2lkdGggPSBwbHVzLnNjcmVlbi5yZXNvbHV0aW9uV2lkdGg7XHJcbiAgY29uc3Qgc2NyZWVuSGVpZ2h0ID0gcGx1cy5zY3JlZW4ucmVzb2x1dGlvbkhlaWdodDtcclxuICAvL+W8ueeql+WuueWZqOWuveW6plxyXG4gIGNvbnN0IHBvcHVwVmlld1dpZHRoID0gc2NyZWVuV2lkdGggKiAwLjc7XHJcbiAgLy8g5by556qX5a655Zmo55qEUGFkZGluZ1xyXG4gIGNvbnN0IHZpZXdDb250ZW50UGFkZGluZyA9IDIwO1xyXG4gIC8vIOW8ueeql+WuueWZqOeahOWuveW6plxyXG4gIGNvbnN0IHZpZXdDb250ZW50V2lkdGggPSBwYXJzZUludChwb3B1cFZpZXdXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZyAqIDIpO1xyXG4gIC8vIOaPj+i/sOeahOWIl+ihqFxyXG4gIGNvbnN0IGRlc2NyaXB0aW9uTGlzdCA9IGRyYXd0ZXh0KGRhdGEudmVyc2lvbkluZm8sIHZpZXdDb250ZW50V2lkdGgpO1xyXG4gIC8vIOW8ueeql+WuueWZqOmrmOW6plxyXG4gIGxldCBwb3B1cFZpZXdIZWlnaHQgPSA4MCArIDIwICsgMjAgKyA5MCArIDEwO1xyXG5cclxuICBsZXQgcG9wdXBWaWV3Q29udGVudExpc3QgPSBbXHJcbiAgICB7XHJcbiAgICAgIHNyYzogJGljb25VcmwsXHJcbiAgICAgIGlkOiAnbG9nbycsXHJcbiAgICAgIHRhZzogJ2ltZycsXHJcbiAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgdG9wOiAnMHB4JyxcclxuICAgICAgICBsZWZ0OiAocG9wdXBWaWV3V2lkdGggLSAxMjQpIC8gMiArICdweCcsXHJcbiAgICAgICAgd2lkdGg6ICcxMjRweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnODBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0YWc6ICdmb250JyxcclxuICAgICAgaWQ6ICd0aXRsZScsXHJcbiAgICAgIHRleHQ6ICflj5HnjrDmlrDniYjmnKwnICsgZGF0YS52ZXJzaW9uTmFtZSxcclxuICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgIHNpemU6ICcxOHB4JyxcclxuICAgICAgICBjb2xvcjogJyMzMzMnLFxyXG4gICAgICAgIHdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgIHRvcDogJzkwcHgnLFxyXG4gICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgd2lkdGg6IHZpZXdDb250ZW50V2lkdGggKyAncHgnLFxyXG4gICAgICAgIGhlaWdodDogJzMwcHgnLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICBdO1xyXG4gIGNvbnN0IHRleHRIZWlnaHQgPSAxODtcclxuICBsZXQgY29udGVudFRvcCA9IDEzMDtcclxuICBkZXNjcmlwdGlvbkxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgcG9wdXBWaWV3SGVpZ2h0ICs9IHRleHRIZWlnaHQ7XHJcbiAgICAgIGNvbnRlbnRUb3AgKz0gdGV4dEhlaWdodDtcclxuICAgIH1cclxuICAgIHBvcHVwVmlld0NvbnRlbnRMaXN0LnB1c2goe1xyXG4gICAgICB0YWc6ICdmb250JyxcclxuICAgICAgaWQ6ICdjb250ZW50JyArIGluZGV4ICsgMSxcclxuICAgICAgdGV4dDogaXRlbS5jb250ZW50LFxyXG4gICAgICB0ZXh0U3R5bGVzOiB7XHJcbiAgICAgICAgc2l6ZTogJzE0cHgnLFxyXG4gICAgICAgIGNvbG9yOiAnIzY2NicsXHJcbiAgICAgICAgbGluZVNwYWNpbmc6ICc1MCUnLFxyXG4gICAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgdG9wOiBjb250ZW50VG9wICsgJ3B4JyxcclxuICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIHdpZHRoOiB2aWV3Q29udGVudFdpZHRoICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6IHRleHRIZWlnaHQgKyAncHgnLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICBpZiAoaXRlbS50eXBlID09ICdicmVhaycpIHtcclxuICAgICAgY29udGVudFRvcCArPSAxMDtcclxuICAgICAgcG9wdXBWaWV3SGVpZ2h0ICs9IDEwO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAoZGF0YS51cGRhdGVUeXBlID09ICdmb3JjaWJseScpIHtcclxuICAgIHBvcHVwVmlld0NvbnRlbnRMaXN0LnB1c2goe1xyXG4gICAgICB0YWc6ICdyZWN0JywgLy/nu5jliLblupXovrnmjInpkq5cclxuICAgICAgcmVjdFN0eWxlczoge1xyXG4gICAgICAgIHJhZGl1czogJzZweCcsXHJcbiAgICAgICAgY29sb3I6ICRtYWluQ29sb3IsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgYm90dG9tOiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgd2lkdGg6IHZpZXdDb250ZW50V2lkdGggKyAncHgnLFxyXG4gICAgICAgIGhlaWdodDogJzMwcHgnLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICBwb3B1cFZpZXdDb250ZW50TGlzdC5wdXNoKHtcclxuICAgICAgdGFnOiAnZm9udCcsXHJcbiAgICAgIGlkOiAnY29uZmlybVRleHQnLFxyXG4gICAgICB0ZXh0OiAn56uL5Y2z5Y2H57qnJyxcclxuICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgIHNpemU6ICcxNHB4JyxcclxuICAgICAgICBjb2xvcjogJyNGRkYnLFxyXG4gICAgICAgIGxpbmVTcGFjaW5nOiAnMCUnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIHdpZHRoOiB2aWV3Q29udGVudFdpZHRoICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyDnu5jliLblupXovrnmjInpkq5cclxuICAgIHBvcHVwVmlld0NvbnRlbnRMaXN0LnB1c2goe1xyXG4gICAgICB0YWc6ICdyZWN0JyxcclxuICAgICAgaWQ6ICdjYW5jZWxCb3gnLFxyXG4gICAgICByZWN0U3R5bGVzOiB7XHJcbiAgICAgICAgcmFkaXVzOiAnM3B4JyxcclxuICAgICAgICBib3JkZXJDb2xvcjogJyNmMWYxZjEnLFxyXG4gICAgICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgbGVmdDogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICB3aWR0aDogKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHBvcHVwVmlld0NvbnRlbnRMaXN0LnB1c2goe1xyXG4gICAgICB0YWc6ICdyZWN0JyxcclxuICAgICAgaWQ6ICdjb25maXJtQm94JyxcclxuICAgICAgcmVjdFN0eWxlczoge1xyXG4gICAgICAgIHJhZGl1czogJzNweCcsXHJcbiAgICAgICAgY29sb3I6ICRtYWluQ29sb3IsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgYm90dG9tOiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIGxlZnQ6XHJcbiAgICAgICAgICAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICtcclxuICAgICAgICAgIHZpZXdDb250ZW50UGFkZGluZyAqIDIgK1xyXG4gICAgICAgICAgJ3B4JyxcclxuICAgICAgICB3aWR0aDogKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHBvcHVwVmlld0NvbnRlbnRMaXN0LnB1c2goe1xyXG4gICAgICB0YWc6ICdmb250JyxcclxuICAgICAgaWQ6ICdjYW5jZWxUZXh0JyxcclxuICAgICAgdGV4dDogJ+aaguS4jeWNh+e6pycsXHJcbiAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICBzaXplOiAnMTRweCcsXHJcbiAgICAgICAgY29sb3I6ICcjNjY2JyxcclxuICAgICAgICBsaW5lU3BhY2luZzogJzAlJyxcclxuICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgbGVmdDogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICB3aWR0aDogKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHBvcHVwVmlld0NvbnRlbnRMaXN0LnB1c2goe1xyXG4gICAgICB0YWc6ICdmb250JyxcclxuICAgICAgaWQ6ICdjb25maXJtVGV4dCcsXHJcbiAgICAgIHRleHQ6ICfnq4vljbPljYfnuqcnLFxyXG4gICAgICB0ZXh0U3R5bGVzOiB7XHJcbiAgICAgICAgc2l6ZTogJzE0cHgnLFxyXG4gICAgICAgIGNvbG9yOiAnI0ZGRicsXHJcbiAgICAgICAgbGluZVNwYWNpbmc6ICcwJScsXHJcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgYm90dG9tOiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIGxlZnQ6XHJcbiAgICAgICAgICAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICtcclxuICAgICAgICAgIHZpZXdDb250ZW50UGFkZGluZyAqIDIgK1xyXG4gICAgICAgICAgJ3B4JyxcclxuICAgICAgICB3aWR0aDogKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8g5by556qX5YaF5a65XHJcbiAgbGV0IHBvcHVwVmlldyA9IG5ldyBwbHVzLm5hdGl2ZU9iai5WaWV3KCdwb3B1cFZpZXcnLCB7XHJcbiAgICAvL+WIm+W7uuW6lemDqOWbvuagh+iPnOWNlVxyXG4gICAgdGFnOiAncmVjdCcsXHJcbiAgICB0b3A6IChzY3JlZW5IZWlnaHQgLSBwb3B1cFZpZXdIZWlnaHQpIC8gMiArICdweCcsXHJcbiAgICBsZWZ0OiAnMTUlJyxcclxuICAgIGhlaWdodDogcG9wdXBWaWV3SGVpZ2h0ICsgJ3B4JyxcclxuICAgIHdpZHRoOiAnNzAlJyxcclxuICB9KTtcclxuICAvLyDnu5jliLbnmb3oibLog4zmma9cclxuICBwb3B1cFZpZXcuZHJhd1JlY3QoXHJcbiAgICB7XHJcbiAgICAgIGNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICAgIHJhZGl1czogJzhweCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0b3A6ICc0MHB4JyxcclxuICAgICAgaGVpZ2h0OiBwb3B1cFZpZXdIZWlnaHQgLSA0MCArICdweCcsXHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgcG9wdXBWaWV3LmRyYXcocG9wdXBWaWV3Q29udGVudExpc3QpO1xyXG4gIHBvcHVwVmlldy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICBsZXQgbWF4VG9wID0gcG9wdXBWaWV3SGVpZ2h0IC0gdmlld0NvbnRlbnRQYWRkaW5nO1xyXG4gICAgbGV0IG1heExlZnQgPSBwb3B1cFZpZXdXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZztcclxuICAgIGxldCBidXR0b25XaWR0aCA9ICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDI7XHJcbiAgICBpZiAoZS5jbGllbnRZID4gbWF4VG9wIC0gMzAgJiYgZS5jbGllbnRZIDwgbWF4VG9wKSB7XHJcbiAgICAgIGlmIChkYXRhLnVwZGF0ZVR5cGUgPT0gJ2ZvcmNpYmx5Jykge1xyXG4gICAgICAgIGlmIChlLmNsaWVudFggPiB2aWV3Q29udGVudFBhZGRpbmcgJiYgZS5jbGllbnRYIDwgbWF4TGVmdCkge1xyXG4gICAgICAgICAgLy8g56uL5Y2z5Y2H57qnXHJcbiAgICAgICAgICBtYXNrTGF5ZXIuaGlkZSgpO1xyXG4gICAgICAgICAgcG9wdXBWaWV3LmhpZGUoKTtcclxuICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIOaaguS4jeWNh+e6p1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGUuY2xpZW50WCA+IHZpZXdDb250ZW50UGFkZGluZyAmJlxyXG4gICAgICAgICAgZS5jbGllbnRYIDwgbWF4TGVmdCAtIGJ1dHRvbldpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBtYXNrTGF5ZXIuaGlkZSgpO1xyXG4gICAgICAgICAgcG9wdXBWaWV3LmhpZGUoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGUuY2xpZW50WCA+IG1heExlZnQgLSBidXR0b25XaWR0aCAmJiBlLmNsaWVudFggPCBtYXhMZWZ0KSB7XHJcbiAgICAgICAgICAvLyDnq4vljbPljYfnuqdcclxuICAgICAgICAgIG1hc2tMYXllci5oaWRlKCk7XHJcbiAgICAgICAgICBwb3B1cFZpZXcuaGlkZSgpO1xyXG4gICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuICBpZiAoZGF0YS51cGRhdGVUeXBlID09ICdzb2xpY2l0Jykge1xyXG4gICAgLy8g54K55Ye76YGu572p5bGCXHJcbiAgICBtYXNrTGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIC8v5aSE55CG6YGu572p5bGC54K55Ye7XHJcbiAgICAgIG1hc2tMYXllci5oaWRlKCk7XHJcbiAgICAgIHBvcHVwVmlldy5oaWRlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8g5pi+56S65by556qXXHJcbiAgbWFza0xheWVyLnNob3coKTtcclxuICBwb3B1cFZpZXcuc2hvdygpO1xyXG59XHJcbi8vIOaWh+S7tuS4i+i9veeahOW8ueeql+e7mOWbvlxyXG5mdW5jdGlvbiBkb3dubG9hZFBvcHVwRHJhd2luZyhkYXRhKSB7XHJcbiAgLy8g5Lul5LiL5Li66K6h566X6I+c5Y2V55qEbnZpZXfnu5jliLbluIPlsYDvvIzkuLrlm7rlrprnrpfms5XvvIzkvb/nlKjogIXml6DlhbPlhbPlv4NcclxuICBjb25zdCBzY3JlZW5XaWR0aCA9IHBsdXMuc2NyZWVuLnJlc29sdXRpb25XaWR0aDtcclxuICBjb25zdCBzY3JlZW5IZWlnaHQgPSBwbHVzLnNjcmVlbi5yZXNvbHV0aW9uSGVpZ2h0O1xyXG4gIC8v5by556qX5a655Zmo5a695bqmXHJcbiAgY29uc3QgcG9wdXBWaWV3V2lkdGggPSBzY3JlZW5XaWR0aCAqIDAuNztcclxuICAvLyDlvLnnqpflrrnlmajnmoRQYWRkaW5nXHJcbiAgY29uc3Qgdmlld0NvbnRlbnRQYWRkaW5nID0gMjA7XHJcbiAgLy8g5by556qX5a655Zmo55qE5a695bqmXHJcbiAgY29uc3Qgdmlld0NvbnRlbnRXaWR0aCA9IHBvcHVwVmlld1dpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nICogMjtcclxuICAvLyDlvLnnqpflrrnlmajpq5jluqZcclxuICBsZXQgcG9wdXBWaWV3SGVpZ2h0ID0gdmlld0NvbnRlbnRQYWRkaW5nICogMyArIDYwO1xyXG4gIGxldCBwcm9ncmVzc1RpcCA9IGRhdGEucHJvZ3Jlc3NUaXAgfHwgJ+WHhuWkh+S4i+i9vS4uLic7XHJcbiAgbGV0IGNvbnRlbnRUZXh0ID0gZGF0YS5jb250ZW50VGV4dCB8fCAn5q2j5Zyo5Li65oKo5pu05paw77yM6K+36ICQ5b+D562J5b6FJztcclxuICBsZXQgZWxlbWVudExpc3QgPSBbXHJcbiAgICB7XHJcbiAgICAgIHRhZzogJ3JlY3QnLCAvL+iDjOaZr+iJslxyXG4gICAgICBjb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgICByZWN0U3R5bGVzOiB7XHJcbiAgICAgICAgcmFkaXVzOiAnOHB4JyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICBpZDogJ3RpdGxlJyxcclxuICAgICAgdGV4dDogJ+WNh+e6p0FQUCcsXHJcbiAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICBzaXplOiAnMTZweCcsXHJcbiAgICAgICAgY29sb3I6ICcjMzMzJyxcclxuICAgICAgICB3ZWlnaHQ6ICdib2xkJyxcclxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcclxuICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICB0b3A6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0YWc6ICdmb250JyxcclxuICAgICAgaWQ6ICdjb250ZW50JyxcclxuICAgICAgdGV4dDogY29udGVudFRleHQsXHJcbiAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICBzaXplOiAnMTRweCcsXHJcbiAgICAgICAgY29sb3I6ICcjMzMzJyxcclxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcclxuICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICB0b3A6IHZpZXdDb250ZW50UGFkZGluZyAqIDIgKyAzMCArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMjBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgLy8g5piv5ZCm5pyJ6L+b5bqm5p2hXHJcbiAgaWYgKGRhdGEucHJvZ3Jlc3MpIHtcclxuICAgIHBvcHVwVmlld0hlaWdodCArPSB2aWV3Q29udGVudFBhZGRpbmcgKyA0MDtcclxuICAgIGVsZW1lbnRMaXN0ID0gZWxlbWVudExpc3QuY29uY2F0KFtcclxuICAgICAge1xyXG4gICAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICAgIGlkOiAncHJvZ3Jlc3NWYWx1ZScsXHJcbiAgICAgICAgdGV4dDogcHJvZ3Jlc3NUaXAsXHJcbiAgICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgICAgc2l6ZTogJzE0cHgnLFxyXG4gICAgICAgICAgY29sb3I6ICRtYWluQ29sb3IsXHJcbiAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICB0b3A6IHZpZXdDb250ZW50UGFkZGluZyAqIDQgKyAyMCArICdweCcsXHJcbiAgICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGFnOiAncmVjdCcsIC8v57uY5Yi26L+b5bqm5p2h6IOM5pmvXHJcbiAgICAgICAgaWQ6ICdwcm9ncmVzc0JnJyxcclxuICAgICAgICByZWN0U3R5bGVzOiB7XHJcbiAgICAgICAgICByYWRpdXM6ICc0cHgnLFxyXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZjFmMWYxJyxcclxuICAgICAgICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICB0b3A6IHZpZXdDb250ZW50UGFkZGluZyAqIDQgKyA2MCArICdweCcsXHJcbiAgICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgICAgd2lkdGg6IHZpZXdDb250ZW50V2lkdGggKyAncHgnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnOHB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXSk7XHJcbiAgfVxyXG4gIGlmIChkYXRhLmJ1dHRvbk51bSA9PSAyKSB7XHJcbiAgICBwb3B1cFZpZXdIZWlnaHQgKz0gdmlld0NvbnRlbnRQYWRkaW5nICsgMzA7XHJcbiAgICBlbGVtZW50TGlzdCA9IGVsZW1lbnRMaXN0LmNvbmNhdChbXHJcbiAgICAgIHtcclxuICAgICAgICB0YWc6ICdyZWN0JywgLy/nu5jliLblupXovrnmjInpkq5cclxuICAgICAgICByZWN0U3R5bGVzOiB7XHJcbiAgICAgICAgICByYWRpdXM6ICczcHgnLFxyXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZjFmMWYxJyxcclxuICAgICAgICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDIgKyAncHgnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRhZzogJ3JlY3QnLCAvL+e7mOWItuW6lei+ueaMiemSrlxyXG4gICAgICAgIHJlY3RTdHlsZXM6IHtcclxuICAgICAgICAgIHJhZGl1czogJzNweCcsXHJcbiAgICAgICAgICBjb2xvcjogJG1haW5Db2xvcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICBsZWZ0OlxyXG4gICAgICAgICAgICAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICtcclxuICAgICAgICAgICAgdmlld0NvbnRlbnRQYWRkaW5nICogMiArXHJcbiAgICAgICAgICAgICdweCcsXHJcbiAgICAgICAgICB3aWR0aDogKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArICdweCcsXHJcbiAgICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGFnOiAnZm9udCcsXHJcbiAgICAgICAgaWQ6ICdjYW5jZWxUZXh0JyxcclxuICAgICAgICB0ZXh0OiAn5Y+W5raI5LiL6L29JyxcclxuICAgICAgICB0ZXh0U3R5bGVzOiB7XHJcbiAgICAgICAgICBzaXplOiAnMTRweCcsXHJcbiAgICAgICAgICBjb2xvcjogJyM2NjYnLFxyXG4gICAgICAgICAgbGluZVNwYWNpbmc6ICcwJScsXHJcbiAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDIgKyAncHgnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICAgIGlkOiAnY29uZmlybVRleHQnLFxyXG4gICAgICAgIHRleHQ6ICflkI7lj7DkuIvovb0nLFxyXG4gICAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICAgIHNpemU6ICcxNHB4JyxcclxuICAgICAgICAgIGNvbG9yOiAnI0ZGRicsXHJcbiAgICAgICAgICBsaW5lU3BhY2luZzogJzAlJyxcclxuICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICAgIGxlZnQ6XHJcbiAgICAgICAgICAgICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDIgK1xyXG4gICAgICAgICAgICB2aWV3Q29udGVudFBhZGRpbmcgKiAyICtcclxuICAgICAgICAgICAgJ3B4JyxcclxuICAgICAgICAgIHdpZHRoOiAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICsgJ3B4JyxcclxuICAgICAgICAgIGhlaWdodDogJzMwcHgnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9XHJcbiAgaWYgKGRhdGEuYnV0dG9uTnVtID09IDEpIHtcclxuICAgIHBvcHVwVmlld0hlaWdodCArPSB2aWV3Q29udGVudFBhZGRpbmcgKyA0MDtcclxuICAgIGVsZW1lbnRMaXN0ID0gZWxlbWVudExpc3QuY29uY2F0KFtcclxuICAgICAge1xyXG4gICAgICAgIHRhZzogJ3JlY3QnLCAvL+e7mOWItuW6lei+ueaMiemSrlxyXG4gICAgICAgIHJlY3RTdHlsZXM6IHtcclxuICAgICAgICAgIHJhZGl1czogJzZweCcsXHJcbiAgICAgICAgICBjb2xvcjogJG1haW5Db2xvcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgICAgd2lkdGg6IHZpZXdDb250ZW50V2lkdGggKyAncHgnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnNDBweCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICAgIGlkOiAnY29uZmlybVRleHQnLFxyXG4gICAgICAgIHRleHQ6ICflhbPpl60nLFxyXG4gICAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICAgIHNpemU6ICcxNHB4JyxcclxuICAgICAgICAgIGNvbG9yOiAnI0ZGRicsXHJcbiAgICAgICAgICBsaW5lU3BhY2luZzogJzAlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgICAgd2lkdGg6IHZpZXdDb250ZW50V2lkdGggKyAncHgnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnNDBweCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgcG9wdXBWaWV3SGVpZ2h0OiBwb3B1cFZpZXdIZWlnaHQsXHJcbiAgICBwb3B1cFZpZXdXaWR0aDogcG9wdXBWaWV3V2lkdGgsXHJcbiAgICBzY3JlZW5IZWlnaHQ6IHNjcmVlbkhlaWdodCxcclxuICAgIHZpZXdDb250ZW50V2lkdGg6IHZpZXdDb250ZW50V2lkdGgsXHJcbiAgICB2aWV3Q29udGVudFBhZGRpbmc6IHZpZXdDb250ZW50UGFkZGluZyxcclxuICAgIGVsZW1lbnRMaXN0OiBlbGVtZW50TGlzdCxcclxuICB9O1xyXG59XHJcbi8vIOaWh+S7tuS4i+i9veeahOW8ueeql1xyXG5mdW5jdGlvbiBkb3dubG9hZFBvcHVwKGRhdGEpIHtcclxuICAvLyDlvLnnqpfpga7nvanlsYJcclxuICBsZXQgbWFza0xheWVyID0gbmV3IHBsdXMubmF0aXZlT2JqLlZpZXcoJ21hc2tMYXllcicsIHtcclxuICAgIC8v5YWI5Yib5bu66YGu572p5bGCXHJcbiAgICB0b3A6ICcwcHgnLFxyXG4gICAgbGVmdDogJzBweCcsXHJcbiAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDAuNSknLFxyXG4gIH0pO1xyXG4gIGxldCBwb3B1cFZpZXdEYXRhID0gZG93bmxvYWRQb3B1cERyYXdpbmcoZGF0YSk7XHJcbiAgLy8g5by556qX5YaF5a65XHJcbiAgbGV0IHBvcHVwVmlldyA9IG5ldyBwbHVzLm5hdGl2ZU9iai5WaWV3KCdwb3B1cFZpZXcnLCB7XHJcbiAgICAvL+WIm+W7uuW6lemDqOWbvuagh+iPnOWNlVxyXG4gICAgdGFnOiAncmVjdCcsXHJcbiAgICB0b3A6XHJcbiAgICAgIChwb3B1cFZpZXdEYXRhLnNjcmVlbkhlaWdodCAtIHBvcHVwVmlld0RhdGEucG9wdXBWaWV3SGVpZ2h0KSAvIDIgKyAncHgnLFxyXG4gICAgbGVmdDogJzE1JScsXHJcbiAgICBoZWlnaHQ6IHBvcHVwVmlld0RhdGEucG9wdXBWaWV3SGVpZ2h0ICsgJ3B4JyxcclxuICAgIHdpZHRoOiAnNzAlJyxcclxuICB9KTtcclxuICBsZXQgcHJvZ3Jlc3NWYWx1ZSA9IDA7XHJcbiAgbGV0IHByb2dyZXNzVGlwID0gMDtcclxuICBsZXQgY29udGVudFRleHQgPSAwO1xyXG4gIGxldCBidXR0b25OdW0gPSAyO1xyXG4gIGlmIChkYXRhLmJ1dHRvbk51bSA+PSAwKSB7XHJcbiAgICBidXR0b25OdW0gPSBkYXRhLmJ1dHRvbk51bTtcclxuICB9XHJcbiAgcG9wdXBWaWV3LmRyYXcocG9wdXBWaWV3RGF0YS5lbGVtZW50TGlzdCk7XHJcbiAgbGV0IGNhbGxiYWNrRGF0YSA9IHtcclxuICAgIGNoYW5nZTogZnVuY3Rpb24gKHJlcykge1xyXG4gICAgICBsZXQgcHJvZ3Jlc3NFbGVtZW50ID0gW107XHJcbiAgICAgIGlmIChyZXMucHJvZ3Jlc3NWYWx1ZSkge1xyXG4gICAgICAgIHByb2dyZXNzVmFsdWUgPSByZXMucHJvZ3Jlc3NWYWx1ZTtcclxuICAgICAgICAvLyDnu5jliLbov5vluqbmnaFcclxuICAgICAgICBwcm9ncmVzc0VsZW1lbnQucHVzaCh7XHJcbiAgICAgICAgICB0YWc6ICdyZWN0JywgLy/nu5jliLbov5vluqbmnaHog4zmma9cclxuICAgICAgICAgIGlkOiAncHJvZ3Jlc3NWYWx1ZUJnJyxcclxuICAgICAgICAgIHJlY3RTdHlsZXM6IHtcclxuICAgICAgICAgICAgcmFkaXVzOiAnNHB4JyxcclxuICAgICAgICAgICAgY29sb3I6ICRtYWluQ29sb3IsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgICAgdG9wOiBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50UGFkZGluZyAqIDQgKyA2MCArICdweCcsXHJcbiAgICAgICAgICAgIGxlZnQ6IHBvcHVwVmlld0RhdGEudmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICAgICAgd2lkdGg6XHJcbiAgICAgICAgICAgICAgcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFdpZHRoICogKHJlcy5wcm9ncmVzc1ZhbHVlIC8gMTAwKSArICdweCcsXHJcbiAgICAgICAgICAgIGhlaWdodDogJzhweCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMucHJvZ3Jlc3NUaXApIHtcclxuICAgICAgICBwcm9ncmVzc1RpcCA9IHJlcy5wcm9ncmVzc1RpcDtcclxuICAgICAgICBwcm9ncmVzc0VsZW1lbnQucHVzaCh7XHJcbiAgICAgICAgICB0YWc6ICdmb250JyxcclxuICAgICAgICAgIGlkOiAncHJvZ3Jlc3NWYWx1ZScsXHJcbiAgICAgICAgICB0ZXh0OiByZXMucHJvZ3Jlc3NUaXAsXHJcbiAgICAgICAgICB0ZXh0U3R5bGVzOiB7XHJcbiAgICAgICAgICAgIHNpemU6ICcxNHB4JyxcclxuICAgICAgICAgICAgY29sb3I6ICRtYWluQ29sb3IsXHJcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICAgIHRvcDogcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmcgKiA0ICsgMjAgKyAncHgnLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcy5jb250ZW50VGV4dCkge1xyXG4gICAgICAgIGNvbnRlbnRUZXh0ID0gcmVzLmNvbnRlbnRUZXh0O1xyXG4gICAgICAgIHByb2dyZXNzRWxlbWVudC5wdXNoKHtcclxuICAgICAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICAgICAgaWQ6ICdjb250ZW50JyxcclxuICAgICAgICAgIHRleHQ6IHJlcy5jb250ZW50VGV4dCxcclxuICAgICAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICAgICAgc2l6ZTogJzE2cHgnLFxyXG4gICAgICAgICAgICBjb2xvcjogJyMzMzMnLFxyXG4gICAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgICAgICB0b3A6IHBvcHVwVmlld0RhdGEudmlld0NvbnRlbnRQYWRkaW5nICogMiArIDMwICsgJ3B4JyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMuYnV0dG9uTnVtID49IDAgJiYgYnV0dG9uTnVtICE9IHJlcy5idXR0b25OdW0pIHtcclxuICAgICAgICBidXR0b25OdW0gPSByZXMuYnV0dG9uTnVtO1xyXG4gICAgICAgIHBvcHVwVmlldy5yZXNldCgpO1xyXG4gICAgICAgIHBvcHVwVmlld0RhdGEgPSBkb3dubG9hZFBvcHVwRHJhd2luZyhcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBwcm9ncmVzc1ZhbHVlOiBwcm9ncmVzc1ZhbHVlLFxyXG4gICAgICAgICAgICAgIHByb2dyZXNzVGlwOiBwcm9ncmVzc1RpcCxcclxuICAgICAgICAgICAgICBjb250ZW50VGV4dDogY29udGVudFRleHQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlc1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgbGV0IG5ld0VsZW1lbnQgPSBbXTtcclxuICAgICAgICBwb3B1cFZpZXdEYXRhLmVsZW1lbnRMaXN0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGxldCBoYXZlID0gZmFsc2U7XHJcbiAgICAgICAgICBwcm9ncmVzc0VsZW1lbnQuZm9yRWFjaCgoY2hpbGRJdGVtLCBjaGlsZEluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmlkID09IGNoaWxkSXRlbS5pZCkge1xyXG4gICAgICAgICAgICAgIGhhdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmICghaGF2ZSkge1xyXG4gICAgICAgICAgICBuZXdFbGVtZW50LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcHJvZ3Jlc3NFbGVtZW50ID0gbmV3RWxlbWVudC5jb25jYXQocHJvZ3Jlc3NFbGVtZW50KTtcclxuICAgICAgICBwb3B1cFZpZXcuc2V0U3R5bGUoe1xyXG4gICAgICAgICAgdGFnOiAncmVjdCcsXHJcbiAgICAgICAgICB0b3A6XHJcbiAgICAgICAgICAgIChwb3B1cFZpZXdEYXRhLnNjcmVlbkhlaWdodCAtIHBvcHVwVmlld0RhdGEucG9wdXBWaWV3SGVpZ2h0KSAvIDIgK1xyXG4gICAgICAgICAgICAncHgnLFxyXG4gICAgICAgICAgbGVmdDogJzE1JScsXHJcbiAgICAgICAgICBoZWlnaHQ6IHBvcHVwVmlld0RhdGEucG9wdXBWaWV3SGVpZ2h0ICsgJ3B4JyxcclxuICAgICAgICAgIHdpZHRoOiAnNzAlJyxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwb3B1cFZpZXcuZHJhdyhwcm9ncmVzc0VsZW1lbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBvcHVwVmlldy5kcmF3KHByb2dyZXNzRWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjYW5jZWw6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgbWFza0xheWVyLmhpZGUoKTtcclxuICAgICAgcG9wdXBWaWV3LmhpZGUoKTtcclxuICAgIH0sXHJcbiAgfTtcclxuICBwb3B1cFZpZXcuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgbGV0IG1heFRvcCA9XHJcbiAgICAgIHBvcHVwVmlld0RhdGEucG9wdXBWaWV3SGVpZ2h0IC0gcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmc7XHJcbiAgICBsZXQgbWF4TGVmdCA9XHJcbiAgICAgIHBvcHVwVmlld0RhdGEucG9wdXBWaWV3V2lkdGggLSBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50UGFkZGluZztcclxuICAgIGlmIChlLmNsaWVudFkgPiBtYXhUb3AgLSA0MCAmJiBlLmNsaWVudFkgPCBtYXhUb3ApIHtcclxuICAgICAgaWYgKGJ1dHRvbk51bSA9PSAxKSB7XHJcbiAgICAgICAgLy8g5Y2V5oyJ6ZKuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZS5jbGllbnRYID4gcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmcgJiZcclxuICAgICAgICAgIGUuY2xpZW50WCA8IG1heExlZnRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG1hc2tMYXllci5oaWRlKCk7XHJcbiAgICAgICAgICBwb3B1cFZpZXcuaGlkZSgpO1xyXG4gICAgICAgICAgY2FsbGJhY2tEYXRhLnJlYm9vdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChidXR0b25OdW0gPT0gMikge1xyXG4gICAgICAgIC8vIOWPjOaMiemSrlxyXG4gICAgICAgIGxldCBidXR0b25XaWR0aCA9XHJcbiAgICAgICAgICAocG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFdpZHRoIC0gcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmcpIC9cclxuICAgICAgICAgIDI7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZS5jbGllbnRYID4gcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmcgJiZcclxuICAgICAgICAgIGUuY2xpZW50WCA8IG1heExlZnQgLSBidXR0b25XaWR0aCAtIHBvcHVwVmlld0RhdGEudmlld0NvbnRlbnRQYWRkaW5nXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBtYXNrTGF5ZXIuaGlkZSgpO1xyXG4gICAgICAgICAgcG9wdXBWaWV3LmhpZGUoKTtcclxuICAgICAgICAgIGNhbGxiYWNrRGF0YS5jYW5jZWxEb3dubG9hZCgpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZS5jbGllbnRYID4gbWF4TGVmdCAtIGJ1dHRvbldpZHRoICYmIGUuY2xpZW50WCA8IG1heExlZnQpIHtcclxuICAgICAgICAgIG1hc2tMYXllci5oaWRlKCk7XHJcbiAgICAgICAgICBwb3B1cFZpZXcuaGlkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIC8vIOaYvuekuuW8ueeql1xyXG4gIG1hc2tMYXllci5zaG93KCk7XHJcbiAgcG9wdXBWaWV3LnNob3coKTtcclxuICAvLyDmlLnlj5jov5vluqbmnaFcclxuICByZXR1cm4gY2FsbGJhY2tEYXRhO1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChpc1Byb21wdCA9IGZhbHNlKSB7XHJcbiAgZ2V0Q3VycmVudE5vKCh2ZXJzaW9uSW5mbykgPT4ge1xyXG4gICAgY29tcG9uZW50Q29uZmlnLmdldFNlcnZlck5vKHZlcnNpb25JbmZvLCBpc1Byb21wdCwgKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzLnVwZGF0ZVR5cGUgPT0gJ2ZvcmNpYmx5JyB8fCByZXMudXBkYXRlVHlwZSA9PSAnc2lsZW50Jykge1xyXG4gICAgICAgIGlmICgvXFwud2d0JC9pLnRlc3QocmVzLmRvd25sb2FkX3dndF91cmwpKSB7XHJcbiAgICAgICAgICBnZXREb3dubG9hZChyZXMpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoL1xcLmh0bWwkL2kudGVzdChyZXMuZG93bmxvYWRVcmwpKSB7XHJcbiAgICAgICAgICBwbHVzLnJ1bnRpbWUub3BlblVSTChyZXMuZG93bmxvYWRVcmwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAocGxhdGZvcm0gPT0gJ2FuZHJvaWQnKSB7XHJcbiAgICAgICAgICAgIGdldERvd25sb2FkKHJlcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwbHVzLnJ1bnRpbWUub3BlblVSTChyZXMuZG93bmxvYWRVcmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChyZXMudXBkYXRlVHlwZSA9PSAnc29saWNpdCcpIHtcclxuICAgICAgICB1cGRhdGVQb3B1cChyZXMsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIGlmICgvXFwud2d0JC9pLnRlc3QocmVzLmRvd25sb2FkVXJsKSkge1xyXG4gICAgICAgICAgICBnZXREb3dubG9hZChyZXMpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICgvXFwuaHRtbCQvaS50ZXN0KHJlcy5kb3dubG9hZFVybCkpIHtcclxuICAgICAgICAgICAgcGx1cy5ydW50aW1lLm9wZW5VUkwocmVzLmRvd25sb2FkVXJsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChwbGF0Zm9ybSA9PSAnYW5kcm9pZCcpIHtcclxuICAgICAgICAgICAgICBnZXREb3dubG9hZChyZXMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHBsdXMucnVudGltZS5vcGVuVVJMKHJlcy5kb3dubG9hZFVybCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///523\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 = _default;\nexports.getCurrentNo = void 0;\nvar _componentConfig = _interopRequireDefault(__webpack_require__(/*! @/config/componentConfig */ 524));\nvar platform = uni.getSystemInfoSync().platform;\n// 主颜色\nvar $mainColor = _componentConfig.default.appUpdateColor ? _componentConfig.default.appUpdateColor : 'FF5B78';\n// 弹窗图标url\nvar $iconUrl = _componentConfig.default.appUpdateIcon ? _componentConfig.default.appUpdateIcon : '@/static/ic_ar.png';\n\n// 获取当前应用的版本号\nvar getCurrentNo = function getCurrentNo(callback) {\n // 获取本地应用资源版本号\n plus.runtime.getProperty(plus.runtime.appid, function (inf) {\n callback && callback({\n versionCode: inf.versionCode,\n versionName: inf.version\n });\n });\n};\n// 从服务器下载应用资源包(wgt文件)\nexports.getCurrentNo = getCurrentNo;\nvar getDownload = function getDownload(data) {\n __f__(\"log\", data.downloadUrl, \" at config/appUpdate.js:26\");\n var dtask;\n if (data.updateType == 'forcibly' || data.updateType == 'solicit') {\n var popupData = {\n progress: true,\n buttonNum: 2\n };\n if (data.updateType == 'forcibly') {\n popupData.buttonNum = 0;\n }\n var lastProgressValue = 0;\n var popupObj = downloadPopup(popupData);\n dtask = plus.downloader.createDownload(data.downloadUrl, {\n filename: '_doc/update/'\n }, function (download, status) {\n if (status == 200) {\n popupObj.change({\n progressValue: 100,\n progressTip: '正在安装文件...',\n progress: true,\n buttonNum: 0\n });\n plus.runtime.install(download.filename, {}, function () {\n popupObj.change({\n contentText: '应用资源更新完成!',\n buttonNum: 1,\n progress: false\n });\n }, function (e) {\n popupObj.cancel();\n plus.nativeUI.alert('安装文件失败[' + e.code + ']:' + e.message);\n });\n } else {\n popupObj.change({\n contentText: '文件下载失败...',\n buttonNum: 1,\n progress: false\n });\n }\n });\n dtask.start();\n dtask.addEventListener('statechanged', function (task, status) {\n switch (task.state) {\n case 1:\n // 开始\n popupObj.change({\n progressValue: 0,\n progressTip: '准备下载...',\n progress: true\n });\n break;\n case 2:\n // 已连接到服务器\n popupObj.change({\n progressValue: 0,\n progressTip: '开始下载...',\n progress: true\n });\n break;\n case 3:\n var progress = parseInt(task.downloadedSize / task.totalSize * 100);\n if (progress - lastProgressValue >= 2) {\n lastProgressValue = progress;\n popupObj.change({\n progressValue: progress,\n progressTip: '已下载' + progress + '%',\n progress: true\n });\n }\n break;\n }\n });\n // 取消下载\n popupObj.cancelDownload = function () {\n dtask && dtask.abort();\n uni.showToast({\n title: '已取消下载',\n icon: 'none'\n });\n };\n // 重启APP\n popupObj.reboot = function () {\n plus.runtime.restart();\n };\n } else if (data.updateType == 'silent') {\n dtask = plus.downloader.createDownload(data.downloadUrl, {\n filename: '_doc/update/'\n }, function (download, status) {\n if (status == 200) {\n plus.runtime.install(download.filename, {}, function () {\n __f__(\"log\", '应用资源更新完成', \" at config/appUpdate.js:131\");\n }, function (e) {\n plus.nativeUI.alert('安装文件失败[' + e.code + ']:' + e.message);\n });\n } else {\n plus.nativeUI.alert('文件下载失败...');\n }\n });\n dtask.start();\n }\n};\n// 文字换行\nfunction drawtext(text, maxWidth) {\n var textArr = text.split('');\n var len = textArr.length;\n // 上个节点\n var previousNode = 0;\n // 记录节点宽度\n var nodeWidth = 0;\n // 文本换行数组\n var rowText = [];\n // 如果是字母,侧保存长度\n var letterWidth = 0;\n // 汉字宽度\n var chineseWidth = 14;\n // otherFont宽度\n var otherWidth = 7;\n for (var i = 0; i < len; i++) {\n if (/[\\u4e00-\\u9fa5]|[\\uFE30-\\uFFA0]/g.test(textArr[i])) {\n if (letterWidth > 0) {\n if (nodeWidth + chineseWidth + letterWidth * otherWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i)\n });\n previousNode = i;\n nodeWidth = chineseWidth;\n letterWidth = 0;\n } else {\n nodeWidth += chineseWidth + letterWidth * otherWidth;\n letterWidth = 0;\n }\n } else {\n if (nodeWidth + chineseWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i)\n });\n previousNode = i;\n nodeWidth = chineseWidth;\n } else {\n nodeWidth += chineseWidth;\n }\n }\n } else {\n if (/\\n/g.test(textArr[i])) {\n rowText.push({\n type: 'break',\n content: text.substring(previousNode, i)\n });\n previousNode = i + 1;\n nodeWidth = 0;\n letterWidth = 0;\n } else if (textArr[i] == '\\\\' && textArr[i + 1] == 'n') {\n rowText.push({\n type: 'break',\n content: text.substring(previousNode, i)\n });\n previousNode = i + 2;\n nodeWidth = 0;\n letterWidth = 0;\n } else if (/[a-zA-Z0-9]/g.test(textArr[i])) {\n letterWidth += 1;\n if (nodeWidth + letterWidth * otherWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i + 1 - letterWidth)\n });\n previousNode = i + 1 - letterWidth;\n nodeWidth = letterWidth * otherWidth;\n letterWidth = 0;\n }\n } else {\n if (nodeWidth + otherWidth > maxWidth) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, i)\n });\n previousNode = i;\n nodeWidth = otherWidth;\n } else {\n nodeWidth += otherWidth;\n }\n }\n }\n }\n if (previousNode < len) {\n rowText.push({\n type: 'text',\n content: text.substring(previousNode, len)\n });\n }\n return rowText;\n}\n// 是否更新弹窗\nfunction updatePopup(data, callback) {\n // 弹窗遮罩层\n var maskLayer = new plus.nativeObj.View('maskLayer', {\n //先创建遮罩层\n top: '0px',\n left: '0px',\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0.5)'\n });\n\n // 以下为计算菜单的nview绘制布局,为固定算法,使用者无关关心\n var screenWidth = plus.screen.resolutionWidth;\n var screenHeight = plus.screen.resolutionHeight;\n //弹窗容器宽度\n var popupViewWidth = screenWidth * 0.7;\n // 弹窗容器的Padding\n var viewContentPadding = 20;\n // 弹窗容器的宽度\n var viewContentWidth = parseInt(popupViewWidth - viewContentPadding * 2);\n // 描述的列表\n var descriptionList = drawtext(data.versionInfo, viewContentWidth);\n // 弹窗容器高度\n var popupViewHeight = 80 + 20 + 20 + 90 + 10;\n var popupViewContentList = [{\n src: $iconUrl,\n id: 'logo',\n tag: 'img',\n position: {\n top: '0px',\n left: (popupViewWidth - 124) / 2 + 'px',\n width: '124px',\n height: '80px'\n }\n }, {\n tag: 'font',\n id: 'title',\n text: '发现新版本' + data.versionName,\n textStyles: {\n size: '18px',\n color: '#333',\n weight: 'bold',\n whiteSpace: 'normal'\n },\n position: {\n top: '90px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '30px'\n }\n }];\n var textHeight = 18;\n var contentTop = 130;\n descriptionList.forEach(function (item, index) {\n if (index > 0) {\n popupViewHeight += textHeight;\n contentTop += textHeight;\n }\n popupViewContentList.push({\n tag: 'font',\n id: 'content' + index + 1,\n text: item.content,\n textStyles: {\n size: '14px',\n color: '#666',\n lineSpacing: '50%',\n align: 'left'\n },\n position: {\n top: contentTop + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: textHeight + 'px'\n }\n });\n if (item.type == 'break') {\n contentTop += 10;\n popupViewHeight += 10;\n }\n });\n if (data.updateType == 'forcibly') {\n popupViewContentList.push({\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '6px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'font',\n id: 'confirmText',\n text: '立即升级',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '30px'\n }\n });\n } else {\n // 绘制底边按钮\n popupViewContentList.push({\n tag: 'rect',\n id: 'cancelBox',\n rectStyles: {\n radius: '3px',\n borderColor: '#f1f1f1',\n borderWidth: '1px'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'rect',\n id: 'confirmBox',\n rectStyles: {\n radius: '3px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'font',\n id: 'cancelText',\n text: '暂不升级',\n textStyles: {\n size: '14px',\n color: '#666',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n popupViewContentList.push({\n tag: 'font',\n id: 'confirmText',\n text: '立即升级',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n });\n }\n // 弹窗内容\n var popupView = new plus.nativeObj.View('popupView', {\n //创建底部图标菜单\n tag: 'rect',\n top: (screenHeight - popupViewHeight) / 2 + 'px',\n left: '15%',\n height: popupViewHeight + 'px',\n width: '70%'\n });\n // 绘制白色背景\n popupView.drawRect({\n color: '#FFFFFF',\n radius: '8px'\n }, {\n top: '40px',\n height: popupViewHeight - 40 + 'px'\n });\n popupView.draw(popupViewContentList);\n popupView.addEventListener('click', function (e) {\n var maxTop = popupViewHeight - viewContentPadding;\n var maxLeft = popupViewWidth - viewContentPadding;\n var buttonWidth = (viewContentWidth - viewContentPadding) / 2;\n if (e.clientY > maxTop - 30 && e.clientY < maxTop) {\n if (data.updateType == 'forcibly') {\n if (e.clientX > viewContentPadding && e.clientX < maxLeft) {\n // 立即升级\n maskLayer.hide();\n popupView.hide();\n callback && callback();\n }\n } else {\n // 暂不升级\n if (e.clientX > viewContentPadding && e.clientX < maxLeft - buttonWidth - viewContentPadding) {\n maskLayer.hide();\n popupView.hide();\n } else if (e.clientX > maxLeft - buttonWidth && e.clientX < maxLeft) {\n // 立即升级\n maskLayer.hide();\n popupView.hide();\n callback && callback();\n }\n }\n }\n });\n if (data.updateType == 'solicit') {\n // 点击遮罩层\n maskLayer.addEventListener('click', function () {\n //处理遮罩层点击\n maskLayer.hide();\n popupView.hide();\n });\n }\n // 显示弹窗\n maskLayer.show();\n popupView.show();\n}\n// 文件下载的弹窗绘图\nfunction downloadPopupDrawing(data) {\n // 以下为计算菜单的nview绘制布局,为固定算法,使用者无关关心\n var screenWidth = plus.screen.resolutionWidth;\n var screenHeight = plus.screen.resolutionHeight;\n //弹窗容器宽度\n var popupViewWidth = screenWidth * 0.7;\n // 弹窗容器的Padding\n var viewContentPadding = 20;\n // 弹窗容器的宽度\n var viewContentWidth = popupViewWidth - viewContentPadding * 2;\n // 弹窗容器高度\n var popupViewHeight = viewContentPadding * 3 + 60;\n var progressTip = data.progressTip || '准备下载...';\n var contentText = data.contentText || '正在为您更新,请耐心等待';\n var elementList = [{\n tag: 'rect',\n //背景色\n color: '#FFFFFF',\n rectStyles: {\n radius: '8px'\n }\n }, {\n tag: 'font',\n id: 'title',\n text: '升级APP',\n textStyles: {\n size: '16px',\n color: '#333',\n weight: 'bold',\n verticalAlign: 'middle',\n whiteSpace: 'normal'\n },\n position: {\n top: viewContentPadding + 'px',\n height: '30px'\n }\n }, {\n tag: 'font',\n id: 'content',\n text: contentText,\n textStyles: {\n size: '14px',\n color: '#333',\n verticalAlign: 'middle',\n whiteSpace: 'normal'\n },\n position: {\n top: viewContentPadding * 2 + 30 + 'px',\n height: '20px'\n }\n }];\n // 是否有进度条\n if (data.progress) {\n popupViewHeight += viewContentPadding + 40;\n elementList = elementList.concat([{\n tag: 'font',\n id: 'progressValue',\n text: progressTip,\n textStyles: {\n size: '14px',\n color: $mainColor,\n whiteSpace: 'normal'\n },\n position: {\n top: viewContentPadding * 4 + 20 + 'px',\n height: '30px'\n }\n }, {\n tag: 'rect',\n //绘制进度条背景\n id: 'progressBg',\n rectStyles: {\n radius: '4px',\n borderColor: '#f1f1f1',\n borderWidth: '1px'\n },\n position: {\n top: viewContentPadding * 4 + 60 + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '8px'\n }\n }]);\n }\n if (data.buttonNum == 2) {\n popupViewHeight += viewContentPadding + 30;\n elementList = elementList.concat([{\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '3px',\n borderColor: '#f1f1f1',\n borderWidth: '1px'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }, {\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '3px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }, {\n tag: 'font',\n id: 'cancelText',\n text: '取消下载',\n textStyles: {\n size: '14px',\n color: '#666',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }, {\n tag: 'font',\n id: 'confirmText',\n text: '后台下载',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%',\n whiteSpace: 'normal'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: (viewContentWidth - viewContentPadding) / 2 + viewContentPadding * 2 + 'px',\n width: (viewContentWidth - viewContentPadding) / 2 + 'px',\n height: '30px'\n }\n }]);\n }\n if (data.buttonNum == 1) {\n popupViewHeight += viewContentPadding + 40;\n elementList = elementList.concat([{\n tag: 'rect',\n //绘制底边按钮\n rectStyles: {\n radius: '6px',\n color: $mainColor\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '40px'\n }\n }, {\n tag: 'font',\n id: 'confirmText',\n text: '关闭',\n textStyles: {\n size: '14px',\n color: '#FFF',\n lineSpacing: '0%'\n },\n position: {\n bottom: viewContentPadding + 'px',\n left: viewContentPadding + 'px',\n width: viewContentWidth + 'px',\n height: '40px'\n }\n }]);\n }\n return {\n popupViewHeight: popupViewHeight,\n popupViewWidth: popupViewWidth,\n screenHeight: screenHeight,\n viewContentWidth: viewContentWidth,\n viewContentPadding: viewContentPadding,\n elementList: elementList\n };\n}\n// 文件下载的弹窗\nfunction downloadPopup(data) {\n // 弹窗遮罩层\n var maskLayer = new plus.nativeObj.View('maskLayer', {\n //先创建遮罩层\n top: '0px',\n left: '0px',\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0.5)'\n });\n var popupViewData = downloadPopupDrawing(data);\n // 弹窗内容\n var popupView = new plus.nativeObj.View('popupView', {\n //创建底部图标菜单\n tag: 'rect',\n top: (popupViewData.screenHeight - popupViewData.popupViewHeight) / 2 + 'px',\n left: '15%',\n height: popupViewData.popupViewHeight + 'px',\n width: '70%'\n });\n var progressValue = 0;\n var progressTip = 0;\n var contentText = 0;\n var buttonNum = 2;\n if (data.buttonNum >= 0) {\n buttonNum = data.buttonNum;\n }\n popupView.draw(popupViewData.elementList);\n var callbackData = {\n change: function change(res) {\n var progressElement = [];\n if (res.progressValue) {\n progressValue = res.progressValue;\n // 绘制进度条\n progressElement.push({\n tag: 'rect',\n //绘制进度条背景\n id: 'progressValueBg',\n rectStyles: {\n radius: '4px',\n color: $mainColor\n },\n position: {\n top: popupViewData.viewContentPadding * 4 + 60 + 'px',\n left: popupViewData.viewContentPadding + 'px',\n width: popupViewData.viewContentWidth * (res.progressValue / 100) + 'px',\n height: '8px'\n }\n });\n }\n if (res.progressTip) {\n progressTip = res.progressTip;\n progressElement.push({\n tag: 'font',\n id: 'progressValue',\n text: res.progressTip,\n textStyles: {\n size: '14px',\n color: $mainColor,\n whiteSpace: 'normal'\n },\n position: {\n top: popupViewData.viewContentPadding * 4 + 20 + 'px',\n height: '30px'\n }\n });\n }\n if (res.contentText) {\n contentText = res.contentText;\n progressElement.push({\n tag: 'font',\n id: 'content',\n text: res.contentText,\n textStyles: {\n size: '16px',\n color: '#333',\n whiteSpace: 'normal'\n },\n position: {\n top: popupViewData.viewContentPadding * 2 + 30 + 'px',\n height: '30px'\n }\n });\n }\n if (res.buttonNum >= 0 && buttonNum != res.buttonNum) {\n buttonNum = res.buttonNum;\n popupView.reset();\n popupViewData = downloadPopupDrawing(Object.assign({\n progressValue: progressValue,\n progressTip: progressTip,\n contentText: contentText\n }, res));\n var newElement = [];\n popupViewData.elementList.map(function (item, index) {\n var have = false;\n progressElement.forEach(function (childItem, childIndex) {\n if (item.id == childItem.id) {\n have = true;\n }\n });\n if (!have) {\n newElement.push(item);\n }\n });\n progressElement = newElement.concat(progressElement);\n popupView.setStyle({\n tag: 'rect',\n top: (popupViewData.screenHeight - popupViewData.popupViewHeight) / 2 + 'px',\n left: '15%',\n height: popupViewData.popupViewHeight + 'px',\n width: '70%'\n });\n popupView.draw(progressElement);\n } else {\n popupView.draw(progressElement);\n }\n },\n cancel: function cancel() {\n maskLayer.hide();\n popupView.hide();\n }\n };\n popupView.addEventListener('click', function (e) {\n var maxTop = popupViewData.popupViewHeight - popupViewData.viewContentPadding;\n var maxLeft = popupViewData.popupViewWidth - popupViewData.viewContentPadding;\n if (e.clientY > maxTop - 40 && e.clientY < maxTop) {\n if (buttonNum == 1) {\n // 单按钮\n if (e.clientX > popupViewData.viewContentPadding && e.clientX < maxLeft) {\n maskLayer.hide();\n popupView.hide();\n callbackData.reboot();\n }\n } else if (buttonNum == 2) {\n // 双按钮\n var buttonWidth = (popupViewData.viewContentWidth - popupViewData.viewContentPadding) / 2;\n if (e.clientX > popupViewData.viewContentPadding && e.clientX < maxLeft - buttonWidth - popupViewData.viewContentPadding) {\n maskLayer.hide();\n popupView.hide();\n callbackData.cancelDownload();\n } else if (e.clientX > maxLeft - buttonWidth && e.clientX < maxLeft) {\n maskLayer.hide();\n popupView.hide();\n }\n }\n }\n });\n // 显示弹窗\n maskLayer.show();\n popupView.show();\n // 改变进度条\n return callbackData;\n}\nfunction _default() {\n var isPrompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n getCurrentNo(function (versionInfo) {\n _componentConfig.default.getServerNo(versionInfo, isPrompt, function (res) {\n if (res) {\n res.versionInfo = res.description;\n if (res.version_name > versionInfo.versionName) {\n res.versionName = res.version_name;\n res.downloadUrl = res.download_apk_url;\n } else {\n if (res.version_key > versionInfo.versionCode) {\n res.versionName = res.version_key;\n res.downloadUrl = res.download_wgt_url;\n }\n }\n }\n if (res) {\n if (res.updateType == 'forcibly' || res.updateType == 'silent') {\n getDownload(res);\n } else if (res.updateType == 'solicit') {\n updatePopup(res, function () {\n getDownload(res);\n });\n }\n }\n });\n });\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29uZmlnL2FwcFVwZGF0ZS5qcyJdLCJuYW1lcyI6WyJwbGF0Zm9ybSIsInVuaSIsImdldFN5c3RlbUluZm9TeW5jIiwiJG1haW5Db2xvciIsImNvbXBvbmVudENvbmZpZyIsImFwcFVwZGF0ZUNvbG9yIiwiJGljb25VcmwiLCJhcHBVcGRhdGVJY29uIiwiZ2V0Q3VycmVudE5vIiwiY2FsbGJhY2siLCJwbHVzIiwicnVudGltZSIsImdldFByb3BlcnR5IiwiYXBwaWQiLCJpbmYiLCJ2ZXJzaW9uQ29kZSIsInZlcnNpb25OYW1lIiwidmVyc2lvbiIsImdldERvd25sb2FkIiwiZGF0YSIsImRvd25sb2FkVXJsIiwiZHRhc2siLCJ1cGRhdGVUeXBlIiwicG9wdXBEYXRhIiwicHJvZ3Jlc3MiLCJidXR0b25OdW0iLCJsYXN0UHJvZ3Jlc3NWYWx1ZSIsInBvcHVwT2JqIiwiZG93bmxvYWRQb3B1cCIsImRvd25sb2FkZXIiLCJjcmVhdGVEb3dubG9hZCIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzdGF0dXMiLCJjaGFuZ2UiLCJwcm9ncmVzc1ZhbHVlIiwicHJvZ3Jlc3NUaXAiLCJpbnN0YWxsIiwiY29udGVudFRleHQiLCJlIiwiY2FuY2VsIiwibmF0aXZlVUkiLCJhbGVydCIsImNvZGUiLCJtZXNzYWdlIiwic3RhcnQiLCJhZGRFdmVudExpc3RlbmVyIiwidGFzayIsInN0YXRlIiwicGFyc2VJbnQiLCJkb3dubG9hZGVkU2l6ZSIsInRvdGFsU2l6ZSIsImNhbmNlbERvd25sb2FkIiwiYWJvcnQiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImljb24iLCJyZWJvb3QiLCJyZXN0YXJ0IiwiZHJhd3RleHQiLCJ0ZXh0IiwibWF4V2lkdGgiLCJ0ZXh0QXJyIiwic3BsaXQiLCJsZW4iLCJsZW5ndGgiLCJwcmV2aW91c05vZGUiLCJub2RlV2lkdGgiLCJyb3dUZXh0IiwibGV0dGVyV2lkdGgiLCJjaGluZXNlV2lkdGgiLCJvdGhlcldpZHRoIiwiaSIsInRlc3QiLCJwdXNoIiwidHlwZSIsImNvbnRlbnQiLCJzdWJzdHJpbmciLCJ1cGRhdGVQb3B1cCIsIm1hc2tMYXllciIsIm5hdGl2ZU9iaiIsIlZpZXciLCJ0b3AiLCJsZWZ0IiwiaGVpZ2h0Iiwid2lkdGgiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzY3JlZW5XaWR0aCIsInNjcmVlbiIsInJlc29sdXRpb25XaWR0aCIsInNjcmVlbkhlaWdodCIsInJlc29sdXRpb25IZWlnaHQiLCJwb3B1cFZpZXdXaWR0aCIsInZpZXdDb250ZW50UGFkZGluZyIsInZpZXdDb250ZW50V2lkdGgiLCJkZXNjcmlwdGlvbkxpc3QiLCJ2ZXJzaW9uSW5mbyIsInBvcHVwVmlld0hlaWdodCIsInBvcHVwVmlld0NvbnRlbnRMaXN0Iiwic3JjIiwiaWQiLCJ0YWciLCJwb3NpdGlvbiIsInRleHRTdHlsZXMiLCJzaXplIiwiY29sb3IiLCJ3ZWlnaHQiLCJ3aGl0ZVNwYWNlIiwidGV4dEhlaWdodCIsImNvbnRlbnRUb3AiLCJmb3JFYWNoIiwiaXRlbSIsImluZGV4IiwibGluZVNwYWNpbmciLCJhbGlnbiIsInJlY3RTdHlsZXMiLCJyYWRpdXMiLCJib3R0b20iLCJib3JkZXJDb2xvciIsImJvcmRlcldpZHRoIiwicG9wdXBWaWV3IiwiZHJhd1JlY3QiLCJkcmF3IiwibWF4VG9wIiwibWF4TGVmdCIsImJ1dHRvbldpZHRoIiwiY2xpZW50WSIsImNsaWVudFgiLCJoaWRlIiwic2hvdyIsImRvd25sb2FkUG9wdXBEcmF3aW5nIiwiZWxlbWVudExpc3QiLCJ2ZXJ0aWNhbEFsaWduIiwiY29uY2F0IiwicG9wdXBWaWV3RGF0YSIsImNhbGxiYWNrRGF0YSIsInJlcyIsInByb2dyZXNzRWxlbWVudCIsInJlc2V0IiwiT2JqZWN0IiwiYXNzaWduIiwibmV3RWxlbWVudCIsIm1hcCIsImhhdmUiLCJjaGlsZEl0ZW0iLCJjaGlsZEluZGV4Iiwic2V0U3R5bGUiLCJpc1Byb21wdCIsImdldFNlcnZlck5vIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uX25h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QUd0RCxXQUFXLENBQUNoRixXQUFXLEVBQUU7VUFDOUN3SCxHQUFHLENBQUN4SCxXQUFXLEdBQUd3SCxHQUFHLENBQUNjLFlBQVk7VUFDbENkLEdBQUcsQ0FBQ3BILFdBQVcsR0FBR29ILEdBQUcsQ0FBQ2UsZ0JBQWdCO1FBQ3hDLENBQUMsTUFBTTtVQUNMLElBQUlmLEdBQUcsQ0FBQ2dCLFdBQVcsR0FBR3hELFdBQVcsQ0FBQ2pGLFdBQVcsRUFBRTtZQUM3Q3lILEdBQUcsQ0FBQ3hILFdBQVcsR0FBR3dILEdBQUcsQ0FBQ2dCLFdBQVc7WUFDakNoQixHQUFHLENBQUNwSCxXQUFXLEdBQUdvSCxHQUFHLENBQUNpQixnQkFBZ0I7VUFDeEM7UUFDRjtNQUNGO01BRUEsSUFBSWpCLEdBQUcsRUFBRTtRQUNQLElBQUlBLEdBQUcsQ0FBQ2xILFVBQVUsSUFBSSxVQUFVLElBQUlrSCxHQUFHLENBQUNsSCxVQUFVLElBQUksUUFBUSxFQUFFO1VBQzlESixXQUFXLENBQUNzSCxHQUFHLENBQUM7UUFDbEIsQ0FBQyxNQUFNLElBQUlBLEdBQUcsQ0FBQ2xILFVBQVUsSUFBSSxTQUFTLEVBQUU7VUFDdEN3RCxXQUFXLENBQUMwRCxHQUFHLEVBQUUsWUFBWTtZQUMzQnRILFdBQVcsQ0FBQ3NILEdBQUcsQ0FBQztVQUNsQixDQUFDLENBQUM7UUFDSjtNQUNGO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQyIsImZpbGUiOiI1MjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IGNvbXBvbmVudENvbmZpZyBmcm9tICdAL2NvbmZpZy9jb21wb25lbnRDb25maWcnO1xyXG5jb25zdCBwbGF0Zm9ybSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtO1xyXG4vLyDkuLvpopzoibJcclxuY29uc3QgJG1haW5Db2xvciA9IGNvbXBvbmVudENvbmZpZy5hcHBVcGRhdGVDb2xvclxyXG4gID8gY29tcG9uZW50Q29uZmlnLmFwcFVwZGF0ZUNvbG9yXHJcbiAgOiAnRkY1Qjc4JztcclxuLy8g5by556qX5Zu+5qCHdXJsXHJcbmNvbnN0ICRpY29uVXJsID0gY29tcG9uZW50Q29uZmlnLmFwcFVwZGF0ZUljb25cclxuICA/IGNvbXBvbmVudENvbmZpZy5hcHBVcGRhdGVJY29uXHJcbiAgOiAnQC9zdGF0aWMvaWNfYXIucG5nJztcclxuXHJcbi8vIOiOt+WPluW9k+WJjeW6lOeUqOeahOeJiOacrOWPt1xyXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudE5vID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgLy8g6I635Y+W5pys5Zyw5bqU55So6LWE5rqQ54mI5pys5Y+3XHJcbiAgcGx1cy5ydW50aW1lLmdldFByb3BlcnR5KHBsdXMucnVudGltZS5hcHBpZCwgZnVuY3Rpb24gKGluZikge1xyXG4gICAgY2FsbGJhY2sgJiZcclxuICAgICAgY2FsbGJhY2soe1xyXG4gICAgICAgIHZlcnNpb25Db2RlOiBpbmYudmVyc2lvbkNvZGUsXHJcbiAgICAgICAgdmVyc2lvbk5hbWU6IGluZi52ZXJzaW9uLFxyXG4gICAgICB9KTtcclxuICB9KTtcclxufTtcclxuLy8g5LuO5pyN5Yqh5Zmo5LiL6L295bqU55So6LWE5rqQ5YyF77yId2d05paH5Lu277yJXHJcbmNvbnN0IGdldERvd25sb2FkID0gZnVuY3Rpb24gKGRhdGEpIHtcclxuICBjb25zb2xlLmxvZyhkYXRhLmRvd25sb2FkVXJsKTtcclxuICBsZXQgZHRhc2s7XHJcbiAgaWYgKGRhdGEudXBkYXRlVHlwZSA9PSAnZm9yY2libHknIHx8IGRhdGEudXBkYXRlVHlwZSA9PSAnc29saWNpdCcpIHtcclxuICAgIGxldCBwb3B1cERhdGEgPSB7XHJcbiAgICAgIHByb2dyZXNzOiB0cnVlLFxyXG4gICAgICBidXR0b25OdW06IDIsXHJcbiAgICB9O1xyXG4gICAgaWYgKGRhdGEudXBkYXRlVHlwZSA9PSAnZm9yY2libHknKSB7XHJcbiAgICAgIHBvcHVwRGF0YS5idXR0b25OdW0gPSAwO1xyXG4gICAgfVxyXG4gICAgbGV0IGxhc3RQcm9ncmVzc1ZhbHVlID0gMDtcclxuICAgIGxldCBwb3B1cE9iaiA9IGRvd25sb2FkUG9wdXAocG9wdXBEYXRhKTtcclxuICAgIGR0YXNrID0gcGx1cy5kb3dubG9hZGVyLmNyZWF0ZURvd25sb2FkKFxyXG4gICAgICBkYXRhLmRvd25sb2FkVXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgZmlsZW5hbWU6ICdfZG9jL3VwZGF0ZS8nLFxyXG4gICAgICB9LFxyXG4gICAgICBmdW5jdGlvbiAoZG93bmxvYWQsIHN0YXR1cykge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT0gMjAwKSB7XHJcbiAgICAgICAgICBwb3B1cE9iai5jaGFuZ2Uoe1xyXG4gICAgICAgICAgICBwcm9ncmVzc1ZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgIHByb2dyZXNzVGlwOiAn5q2j5Zyo5a6J6KOF5paH5Lu2Li4uJyxcclxuICAgICAgICAgICAgcHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgICAgIGJ1dHRvbk51bTogMCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcGx1cy5ydW50aW1lLmluc3RhbGwoXHJcbiAgICAgICAgICAgIGRvd25sb2FkLmZpbGVuYW1lLFxyXG4gICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgIHBvcHVwT2JqLmNoYW5nZSh7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50VGV4dDogJ+W6lOeUqOi1hOa6kOabtOaWsOWujOaIkO+8gScsXHJcbiAgICAgICAgICAgICAgICBidXR0b25OdW06IDEsXHJcbiAgICAgICAgICAgICAgICBwcm9ncmVzczogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgcG9wdXBPYmouY2FuY2VsKCk7XHJcbiAgICAgICAgICAgICAgcGx1cy5uYXRpdmVVSS5hbGVydCgn5a6J6KOF5paH5Lu25aSx6LSlWycgKyBlLmNvZGUgKyAnXe+8micgKyBlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwb3B1cE9iai5jaGFuZ2Uoe1xyXG4gICAgICAgICAgICBjb250ZW50VGV4dDogJ+aWh+S7tuS4i+i9veWksei0pS4uLicsXHJcbiAgICAgICAgICAgIGJ1dHRvbk51bTogMSxcclxuICAgICAgICAgICAgcHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgZHRhc2suc3RhcnQoKTtcclxuICAgIGR0YXNrLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlZCcsIGZ1bmN0aW9uICh0YXNrLCBzdGF0dXMpIHtcclxuICAgICAgc3dpdGNoICh0YXNrLnN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSAxOiAvLyDlvIDlp4tcclxuICAgICAgICAgIHBvcHVwT2JqLmNoYW5nZSh7XHJcbiAgICAgICAgICAgIHByb2dyZXNzVmFsdWU6IDAsXHJcbiAgICAgICAgICAgIHByb2dyZXNzVGlwOiAn5YeG5aSH5LiL6L29Li4uJyxcclxuICAgICAgICAgICAgcHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogLy8g5bey6L+e5o6l5Yiw5pyN5Yqh5ZmoXHJcbiAgICAgICAgICBwb3B1cE9iai5jaGFuZ2Uoe1xyXG4gICAgICAgICAgICBwcm9ncmVzc1ZhbHVlOiAwLFxyXG4gICAgICAgICAgICBwcm9ncmVzc1RpcDogJ+W8gOWni+S4i+i9vS4uLicsXHJcbiAgICAgICAgICAgIHByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IHBhcnNlSW50KFxyXG4gICAgICAgICAgICAodGFzay5kb3dubG9hZGVkU2l6ZSAvIHRhc2sudG90YWxTaXplKSAqIDEwMFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmIChwcm9ncmVzcyAtIGxhc3RQcm9ncmVzc1ZhbHVlID49IDIpIHtcclxuICAgICAgICAgICAgbGFzdFByb2dyZXNzVmFsdWUgPSBwcm9ncmVzcztcclxuICAgICAgICAgICAgcG9wdXBPYmouY2hhbmdlKHtcclxuICAgICAgICAgICAgICBwcm9ncmVzc1ZhbHVlOiBwcm9ncmVzcyxcclxuICAgICAgICAgICAgICBwcm9ncmVzc1RpcDogJ+W3suS4i+i9vScgKyBwcm9ncmVzcyArICclJyxcclxuICAgICAgICAgICAgICBwcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyDlj5bmtojkuIvovb1cclxuICAgIHBvcHVwT2JqLmNhbmNlbERvd25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICBkdGFzayAmJiBkdGFzay5hYm9ydCgpO1xyXG4gICAgICB1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICB0aXRsZTogJ+W3suWPlua2iOS4i+i9vScsXHJcbiAgICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICAvLyDph43lkK9BUFBcclxuICAgIHBvcHVwT2JqLnJlYm9vdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgcGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuICAgIH07XHJcbiAgfSBlbHNlIGlmIChkYXRhLnVwZGF0ZVR5cGUgPT0gJ3NpbGVudCcpIHtcclxuICAgIGR0YXNrID0gcGx1cy5kb3dubG9hZGVyLmNyZWF0ZURvd25sb2FkKFxyXG4gICAgICBkYXRhLmRvd25sb2FkVXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgZmlsZW5hbWU6ICdfZG9jL3VwZGF0ZS8nLFxyXG4gICAgICB9LFxyXG4gICAgICBmdW5jdGlvbiAoZG93bmxvYWQsIHN0YXR1cykge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT0gMjAwKSB7XHJcbiAgICAgICAgICBwbHVzLnJ1bnRpbWUuaW5zdGFsbChcclxuICAgICAgICAgICAgZG93bmxvYWQuZmlsZW5hbWUsXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+W6lOeUqOi1hOa6kOabtOaWsOWujOaIkCcpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgIHBsdXMubmF0aXZlVUkuYWxlcnQoJ+WuieijheaWh+S7tuWksei0pVsnICsgZS5jb2RlICsgJ13vvJonICsgZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcGx1cy5uYXRpdmVVSS5hbGVydCgn5paH5Lu25LiL6L295aSx6LSlLi4uJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgZHRhc2suc3RhcnQoKTtcclxuICB9XHJcbn07XHJcbi8vIOaWh+Wtl+aNouihjFxyXG5mdW5jdGlvbiBkcmF3dGV4dCh0ZXh0LCBtYXhXaWR0aCkge1xyXG4gIGxldCB0ZXh0QXJyID0gdGV4dC5zcGxpdCgnJyk7XHJcbiAgbGV0IGxlbiA9IHRleHRBcnIubGVuZ3RoO1xyXG4gIC8vIOS4iuS4quiKgueCuVxyXG4gIGxldCBwcmV2aW91c05vZGUgPSAwO1xyXG4gIC8vIOiusOW9leiKgueCueWuveW6plxyXG4gIGxldCBub2RlV2lkdGggPSAwO1xyXG4gIC8vIOaWh+acrOaNouihjOaVsOe7hFxyXG4gIGxldCByb3dUZXh0ID0gW107XHJcbiAgLy8g5aaC5p6c5piv5a2X5q+N77yM5L6n5L+d5a2Y6ZW/5bqmXHJcbiAgbGV0IGxldHRlcldpZHRoID0gMDtcclxuICAvLyDmsYnlrZflrr3luqZcclxuICBsZXQgY2hpbmVzZVdpZHRoID0gMTQ7XHJcbiAgLy8gb3RoZXJGb2505a695bqmXHJcbiAgbGV0IG90aGVyV2lkdGggPSA3O1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgIGlmICgvW1xcdTRlMDAtXFx1OWZhNV18W1xcdUZFMzAtXFx1RkZBMF0vZy50ZXN0KHRleHRBcnJbaV0pKSB7XHJcbiAgICAgIGlmIChsZXR0ZXJXaWR0aCA+IDApIHtcclxuICAgICAgICBpZiAobm9kZVdpZHRoICsgY2hpbmVzZVdpZHRoICsgbGV0dGVyV2lkdGggKiBvdGhlcldpZHRoID4gbWF4V2lkdGgpIHtcclxuICAgICAgICAgIHJvd1RleHQucHVzaCh7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgY29udGVudDogdGV4dC5zdWJzdHJpbmcocHJldmlvdXNOb2RlLCBpKSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcHJldmlvdXNOb2RlID0gaTtcclxuICAgICAgICAgIG5vZGVXaWR0aCA9IGNoaW5lc2VXaWR0aDtcclxuICAgICAgICAgIGxldHRlcldpZHRoID0gMDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbm9kZVdpZHRoICs9IGNoaW5lc2VXaWR0aCArIGxldHRlcldpZHRoICogb3RoZXJXaWR0aDtcclxuICAgICAgICAgIGxldHRlcldpZHRoID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG5vZGVXaWR0aCArIGNoaW5lc2VXaWR0aCA+IG1heFdpZHRoKSB7XHJcbiAgICAgICAgICByb3dUZXh0LnB1c2goe1xyXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRleHQuc3Vic3RyaW5nKHByZXZpb3VzTm9kZSwgaSksXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHByZXZpb3VzTm9kZSA9IGk7XHJcbiAgICAgICAgICBub2RlV2lkdGggPSBjaGluZXNlV2lkdGg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5vZGVXaWR0aCArPSBjaGluZXNlV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoL1xcbi9nLnRlc3QodGV4dEFycltpXSkpIHtcclxuICAgICAgICByb3dUZXh0LnB1c2goe1xyXG4gICAgICAgICAgdHlwZTogJ2JyZWFrJyxcclxuICAgICAgICAgIGNvbnRlbnQ6IHRleHQuc3Vic3RyaW5nKHByZXZpb3VzTm9kZSwgaSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcHJldmlvdXNOb2RlID0gaSArIDE7XHJcbiAgICAgICAgbm9kZVdpZHRoID0gMDtcclxuICAgICAgICBsZXR0ZXJXaWR0aCA9IDA7XHJcbiAgICAgIH0gZWxzZSBpZiAodGV4dEFycltpXSA9PSAnXFxcXCcgJiYgdGV4dEFycltpICsgMV0gPT0gJ24nKSB7XHJcbiAgICAgICAgcm93VGV4dC5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdicmVhaycsXHJcbiAgICAgICAgICBjb250ZW50OiB0ZXh0LnN1YnN0cmluZyhwcmV2aW91c05vZGUsIGkpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHByZXZpb3VzTm9kZSA9IGkgKyAyO1xyXG4gICAgICAgIG5vZGVXaWR0aCA9IDA7XHJcbiAgICAgICAgbGV0dGVyV2lkdGggPSAwO1xyXG4gICAgICB9IGVsc2UgaWYgKC9bYS16QS1aMC05XS9nLnRlc3QodGV4dEFycltpXSkpIHtcclxuICAgICAgICBsZXR0ZXJXaWR0aCArPSAxO1xyXG4gICAgICAgIGlmIChub2RlV2lkdGggKyBsZXR0ZXJXaWR0aCAqIG90aGVyV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgcm93VGV4dC5wdXNoKHtcclxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgICBjb250ZW50OiB0ZXh0LnN1YnN0cmluZyhwcmV2aW91c05vZGUsIGkgKyAxIC0gbGV0dGVyV2lkdGgpLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBwcmV2aW91c05vZGUgPSBpICsgMSAtIGxldHRlcldpZHRoO1xyXG4gICAgICAgICAgbm9kZVdpZHRoID0gbGV0dGVyV2lkdGggKiBvdGhlcldpZHRoO1xyXG4gICAgICAgICAgbGV0dGVyV2lkdGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAobm9kZVdpZHRoICsgb3RoZXJXaWR0aCA+IG1heFdpZHRoKSB7XHJcbiAgICAgICAgICByb3dUZXh0LnB1c2goe1xyXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRleHQuc3Vic3RyaW5nKHByZXZpb3VzTm9kZSwgaSksXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHByZXZpb3VzTm9kZSA9IGk7XHJcbiAgICAgICAgICBub2RlV2lkdGggPSBvdGhlcldpZHRoO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBub2RlV2lkdGggKz0gb3RoZXJXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHByZXZpb3VzTm9kZSA8IGxlbikge1xyXG4gICAgcm93VGV4dC5wdXNoKHtcclxuICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICBjb250ZW50OiB0ZXh0LnN1YnN0cmluZyhwcmV2aW91c05vZGUsIGxlbiksXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIHJvd1RleHQ7XHJcbn1cclxuLy8g5piv5ZCm5pu05paw5by556qXXHJcbmZ1bmN0aW9uIHVwZGF0ZVBvcHVwKGRhdGEsIGNhbGxiYWNrKSB7XHJcbiAgLy8g5by556qX6YGu572p5bGCXHJcbiAgbGV0IG1hc2tMYXllciA9IG5ldyBwbHVzLm5hdGl2ZU9iai5WaWV3KCdtYXNrTGF5ZXInLCB7XHJcbiAgICAvL+WFiOWIm+W7uumBrue9qeWxglxyXG4gICAgdG9wOiAnMHB4JyxcclxuICAgIGxlZnQ6ICcwcHgnLFxyXG4gICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwLjUpJyxcclxuICB9KTtcclxuXHJcbiAgLy8g5Lul5LiL5Li66K6h566X6I+c5Y2V55qEbnZpZXfnu5jliLbluIPlsYDvvIzkuLrlm7rlrprnrpfms5XvvIzkvb/nlKjogIXml6DlhbPlhbPlv4NcclxuICBjb25zdCBzY3JlZW5XaWR0aCA9IHBsdXMuc2NyZWVuLnJlc29sdXRpb25XaWR0aDtcclxuICBjb25zdCBzY3JlZW5IZWlnaHQgPSBwbHVzLnNjcmVlbi5yZXNvbHV0aW9uSGVpZ2h0O1xyXG4gIC8v5by556qX5a655Zmo5a695bqmXHJcbiAgY29uc3QgcG9wdXBWaWV3V2lkdGggPSBzY3JlZW5XaWR0aCAqIDAuNztcclxuICAvLyDlvLnnqpflrrnlmajnmoRQYWRkaW5nXHJcbiAgY29uc3Qgdmlld0NvbnRlbnRQYWRkaW5nID0gMjA7XHJcbiAgLy8g5by556qX5a655Zmo55qE5a695bqmXHJcbiAgY29uc3Qgdmlld0NvbnRlbnRXaWR0aCA9IHBhcnNlSW50KHBvcHVwVmlld1dpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nICogMik7XHJcbiAgLy8g5o+P6L+w55qE5YiX6KGoXHJcbiAgY29uc3QgZGVzY3JpcHRpb25MaXN0ID0gZHJhd3RleHQoZGF0YS52ZXJzaW9uSW5mbywgdmlld0NvbnRlbnRXaWR0aCk7XHJcbiAgLy8g5by556qX5a655Zmo6auY5bqmXHJcbiAgbGV0IHBvcHVwVmlld0hlaWdodCA9IDgwICsgMjAgKyAyMCArIDkwICsgMTA7XHJcblxyXG4gIGxldCBwb3B1cFZpZXdDb250ZW50TGlzdCA9IFtcclxuICAgIHtcclxuICAgICAgc3JjOiAkaWNvblVybCxcclxuICAgICAgaWQ6ICdsb2dvJyxcclxuICAgICAgdGFnOiAnaW1nJyxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICB0b3A6ICcwcHgnLFxyXG4gICAgICAgIGxlZnQ6IChwb3B1cFZpZXdXaWR0aCAtIDEyNCkgLyAyICsgJ3B4JyxcclxuICAgICAgICB3aWR0aDogJzEyNHB4JyxcclxuICAgICAgICBoZWlnaHQ6ICc4MHB4JyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICBpZDogJ3RpdGxlJyxcclxuICAgICAgdGV4dDogJ+WPkeeOsOaWsOeJiOacrCcgKyBkYXRhLnZlcnNpb25OYW1lLFxyXG4gICAgICB0ZXh0U3R5bGVzOiB7XHJcbiAgICAgICAgc2l6ZTogJzE4cHgnLFxyXG4gICAgICAgIGNvbG9yOiAnIzMzMycsXHJcbiAgICAgICAgd2VpZ2h0OiAnYm9sZCcsXHJcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgdG9wOiAnOTBweCcsXHJcbiAgICAgICAgbGVmdDogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICB3aWR0aDogdmlld0NvbnRlbnRXaWR0aCArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgY29uc3QgdGV4dEhlaWdodCA9IDE4O1xyXG4gIGxldCBjb250ZW50VG9wID0gMTMwO1xyXG4gIGRlc2NyaXB0aW9uTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICBwb3B1cFZpZXdIZWlnaHQgKz0gdGV4dEhlaWdodDtcclxuICAgICAgY29udGVudFRvcCArPSB0ZXh0SGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgcG9wdXBWaWV3Q29udGVudExpc3QucHVzaCh7XHJcbiAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICBpZDogJ2NvbnRlbnQnICsgaW5kZXggKyAxLFxyXG4gICAgICB0ZXh0OiBpdGVtLmNvbnRlbnQsXHJcbiAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICBzaXplOiAnMTRweCcsXHJcbiAgICAgICAgY29sb3I6ICcjNjY2JyxcclxuICAgICAgICBsaW5lU3BhY2luZzogJzUwJScsXHJcbiAgICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICB0b3A6IGNvbnRlbnRUb3AgKyAncHgnLFxyXG4gICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgd2lkdGg6IHZpZXdDb250ZW50V2lkdGggKyAncHgnLFxyXG4gICAgICAgIGhlaWdodDogdGV4dEhlaWdodCArICdweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIGlmIChpdGVtLnR5cGUgPT0gJ2JyZWFrJykge1xyXG4gICAgICBjb250ZW50VG9wICs9IDEwO1xyXG4gICAgICBwb3B1cFZpZXdIZWlnaHQgKz0gMTA7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGlmIChkYXRhLnVwZGF0ZVR5cGUgPT0gJ2ZvcmNpYmx5Jykge1xyXG4gICAgcG9wdXBWaWV3Q29udGVudExpc3QucHVzaCh7XHJcbiAgICAgIHRhZzogJ3JlY3QnLCAvL+e7mOWItuW6lei+ueaMiemSrlxyXG4gICAgICByZWN0U3R5bGVzOiB7XHJcbiAgICAgICAgcmFkaXVzOiAnNnB4JyxcclxuICAgICAgICBjb2xvcjogJG1haW5Db2xvcixcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgbGVmdDogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICB3aWR0aDogdmlld0NvbnRlbnRXaWR0aCArICdweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHBvcHVwVmlld0NvbnRlbnRMaXN0LnB1c2goe1xyXG4gICAgICB0YWc6ICdmb250JyxcclxuICAgICAgaWQ6ICdjb25maXJtVGV4dCcsXHJcbiAgICAgIHRleHQ6ICfnq4vljbPljYfnuqcnLFxyXG4gICAgICB0ZXh0U3R5bGVzOiB7XHJcbiAgICAgICAgc2l6ZTogJzE0cHgnLFxyXG4gICAgICAgIGNvbG9yOiAnI0ZGRicsXHJcbiAgICAgICAgbGluZVNwYWNpbmc6ICcwJScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgYm90dG9tOiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgd2lkdGg6IHZpZXdDb250ZW50V2lkdGggKyAncHgnLFxyXG4gICAgICAgIGhlaWdodDogJzMwcHgnLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIOe7mOWItuW6lei+ueaMiemSrlxyXG4gICAgcG9wdXBWaWV3Q29udGVudExpc3QucHVzaCh7XHJcbiAgICAgIHRhZzogJ3JlY3QnLFxyXG4gICAgICBpZDogJ2NhbmNlbEJveCcsXHJcbiAgICAgIHJlY3RTdHlsZXM6IHtcclxuICAgICAgICByYWRpdXM6ICczcHgnLFxyXG4gICAgICAgIGJvcmRlckNvbG9yOiAnI2YxZjFmMScsXHJcbiAgICAgICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIHdpZHRoOiAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgcG9wdXBWaWV3Q29udGVudExpc3QucHVzaCh7XHJcbiAgICAgIHRhZzogJ3JlY3QnLFxyXG4gICAgICBpZDogJ2NvbmZpcm1Cb3gnLFxyXG4gICAgICByZWN0U3R5bGVzOiB7XHJcbiAgICAgICAgcmFkaXVzOiAnM3B4JyxcclxuICAgICAgICBjb2xvcjogJG1haW5Db2xvcixcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgbGVmdDpcclxuICAgICAgICAgICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDIgK1xyXG4gICAgICAgICAgdmlld0NvbnRlbnRQYWRkaW5nICogMiArXHJcbiAgICAgICAgICAncHgnLFxyXG4gICAgICAgIHdpZHRoOiAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgcG9wdXBWaWV3Q29udGVudExpc3QucHVzaCh7XHJcbiAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICBpZDogJ2NhbmNlbFRleHQnLFxyXG4gICAgICB0ZXh0OiAn5pqC5LiN5Y2H57qnJyxcclxuICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgIHNpemU6ICcxNHB4JyxcclxuICAgICAgICBjb2xvcjogJyM2NjYnLFxyXG4gICAgICAgIGxpbmVTcGFjaW5nOiAnMCUnLFxyXG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICBsZWZ0OiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgIHdpZHRoOiAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgcG9wdXBWaWV3Q29udGVudExpc3QucHVzaCh7XHJcbiAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICBpZDogJ2NvbmZpcm1UZXh0JyxcclxuICAgICAgdGV4dDogJ+eri+WNs+WNh+e6pycsXHJcbiAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICBzaXplOiAnMTRweCcsXHJcbiAgICAgICAgY29sb3I6ICcjRkZGJyxcclxuICAgICAgICBsaW5lU3BhY2luZzogJzAlJyxcclxuICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICBib3R0b206IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgbGVmdDpcclxuICAgICAgICAgICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDIgK1xyXG4gICAgICAgICAgdmlld0NvbnRlbnRQYWRkaW5nICogMiArXHJcbiAgICAgICAgICAncHgnLFxyXG4gICAgICAgIHdpZHRoOiAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyDlvLnnqpflhoXlrrlcclxuICBsZXQgcG9wdXBWaWV3ID0gbmV3IHBsdXMubmF0aXZlT2JqLlZpZXcoJ3BvcHVwVmlldycsIHtcclxuICAgIC8v5Yib5bu65bqV6YOo5Zu+5qCH6I+c5Y2VXHJcbiAgICB0YWc6ICdyZWN0JyxcclxuICAgIHRvcDogKHNjcmVlbkhlaWdodCAtIHBvcHVwVmlld0hlaWdodCkgLyAyICsgJ3B4JyxcclxuICAgIGxlZnQ6ICcxNSUnLFxyXG4gICAgaGVpZ2h0OiBwb3B1cFZpZXdIZWlnaHQgKyAncHgnLFxyXG4gICAgd2lkdGg6ICc3MCUnLFxyXG4gIH0pO1xyXG4gIC8vIOe7mOWItueZveiJsuiDjOaZr1xyXG4gIHBvcHVwVmlldy5kcmF3UmVjdChcclxuICAgIHtcclxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcclxuICAgICAgcmFkaXVzOiAnOHB4JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRvcDogJzQwcHgnLFxyXG4gICAgICBoZWlnaHQ6IHBvcHVwVmlld0hlaWdodCAtIDQwICsgJ3B4JyxcclxuICAgIH1cclxuICApO1xyXG5cclxuICBwb3B1cFZpZXcuZHJhdyhwb3B1cFZpZXdDb250ZW50TGlzdCk7XHJcbiAgcG9wdXBWaWV3LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcclxuICAgIGxldCBtYXhUb3AgPSBwb3B1cFZpZXdIZWlnaHQgLSB2aWV3Q29udGVudFBhZGRpbmc7XHJcbiAgICBsZXQgbWF4TGVmdCA9IHBvcHVwVmlld1dpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nO1xyXG4gICAgbGV0IGJ1dHRvbldpZHRoID0gKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMjtcclxuICAgIGlmIChlLmNsaWVudFkgPiBtYXhUb3AgLSAzMCAmJiBlLmNsaWVudFkgPCBtYXhUb3ApIHtcclxuICAgICAgaWYgKGRhdGEudXBkYXRlVHlwZSA9PSAnZm9yY2libHknKSB7XHJcbiAgICAgICAgaWYgKGUuY2xpZW50WCA+IHZpZXdDb250ZW50UGFkZGluZyAmJiBlLmNsaWVudFggPCBtYXhMZWZ0KSB7XHJcbiAgICAgICAgICAvLyDnq4vljbPljYfnuqdcclxuICAgICAgICAgIG1hc2tMYXllci5oaWRlKCk7XHJcbiAgICAgICAgICBwb3B1cFZpZXcuaGlkZSgpO1xyXG4gICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8g5pqC5LiN5Y2H57qnXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZS5jbGllbnRYID4gdmlld0NvbnRlbnRQYWRkaW5nICYmXHJcbiAgICAgICAgICBlLmNsaWVudFggPCBtYXhMZWZ0IC0gYnV0dG9uV2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmdcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG1hc2tMYXllci5oaWRlKCk7XHJcbiAgICAgICAgICBwb3B1cFZpZXcuaGlkZSgpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZS5jbGllbnRYID4gbWF4TGVmdCAtIGJ1dHRvbldpZHRoICYmIGUuY2xpZW50WCA8IG1heExlZnQpIHtcclxuICAgICAgICAgIC8vIOeri+WNs+WNh+e6p1xyXG4gICAgICAgICAgbWFza0xheWVyLmhpZGUoKTtcclxuICAgICAgICAgIHBvcHVwVmlldy5oaWRlKCk7XHJcbiAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChkYXRhLnVwZGF0ZVR5cGUgPT0gJ3NvbGljaXQnKSB7XHJcbiAgICAvLyDngrnlh7vpga7nvanlsYJcclxuICAgIG1hc2tMYXllci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgLy/lpITnkIbpga7nvanlsYLngrnlh7tcclxuICAgICAgbWFza0xheWVyLmhpZGUoKTtcclxuICAgICAgcG9wdXBWaWV3LmhpZGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyDmmL7npLrlvLnnqpdcclxuICBtYXNrTGF5ZXIuc2hvdygpO1xyXG4gIHBvcHVwVmlldy5zaG93KCk7XHJcbn1cclxuLy8g5paH5Lu25LiL6L2955qE5by556qX57uY5Zu+XHJcbmZ1bmN0aW9uIGRvd25sb2FkUG9wdXBEcmF3aW5nKGRhdGEpIHtcclxuICAvLyDku6XkuIvkuLrorqHnrpfoj5zljZXnmoRudmlld+e7mOWItuW4g+WxgO+8jOS4uuWbuuWumueul+azle+8jOS9v+eUqOiAheaXoOWFs+WFs+W/g1xyXG4gIGNvbnN0IHNjcmVlbldpZHRoID0gcGx1cy5zY3JlZW4ucmVzb2x1dGlvbldpZHRoO1xyXG4gIGNvbnN0IHNjcmVlbkhlaWdodCA9IHBsdXMuc2NyZWVuLnJlc29sdXRpb25IZWlnaHQ7XHJcbiAgLy/lvLnnqpflrrnlmajlrr3luqZcclxuICBjb25zdCBwb3B1cFZpZXdXaWR0aCA9IHNjcmVlbldpZHRoICogMC43O1xyXG4gIC8vIOW8ueeql+WuueWZqOeahFBhZGRpbmdcclxuICBjb25zdCB2aWV3Q29udGVudFBhZGRpbmcgPSAyMDtcclxuICAvLyDlvLnnqpflrrnlmajnmoTlrr3luqZcclxuICBjb25zdCB2aWV3Q29udGVudFdpZHRoID0gcG9wdXBWaWV3V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcgKiAyO1xyXG4gIC8vIOW8ueeql+WuueWZqOmrmOW6plxyXG4gIGxldCBwb3B1cFZpZXdIZWlnaHQgPSB2aWV3Q29udGVudFBhZGRpbmcgKiAzICsgNjA7XHJcbiAgbGV0IHByb2dyZXNzVGlwID0gZGF0YS5wcm9ncmVzc1RpcCB8fCAn5YeG5aSH5LiL6L29Li4uJztcclxuICBsZXQgY29udGVudFRleHQgPSBkYXRhLmNvbnRlbnRUZXh0IHx8ICfmraPlnKjkuLrmgqjmm7TmlrDvvIzor7fogJDlv4PnrYnlvoUnO1xyXG4gIGxldCBlbGVtZW50TGlzdCA9IFtcclxuICAgIHtcclxuICAgICAgdGFnOiAncmVjdCcsIC8v6IOM5pmv6ImyXHJcbiAgICAgIGNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICAgIHJlY3RTdHlsZXM6IHtcclxuICAgICAgICByYWRpdXM6ICc4cHgnLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGFnOiAnZm9udCcsXHJcbiAgICAgIGlkOiAndGl0bGUnLFxyXG4gICAgICB0ZXh0OiAn5Y2H57qnQVBQJyxcclxuICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgIHNpemU6ICcxNnB4JyxcclxuICAgICAgICBjb2xvcjogJyMzMzMnLFxyXG4gICAgICAgIHdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxyXG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgIHRvcDogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICBpZDogJ2NvbnRlbnQnLFxyXG4gICAgICB0ZXh0OiBjb250ZW50VGV4dCxcclxuICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgIHNpemU6ICcxNHB4JyxcclxuICAgICAgICBjb2xvcjogJyMzMzMnLFxyXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxyXG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgIHRvcDogdmlld0NvbnRlbnRQYWRkaW5nICogMiArIDMwICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6ICcyMHB4JyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgXTtcclxuICAvLyDmmK/lkKbmnInov5vluqbmnaFcclxuICBpZiAoZGF0YS5wcm9ncmVzcykge1xyXG4gICAgcG9wdXBWaWV3SGVpZ2h0ICs9IHZpZXdDb250ZW50UGFkZGluZyArIDQwO1xyXG4gICAgZWxlbWVudExpc3QgPSBlbGVtZW50TGlzdC5jb25jYXQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGFnOiAnZm9udCcsXHJcbiAgICAgICAgaWQ6ICdwcm9ncmVzc1ZhbHVlJyxcclxuICAgICAgICB0ZXh0OiBwcm9ncmVzc1RpcCxcclxuICAgICAgICB0ZXh0U3R5bGVzOiB7XHJcbiAgICAgICAgICBzaXplOiAnMTRweCcsXHJcbiAgICAgICAgICBjb2xvcjogJG1haW5Db2xvcixcclxuICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIHRvcDogdmlld0NvbnRlbnRQYWRkaW5nICogNCArIDIwICsgJ3B4JyxcclxuICAgICAgICAgIGhlaWdodDogJzMwcHgnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0YWc6ICdyZWN0JywgLy/nu5jliLbov5vluqbmnaHog4zmma9cclxuICAgICAgICBpZDogJ3Byb2dyZXNzQmcnLFxyXG4gICAgICAgIHJlY3RTdHlsZXM6IHtcclxuICAgICAgICAgIHJhZGl1czogJzRweCcsXHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmMWYxZjEnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIHRvcDogdmlld0NvbnRlbnRQYWRkaW5nICogNCArIDYwICsgJ3B4JyxcclxuICAgICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICB3aWR0aDogdmlld0NvbnRlbnRXaWR0aCArICdweCcsXHJcbiAgICAgICAgICBoZWlnaHQ6ICc4cHgnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9XHJcbiAgaWYgKGRhdGEuYnV0dG9uTnVtID09IDIpIHtcclxuICAgIHBvcHVwVmlld0hlaWdodCArPSB2aWV3Q29udGVudFBhZGRpbmcgKyAzMDtcclxuICAgIGVsZW1lbnRMaXN0ID0gZWxlbWVudExpc3QuY29uY2F0KFtcclxuICAgICAge1xyXG4gICAgICAgIHRhZzogJ3JlY3QnLCAvL+e7mOWItuW6lei+ueaMiemSrlxyXG4gICAgICAgIHJlY3RTdHlsZXM6IHtcclxuICAgICAgICAgIHJhZGl1czogJzNweCcsXHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmMWYxZjEnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICB3aWR0aDogKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArICdweCcsXHJcbiAgICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGFnOiAncmVjdCcsIC8v57uY5Yi25bqV6L655oyJ6ZKuXHJcbiAgICAgICAgcmVjdFN0eWxlczoge1xyXG4gICAgICAgICAgcmFkaXVzOiAnM3B4JyxcclxuICAgICAgICAgIGNvbG9yOiAkbWFpbkNvbG9yLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICAgIGxlZnQ6XHJcbiAgICAgICAgICAgICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDIgK1xyXG4gICAgICAgICAgICB2aWV3Q29udGVudFBhZGRpbmcgKiAyICtcclxuICAgICAgICAgICAgJ3B4JyxcclxuICAgICAgICAgIHdpZHRoOiAodmlld0NvbnRlbnRXaWR0aCAtIHZpZXdDb250ZW50UGFkZGluZykgLyAyICsgJ3B4JyxcclxuICAgICAgICAgIGhlaWdodDogJzMwcHgnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0YWc6ICdmb250JyxcclxuICAgICAgICBpZDogJ2NhbmNlbFRleHQnLFxyXG4gICAgICAgIHRleHQ6ICflj5bmtojkuIvovb0nLFxyXG4gICAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICAgIHNpemU6ICcxNHB4JyxcclxuICAgICAgICAgIGNvbG9yOiAnIzY2NicsXHJcbiAgICAgICAgICBsaW5lU3BhY2luZzogJzAlJyxcclxuICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICB3aWR0aDogKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArICdweCcsXHJcbiAgICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGFnOiAnZm9udCcsXHJcbiAgICAgICAgaWQ6ICdjb25maXJtVGV4dCcsXHJcbiAgICAgICAgdGV4dDogJ+WQjuWPsOS4i+i9vScsXHJcbiAgICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgICAgc2l6ZTogJzE0cHgnLFxyXG4gICAgICAgICAgY29sb3I6ICcjRkZGJyxcclxuICAgICAgICAgIGxpbmVTcGFjaW5nOiAnMCUnLFxyXG4gICAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgICAgYm90dG9tOiB2aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgICAgbGVmdDpcclxuICAgICAgICAgICAgKHZpZXdDb250ZW50V2lkdGggLSB2aWV3Q29udGVudFBhZGRpbmcpIC8gMiArXHJcbiAgICAgICAgICAgIHZpZXdDb250ZW50UGFkZGluZyAqIDIgK1xyXG4gICAgICAgICAgICAncHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICh2aWV3Q29udGVudFdpZHRoIC0gdmlld0NvbnRlbnRQYWRkaW5nKSAvIDIgKyAncHgnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuICBpZiAoZGF0YS5idXR0b25OdW0gPT0gMSkge1xyXG4gICAgcG9wdXBWaWV3SGVpZ2h0ICs9IHZpZXdDb250ZW50UGFkZGluZyArIDQwO1xyXG4gICAgZWxlbWVudExpc3QgPSBlbGVtZW50TGlzdC5jb25jYXQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGFnOiAncmVjdCcsIC8v57uY5Yi25bqV6L655oyJ6ZKuXHJcbiAgICAgICAgcmVjdFN0eWxlczoge1xyXG4gICAgICAgICAgcmFkaXVzOiAnNnB4JyxcclxuICAgICAgICAgIGNvbG9yOiAkbWFpbkNvbG9yLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICB3aWR0aDogdmlld0NvbnRlbnRXaWR0aCArICdweCcsXHJcbiAgICAgICAgICBoZWlnaHQ6ICc0MHB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGFnOiAnZm9udCcsXHJcbiAgICAgICAgaWQ6ICdjb25maXJtVGV4dCcsXHJcbiAgICAgICAgdGV4dDogJ+WFs+mXrScsXHJcbiAgICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgICAgc2l6ZTogJzE0cHgnLFxyXG4gICAgICAgICAgY29sb3I6ICcjRkZGJyxcclxuICAgICAgICAgIGxpbmVTcGFjaW5nOiAnMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGJvdHRvbTogdmlld0NvbnRlbnRQYWRkaW5nICsgJ3B4JyxcclxuICAgICAgICAgIGxlZnQ6IHZpZXdDb250ZW50UGFkZGluZyArICdweCcsXHJcbiAgICAgICAgICB3aWR0aDogdmlld0NvbnRlbnRXaWR0aCArICdweCcsXHJcbiAgICAgICAgICBoZWlnaHQ6ICc0MHB4JyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXSk7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBwb3B1cFZpZXdIZWlnaHQ6IHBvcHVwVmlld0hlaWdodCxcclxuICAgIHBvcHVwVmlld1dpZHRoOiBwb3B1cFZpZXdXaWR0aCxcclxuICAgIHNjcmVlbkhlaWdodDogc2NyZWVuSGVpZ2h0LFxyXG4gICAgdmlld0NvbnRlbnRXaWR0aDogdmlld0NvbnRlbnRXaWR0aCxcclxuICAgIHZpZXdDb250ZW50UGFkZGluZzogdmlld0NvbnRlbnRQYWRkaW5nLFxyXG4gICAgZWxlbWVudExpc3Q6IGVsZW1lbnRMaXN0LFxyXG4gIH07XHJcbn1cclxuLy8g5paH5Lu25LiL6L2955qE5by556qXXHJcbmZ1bmN0aW9uIGRvd25sb2FkUG9wdXAoZGF0YSkge1xyXG4gIC8vIOW8ueeql+mBrue9qeWxglxyXG4gIGxldCBtYXNrTGF5ZXIgPSBuZXcgcGx1cy5uYXRpdmVPYmouVmlldygnbWFza0xheWVyJywge1xyXG4gICAgLy/lhYjliJvlu7rpga7nvanlsYJcclxuICAgIHRvcDogJzBweCcsXHJcbiAgICBsZWZ0OiAnMHB4JyxcclxuICAgIGhlaWdodDogJzEwMCUnLFxyXG4gICAgd2lkdGg6ICcxMDAlJyxcclxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMC41KScsXHJcbiAgfSk7XHJcbiAgbGV0IHBvcHVwVmlld0RhdGEgPSBkb3dubG9hZFBvcHVwRHJhd2luZyhkYXRhKTtcclxuICAvLyDlvLnnqpflhoXlrrlcclxuICBsZXQgcG9wdXBWaWV3ID0gbmV3IHBsdXMubmF0aXZlT2JqLlZpZXcoJ3BvcHVwVmlldycsIHtcclxuICAgIC8v5Yib5bu65bqV6YOo5Zu+5qCH6I+c5Y2VXHJcbiAgICB0YWc6ICdyZWN0JyxcclxuICAgIHRvcDpcclxuICAgICAgKHBvcHVwVmlld0RhdGEuc2NyZWVuSGVpZ2h0IC0gcG9wdXBWaWV3RGF0YS5wb3B1cFZpZXdIZWlnaHQpIC8gMiArICdweCcsXHJcbiAgICBsZWZ0OiAnMTUlJyxcclxuICAgIGhlaWdodDogcG9wdXBWaWV3RGF0YS5wb3B1cFZpZXdIZWlnaHQgKyAncHgnLFxyXG4gICAgd2lkdGg6ICc3MCUnLFxyXG4gIH0pO1xyXG4gIGxldCBwcm9ncmVzc1ZhbHVlID0gMDtcclxuICBsZXQgcHJvZ3Jlc3NUaXAgPSAwO1xyXG4gIGxldCBjb250ZW50VGV4dCA9IDA7XHJcbiAgbGV0IGJ1dHRvbk51bSA9IDI7XHJcbiAgaWYgKGRhdGEuYnV0dG9uTnVtID49IDApIHtcclxuICAgIGJ1dHRvbk51bSA9IGRhdGEuYnV0dG9uTnVtO1xyXG4gIH1cclxuICBwb3B1cFZpZXcuZHJhdyhwb3B1cFZpZXdEYXRhLmVsZW1lbnRMaXN0KTtcclxuICBsZXQgY2FsbGJhY2tEYXRhID0ge1xyXG4gICAgY2hhbmdlOiBmdW5jdGlvbiAocmVzKSB7XHJcbiAgICAgIGxldCBwcm9ncmVzc0VsZW1lbnQgPSBbXTtcclxuICAgICAgaWYgKHJlcy5wcm9ncmVzc1ZhbHVlKSB7XHJcbiAgICAgICAgcHJvZ3Jlc3NWYWx1ZSA9IHJlcy5wcm9ncmVzc1ZhbHVlO1xyXG4gICAgICAgIC8vIOe7mOWItui/m+W6puadoVxyXG4gICAgICAgIHByb2dyZXNzRWxlbWVudC5wdXNoKHtcclxuICAgICAgICAgIHRhZzogJ3JlY3QnLCAvL+e7mOWItui/m+W6puadoeiDjOaZr1xyXG4gICAgICAgICAgaWQ6ICdwcm9ncmVzc1ZhbHVlQmcnLFxyXG4gICAgICAgICAgcmVjdFN0eWxlczoge1xyXG4gICAgICAgICAgICByYWRpdXM6ICc0cHgnLFxyXG4gICAgICAgICAgICBjb2xvcjogJG1haW5Db2xvcixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgICAgICB0b3A6IHBvcHVwVmlld0RhdGEudmlld0NvbnRlbnRQYWRkaW5nICogNCArIDYwICsgJ3B4JyxcclxuICAgICAgICAgICAgbGVmdDogcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmcgKyAncHgnLFxyXG4gICAgICAgICAgICB3aWR0aDpcclxuICAgICAgICAgICAgICBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50V2lkdGggKiAocmVzLnByb2dyZXNzVmFsdWUgLyAxMDApICsgJ3B4JyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAnOHB4JyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcy5wcm9ncmVzc1RpcCkge1xyXG4gICAgICAgIHByb2dyZXNzVGlwID0gcmVzLnByb2dyZXNzVGlwO1xyXG4gICAgICAgIHByb2dyZXNzRWxlbWVudC5wdXNoKHtcclxuICAgICAgICAgIHRhZzogJ2ZvbnQnLFxyXG4gICAgICAgICAgaWQ6ICdwcm9ncmVzc1ZhbHVlJyxcclxuICAgICAgICAgIHRleHQ6IHJlcy5wcm9ncmVzc1RpcCxcclxuICAgICAgICAgIHRleHRTdHlsZXM6IHtcclxuICAgICAgICAgICAgc2l6ZTogJzE0cHgnLFxyXG4gICAgICAgICAgICBjb2xvcjogJG1haW5Db2xvcixcclxuICAgICAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgICAgdG9wOiBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50UGFkZGluZyAqIDQgKyAyMCArICdweCcsXHJcbiAgICAgICAgICAgIGhlaWdodDogJzMwcHgnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzLmNvbnRlbnRUZXh0KSB7XHJcbiAgICAgICAgY29udGVudFRleHQgPSByZXMuY29udGVudFRleHQ7XHJcbiAgICAgICAgcHJvZ3Jlc3NFbGVtZW50LnB1c2goe1xyXG4gICAgICAgICAgdGFnOiAnZm9udCcsXHJcbiAgICAgICAgICBpZDogJ2NvbnRlbnQnLFxyXG4gICAgICAgICAgdGV4dDogcmVzLmNvbnRlbnRUZXh0LFxyXG4gICAgICAgICAgdGV4dFN0eWxlczoge1xyXG4gICAgICAgICAgICBzaXplOiAnMTZweCcsXHJcbiAgICAgICAgICAgIGNvbG9yOiAnIzMzMycsXHJcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICAgIHRvcDogcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmcgKiAyICsgMzAgKyAncHgnLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICczMHB4JyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcy5idXR0b25OdW0gPj0gMCAmJiBidXR0b25OdW0gIT0gcmVzLmJ1dHRvbk51bSkge1xyXG4gICAgICAgIGJ1dHRvbk51bSA9IHJlcy5idXR0b25OdW07XHJcbiAgICAgICAgcG9wdXBWaWV3LnJlc2V0KCk7XHJcbiAgICAgICAgcG9wdXBWaWV3RGF0YSA9IGRvd25sb2FkUG9wdXBEcmF3aW5nKFxyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHByb2dyZXNzVmFsdWU6IHByb2dyZXNzVmFsdWUsXHJcbiAgICAgICAgICAgICAgcHJvZ3Jlc3NUaXA6IHByb2dyZXNzVGlwLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnRUZXh0OiBjb250ZW50VGV4dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVzXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICBsZXQgbmV3RWxlbWVudCA9IFtdO1xyXG4gICAgICAgIHBvcHVwVmlld0RhdGEuZWxlbWVudExpc3QubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGhhdmUgPSBmYWxzZTtcclxuICAgICAgICAgIHByb2dyZXNzRWxlbWVudC5mb3JFYWNoKChjaGlsZEl0ZW0sIGNoaWxkSW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0uaWQgPT0gY2hpbGRJdGVtLmlkKSB7XHJcbiAgICAgICAgICAgICAgaGF2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKCFoYXZlKSB7XHJcbiAgICAgICAgICAgIG5ld0VsZW1lbnQucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBwcm9ncmVzc0VsZW1lbnQgPSBuZXdFbGVtZW50LmNvbmNhdChwcm9ncmVzc0VsZW1lbnQpO1xyXG4gICAgICAgIHBvcHVwVmlldy5zZXRTdHlsZSh7XHJcbiAgICAgICAgICB0YWc6ICdyZWN0JyxcclxuICAgICAgICAgIHRvcDpcclxuICAgICAgICAgICAgKHBvcHVwVmlld0RhdGEuc2NyZWVuSGVpZ2h0IC0gcG9wdXBWaWV3RGF0YS5wb3B1cFZpZXdIZWlnaHQpIC8gMiArXHJcbiAgICAgICAgICAgICdweCcsXHJcbiAgICAgICAgICBsZWZ0OiAnMTUlJyxcclxuICAgICAgICAgIGhlaWdodDogcG9wdXBWaWV3RGF0YS5wb3B1cFZpZXdIZWlnaHQgKyAncHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICc3MCUnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBvcHVwVmlldy5kcmF3KHByb2dyZXNzRWxlbWVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcG9wdXBWaWV3LmRyYXcocHJvZ3Jlc3NFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNhbmNlbDogZnVuY3Rpb24gKCkge1xyXG4gICAgICBtYXNrTGF5ZXIuaGlkZSgpO1xyXG4gICAgICBwb3B1cFZpZXcuaGlkZSgpO1xyXG4gICAgfSxcclxuICB9O1xyXG4gIHBvcHVwVmlldy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICBsZXQgbWF4VG9wID1cclxuICAgICAgcG9wdXBWaWV3RGF0YS5wb3B1cFZpZXdIZWlnaHQgLSBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50UGFkZGluZztcclxuICAgIGxldCBtYXhMZWZ0ID1cclxuICAgICAgcG9wdXBWaWV3RGF0YS5wb3B1cFZpZXdXaWR0aCAtIHBvcHVwVmlld0RhdGEudmlld0NvbnRlbnRQYWRkaW5nO1xyXG4gICAgaWYgKGUuY2xpZW50WSA+IG1heFRvcCAtIDQwICYmIGUuY2xpZW50WSA8IG1heFRvcCkge1xyXG4gICAgICBpZiAoYnV0dG9uTnVtID09IDEpIHtcclxuICAgICAgICAvLyDljZXmjInpkq5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBlLmNsaWVudFggPiBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50UGFkZGluZyAmJlxyXG4gICAgICAgICAgZS5jbGllbnRYIDwgbWF4TGVmdFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgbWFza0xheWVyLmhpZGUoKTtcclxuICAgICAgICAgIHBvcHVwVmlldy5oaWRlKCk7XHJcbiAgICAgICAgICBjYWxsYmFja0RhdGEucmVib290KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKGJ1dHRvbk51bSA9PSAyKSB7XHJcbiAgICAgICAgLy8g5Y+M5oyJ6ZKuXHJcbiAgICAgICAgbGV0IGJ1dHRvbldpZHRoID1cclxuICAgICAgICAgIChwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50V2lkdGggLSBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50UGFkZGluZykgL1xyXG4gICAgICAgICAgMjtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBlLmNsaWVudFggPiBwb3B1cFZpZXdEYXRhLnZpZXdDb250ZW50UGFkZGluZyAmJlxyXG4gICAgICAgICAgZS5jbGllbnRYIDwgbWF4TGVmdCAtIGJ1dHRvbldpZHRoIC0gcG9wdXBWaWV3RGF0YS52aWV3Q29udGVudFBhZGRpbmdcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG1hc2tMYXllci5oaWRlKCk7XHJcbiAgICAgICAgICBwb3B1cFZpZXcuaGlkZSgpO1xyXG4gICAgICAgICAgY2FsbGJhY2tEYXRhLmNhbmNlbERvd25sb2FkKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlLmNsaWVudFggPiBtYXhMZWZ0IC0gYnV0dG9uV2lkdGggJiYgZS5jbGllbnRYIDwgbWF4TGVmdCkge1xyXG4gICAgICAgICAgbWFza0xheWVyLmhpZGUoKTtcclxuICAgICAgICAgIHBvcHVwVmlldy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgLy8g5pi+56S65by556qXXHJcbiAgbWFza0xheWVyLnNob3coKTtcclxuICBwb3B1cFZpZXcuc2hvdygpO1xyXG4gIC8vIOaUueWPmOi/m+W6puadoVxyXG4gIHJldHVybiBjYWxsYmFja0RhdGE7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGlzUHJvbXB0ID0gZmFsc2UpIHtcclxuICBnZXRDdXJyZW50Tm8oKHZlcnNpb25JbmZvKSA9PiB7XHJcbiAgICBjb21wb25lbnRDb25maWcuZ2V0U2VydmVyTm8odmVyc2lvbkluZm8sIGlzUHJvbXB0LCAocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICByZXMudmVyc2lvbkluZm8gPSByZXMuZGVzY3JpcHRpb247XHJcblxyXG4gICAgICAgIGlmIChyZXMudmVyc2lvbl9uYW1lID4gdmVyc2lvbkluZm8udmVyc2lvbk5hbWUpIHtcclxuICAgICAgICAgIHJlcy52ZXJzaW9uTmFtZSA9IHJlcy52ZXJzaW9uX25hbWU7XHJcbiAgICAgICAgICByZXMuZG93bmxvYWRVcmwgPSByZXMuZG93bmxvYWRfYXBrX3VybDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlcy52ZXJzaW9uX2tleSA+IHZlcnNpb25JbmZvLnZlcnNpb25Db2RlKSB7XHJcbiAgICAgICAgICAgIHJlcy52ZXJzaW9uTmFtZSA9IHJlcy52ZXJzaW9uX2tleTtcclxuICAgICAgICAgICAgcmVzLmRvd25sb2FkVXJsID0gcmVzLmRvd25sb2FkX3dndF91cmw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgaWYgKHJlcy51cGRhdGVUeXBlID09ICdmb3JjaWJseScgfHwgcmVzLnVwZGF0ZVR5cGUgPT0gJ3NpbGVudCcpIHtcclxuICAgICAgICAgIGdldERvd25sb2FkKHJlcyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXMudXBkYXRlVHlwZSA9PSAnc29saWNpdCcpIHtcclxuICAgICAgICAgIHVwZGF0ZVBvcHVwKHJlcywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBnZXREb3dubG9hZChyZXMpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///523\n"); /***/ }), /* 524 */ @@ -28113,7 +30243,7 @@ eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefaul /***/ (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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 72));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 74));\nvar _checkAPPupdate = __webpack_require__(/*! ../api/checkAPPupdate */ 525);\n/**** 此文件说明请看注释 *****/\n// 可以用自己项目的请求方法\n// 请求配置说明:https://ext.dcloud.net.cn/plugin?id=822\n\n/**** 结束 *****/\nvar platform = uni.getSystemInfoSync().platform;\nvar phoneInfo = uni.getSystemInfoSync();\nvar _default = {\n // 发起ajax请求获取服务端版本号\n getServerNo: function () {\n var _getServerNo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(version) {\n var isPrompt,\n callback,\n appleId,\n marketId,\n params,\n res,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n isPrompt = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;\n callback = _args.length > 2 ? _args[2] : undefined;\n if (!(platform != 'android')) {\n _context.next = 6;\n break;\n }\n appleId = 1549638327; //app的appleId\n plus.runtime.launchApplication({\n action: \"itms-apps://itunes.apple.com/cn/app/id\".concat(appleId, \"?mt=8\")\n }, function (e) {\n __f__(\"log\", 'Open system default browser failed: ' + e.message, \" at config/componentConfig.js:18\");\n });\n return _context.abrupt(\"return\");\n case 6:\n // let httpData = {\n // version: version.versionCode,\n // // 版本名称\n // versionName: version.versionName,\n // // setupPage参数说明(判断用户是不是从设置页面点击的更新,如果是设置页面点击的更新,有不要用静默更新了,不然用户点击没反应很奇怪的)\n // setupPage: isPrompt,\n // };\n // if (platform == 'android') {\n // httpData.type = 1101;\n // } else {\n // httpData.type = 1102;\n /* 接口入参说明\r\n * version: 应用当前版本号(已自动获取)\r\n * versionName: 应用当前版本名称(已自动获取)\r\n * type:平台(1101是安卓,1102是IOS)\r\n */\n /****************以下是示例*******************/\n // 可以用自己项目的请求方法(接口自己找后台要,插件不提供)\n marketId = 100;\n phoneInfo.brand = phoneInfo.brand.toLowerCase();\n _context.t0 = phoneInfo.brand;\n _context.next = _context.t0 === 'xiaomi' ? 11 : _context.t0 === 'huawei' ? 13 : _context.t0 === 'tengxun' ? 15 : _context.t0 === 'oppo' ? 17 : _context.t0 === 'vivo' ? 19 : _context.t0 === 'samsung' ? 21 : 23;\n break;\n case 11:\n marketId = 1;\n return _context.abrupt(\"break\", 25);\n case 13:\n marketId = 2;\n return _context.abrupt(\"break\", 25);\n case 15:\n marketId = 3;\n return _context.abrupt(\"break\", 25);\n case 17:\n marketId = 4;\n return _context.abrupt(\"break\", 25);\n case 19:\n marketId = 5;\n return _context.abrupt(\"break\", 25);\n case 21:\n marketId = 6;\n return _context.abrupt(\"break\", 25);\n case 23:\n marketId = 100;\n return _context.abrupt(\"break\", 25);\n case 25:\n __f__(\"log\", 'marketId', marketId, \" at config/componentConfig.js:73\");\n __f__(\"log\", 'phoneInfo.brand', phoneInfo.brand, \" at config/componentConfig.js:74\");\n params = {\n marketId: marketId,\n packageName: 'com.xiaofa.shopAdmin',\n currVersionKey: version\n };\n _context.next = 30;\n return (0, _checkAPPupdate.GetAPPversion)(params);\n case 30:\n res = _context.sent;\n if (res && res.status == 200) {\n if (res.data) {\n res.data.updateType = 'solicit';\n if (res.data.is_force_update) {\n res.updateType = 'forcibly';\n callback && callback(res.data);\n } else {\n callback && callback(res.data);\n }\n }\n }\n\n // .get('api/common/v1/app_version', httpData, {\n // isPrompt: isPrompt,\n // })\n // .then((res) => {\n // /* res的数据说明\n // * | 参数名称 | 一定返回 | 类型 | 描述\n // * | -------------|--------- | --------- | ------------- |\n // * | versionCode | y | int | 版本号 |\n // * | versionName | y | String | 版本名称 |\n // * | versionInfo | y | String | 版本信息 |\n // * | updateType | y | String | forcibly = 强制更新, solicit = 弹窗确认更新, silent = 静默更新 |\n // * | downloadUrl | y | String | 版本下载链接(IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接) |\n // */\n // if (res && res.downloadUrl) {\n // // 兼容之前的版本(updateType是新版才有的参数)\n // if (res.updateType) {\n // callback && callback(res);\n // } else {\n // if (res.forceUpdate) {\n // res.updateType = 'forcibly';\n // } else {\n // res.updateType = 'solicit';\n // }\n // callback && callback(res);\n // }\n // } else if (isPrompt) {\n // uni.showToast({\n // title: '暂无新版本',\n // icon: 'none',\n // });\n // }\n // });\n /****************以上是示例*******************/\n case 32:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n function getServerNo(_x) {\n return _getServerNo.apply(this, arguments);\n }\n return getServerNo;\n }(),\n // 弹窗主颜色(不填默认粉色)\n appUpdateColor: 'f00',\n // 弹窗图标(不填显示默认图标,链接配置示例如: '/static/demo/ic_attention.png')\n appUpdateIcon: ''\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29uZmlnL2NvbXBvbmVudENvbmZpZy5qcyJdLCJuYW1lcyI6WyJwbGF0Zm9ybSIsInVuaSIsImdldFN5c3RlbUluZm9TeW5jIiwicGhvbmVJbmZvIiwiZ2V0U2VydmVyTm8iLCJ2ZXJzaW9uIiwiaXNQcm9tcHQiLCJjYWxsYmFjayIsImFwcGxlSWQiLCJwbHVzIiwicnVudGltZSIsImxhdW5jaEFwcGxpY2F0aW9uIiwiYWN0aW9uIiwiZSIsIm1lc3NhZ2UiLCJtYXJrZXRJZCIsImJyYW5kIiwidG9Mb3dlckNhc2UiLCJwYXJhbXMiLCJwYWNrYWdlTmFtZSIsImN1cnJWZXJzaW9uS2V5IiwiR2V0QVBQdmVyc2lvbiIsInJlcyIsInN0YXR1cyIsImRhdGEiLCJ1cGRhdGVUeXBlIiwiaXNfZm9yY2VfdXBkYXRlIiwiYXBwVXBkYXRlQ29sb3IiLCJhcHBVcGRhdGVJY29uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTtBQUhBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQU1BLFFBQVEsR0FBR0MsR0FBRyxDQUFDQyxpQkFBaUIsRUFBRSxDQUFDRixRQUFRO0FBQ2pELElBQU1HLFNBQVMsR0FBR0YsR0FBRyxDQUFDQyxpQkFBaUIsRUFBRTtBQUFDLGVBQzNCO0VBQ2I7RUFDQUUsV0FBVztJQUFBLDJGQUFFLGlCQUFPQyxPQUFPO01BQUE7UUFBQTtRQUFBO1FBQUE7UUFBQTtRQUFBO1FBQUE7TUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFFQyxRQUFRLDJEQUFHLEtBQUs7Y0FBRUMsUUFBUTtjQUFBLE1BQ2pEUCxRQUFRLElBQUksU0FBUztnQkFBQTtnQkFBQTtjQUFBO2NBQ25CUSxPQUFPLEdBQUcsVUFBVSxFQUFFO2NBQzFCQyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsaUJBQWlCLENBQzVCO2dCQUNFQyxNQUFNLGtEQUEyQ0osT0FBTztjQUMxRCxDQUFDLEVBQ0QsVUFBVUssQ0FBQyxFQUFFO2dCQUNYLGFBQVksc0NBQXNDLEdBQUdBLENBQUMsQ0FBQ0MsT0FBTztjQUNoRSxDQUFDLENBQ0Y7Y0FBQztZQUFBO2NBS0o7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7Y0FDSTtjQUNBO2NBRUlDLFFBQVEsR0FBRyxHQUFHO2NBRWxCWixTQUFTLENBQUNhLEtBQUssR0FBR2IsU0FBUyxDQUFDYSxLQUFLLENBQUNDLFdBQVcsRUFBRTtjQUFDLGNBRXhDZCxTQUFTLENBQUNhLEtBQUs7Y0FBQSxnQ0FDaEIsUUFBUSx3QkFHUixRQUFRLHdCQUdSLFNBQVMsd0JBR1QsTUFBTSx3QkFHTixNQUFNLHdCQUdOLFNBQVM7Y0FBQTtZQUFBO2NBZFpELFFBQVEsR0FBRyxDQUFDO2NBQUM7WUFBQTtjQUdiQSxRQUFRLEdBQUcsQ0FBQztjQUFDO1lBQUE7Y0FHYkEsUUFBUSxHQUFHLENBQUM7Y0FBQztZQUFBO2NBR2JBLFFBQVEsR0FBRyxDQUFDO2NBQUM7WUFBQTtjQUdiQSxRQUFRLEdBQUcsQ0FBQztjQUFDO1lBQUE7Y0FHYkEsUUFBUSxHQUFHLENBQUM7Y0FBQztZQUFBO2NBR2JBLFFBQVEsR0FBRyxHQUFHO2NBQUM7WUFBQTtjQUluQixhQUFZLFVBQVUsRUFBRUEsUUFBUTtjQUNoQyxhQUFZLGlCQUFpQixFQUFFWixTQUFTLENBQUNhLEtBQUs7Y0FFMUNFLE1BQU0sR0FBRztnQkFDWEgsUUFBUSxFQUFFQSxRQUFRO2dCQUNsQkksV0FBVyxFQUFFLHNCQUFzQjtnQkFDbkNDLGNBQWMsRUFBRWY7Y0FDbEIsQ0FBQztjQUFBO2NBQUEsT0FFZSxJQUFBZ0IsNkJBQWEsRUFBQ0gsTUFBTSxDQUFDO1lBQUE7Y0FBakNJLEdBQUc7Y0FFUCxJQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsTUFBTSxJQUFJLEdBQUcsRUFBRTtnQkFDNUIsSUFBSUQsR0FBRyxDQUFDRSxJQUFJLEVBQUU7a0JBQ1pGLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDQyxVQUFVLEdBQUcsU0FBUztrQkFDL0IsSUFBSUgsR0FBRyxDQUFDRSxJQUFJLENBQUNFLGVBQWUsRUFBRTtvQkFDNUJKLEdBQUcsQ0FBQ0csVUFBVSxHQUFHLFVBQVU7b0JBQzNCbEIsUUFBUSxJQUFJQSxRQUFRLENBQUNlLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDO2tCQUNoQyxDQUFDLE1BQU07b0JBQ0xqQixRQUFRLElBQUlBLFFBQVEsQ0FBQ2UsR0FBRyxDQUFDRSxJQUFJLENBQUM7a0JBQ2hDO2dCQUNGO2NBQ0Y7O2NBRUE7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUEsQ0FDRDtJQUFBO01BQUE7SUFBQTtJQUFBO0VBQUE7RUFDRDtFQUNBRyxjQUFjLEVBQUUsS0FBSztFQUNyQjtFQUNBQyxhQUFhLEVBQUU7QUFDakIsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjUyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqIOatpOaWh+S7tuivtOaYjuivt+eci+azqOmHiiAqKioqKi9cclxuLy8g5Y+v5Lul55So6Ieq5bex6aG555uu55qE6K+35rGC5pa55rOVXHJcbi8vIOivt+axgumFjee9ruivtOaYju+8mmh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTgyMlxyXG5pbXBvcnQgeyBHZXRBUFB2ZXJzaW9uIH0gZnJvbSAnLi4vYXBpL2NoZWNrQVBQdXBkYXRlJztcclxuLyoqKiog57uT5p2fICoqKioqL1xyXG5jb25zdCBwbGF0Zm9ybSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtO1xyXG5jb25zdCBwaG9uZUluZm8gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIC8vIOWPkei1t2FqYXjor7fmsYLojrflj5bmnI3liqHnq6/niYjmnKzlj7dcclxuICBnZXRTZXJ2ZXJObzogYXN5bmMgKHZlcnNpb24sIGlzUHJvbXB0ID0gZmFsc2UsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICBpZiAocGxhdGZvcm0gIT0gJ2FuZHJvaWQnKSB7XHJcbiAgICAgIGxldCBhcHBsZUlkID0gMTU0OTYzODMyNzsgLy9hcHDnmoRhcHBsZUlkXHJcbiAgICAgIHBsdXMucnVudGltZS5sYXVuY2hBcHBsaWNhdGlvbihcclxuICAgICAgICB7XHJcbiAgICAgICAgICBhY3Rpb246IGBpdG1zLWFwcHM6Ly9pdHVuZXMuYXBwbGUuY29tL2NuL2FwcC9pZCR7YXBwbGVJZH0/bXQ9OGAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ09wZW4gc3lzdGVtIGRlZmF1bHQgYnJvd3NlciBmYWlsZWQ6ICcgKyBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBsZXQgaHR0cERhdGEgPSB7XHJcbiAgICAvLyAgIHZlcnNpb246IHZlcnNpb24udmVyc2lvbkNvZGUsXHJcbiAgICAvLyAgIC8vIOeJiOacrOWQjeensFxyXG4gICAgLy8gICB2ZXJzaW9uTmFtZTogdmVyc2lvbi52ZXJzaW9uTmFtZSxcclxuICAgIC8vICAgLy8gc2V0dXBQYWdl5Y+C5pWw6K+05piO77yI5Yik5pat55So5oi35piv5LiN5piv5LuO6K6+572u6aG16Z2i54K55Ye755qE5pu05paw77yM5aaC5p6c5piv6K6+572u6aG16Z2i54K55Ye755qE5pu05paw77yM5pyJ5LiN6KaB55So6Z2Z6buY5pu05paw5LqG77yM5LiN54S255So5oi354K55Ye75rKh5Y+N5bqU5b6I5aWH5oCq55qE77yJXHJcbiAgICAvLyAgIHNldHVwUGFnZTogaXNQcm9tcHQsXHJcbiAgICAvLyB9O1xyXG4gICAgLy8gaWYgKHBsYXRmb3JtID09ICdhbmRyb2lkJykge1xyXG4gICAgLy8gICBodHRwRGF0YS50eXBlID0gMTEwMTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIGh0dHBEYXRhLnR5cGUgPSAxMTAyO1xyXG5cclxuICAgIC8qIOaOpeWPo+WFpeWPguivtOaYjlxyXG4gICAgICogdmVyc2lvbjog5bqU55So5b2T5YmN54mI5pys5Y+377yI5bey6Ieq5Yqo6I635Y+W77yJXHJcbiAgICAgKiB2ZXJzaW9uTmFtZTog5bqU55So5b2T5YmN54mI5pys5ZCN56ew77yI5bey6Ieq5Yqo6I635Y+W77yJXHJcbiAgICAgKiB0eXBl77ya5bmz5Y+w77yIMTEwMeaYr+WuieWNk++8jDExMDLmmK9JT1PvvIlcclxuICAgICAqL1xyXG4gICAgLyoqKioqKioqKioqKioqKirku6XkuIvmmK/npLrkvosqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgLy8g5Y+v5Lul55So6Ieq5bex6aG555uu55qE6K+35rGC5pa55rOV77yI5o6l5Y+j6Ieq5bex5om+5ZCO5Y+w6KaB77yM5o+S5Lu25LiN5o+Q5L6b77yJXHJcblxyXG4gICAgbGV0IG1hcmtldElkID0gMTAwO1xyXG5cclxuICAgIHBob25lSW5mby5icmFuZCA9IHBob25lSW5mby5icmFuZC50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHN3aXRjaCAocGhvbmVJbmZvLmJyYW5kKSB7XHJcbiAgICAgIGNhc2UgJ3hpYW9taSc6XHJcbiAgICAgICAgbWFya2V0SWQgPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdodWF3ZWknOlxyXG4gICAgICAgIG1hcmtldElkID0gMjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndGVuZ3h1bic6XHJcbiAgICAgICAgbWFya2V0SWQgPSAzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdvcHBvJzpcclxuICAgICAgICBtYXJrZXRJZCA9IDQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3Zpdm8nOlxyXG4gICAgICAgIG1hcmtldElkID0gNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc2Ftc3VuZyc6XHJcbiAgICAgICAgbWFya2V0SWQgPSA2O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIG1hcmtldElkID0gMTAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCdtYXJrZXRJZCcsIG1hcmtldElkKTtcclxuICAgIGNvbnNvbGUubG9nKCdwaG9uZUluZm8uYnJhbmQnLCBwaG9uZUluZm8uYnJhbmQpO1xyXG5cclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIG1hcmtldElkOiBtYXJrZXRJZCxcclxuICAgICAgcGFja2FnZU5hbWU6ICdjb20ueGlhb2ZhLnNob3BBZG1pbicsXHJcbiAgICAgIGN1cnJWZXJzaW9uS2V5OiB2ZXJzaW9uLFxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgcmVzID0gYXdhaXQgR2V0QVBQdmVyc2lvbihwYXJhbXMpO1xyXG5cclxuICAgIGlmIChyZXMgJiYgcmVzLnN0YXR1cyA9PSAyMDApIHtcclxuICAgICAgaWYgKHJlcy5kYXRhKSB7XHJcbiAgICAgICAgcmVzLmRhdGEudXBkYXRlVHlwZSA9ICdzb2xpY2l0JztcclxuICAgICAgICBpZiAocmVzLmRhdGEuaXNfZm9yY2VfdXBkYXRlKSB7XHJcbiAgICAgICAgICByZXMudXBkYXRlVHlwZSA9ICdmb3JjaWJseSc7XHJcbiAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyZXMuZGF0YSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlcy5kYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAuZ2V0KCdhcGkvY29tbW9uL3YxL2FwcF92ZXJzaW9uJywgaHR0cERhdGEsIHtcclxuICAgIC8vICAgaXNQcm9tcHQ6IGlzUHJvbXB0LFxyXG4gICAgLy8gfSlcclxuICAgIC8vIC50aGVuKChyZXMpID0+IHtcclxuICAgIC8vICAgLyogcmVz55qE5pWw5o2u6K+05piOXHJcbiAgICAvLyAgICAqIHwg5Y+C5pWw5ZCN56ewICAgICAgICB8IOS4gOWumui/lOWbniAgICAgfCDnsbvlnosgICAgICAgIHwg5o+P6L+wXHJcbiAgICAvLyAgICAqIHwgLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0gfCAtLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHxcclxuICAgIC8vICAgICogfCB2ZXJzaW9uQ29kZSAgICAgfCB5ICAgICAgICB8IGludCAgICAgICB8IOeJiOacrOWPtyAgICAgICAgfFxyXG4gICAgLy8gICAgKiB8IHZlcnNpb25OYW1lICAgICB8IHkgICAgICAgIHwgU3RyaW5nICAgIHwg54mI5pys5ZCN56ewICAgICAgfFxyXG4gICAgLy8gICAgKiB8IHZlcnNpb25JbmZvICAgICB8IHkgICAgICAgIHwgU3RyaW5nICAgIHwg54mI5pys5L+h5oGvICAgICAgfFxyXG4gICAgLy8gICAgKiB8IHVwZGF0ZVR5cGUgICAgICB8IHkgICAgICAgIHwgU3RyaW5nICAgIHwgZm9yY2libHkgPSDlvLrliLbmm7TmlrAsIHNvbGljaXQgPSDlvLnnqpfnoa7orqTmm7TmlrAsIHNpbGVudCA9IOmdmem7mOabtOaWsCB8XHJcbiAgICAvLyAgICAqIHwgZG93bmxvYWRVcmwgICAgIHwgeSAgICAgICAgfCBTdHJpbmcgICAgfCDniYjmnKzkuIvovb3pk77mjqXvvIhJT1Plronoo4XljIXmm7TmlrDor7fmlL7ot7PovaxzdG9yZeW6lOeUqOWVhuW6l+mTvuaOpSzlronljZNhcGvlkox3Z3Tmlofku7bmlL7mlofku7bkuIvovb3pk77mjqXvvIkgIHxcclxuICAgIC8vICAgICovXHJcbiAgICAvLyAgIGlmIChyZXMgJiYgcmVzLmRvd25sb2FkVXJsKSB7XHJcbiAgICAvLyAgICAgLy8g5YW85a655LmL5YmN55qE54mI5pys77yIdXBkYXRlVHlwZeaYr+aWsOeJiOaJjeacieeahOWPguaVsO+8iVxyXG4gICAgLy8gICAgIGlmIChyZXMudXBkYXRlVHlwZSkge1xyXG4gICAgLy8gICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzKTtcclxuICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgaWYgKHJlcy5mb3JjZVVwZGF0ZSkge1xyXG4gICAgLy8gICAgICAgICByZXMudXBkYXRlVHlwZSA9ICdmb3JjaWJseSc7XHJcbiAgICAvLyAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICByZXMudXBkYXRlVHlwZSA9ICdzb2xpY2l0JztcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9IGVsc2UgaWYgKGlzUHJvbXB0KSB7XHJcbiAgICAvLyAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAvLyAgICAgICB0aXRsZTogJ+aaguaXoOaWsOeJiOacrCcsXHJcbiAgICAvLyAgICAgICBpY29uOiAnbm9uZScsXHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pO1xyXG4gICAgLyoqKioqKioqKioqKioqKirku6XkuIrmmK/npLrkvosqKioqKioqKioqKioqKioqKioqL1xyXG4gIH0sXHJcbiAgLy8g5by556qX5Li76aKc6Imy77yI5LiN5aGr6buY6K6k57KJ6Imy77yJXHJcbiAgYXBwVXBkYXRlQ29sb3I6ICdmMDAnLFxyXG4gIC8vIOW8ueeql+Wbvuagh++8iOS4jeWhq+aYvuekuum7mOiupOWbvuagh++8jOmTvuaOpemFjee9ruekuuS+i+Wmgu+8miAnL3N0YXRpYy9kZW1vL2ljX2F0dGVudGlvbi5wbmcn77yJXHJcbiAgYXBwVXBkYXRlSWNvbjogJycsXHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///524\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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 72));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 74));\nvar _checkAPPupdate = __webpack_require__(/*! ../api/checkAPPupdate */ 525);\n/**** 此文件说明请看注释 *****/\n// 可以用自己项目的请求方法\n// 请求配置说明:https://ext.dcloud.net.cn/plugin?id=822\n\n/**** 结束 *****/\nvar platform = uni.getSystemInfoSync().platform;\nvar phoneInfo = uni.getSystemInfoSync();\nvar _default = {\n // 发起ajax请求获取服务端版本号\n getServerNo: function () {\n var _getServerNo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(version) {\n var isPrompt,\n callback,\n appleId,\n marketId,\n params,\n res,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n isPrompt = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;\n callback = _args.length > 2 ? _args[2] : undefined;\n if (!(platform != 'android')) {\n _context.next = 6;\n break;\n }\n appleId = 1549638327; //app的appleId\n plus.runtime.launchApplication({\n action: \"itms-apps://itunes.apple.com/cn/app/id\".concat(appleId, \"?mt=8\")\n }, function (e) {\n __f__(\"log\", 'Open system default browser failed: ' + e.message, \" at config/componentConfig.js:18\");\n });\n return _context.abrupt(\"return\");\n case 6:\n // let httpData = {\n // version: version.versionCode,\n // // 版本名称\n // versionName: version.versionName,\n // // setupPage参数说明(判断用户是不是从设置页面点击的更新,如果是设置页面点击的更新,有不要用静默更新了,不然用户点击没反应很奇怪的)\n // setupPage: isPrompt,\n // };\n // if (platform == 'android') {\n // httpData.type = 1101;\n // } else {\n // httpData.type = 1102;\n /* 接口入参说明\r\n * version: 应用当前版本号(已自动获取)\r\n * versionName: 应用当前版本名称(已自动获取)\r\n * type:平台(1101是安卓,1102是IOS)\r\n */\n /****************以下是示例*******************/\n // 可以用自己项目的请求方法(接口自己找后台要,插件不提供)\n marketId = 100;\n phoneInfo.brand = phoneInfo.brand.toLowerCase();\n _context.t0 = phoneInfo.brand;\n _context.next = _context.t0 === 'xiaomi' ? 11 : _context.t0 === 'huawei' ? 13 : _context.t0 === 'tengxun' ? 15 : _context.t0 === 'oppo' ? 17 : _context.t0 === 'vivo' ? 19 : _context.t0 === 'samsung' ? 21 : 23;\n break;\n case 11:\n marketId = 1;\n return _context.abrupt(\"break\", 25);\n case 13:\n marketId = 2;\n return _context.abrupt(\"break\", 25);\n case 15:\n marketId = 3;\n return _context.abrupt(\"break\", 25);\n case 17:\n marketId = 4;\n return _context.abrupt(\"break\", 25);\n case 19:\n marketId = 5;\n return _context.abrupt(\"break\", 25);\n case 21:\n marketId = 6;\n return _context.abrupt(\"break\", 25);\n case 23:\n marketId = 100;\n return _context.abrupt(\"break\", 25);\n case 25:\n __f__(\"log\", 'marketId', marketId, \" at config/componentConfig.js:73\");\n __f__(\"log\", 'phoneInfo.brand', phoneInfo.brand, \" at config/componentConfig.js:74\");\n params = {\n marketId: marketId,\n packageName: 'com.xiaofa.shopAdmin',\n currVersionKey: version\n };\n _context.next = 30;\n return (0, _checkAPPupdate.GetAPPversion)(params);\n case 30:\n res = _context.sent;\n if (res && res.status == 200) {\n if (res.data) {\n res.data.updateType = 'solicit';\n if (res.data.is_force_update == 1) {\n res.data.updateType = 'forcibly';\n callback && callback(res.data);\n } else {\n callback && callback(res.data);\n }\n }\n }\n\n // .get('api/common/v1/app_version', httpData, {\n // isPrompt: isPrompt,\n // })\n // .then((res) => {\n // /* res的数据说明\n // * | 参数名称 | 一定返回 | 类型 | 描述\n // * | -------------|--------- | --------- | ------------- |\n // * | versionCode | y | int | 版本号 |\n // * | versionName | y | String | 版本名称 |\n // * | versionInfo | y | String | 版本信息 |\n // * | updateType | y | String | forcibly = 强制更新, solicit = 弹窗确认更新, silent = 静默更新 |\n // * | downloadUrl | y | String | 版本下载链接(IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接) |\n // */\n // if (res && res.downloadUrl) {\n // // 兼容之前的版本(updateType是新版才有的参数)\n // if (res.updateType) {\n // callback && callback(res);\n // } else {\n // if (res.forceUpdate) {\n // res.updateType = 'forcibly';\n // } else {\n // res.updateType = 'solicit';\n // }\n // callback && callback(res);\n // }\n // } else if (isPrompt) {\n // uni.showToast({\n // title: '暂无新版本',\n // icon: 'none',\n // });\n // }\n // });\n /****************以上是示例*******************/\n case 32:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n function getServerNo(_x) {\n return _getServerNo.apply(this, arguments);\n }\n return getServerNo;\n }(),\n // 弹窗主颜色(不填默认粉色)\n appUpdateColor: 'f00',\n // 弹窗图标(不填显示默认图标,链接配置示例如: '/static/demo/ic_attention.png')\n appUpdateIcon: '/static/ic_ar.png'\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 98)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29uZmlnL2NvbXBvbmVudENvbmZpZy5qcyJdLCJuYW1lcyI6WyJwbGF0Zm9ybSIsInVuaSIsImdldFN5c3RlbUluZm9TeW5jIiwicGhvbmVJbmZvIiwiZ2V0U2VydmVyTm8iLCJ2ZXJzaW9uIiwiaXNQcm9tcHQiLCJjYWxsYmFjayIsImFwcGxlSWQiLCJwbHVzIiwicnVudGltZSIsImxhdW5jaEFwcGxpY2F0aW9uIiwiYWN0aW9uIiwiZSIsIm1lc3NhZ2UiLCJtYXJrZXRJZCIsImJyYW5kIiwidG9Mb3dlckNhc2UiLCJwYXJhbXMiLCJwYWNrYWdlTmFtZSIsImN1cnJWZXJzaW9uS2V5IiwiR2V0QVBQdmVyc2lvbiIsInJlcyIsInN0YXR1cyIsImRhdGEiLCJ1cGRhdGVUeXBlIiwiaXNfZm9yY2VfdXBkYXRlIiwiYXBwVXBkYXRlQ29sb3IiLCJhcHBVcGRhdGVJY29uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTtBQUhBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQU1BLFFBQVEsR0FBR0MsR0FBRyxDQUFDQyxpQkFBaUIsRUFBRSxDQUFDRixRQUFRO0FBQ2pELElBQU1HLFNBQVMsR0FBR0YsR0FBRyxDQUFDQyxpQkFBaUIsRUFBRTtBQUFDLGVBQzNCO0VBQ2I7RUFDQUUsV0FBVztJQUFBLDJGQUFFLGlCQUFPQyxPQUFPO01BQUE7UUFBQTtRQUFBO1FBQUE7UUFBQTtRQUFBO1FBQUE7TUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFFQyxRQUFRLDJEQUFHLEtBQUs7Y0FBRUMsUUFBUTtjQUFBLE1BQ2pEUCxRQUFRLElBQUksU0FBUztnQkFBQTtnQkFBQTtjQUFBO2NBQ25CUSxPQUFPLEdBQUcsVUFBVSxFQUFFO2NBQzFCQyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsaUJBQWlCLENBQzVCO2dCQUNFQyxNQUFNLGtEQUEyQ0osT0FBTztjQUMxRCxDQUFDLEVBQ0QsVUFBVUssQ0FBQyxFQUFFO2dCQUNYLGFBQVksc0NBQXNDLEdBQUdBLENBQUMsQ0FBQ0MsT0FBTztjQUNoRSxDQUFDLENBQ0Y7Y0FBQztZQUFBO2NBS0o7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7Y0FDSTtjQUNBO2NBRUlDLFFBQVEsR0FBRyxHQUFHO2NBRWxCWixTQUFTLENBQUNhLEtBQUssR0FBR2IsU0FBUyxDQUFDYSxLQUFLLENBQUNDLFdBQVcsRUFBRTtjQUFDLGNBRXhDZCxTQUFTLENBQUNhLEtBQUs7Y0FBQSxnQ0FDaEIsUUFBUSx3QkFHUixRQUFRLHdCQUdSLFNBQVMsd0JBR1QsTUFBTSx3QkFHTixNQUFNLHdCQUdOLFNBQVM7Y0FBQTtZQUFBO2NBZFpELFFBQVEsR0FBRyxDQUFDO2NBQUM7WUFBQTtjQUdiQSxRQUFRLEdBQUcsQ0FBQztjQUFDO1lBQUE7Y0FHYkEsUUFBUSxHQUFHLENBQUM7Y0FBQztZQUFBO2NBR2JBLFFBQVEsR0FBRyxDQUFDO2NBQUM7WUFBQTtjQUdiQSxRQUFRLEdBQUcsQ0FBQztjQUFDO1lBQUE7Y0FHYkEsUUFBUSxHQUFHLENBQUM7Y0FBQztZQUFBO2NBR2JBLFFBQVEsR0FBRyxHQUFHO2NBQUM7WUFBQTtjQUluQixhQUFZLFVBQVUsRUFBRUEsUUFBUTtjQUNoQyxhQUFZLGlCQUFpQixFQUFFWixTQUFTLENBQUNhLEtBQUs7Y0FFMUNFLE1BQU0sR0FBRztnQkFDWEgsUUFBUSxFQUFFQSxRQUFRO2dCQUNsQkksV0FBVyxFQUFFLHNCQUFzQjtnQkFDbkNDLGNBQWMsRUFBRWY7Y0FDbEIsQ0FBQztjQUFBO2NBQUEsT0FFZSxJQUFBZ0IsNkJBQWEsRUFBQ0gsTUFBTSxDQUFDO1lBQUE7Y0FBakNJLEdBQUc7Y0FFUCxJQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsTUFBTSxJQUFJLEdBQUcsRUFBRTtnQkFDNUIsSUFBSUQsR0FBRyxDQUFDRSxJQUFJLEVBQUU7a0JBQ1pGLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDQyxVQUFVLEdBQUcsU0FBUztrQkFDL0IsSUFBSUgsR0FBRyxDQUFDRSxJQUFJLENBQUNFLGVBQWUsSUFBSSxDQUFDLEVBQUU7b0JBQ2pDSixHQUFHLENBQUNFLElBQUksQ0FBQ0MsVUFBVSxHQUFHLFVBQVU7b0JBQ2hDbEIsUUFBUSxJQUFJQSxRQUFRLENBQUNlLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDO2tCQUNoQyxDQUFDLE1BQU07b0JBQ0xqQixRQUFRLElBQUlBLFFBQVEsQ0FBQ2UsR0FBRyxDQUFDRSxJQUFJLENBQUM7a0JBQ2hDO2dCQUNGO2NBQ0Y7O2NBRUE7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUEsQ0FDRDtJQUFBO01BQUE7SUFBQTtJQUFBO0VBQUE7RUFDRDtFQUNBRyxjQUFjLEVBQUUsS0FBSztFQUNyQjtFQUNBQyxhQUFhLEVBQUU7QUFDakIsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjUyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqIOatpOaWh+S7tuivtOaYjuivt+eci+azqOmHiiAqKioqKi9cclxuLy8g5Y+v5Lul55So6Ieq5bex6aG555uu55qE6K+35rGC5pa55rOVXHJcbi8vIOivt+axgumFjee9ruivtOaYju+8mmh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTgyMlxyXG5pbXBvcnQgeyBHZXRBUFB2ZXJzaW9uIH0gZnJvbSAnLi4vYXBpL2NoZWNrQVBQdXBkYXRlJztcclxuLyoqKiog57uT5p2fICoqKioqL1xyXG5jb25zdCBwbGF0Zm9ybSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtO1xyXG5jb25zdCBwaG9uZUluZm8gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKTtcclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIC8vIOWPkei1t2FqYXjor7fmsYLojrflj5bmnI3liqHnq6/niYjmnKzlj7dcclxuICBnZXRTZXJ2ZXJObzogYXN5bmMgKHZlcnNpb24sIGlzUHJvbXB0ID0gZmFsc2UsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICBpZiAocGxhdGZvcm0gIT0gJ2FuZHJvaWQnKSB7XHJcbiAgICAgIGxldCBhcHBsZUlkID0gMTU0OTYzODMyNzsgLy9hcHDnmoRhcHBsZUlkXHJcbiAgICAgIHBsdXMucnVudGltZS5sYXVuY2hBcHBsaWNhdGlvbihcclxuICAgICAgICB7XHJcbiAgICAgICAgICBhY3Rpb246IGBpdG1zLWFwcHM6Ly9pdHVuZXMuYXBwbGUuY29tL2NuL2FwcC9pZCR7YXBwbGVJZH0/bXQ9OGAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ09wZW4gc3lzdGVtIGRlZmF1bHQgYnJvd3NlciBmYWlsZWQ6ICcgKyBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBsZXQgaHR0cERhdGEgPSB7XHJcbiAgICAvLyAgIHZlcnNpb246IHZlcnNpb24udmVyc2lvbkNvZGUsXHJcbiAgICAvLyAgIC8vIOeJiOacrOWQjeensFxyXG4gICAgLy8gICB2ZXJzaW9uTmFtZTogdmVyc2lvbi52ZXJzaW9uTmFtZSxcclxuICAgIC8vICAgLy8gc2V0dXBQYWdl5Y+C5pWw6K+05piO77yI5Yik5pat55So5oi35piv5LiN5piv5LuO6K6+572u6aG16Z2i54K55Ye755qE5pu05paw77yM5aaC5p6c5piv6K6+572u6aG16Z2i54K55Ye755qE5pu05paw77yM5pyJ5LiN6KaB55So6Z2Z6buY5pu05paw5LqG77yM5LiN54S255So5oi354K55Ye75rKh5Y+N5bqU5b6I5aWH5oCq55qE77yJXHJcbiAgICAvLyAgIHNldHVwUGFnZTogaXNQcm9tcHQsXHJcbiAgICAvLyB9O1xyXG4gICAgLy8gaWYgKHBsYXRmb3JtID09ICdhbmRyb2lkJykge1xyXG4gICAgLy8gICBodHRwRGF0YS50eXBlID0gMTEwMTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIGh0dHBEYXRhLnR5cGUgPSAxMTAyO1xyXG5cclxuICAgIC8qIOaOpeWPo+WFpeWPguivtOaYjlxyXG4gICAgICogdmVyc2lvbjog5bqU55So5b2T5YmN54mI5pys5Y+377yI5bey6Ieq5Yqo6I635Y+W77yJXHJcbiAgICAgKiB2ZXJzaW9uTmFtZTog5bqU55So5b2T5YmN54mI5pys5ZCN56ew77yI5bey6Ieq5Yqo6I635Y+W77yJXHJcbiAgICAgKiB0eXBl77ya5bmz5Y+w77yIMTEwMeaYr+WuieWNk++8jDExMDLmmK9JT1PvvIlcclxuICAgICAqL1xyXG4gICAgLyoqKioqKioqKioqKioqKirku6XkuIvmmK/npLrkvosqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgLy8g5Y+v5Lul55So6Ieq5bex6aG555uu55qE6K+35rGC5pa55rOV77yI5o6l5Y+j6Ieq5bex5om+5ZCO5Y+w6KaB77yM5o+S5Lu25LiN5o+Q5L6b77yJXHJcblxyXG4gICAgbGV0IG1hcmtldElkID0gMTAwO1xyXG5cclxuICAgIHBob25lSW5mby5icmFuZCA9IHBob25lSW5mby5icmFuZC50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHN3aXRjaCAocGhvbmVJbmZvLmJyYW5kKSB7XHJcbiAgICAgIGNhc2UgJ3hpYW9taSc6XHJcbiAgICAgICAgbWFya2V0SWQgPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdodWF3ZWknOlxyXG4gICAgICAgIG1hcmtldElkID0gMjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndGVuZ3h1bic6XHJcbiAgICAgICAgbWFya2V0SWQgPSAzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdvcHBvJzpcclxuICAgICAgICBtYXJrZXRJZCA9IDQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3Zpdm8nOlxyXG4gICAgICAgIG1hcmtldElkID0gNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc2Ftc3VuZyc6XHJcbiAgICAgICAgbWFya2V0SWQgPSA2O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIG1hcmtldElkID0gMTAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCdtYXJrZXRJZCcsIG1hcmtldElkKTtcclxuICAgIGNvbnNvbGUubG9nKCdwaG9uZUluZm8uYnJhbmQnLCBwaG9uZUluZm8uYnJhbmQpO1xyXG5cclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIG1hcmtldElkOiBtYXJrZXRJZCxcclxuICAgICAgcGFja2FnZU5hbWU6ICdjb20ueGlhb2ZhLnNob3BBZG1pbicsXHJcbiAgICAgIGN1cnJWZXJzaW9uS2V5OiB2ZXJzaW9uLFxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgcmVzID0gYXdhaXQgR2V0QVBQdmVyc2lvbihwYXJhbXMpO1xyXG5cclxuICAgIGlmIChyZXMgJiYgcmVzLnN0YXR1cyA9PSAyMDApIHtcclxuICAgICAgaWYgKHJlcy5kYXRhKSB7XHJcbiAgICAgICAgcmVzLmRhdGEudXBkYXRlVHlwZSA9ICdzb2xpY2l0JztcclxuICAgICAgICBpZiAocmVzLmRhdGEuaXNfZm9yY2VfdXBkYXRlID09IDEpIHtcclxuICAgICAgICAgIHJlcy5kYXRhLnVwZGF0ZVR5cGUgPSAnZm9yY2libHknO1xyXG4gICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzLmRhdGEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyZXMuZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLmdldCgnYXBpL2NvbW1vbi92MS9hcHBfdmVyc2lvbicsIGh0dHBEYXRhLCB7XHJcbiAgICAvLyAgIGlzUHJvbXB0OiBpc1Byb21wdCxcclxuICAgIC8vIH0pXHJcbiAgICAvLyAudGhlbigocmVzKSA9PiB7XHJcbiAgICAvLyAgIC8qIHJlc+eahOaVsOaNruivtOaYjlxyXG4gICAgLy8gICAgKiB8IOWPguaVsOWQjeensCAgICAgICAgfCDkuIDlrprov5Tlm54gICAgIHwg57G75Z6LICAgICAgICB8IOaPj+i/sFxyXG4gICAgLy8gICAgKiB8IC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8XHJcbiAgICAvLyAgICAqIHwgdmVyc2lvbkNvZGUgICAgIHwgeSAgICAgICAgfCBpbnQgICAgICAgfCDniYjmnKzlj7cgICAgICAgIHxcclxuICAgIC8vICAgICogfCB2ZXJzaW9uTmFtZSAgICAgfCB5ICAgICAgICB8IFN0cmluZyAgICB8IOeJiOacrOWQjeensCAgICAgIHxcclxuICAgIC8vICAgICogfCB2ZXJzaW9uSW5mbyAgICAgfCB5ICAgICAgICB8IFN0cmluZyAgICB8IOeJiOacrOS/oeaBryAgICAgIHxcclxuICAgIC8vICAgICogfCB1cGRhdGVUeXBlICAgICAgfCB5ICAgICAgICB8IFN0cmluZyAgICB8IGZvcmNpYmx5ID0g5by65Yi25pu05pawLCBzb2xpY2l0ID0g5by556qX56Gu6K6k5pu05pawLCBzaWxlbnQgPSDpnZnpu5jmm7TmlrAgfFxyXG4gICAgLy8gICAgKiB8IGRvd25sb2FkVXJsICAgICB8IHkgICAgICAgIHwgU3RyaW5nICAgIHwg54mI5pys5LiL6L296ZO+5o6l77yISU9T5a6J6KOF5YyF5pu05paw6K+35pS+6Lez6L2sc3RvcmXlupTnlKjllYblupfpk77mjqUs5a6J5Y2TYXBr5ZKMd2d05paH5Lu25pS+5paH5Lu25LiL6L296ZO+5o6l77yJICB8XHJcbiAgICAvLyAgICAqL1xyXG4gICAgLy8gICBpZiAocmVzICYmIHJlcy5kb3dubG9hZFVybCkge1xyXG4gICAgLy8gICAgIC8vIOWFvOWuueS5i+WJjeeahOeJiOacrO+8iHVwZGF0ZVR5cGXmmK/mlrDniYjmiY3mnInnmoTlj4LmlbDvvIlcclxuICAgIC8vICAgICBpZiAocmVzLnVwZGF0ZVR5cGUpIHtcclxuICAgIC8vICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgIGlmIChyZXMuZm9yY2VVcGRhdGUpIHtcclxuICAgIC8vICAgICAgICAgcmVzLnVwZGF0ZVR5cGUgPSAnZm9yY2libHknO1xyXG4gICAgLy8gICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgcmVzLnVwZGF0ZVR5cGUgPSAnc29saWNpdCc7XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyZXMpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSBlbHNlIGlmIChpc1Byb21wdCkge1xyXG4gICAgLy8gICAgIHVuaS5zaG93VG9hc3Qoe1xyXG4gICAgLy8gICAgICAgdGl0bGU6ICfmmoLml6DmlrDniYjmnKwnLFxyXG4gICAgLy8gICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICAgIC8qKioqKioqKioqKioqKioq5Lul5LiK5piv56S65L6LKioqKioqKioqKioqKioqKioqKi9cclxuICB9LFxyXG4gIC8vIOW8ueeql+S4u+minOiJsu+8iOS4jeWhq+m7mOiupOeyieiJsu+8iVxyXG4gIGFwcFVwZGF0ZUNvbG9yOiAnZjAwJyxcclxuICAvLyDlvLnnqpflm77moIfvvIjkuI3loavmmL7npLrpu5jorqTlm77moIfvvIzpk77mjqXphY3nva7npLrkvovlpoLvvJogJy9zdGF0aWMvZGVtby9pY19hdHRlbnRpb24ucG5nJ++8iVxyXG4gIGFwcFVwZGF0ZUljb246ICcvc3RhdGljL2ljX2FyLnBuZycsXHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///524\n"); /***/ }), /* 525 */ diff --git a/java-mall-app-shop-admin/unpackage/dist/dev/app-plus/manifest.json b/java-mall-app-shop-admin/unpackage/dist/dev/app-plus/manifest.json index bb688fb..eeef7b5 100644 --- a/java-mall-app-shop-admin/unpackage/dist/dev/app-plus/manifest.json +++ b/java-mall-app-shop-admin/unpackage/dist/dev/app-plus/manifest.json @@ -1 +1 @@ -{"@platforms":["android","iPhone","iPad"],"id":"__UNI__95F809F","name":"小发同城商家版","version":{"name":"1.0.0","code":100},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Maps":{"coordType":"gcj02"},"Camera":{},"Record":{},"VideoPlayer":{},"UIWebview":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#FFFFFF"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["","","","","","","","","","","","","","",""]},"apple":{"privacyDescription":{"NSPhotoLibraryAddUsageDescription":"此App会在上传头像图片服务中访问您的相机权限","NSPhotoLibraryUsageDescription":"此App会在上传头像图片服务中访问您的相机权限","NSCameraUsageDescription":"此App会在上传头像图片服务中访问您的相机权限","NSMicrophoneUsageDescription":"此APP会在使用声音识别服务中使用您的麦克风权限","NSLocationWhenInUseUsageDescription":"此App会在使用导航服务中使用您的定位权限","NSLocationAlwaysUsageDescription":"此App会在使用导航服务中使用您的定位权限","NSLocationAlwaysAndWhenInUseUsageDescription":"此App会在使用导航服务中使用您的定位权限"},"dSYMs":false},"plugins":{"maps":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.29","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#000","selectedColor":"#4b71ff","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","iconfontSrc":"/static/font/iconfont.ttf","fontSize":"14px","height":"58px","spacing":"5px","list":[{"pagePath":"pages/order/order","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"20px"},"text":"工作台"},{"pagePath":"pages/IM/IM","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"22px"},"text":"消息"},{"pagePath":"pages/viewCenter/viewCenter","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"20px"},"text":"视图中心"},{"pagePath":"pages/my/my","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"24px"},"text":"我的"}]},"launch_path":"__uniappview.html"},"screenOrientation":["portrait-primary","portrait-secondary"]} \ No newline at end of file +{"@platforms":["android","iPhone","iPad"],"id":"__UNI__95F809F","name":"小发同城商家版","version":{"name":"1.0.1","code":100},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Maps":{"coordType":"gcj02"},"Camera":{},"Record":{},"VideoPlayer":{},"UIWebview":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#FFFFFF"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["","","","","","","","","","","","","","",""]},"apple":{"privacyDescription":{"NSPhotoLibraryAddUsageDescription":"此App会在上传头像图片服务中访问您的相机权限","NSPhotoLibraryUsageDescription":"此App会在上传头像图片服务中访问您的相机权限","NSCameraUsageDescription":"此App会在上传头像图片服务中访问您的相机权限","NSMicrophoneUsageDescription":"此APP会在使用声音识别服务中使用您的麦克风权限","NSLocationWhenInUseUsageDescription":"此App会在使用导航服务中使用您的定位权限","NSLocationAlwaysUsageDescription":"此App会在使用导航服务中使用您的定位权限","NSLocationAlwaysAndWhenInUseUsageDescription":"此App会在使用导航服务中使用您的定位权限"},"dSYMs":false},"plugins":{"maps":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.29","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#000","selectedColor":"#4b71ff","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","iconfontSrc":"/static/font/iconfont.ttf","fontSize":"14px","height":"58px","spacing":"5px","list":[{"pagePath":"pages/order/order","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"20px"},"text":"工作台"},{"pagePath":"pages/IM/IM","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"22px"},"text":"消息"},{"pagePath":"pages/viewCenter/viewCenter","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"20px"},"text":"视图中心"},{"pagePath":"pages/my/my","iconfont":{"text":"","selectedText":"","selectedColor":"#4b71ff","color":"#000","fontSize":"24px"},"text":"我的"}]},"launch_path":"__uniappview.html"},"screenOrientation":["portrait-primary","portrait-secondary"]} \ No newline at end of file