From b9f7bd4c2ed410ae2e02f797dcfb94b751c28aff Mon Sep 17 00:00:00 2001
From: FrancisHu <2756004617@qq.com>
Date: Mon, 6 May 2024 16:48:20 +0800
Subject: [PATCH] =?UTF-8?q?5.6=E9=87=8D=E5=BA=86=E7=BB=93=E6=9D=9F?=
=?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=88=A4=E6=96=AD=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../backMaterialReceiveDetail.vue | 41 ++++++++++++++++---
unpackage/dist/dev/app-plus/app-service.js | 10 ++++-
2 files changed, 44 insertions(+), 7 deletions(-)
diff --git a/pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue b/pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue
index 626d042..965a797 100644
--- a/pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue
+++ b/pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue
@@ -11,7 +11,7 @@
待退料数量
- {{ fetch.num }}
+ {{ fetch.manageType == 2 ? fetch.partNum : fetch.num }}
{
- return accumulator + Number(currentValue.num);
- }, 0);
+ let sum = 0
+ console.log(that.fetchList);
+ that.fetchList.forEach(item => {
+ if (item.manageType == 2) {
+ sum += item.partNum
+ } else {
+ sum += Number(item.num.split('.')[0])
+ }
+ })
+ /* if (that.fetchList.manageType == 2) {
+ sum = that.fetchList.reduce((accumulator, currentValue) => {
+ return accumulator + Number(currentValue.partNum);
+ }, 0);
+ } else {
+ sum = that.fetchList.reduce((accumulator, currentValue) => {
+ return accumulator + Number(currentValue.num);
+ }, 0);
+ } */
console.log("numaccumulator", sum)
return sum
}
diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js
index 3e8e4b7..b9e111b 100644
--- a/unpackage/dist/dev/app-plus/app-service.js
+++ b/unpackage/dist/dev/app-plus/app-service.js
@@ -30514,7 +30514,13 @@ var render = function () {
_c("view", [
_c("span"),
_c("h4", [
- _vm._v(_vm._$s("10-" + $30, "t0-0", _vm._s(fetch.num))),
+ _vm._v(
+ _vm._$s(
+ "10-" + $30,
+ "t0-0",
+ _vm._s(fetch.manageType == 2 ? fetch.partNum : fetch.num)
+ )
+ ),
]),
]),
_c("text", {
@@ -30854,7 +30860,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu
/***/ (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 _qs = _interopRequireDefault(__webpack_require__(/*! qs */ 394));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n fetchList: [],\n maList: [],\n codeVal: '',\n manageType: '',\n infoList: '',\n multiNum: 1,\n subList: {},\n fixVal: '',\n fixRange: [{\n text: '合格',\n value: '0'\n }, {\n text: '待修',\n value: '1'\n }, {\n text: '待报废',\n value: '2'\n }],\n passedNum: '',\n waitRepairNum: '',\n waitCrashNum: '',\n detailsId: '',\n taskId: '',\n submitFlag: false,\n taskStatus: '',\n transMaCode: '',\n rfidNum: '',\n sendTypeId: '',\n parentId: ''\n };\n },\n methods: {\n openPopup: function openPopup(list) {\n __f__(\"log\", list, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:178\");\n this.infoList = list;\n this.rfidNum = list.num;\n this.transMaCode = list.code;\n this.sendTypeId = list.typeId;\n this.parentId = list.id;\n if (Number(list.num) == 0) {\n uni.showToast({\n icon: 'none',\n title: '待退料数据为0,请勿再点击'\n });\n return;\n }\n if (this.infoList.manageType == '0') {\n this.$refs.popup1.open();\n } else if (this.infoList.manageType == '2') {\n var userInfo = uni.getStorageSync('userInfo');\n var _this$infoList = this.infoList,\n manageType = _this$infoList.manageType,\n taskId = _this$infoList.taskId;\n var userId = userInfo.userid;\n var maList = encodeURIComponent(JSON.stringify(this.infoList.maTypeDetails));\n uni.navigateTo({\n url: \"/pages/numLoanReceive/numLoanReceive?arr=\".concat(maList, \"&userId=\").concat(userId, \"&manageType=\").concat(manageType, \"&taskId=\").concat(taskId)\n });\n } else {\n var _userInfo = uni.getStorageSync('userInfo');\n __f__(\"log\", \"userInfo\", _userInfo, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:203\");\n var _userId = _userInfo.userid;\n var _this$infoList2 = this.infoList,\n _taskId = _this$infoList2.taskId,\n id = _this$infoList2.id,\n typeId = _this$infoList2.typeId,\n modelId = _this$infoList2.modelId,\n _manageType = _this$infoList2.manageType,\n typeName = _this$infoList2.typeName,\n typeCode = _this$infoList2.typeCode,\n num = _this$infoList2.num;\n var params = {\n taskId: _taskId,\n id: id,\n typeId: typeId,\n modelId: modelId,\n manageType: _manageType,\n userId: _userId,\n typeName: typeName,\n typeCode: typeCode,\n num: num\n };\n var urlStr = _qs.default.stringify(params);\n __f__(\"log\", \"urlSTR\", urlStr, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:227\");\n uni.navigateTo({\n url: \"/pages/numReceive/numReceive?\".concat(urlStr)\n });\n }\n },\n openPopup3: function openPopup3(list) {\n this.maList = list;\n this.$refs.popup3.open();\n },\n closePopup1: function closePopup1() {\n this.$refs.popup1.close();\n },\n closePopup2: function closePopup2() {\n this.$refs.popup2.close();\n },\n closePopup3: function closePopup3() {\n this.$refs.popup3.close();\n },\n scanCode: function scanCode() {\n var that = this;\n that.closePopup1();\n uni.scanCode({\n success: function success(res) {\n var fixedCode = res.result.split('=')[1];\n var userId = uni.getStorageSync('userInfo').userid;\n if (!fixedCode) {\n uni.showToast({\n icon: 'none',\n title: '未识别到设备!'\n });\n } else {\n uni.navigateTo({\n url: \"/pages/scanReceive/scanReceive?code=\".concat(fixedCode, \"&typeId=\").concat(that.infoList.modelId, \"&num=\").concat(that.infoList.num, \"&parentId=\").concat(that.infoList.id, \"&manageType=\").concat(that.infoList.manageType, \"&taskId=\").concat(that.taskId, \"&createBy=\").concat(userId, \"&scanType=\\\"back\\\"\")\n });\n }\n }\n });\n /* uni.navigateTo({\r\n \turl: `/pages/QRIn/QRIn?typeId=${that.infoList.modelId}&num=${that.infoList.num}&parentId=${that.infoList.id}&manageType=${that.infoList.manageType}&taskId=${that.taskId}&createBy=${userId}&scanType=\"back\"`\r\n }) */\n },\n codeOut: function codeOut() {\n this.closePopup1();\n var userInfo = uni.getStorageSync('userInfo');\n __f__(\"log\", \"userInfo\", userInfo, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:272\");\n var userId = userInfo.userid;\n var _this$infoList3 = this.infoList,\n taskId = _this$infoList3.taskId,\n id = _this$infoList3.id,\n typeId = _this$infoList3.typeId,\n modelId = _this$infoList3.modelId,\n manageType = _this$infoList3.manageType,\n typeName = _this$infoList3.typeName,\n typeCode = _this$infoList3.typeCode,\n num = _this$infoList3.num;\n var params = {\n taskId: taskId,\n id: id,\n typeId: typeId,\n modelId: modelId,\n manageType: manageType,\n userId: userId,\n typeName: typeName,\n typeCode: typeCode,\n num: num\n };\n var urlStr = _qs.default.stringify(params);\n __f__(\"log\", \"urlSTR\", urlStr, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:297\");\n uni.navigateTo({\n url: \"/pages/codeReceive/codeReceive?\".concat(urlStr, \"&maCode=\").concat(this.transMaCode)\n });\n },\n rfidOut: function rfidOut() {\n this.closePopup1();\n uni.navigateTo({\n url: \"/pages/rfidReceive/rfidReceive?waitOut=\".concat(this.rfidNum, \"&typeId=\").concat(this.sendTypeId, \"&parentId=\").concat(this.parentId, \"&taskId=\").concat(this.taskId)\n });\n },\n multiOut: function multiOut() {\n var that = this;\n this.closePopup2();\n that.subList = {\n parentId: that.infoList.parenntId,\n typeId: that.infoList.typeId,\n outNum: that.multiNum,\n companyId: uni.getStorageSync('userInfo').sysUser.companyId\n };\n __f__(\"log\", that.subList, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:317\");\n that.$api.fetchMaterialOutStore.subOutStore(that.subList, null).then(function (res) {\n __f__(\"log\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:319\");\n if (res.data.code == 200) {\n uni.showToast({\n icon: 'none',\n title: '退料接收成功!',\n success: function success() {\n uni.navigateBack();\n }\n });\n } else {\n uni.showToast({\n icon: 'none',\n title: '退料接收失败!'\n });\n }\n }).catch(function (err) {\n __f__(\"log\", err, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:335\");\n });\n },\n initListData: function initListData() {\n var that = this;\n __f__(\"log\", that.detailsId, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:340\");\n that.$api.backMaterialReceive.backMaterialReceiveDetail({\n id: that.detailsId\n }).then(function (res) {\n __f__(\"log\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:344\");\n if (res.data.code == 200) {\n /* for (let i = 0; i < res.data.data.length; i++) {\r\n \tres.data.data[i].num = res.data.data[i].num.split('.')[0]\r\n } */\n that.fetchList = res.data.data;\n __f__(\"log\", that.fetchList, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:350\");\n }\n }).catch(function (err) {\n __f__(\"log\", err, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:353\");\n });\n },\n backReceiveEndBackFn: function backReceiveEndBackFn() {\n var that = this;\n var total = that.reduceNumTotal();\n __f__(\"log\", \"total==\", total, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:359\");\n if (total > 0) {\n uni.showToast({\n icon: 'none',\n title: '请完成退料接收后才能结束任务'\n });\n return;\n }\n // submitFlag false\n\n if (that.submitFlag == true) {\n return;\n }\n that.submitFlag = true;\n __f__(\"log\", that.taskId, that.detailsId, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:373\");\n that.$api.backMaterialReceive.backReceiveEndBack({\n createBy: uni.getStorageSync('userInfo').userid,\n taskId: that.taskId,\n parentId: that.detailsId\n }).then(function (res) {\n __f__(\"log\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:379\");\n if (res.data.code == 200) {\n uni.showToast({\n icon: 'none',\n title: '结束任务成功'\n });\n __f__(\"log\", \"退料结束\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:385\");\n that.submitFlag = false;\n uni.navigateBack();\n } else {\n uni.showToast({\n icon: 'none',\n title: res.data.msg\n });\n }\n }).catch(function (err) {\n __f__(\"log\", err, 'sss', \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:395\");\n that.submitFlag = false;\n }).finally(function (result) {\n that.submitFlag = false;\n });\n },\n reduceNumTotal: function reduceNumTotal() {\n var that = this;\n var sum = that.fetchList.reduce(function (accumulator, currentValue) {\n return accumulator + Number(currentValue.num);\n }, 0);\n __f__(\"log\", \"numaccumulator\", sum, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:406\");\n return sum;\n }\n },\n onLoad: function onLoad(params) {\n __f__(\"log\", params, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:411\");\n this.taskId = params.taskId;\n this.detailsId = params.id;\n this.taskStatus = params.taskStatus;\n },\n onShow: function onShow() {\n this.initListData();\n },\n onNavigationBarButtonTap: function onNavigationBarButtonTap(ev) {\n __f__(\"log\", \"点击了自定义按钮\", ev, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:420\");\n var that = this;\n if (ev.text == '结束任务') {\n if (this.taskStatus == \"40\") {\n uni.showToast({\n icon: 'none',\n title: '请勿再点击'\n });\n return;\n }\n that.backReceiveEndBackFn();\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 */ 36)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvYmFja01hdGVyaWFsUmVjZWl2ZURldGFpbC9iYWNrTWF0ZXJpYWxSZWNlaXZlRGV0YWlsLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiZmV0Y2hMaXN0IiwibWFMaXN0IiwiY29kZVZhbCIsIm1hbmFnZVR5cGUiLCJpbmZvTGlzdCIsIm11bHRpTnVtIiwic3ViTGlzdCIsImZpeFZhbCIsImZpeFJhbmdlIiwidGV4dCIsInZhbHVlIiwicGFzc2VkTnVtIiwid2FpdFJlcGFpck51bSIsIndhaXRDcmFzaE51bSIsImRldGFpbHNJZCIsInRhc2tJZCIsInN1Ym1pdEZsYWciLCJ0YXNrU3RhdHVzIiwidHJhbnNNYUNvZGUiLCJyZmlkTnVtIiwic2VuZFR5cGVJZCIsInBhcmVudElkIiwibWV0aG9kcyIsIm9wZW5Qb3B1cCIsInVuaSIsImljb24iLCJ0aXRsZSIsInVybCIsImlkIiwidHlwZUlkIiwibW9kZWxJZCIsInR5cGVOYW1lIiwidHlwZUNvZGUiLCJudW0iLCJ1c2VySWQiLCJvcGVuUG9wdXAzIiwiY2xvc2VQb3B1cDEiLCJjbG9zZVBvcHVwMiIsImNsb3NlUG9wdXAzIiwic2NhbkNvZGUiLCJ0aGF0Iiwic3VjY2VzcyIsImNvZGVPdXQiLCJyZmlkT3V0IiwibXVsdGlPdXQiLCJvdXROdW0iLCJjb21wYW55SWQiLCJpbml0TGlzdERhdGEiLCJiYWNrUmVjZWl2ZUVuZEJhY2tGbiIsImNyZWF0ZUJ5IiwicmVkdWNlTnVtVG90YWwiLCJvbkxvYWQiLCJvblNob3ciLCJvbk5hdmlnYXRpb25CYXJCdXR0b25UYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUF1SUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBO0VBQ0FBO0lBQ0E7TUFDQUMsYUFFQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztNQUNBLEdBQ0E7UUFDQUQ7UUFDQUM7TUFDQSxHQUNBO1FBQ0FEO1FBQ0FDO01BQ0EsRUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBQztVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7VUFBQXZCO1VBQUFZO1FBQ0E7UUFDQTtRQUNBUztVQUNBRztRQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxzQkFTQTtVQVJBWjtVQUNBYTtVQUNBQztVQUNBQztVQUNBM0I7VUFDQTRCO1VBQ0FDO1VBQ0FDO1FBRUE7VUFDQWxCO1VBQ0FhO1VBQ0FDO1VBQ0FDO1VBQ0EzQjtVQUNBK0I7VUFDQUg7VUFDQUM7VUFDQUM7UUFDQTtRQUNBO1FBQ0E7UUFDQVQ7VUFDQUc7UUFDQTtNQUNBO0lBQ0E7SUFDQVE7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBQztNQUNBaEI7UUFDQWlCO1VBQ0E7VUFDQTtVQUNBO1lBQ0FqQjtjQUNBQztjQUNBQztZQUNBO1VBQ0E7WUFDQUY7Y0FDQUc7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0FlO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFFQSxzQkFTQTtRQVJBM0I7UUFDQWE7UUFDQUM7UUFDQUM7UUFDQTNCO1FBQ0E0QjtRQUNBQztRQUNBQztNQUVBO1FBQ0FsQjtRQUNBYTtRQUNBQztRQUNBQztRQUNBM0I7UUFDQStCO1FBQ0FIO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0FUO1FBQ0FHO01BQ0E7SUFDQTtJQUNBZ0I7TUFDQTtNQUNBbkI7UUFDQUc7TUFDQTtJQUNBO0lBQ0FpQjtNQUNBO01BQ0E7TUFDQUo7UUFDQW5CO1FBQ0FRO1FBQ0FnQjtRQUNBQztNQUNBO01BQ0E7TUFDQU47UUFDQTtRQUNBO1VBQ0FoQjtZQUNBQztZQUNBQztZQUNBZTtjQUNBakI7WUFDQTtVQUNBO1FBQ0E7VUFDQUE7WUFDQUM7WUFDQUM7VUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQXFCO01BQ0E7TUFDQTtNQUNBUDtRQUNBWjtNQUNBO1FBQ0E7UUFDQTtVQUNBO0FBQ0E7QUFDQTtVQUNBWTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBUTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0F4QjtVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUNBOztNQUVBO1FBQ0E7TUFDQTtNQUNBYztNQUNBO01BQ0FBO1FBQ0FTO1FBQ0FsQztRQUNBTTtNQUNBO1FBQ0E7UUFDQTtVQUNBRztZQUNBQztZQUNBQztVQUNBO1VBQ0E7VUFDQWM7VUFDQWhCO1FBQ0E7VUFDQUE7WUFDQUM7WUFDQUM7VUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBYztNQUNBO1FBQ0FBO01BQ0E7SUFDQTtJQUNBVTtNQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtNQUNBO1FBQ0E3QjtVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUNBYztJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjM5My5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2luZ2xlLWZldGNoXCIgdi1mb3I9XCIoZmV0Y2gsIGluZGV4KSBpbiBmZXRjaExpc3RcIiA6a2V5PVwiaW5kZXhcIiBAY2xpY2s9XCJvcGVuUG9wdXAoZmV0Y2gpXCI+XHJcblx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdDxzcGFuPuexu+Wei+WQjeensDwvc3Bhbj5cclxuXHRcdFx0XHQ8aDQ+e3sgZmV0Y2gudHlwZU5hbWUgfX08L2g0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdDxzcGFuPuinhOagvOWei+WPtzwvc3Bhbj5cclxuXHRcdFx0XHQ8aDQ+e3sgZmV0Y2gudHlwZUNvZGUgfX08L2g0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdDxzcGFuPuW+hemAgOaWmeaVsOmHjzwvc3Bhbj5cclxuXHRcdFx0XHQ8aDQ+e3sgZmV0Y2gubnVtIH19PC9oND5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dGV4dFxyXG5cdFx0XHRcdHYtc2hvdz1cImZldGNoLm1hbmFnZVR5cGUgPT0gMlwiXHJcblx0XHRcdFx0Y2xhc3M9XCJzZWUtaXRlbVwiXHJcblx0XHRcdFx0QGNsaWNrLnN0b3A9XCJvcGVuUG9wdXAzKGZldGNoLm1hVHlwZURldGFpbHMpXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdOafpeeci+mFjeS7tlxyXG5cdFx0XHQ8L3RleHQ+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dW5pLXBvcHVwIHJlZj1cInBvcHVwMVwiIHR5cGU9XCJjZW50ZXJcIiA6bWFzay1jbGljaz1cImZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAxXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtdG9wXCI+XHJcblx0XHRcdFx0XHQ8aDQ+6YCA5paZ5o6l5pS2PC9oND5cclxuXHRcdFx0XHRcdDx1bmktaWNvbnMgc3R5bGU9XCJjb2xvcjogI0FBQUFBQTsgZm9udC13ZWlnaHQ6IGJvbGQ7XCIgdHlwZT1cImNsb3NlZW1wdHlcIiBzaXplPVwiMjBcIlxyXG5cdFx0XHRcdFx0XHRAY2xpY2s9XCJjbG9zZVBvcHVwMVwiPlxyXG5cdFx0XHRcdFx0PC91bmktaWNvbnM+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDxoNSBzdHlsZT1cIndpZHRoOiA4NSU7IG1hcmdpbjogMnZoIGF1dG87IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjtcIj7or7fpgInmi6nmjqXmlLbmlrnlvI88L2g1PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VsZWN0LWFyZWFcIj5cclxuXHRcdFx0XHRcdDx2aWV3IEBjbGljaz1cInNjYW5Db2RlXCI+5LqM57u056CBPC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgQGNsaWNrPVwiY29kZU91dFwiPue8lueggeaOpeaUtjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IEBjbGljaz1cInJmaWRPdXRcIj5SRklE5o6l5pS2PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiaXB0LWFyZWFcIj5cclxuXHRcdFx0XHRcdDx1bmktZWFzeWlucHV0IHYtbW9kZWw9XCJjb2RlVmFsXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnvJbnoIFcIj48L3VuaS1lYXN5aW5wdXQ+XHJcblx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8dW5pLXBvcHVwIHJlZj1cInBvcHVwMlwiIHR5cGU9XCJjZW50ZXJcIiA6bWFzay1jbGljaz1cImZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAyXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtdG9wXCI+XHJcblx0XHRcdFx0XHQ8aDQ+6YCA5paZ5o6l5pS2PC9oND5cclxuXHRcdFx0XHRcdDx1bmktaWNvbnMgc3R5bGU9XCJjb2xvcjogI0FBQUFBQTsgZm9udC13ZWlnaHQ6IGJvbGQ7XCIgdHlwZT1cImNsb3NlZW1wdHlcIiBzaXplPVwiMjBcIlxyXG5cdFx0XHRcdFx0XHRAY2xpY2s9XCJjbG9zZVBvcHVwMlwiPlxyXG5cdFx0XHRcdFx0PC91bmktaWNvbnM+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1hcmVhXCI+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PGg0Puexu+Wei+WQjeensDwvaDQ+XHJcblx0XHRcdFx0XHRcdDxzcGFuPnt7IGluZm9MaXN0LnR5cGVOYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdDxoND7op4TmoLzlnovlj7c8L2g0PlxyXG5cdFx0XHRcdFx0XHQ8c3Bhbj57eyBpbmZvTGlzdC50eXBlTW9kZWxOYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdDxoND7lvoXlhaXlupPmlbDph488L2g0PlxyXG5cdFx0XHRcdFx0XHQ8c3Bhbj57eyBpbmZvTGlzdC5wcmVOdW0gfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8IS0tIDx2aWV3IHN0eWxlPVwiZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cclxuXHRcdFx0XHRcdFx0PGg0IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMzBycHg7XCI+5b6F5L+u54q25oCBPC9oND5cclxuXHRcdFx0XHRcdFx0PHVuaS1kYXRhLWNoZWNrYm94IHYtbW9kZWw9XCJmaXhWYWxcIiA6bG9jYWxkYXRhPVwiZml4UmFuZ2VcIj48L3VuaS1kYXRhLWNoZWNrYm94PlxyXG5cdFx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aDQ+5ZCI5qC85pWw6YePPC9oND5cclxuXHRcdFx0XHRcdFx0PHVuaS1lYXN5aW5wdXQgdHlwZT1cIm51bWJlclwiIHYtbW9kZWw9XCJwYXNzZWROdW1cIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpVwiPjwvdW5pLWVhc3lpbnB1dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aDQ+5b6F5L+u5pWw6YePPC9oND5cclxuXHRcdFx0XHRcdFx0PHVuaS1lYXN5aW5wdXQgdHlwZT1cIm51bWJlclwiIHYtbW9kZWw9XCJ3YWl0UmVwYWlyTnVtXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIj48L3VuaS1lYXN5aW5wdXQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PGg0PuW+heaKpeW6n+aVsOmHjzwvaDQ+XHJcblx0XHRcdFx0XHRcdDx1bmktZWFzeWlucHV0IHR5cGU9XCJudW1iZXJcIiB2LW1vZGVsPVwid2FpdENyYXNoTnVtXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIj48L3VuaS1lYXN5aW5wdXQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLWJ0blwiIEBjbGljaz1cIm11bHRpT3V0XCI+XHJcblx0XHRcdFx0XHTpgIDmlpnmjqXmlLZcclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PHVuaS1wb3B1cFxyXG5cdFx0XHRyZWY9XCJwb3B1cDNcIiBcclxuXHRcdFx0dHlwZT1cImNlbnRlclwiXHJcblx0XHRcdDptYXNrLWNsaWNrPVwiZmFsc2VcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwM1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wLXRvcFwiPlxyXG5cdFx0XHRcdFx0PGg0Puafpeeci+mFjeS7tjwvaDQ+XHJcblx0XHRcdFx0XHQ8dW5pLWljb25zIFxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiAjQUFBQUFBOyBmb250LXdlaWdodDogYm9sZDtcIiBcclxuXHRcdFx0XHRcdFx0dHlwZT1cImNsb3NlZW1wdHlcIiBcclxuXHRcdFx0XHRcdFx0c2l6ZT1cIjIwXCJcclxuXHRcdFx0XHRcdFx0QGNsaWNrPVwiY2xvc2VQb3B1cDNcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PC91bmktaWNvbnM+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1kZXRhaWxcIj5cclxuXHRcdFx0XHRcdDx2aWV3IFxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInNpbmdsZS1pdGVtXCJcclxuXHRcdFx0XHRcdFx0di1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIG1hTGlzdFwiXHJcblx0XHRcdFx0XHRcdDprZXk9XCJpbmRleFwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxoND7luo/lj7c8L2g0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPnt7IGluZGV4ICsgMSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8aDQ+57G75Z6L5ZCN56ewPC9oND5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBpdGVtLnR5cGVOYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxoND7op4TmoLzlnovlj7c8L2g0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPnt7IGl0ZW0udHlwZU1vZGVsTmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8aDQ+5Y2V5L2NPC9oND5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBpdGVtLnVuaXROYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxoND7pooTpoobmlbDph488L2g0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPnt7IGl0ZW0ucGFydE51bSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktcG9wdXA+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFFTIGZyb20gXCJxc1wiXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRkYXRhKCkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0ZmV0Y2hMaXN0OiBbXHJcblxyXG5cdFx0XHRdLFxyXG5cdFx0XHRtYUxpc3Q6IFtdLFxyXG5cdFx0XHRjb2RlVmFsOiAnJyxcclxuXHRcdFx0bWFuYWdlVHlwZTogJycsXHJcblx0XHRcdGluZm9MaXN0OiAnJyxcclxuXHRcdFx0bXVsdGlOdW06IDEsXHJcblx0XHRcdHN1Ykxpc3Q6IHt9LFxyXG5cdFx0XHRmaXhWYWw6ICcnLFxyXG5cdFx0XHRmaXhSYW5nZTogW3tcclxuXHRcdFx0XHR0ZXh0OiAn5ZCI5qC8JyxcclxuXHRcdFx0XHR2YWx1ZTogJzAnXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR0ZXh0OiAn5b6F5L+uJyxcclxuXHRcdFx0XHR2YWx1ZTogJzEnXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR0ZXh0OiAn5b6F5oql5bqfJyxcclxuXHRcdFx0XHR2YWx1ZTogJzInXHJcblx0XHRcdH1cclxuXHRcdFx0XSxcclxuXHRcdFx0cGFzc2VkTnVtOiAnJyxcclxuXHRcdFx0d2FpdFJlcGFpck51bTogJycsXHJcblx0XHRcdHdhaXRDcmFzaE51bTogJycsXHJcblx0XHRcdGRldGFpbHNJZDogJycsXHJcblx0XHRcdHRhc2tJZDogJycsXHJcblx0XHRcdHN1Ym1pdEZsYWc6IGZhbHNlLFxyXG5cdFx0XHR0YXNrU3RhdHVzOiAnJyxcclxuXHRcdFx0dHJhbnNNYUNvZGU6ICcnLFxyXG5cdFx0XHRyZmlkTnVtOiAnJyxcclxuXHRcdFx0c2VuZFR5cGVJZDogJycsXHJcblx0XHRcdHBhcmVudElkOiAnJ1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0bWV0aG9kczoge1xyXG5cdFx0b3BlblBvcHVwKGxpc3QpIHtcclxuXHRcdFx0Y29uc29sZS5sb2cobGlzdCk7XHJcblx0XHRcdHRoaXMuaW5mb0xpc3QgPSBsaXN0XHJcblx0XHRcdHRoaXMucmZpZE51bSA9IGxpc3QubnVtXHJcblx0XHRcdHRoaXMudHJhbnNNYUNvZGUgPSBsaXN0LmNvZGVcclxuXHRcdFx0dGhpcy5zZW5kVHlwZUlkID0gbGlzdC50eXBlSWRcclxuXHRcdFx0dGhpcy5wYXJlbnRJZCA9IGxpc3QuaWRcclxuXHRcdFx0aWYgKE51bWJlcihsaXN0Lm51bSkgPT0gMCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0dGl0bGU6ICflvoXpgIDmlpnmlbDmja7kuLow77yM6K+35Yu/5YaN54K55Ye7J1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuaW5mb0xpc3QubWFuYWdlVHlwZSA9PSAnMCcpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnBvcHVwMS5vcGVuKClcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLmluZm9MaXN0Lm1hbmFnZVR5cGUgPT0gJzInKSB7XHJcblx0XHRcdFx0Y29uc3QgdXNlckluZm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJyk7XHJcblx0XHRcdFx0Y29uc3QgeyBtYW5hZ2VUeXBlLCB0YXNrSWQgfSA9IHRoaXMuaW5mb0xpc3RcclxuXHRcdFx0XHRjb25zdCB1c2VySWQgPSB1c2VySW5mby51c2VyaWRcclxuXHRcdFx0XHRjb25zdCBtYUxpc3QgPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodGhpcy5pbmZvTGlzdC5tYVR5cGVEZXRhaWxzKSkgXHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOiBgL3BhZ2VzL251bUxvYW5SZWNlaXZlL251bUxvYW5SZWNlaXZlP2Fycj0ke21hTGlzdH0mdXNlcklkPSR7dXNlcklkfSZtYW5hZ2VUeXBlPSR7bWFuYWdlVHlwZX0mdGFza0lkPSR7dGFza0lkfWBcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnN0IHVzZXJJbmZvID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwidXNlckluZm9cIiwgdXNlckluZm8pXHJcblx0XHRcdFx0Y29uc3QgdXNlcklkID0gdXNlckluZm8udXNlcmlkXHJcblx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0dGFza0lkLFxyXG5cdFx0XHRcdFx0aWQsXHJcblx0XHRcdFx0XHR0eXBlSWQsXHJcblx0XHRcdFx0XHRtb2RlbElkLFxyXG5cdFx0XHRcdFx0bWFuYWdlVHlwZSxcclxuXHRcdFx0XHRcdHR5cGVOYW1lLFxyXG5cdFx0XHRcdFx0dHlwZUNvZGUsXHJcblx0XHRcdFx0XHRudW1cclxuXHRcdFx0XHR9ID0gdGhpcy5pbmZvTGlzdFxyXG5cdFx0XHRcdGNvbnN0IHBhcmFtcyA9IHtcclxuXHRcdFx0XHRcdHRhc2tJZCxcclxuXHRcdFx0XHRcdGlkLFxyXG5cdFx0XHRcdFx0dHlwZUlkLFxyXG5cdFx0XHRcdFx0bW9kZWxJZCxcclxuXHRcdFx0XHRcdG1hbmFnZVR5cGUsXHJcblx0XHRcdFx0XHR1c2VySWQsXHJcblx0XHRcdFx0XHR0eXBlTmFtZSxcclxuXHRcdFx0XHRcdHR5cGVDb2RlLFxyXG5cdFx0XHRcdFx0bnVtXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnN0IHVybFN0ciA9IFFTLnN0cmluZ2lmeShwYXJhbXMpXHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCJ1cmxTVFJcIiwgdXJsU3RyKVxyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybDogYC9wYWdlcy9udW1SZWNlaXZlL251bVJlY2VpdmU/JHt1cmxTdHJ9YFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvcGVuUG9wdXAzIChsaXN0KSB7XHJcblx0XHRcdHRoaXMubWFMaXN0ID0gbGlzdFxyXG5cdFx0XHR0aGlzLiRyZWZzLnBvcHVwMy5vcGVuKClcclxuXHRcdH0sXHJcblx0XHRjbG9zZVBvcHVwMSgpIHtcclxuXHRcdFx0dGhpcy4kcmVmcy5wb3B1cDEuY2xvc2UoKVxyXG5cdFx0fSxcclxuXHRcdGNsb3NlUG9wdXAyKCkge1xyXG5cdFx0XHR0aGlzLiRyZWZzLnBvcHVwMi5jbG9zZSgpXHJcblx0XHR9LFxyXG5cdFx0Y2xvc2VQb3B1cDMoKSB7XHJcblx0XHRcdHRoaXMuJHJlZnMucG9wdXAzLmNsb3NlKClcclxuXHRcdH0sXHJcblx0XHRzY2FuQ29kZSgpIHtcclxuXHRcdFx0Y29uc3QgdGhhdCA9IHRoaXNcclxuXHRcdFx0dGhhdC5jbG9zZVBvcHVwMSgpXHJcblx0XHRcdHVuaS5zY2FuQ29kZSh7XHJcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgZml4ZWRDb2RlID0gcmVzLnJlc3VsdC5zcGxpdCgnPScpWzFdXHJcblx0XHRcdFx0XHRjb25zdCB1c2VySWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJykudXNlcmlkXHJcblx0XHRcdFx0XHRpZiAoIWZpeGVkQ29kZSkge1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6ICfmnKror4bliKvliLDorr7lpIfvvIEnXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHRcdFx0dXJsOiBgL3BhZ2VzL3NjYW5SZWNlaXZlL3NjYW5SZWNlaXZlP2NvZGU9JHtmaXhlZENvZGV9JnR5cGVJZD0ke3RoYXQuaW5mb0xpc3QubW9kZWxJZH0mbnVtPSR7dGhhdC5pbmZvTGlzdC5udW19JnBhcmVudElkPSR7dGhhdC5pbmZvTGlzdC5pZH0mbWFuYWdlVHlwZT0ke3RoYXQuaW5mb0xpc3QubWFuYWdlVHlwZX0mdGFza0lkPSR7dGhhdC50YXNrSWR9JmNyZWF0ZUJ5PSR7dXNlcklkfSZzY2FuVHlwZT1cImJhY2tcImBcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHRcdC8qIHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHR1cmw6IGAvcGFnZXMvUVJJbi9RUkluP3R5cGVJZD0ke3RoYXQuaW5mb0xpc3QubW9kZWxJZH0mbnVtPSR7dGhhdC5pbmZvTGlzdC5udW19JnBhcmVudElkPSR7dGhhdC5pbmZvTGlzdC5pZH0mbWFuYWdlVHlwZT0ke3RoYXQuaW5mb0xpc3QubWFuYWdlVHlwZX0mdGFza0lkPSR7dGhhdC50YXNrSWR9JmNyZWF0ZUJ5PSR7dXNlcklkfSZzY2FuVHlwZT1cImJhY2tcImBcclxuXHRcdFx0fSkgKi9cclxuXHRcdH0sXHJcblx0XHRjb2RlT3V0KCkge1xyXG5cdFx0XHR0aGlzLmNsb3NlUG9wdXAxKClcclxuXHRcdFx0Y29uc3QgdXNlckluZm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJyk7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwidXNlckluZm9cIiwgdXNlckluZm8pXHJcblx0XHRcdGNvbnN0IHVzZXJJZCA9IHVzZXJJbmZvLnVzZXJpZFxyXG5cclxuXHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdHRhc2tJZCxcclxuXHRcdFx0XHRpZCxcclxuXHRcdFx0XHR0eXBlSWQsXHJcblx0XHRcdFx0bW9kZWxJZCxcclxuXHRcdFx0XHRtYW5hZ2VUeXBlLFxyXG5cdFx0XHRcdHR5cGVOYW1lLFxyXG5cdFx0XHRcdHR5cGVDb2RlLFxyXG5cdFx0XHRcdG51bVxyXG5cdFx0XHR9ID0gdGhpcy5pbmZvTGlzdFxyXG5cdFx0XHRjb25zdCBwYXJhbXMgPSB7XHJcblx0XHRcdFx0dGFza0lkLFxyXG5cdFx0XHRcdGlkLFxyXG5cdFx0XHRcdHR5cGVJZCxcclxuXHRcdFx0XHRtb2RlbElkLFxyXG5cdFx0XHRcdG1hbmFnZVR5cGUsXHJcblx0XHRcdFx0dXNlcklkLFxyXG5cdFx0XHRcdHR5cGVOYW1lLFxyXG5cdFx0XHRcdHR5cGVDb2RlLFxyXG5cdFx0XHRcdG51bVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IHVybFN0ciA9IFFTLnN0cmluZ2lmeShwYXJhbXMpXHJcblx0XHRcdGNvbnNvbGUubG9nKFwidXJsU1RSXCIsIHVybFN0cilcclxuXHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdHVybDogYC9wYWdlcy9jb2RlUmVjZWl2ZS9jb2RlUmVjZWl2ZT8ke3VybFN0cn0mbWFDb2RlPSR7dGhpcy50cmFuc01hQ29kZX1gXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0cmZpZE91dCgpIHtcclxuXHRcdFx0dGhpcy5jbG9zZVBvcHVwMSgpXHJcblx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHR1cmw6IGAvcGFnZXMvcmZpZFJlY2VpdmUvcmZpZFJlY2VpdmU/d2FpdE91dD0ke3RoaXMucmZpZE51bX0mdHlwZUlkPSR7dGhpcy5zZW5kVHlwZUlkfSZwYXJlbnRJZD0ke3RoaXMucGFyZW50SWR9JnRhc2tJZD0ke3RoaXMudGFza0lkfWBcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRtdWx0aU91dCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdHRoaXMuY2xvc2VQb3B1cDIoKVxyXG5cdFx0XHR0aGF0LnN1Ykxpc3QgPSB7XHJcblx0XHRcdFx0cGFyZW50SWQ6IHRoYXQuaW5mb0xpc3QucGFyZW5udElkLFxyXG5cdFx0XHRcdHR5cGVJZDogdGhhdC5pbmZvTGlzdC50eXBlSWQsXHJcblx0XHRcdFx0b3V0TnVtOiB0aGF0Lm11bHRpTnVtLFxyXG5cdFx0XHRcdGNvbXBhbnlJZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpLnN5c1VzZXIuY29tcGFueUlkXHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc29sZS5sb2codGhhdC5zdWJMaXN0KTtcclxuXHRcdFx0dGhhdC4kYXBpLmZldGNoTWF0ZXJpYWxPdXRTdG9yZS5zdWJPdXRTdG9yZSh0aGF0LnN1Ykxpc3QsIG51bGwpLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdGlmIChyZXMuZGF0YS5jb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfpgIDmlpnmjqXmlLbmiJDlip/vvIEnLFxyXG5cdFx0XHRcdFx0XHRzdWNjZXNzOiAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjaygpXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6YCA5paZ5o6l5pS25aSx6LSl77yBJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRpbml0TGlzdERhdGEoKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRjb25zb2xlLmxvZyh0aGF0LmRldGFpbHNJZCk7XHJcblx0XHRcdHRoYXQuJGFwaS5iYWNrTWF0ZXJpYWxSZWNlaXZlLmJhY2tNYXRlcmlhbFJlY2VpdmVEZXRhaWwoe1xyXG5cdFx0XHRcdGlkOiB0aGF0LmRldGFpbHNJZFxyXG5cdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdC8qIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzLmRhdGEuZGF0YS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRyZXMuZGF0YS5kYXRhW2ldLm51bSA9IHJlcy5kYXRhLmRhdGFbaV0ubnVtLnNwbGl0KCcuJylbMF1cclxuXHRcdFx0XHRcdH0gKi9cclxuXHRcdFx0XHRcdHRoYXQuZmV0Y2hMaXN0ID0gcmVzLmRhdGEuZGF0YVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5mZXRjaExpc3QpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSkuY2F0Y2goZXJyID0+IHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdGJhY2tSZWNlaXZlRW5kQmFja0ZuKCkge1xyXG5cdFx0XHRjb25zdCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRsZXQgdG90YWwgPSB0aGF0LnJlZHVjZU51bVRvdGFsKClcclxuXHRcdFx0Y29uc29sZS5sb2coXCJ0b3RhbD09XCIsIHRvdGFsKVxyXG5cdFx0XHRpZiAodG90YWwgPiAwKSB7XHJcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+WujOaIkOmAgOaWmeaOpeaUtuWQjuaJjeiDvee7k+adn+S7u+WKoSdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9XHJcblx0XHRcdC8vIHN1Ym1pdEZsYWcgZmFsc2VcclxuXHJcblx0XHRcdGlmICh0aGF0LnN1Ym1pdEZsYWcgPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9XHJcblx0XHRcdHRoYXQuc3VibWl0RmxhZyA9IHRydWVcclxuXHRcdFx0Y29uc29sZS5sb2codGhhdC50YXNrSWQsIHRoYXQuZGV0YWlsc0lkKTtcclxuXHRcdFx0dGhhdC4kYXBpLmJhY2tNYXRlcmlhbFJlY2VpdmUuYmFja1JlY2VpdmVFbmRCYWNrKHtcclxuXHRcdFx0XHRjcmVhdGVCeTogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpLnVzZXJpZCxcclxuXHRcdFx0XHR0YXNrSWQ6IHRoYXQudGFza0lkLFxyXG5cdFx0XHRcdHBhcmVudElkOiB0aGF0LmRldGFpbHNJZFxyXG5cdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2cocmVzKVxyXG5cdFx0XHRcdGlmIChyZXMuZGF0YS5jb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfnu5PmnZ/ku7vliqHmiJDlip8nXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLpgIDmlpnnu5PmnZ9cIiwgcmVzKVxyXG5cdFx0XHRcdFx0dGhhdC5zdWJtaXRGbGFnID0gZmFsc2VcclxuXHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHR0aXRsZTogcmVzLmRhdGEubXNnXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSkuY2F0Y2goZXJyID0+IHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhlcnIsICdzc3MnKTtcclxuXHRcdFx0XHR0aGF0LnN1Ym1pdEZsYWcgPSBmYWxzZVxyXG5cdFx0XHR9KS5maW5hbGx5KHJlc3VsdCA9PiB7XHJcblx0XHRcdFx0dGhhdC5zdWJtaXRGbGFnID0gZmFsc2VcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRyZWR1Y2VOdW1Ub3RhbCgpIHtcclxuXHRcdFx0Y29uc3QgdGhhdCA9IHRoaXNcclxuXHRcdFx0bGV0IHN1bSA9IHRoYXQuZmV0Y2hMaXN0LnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiBhY2N1bXVsYXRvciArIE51bWJlcihjdXJyZW50VmFsdWUubnVtKTtcclxuXHRcdFx0fSwgMCk7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwibnVtYWNjdW11bGF0b3JcIiwgc3VtKVxyXG5cdFx0XHRyZXR1cm4gc3VtXHJcblx0XHR9XHJcblx0fSxcclxuXHRvbkxvYWQocGFyYW1zKSB7XHJcblx0XHRjb25zb2xlLmxvZyhwYXJhbXMpO1xyXG5cdFx0dGhpcy50YXNrSWQgPSBwYXJhbXMudGFza0lkXHJcblx0XHR0aGlzLmRldGFpbHNJZCA9IHBhcmFtcy5pZFxyXG5cdFx0dGhpcy50YXNrU3RhdHVzID0gcGFyYW1zLnRhc2tTdGF0dXNcclxuXHR9LFxyXG5cdG9uU2hvdygpIHtcclxuXHRcdHRoaXMuaW5pdExpc3REYXRhKClcclxuXHR9LFxyXG5cdG9uTmF2aWdhdGlvbkJhckJ1dHRvblRhcChldikge1xyXG5cdFx0Y29uc29sZS5sb2coXCLngrnlh7vkuoboh6rlrprkuYnmjInpkq5cIiwgZXYpO1xyXG5cdFx0Y29uc3QgdGhhdCA9IHRoaXNcclxuXHRcdGlmIChldi50ZXh0ID09ICfnu5PmnZ/ku7vliqEnKSB7XHJcblx0XHRcdGlmICh0aGlzLnRhc2tTdGF0dXMgPT0gXCI0MFwiKSB7XHJcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+WLv+WGjeeCueWHuydcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9XHJcblx0XHRcdHRoYXQuYmFja1JlY2VpdmVFbmRCYWNrRm4oKVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG4uc2luZ2xlLWZldGNoIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdHBhZGRpbmc6IDIwcnB4IDM1cnB4O1xyXG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREREREREO1xyXG5cclxuXHR2aWV3IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjVycHg7XHJcblxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGNvbG9yOiAjQTdBN0E3O1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHJweDtcclxuXHRcdH1cclxuXHJcblx0XHRoNCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHZpZXc6bGFzdC1jaGlsZCB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdH1cclxuXHQuc2VlLWl0ZW17XHJcblx0XHR3aWR0aDogMzAlO1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdHBhZGRpbmc6IDVycHggMTBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNXJweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzc4OEZGO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdH1cclxufVxyXG5cclxuLmJ0bS1leGFtIHtcclxuXHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0bGVmdDogMDtcclxuXHRib3R0b206IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRwYWRkaW5nOiAyMHJweCA0MHJweDtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcblx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICNGNkY4RkY7XHJcblxyXG5cdC5leGFtIHtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRwYWRkaW5nOiAxMHJweCA1MHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDMwcnB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM3ODhGRjtcclxuXHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdH1cclxufVxyXG5cclxuLnBvcHVwMSB7XHJcblx0d2lkdGg6IDgwdnc7XHJcblx0aGVpZ2h0OiAyMHZoO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0Ym9yZGVyLXJhZGl1czogMTVycHg7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI0Q5RTdGRSwgI2ZmZiwgI2ZmZiwgI2ZmZik7XHJcblxyXG5cdC5wb3AtdG9wIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA1dmg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cGFkZGluZzogMCAyNXJweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LnNlbGVjdC1hcmVhIHtcclxuXHRcdHdpZHRoOiA4NSU7XHJcblx0XHRtYXJnaW46IDQwcnB4IGF1dG87XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuXHRcdHZpZXcge1xyXG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRcdHBhZGRpbmc6IDEwcnB4IDIwcnB4O1xyXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjRDVENUQ0O1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAyMHJweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5pcHQtYXJlYSB7XHJcblx0XHR3aWR0aDogODUlO1xyXG5cdFx0bWFyZ2luOiA0MHJweCBhdXRvO1xyXG5cdH1cclxufVxyXG5cclxuLnBvcHVwMiB7XHJcblx0d2lkdGg6IDgwdnc7XHJcblx0aGVpZ2h0OiA2MHZoO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0Ym9yZGVyLXJhZGl1czogMTVycHg7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI0Q5RTdGRSwgI2ZmZiwgI2ZmZiwgI2ZmZik7XHJcblxyXG5cdC5wb3AtdG9wIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA1dmg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cGFkZGluZzogMCAyNXJweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LmluZm8tYXJlYSB7XHJcblx0XHR3aWR0aDogODUlO1xyXG5cdFx0bWFyZ2luOiAzMHJweCBhdXRvO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG5cdFx0dmlldyB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDE1cnB4O1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuXHRcdFx0aDQge1xyXG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcblx0XHRcdFx0Y29sb3I6ICM5ODk4OTg7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRcdHdpZHRoOiAzNSU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnN1Yi1idG4ge1xyXG5cdFx0d2lkdGg6IDg1JTtcclxuXHRcdG1hcmdpbjogMzBycHggYXV0bztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNzg4RkY7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRwYWRkaW5nOiAxNXJweCAwO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDQwcnB4O1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdH1cclxufVxyXG4ucG9wdXAze1xyXG5cdFx0d2lkdGg6IDgwdnc7XHJcblx0XHRoZWlnaHQ6IDYwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTVycHg7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNEOUU3RkUsICNmZmYsICNmZmYsICNmZmYpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHQucG9wLXRvcHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGhlaWdodDogNXZoO1xyXG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0XHRwYWRkaW5nOiAwIDI1cnB4O1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHR9XHJcblx0XHQuaXRlbS1kZXRhaWx7XHJcblx0XHRcdGZsZXg6IDE7XHJcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdFx0cGFkZGluZzogMjVycHg7XHJcblx0XHRcdC5zaW5nbGUtaXRlbXtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RERERERDtcclxuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0XHRcdHBhZGRpbmc6IDI1cnB4IDA7XHJcblx0XHRcdFx0dmlld3tcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTBycHg7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGg0e1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogMzUlO1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogI0E3QTdBNztcclxuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dmlldzpsYXN0LWNoaWxke1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LnNpbmdsZS1pdGVtOmxhc3QtY2hpbGR7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///393\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 _qs = _interopRequireDefault(__webpack_require__(/*! qs */ 394));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n fetchList: [],\n maList: [],\n codeVal: '',\n manageType: '',\n infoList: '',\n multiNum: 1,\n subList: {},\n fixVal: '',\n fixRange: [{\n text: '合格',\n value: '0'\n }, {\n text: '待修',\n value: '1'\n }, {\n text: '待报废',\n value: '2'\n }],\n passedNum: '',\n waitRepairNum: '',\n waitCrashNum: '',\n detailsId: '',\n taskId: '',\n submitFlag: false,\n taskStatus: '',\n transMaCode: '',\n rfidNum: '',\n sendTypeId: '',\n parentId: ''\n };\n },\n methods: {\n openPopup: function openPopup(list) {\n __f__(\"log\", list, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:178\");\n this.infoList = list;\n this.rfidNum = list.num;\n this.transMaCode = list.code;\n this.sendTypeId = list.typeId;\n this.parentId = list.id;\n if (list.manageType == 2) {\n if (Number(list.partNum) == 0) {\n uni.showToast({\n icon: 'none',\n title: '待退料数据为0,请勿再点击'\n });\n }\n return;\n } else {\n if (Number(list.num) == 0) {\n uni.showToast({\n icon: 'none',\n title: '待退料数据为0,请勿再点击'\n });\n }\n return;\n }\n if (Number(list.num) == 0) {\n uni.showToast({\n icon: 'none',\n title: '待退料数据为0,请勿再点击'\n });\n }\n if (this.infoList.manageType == '0') {\n this.$refs.popup1.open();\n } else if (this.infoList.manageType == '2') {\n var userInfo = uni.getStorageSync('userInfo');\n var _this$infoList = this.infoList,\n manageType = _this$infoList.manageType,\n taskId = _this$infoList.taskId;\n var userId = userInfo.userid;\n var maList = encodeURIComponent(JSON.stringify(this.infoList.maTypeDetails));\n uni.navigateTo({\n url: \"/pages/numLoanReceive/numLoanReceive?arr=\".concat(maList, \"&userId=\").concat(userId, \"&manageType=\").concat(manageType, \"&taskId=\").concat(taskId)\n });\n } else {\n var _userInfo = uni.getStorageSync('userInfo');\n __f__(\"log\", \"userInfo\", _userInfo, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:219\");\n var _userId = _userInfo.userid;\n var _this$infoList2 = this.infoList,\n _taskId = _this$infoList2.taskId,\n id = _this$infoList2.id,\n typeId = _this$infoList2.typeId,\n modelId = _this$infoList2.modelId,\n _manageType = _this$infoList2.manageType,\n typeName = _this$infoList2.typeName,\n typeCode = _this$infoList2.typeCode,\n num = _this$infoList2.num;\n var params = {\n taskId: _taskId,\n id: id,\n typeId: typeId,\n modelId: modelId,\n manageType: _manageType,\n userId: _userId,\n typeName: typeName,\n typeCode: typeCode,\n num: num\n };\n var urlStr = _qs.default.stringify(params);\n __f__(\"log\", \"urlSTR\", urlStr, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:243\");\n uni.navigateTo({\n url: \"/pages/numReceive/numReceive?\".concat(urlStr)\n });\n }\n },\n openPopup3: function openPopup3(list) {\n this.maList = list;\n this.$refs.popup3.open();\n },\n closePopup1: function closePopup1() {\n this.$refs.popup1.close();\n },\n closePopup2: function closePopup2() {\n this.$refs.popup2.close();\n },\n closePopup3: function closePopup3() {\n this.$refs.popup3.close();\n },\n scanCode: function scanCode() {\n var that = this;\n that.closePopup1();\n uni.scanCode({\n success: function success(res) {\n var fixedCode = res.result.split('=')[1];\n var userId = uni.getStorageSync('userInfo').userid;\n if (!fixedCode) {\n uni.showToast({\n icon: 'none',\n title: '未识别到设备!'\n });\n } else {\n uni.navigateTo({\n url: \"/pages/scanReceive/scanReceive?code=\".concat(fixedCode, \"&typeId=\").concat(that.infoList.modelId, \"&num=\").concat(that.infoList.num, \"&parentId=\").concat(that.infoList.id, \"&manageType=\").concat(that.infoList.manageType, \"&taskId=\").concat(that.taskId, \"&createBy=\").concat(userId, \"&scanType=\\\"back\\\"\")\n });\n }\n }\n });\n /* uni.navigateTo({\r\n \turl: `/pages/QRIn/QRIn?typeId=${that.infoList.modelId}&num=${that.infoList.num}&parentId=${that.infoList.id}&manageType=${that.infoList.manageType}&taskId=${that.taskId}&createBy=${userId}&scanType=\"back\"`\r\n }) */\n },\n codeOut: function codeOut() {\n this.closePopup1();\n var userInfo = uni.getStorageSync('userInfo');\n __f__(\"log\", \"userInfo\", userInfo, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:288\");\n var userId = userInfo.userid;\n var _this$infoList3 = this.infoList,\n taskId = _this$infoList3.taskId,\n id = _this$infoList3.id,\n typeId = _this$infoList3.typeId,\n modelId = _this$infoList3.modelId,\n manageType = _this$infoList3.manageType,\n typeName = _this$infoList3.typeName,\n typeCode = _this$infoList3.typeCode,\n num = _this$infoList3.num;\n var params = {\n taskId: taskId,\n id: id,\n typeId: typeId,\n modelId: modelId,\n manageType: manageType,\n userId: userId,\n typeName: typeName,\n typeCode: typeCode,\n num: num\n };\n var urlStr = _qs.default.stringify(params);\n __f__(\"log\", \"urlSTR\", urlStr, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:313\");\n uni.navigateTo({\n url: \"/pages/codeReceive/codeReceive?\".concat(urlStr, \"&maCode=\").concat(this.transMaCode)\n });\n },\n rfidOut: function rfidOut() {\n this.closePopup1();\n uni.navigateTo({\n url: \"/pages/rfidReceive/rfidReceive?waitOut=\".concat(this.rfidNum, \"&typeId=\").concat(this.sendTypeId, \"&parentId=\").concat(this.parentId, \"&taskId=\").concat(this.taskId)\n });\n },\n multiOut: function multiOut() {\n var that = this;\n this.closePopup2();\n that.subList = {\n parentId: that.infoList.parenntId,\n typeId: that.infoList.typeId,\n outNum: that.multiNum,\n companyId: uni.getStorageSync('userInfo').sysUser.companyId\n };\n __f__(\"log\", that.subList, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:333\");\n that.$api.fetchMaterialOutStore.subOutStore(that.subList, null).then(function (res) {\n __f__(\"log\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:335\");\n if (res.data.code == 200) {\n uni.showToast({\n icon: 'none',\n title: '退料接收成功!',\n success: function success() {\n uni.navigateBack();\n }\n });\n } else {\n uni.showToast({\n icon: 'none',\n title: '退料接收失败!'\n });\n }\n }).catch(function (err) {\n __f__(\"log\", err, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:351\");\n });\n },\n initListData: function initListData() {\n var that = this;\n __f__(\"log\", that.detailsId, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:356\");\n that.$api.backMaterialReceive.backMaterialReceiveDetail({\n id: that.detailsId\n }).then(function (res) {\n __f__(\"log\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:360\");\n if (res.data.code == 200) {\n /* for (let i = 0; i < res.data.data.length; i++) {\r\n \tres.data.data[i].num = res.data.data[i].num.split('.')[0]\r\n } */\n that.fetchList = res.data.data;\n __f__(\"log\", that.fetchList, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:366\");\n }\n }).catch(function (err) {\n __f__(\"log\", err, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:369\");\n });\n },\n backReceiveEndBackFn: function backReceiveEndBackFn() {\n var that = this;\n var total = that.reduceNumTotal();\n __f__(\"log\", \"total==\", total, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:375\");\n if (total > 0) {\n uni.showToast({\n icon: 'none',\n title: '请完成退料接收后才能结束任务'\n });\n return;\n }\n // submitFlag false\n\n if (that.submitFlag == true) {\n return;\n }\n that.submitFlag = true;\n __f__(\"log\", that.taskId, that.detailsId, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:389\");\n that.$api.backMaterialReceive.backReceiveEndBack({\n createBy: uni.getStorageSync('userInfo').userid,\n taskId: that.taskId,\n parentId: that.detailsId\n }).then(function (res) {\n __f__(\"log\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:395\");\n if (res.data.code == 200) {\n uni.showToast({\n icon: 'none',\n title: '结束任务成功'\n });\n __f__(\"log\", \"退料结束\", res, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:401\");\n that.submitFlag = false;\n uni.navigateBack();\n } else {\n uni.showToast({\n icon: 'none',\n title: res.data.msg\n });\n }\n }).catch(function (err) {\n __f__(\"log\", err, 'sss', \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:411\");\n that.submitFlag = false;\n }).finally(function (result) {\n that.submitFlag = false;\n });\n },\n reduceNumTotal: function reduceNumTotal() {\n var that = this;\n var sum = 0;\n __f__(\"log\", that.fetchList, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:420\");\n that.fetchList.forEach(function (item) {\n if (item.manageType == 2) {\n sum += item.partNum;\n } else {\n sum += Number(item.num.split('.')[0]);\n }\n });\n /* if (that.fetchList.manageType == 2) {\r\n \tsum = that.fetchList.reduce((accumulator, currentValue) => {\r\n \t\treturn accumulator + Number(currentValue.partNum);\r\n \t}, 0);\r\n } else {\r\n \tsum = that.fetchList.reduce((accumulator, currentValue) => {\r\n \t\treturn accumulator + Number(currentValue.num);\r\n \t}, 0);\r\n } */\n __f__(\"log\", \"numaccumulator\", sum, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:437\");\n return sum;\n }\n },\n onLoad: function onLoad(params) {\n __f__(\"log\", params, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:442\");\n this.taskId = params.taskId;\n this.detailsId = params.id;\n this.taskStatus = params.taskStatus;\n },\n onShow: function onShow() {\n this.initListData();\n },\n onNavigationBarButtonTap: function onNavigationBarButtonTap(ev) {\n __f__(\"log\", \"点击了自定义按钮\", ev, \" at pages/backMaterialReceiveDetail/backMaterialReceiveDetail.vue:451\");\n var that = this;\n if (ev.text == '结束任务') {\n if (this.taskStatus == \"40\") {\n uni.showToast({\n icon: 'none',\n title: '请勿再点击'\n });\n return;\n }\n that.backReceiveEndBackFn();\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 */ 36)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvYmFja01hdGVyaWFsUmVjZWl2ZURldGFpbC9iYWNrTWF0ZXJpYWxSZWNlaXZlRGV0YWlsLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiZmV0Y2hMaXN0IiwibWFMaXN0IiwiY29kZVZhbCIsIm1hbmFnZVR5cGUiLCJpbmZvTGlzdCIsIm11bHRpTnVtIiwic3ViTGlzdCIsImZpeFZhbCIsImZpeFJhbmdlIiwidGV4dCIsInZhbHVlIiwicGFzc2VkTnVtIiwid2FpdFJlcGFpck51bSIsIndhaXRDcmFzaE51bSIsImRldGFpbHNJZCIsInRhc2tJZCIsInN1Ym1pdEZsYWciLCJ0YXNrU3RhdHVzIiwidHJhbnNNYUNvZGUiLCJyZmlkTnVtIiwic2VuZFR5cGVJZCIsInBhcmVudElkIiwibWV0aG9kcyIsIm9wZW5Qb3B1cCIsInVuaSIsImljb24iLCJ0aXRsZSIsInVybCIsImlkIiwidHlwZUlkIiwibW9kZWxJZCIsInR5cGVOYW1lIiwidHlwZUNvZGUiLCJudW0iLCJ1c2VySWQiLCJvcGVuUG9wdXAzIiwiY2xvc2VQb3B1cDEiLCJjbG9zZVBvcHVwMiIsImNsb3NlUG9wdXAzIiwic2NhbkNvZGUiLCJ0aGF0Iiwic3VjY2VzcyIsImNvZGVPdXQiLCJyZmlkT3V0IiwibXVsdGlPdXQiLCJvdXROdW0iLCJjb21wYW55SWQiLCJpbml0TGlzdERhdGEiLCJiYWNrUmVjZWl2ZUVuZEJhY2tGbiIsImNyZWF0ZUJ5IiwicmVkdWNlTnVtVG90YWwiLCJzdW0iLCJvbkxvYWQiLCJvblNob3ciLCJvbk5hdmlnYXRpb25CYXJCdXR0b25UYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUF1SUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBO0VBQ0FBO0lBQ0E7TUFDQUMsYUFFQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztNQUNBLEdBQ0E7UUFDQUQ7UUFDQUM7TUFDQSxHQUNBO1FBQ0FEO1FBQ0FDO01BQ0EsRUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0FDO1lBQ0FDO1lBQ0FDO1VBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtVQUNBRjtZQUNBQztZQUNBQztVQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQUY7VUFDQUM7VUFDQUM7UUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUFBdkI7VUFBQVk7UUFDQTtRQUNBO1FBQ0FTO1VBQ0FHO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLHNCQVNBO1VBUkFaO1VBQ0FhO1VBQ0FDO1VBQ0FDO1VBQ0EzQjtVQUNBNEI7VUFDQUM7VUFDQUM7UUFFQTtVQUNBbEI7VUFDQWE7VUFDQUM7VUFDQUM7VUFDQTNCO1VBQ0ErQjtVQUNBSDtVQUNBQztVQUNBQztRQUNBO1FBQ0E7UUFDQTtRQUNBVDtVQUNBRztRQUNBO01BQ0E7SUFDQTtJQUNBUTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0FDO01BQ0FoQjtRQUNBaUI7VUFDQTtVQUNBO1VBQ0E7WUFDQWpCO2NBQ0FDO2NBQ0FDO1lBQ0E7VUFDQTtZQUNBRjtjQUNBRztZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQWU7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUVBLHNCQVNBO1FBUkEzQjtRQUNBYTtRQUNBQztRQUNBQztRQUNBM0I7UUFDQTRCO1FBQ0FDO1FBQ0FDO01BRUE7UUFDQWxCO1FBQ0FhO1FBQ0FDO1FBQ0FDO1FBQ0EzQjtRQUNBK0I7UUFDQUg7UUFDQUM7UUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQVQ7UUFDQUc7TUFDQTtJQUNBO0lBQ0FnQjtNQUNBO01BQ0FuQjtRQUNBRztNQUNBO0lBQ0E7SUFDQWlCO01BQ0E7TUFDQTtNQUNBSjtRQUNBbkI7UUFDQVE7UUFDQWdCO1FBQ0FDO01BQ0E7TUFDQTtNQUNBTjtRQUNBO1FBQ0E7VUFDQWhCO1lBQ0FDO1lBQ0FDO1lBQ0FlO2NBQ0FqQjtZQUNBO1VBQ0E7UUFDQTtVQUNBQTtZQUNBQztZQUNBQztVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBcUI7TUFDQTtNQUNBO01BQ0FQO1FBQ0FaO01BQ0E7UUFDQTtRQUNBO1VBQ0E7QUFDQTtBQUNBO1VBQ0FZO1VBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FRO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQXhCO1VBQ0FDO1VBQ0FDO1FBQ0E7UUFDQTtNQUNBO01BQ0E7O01BRUE7UUFDQTtNQUNBO01BQ0FjO01BQ0E7TUFDQUE7UUFDQVM7UUFDQWxDO1FBQ0FNO01BQ0E7UUFDQTtRQUNBO1VBQ0FHO1lBQ0FDO1lBQ0FDO1VBQ0E7VUFDQTtVQUNBYztVQUNBaEI7UUFDQTtVQUNBQTtZQUNBQztZQUNBQztVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0FjO01BQ0E7UUFDQUE7TUFDQTtJQUNBO0lBQ0FVO01BQ0E7TUFDQTtNQUNBO01BQ0FWO1FBQ0E7VUFDQVc7UUFDQTtVQUNBQTtRQUNBO01BQ0E7TUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO01BQ0E7UUFDQTlCO1VBQ0FDO1VBQ0FDO1FBQ0E7UUFDQTtNQUNBO01BQ0FjO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMzkzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaW5nbGUtZmV0Y2hcIiB2LWZvcj1cIihmZXRjaCwgaW5kZXgpIGluIGZldGNoTGlzdFwiIDprZXk9XCJpbmRleFwiIEBjbGljaz1cIm9wZW5Qb3B1cChmZXRjaClcIj5cclxuXHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0PHNwYW4+57G75Z6L5ZCN56ewPC9zcGFuPlxyXG5cdFx0XHRcdDxoND57eyBmZXRjaC50eXBlTmFtZSB9fTwvaDQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0PHNwYW4+6KeE5qC85Z6L5Y+3PC9zcGFuPlxyXG5cdFx0XHRcdDxoND57eyBmZXRjaC50eXBlQ29kZSB9fTwvaDQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0PHNwYW4+5b6F6YCA5paZ5pWw6YePPC9zcGFuPlxyXG5cdFx0XHRcdDxoND57eyBmZXRjaC5tYW5hZ2VUeXBlID09IDIgPyBmZXRjaC5wYXJ0TnVtIDogZmV0Y2gubnVtIH19PC9oND5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dGV4dFxyXG5cdFx0XHRcdHYtc2hvdz1cImZldGNoLm1hbmFnZVR5cGUgPT0gMlwiXHJcblx0XHRcdFx0Y2xhc3M9XCJzZWUtaXRlbVwiXHJcblx0XHRcdFx0QGNsaWNrLnN0b3A9XCJvcGVuUG9wdXAzKGZldGNoLm1hVHlwZURldGFpbHMpXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdOafpeeci+mFjeS7tlxyXG5cdFx0XHQ8L3RleHQ+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dW5pLXBvcHVwIHJlZj1cInBvcHVwMVwiIHR5cGU9XCJjZW50ZXJcIiA6bWFzay1jbGljaz1cImZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAxXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtdG9wXCI+XHJcblx0XHRcdFx0XHQ8aDQ+6YCA5paZ5o6l5pS2PC9oND5cclxuXHRcdFx0XHRcdDx1bmktaWNvbnMgc3R5bGU9XCJjb2xvcjogI0FBQUFBQTsgZm9udC13ZWlnaHQ6IGJvbGQ7XCIgdHlwZT1cImNsb3NlZW1wdHlcIiBzaXplPVwiMjBcIlxyXG5cdFx0XHRcdFx0XHRAY2xpY2s9XCJjbG9zZVBvcHVwMVwiPlxyXG5cdFx0XHRcdFx0PC91bmktaWNvbnM+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDxoNSBzdHlsZT1cIndpZHRoOiA4NSU7IG1hcmdpbjogMnZoIGF1dG87IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjtcIj7or7fpgInmi6nmjqXmlLbmlrnlvI88L2g1PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VsZWN0LWFyZWFcIj5cclxuXHRcdFx0XHRcdDx2aWV3IEBjbGljaz1cInNjYW5Db2RlXCI+5LqM57u056CBPC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgQGNsaWNrPVwiY29kZU91dFwiPue8lueggeaOpeaUtjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IEBjbGljaz1cInJmaWRPdXRcIj5SRklE5o6l5pS2PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiaXB0LWFyZWFcIj5cclxuXHRcdFx0XHRcdDx1bmktZWFzeWlucHV0IHYtbW9kZWw9XCJjb2RlVmFsXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnvJbnoIFcIj48L3VuaS1lYXN5aW5wdXQ+XHJcblx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8dW5pLXBvcHVwIHJlZj1cInBvcHVwMlwiIHR5cGU9XCJjZW50ZXJcIiA6bWFzay1jbGljaz1cImZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwicG9wdXAyXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtdG9wXCI+XHJcblx0XHRcdFx0XHQ8aDQ+6YCA5paZ5o6l5pS2PC9oND5cclxuXHRcdFx0XHRcdDx1bmktaWNvbnMgc3R5bGU9XCJjb2xvcjogI0FBQUFBQTsgZm9udC13ZWlnaHQ6IGJvbGQ7XCIgdHlwZT1cImNsb3NlZW1wdHlcIiBzaXplPVwiMjBcIlxyXG5cdFx0XHRcdFx0XHRAY2xpY2s9XCJjbG9zZVBvcHVwMlwiPlxyXG5cdFx0XHRcdFx0PC91bmktaWNvbnM+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1hcmVhXCI+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PGg0Puexu+Wei+WQjeensDwvaDQ+XHJcblx0XHRcdFx0XHRcdDxzcGFuPnt7IGluZm9MaXN0LnR5cGVOYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdDxoND7op4TmoLzlnovlj7c8L2g0PlxyXG5cdFx0XHRcdFx0XHQ8c3Bhbj57eyBpbmZvTGlzdC50eXBlTW9kZWxOYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdDxoND7lvoXlhaXlupPmlbDph488L2g0PlxyXG5cdFx0XHRcdFx0XHQ8c3Bhbj57eyBpbmZvTGlzdC5wcmVOdW0gfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8IS0tIDx2aWV3IHN0eWxlPVwiZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cclxuXHRcdFx0XHRcdFx0PGg0IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMzBycHg7XCI+5b6F5L+u54q25oCBPC9oND5cclxuXHRcdFx0XHRcdFx0PHVuaS1kYXRhLWNoZWNrYm94IHYtbW9kZWw9XCJmaXhWYWxcIiA6bG9jYWxkYXRhPVwiZml4UmFuZ2VcIj48L3VuaS1kYXRhLWNoZWNrYm94PlxyXG5cdFx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aDQ+5ZCI5qC85pWw6YePPC9oND5cclxuXHRcdFx0XHRcdFx0PHVuaS1lYXN5aW5wdXQgdHlwZT1cIm51bWJlclwiIHYtbW9kZWw9XCJwYXNzZWROdW1cIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpVwiPjwvdW5pLWVhc3lpbnB1dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aDQ+5b6F5L+u5pWw6YePPC9oND5cclxuXHRcdFx0XHRcdFx0PHVuaS1lYXN5aW5wdXQgdHlwZT1cIm51bWJlclwiIHYtbW9kZWw9XCJ3YWl0UmVwYWlyTnVtXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIj48L3VuaS1lYXN5aW5wdXQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PGg0PuW+heaKpeW6n+aVsOmHjzwvaDQ+XHJcblx0XHRcdFx0XHRcdDx1bmktZWFzeWlucHV0IHR5cGU9XCJudW1iZXJcIiB2LW1vZGVsPVwid2FpdENyYXNoTnVtXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIj48L3VuaS1lYXN5aW5wdXQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLWJ0blwiIEBjbGljaz1cIm11bHRpT3V0XCI+XHJcblx0XHRcdFx0XHTpgIDmlpnmjqXmlLZcclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PHVuaS1wb3B1cFxyXG5cdFx0XHRyZWY9XCJwb3B1cDNcIiBcclxuXHRcdFx0dHlwZT1cImNlbnRlclwiXHJcblx0XHRcdDptYXNrLWNsaWNrPVwiZmFsc2VcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwM1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wLXRvcFwiPlxyXG5cdFx0XHRcdFx0PGg0Puafpeeci+mFjeS7tjwvaDQ+XHJcblx0XHRcdFx0XHQ8dW5pLWljb25zIFxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiAjQUFBQUFBOyBmb250LXdlaWdodDogYm9sZDtcIiBcclxuXHRcdFx0XHRcdFx0dHlwZT1cImNsb3NlZW1wdHlcIiBcclxuXHRcdFx0XHRcdFx0c2l6ZT1cIjIwXCJcclxuXHRcdFx0XHRcdFx0QGNsaWNrPVwiY2xvc2VQb3B1cDNcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PC91bmktaWNvbnM+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1kZXRhaWxcIj5cclxuXHRcdFx0XHRcdDx2aWV3IFxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInNpbmdsZS1pdGVtXCJcclxuXHRcdFx0XHRcdFx0di1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIG1hTGlzdFwiXHJcblx0XHRcdFx0XHRcdDprZXk9XCJpbmRleFwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxoND7luo/lj7c8L2g0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPnt7IGluZGV4ICsgMSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8aDQ+57G75Z6L5ZCN56ewPC9oND5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBpdGVtLnR5cGVOYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxoND7op4TmoLzlnovlj7c8L2g0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPnt7IGl0ZW0udHlwZU1vZGVsTmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8aDQ+5Y2V5L2NPC9oND5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBpdGVtLnVuaXROYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxoND7pooTpoobmlbDph488L2g0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuPnt7IGl0ZW0ucGFydE51bSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktcG9wdXA+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFFTIGZyb20gXCJxc1wiXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRkYXRhKCkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0ZmV0Y2hMaXN0OiBbXHJcblxyXG5cdFx0XHRdLFxyXG5cdFx0XHRtYUxpc3Q6IFtdLFxyXG5cdFx0XHRjb2RlVmFsOiAnJyxcclxuXHRcdFx0bWFuYWdlVHlwZTogJycsXHJcblx0XHRcdGluZm9MaXN0OiAnJyxcclxuXHRcdFx0bXVsdGlOdW06IDEsXHJcblx0XHRcdHN1Ykxpc3Q6IHt9LFxyXG5cdFx0XHRmaXhWYWw6ICcnLFxyXG5cdFx0XHRmaXhSYW5nZTogW3tcclxuXHRcdFx0XHR0ZXh0OiAn5ZCI5qC8JyxcclxuXHRcdFx0XHR2YWx1ZTogJzAnXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR0ZXh0OiAn5b6F5L+uJyxcclxuXHRcdFx0XHR2YWx1ZTogJzEnXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR0ZXh0OiAn5b6F5oql5bqfJyxcclxuXHRcdFx0XHR2YWx1ZTogJzInXHJcblx0XHRcdH1cclxuXHRcdFx0XSxcclxuXHRcdFx0cGFzc2VkTnVtOiAnJyxcclxuXHRcdFx0d2FpdFJlcGFpck51bTogJycsXHJcblx0XHRcdHdhaXRDcmFzaE51bTogJycsXHJcblx0XHRcdGRldGFpbHNJZDogJycsXHJcblx0XHRcdHRhc2tJZDogJycsXHJcblx0XHRcdHN1Ym1pdEZsYWc6IGZhbHNlLFxyXG5cdFx0XHR0YXNrU3RhdHVzOiAnJyxcclxuXHRcdFx0dHJhbnNNYUNvZGU6ICcnLFxyXG5cdFx0XHRyZmlkTnVtOiAnJyxcclxuXHRcdFx0c2VuZFR5cGVJZDogJycsXHJcblx0XHRcdHBhcmVudElkOiAnJ1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0bWV0aG9kczoge1xyXG5cdFx0b3BlblBvcHVwKGxpc3QpIHtcclxuXHRcdFx0Y29uc29sZS5sb2cobGlzdCk7XHJcblx0XHRcdHRoaXMuaW5mb0xpc3QgPSBsaXN0XHJcblx0XHRcdHRoaXMucmZpZE51bSA9IGxpc3QubnVtXHJcblx0XHRcdHRoaXMudHJhbnNNYUNvZGUgPSBsaXN0LmNvZGVcclxuXHRcdFx0dGhpcy5zZW5kVHlwZUlkID0gbGlzdC50eXBlSWRcclxuXHRcdFx0dGhpcy5wYXJlbnRJZCA9IGxpc3QuaWRcclxuXHRcdFx0aWYgKGxpc3QubWFuYWdlVHlwZSA9PSAyKSB7XHJcblx0XHRcdFx0aWYgKE51bWJlcihsaXN0LnBhcnROdW0pID09IDApIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn5b6F6YCA5paZ5pWw5o2u5Li6MO+8jOivt+WLv+WGjeeCueWHuydcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmIChOdW1iZXIobGlzdC5udW0pID09IDApIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn5b6F6YCA5paZ5pWw5o2u5Li6MO+8jOivt+WLv+WGjeeCueWHuydcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChOdW1iZXIobGlzdC5udW0pID09IDApIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdHRpdGxlOiAn5b6F6YCA5paZ5pWw5o2u5Li6MO+8jOivt+WLv+WGjeeCueWHuydcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLmluZm9MaXN0Lm1hbmFnZVR5cGUgPT0gJzAnKSB7XHJcblx0XHRcdFx0dGhpcy4kcmVmcy5wb3B1cDEub3BlbigpXHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5pbmZvTGlzdC5tYW5hZ2VUeXBlID09ICcyJykge1xyXG5cdFx0XHRcdGNvbnN0IHVzZXJJbmZvID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpO1xyXG5cdFx0XHRcdGNvbnN0IHsgbWFuYWdlVHlwZSwgdGFza0lkIH0gPSB0aGlzLmluZm9MaXN0XHJcblx0XHRcdFx0Y29uc3QgdXNlcklkID0gdXNlckluZm8udXNlcmlkXHJcblx0XHRcdFx0Y29uc3QgbWFMaXN0ID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHRoaXMuaW5mb0xpc3QubWFUeXBlRGV0YWlscykpIFxyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybDogYC9wYWdlcy9udW1Mb2FuUmVjZWl2ZS9udW1Mb2FuUmVjZWl2ZT9hcnI9JHttYUxpc3R9JnVzZXJJZD0ke3VzZXJJZH0mbWFuYWdlVHlwZT0ke21hbmFnZVR5cGV9JnRhc2tJZD0ke3Rhc2tJZH1gXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRjb25zdCB1c2VySW5mbyA9IHVuaS5nZXRTdG9yYWdlU3luYygndXNlckluZm8nKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcInVzZXJJbmZvXCIsIHVzZXJJbmZvKVxyXG5cdFx0XHRcdGNvbnN0IHVzZXJJZCA9IHVzZXJJbmZvLnVzZXJpZFxyXG5cdFx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRcdHRhc2tJZCxcclxuXHRcdFx0XHRcdGlkLFxyXG5cdFx0XHRcdFx0dHlwZUlkLFxyXG5cdFx0XHRcdFx0bW9kZWxJZCxcclxuXHRcdFx0XHRcdG1hbmFnZVR5cGUsXHJcblx0XHRcdFx0XHR0eXBlTmFtZSxcclxuXHRcdFx0XHRcdHR5cGVDb2RlLFxyXG5cdFx0XHRcdFx0bnVtXHJcblx0XHRcdFx0fSA9IHRoaXMuaW5mb0xpc3RcclxuXHRcdFx0XHRjb25zdCBwYXJhbXMgPSB7XHJcblx0XHRcdFx0XHR0YXNrSWQsXHJcblx0XHRcdFx0XHRpZCxcclxuXHRcdFx0XHRcdHR5cGVJZCxcclxuXHRcdFx0XHRcdG1vZGVsSWQsXHJcblx0XHRcdFx0XHRtYW5hZ2VUeXBlLFxyXG5cdFx0XHRcdFx0dXNlcklkLFxyXG5cdFx0XHRcdFx0dHlwZU5hbWUsXHJcblx0XHRcdFx0XHR0eXBlQ29kZSxcclxuXHRcdFx0XHRcdG51bVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zdCB1cmxTdHIgPSBRUy5zdHJpbmdpZnkocGFyYW1zKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwidXJsU1RSXCIsIHVybFN0cilcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6IGAvcGFnZXMvbnVtUmVjZWl2ZS9udW1SZWNlaXZlPyR7dXJsU3RyfWBcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b3BlblBvcHVwMyAobGlzdCkge1xyXG5cdFx0XHR0aGlzLm1hTGlzdCA9IGxpc3RcclxuXHRcdFx0dGhpcy4kcmVmcy5wb3B1cDMub3BlbigpXHJcblx0XHR9LFxyXG5cdFx0Y2xvc2VQb3B1cDEoKSB7XHJcblx0XHRcdHRoaXMuJHJlZnMucG9wdXAxLmNsb3NlKClcclxuXHRcdH0sXHJcblx0XHRjbG9zZVBvcHVwMigpIHtcclxuXHRcdFx0dGhpcy4kcmVmcy5wb3B1cDIuY2xvc2UoKVxyXG5cdFx0fSxcclxuXHRcdGNsb3NlUG9wdXAzKCkge1xyXG5cdFx0XHR0aGlzLiRyZWZzLnBvcHVwMy5jbG9zZSgpXHJcblx0XHR9LFxyXG5cdFx0c2NhbkNvZGUoKSB7XHJcblx0XHRcdGNvbnN0IHRoYXQgPSB0aGlzXHJcblx0XHRcdHRoYXQuY2xvc2VQb3B1cDEoKVxyXG5cdFx0XHR1bmkuc2NhbkNvZGUoe1xyXG5cdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGZpeGVkQ29kZSA9IHJlcy5yZXN1bHQuc3BsaXQoJz0nKVsxXVxyXG5cdFx0XHRcdFx0Y29uc3QgdXNlcklkID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpLnVzZXJpZFxyXG5cdFx0XHRcdFx0aWYgKCFmaXhlZENvZGUpIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiAn5pyq6K+G5Yir5Yiw6K6+5aSH77yBJ1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0XHRcdHVybDogYC9wYWdlcy9zY2FuUmVjZWl2ZS9zY2FuUmVjZWl2ZT9jb2RlPSR7Zml4ZWRDb2RlfSZ0eXBlSWQ9JHt0aGF0LmluZm9MaXN0Lm1vZGVsSWR9Jm51bT0ke3RoYXQuaW5mb0xpc3QubnVtfSZwYXJlbnRJZD0ke3RoYXQuaW5mb0xpc3QuaWR9Jm1hbmFnZVR5cGU9JHt0aGF0LmluZm9MaXN0Lm1hbmFnZVR5cGV9JnRhc2tJZD0ke3RoYXQudGFza0lkfSZjcmVhdGVCeT0ke3VzZXJJZH0mc2NhblR5cGU9XCJiYWNrXCJgXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0XHQvKiB1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0dXJsOiBgL3BhZ2VzL1FSSW4vUVJJbj90eXBlSWQ9JHt0aGF0LmluZm9MaXN0Lm1vZGVsSWR9Jm51bT0ke3RoYXQuaW5mb0xpc3QubnVtfSZwYXJlbnRJZD0ke3RoYXQuaW5mb0xpc3QuaWR9Jm1hbmFnZVR5cGU9JHt0aGF0LmluZm9MaXN0Lm1hbmFnZVR5cGV9JnRhc2tJZD0ke3RoYXQudGFza0lkfSZjcmVhdGVCeT0ke3VzZXJJZH0mc2NhblR5cGU9XCJiYWNrXCJgXHJcblx0XHRcdH0pICovXHJcblx0XHR9LFxyXG5cdFx0Y29kZU91dCgpIHtcclxuXHRcdFx0dGhpcy5jbG9zZVBvcHVwMSgpXHJcblx0XHRcdGNvbnN0IHVzZXJJbmZvID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcInVzZXJJbmZvXCIsIHVzZXJJbmZvKVxyXG5cdFx0XHRjb25zdCB1c2VySWQgPSB1c2VySW5mby51c2VyaWRcclxuXHJcblx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHR0YXNrSWQsXHJcblx0XHRcdFx0aWQsXHJcblx0XHRcdFx0dHlwZUlkLFxyXG5cdFx0XHRcdG1vZGVsSWQsXHJcblx0XHRcdFx0bWFuYWdlVHlwZSxcclxuXHRcdFx0XHR0eXBlTmFtZSxcclxuXHRcdFx0XHR0eXBlQ29kZSxcclxuXHRcdFx0XHRudW1cclxuXHRcdFx0fSA9IHRoaXMuaW5mb0xpc3RcclxuXHRcdFx0Y29uc3QgcGFyYW1zID0ge1xyXG5cdFx0XHRcdHRhc2tJZCxcclxuXHRcdFx0XHRpZCxcclxuXHRcdFx0XHR0eXBlSWQsXHJcblx0XHRcdFx0bW9kZWxJZCxcclxuXHRcdFx0XHRtYW5hZ2VUeXBlLFxyXG5cdFx0XHRcdHVzZXJJZCxcclxuXHRcdFx0XHR0eXBlTmFtZSxcclxuXHRcdFx0XHR0eXBlQ29kZSxcclxuXHRcdFx0XHRudW1cclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCB1cmxTdHIgPSBRUy5zdHJpbmdpZnkocGFyYW1zKVxyXG5cdFx0XHRjb25zb2xlLmxvZyhcInVybFNUUlwiLCB1cmxTdHIpXHJcblx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHR1cmw6IGAvcGFnZXMvY29kZVJlY2VpdmUvY29kZVJlY2VpdmU/JHt1cmxTdHJ9Jm1hQ29kZT0ke3RoaXMudHJhbnNNYUNvZGV9YFxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdHJmaWRPdXQoKSB7XHJcblx0XHRcdHRoaXMuY2xvc2VQb3B1cDEoKVxyXG5cdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0dXJsOiBgL3BhZ2VzL3JmaWRSZWNlaXZlL3JmaWRSZWNlaXZlP3dhaXRPdXQ9JHt0aGlzLnJmaWROdW19JnR5cGVJZD0ke3RoaXMuc2VuZFR5cGVJZH0mcGFyZW50SWQ9JHt0aGlzLnBhcmVudElkfSZ0YXNrSWQ9JHt0aGlzLnRhc2tJZH1gXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0bXVsdGlPdXQoKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHR0aGlzLmNsb3NlUG9wdXAyKClcclxuXHRcdFx0dGhhdC5zdWJMaXN0ID0ge1xyXG5cdFx0XHRcdHBhcmVudElkOiB0aGF0LmluZm9MaXN0LnBhcmVubnRJZCxcclxuXHRcdFx0XHR0eXBlSWQ6IHRoYXQuaW5mb0xpc3QudHlwZUlkLFxyXG5cdFx0XHRcdG91dE51bTogdGhhdC5tdWx0aU51bSxcclxuXHRcdFx0XHRjb21wYW55SWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlckluZm8nKS5zeXNVc2VyLmNvbXBhbnlJZFxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnNvbGUubG9nKHRoYXQuc3ViTGlzdCk7XHJcblx0XHRcdHRoYXQuJGFwaS5mZXRjaE1hdGVyaWFsT3V0U3RvcmUuc3ViT3V0U3RvcmUodGhhdC5zdWJMaXN0LCBudWxsKS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6YCA5paZ5o6l5pS25oiQ5Yqf77yBJyxcclxuXHRcdFx0XHRcdFx0c3VjY2VzczogKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+mAgOaWmeaOpeaUtuWksei0pe+8gSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KS5jYXRjaChlcnIgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0aW5pdExpc3REYXRhKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0Y29uc29sZS5sb2codGhhdC5kZXRhaWxzSWQpO1xyXG5cdFx0XHR0aGF0LiRhcGkuYmFja01hdGVyaWFsUmVjZWl2ZS5iYWNrTWF0ZXJpYWxSZWNlaXZlRGV0YWlsKHtcclxuXHRcdFx0XHRpZDogdGhhdC5kZXRhaWxzSWRcclxuXHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0aWYgKHJlcy5kYXRhLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHQvKiBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5kYXRhLmRhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0cmVzLmRhdGEuZGF0YVtpXS5udW0gPSByZXMuZGF0YS5kYXRhW2ldLm51bS5zcGxpdCgnLicpWzBdXHJcblx0XHRcdFx0XHR9ICovXHJcblx0XHRcdFx0XHR0aGF0LmZldGNoTGlzdCA9IHJlcy5kYXRhLmRhdGFcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoYXQuZmV0Y2hMaXN0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRiYWNrUmVjZWl2ZUVuZEJhY2tGbigpIHtcclxuXHRcdFx0Y29uc3QgdGhhdCA9IHRoaXNcclxuXHRcdFx0bGV0IHRvdGFsID0gdGhhdC5yZWR1Y2VOdW1Ub3RhbCgpXHJcblx0XHRcdGNvbnNvbGUubG9nKFwidG90YWw9PVwiLCB0b3RhbClcclxuXHRcdFx0aWYgKHRvdGFsID4gMCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0dGl0bGU6ICfor7flrozmiJDpgIDmlpnmjqXmlLblkI7miY3og73nu5PmnZ/ku7vliqEnXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBzdWJtaXRGbGFnIGZhbHNlXHJcblxyXG5cdFx0XHRpZiAodGhhdC5zdWJtaXRGbGFnID09IHRydWUpIHtcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGF0LnN1Ym1pdEZsYWcgPSB0cnVlXHJcblx0XHRcdGNvbnNvbGUubG9nKHRoYXQudGFza0lkLCB0aGF0LmRldGFpbHNJZCk7XHJcblx0XHRcdHRoYXQuJGFwaS5iYWNrTWF0ZXJpYWxSZWNlaXZlLmJhY2tSZWNlaXZlRW5kQmFjayh7XHJcblx0XHRcdFx0Y3JlYXRlQnk6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlckluZm8nKS51c2VyaWQsXHJcblx0XHRcdFx0dGFza0lkOiB0aGF0LnRhc2tJZCxcclxuXHRcdFx0XHRwYXJlbnRJZDogdGhhdC5kZXRhaWxzSWRcclxuXHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHJlcylcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn57uT5p2f5Lu75Yqh5oiQ5YqfJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi6YCA5paZ57uT5p2fXCIsIHJlcylcclxuXHRcdFx0XHRcdHRoYXQuc3VibWl0RmxhZyA9IGZhbHNlXHJcblx0XHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKClcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5kYXRhLm1zZ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZXJyLCAnc3NzJyk7XHJcblx0XHRcdFx0dGhhdC5zdWJtaXRGbGFnID0gZmFsc2VcclxuXHRcdFx0fSkuZmluYWxseShyZXN1bHQgPT4ge1xyXG5cdFx0XHRcdHRoYXQuc3VibWl0RmxhZyA9IGZhbHNlXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0cmVkdWNlTnVtVG90YWwoKSB7XHJcblx0XHRcdGNvbnN0IHRoYXQgPSB0aGlzXHJcblx0XHRcdGxldCBzdW0gPSAwXHJcblx0XHRcdGNvbnNvbGUubG9nKHRoYXQuZmV0Y2hMaXN0KTtcclxuXHRcdFx0dGhhdC5mZXRjaExpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuXHRcdFx0XHRpZiAoaXRlbS5tYW5hZ2VUeXBlID09IDIpIHtcclxuXHRcdFx0XHRcdHN1bSArPSBpdGVtLnBhcnROdW1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0c3VtICs9IE51bWJlcihpdGVtLm51bS5zcGxpdCgnLicpWzBdKSBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHRcdC8qIGlmICh0aGF0LmZldGNoTGlzdC5tYW5hZ2VUeXBlID09IDIpIHtcclxuXHRcdFx0XHRzdW0gPSB0aGF0LmZldGNoTGlzdC5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50VmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHJldHVybiBhY2N1bXVsYXRvciArIE51bWJlcihjdXJyZW50VmFsdWUucGFydE51bSk7XHJcblx0XHRcdFx0fSwgMCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0c3VtID0gdGhhdC5mZXRjaExpc3QucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHRyZXR1cm4gYWNjdW11bGF0b3IgKyBOdW1iZXIoY3VycmVudFZhbHVlLm51bSk7XHJcblx0XHRcdFx0fSwgMCk7XHJcblx0XHRcdH0gKi9cclxuXHRcdFx0Y29uc29sZS5sb2coXCJudW1hY2N1bXVsYXRvclwiLCBzdW0pXHJcblx0XHRcdHJldHVybiBzdW1cclxuXHRcdH1cclxuXHR9LFxyXG5cdG9uTG9hZChwYXJhbXMpIHtcclxuXHRcdGNvbnNvbGUubG9nKHBhcmFtcyk7XHJcblx0XHR0aGlzLnRhc2tJZCA9IHBhcmFtcy50YXNrSWRcclxuXHRcdHRoaXMuZGV0YWlsc0lkID0gcGFyYW1zLmlkXHJcblx0XHR0aGlzLnRhc2tTdGF0dXMgPSBwYXJhbXMudGFza1N0YXR1c1xyXG5cdH0sXHJcblx0b25TaG93KCkge1xyXG5cdFx0dGhpcy5pbml0TGlzdERhdGEoKVxyXG5cdH0sXHJcblx0b25OYXZpZ2F0aW9uQmFyQnV0dG9uVGFwKGV2KSB7XHJcblx0XHRjb25zb2xlLmxvZyhcIueCueWHu+S6huiHquWumuS5ieaMiemSrlwiLCBldik7XHJcblx0XHRjb25zdCB0aGF0ID0gdGhpc1xyXG5cdFx0aWYgKGV2LnRleHQgPT0gJ+e7k+adn+S7u+WKoScpIHtcclxuXHRcdFx0aWYgKHRoaXMudGFza1N0YXR1cyA9PSBcIjQwXCIpIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdHRpdGxlOiAn6K+35Yu/5YaN54K55Ye7J1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdH1cclxuXHRcdFx0dGhhdC5iYWNrUmVjZWl2ZUVuZEJhY2tGbigpXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XHJcbi5zaW5nbGUtZmV0Y2gge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0cGFkZGluZzogMjBycHggMzVycHg7XHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEREREREQ7XHJcblxyXG5cdHZpZXcge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyNXJweDtcclxuXHJcblx0XHRzcGFuIHtcclxuXHRcdFx0Y29sb3I6ICNBN0E3QTc7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdGg0IHtcclxuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dmlldzpsYXN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0fVxyXG5cdC5zZWUtaXRlbXtcclxuXHRcdHdpZHRoOiAzMCU7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cGFkZGluZzogNXJweCAxMHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNzg4RkY7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcblx0fVxyXG59XHJcblxyXG4uYnRtLWV4YW0ge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRsZWZ0OiAwO1xyXG5cdGJvdHRvbTogMDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdHBhZGRpbmc6IDIwcnB4IDQwcnB4O1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuXHRib3JkZXItdG9wOiAycHggc29saWQgI0Y2RjhGRjtcclxuXHJcblx0LmV4YW0ge1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdHBhZGRpbmc6IDEwcnB4IDUwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMzBycHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzc4OEZGO1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0fVxyXG59XHJcblxyXG4ucG9wdXAxIHtcclxuXHR3aWR0aDogODB2dztcclxuXHRoZWlnaHQ6IDIwdmg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRib3JkZXItcmFkaXVzOiAxNXJweDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjRDlFN0ZFLCAjZmZmLCAjZmZmLCAjZmZmKTtcclxuXHJcblx0LnBvcC10b3Age1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDV2aDtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRwYWRkaW5nOiAwIDI1cnB4O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQuc2VsZWN0LWFyZWEge1xyXG5cdFx0d2lkdGg6IDg1JTtcclxuXHRcdG1hcmdpbjogNDBycHggYXV0bztcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdFx0dmlldyB7XHJcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0cGFkZGluZzogMTBycHggMjBycHg7XHJcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNENUQ1RDQ7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmlwdC1hcmVhIHtcclxuXHRcdHdpZHRoOiA4NSU7XHJcblx0XHRtYXJnaW46IDQwcnB4IGF1dG87XHJcblx0fVxyXG59XHJcblxyXG4ucG9wdXAyIHtcclxuXHR3aWR0aDogODB2dztcclxuXHRoZWlnaHQ6IDYwdmg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRib3JkZXItcmFkaXVzOiAxNXJweDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjRDlFN0ZFLCAjZmZmLCAjZmZmLCAjZmZmKTtcclxuXHJcblx0LnBvcC10b3Age1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDV2aDtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRwYWRkaW5nOiAwIDI1cnB4O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQuaW5mby1hcmVhIHtcclxuXHRcdHdpZHRoOiA4NSU7XHJcblx0XHRtYXJnaW46IDMwcnB4IGF1dG87XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcblx0XHR2aWV3IHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVycHg7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdFx0XHRoNCB7XHJcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdFx0XHRjb2xvcjogIzk4OTg5ODtcclxuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRcdFx0d2lkdGg6IDM1JTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuc3ViLWJ0biB7XHJcblx0XHR3aWR0aDogODUlO1xyXG5cdFx0bWFyZ2luOiAzMHJweCBhdXRvO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM3ODhGRjtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdHBhZGRpbmc6IDE1cnB4IDA7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNDBycHg7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0fVxyXG59XHJcbi5wb3B1cDN7XHJcblx0XHR3aWR0aDogODB2dztcclxuXHRcdGhlaWdodDogNjB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNXJweDtcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI0Q5RTdGRSwgI2ZmZiwgI2ZmZiwgI2ZmZik7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdC5wb3AtdG9we1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiA1dmg7XHJcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdHBhZGRpbmc6IDAgMjVycHg7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdH1cclxuXHRcdC5pdGVtLWRldGFpbHtcclxuXHRcdFx0ZmxleDogMTtcclxuXHRcdFx0b3ZlcmZsb3cteTogYXV0bztcclxuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0XHRwYWRkaW5nOiAyNXJweDtcclxuXHRcdFx0LnNpbmdsZS1pdGVte1xyXG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREREREREO1xyXG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdFx0cGFkZGluZzogMjVycHggMDtcclxuXHRcdFx0XHR2aWV3e1xyXG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHJweDtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRcdFx0aDR7XHJcblx0XHRcdFx0XHRcdHdpZHRoOiAzNSU7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiAjQTdBN0E3O1xyXG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR2aWV3Omxhc3QtY2hpbGR7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQuc2luZ2xlLWl0ZW06bGFzdC1jaGlsZHtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///393\n");
/***/ }),
/* 394 */