From 1d85389aca70aa7536e01639fab863d4259753b2 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 30 四月 2026 15:21:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 app/unpackage/dist/dev/app-plus/app-service.js |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/unpackage/dist/dev/app-plus/app-service.js b/app/unpackage/dist/dev/app-plus/app-service.js
index 7375a96..57c669b 100644
--- a/app/unpackage/dist/dev/app-plus/app-service.js
+++ b/app/unpackage/dist/dev/app-plus/app-service.js
@@ -8596,7 +8596,7 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 93));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 12);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n  data: function data() {\n    return {\n      tts: null,\n      show: false,\n      show1: false,\n      showGrabModal: false,\n      selectedGrabOrder: null,\n      selectedCancelOrder: null,\n      cancelRemain: 0,\n      selectedPickupOrder: null,\n      showPhotoDeliverPopup: false,\n      routeInfo: null,\n      statusBarHeight: 0,\n      headerHeight: 0,\n      tabbarHeight: 0,\n      scrollHeight: 0,\n      showFilterPopup: false,\n      acceptingStatus: 0,\n      showStatusPicker: false,\n      statusOptions: [{\n        text: '涓婄嚎',\n        value: 1\n      }, {\n        text: '涓嬬嚎',\n        value: 0\n      }],\n      centerUserInfo: {},\n      activeTab: 'hall',\n      expandedGoodsIds: [],\n      categoryList: [],\n      filterSections: [{\n        key: 'sort',\n        title: '鎺掑簭',\n        options: ['缁煎悎鎺掑簭', '璺濈鏈�杩�']\n      }, {\n        key: 'level',\n        title: '鐗╁搧绛夌骇',\n        options: ['涓嶉檺']\n      }, {\n        key: 'distance',\n        title: '浣嶇疆鑼冨洿',\n        options: ['涓嶉檺', '500m', '1km', '2km', '3km', '4km', '5km', '6km', '7km']\n      }],\n      selectedFilters: {\n        sort: '缁煎悎鎺掑簭',\n        level: '涓嶉檺',\n        distance: '涓嶉檺'\n      },\n      stats: [{\n        value: '-',\n        label: '鏈嶅姟鍒�'\n      }, {\n        value: '-',\n        label: '浠婃棩棰勮浣i噾'\n      }, {\n        value: '-',\n        label: '浠婃棩鎺ュ崟'\n      }],\n      tabs: [{\n        label: '鎶㈠崟澶у巺',\n        value: 'hall'\n      }, {\n        label: '寰呭彇璐�',\n        value: 'pickup'\n      }, {\n        label: '閰嶉�佷腑',\n        value: 'delivering'\n      }],\n      orderList: [],\n      pickupOrderList: [],\n      deliveringOrderList: [],\n      hallPage: 1,\n      hallPageSize: 10,\n      hallLoading: false,\n      hallHasMore: true,\n      pickupLoading: false,\n      deliveringLoading: false,\n      activeOrderCount: null\n    };\n  },\n  watch: {\n    activeTab: function activeTab(newVal) {\n      this.loadOrdersByTab(newVal);\n    }\n  },\n  onLoad: function onLoad() {\n    var systemInfo = uni.getSystemInfoSync();\n    var safeBottom = systemInfo.safeAreaInsets ? systemInfo.safeAreaInsets.bottom || 0 : 0;\n    var windowHeight = systemInfo.windowHeight || 0;\n    this.statusBarHeight = systemInfo.statusBarHeight || 0;\n    this.headerHeight = this.statusBarHeight + uni.upx2px(308);\n    this.tabbarHeight = uni.upx2px(100) + safeBottom;\n    this.scrollHeight = Math.max(windowHeight - this.headerHeight, 0);\n    if (this.userInfo.auditStatus === 99) return;\n    this.acceptingStatus = this.userInfo.acceptingStatus || 0;\n    this.loadOrdersByTab(this.activeTab);\n  },\n  onShow: function onShow() {\n    this.getCenterInfo();\n    this.getCategoryListData();\n    this.getActiveOrderCount();\n  },\n  onReachBottom: function onReachBottom() {\n    if (this.acceptingStatus === 0) return;\n    if (this.activeTab === 'hall') {\n      this.hallPage++;\n      this.getHallOrders();\n    }\n  },\n  computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)(['userInfo', 'token'])), {}, {\n    displayTabs: function displayTabs() {\n      var _this = this;\n      return this.tabs.map(function (tab) {\n        if (tab.value === 'pickup') {\n          var _this$activeOrderCoun;\n          return _objectSpread(_objectSpread({}, tab), {}, {\n            count: (_this$activeOrderCoun = _this.activeOrderCount) === null || _this$activeOrderCoun === void 0 ? void 0 : _this$activeOrderCoun.grabbedCount\n          });\n        } else if (tab.value === 'delivering') {\n          var _this$activeOrderCoun2;\n          return _objectSpread(_objectSpread({}, tab), {}, {\n            count: (_this$activeOrderCoun2 = _this.activeOrderCount) === null || _this$activeOrderCoun2 === void 0 ? void 0 : _this$activeOrderCoun2.deliveringCount\n          });\n        }\n        return tab;\n      });\n    },\n    currentOrderList: function currentOrderList() {\n      var orderMap = {\n        hall: this.orderList,\n        pickup: this.pickupOrderList,\n        delivering: this.deliveringOrderList\n      };\n      return orderMap[this.activeTab] || [];\n    },\n    bodyStyle: function bodyStyle() {\n      return {\n        marginTop: this.headerHeight + 'px',\n        height: this.scrollHeight + 'px'\n      };\n    }\n  }),\n  onReady: function onReady() {\n    this.initTTS(); // 椤甸潰娓叉煋瀹屾垚鍒濆鍖栬闊砛n  },\n\n  methods: {\n    formatRemainTime: function formatRemainTime(minutes) {\n      if (!minutes) return 0;\n      if (minutes === 0) {\n        return '閰嶉�佸凡瓒呮椂';\n      }\n      if (minutes >= 60) {\n        return (minutes / 60).toFixed(2) + '灏忔椂鍐�';\n      }\n      return minutes + '鍒嗛挓鍐�';\n    },\n    getGoodsText: function getGoodsText(items, itemId) {\n      if (!items || items.length === 0) return '鏃�';\n      var text = items.map(function (i) {\n        return \"\".concat(i.name, \"*\").concat(i.quantity);\n      }).join('銆�');\n      if (text.length > 20 && !this.expandedGoodsIds.includes(itemId)) {\n        return text.substring(0, 20) + '...';\n      }\n      return text;\n    },\n    toggleGoodsExpand: function toggleGoodsExpand(id) {\n      var index = this.expandedGoodsIds.indexOf(id);\n      if (index > -1) {\n        this.expandedGoodsIds.splice(index, 1);\n      } else {\n        this.expandedGoodsIds.push(id);\n      }\n    },\n    formatDistanceParts: function formatDistanceParts(distance) {\n      if (distance === null || distance === undefined || distance === '') {\n        return {\n          value: '--',\n          unit: ''\n        };\n      }\n      if (typeof distance === 'number') {\n        if (distance >= 1000) {\n          return {\n            value: (distance / 1000).toFixed(1),\n            unit: 'km'\n          };\n        }\n        return {\n          value: String(Math.round(distance)),\n          unit: 'm'\n        };\n      }\n      var text = String(distance).trim();\n      var match = text.match(/^([\\d.]+)\\s*([a-zA-Z\\u4e00-\\u9fa5]*)$/);\n      if (match) {\n        return {\n          value: match[1],\n          unit: match[2] || ''\n        };\n      }\n      return {\n        value: text,\n        unit: ''\n      };\n    },\n    navigateToAddress: function navigateToAddress(item, type) {\n      var latitude, longitude, name, address;\n      if (type === 'deposit') {\n        latitude = item.depositLat;\n        longitude = item.depositLng;\n        name = item.depositShopName;\n        address = item.depositShopAddress;\n      } else {\n        latitude = item.takeLat;\n        longitude = item.takeLng;\n        name = item.takeName;\n        address = item.takeAddress;\n      }\n      if (!latitude || !longitude) {\n        uni.showToast({\n          title: '鍦板潃鍧愭爣缂哄け',\n          icon: 'none'\n        });\n        return;\n      }\n      uni.openLocation({\n        latitude: latitude,\n        longitude: longitude,\n        name: name,\n        address: address,\n        success: function success() {},\n        fail: function fail(err) {\n          uni.showToast({\n            title: '鎵撳紑鍦板浘澶辫触',\n            icon: 'none'\n          });\n          __f__(\"error\", 'openLocation fail:', err, \" at pages/index/index.vue:473\");\n        }\n      });\n    },\n    handleUserClick: function handleUserClick() {\n      uni.navigateTo({\n        url: '/pages/test/test'\n      });\n    },\n    getActiveOrderCount: function getActiveOrderCount() {\n      var _this2 = this;\n      this.$u.api.activeOrderCount().then(function (res) {\n        if (res.code === 200) {\n          _this2.activeOrderCount = res.data;\n        }\n      }).catch(function (err) {\n        _this2.activeOrderCount = null;\n      });\n    },\n    handleGrabOrder: function handleGrabOrder(item) {\n      __f__(\"log\", item, \" at pages/index/index.vue:494\");\n      this.selectedGrabOrder = item;\n      this.showGrabModal = true;\n    },\n    confirmGrabOrder: function confirmGrabOrder() {\n      var _this3 = this;\n      if (!this.selectedGrabOrder) return;\n      this.$u.api.grabOrder({\n        orderId: this.selectedGrabOrder.id\n      }).then(function (res) {\n        _this3.showGrabModal = false;\n        if (res.code === 200) {\n          uni.showToast({\n            title: '鎶㈠崟鎴愬姛',\n            icon: 'success'\n          });\n          _this3.hallPage = 1;\n          _this3.hallHasMore = true;\n          _this3.orderList = [];\n          _this3.getHallOrders();\n          _this3.getActiveOrderCount();\n          _this3.getCenterInfo();\n        } else {\n          uni.showToast({\n            title: res.message || '鎶㈠崟澶辫触',\n            icon: 'none'\n          });\n        }\n      }).catch(function () {\n        _this3.showGrabModal = false;\n      });\n    },\n    handleCancelOrder: function handleCancelOrder(item) {\n      var _this4 = this;\n      this.selectedCancelOrder = item;\n      this.$u.api.cancelLimit().then(function (res) {\n        if (res.code === 200) {\n          _this4.cancelRemain = res.data.remain;\n        }\n      }).finally(function () {\n        _this4.show = true;\n      });\n    },\n    confirmCancelOrder: function confirmCancelOrder() {\n      var _this5 = this;\n      if (!this.selectedCancelOrder) return;\n      this.$u.api.cancelOrder({\n        orderId: this.selectedCancelOrder.id\n      }).then(function (res) {\n        _this5.show = false;\n        if (res.code === 200) {\n          uni.showToast({\n            title: '鍙栨秷鎴愬姛',\n            icon: 'success'\n          });\n          _this5.getPickupOrders();\n          _this5.getCenterInfo();\n          _this5.getActiveOrderCount();\n        } else {\n          uni.showToast({\n            title: res.message || '鍙栨秷澶辫触',\n            icon: 'none'\n          });\n        }\n      }).catch(function () {\n        _this5.show = false;\n      });\n    },\n    handleCall: function handleCall(item) {\n      if (item.contactPhone) {\n        uni.makePhoneCall({\n          phoneNumber: item.contactPhone\n        });\n      }\n    },\n    handleShowPickupCode: function handleShowPickupCode(item) {\n      this.selectedPickupOrder = item;\n      this.show1 = true;\n    },\n    goToOrderDetail: function goToOrderDetail(item, index) {\n      var url = \"/pages/order-detail/order-detail?id=\".concat(item.id);\n      if (this.activeTab === 'pickup' || this.activeTab === 'delivering') {\n        url += \"&index=\".concat(index + 1);\n      }\n      uni.navigateTo({\n        url: url\n      });\n    },\n    getCenterInfo: function getCenterInfo() {\n      var _this6 = this;\n      this.$u.api.centerInfo().then(function (res) {\n        if (res.code === 200) {\n          _this6.acceptingStatus = res.data.acceptingStatus;\n          _this6.centerUserInfo = {\n            fullImgUrl: res.data.fullImgUrl,\n            name: res.data.name\n          };\n          _this6.stats = [{\n            value: res.data.score,\n            label: '鏈嶅姟鍒�'\n          }, {\n            value: (res.data.todayCommission / 100 || 0).toFixed(2),\n            label: '浠婃棩棰勮浣i噾'\n          }, {\n            value: res.data.todayOrderCount,\n            label: '浠婃棩鎺ュ崟'\n          }];\n        }\n      });\n    },\n    getCategoryListData: function getCategoryListData() {\n      var _this7 = this;\n      this.$u.api.getCategoryList({\n        type: 3\n      }).then(function (res) {\n        if (res.code === 200) {\n          _this7.categoryList = res.data || [];\n          _this7.filterSections.forEach(function (section) {\n            if (section.key === 'level') {\n              section.options = ['涓嶉檺'].concat((0, _toConsumableArray2.default)(_this7.categoryList.map(function (item) {\n                return item.name;\n              })));\n            }\n          });\n        }\n      });\n    },\n    loadOrdersByTab: function loadOrdersByTab(tab) {\n      if (this.userInfo.auditStatus === 99) return;\n      if (this.acceptingStatus === 0) return;\n      if (tab === 'hall') {\n        this.hallPage = 1;\n        this.hallHasMore = true;\n        this.orderList = [];\n        this.getHallOrders();\n      } else if (tab === 'pickup') {\n        this.pickupOrderList = [];\n        this.getPickupOrders();\n      } else if (tab === 'delivering') {\n        this.deliveringOrderList = [];\n        this.getDeliveringOrders();\n      }\n    },\n    getHallOrders: function getHallOrders() {\n      var _this8 = this;\n      if (this.acceptingStatus === 0) return;\n      if (this.hallLoading || !this.hallHasMore) {\n        return;\n      }\n      this.hallLoading = true;\n      var distance = null;\n      if (this.selectedFilters.distance !== '涓嶉檺') {\n        var distanceText = this.selectedFilters.distance;\n        if (distanceText.includes('km')) {\n          distance = parseInt(distanceText) * 1000;\n        } else {\n          distance = parseInt(distanceText);\n        }\n      }\n      var sortTypeMap = {\n        '缁煎悎鎺掑簭': 1,\n        '璺濈鏈�杩�': 2\n      };\n      var sortType = this.selectedFilters.sort !== '涓嶉檺' ? sortTypeMap[this.selectedFilters.sort] || null : null;\n      var gradeId = null;\n      if (this.selectedFilters.level !== '涓嶉檺') {\n        var selectedCategory = this.categoryList.find(function (item) {\n          return item.name === _this8.selectedFilters.level;\n        });\n        if (selectedCategory) {\n          gradeId = selectedCategory.id;\n        }\n      }\n      __f__(\"log\", '鎺ュ崟澶у巺:', {\n        distance: distance,\n        gradeId: gradeId,\n        sortType: sortType\n      }, \" at pages/index/index.vue:646\");\n      this.$u.api.grabOrderHall({\n        capacity: this.hallPageSize,\n        page: this.hallPage,\n        model: {\n          distance: distance,\n          gradeId: gradeId,\n          sortType: sortType\n        }\n      }).then(function (res) {\n        __f__(\"log\", '鎺ュ崟澶у巺', res, \" at pages/index/index.vue:656\");\n        _this8.hallLoading = false;\n        if (res.code === 200) {\n          var list = res.data.records || [];\n          _this8.orderList = _this8.hallPage === 1 ? list : _this8.orderList.concat(list);\n          _this8.hallHasMore = list.length >= _this8.hallPageSize;\n        }\n      }).catch(function (err) {\n        _this8.hallLoading = false;\n      });\n    },\n    getPickupOrders: function getPickupOrders() {\n      var _this9 = this;\n      if (this.acceptingStatus === 0) return;\n      if (this.pickupLoading) return;\n      this.pickupLoading = true;\n      this.$u.api.activeOrders({\n        status: 3\n      }).then(function (res) {\n        __f__(\"log\", '寰呭彇璐�:', res, \" at pages/index/index.vue:673\");\n        _this9.pickupLoading = false;\n        if (res.code === 200) {\n          _this9.pickupOrderList = res.data.records || res.data || [];\n        }\n      }).catch(function (err) {\n        _this9.pickupLoading = false;\n      });\n    },\n    getDeliveringOrders: function getDeliveringOrders() {\n      var _this10 = this;\n      if (this.acceptingStatus === 0) return;\n      if (this.deliveringLoading) return;\n      this.deliveringLoading = true;\n      this.$u.api.activeOrders({\n        status: 4\n      }).then(function (res) {\n        __f__(\"log\", '閰嶉�佷腑:', res, \" at pages/index/index.vue:688\");\n        _this10.deliveringLoading = false;\n        if (res.code === 200) {\n          _this10.deliveringOrderList = res.data || [];\n        }\n      }).catch(function (err) {\n        _this10.deliveringLoading = false;\n      });\n    },\n    openStatusPicker: function openStatusPicker() {\n      this.showStatusPicker = true;\n    },\n    confirmStatus: function confirmStatus(e) {\n      var _this11 = this;\n      this.showStatusPicker = false;\n      var selectedValue = e.value[0];\n      this.$u.api.updateAcceptingStatus({\n        status: selectedValue.value\n      }).then(function (res) {\n        if (res.code === 200) {\n          _this11.acceptingStatus = selectedValue.value;\n          _this11.getCenterInfo();\n          if (_this11.acceptingStatus === 0) {\n            _this11.orderList = [];\n            _this11.pickupOrderList = [];\n            _this11.deliveringOrderList = [];\n          } else {\n            if (_this11.activeTab === 'pickup') {\n              _this11.getPickupOrders();\n            } else if (_this11.activeTab === 'delivering') {\n              _this11.getDeliveringOrders();\n            } else {\n              _this11.hallPage = 1;\n              _this11.hallHasMore = true;\n              _this11.orderList = [];\n              _this11.getHallOrders();\n            }\n          }\n        }\n      });\n    },\n    toDriverCertification: function toDriverCertification() {\n      uni.navigateTo({\n        url: '/pages/driver-certification/driver-certification'\n      });\n    },\n    toggleFilterPopup: function toggleFilterPopup(show) {\n      this.showFilterPopup = show;\n    },\n    selectFilter: function selectFilter(key, option) {\n      this.selectedFilters = _objectSpread(_objectSpread({}, this.selectedFilters), {}, (0, _defineProperty2.default)({}, key, option));\n    },\n    resetFilters: function resetFilters() {\n      this.showFilterPopup = false;\n      if (this.userInfo.auditStatus === 99) return;\n      this.selectedFilters = {\n        sort: '缁煎悎鎺掑簭',\n        level: '涓嶉檺',\n        distance: '涓嶉檺'\n      };\n      if (this.activeTab === 'hall') {\n        this.hallPage = 1;\n        this.hallHasMore = true;\n        this.orderList = [];\n        this.getHallOrders();\n      }\n    },\n    confirmFilters: function confirmFilters() {\n      this.showFilterPopup = false;\n      if (this.userInfo.auditStatus === 99) {\n        this.hallHasMore = true;\n        return;\n      }\n      if (this.activeTab === 'hall') {\n        this.hallPage = 1;\n        this.hallHasMore = true;\n        this.orderList = [];\n        this.getHallOrders();\n      }\n    },\n    initTTS: function initTTS() {\n      var _this12 = this;\n      if (uni.getSystemInfoSync().platform !== 'android') {\n        __f__(\"log\", '浠呮敮鎸佸畨鍗�', \" at pages/index/index.vue:778\");\n        return;\n      }\n      try {\n        // 瀵煎叆瀹夊崜鍘熺敓绫籠n        var TextToSpeech = plus.android.importClass('android.speech.tts.TextToSpeech');\n        var Locale = plus.android.importClass('java.util.Locale');\n\n        // 鍒涘缓TTS\n        this.tts = new TextToSpeech(plus.android.runtimeMainActivity(), {\n          onInit: function onInit(status) {\n            if (status == 0) {\n              // 璁剧疆涓枃\n              _this12.tts.setLanguage(Locale.CHINA);\n              __f__(\"log\", '璇煶鍒濆鍖栨垚鍔�', \" at pages/index/index.vue:793\");\n            }\n          }\n        });\n      } catch (e) {\n        __f__(\"log\", '鍒濆鍖栧け璐�', e, \" at pages/index/index.vue:798\");\n      }\n    },\n    speak: function speak(text) {\n      if (!this.tts) {\n        uni.showToast({\n          title: '璇煶鏈噯澶囧ソ',\n          icon: 'none'\n        });\n        return;\n      }\n      try {\n        // 瀹夊崜鍘熺敓鎾姤锛圦UEUE_FLUSH = 绔嬪嵆鎾姤锛屾墦鏂笂涓�鏉★級\n        this.tts.speak(text, 0, null);\n      } catch (err) {\n        __f__(\"log\", '鎾姤澶辫触', err, \" at pages/index/index.vue:815\");\n      }\n    },\n    stopSpeak: function stopSpeak() {\n      if (this.tts) this.tts.stop();\n    }\n  },\n  onUnload: function onUnload() {\n    if (this.tts) {\n      this.tts.stop();\n      this.tts.shutdown();\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 */ 92)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJ0dHMiLCJzaG93Iiwic2hvdzEiLCJzaG93R3JhYk1vZGFsIiwic2VsZWN0ZWRHcmFiT3JkZXIiLCJzZWxlY3RlZENhbmNlbE9yZGVyIiwiY2FuY2VsUmVtYWluIiwic2VsZWN0ZWRQaWNrdXBPcmRlciIsInNob3dQaG90b0RlbGl2ZXJQb3B1cCIsInJvdXRlSW5mbyIsInN0YXR1c0JhckhlaWdodCIsImhlYWRlckhlaWdodCIsInRhYmJhckhlaWdodCIsInNjcm9sbEhlaWdodCIsInNob3dGaWx0ZXJQb3B1cCIsImFjY2VwdGluZ1N0YXR1cyIsInNob3dTdGF0dXNQaWNrZXIiLCJzdGF0dXNPcHRpb25zIiwidGV4dCIsInZhbHVlIiwiY2VudGVyVXNlckluZm8iLCJhY3RpdmVUYWIiLCJleHBhbmRlZEdvb2RzSWRzIiwiY2F0ZWdvcnlMaXN0IiwiZmlsdGVyU2VjdGlvbnMiLCJrZXkiLCJ0aXRsZSIsIm9wdGlvbnMiLCJzZWxlY3RlZEZpbHRlcnMiLCJzb3J0IiwibGV2ZWwiLCJkaXN0YW5jZSIsInN0YXRzIiwibGFiZWwiLCJ0YWJzIiwib3JkZXJMaXN0IiwicGlja3VwT3JkZXJMaXN0IiwiZGVsaXZlcmluZ09yZGVyTGlzdCIsImhhbGxQYWdlIiwiaGFsbFBhZ2VTaXplIiwiaGFsbExvYWRpbmciLCJoYWxsSGFzTW9yZSIsInBpY2t1cExvYWRpbmciLCJkZWxpdmVyaW5nTG9hZGluZyIsImFjdGl2ZU9yZGVyQ291bnQiLCJ3YXRjaCIsIm9uTG9hZCIsIm9uU2hvdyIsIm9uUmVhY2hCb3R0b20iLCJjb21wdXRlZCIsImRpc3BsYXlUYWJzIiwiY291bnQiLCJjdXJyZW50T3JkZXJMaXN0IiwiaGFsbCIsInBpY2t1cCIsImRlbGl2ZXJpbmciLCJib2R5U3R5bGUiLCJtYXJnaW5Ub3AiLCJoZWlnaHQiLCJvblJlYWR5IiwibWV0aG9kcyIsImZvcm1hdFJlbWFpblRpbWUiLCJnZXRHb29kc1RleHQiLCJ0b2dnbGVHb29kc0V4cGFuZCIsImZvcm1hdERpc3RhbmNlUGFydHMiLCJ1bml0IiwibmF2aWdhdGVUb0FkZHJlc3MiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsIm5hbWUiLCJhZGRyZXNzIiwidW5pIiwiaWNvbiIsInN1Y2Nlc3MiLCJmYWlsIiwiaGFuZGxlVXNlckNsaWNrIiwidXJsIiwiZ2V0QWN0aXZlT3JkZXJDb3VudCIsImhhbmRsZUdyYWJPcmRlciIsImNvbmZpcm1HcmFiT3JkZXIiLCJvcmRlcklkIiwiaGFuZGxlQ2FuY2VsT3JkZXIiLCJjb25maXJtQ2FuY2VsT3JkZXIiLCJoYW5kbGVDYWxsIiwicGhvbmVOdW1iZXIiLCJoYW5kbGVTaG93UGlja3VwQ29kZSIsImdvVG9PcmRlckRldGFpbCIsImdldENlbnRlckluZm8iLCJmdWxsSW1nVXJsIiwiZ2V0Q2F0ZWdvcnlMaXN0RGF0YSIsInR5cGUiLCJzZWN0aW9uIiwibG9hZE9yZGVyc0J5VGFiIiwiZ2V0SGFsbE9yZGVycyIsImdyYWRlSWQiLCJzb3J0VHlwZSIsImNhcGFjaXR5IiwicGFnZSIsIm1vZGVsIiwiZ2V0UGlja3VwT3JkZXJzIiwic3RhdHVzIiwiZ2V0RGVsaXZlcmluZ09yZGVycyIsIm9wZW5TdGF0dXNQaWNrZXIiLCJjb25maXJtU3RhdHVzIiwidG9Ecml2ZXJDZXJ0aWZpY2F0aW9uIiwidG9nZ2xlRmlsdGVyUG9wdXAiLCJzZWxlY3RGaWx0ZXIiLCJyZXNldEZpbHRlcnMiLCJjb25maXJtRmlsdGVycyIsImluaXRUVFMiLCJvbkluaXQiLCJzcGVhayIsInN0b3BTcGVhayIsIm9uVW5sb2FkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFzUUE7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDLGdCQUNBO1FBQUFDO1FBQUFDO01BQUEsR0FDQTtRQUFBRDtRQUFBQztNQUFBLEVBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUMsaUJBQ0E7UUFBQUM7UUFBQUM7UUFBQUM7TUFBQSxHQUNBO1FBQUFGO1FBQUFDO1FBQUFDO01BQUEsR0FDQTtRQUFBRjtRQUFBQztRQUFBQztNQUFBLEVBQ0E7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQyxRQUNBO1FBQUFiO1FBQUFjO01BQUEsR0FDQTtRQUFBZDtRQUFBYztNQUFBLEdBQ0E7UUFBQWQ7UUFBQWM7TUFBQSxFQUNBO01BQ0FDLE9BQ0E7UUFBQUQ7UUFBQWQ7TUFBQSxHQUNBO1FBQUFjO1FBQUFkO01BQUEsR0FDQTtRQUFBYztRQUFBZDtNQUFBLEVBQ0E7TUFDQWdCO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUVBQztJQUNBeEI7TUFDQTtJQUNBO0VBQ0E7RUFFQXlCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUVBQztJQUNBO0lBQ0E7SUFDQTtFQUNBO0VBRUFDO0lBQ0E7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBRUFDLDBDQUNBO0lBRUFDO01BQUE7TUFDQTtRQUNBO1VBQUE7VUFDQTtZQUFBQztVQUFBO1FBQ0E7VUFBQTtVQUNBO1lBQUFBO1VBQUE7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFFQTtJQUNBO0lBRUFDO01BQ0E7UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0VBQUEsRUFDQTtFQUVBQztJQUNBO0VBQ0E7O0VBRUFDO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUFBO01BQUE7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtRQUNBO1VBQUE3QztVQUFBOEM7UUFBQTtNQUNBO01BRUE7UUFDQTtVQUNBO1lBQUE5QztZQUFBOEM7VUFBQTtRQUNBO1FBQ0E7VUFBQTlDO1VBQUE4QztRQUFBO01BQ0E7TUFFQTtNQUNBO01BQ0E7UUFDQTtVQUNBOUM7VUFDQThDO1FBQ0E7TUFDQTtNQUVBO1FBQUE5QztRQUFBOEM7TUFBQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO1FBQ0FIO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQTtRQUNBQztVQUFBN0M7VUFBQThDO1FBQUE7UUFDQTtNQUNBO01BQ0FEO1FBQ0FKO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FHO1FBQ0FDO1VBQ0FIO1lBQUE3QztZQUFBOEM7VUFBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFHO01BQ0FKO1FBQ0FLO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQUE7TUFDQTtNQUNBO1FBQUFDO01BQUE7UUFDQTtRQUNBO1VBQ0FUO1lBQUE3QztZQUFBOEM7VUFBQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO1VBQ0FEO1lBQUE3QztZQUFBOEM7VUFBQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQVM7TUFBQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUFBO01BQ0E7TUFDQTtRQUFBRjtNQUFBO1FBQ0E7UUFDQTtVQUNBVDtZQUFBN0M7WUFBQThDO1VBQUE7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBRDtZQUFBN0M7WUFBQThDO1VBQUE7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFXO01BQ0E7UUFDQVo7VUFDQWE7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO1FBQ0FWO01BQ0E7TUFDQUw7UUFBQUs7TUFBQTtJQUNBO0lBRUFXO01BQUE7TUFDQTtRQUNBO1VBQ0E7VUFDQTtZQUNBQztZQUNBbkI7VUFDQTtVQUNBLGdCQUNBO1lBQUFsRDtZQUFBYztVQUFBLEdBQ0E7WUFBQWQ7WUFBQWM7VUFBQSxHQUNBO1lBQUFkO1lBQUFjO1VBQUEsRUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBd0Q7TUFBQTtNQUNBO1FBQUFDO01BQUE7UUFDQTtVQUNBO1VBQ0E7WUFDQTtjQUNBQztnQkFBQTtjQUFBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUFBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUVBO01BQ0E7UUFDQTtRQUNBO1VBQ0E5RDtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUVBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7TUFFQTtNQUNBO1FBQ0E7VUFBQTtRQUFBO1FBQ0E7VUFDQStEO1FBQ0E7TUFDQTtNQUVBO1FBQUEvRDtRQUFBK0Q7UUFBQUM7TUFBQTtNQUNBO1FBQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0FuRTtVQUNBK0Q7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBSTtNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQUM7TUFBQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQUQ7TUFBQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBRTtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUNBO01BQ0E7TUFDQTtRQUFBSDtNQUFBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFDQTtZQUNBO2NBQ0E7WUFDQTtjQUNBO1lBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQUk7TUFDQWpDO1FBQ0FLO01BQ0E7SUFDQTtJQUVBNkI7TUFDQTtJQUNBO0lBRUFDO01BQ0EsdURBQ0EsNkRBQ0FqRixhQUNBO0lBQ0E7SUFFQWtGO01BQ0E7TUFDQTtNQUNBO1FBQ0E5RTtRQUNBQztRQUNBQztNQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQTZFO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFDO01BQUE7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUVBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7VUFDQUM7WUFDQTtjQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7UUFDQXhDO1VBQ0E3QztVQUNBOEM7UUFDQTtRQUNBO01BQ0E7TUFFQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBd0M7TUFDQTtJQUNBO0VBQ0E7RUFFQUM7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiI5MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VcIj5cblx0XHQ8dmlldyBjbGFzcz1cImhhbGwtcGFnZV9faGVhZGVyXCIgOnN0eWxlPVwieyBwYWRkaW5nVG9wOiBzdGF0dXNCYXJIZWlnaHQgKyAncHgnIH1cIj5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaGFsbC1wYWdlX191c2VyLXJvd1wiIEBjbGljaz1cImhhbmRsZVVzZXJDbGlja1wiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImhhbGwtcGFnZV9fdXNlclwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImhhbGwtcGFnZV9fYXZhdGFyXCIgOnNyYz1cImNlbnRlclVzZXJJbmZvLmZ1bGxJbWdVcmwgfHwgJy9zdGF0aWMvaW1hZ2UvaWNfcGljQDJ4LnBuZydcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJoYWxsLXBhZ2VfX25hbWVcIj57eyBjZW50ZXJVc2VySW5mby5uYW1lIH19PC90ZXh0PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0dXNcIiB2LWlmPVwidXNlckluZm8uYXVkaXRTdGF0dXMgPT09IDNcIiBAY2xpY2s9XCJvcGVuU3RhdHVzUGlja2VyXCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3N0YXR1cy1kb3RcIiA6Y2xhc3M9XCJ7ICdoYWxsLXBhZ2VfX3N0YXR1cy1kb3QtLW9mZmxpbmUnOiBhY2NlcHRpbmdTdGF0dXMgPT09IDAgfVwiPjwvdmlldz5cblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImhhbGwtcGFnZV9fc3RhdHVzLXRleHRcIj57eyBhY2NlcHRpbmdTdGF0dXMgPT09IDEgPyAn5o6l5Y2V5LitJyA6ICflt7LkuIvnur8nIH19PC90ZXh0PlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0dXMtYXJyb3dcIj7ilrw8L3RleHQ+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3VzZXJcIiBzdHlsZT1cIm9wYWNpdHk6IDA7XCI+XG5cdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaGFsbC1wYWdlX19hdmF0YXJcIiA6c3JjPVwiY2VudGVyVXNlckluZm8uZnVsbEltZ1VybCB8fCAnL3N0YXRpYy9pbWFnZS9pY19waWNAMngucG5nJ1wiIG1vZGU9XCJhc3BlY3RGaWxsXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImhhbGwtcGFnZV9fbmFtZVwiPnt7IGNlbnRlclVzZXJJbmZvLm5hbWUgfX08L3RleHQ+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3N0YXRzXCI+XG5cdFx0XHRcdDx2aWV3IHYtZm9yPVwiaXRlbSBpbiBzdGF0c1wiIDprZXk9XCJpdGVtLmxhYmVsXCIgY2xhc3M9XCJoYWxsLXBhZ2VfX3N0YXQtaXRlbVwiPlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0LXZhbHVlXCI+e3sgdXNlckluZm8uYXVkaXRTdGF0dXMgPT09IDMgPyBpdGVtLnZhbHVlIDogJy0nIH19PC90ZXh0PlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0LWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvdGV4dD5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhhbGwtcGFnZV9fdGFic1wiPlxuXHRcdFx0XHQ8dmlldyB2LWZvcj1cInRhYiBpbiBkaXNwbGF5VGFic1wiIDprZXk9XCJ0YWIudmFsdWVcIiBjbGFzcz1cImhhbGwtcGFnZV9fdGFiXCIgOmNsYXNzPVwieyAnaGFsbC1wYWdlX190YWItLWFjdGl2ZSc6IGFjdGl2ZVRhYiA9PT0gdGFiLnZhbHVlIH1cIiBAY2xpY2s9XCJhY3RpdmVUYWIgPSB0YWIudmFsdWVcIj5cblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImhhbGwtcGFnZV9fdGFiLXRleHRcIj57eyB0YWIubGFiZWwgfX08L3RleHQ+XG5cdFx0XHRcdFx0PHRleHQgdi1pZj1cInRhYi5jb3VudFwiIGNsYXNzPVwiaGFsbC1wYWdlX190YWItY291bnRcIj57eyB1c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gMyA/IHRhYi5jb3VudCA6ICcnIH19PC90ZXh0PlxuXHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJhY3RpdmVUYWIgPT09IHRhYi52YWx1ZVwiIGNsYXNzPVwiaGFsbC1wYWdlX190YWItbGluZVwiPjwvdmlldz5cblx0XHRcdFx0PC92aWV3Plx0XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGFsbC1wYWdlX19maWx0ZXJcIiBAY2xpY2s9XCJ0b2dnbGVGaWx0ZXJQb3B1cCh0cnVlKVwiPlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19maWx0ZXItdGV4dFwiIDpjbGFzcz1cInsgJ2hhbGwtcGFnZV9fZmlsdGVyLXRleHQtLWFjdGl2ZSc6IHNob3dGaWx0ZXJQb3B1cCB9XCI+562b6YCJPC90ZXh0PlxuXHRcdFx0XHRcdDxpbWFnZSA6c3JjPVwic2hvd0ZpbHRlclBvcHVwID8gJy9zdGF0aWMvaW1hZ2UvaWNfc2hhaXh1YW5fc2VsQDJ4LnBuZycgOiAnL3N0YXRpYy9pbWFnZS9pY19zaGFpeHVhbkAyeC5wbmcnXCIgbW9kZT1cIndpZHRoRml4XCIgY2xhc3M9XCJoYWxsLXBhZ2VfX2ZpbHRlci1pY29uXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblxuXHRcdDx2aWV3IHYtaWY9XCJzaG93RmlsdGVyUG9wdXBcIiBjbGFzcz1cImZpbHRlci1wb3B1cFwiIDpzdHlsZT1cInsgdG9wOiBoZWFkZXJIZWlnaHQgKyAncHgnLCBib3R0b206IHRhYmJhckhlaWdodCArICdweCcgfVwiIEBjbGljaz1cInRvZ2dsZUZpbHRlclBvcHVwKGZhbHNlKVwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJmaWx0ZXItcG9wdXBfX3BhbmVsXCIgQGNsaWNrLnN0b3A+XG5cdFx0XHRcdDxzY3JvbGwtdmlldyBjbGFzcz1cImZpbHRlci1wb3B1cF9fY29udGVudFwiIHNjcm9sbC15PlxuXHRcdFx0XHRcdDx2aWV3IHYtZm9yPVwic2VjdGlvbiBpbiBmaWx0ZXJTZWN0aW9uc1wiIDprZXk9XCJzZWN0aW9uLmtleVwiIGNsYXNzPVwiZmlsdGVyLXBvcHVwX19zZWN0aW9uXCI+XG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImZpbHRlci1wb3B1cF9fdGl0bGVcIj57eyBzZWN0aW9uLnRpdGxlIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmaWx0ZXItcG9wdXBfX29wdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXdcblx0XHRcdFx0XHRcdFx0XHR2LWZvcj1cIm9wdGlvbiBpbiBzZWN0aW9uLm9wdGlvbnNcIlxuXHRcdFx0XHRcdFx0XHRcdDprZXk9XCJvcHRpb25cIlxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiZmlsdGVyLXBvcHVwX19vcHRpb25cIlxuXHRcdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsgJ2ZpbHRlci1wb3B1cF9fb3B0aW9uLS1hY3RpdmUnOiBzZWxlY3RlZEZpbHRlcnNbc2VjdGlvbi5rZXldID09PSBvcHRpb24gfVwiXG5cdFx0XHRcdFx0XHRcdFx0QGNsaWNrPVwic2VsZWN0RmlsdGVyKHNlY3Rpb24ua2V5LCBvcHRpb24pXCJcblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiZmlsdGVyLXBvcHVwX19vcHRpb24tdGV4dFwiPnt7IG9wdGlvbiB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PC9zY3JvbGwtdmlldz5cblxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImZpbHRlci1wb3B1cF9fYWN0aW9uc1wiPlxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJmaWx0ZXItcG9wdXBfX2J1dHRvbiBmaWx0ZXItcG9wdXBfX2J1dHRvbi0tcmVzZXRcIiBob3Zlci1jbGFzcz1cImZpbHRlci1wb3B1cF9fYnV0dG9uLS1ob3ZlclwiIEBjbGljaz1cInJlc2V0RmlsdGVyc1wiPumHjee9rjwvYnV0dG9uPlxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJmaWx0ZXItcG9wdXBfX2J1dHRvbiBmaWx0ZXItcG9wdXBfX2J1dHRvbi0tY29uZmlybVwiIGhvdmVyLWNsYXNzPVwiZmlsdGVyLXBvcHVwX19idXR0b24tLWhvdmVyXCIgQGNsaWNrPVwiY29uZmlybUZpbHRlcnNcIj7noa7orqQ8L2J1dHRvbj5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblxuXHRcdDxzY3JvbGwtdmlldyBjbGFzcz1cImhhbGwtcGFnZV9fYm9keVwiIHNjcm9sbC15IDpzdHlsZT1cImJvZHlTdHlsZVwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3ZlcmlmaWVkXCIgdi1pZj1cInVzZXJJbmZvLmF1ZGl0U3RhdHVzICE9PSAzXCI+XG5cdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlL2RlZmF1bHRfdW52ZXJpZmllZEAyeC5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHQ8YnV0dG9uIEBjbGljaz1cInRvRHJpdmVyQ2VydGlmaWNhdGlvblwiPuWOu+iupOivgTwvYnV0dG9uPlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgdi1lbHNlLWlmPVwidXNlckluZm8uYXVkaXRTdGF0dXMgPT09IDMgJiYgYWNjZXB0aW5nU3RhdHVzID09PSAxICYmIGN1cnJlbnRPcmRlckxpc3QubGVuZ3RoXCIgY2xhc3M9XCJoYWxsLXBhZ2VfX2xpc3RcIj5cblx0XHRcdFx0PHZpZXcgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGN1cnJlbnRPcmRlckxpc3RcIiA6a2V5PVwiaXRlbS5pZFwiIGNsYXNzPVwib3JkZXItY2FyZFwiIEBjbGljaz1cImdvVG9PcmRlckRldGFpbChpdGVtLCBpbmRleClcIj5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2hlYWRcIj5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fdGltZVwiIHYtaWY9XCJpdGVtLnJlbWFpbk1pbnV0ZXMgPiAwXCI+XG5cdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fdGltZS1tYWluXCI+e3sgZm9ybWF0UmVtYWluVGltZShpdGVtLnJlbWFpbk1pbnV0ZXMpIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3RpbWUtc3ViXCI+6YCB6L6+PC90ZXh0PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX190aW1lXCIgdi1lbHNlPlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3RpbWUtbWFpblwiPumFjemAgeW3sui2heaXtu+8jOivt+WwveW/q+mAgei+vjwvdGV4dD5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJhY3RpdmVUYWIgPT09ICdoYWxsJ1wiIGNsYXNzPVwib3JkZXItY2FyZF9fcHJpY2Utd3JhcFwiPlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3ByaWNlXCI+wqV7eyBpdGVtLnBsYXRmb3JtUmV3YXJkQW1vdW50ID8gKGl0ZW0uZHJpdmVyRmVlICsgaXRlbS5wbGF0Zm9ybVJld2FyZEFtb3VudCkgLyAxMDAgOiAoaXRlbS5kcml2ZXJGZWUgLyAxMDApLnRvRml4ZWQoMikgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyB2LWVsc2UgY2xhc3M9XCJvcmRlci1jYXJkX19wcmljZS13cmFwIG9yZGVyLWNhcmRfX3ByaWNlLXdyYXAtLXNlcmlhbC1vbmx5XCI+XG5cdFx0XHRcdFx0XHRcdDx0ZXh0IHYtaWY9XCJpdGVtLmNvZGVcIiBjbGFzcz1cIm9yZGVyLWNhcmRfX3NlcmlhbFwiPiN7eyBpbmRleCArIDEgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19tZXRhXCI+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX3RhZ3NcIj5cblx0XHRcdFx0XHRcdFx0PGltYWdlIHYtaWY9XCJpdGVtLmlzVXJnZW50ID09PSAxXCIgY2xhc3M9XCJvcmRlci1jYXJkX190YWctaW1nXCIgc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19qaXN1ZGFAMngucG5nXCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PGltYWdlIHYtZWxzZSBjbGFzcz1cIm9yZGVyLWNhcmRfX3RhZy1pbWdcIiBzcmM9XCIvc3RhdGljL2ltYWdlL2ljX2JpYW9zdWRhQDJ4LnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDx0ZXh0IHYtaWY9XCJpdGVtLmlzVmFsdWFibGUgPT09IHRydWVcIiBjbGFzcz1cIm9yZGVyLWNhcmRfX3RhZyBvcmRlci1jYXJkX190YWctLW9yYW5nZVwiPui0temHjeeJqeWTgTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0PHRleHQgdi1lbHNlIGNsYXNzPVwib3JkZXItY2FyZF9fdGFnIG9yZGVyLWNhcmRfX3RhZy0tYmx1ZVwiPnt7IGl0ZW0uZ29vZExldmVsTmFtZSB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx0ZXh0IHYtaWY9XCJhY3RpdmVUYWIgPT09ICdoYWxsJyAmJiBpdGVtLnBsYXRmb3JtUmV3YXJkQW1vdW50XCIgY2xhc3M9XCJvcmRlci1jYXJkX19leHRyYVwiPuWQq+WKoOaApcKle3sgKGl0ZW0ucGxhdGZvcm1SZXdhcmRBbW91bnQgLyAxMDApLnRvRml4ZWQoMikgfX08L3RleHQ+XG5cdFx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZVwiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS1zaWRlXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fZGlzdGFuY2UtYmxvY2sgb3JkZXItY2FyZF9fZGlzdGFuY2UtYmxvY2stLXRvcFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fZGlzdGFuY2UtdmFsdWVcIj57eyBmb3JtYXREaXN0YW5jZVBhcnRzKGl0ZW0uZGVwb3NpdERpc3RhbmNlKS52YWx1ZSB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX2Rpc3RhbmNlLXVuaXRcIj57eyBmb3JtYXREaXN0YW5jZVBhcnRzKGl0ZW0uZGVwb3NpdERpc3RhbmNlKS51bml0IH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fbGluZVwiPjwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19kaXN0YW5jZS1ibG9jayBvcmRlci1jYXJkX19kaXN0YW5jZS1ibG9jay0tYm90dG9tXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJvcmRlci1jYXJkX19kaXN0YW5jZS12YWx1ZVwiPnt7IGZvcm1hdERpc3RhbmNlUGFydHMoaXRlbS50YWtlRGlzdGFuY2UpLnZhbHVlIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fZGlzdGFuY2UtdW5pdFwiPnt7IGZvcm1hdERpc3RhbmNlUGFydHMoaXRlbS50YWtlRGlzdGFuY2UpLnVuaXQgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fcm91dGUtbWFpblwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLWl0ZW1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLXRleHRzXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLXRpdGxlXCI+e3sgaXRlbS5kZXBvc2l0U2hvcE5hbWUgfX3lpKfoi4/miZPmiZPnrpc8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLWRlc2NcIj57eyBpdGVtLmRlcG9zaXRTaG9wQWRkcmVzcyB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9zdGF0aWMvaW1hZ2UvaWNfZGFvaGFuZ0AyeC5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIiBjbGFzcz1cIm9yZGVyLWNhcmRfX25hdlwiIEBjbGljay5zdG9wPVwibmF2aWdhdGVUb0FkZHJlc3MoaXRlbSwgJ2RlcG9zaXQnKVwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS1pdGVtIG9yZGVyLWNhcmRfX3JvdXRlLWl0ZW0tLWRlc3RpbmF0aW9uXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS10ZXh0c1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlIHYtaWY9XCJpdGVtLnRha2VTaG9wSWRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS10aXRsZVwiPnt7IGl0ZW0udGFrZU5hbWUgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fcm91dGUtZGVzY1wiPnt7IGl0ZW0udGFrZUFkZHJlc3MgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3RlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgdi1lbHNlIGNsYXNzPVwib3JkZXItY2FyZF9fcm91dGUtdGl0bGVcIj57eyBpdGVtLnRha2VBZGRyZXNzIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19kYW9oYW5nQDJ4LnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiIGNsYXNzPVwib3JkZXItY2FyZF9fbmF2XCIgQGNsaWNrLnN0b3A9XCJuYXZpZ2F0ZVRvQWRkcmVzcyhpdGVtLCAndGFrZScpXCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fZ29vZHNcIiB2LWlmPVwiaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCA+IDBcIiBAY2xpY2suc3RvcD1cInRvZ2dsZUdvb2RzRXhwYW5kKGl0ZW0uaWQpXCI+XG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX2dvb2RzLXRleHRcIj57eyBnZXRHb29kc1RleHQoaXRlbS5pdGVtcywgaXRlbS5pZCkgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHQ8dS1pY29uIHYtaWY9XCJnZXRHb29kc1RleHQoaXRlbS5pdGVtcywgaXRlbS5pZCkubGVuZ3RoID4gMjBcIiBuYW1lPVwiYXJyb3ctZG93blwiIDpjbGFzcz1cInsgJ29yZGVyLWNhcmRfX2dvb2RzLWFycm93LS1leHBhbmRlZCc6IGV4cGFuZGVkR29vZHNJZHMuaW5jbHVkZXMoaXRlbS5pZCkgfVwiIHNpemU9XCIxMlwiIGNvbG9yPVwiI2E0YTliMVwiPjwvdS1pY29uPlxuXHRcdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fYWN0aW9uc1wiIDpjbGFzcz1cIidvcmRlci1jYXJkX19hY3Rpb25zLS0nICsgYWN0aXZlVGFiXCI+XG5cdFx0XHRcdFx0XHQ8dGVtcGxhdGUgdi1pZj1cImFjdGl2ZVRhYiA9PT0gJ3BpY2t1cCdcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19pY29uLWFjdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2ljb24tYWN0aW9uXCIgQGNsaWNrLnN0b3A9XCJoYW5kbGVDYW5jZWxPcmRlcihpdGVtKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cIm9yZGVyLWNhcmRfX2FjdGlvbi1pY29uXCIgc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19jYW5jbGVAMngucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX2FjdGlvbi10ZXh0XCI+5Y+W5raIPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2ljb24tYWN0aW9uXCIgQGNsaWNrLnN0b3A9XCJoYW5kbGVDYWxsKGl0ZW0pXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJvcmRlci1jYXJkX19hY3Rpb24taWNvblwiIHNyYz1cIi9zdGF0aWMvaW1hZ2UvaWNfY2FsbEAyeC5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fYWN0aW9uLXRleHRcIj7ogZTns7s8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJvcmRlci1jYXJkX19idXR0b24gb3JkZXItY2FyZF9fYnV0dG9uLS1jb2RlXCIgaG92ZXItY2xhc3M9XCJvcmRlci1jYXJkX19idXR0b24tLWhvdmVyXCIgQGNsaWNrLnN0b3A9XCJoYW5kbGVTaG93UGlja3VwQ29kZShpdGVtKVwiPuWPlui0p+eggTwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0PC90ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSB2LWVsc2UtaWY9XCJhY3RpdmVUYWIgPT09ICdkZWxpdmVyaW5nJ1wiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2ljb24tYWN0aW9ucyBvcmRlci1jYXJkX19pY29uLWFjdGlvbnMtLXNpbmdsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9faWNvbi1hY3Rpb25cIiBAY2xpY2suc3RvcD1cImhhbmRsZUNhbGwoaXRlbSlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cIm9yZGVyLWNhcmRfX2FjdGlvbi1pY29uXCIgc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19jYWxsQDJ4LnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJvcmRlci1jYXJkX19hY3Rpb24tdGV4dFwiPuiBlOezuzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cIm9yZGVyLWNhcmRfX2J1dHRvbiBvcmRlci1jYXJkX19idXR0b24tLWNvZGVcIiBob3Zlci1jbGFzcz1cIm9yZGVyLWNhcmRfX2J1dHRvbi0taG92ZXJcIiBAY2xpY2suc3RvcD1cImhhbmRsZVNob3dQaWNrdXBDb2RlKGl0ZW0pXCI+5a2Y5Lu256CBPC9idXR0b24+XG5cdFx0XHRcdFx0XHQ8L3RlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB2LWVsc2UgY2xhc3M9XCJvcmRlci1jYXJkX19idXR0b25cIiBob3Zlci1jbGFzcz1cIm9yZGVyLWNhcmRfX2J1dHRvbi0taG92ZXJcIiBAY2xpY2suc3RvcD1cImhhbmRsZUdyYWJPcmRlcihpdGVtKVwiPueri+WNs+aKouWNlTwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXG5cdFx0XHQ8dmlldyB2LWVsc2UgY2xhc3M9XCJoYWxsLXBhZ2VfX2VtcHR5XCI+XG5cdFx0XHRcdDxpbWFnZSBjbGFzcz1cImhhbGwtcGFnZV9fZW1wdHktaWNvblwiIDpzcmM9XCJhY2NlcHRpbmdTdGF0dXMgPT09IDAgPyAnL3N0YXRpYy9pbWFnZS9kZWZhdWx0X25vZGF0YV9ncmV5QDJ4LnBuZycgOiAnL3N0YXRpYy9pbWFnZS9kZWZhdWx0X25vZGF0YUAyeC5wbmcnXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC9zY3JvbGwtdmlldz5cblx0XHRcblx0XHQ8IS0tIOWPlua2iOiuouWNlSAtLT5cblx0XHQ8dS1tb2RhbFxuXHRcdFx0OnNob3c9XCJzaG93XCJcblx0XHRcdHNob3dDYW5jZWxCdXR0b25cblx0XHRcdEBjYW5jZWw9XCJzaG93ID0gZmFsc2VcIlxuXHRcdFx0Y2FuY2VsQ29sb3I9XCIjNjY2NjY2XCJcblx0XHRcdGNvbmZpcm1Db2xvcj1cIiMwMDU1RkZcIlxuXHRcdFx0dGl0bGU9XCLlj5bmtojorqLljZXnoa7orqRcIlxuXHRcdFx0QGNvbmZpcm09XCJjb25maXJtQ2FuY2VsT3JkZXJcIj5cblx0XHRcdDx2aWV3IHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO2NvbG9yOiAjMzMzMzMzO2ZvbnQtc2l6ZTogMjhycHg7Zm9udC13ZWlnaHQ6IDQwMDtcIj5cblx0XHRcdFx05oKo5LuK5pel6L+Y5Y+v5Y+W5raIIHt7IGNhbmNlbFJlbWFpbiB9fSDmrKHorqLljZXvvIzmrKHmlbDnlKjlsL3lkI7ku4rml6XlsIbml6Dms5XmjqXljZXvvIzmmK/lkKbnoa7orqTlj5bmtojvvJ9cblx0XHRcdDwvdmlldz5cblx0XHQ8L3UtbW9kYWw+XG5cblx0XHQ8IS0tIOeri+WNs+aKouWNlSAtLT5cblx0XHQ8dS1tb2RhbFxuXHRcdFx0OnNob3c9XCJzaG93R3JhYk1vZGFsXCJcblx0XHRcdHNob3dDYW5jZWxCdXR0b25cblx0XHRcdEBjYW5jZWw9XCJzaG93R3JhYk1vZGFsID0gZmFsc2VcIlxuXHRcdFx0Y2FuY2VsQ29sb3I9XCIjNjY2NjY2XCJcblx0XHRcdGNvbmZpcm1Db2xvcj1cIiMwMDU1RkZcIlxuXHRcdFx0dGl0bGU9XCLmuKnppqjmj5DnpLpcIlxuXHRcdFx0QGNvbmZpcm09XCJjb25maXJtR3JhYk9yZGVyXCI+XG5cdFx0XHQ8dmlldyBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtjb2xvcjogIzMzMzMzMztmb250LXNpemU6IDI4cnB4O2ZvbnQtd2VpZ2h0OiA0MDA7XCI+XG5cdFx0XHRcdHt7IHNlbGVjdGVkR3JhYk9yZGVyICYmIHNlbGVjdGVkR3JhYk9yZGVyLmhhc092ZXJzaXplZCA9PT0gMSA/ICfmnKzorqLljZXmnInnibnlpKfku7blsLrlr7jooYzmnY7vvIzor7fnoa7orqTmmK/lkKbnu6fnu63miqLljZXvvJ8nIDogJ+aYr+WQpuehruiupOaOpeWNle+8nycgfX1cblx0XHRcdDwvdmlldz5cblx0XHQ8L3UtbW9kYWw+XG5cdFx0XG5cdFx0PCEtLSDlj5botKfnoIEv5a2Y5Lu256CBIC0tPlxuXHRcdDx1LXBvcHVwIDpzaG93PVwic2hvdzFcIiByb3VuZD1cIjIwXCIgbW9kZT1cImJvdHRvbVwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJxcmNvZGVcIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJxcmNvZGUtdGl0bGVcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19jbG9zZUAyeC5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIiBzdHlsZT1cIm9wYWNpdHk6IDA7XCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8dGV4dD57eyBhY3RpdmVUYWIgPT09ICdkZWxpdmVyaW5nJyA/ICflrZjku7bnoIEnIDogJ+WPlui0p+eggScgfX08L3RleHQ+XG5cdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9zdGF0aWMvaW1hZ2UvaWNfY2xvc2VAMngucG5nXCIgbW9kZT1cIndpZHRoRml4XCIgQGNsaWNrPVwic2hvdzEgPSBmYWxzZVwiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJxcmNvZGUtaW1hZ2VcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cInNlbGVjdGVkUGlja3VwT3JkZXIgJiYgc2VsZWN0ZWRQaWNrdXBPcmRlci5kcml2ZXJWZXJpZnlDb2RlXCIgOnNyYz1cIidodHRwczovL2FwaS5xcnNlcnZlci5jb20vdjEvY3JlYXRlLXFyLWNvZGUvP3NpemU9MjAweDIwMCZkYXRhPScgKyBzZWxlY3RlZFBpY2t1cE9yZGVyLmRyaXZlclZlcmlmeUNvZGVcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicXJjb2RlLWJ0blwiIGhvdmVyLWNsYXNzPVwicXJjb2RlLWJ0bi0taG92ZXJcIiBAY2xpY2s9XCJzaG93MSA9IGZhbHNlXCI+5YWz6ZetPC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdS1wb3B1cD5cblxuXHRcdDx1LXBvcHVwIDpzaG93PVwic2hvd1Bob3RvRGVsaXZlclBvcHVwXCIgcm91bmQ9XCIyMFwiIG1vZGU9XCJib3R0b21cIj5cblx0XHRcdDx2aWV3IGNsYXNzPVwicGhvdG8tZGVsaXZlclwiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX2hlYWRlclwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX2Nsb3NlLXBsYWNlaG9sZGVyXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX190aXRsZVwiPuaLjeeFp+mAgei+vjwvdGV4dD5cblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaG90by1kZWxpdmVyX19jbG9zZVwiIG1vZGU9XCJhc3BlY3RGaXRcIiBAY2xpY2s9XCJzaG93UGhvdG9EZWxpdmVyUG9wdXAgPSBmYWxzZVwiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3NlY3Rpb25cIj5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX2xhYmVsLXJvd1wiPlxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX19sYWJlbFwiPuaLjeaRhOmAgei+vueFp+eJhzwvdGV4dD5cblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwicGhvdG8tZGVsaXZlcl9fcmVxdWlyZWRcIj4qPC90ZXh0PlxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX19oaW50XCI+5pyA5aSaM+W8oOeFp+eJhzwvdGV4dD5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3Bob3Rvc1wiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaG90by1kZWxpdmVyX191cGxvYWQtY2FyZFwiPlxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaG90by1kZWxpdmVyX191cGxvYWQtaWNvblwiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3VwbG9hZC10ZXh0XCI+54K55Ye75ouN54WnPC90ZXh0PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3ByZXZpZXctY2FyZFwiPlxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaG90by1kZWxpdmVyX19wcmV2aWV3LWltYWdlXCIgbW9kZT1cImFzcGVjdEZpbGxcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3ByZXZpZXctbWFza1wiPlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwicGhvdG8tZGVsaXZlcl9fcHJldmlldy1kZWxldGVcIj7liKDpmaQ8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3NlY3Rpb24gcGhvdG8tZGVsaXZlcl9fc2VjdGlvbi0tcmVtYXJrXCI+XG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX19yZW1hcmstdGl0bGVcIj7lpIfms6jkv6Hmga88L3RleHQ+XG5cdFx0XHRcdFx0PHRleHRhcmVhIGNsYXNzPVwicGhvdG8tZGVsaXZlcl9fdGV4dGFyZWFcIiBtYXhsZW5ndGg9XCIyMDBcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpVwiIHBsYWNlaG9sZGVyLXN0eWxlPVwiY29sb3I6ICNjN2NiZDM7XCIgLz5cblx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJwaG90by1kZWxpdmVyX19zdWJtaXRcIiBob3Zlci1jbGFzcz1cInBob3RvLWRlbGl2ZXJfX3N1Ym1pdC0taG92ZXJcIiBAY2xpY2s9XCJzaG93UGhvdG9EZWxpdmVyUG9wdXAgPSBmYWxzZVwiPuehruiupOmAgei+vjwvYnV0dG9uPlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdS1wb3B1cD5cblxuXHRcdDx1LXBpY2tlclxuXHRcdFx0OnNob3c9XCJzaG93U3RhdHVzUGlja2VyXCJcblx0XHRcdGNvbmZpcm1Db2xvcj1cIiMxMEIyRkFcIlxuXHRcdFx0a2V5TmFtZT1cInRleHRcIlxuXHRcdFx0OmNvbHVtbnM9XCJbc3RhdHVzT3B0aW9uc11cIlxuXHRcdFx0QGNvbmZpcm09XCJjb25maXJtU3RhdHVzXCJcblx0XHRcdEBjYW5jZWw9XCJzaG93U3RhdHVzUGlja2VyID0gZmFsc2VcIiAvPlxuXHQ8L3ZpZXc+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXHRpbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnXG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dHRzOiBudWxsLFxuXHRcdFx0XHRzaG93OiBmYWxzZSxcblx0XHRcdFx0c2hvdzE6IGZhbHNlLFxuXHRcdFx0XHRzaG93R3JhYk1vZGFsOiBmYWxzZSxcblx0XHRcdFx0c2VsZWN0ZWRHcmFiT3JkZXI6IG51bGwsXG5cdFx0XHRcdHNlbGVjdGVkQ2FuY2VsT3JkZXI6IG51bGwsXG5cdFx0XHRcdGNhbmNlbFJlbWFpbjogMCxcblx0XHRcdFx0c2VsZWN0ZWRQaWNrdXBPcmRlcjogbnVsbCxcblx0XHRcdFx0c2hvd1Bob3RvRGVsaXZlclBvcHVwOiBmYWxzZSxcblx0XHRcdFx0cm91dGVJbmZvOiBudWxsLFxuXHRcdFx0XHRzdGF0dXNCYXJIZWlnaHQ6IDAsXG5cdFx0XHRcdGhlYWRlckhlaWdodDogMCxcblx0XHRcdFx0dGFiYmFySGVpZ2h0OiAwLFxuXHRcdFx0XHRzY3JvbGxIZWlnaHQ6IDAsXG5cdFx0XHRcdHNob3dGaWx0ZXJQb3B1cDogZmFsc2UsXG5cdFx0XHRcdGFjY2VwdGluZ1N0YXR1czogMCxcblx0XHRcdFx0c2hvd1N0YXR1c1BpY2tlcjogZmFsc2UsXG5cdFx0XHRcdHN0YXR1c09wdGlvbnM6IFtcblx0XHRcdFx0XHR7IHRleHQ6ICfkuIrnur8nLCB2YWx1ZTogMSB9LFxuXHRcdFx0XHRcdHsgdGV4dDogJ+S4i+e6vycsIHZhbHVlOiAwIH1cblx0XHRcdFx0XSxcblx0XHRcdFx0Y2VudGVyVXNlckluZm86IHt9LFxuXHRcdFx0XHRhY3RpdmVUYWI6ICdoYWxsJyxcblx0XHRcdFx0ZXhwYW5kZWRHb29kc0lkczogW10sXG5cdFx0XHRcdGNhdGVnb3J5TGlzdDogW10sXG5cdFx0XHRcdGZpbHRlclNlY3Rpb25zOiBbXG5cdFx0XHRcdFx0eyBrZXk6ICdzb3J0JywgdGl0bGU6ICfmjpLluo8nLCBvcHRpb25zOiBbJ+e7vOWQiOaOkuW6jycsICfot53nprvmnIDov5EnXSB9LFxuXHRcdFx0XHRcdHsga2V5OiAnbGV2ZWwnLCB0aXRsZTogJ+eJqeWTgeetiee6pycsIG9wdGlvbnM6IFsn5LiN6ZmQJ10gfSxcblx0XHRcdFx0XHR7IGtleTogJ2Rpc3RhbmNlJywgdGl0bGU6ICfkvY3nva7ojIPlm7QnLCBvcHRpb25zOiBbJ+S4jemZkCcsICc1MDBtJywgJzFrbScsICcya20nLCAnM2ttJywgJzRrbScsICc1a20nLCAnNmttJywgJzdrbSddIH1cblx0XHRcdFx0XSxcblx0XHRcdFx0c2VsZWN0ZWRGaWx0ZXJzOiB7XG5cdFx0XHRcdFx0c29ydDogJ+e7vOWQiOaOkuW6jycsXG5cdFx0XHRcdFx0bGV2ZWw6ICfkuI3pmZAnLFxuXHRcdFx0XHRcdGRpc3RhbmNlOiAn5LiN6ZmQJ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzdGF0czogW1xuXHRcdFx0XHRcdHsgdmFsdWU6ICctJywgbGFiZWw6ICfmnI3liqHliIYnIH0sXG5cdFx0XHRcdFx0eyB2YWx1ZTogJy0nLCBsYWJlbDogJ+S7iuaXpemihOiuoeS9o+mHkScgfSxcblx0XHRcdFx0XHR7IHZhbHVlOiAnLScsIGxhYmVsOiAn5LuK5pel5o6l5Y2VJyB9XG5cdFx0XHRcdF0sXG5cdFx0XHRcdHRhYnM6IFtcblx0XHRcdFx0XHR7IGxhYmVsOiAn5oqi5Y2V5aSn5Y6FJywgdmFsdWU6ICdoYWxsJyB9LFxuXHRcdFx0XHRcdHsgbGFiZWw6ICflvoXlj5botKcnLCB2YWx1ZTogJ3BpY2t1cCcgfSxcblx0XHRcdFx0XHR7IGxhYmVsOiAn6YWN6YCB5LitJywgdmFsdWU6ICdkZWxpdmVyaW5nJyB9XG5cdFx0XHRcdF0sXG5cdFx0XHRcdG9yZGVyTGlzdDogW10sXG5cdFx0XHRcdHBpY2t1cE9yZGVyTGlzdDogW10sXG5cdFx0XHRcdGRlbGl2ZXJpbmdPcmRlckxpc3Q6IFtdLFxuXHRcdFx0XHRoYWxsUGFnZTogMSxcblx0XHRcdFx0aGFsbFBhZ2VTaXplOiAxMCxcblx0XHRcdFx0aGFsbExvYWRpbmc6IGZhbHNlLFxuXHRcdFx0XHRoYWxsSGFzTW9yZTogdHJ1ZSxcblx0XHRcdFx0cGlja3VwTG9hZGluZzogZmFsc2UsXG5cdFx0XHRcdGRlbGl2ZXJpbmdMb2FkaW5nOiBmYWxzZSxcblx0XHRcdFx0YWN0aXZlT3JkZXJDb3VudDogbnVsbFxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHR3YXRjaDoge1xuXHRcdFx0YWN0aXZlVGFiKG5ld1ZhbCkge1xuXHRcdFx0XHR0aGlzLmxvYWRPcmRlcnNCeVRhYihuZXdWYWwpXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdG9uTG9hZCgpIHtcblx0XHRcdGNvbnN0IHN5c3RlbUluZm8gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKVxuXHRcdFx0Y29uc3Qgc2FmZUJvdHRvbSA9IHN5c3RlbUluZm8uc2FmZUFyZWFJbnNldHMgPyBzeXN0ZW1JbmZvLnNhZmVBcmVhSW5zZXRzLmJvdHRvbSB8fCAwIDogMFxuXHRcdFx0Y29uc3Qgd2luZG93SGVpZ2h0ID0gc3lzdGVtSW5mby53aW5kb3dIZWlnaHQgfHwgMFxuXHRcdFx0dGhpcy5zdGF0dXNCYXJIZWlnaHQgPSBzeXN0ZW1JbmZvLnN0YXR1c0JhckhlaWdodCB8fCAwXG5cdFx0XHR0aGlzLmhlYWRlckhlaWdodCA9IHRoaXMuc3RhdHVzQmFySGVpZ2h0ICsgdW5pLnVweDJweCgzMDgpXG5cdFx0XHR0aGlzLnRhYmJhckhlaWdodCA9IHVuaS51cHgycHgoMTAwKSArIHNhZmVCb3R0b21cblx0XHRcdHRoaXMuc2Nyb2xsSGVpZ2h0ID0gTWF0aC5tYXgod2luZG93SGVpZ2h0IC0gdGhpcy5oZWFkZXJIZWlnaHQsIDApXG5cdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHJldHVybjtcblx0XHRcdHRoaXMuYWNjZXB0aW5nU3RhdHVzID0gdGhpcy51c2VySW5mby5hY2NlcHRpbmdTdGF0dXMgfHwgMFxuXHRcdFx0dGhpcy5sb2FkT3JkZXJzQnlUYWIodGhpcy5hY3RpdmVUYWIpXG5cdFx0fSxcblxuXHRcdG9uU2hvdygpIHtcblx0XHRcdHRoaXMuZ2V0Q2VudGVySW5mbygpXG5cdFx0XHR0aGlzLmdldENhdGVnb3J5TGlzdERhdGEoKVxuXHRcdFx0dGhpcy5nZXRBY3RpdmVPcmRlckNvdW50KClcblx0XHR9LFxuXG5cdFx0b25SZWFjaEJvdHRvbSgpIHtcblx0XHRcdGlmICh0aGlzLmFjY2VwdGluZ1N0YXR1cyA9PT0gMCkgcmV0dXJuO1xuXHRcdFx0aWYgKHRoaXMuYWN0aXZlVGFiID09PSAnaGFsbCcpIHtcblx0XHRcdFx0dGhpcy5oYWxsUGFnZSsrXG5cdFx0XHRcdHRoaXMuZ2V0SGFsbE9yZGVycygpXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdGNvbXB1dGVkOiB7XG5cdFx0XHQuLi5tYXBTdGF0ZShbJ3VzZXJJbmZvJywgJ3Rva2VuJ10pLFxuXG5cdFx0XHRkaXNwbGF5VGFicygpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMudGFicy5tYXAodGFiID0+IHtcblx0XHRcdFx0XHRpZiAodGFiLnZhbHVlID09PSAncGlja3VwJykge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHsgLi4udGFiLCBjb3VudDogdGhpcy5hY3RpdmVPcmRlckNvdW50Py5ncmFiYmVkQ291bnQgfVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAodGFiLnZhbHVlID09PSAnZGVsaXZlcmluZycpIHtcblx0XHRcdFx0XHRcdHJldHVybiB7IC4uLnRhYiwgY291bnQ6IHRoaXMuYWN0aXZlT3JkZXJDb3VudD8uZGVsaXZlcmluZ0NvdW50IH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRhYlxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0Y3VycmVudE9yZGVyTGlzdCgpIHtcblx0XHRcdFx0Y29uc3Qgb3JkZXJNYXAgPSB7XG5cdFx0XHRcdFx0aGFsbDogdGhpcy5vcmRlckxpc3QsXG5cdFx0XHRcdFx0cGlja3VwOiB0aGlzLnBpY2t1cE9yZGVyTGlzdCxcblx0XHRcdFx0XHRkZWxpdmVyaW5nOiB0aGlzLmRlbGl2ZXJpbmdPcmRlckxpc3Rcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBvcmRlck1hcFt0aGlzLmFjdGl2ZVRhYl0gfHwgW11cblx0XHRcdH0sXG5cblx0XHRcdGJvZHlTdHlsZSgpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRtYXJnaW5Ub3A6IHRoaXMuaGVhZGVySGVpZ2h0ICsgJ3B4Jyxcblx0XHRcdFx0XHRoZWlnaHQ6IHRoaXMuc2Nyb2xsSGVpZ2h0ICsgJ3B4J1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdG9uUmVhZHkoKSB7XG5cdFx0XHR0aGlzLmluaXRUVFMoKSAvLyDpobXpnaLmuLLmn5PlrozmiJDliJ3lp4vljJbor63pn7Ncblx0XHR9LFxuXG5cdFx0bWV0aG9kczoge1xuXHRcdFx0Zm9ybWF0UmVtYWluVGltZShtaW51dGVzKSB7XG5cdFx0XHRcdGlmICghbWludXRlcykgcmV0dXJuIDBcblx0XHRcdFx0aWYgKG1pbnV0ZXMgPT09IDApIHtcblx0XHRcdFx0XHRyZXR1cm4gJ+mFjemAgeW3sui2heaXtidcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobWludXRlcyA+PSA2MCkge1xuXHRcdFx0XHRcdHJldHVybiAobWludXRlcyAvIDYwKS50b0ZpeGVkKDIpICsgJ+Wwj+aXtuWGhSdcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbWludXRlcyArICfliIbpkp/lhoUnXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRHb29kc1RleHQoaXRlbXMsIGl0ZW1JZCkge1xuXHRcdFx0XHRpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuICfml6AnXG5cdFx0XHRcdGNvbnN0IHRleHQgPSBpdGVtcy5tYXAoaSA9PiBgJHtpLm5hbWV9KiR7aS5xdWFudGl0eX1gKS5qb2luKCfjgIEnKVxuXHRcdFx0XHRpZiAodGV4dC5sZW5ndGggPiAyMCAmJiAhdGhpcy5leHBhbmRlZEdvb2RzSWRzLmluY2x1ZGVzKGl0ZW1JZCkpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgMjApICsgJy4uLidcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGV4dFxuXHRcdFx0fSxcblxuXHRcdFx0dG9nZ2xlR29vZHNFeHBhbmQoaWQpIHtcblx0XHRcdFx0Y29uc3QgaW5kZXggPSB0aGlzLmV4cGFuZGVkR29vZHNJZHMuaW5kZXhPZihpZClcblx0XHRcdFx0aWYgKGluZGV4ID4gLTEpIHtcblx0XHRcdFx0XHR0aGlzLmV4cGFuZGVkR29vZHNJZHMuc3BsaWNlKGluZGV4LCAxKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuZXhwYW5kZWRHb29kc0lkcy5wdXNoKGlkKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRmb3JtYXREaXN0YW5jZVBhcnRzKGRpc3RhbmNlKSB7XG5cdFx0XHRcdGlmIChkaXN0YW5jZSA9PT0gbnVsbCB8fCBkaXN0YW5jZSA9PT0gdW5kZWZpbmVkIHx8IGRpc3RhbmNlID09PSAnJykge1xuXHRcdFx0XHRcdHJldHVybiB7IHZhbHVlOiAnLS0nLCB1bml0OiAnJyB9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodHlwZW9mIGRpc3RhbmNlID09PSAnbnVtYmVyJykge1xuXHRcdFx0XHRcdGlmIChkaXN0YW5jZSA+PSAxMDAwKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4geyB2YWx1ZTogKGRpc3RhbmNlIC8gMTAwMCkudG9GaXhlZCgxKSwgdW5pdDogJ2ttJyB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB7IHZhbHVlOiBTdHJpbmcoTWF0aC5yb3VuZChkaXN0YW5jZSkpLCB1bml0OiAnbScgfVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3QgdGV4dCA9IFN0cmluZyhkaXN0YW5jZSkudHJpbSgpXG5cdFx0XHRcdGNvbnN0IG1hdGNoID0gdGV4dC5tYXRjaCgvXihbXFxkLl0rKVxccyooW2EtekEtWlxcdTRlMDAtXFx1OWZhNV0qKSQvKVxuXHRcdFx0XHRpZiAobWF0Y2gpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0dmFsdWU6IG1hdGNoWzFdLFxuXHRcdFx0XHRcdFx0dW5pdDogbWF0Y2hbMl0gfHwgJydcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4geyB2YWx1ZTogdGV4dCwgdW5pdDogJycgfVxuXHRcdFx0fSxcblxuXHRcdFx0bmF2aWdhdGVUb0FkZHJlc3MoaXRlbSwgdHlwZSkge1xuXHRcdFx0XHRsZXQgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgbmFtZSwgYWRkcmVzc1xuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ2RlcG9zaXQnKSB7XG5cdFx0XHRcdFx0bGF0aXR1ZGUgPSBpdGVtLmRlcG9zaXRMYXRcblx0XHRcdFx0XHRsb25naXR1ZGUgPSBpdGVtLmRlcG9zaXRMbmdcblx0XHRcdFx0XHRuYW1lID0gaXRlbS5kZXBvc2l0U2hvcE5hbWVcblx0XHRcdFx0XHRhZGRyZXNzID0gaXRlbS5kZXBvc2l0U2hvcEFkZHJlc3Ncblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsYXRpdHVkZSA9IGl0ZW0udGFrZUxhdFxuXHRcdFx0XHRcdGxvbmdpdHVkZSA9IGl0ZW0udGFrZUxuZ1xuXHRcdFx0XHRcdG5hbWUgPSBpdGVtLnRha2VOYW1lXG5cdFx0XHRcdFx0YWRkcmVzcyA9IGl0ZW0udGFrZUFkZHJlc3Ncblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWxhdGl0dWRlIHx8ICFsb25naXR1ZGUpIHtcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICflnLDlnYDlnZDmoIfnvLrlpLEnLCBpY29uOiAnbm9uZScgfSlcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0fVxuXHRcdFx0XHR1bmkub3BlbkxvY2F0aW9uKHtcblx0XHRcdFx0XHRsYXRpdHVkZSxcblx0XHRcdFx0XHRsb25naXR1ZGUsXG5cdFx0XHRcdFx0bmFtZSxcblx0XHRcdFx0XHRhZGRyZXNzLFxuXHRcdFx0XHRcdHN1Y2Nlc3M6ICgpID0+IHt9LFxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3QoeyB0aXRsZTogJ+aJk+W8gOWcsOWbvuWksei0pScsIGljb246ICdub25lJyB9KVxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignb3BlbkxvY2F0aW9uIGZhaWw6JywgZXJyKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cblx0XHRcdGhhbmRsZVVzZXJDbGljaygpIHtcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDogJy9wYWdlcy90ZXN0L3Rlc3QnXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Z2V0QWN0aXZlT3JkZXJDb3VudCgpIHtcblx0XHRcdFx0dGhpcy4kdS5hcGkuYWN0aXZlT3JkZXJDb3VudCgpLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5hY3RpdmVPcmRlckNvdW50ID0gcmVzLmRhdGFcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKChlcnIpID0+IHtcblx0XHRcdFx0XHR0aGlzLmFjdGl2ZU9yZGVyQ291bnQgPSBudWxsXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRoYW5kbGVHcmFiT3JkZXIoaXRlbSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhpdGVtKVxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkR3JhYk9yZGVyID0gaXRlbVxuXHRcdFx0XHR0aGlzLnNob3dHcmFiTW9kYWwgPSB0cnVlXG5cdFx0XHR9LFxuXG5cdFx0XHRjb25maXJtR3JhYk9yZGVyKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuc2VsZWN0ZWRHcmFiT3JkZXIpIHJldHVyblxuXHRcdFx0XHR0aGlzLiR1LmFwaS5ncmFiT3JkZXIoeyBvcmRlcklkOiB0aGlzLnNlbGVjdGVkR3JhYk9yZGVyLmlkIH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dHcmFiTW9kYWwgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICfmiqLljZXmiJDlip8nLCBpY29uOiAnc3VjY2VzcycgfSlcblx0XHRcdFx0XHRcdHRoaXMuaGFsbFBhZ2UgPSAxXG5cdFx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdFx0dGhpcy5vcmRlckxpc3QgPSBbXVxuXHRcdFx0XHRcdFx0dGhpcy5nZXRIYWxsT3JkZXJzKClcblx0XHRcdFx0XHRcdHRoaXMuZ2V0QWN0aXZlT3JkZXJDb3VudCgpXG5cdFx0XHRcdFx0XHR0aGlzLmdldENlbnRlckluZm8oKVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6IHJlcy5tZXNzYWdlIHx8ICfmiqLljZXlpLHotKUnLCBpY29uOiAnbm9uZScgfSlcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dHcmFiTW9kYWwgPSBmYWxzZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0aGFuZGxlQ2FuY2VsT3JkZXIoaXRlbSkge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkQ2FuY2VsT3JkZXIgPSBpdGVtXG5cdFx0XHRcdHRoaXMuJHUuYXBpLmNhbmNlbExpbWl0KCkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmNhbmNlbFJlbWFpbiA9IHJlcy5kYXRhLnJlbWFpblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5zaG93ID0gdHJ1ZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0Y29uZmlybUNhbmNlbE9yZGVyKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuc2VsZWN0ZWRDYW5jZWxPcmRlcikgcmV0dXJuXG5cdFx0XHRcdHRoaXMuJHUuYXBpLmNhbmNlbE9yZGVyKHsgb3JkZXJJZDogdGhpcy5zZWxlY3RlZENhbmNlbE9yZGVyLmlkIH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3cgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICflj5bmtojmiJDlip8nLCBpY29uOiAnc3VjY2VzcycgfSlcblx0XHRcdFx0XHRcdHRoaXMuZ2V0UGlja3VwT3JkZXJzKClcblx0XHRcdFx0XHRcdHRoaXMuZ2V0Q2VudGVySW5mbygpXG5cdFx0XHRcdFx0XHR0aGlzLmdldEFjdGl2ZU9yZGVyQ291bnQoKVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6IHJlcy5tZXNzYWdlIHx8ICflj5bmtojlpLHotKUnLCBpY29uOiAnbm9uZScgfSlcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3cgPSBmYWxzZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0aGFuZGxlQ2FsbChpdGVtKSB7XG5cdFx0XHRcdGlmIChpdGVtLmNvbnRhY3RQaG9uZSkge1xuXHRcdFx0XHRcdHVuaS5tYWtlUGhvbmVDYWxsKHtcblx0XHRcdFx0XHRcdHBob25lTnVtYmVyOiBpdGVtLmNvbnRhY3RQaG9uZVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdGhhbmRsZVNob3dQaWNrdXBDb2RlKGl0ZW0pIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFBpY2t1cE9yZGVyID0gaXRlbVxuXHRcdFx0XHR0aGlzLnNob3cxID0gdHJ1ZVxuXHRcdFx0fSxcblxuXHRcdFx0Z29Ub09yZGVyRGV0YWlsKGl0ZW0sIGluZGV4KSB7XG5cdFx0XHRcdGxldCB1cmwgPSBgL3BhZ2VzL29yZGVyLWRldGFpbC9vcmRlci1kZXRhaWw/aWQ9JHtpdGVtLmlkfWBcblx0XHRcdFx0aWYgKHRoaXMuYWN0aXZlVGFiID09PSAncGlja3VwJyB8fCB0aGlzLmFjdGl2ZVRhYiA9PT0gJ2RlbGl2ZXJpbmcnKSB7XG5cdFx0XHRcdFx0dXJsICs9IGAmaW5kZXg9JHtpbmRleCArIDF9YFxuXHRcdFx0XHR9XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHsgdXJsIH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRDZW50ZXJJbmZvKCkge1xuXHRcdFx0XHR0aGlzLiR1LmFwaS5jZW50ZXJJbmZvKCkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmFjY2VwdGluZ1N0YXR1cyA9IHJlcy5kYXRhLmFjY2VwdGluZ1N0YXR1c1xuXHRcdFx0XHRcdFx0dGhpcy5jZW50ZXJVc2VySW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0ZnVsbEltZ1VybDogcmVzLmRhdGEuZnVsbEltZ1VybCxcblx0XHRcdFx0XHRcdFx0bmFtZTogcmVzLmRhdGEubmFtZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5zdGF0cyA9IFtcblx0XHRcdFx0XHRcdFx0eyB2YWx1ZTogcmVzLmRhdGEuc2NvcmUsIGxhYmVsOiAn5pyN5Yqh5YiGJyB9LFxuXHRcdFx0XHRcdFx0XHR7IHZhbHVlOiAoKHJlcy5kYXRhLnRvZGF5Q29tbWlzc2lvbiAvIDEwMCkgfHwgMCkudG9GaXhlZCgyKSwgbGFiZWw6ICfku4rml6XpooTorqHkvaPph5EnIH0sXG5cdFx0XHRcdFx0XHRcdHsgdmFsdWU6IHJlcy5kYXRhLnRvZGF5T3JkZXJDb3VudCwgbGFiZWw6ICfku4rml6XmjqXljZUnIH1cblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRDYXRlZ29yeUxpc3REYXRhKCkge1xuXHRcdFx0XHR0aGlzLiR1LmFwaS5nZXRDYXRlZ29yeUxpc3QoeyB0eXBlOiAzIH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5jYXRlZ29yeUxpc3QgPSByZXMuZGF0YSB8fCBbXVxuXHRcdFx0XHRcdFx0dGhpcy5maWx0ZXJTZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoc2VjdGlvbi5rZXkgPT09ICdsZXZlbCcpIHtcblx0XHRcdFx0XHRcdFx0XHRzZWN0aW9uLm9wdGlvbnMgPSBbJ+S4jemZkCcsIC4uLnRoaXMuY2F0ZWdvcnlMaXN0Lm1hcChpdGVtID0+IGl0ZW0ubmFtZSldXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0bG9hZE9yZGVyc0J5VGFiKHRhYikge1xuXHRcdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHJldHVybjtcblx0XHRcdFx0aWYgKHRoaXMuYWNjZXB0aW5nU3RhdHVzID09PSAwKSByZXR1cm47XG5cdFx0XHRcdGlmICh0YWIgPT09ICdoYWxsJykge1xuXHRcdFx0XHRcdHRoaXMuaGFsbFBhZ2UgPSAxXG5cdFx0XHRcdFx0dGhpcy5oYWxsSGFzTW9yZSA9IHRydWVcblx0XHRcdFx0XHR0aGlzLm9yZGVyTGlzdCA9IFtdXG5cdFx0XHRcdFx0dGhpcy5nZXRIYWxsT3JkZXJzKClcblx0XHRcdFx0fSBlbHNlIGlmICh0YWIgPT09ICdwaWNrdXAnKSB7XG5cdFx0XHRcdFx0dGhpcy5waWNrdXBPcmRlckxpc3QgPSBbXVxuXHRcdFx0XHRcdHRoaXMuZ2V0UGlja3VwT3JkZXJzKClcblx0XHRcdFx0fSBlbHNlIGlmICh0YWIgPT09ICdkZWxpdmVyaW5nJykge1xuXHRcdFx0XHRcdHRoaXMuZGVsaXZlcmluZ09yZGVyTGlzdCA9IFtdXG5cdFx0XHRcdFx0dGhpcy5nZXREZWxpdmVyaW5nT3JkZXJzKClcblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0Z2V0SGFsbE9yZGVycygpIHtcblx0XHRcdFx0aWYgKHRoaXMuYWNjZXB0aW5nU3RhdHVzID09PSAwKSByZXR1cm47XG5cdFx0XHRcdGlmICh0aGlzLmhhbGxMb2FkaW5nIHx8ICF0aGlzLmhhbGxIYXNNb3JlKSB7XG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5oYWxsTG9hZGluZyA9IHRydWVcblxuXHRcdFx0XHRsZXQgZGlzdGFuY2UgPSBudWxsXG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdGVkRmlsdGVycy5kaXN0YW5jZSAhPT0gJ+S4jemZkCcpIHtcblx0XHRcdFx0XHRjb25zdCBkaXN0YW5jZVRleHQgPSB0aGlzLnNlbGVjdGVkRmlsdGVycy5kaXN0YW5jZVxuXHRcdFx0XHRcdGlmIChkaXN0YW5jZVRleHQuaW5jbHVkZXMoJ2ttJykpIHtcblx0XHRcdFx0XHRcdGRpc3RhbmNlID0gcGFyc2VJbnQoZGlzdGFuY2VUZXh0KSAqIDEwMDBcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0ZGlzdGFuY2UgPSBwYXJzZUludChkaXN0YW5jZVRleHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3Qgc29ydFR5cGVNYXAgPSB7XG5cdFx0XHRcdFx0J+e7vOWQiOaOkuW6jyc6IDEsXG5cdFx0XHRcdFx0J+i3neemu+acgOi/kSc6IDJcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBzb3J0VHlwZSA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnNvcnQgIT09ICfkuI3pmZAnID8gKHNvcnRUeXBlTWFwW3RoaXMuc2VsZWN0ZWRGaWx0ZXJzLnNvcnRdIHx8IG51bGwpIDogbnVsbFxuXG5cdFx0XHRcdGxldCBncmFkZUlkID0gbnVsbFxuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZEZpbHRlcnMubGV2ZWwgIT09ICfkuI3pmZAnKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnlMaXN0LmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmxldmVsKVxuXHRcdFx0XHRcdGlmIChzZWxlY3RlZENhdGVnb3J5KSB7XG5cdFx0XHRcdFx0XHRncmFkZUlkID0gc2VsZWN0ZWRDYXRlZ29yeS5pZFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmjqXljZXlpKfljoU6JywgeyBkaXN0YW5jZSwgZ3JhZGVJZCwgc29ydFR5cGUgfSlcblx0XHRcdFx0dGhpcy4kdS5hcGkuZ3JhYk9yZGVySGFsbCh7XG5cdFx0XHRcdFx0Y2FwYWNpdHk6IHRoaXMuaGFsbFBhZ2VTaXplLFxuXHRcdFx0XHRcdHBhZ2U6IHRoaXMuaGFsbFBhZ2UsXG5cdFx0XHRcdFx0bW9kZWw6IHtcblx0XHRcdFx0XHRcdGRpc3RhbmNlOiBkaXN0YW5jZSxcblx0XHRcdFx0XHRcdGdyYWRlSWQ6IGdyYWRlSWQsXG5cdFx0XHRcdFx0XHRzb3J0VHlwZTogc29ydFR5cGVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn5o6l5Y2V5aSn5Y6FJywgcmVzKVxuXHRcdFx0XHRcdHRoaXMuaGFsbExvYWRpbmcgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBsaXN0ID0gcmVzLmRhdGEucmVjb3JkcyB8fCBbXVxuXHRcdFx0XHRcdFx0dGhpcy5vcmRlckxpc3QgPSB0aGlzLmhhbGxQYWdlID09PSAxID8gbGlzdCA6IHRoaXMub3JkZXJMaXN0LmNvbmNhdChsaXN0KVxuXHRcdFx0XHRcdFx0dGhpcy5oYWxsSGFzTW9yZSA9IGxpc3QubGVuZ3RoID49IHRoaXMuaGFsbFBhZ2VTaXplXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaCgoZXJyKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5oYWxsTG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRQaWNrdXBPcmRlcnMoKSB7XG5cdFx0XHRcdGlmICh0aGlzLmFjY2VwdGluZ1N0YXR1cyA9PT0gMCkgcmV0dXJuO1xuXHRcdFx0XHRpZiAodGhpcy5waWNrdXBMb2FkaW5nKSByZXR1cm5cblx0XHRcdFx0dGhpcy5waWNrdXBMb2FkaW5nID0gdHJ1ZVxuXHRcdFx0XHR0aGlzLiR1LmFwaS5hY3RpdmVPcmRlcnMoeyBzdGF0dXM6IDMgfSkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCflvoXlj5botKc6JywgcmVzKVxuXHRcdFx0XHRcdHRoaXMucGlja3VwTG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdHRoaXMucGlja3VwT3JkZXJMaXN0ID0gcmVzLmRhdGEucmVjb3JkcyB8fCByZXMuZGF0YSB8fCBbXVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goKGVycikgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGlja3VwTG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXREZWxpdmVyaW5nT3JkZXJzKCkge1xuXHRcdFx0XHRpZiAodGhpcy5hY2NlcHRpbmdTdGF0dXMgPT09IDApIHJldHVybjtcblx0XHRcdFx0aWYgKHRoaXMuZGVsaXZlcmluZ0xvYWRpbmcpIHJldHVyblxuXHRcdFx0XHR0aGlzLmRlbGl2ZXJpbmdMb2FkaW5nID0gdHJ1ZVxuXHRcdFx0XHR0aGlzLiR1LmFwaS5hY3RpdmVPcmRlcnMoeyBzdGF0dXM6IDQgfSkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfphY3pgIHkuK06JywgcmVzKVxuXHRcdFx0XHRcdHRoaXMuZGVsaXZlcmluZ0xvYWRpbmcgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmRlbGl2ZXJpbmdPcmRlckxpc3QgPSByZXMuZGF0YSB8fCBbXVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goKGVycikgPT4ge1xuXHRcdFx0XHRcdHRoaXMuZGVsaXZlcmluZ0xvYWRpbmcgPSBmYWxzZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0b3BlblN0YXR1c1BpY2tlcigpIHtcblx0XHRcdFx0dGhpcy5zaG93U3RhdHVzUGlja2VyID0gdHJ1ZVxuXHRcdFx0fSxcblxuXHRcdFx0Y29uZmlybVN0YXR1cyhlKSB7XG5cdFx0XHRcdHRoaXMuc2hvd1N0YXR1c1BpY2tlciA9IGZhbHNlXG5cdFx0XHRcdGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBlLnZhbHVlWzBdXG5cdFx0XHRcdHRoaXMuJHUuYXBpLnVwZGF0ZUFjY2VwdGluZ1N0YXR1cyh7IHN0YXR1czogc2VsZWN0ZWRWYWx1ZS52YWx1ZSB9KS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdHRoaXMuYWNjZXB0aW5nU3RhdHVzID0gc2VsZWN0ZWRWYWx1ZS52YWx1ZVxuXHRcdFx0XHRcdFx0dGhpcy5nZXRDZW50ZXJJbmZvKClcblx0XHRcdFx0XHRcdGlmICh0aGlzLmFjY2VwdGluZ1N0YXR1cyA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9yZGVyTGlzdCA9IFtdXG5cdFx0XHRcdFx0XHRcdHRoaXMucGlja3VwT3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHRcdFx0dGhpcy5kZWxpdmVyaW5nT3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ3BpY2t1cCcpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldFBpY2t1cE9yZGVycygpXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5hY3RpdmVUYWIgPT09ICdkZWxpdmVyaW5nJykge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZ2V0RGVsaXZlcmluZ09yZGVycygpXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5oYWxsUGFnZSA9IDFcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHRcdHRoaXMub3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldEhhbGxPcmRlcnMoKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0dG9Ecml2ZXJDZXJ0aWZpY2F0aW9uKCkge1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2RyaXZlci1jZXJ0aWZpY2F0aW9uL2RyaXZlci1jZXJ0aWZpY2F0aW9uJ1xuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0dG9nZ2xlRmlsdGVyUG9wdXAoc2hvdykge1xuXHRcdFx0XHR0aGlzLnNob3dGaWx0ZXJQb3B1cCA9IHNob3dcblx0XHRcdH0sXG5cblx0XHRcdHNlbGVjdEZpbHRlcihrZXksIG9wdGlvbikge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkRmlsdGVycyA9IHtcblx0XHRcdFx0XHQuLi50aGlzLnNlbGVjdGVkRmlsdGVycyxcblx0XHRcdFx0XHRba2V5XTogb3B0aW9uXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdHJlc2V0RmlsdGVycygpIHtcblx0XHRcdFx0dGhpcy5zaG93RmlsdGVyUG9wdXAgPSBmYWxzZVxuXHRcdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHJldHVybjtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEZpbHRlcnMgPSB7XG5cdFx0XHRcdFx0c29ydDogJ+e7vOWQiOaOkuW6jycsXG5cdFx0XHRcdFx0bGV2ZWw6ICfkuI3pmZAnLFxuXHRcdFx0XHRcdGRpc3RhbmNlOiAn5LiN6ZmQJ1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ2hhbGwnKSB7XG5cdFx0XHRcdFx0dGhpcy5oYWxsUGFnZSA9IDFcblx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdHRoaXMub3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHR0aGlzLmdldEhhbGxPcmRlcnMoKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRjb25maXJtRmlsdGVycygpIHtcblx0XHRcdFx0dGhpcy5zaG93RmlsdGVyUG9wdXAgPSBmYWxzZVxuXHRcdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHtcblx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ2hhbGwnKSB7XG5cdFx0XHRcdFx0dGhpcy5oYWxsUGFnZSA9IDFcblx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdHRoaXMub3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHR0aGlzLmdldEhhbGxPcmRlcnMoKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRpbml0VFRTKCkge1xuXHRcdFx0XHRpZiAodW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGxhdGZvcm0gIT09ICdhbmRyb2lkJykge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfku4XmlK/mjIHlronljZMnKVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHQvLyDlr7zlhaXlronljZPljp/nlJ/nsbtcblx0XHRcdFx0XHRjb25zdCBUZXh0VG9TcGVlY2ggPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2gnKVxuXHRcdFx0XHRcdGNvbnN0IExvY2FsZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnamF2YS51dGlsLkxvY2FsZScpXG5cblx0XHRcdFx0XHQvLyDliJvlu7pUVFNcblx0XHRcdFx0XHR0aGlzLnR0cyA9IG5ldyBUZXh0VG9TcGVlY2gocGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKSwge1xuXHRcdFx0XHRcdFx0b25Jbml0OiAoc3RhdHVzKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChzdGF0dXMgPT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIOiuvue9ruS4reaWh1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMudHRzLnNldExhbmd1YWdlKExvY2FsZS5DSElOQSlcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K+t6Z+z5Yid5aeL5YyW5oiQ5YqfJylcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn5Yid5aeL5YyW5aSx6LSlJywgZSlcblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0c3BlYWsodGV4dCkge1xuXHRcdFx0XHRpZiAoIXRoaXMudHRzKSB7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivremfs+acquWHhuWkh+WlvScsXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHQvLyDlronljZPljp/nlJ/mkq3miqXvvIhRVUVVRV9GTFVTSCA9IOeri+WNs+aSreaKpe+8jOaJk+aWreS4iuS4gOadoe+8iVxuXHRcdFx0XHRcdHRoaXMudHRzLnNwZWFrKHRleHQsIDAsIG51bGwpXG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmkq3miqXlpLHotKUnLCBlcnIpXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdHN0b3BTcGVhaygpIHtcblx0XHRcdFx0aWYgKHRoaXMudHRzKSB0aGlzLnR0cy5zdG9wKClcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0b25VbmxvYWQoKSB7XG5cdFx0XHRpZiAodGhpcy50dHMpIHtcblx0XHRcdFx0dGhpcy50dHMuc3RvcCgpXG5cdFx0XHRcdHRoaXMudHRzLnNodXRkb3duKClcblx0XHRcdH1cblx0XHR9XG5cdH1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG5cdC5oYWxsLXBhZ2Uge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdGJhY2tncm91bmQ6ICNmNWY2Zjg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC5xcmNvZGUge1xuXHRcdFx0cGFkZGluZzogMzZycHggMzBycHg7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0LnFyY29kZS10aXRsZSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRcdGltYWdlIHtcblx0XHRcdFx0XHR3aWR0aDogMjhycHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAyOHJweDtcblx0XHRcdFx0fVxuXHRcdFx0XHR0ZXh0IHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMzJycHg7XG5cdFx0XHRcdFx0Y29sb3I6ICMxMTExMTE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5xcmNvZGUtaW1hZ2Uge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDYwcnB4O1xuXHRcdFx0XHRpbWFnZSB7XG5cdFx0XHRcdFx0d2lkdGg6IDQwMHJweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDQwMHJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LnFyY29kZS1idG4ge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiA4OHJweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDg4cnB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMxMDZFRkE7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwcnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0Zm9udC1zaXplOiAzMnJweDtcblx0XHRcdFx0Y29sb3I6ICNGRkZGRkY7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDY4cnB4O1xuXG5cdFx0XHRcdCYtLWhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjkyO1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycnB4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5waG90by1kZWxpdmVyIHtcblx0XHRcdHBhZGRpbmc6IDMycnB4IDI4cnB4IGNhbGMoZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pICsgMjhycHgpO1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyMHJweDtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMHJweDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdCZfX2hlYWRlciB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdH1cblxuXHRcdFx0Jl9fdGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6IDM0cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRjb2xvcjogIzExMTExMTtcblx0XHRcdH1cblxuXHRcdFx0Jl9fY2xvc2UsXG5cdFx0XHQmX19jbG9zZS1wbGFjZWhvbGRlciB7XG5cdFx0XHRcdHdpZHRoOiAzNnJweDtcblx0XHRcdFx0aGVpZ2h0OiAzNnJweDtcblx0XHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHR9XG5cblx0XHRcdCZfX2Nsb3NlLXBsYWNlaG9sZGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdH1cblxuXHRcdFx0Jl9fc2VjdGlvbiB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDU2cnB4O1xuXG5cdFx0XHRcdCYtLXJlbWFyayB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogNDZycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Jl9fbGFiZWwtcm93IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0fVxuXG5cdFx0XHQmX19sYWJlbCxcblx0XHRcdCZfX3JlbWFyay10aXRsZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdGNvbG9yOiAjMjMyNjJkO1xuXHRcdFx0fVxuXG5cdFx0XHQmX19yZXF1aXJlZCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA0cnB4O1xuXHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRjb2xvcjogI2ZmM2IzMDtcblx0XHRcdH1cblxuXHRcdFx0Jl9faGludCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMnJweDtcblx0XHRcdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRcdFx0Y29sb3I6ICNhOGFkYjc7XG5cdFx0XHR9XG5cblx0XHRcdCZfX3Bob3RvcyB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGdhcDogMThycHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDMwcnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmX191cGxvYWQtY2FyZCxcblx0XHRcdCZfX3ByZXZpZXctY2FyZCB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0d2lkdGg6IDE2MHJweDtcblx0XHRcdFx0aGVpZ2h0OiAxNjBycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDhycHg7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR9XG5cblx0XHRcdCZfX3VwbG9hZC1jYXJkIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdGJvcmRlcjogMnJweCBkYXNoZWQgI2M5Y2VkNjtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdH1cblxuXHRcdFx0Jl9fdXBsb2FkLWljb24ge1xuXHRcdFx0XHR3aWR0aDogNTJycHg7XG5cdFx0XHRcdGhlaWdodDogNTJycHg7XG5cdFx0XHR9XG5cblx0XHRcdCZfX3VwbG9hZC10ZXh0IHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTRycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjZycHg7XG5cdFx0XHRcdGNvbG9yOiAjOWRhM2FlO1xuXHRcdFx0fVxuXG5cdFx0XHQmX19wcmV2aWV3LWNhcmQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZWVmMWY1O1xuXHRcdFx0fVxuXG5cdFx0XHQmX19wcmV2aWV3LWltYWdlIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0Jl9fcHJldmlldy1tYXNrIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0aGVpZ2h0OiA0OHJweDtcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ2KTtcblx0XHRcdH1cblxuXHRcdFx0Jl9fcHJldmlldy1kZWxldGUge1xuXHRcdFx0XHRmb250LXNpemU6IDI2cnB4O1xuXHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdH1cblxuXHRcdFx0Jl9fdGV4dGFyZWEge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAxMTBycHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDI0cnB4O1xuXHRcdFx0XHRwYWRkaW5nOiAyOHJweCAyNHJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTJycHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNmN2Y4ZmE7XG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzBycHg7XG5cdFx0XHRcdGNvbG9yOiAjMmMzMTM5O1xuXHRcdFx0fVxuXG5cdFx0XHQmX19zdWJtaXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiA4OHJweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDg4cnB4O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA4NnJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBycHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMxMDZlZmE7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzJycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYtLWhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjkyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9faGVhZGVyIHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdHotaW5kZXg6IDEwO1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzI0NzNmNSAwJSwgIzFlNmZlZiAxMDAlKTtcblx0XHRcdGJveC1zaGFkb3c6IDAgMTJycHggMjRycHggcmdiYSgzNiwgMTE1LCAyNDUsIDAuMDgpO1xuXHRcdH1cblxuXHRcdCZfX3VzZXItcm93IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0cGFkZGluZzogMjBycHggMjRycHggMDtcblx0XHR9XG5cblx0XHQmX191c2VyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0Z2FwOiAxNHJweDtcblx0XHR9XG5cblx0XHQmX19hdmF0YXIge1xuXHRcdFx0d2lkdGg6IDQycnB4O1xuXHRcdFx0aGVpZ2h0OiA0MnJweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdGJvcmRlcjogMnJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5cdFx0fVxuXG5cdFx0Jl9fbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdH1cblxuXHRcdCZfX3N0YXR1cyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDEwcnB4IDE2cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogOTk5cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcblx0XHRcdGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHJweCk7XG5cdFx0fVxuXG5cdFx0Jl9fc3RhdHVzLWRvdCB7XG5cdFx0XHR3aWR0aDogMTRycHg7XG5cdFx0XHRoZWlnaHQ6IDE0cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0YmFja2dyb3VuZDogIzMyZDc0Yjtcblx0XHRcdG1hcmdpbi1yaWdodDogMTBycHg7XG5cblx0XHRcdCYtLW9mZmxpbmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmYzYjMwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX3N0YXR1cy10ZXh0LFxuXHRcdCZfX3N0YXR1cy1hcnJvdyB7XG5cdFx0XHRmb250LXNpemU6IDI0cnB4O1xuXHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0fVxuXG5cdFx0Jl9fc3RhdHVzLWFycm93IHtcblx0XHRcdGZvbnQtc2l6ZTogMThycHg7XG5cdFx0XHRtYXJnaW4tbGVmdDogOHJweDtcblx0XHR9XG5cblx0XHQmX19zdGF0cyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0cGFkZGluZzogMzRycHggMzZycHggMjhycHg7XG5cdFx0fVxuXG5cdFx0Jl9fc3RhdC1pdGVtIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdG1pbi13aWR0aDogMTYwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3N0YXQtdmFsdWUge1xuXHRcdFx0Zm9udC1zaXplOiA1MnJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdH1cblxuXHRcdCZfX3N0YXQtbGFiZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogMTJycHg7XG5cdFx0XHRmb250LXNpemU6IDI2cnB4O1xuXHRcdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG5cdFx0fVxuXG5cdFx0Jl9fdGFicyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGhlaWdodDogODhycHg7XG5cdFx0XHRwYWRkaW5nOiAwIDE4cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHR9XG5cblx0XHQmX190YWIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDAgMThycHg7XG5cdFx0XHRmb250LXNpemU6IDMycnB4O1xuXHRcdFx0Y29sb3I6ICM4YjkwOTk7XG5cdFx0fVxuXG5cdFx0Jl9fdGFiLS1hY3RpdmUge1xuXHRcdFx0Y29sb3I6ICMyNDI5MzM7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdH1cblxuXHRcdCZfX3RhYi10ZXh0IHtcblx0XHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdH1cblxuXHRcdCZfX3RhYi1jb3VudCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogNnJweDtcblx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRjb2xvcjogIzhiOTA5OTtcblx0XHR9XG5cblx0XHQmX190YWItbGluZSB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAxOHJweDtcblx0XHRcdHJpZ2h0OiAxOHJweDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGhlaWdodDogNXJweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDk5OXJweDtcblx0XHRcdGJhY2tncm91bmQ6ICMyNDczZjU7XG5cdFx0fVxuXG5cdFx0Jl9fZmlsdGVyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRnYXA6IDZycHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHJweDtcblx0XHR9XG5cblx0XHQmX19maWx0ZXItdGV4dCB7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICM5YWExYWI7XG5cblx0XHRcdCYtLWFjdGl2ZSB7XG5cdFx0XHRcdGNvbG9yOiAjMTA2ZWZhO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmX19maWx0ZXItaWNvbiB7XG5cdFx0XHR3aWR0aDogMjhycHg7XG5cdFx0XHRoZWlnaHQ6IDI4cnB4O1xuXHRcdH1cblxuXHRcdCZfX2JvZHkge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNGNkY5RkY7XG5cdFx0fVxuXG5cdFx0Jl9fbGlzdCB7XG5cdFx0XHRwYWRkaW5nOiAzMHJweDtcblx0XHR9XG5cblx0XHQmX192ZXJpZmllZCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0aW1hZ2Uge1xuXHRcdFx0XHR3aWR0aDogMzIwcnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDMyMHJweDtcblx0XHRcdH1cblx0XHRcdGJ1dHRvbiB7XG5cdFx0XHRcdHdpZHRoOiAxNjBycHg7XG5cdFx0XHRcdGhlaWdodDogNjRycHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA2NHJweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJvcmRlcjogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMTA2RUZBO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MHJweDtcblx0XHRcdFx0bWFyZ2luLXRvcDogNDBycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdGNvbG9yOiAjRkZGRkZGO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2VtcHR5IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHR9XG5cblx0XHQmX19lbXB0eS1pY29uIHtcblx0XHRcdHdpZHRoOiAzMjBycHg7XG5cdFx0XHRoZWlnaHQ6IDMyMHJweDtcblx0XHR9XG5cdH1cblxuXHQuZmlsdGVyLXBvcHVwIHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR6LWluZGV4OiAyMDtcblxuXHRcdCZfX3BhbmVsIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDI4cnB4O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI4cnB4O1xuXHRcdH1cblxuXHRcdCZfX2NvbnRlbnQge1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0XHRwYWRkaW5nOiAyMnJweCAxOHJweCAwO1xuXHRcdH1cblxuXHRcdCZfX3NlY3Rpb24ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjhycHg7XG5cdFx0fVxuXG5cdFx0Jl9fdGl0bGUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcblx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICMyNTJiMzM7XG5cdFx0fVxuXG5cdFx0Jl9fb3B0aW9ucyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0Z2FwOiAxOHJweCAyMHJweDtcblx0XHR9XG5cblx0XHQmX19vcHRpb24ge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdHdpZHRoOiAyMjZycHg7XG5cdFx0XHRoZWlnaHQ6IDc0cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBycHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuXHRcdFx0Ym9yZGVyOiAycnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRcdFx0Ji0tYWN0aXZlIHtcblx0XHRcdFx0YmFja2dyb3VuZDogI2VkZjVmZjtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjM2Q4Y2ZmO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX29wdGlvbi10ZXh0IHtcblx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRjb2xvcjogIzRiNTE1YTtcblxuXHRcdFx0LmZpbHRlci1wb3B1cF9fb3B0aW9uLS1hY3RpdmUgJiB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdGNvbG9yOiAjMjY3OGZmO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2FjdGlvbnMge1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0Z2FwOiAyNHJweDtcblx0XHRcdHBhZGRpbmc6IDhycHggMThycHggMjZycHg7XG5cdFx0fVxuXG5cdFx0Jl9fYnV0dG9uIHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRoZWlnaHQ6IDkycnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDkycnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogOTk5cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAzNHJweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdH1cblxuXHRcdFx0Ji0tcmVzZXQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZWJlYmViO1xuXHRcdFx0XHRjb2xvcjogIzc3N2Q4Njtcblx0XHRcdH1cblxuXHRcdFx0Ji0tY29uZmlybSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMyZDgyZmYgMCUsICMyMDZlZjYgMTAwJSk7XG5cdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0fVxuXG5cdFx0XHQmLS1ob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuOTI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lm9yZGVyLWNhcmQge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xuXHRcdHBhZGRpbmc6IDIwcnB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDI0cnB4O1xuXHRcdGJhY2tncm91bmQ6ICNmZmZmZmY7XG5cdFx0Ym94LXNoYWRvdzogMCAxMHJweCAyNHJweCByZ2JhKDI2LCA0NCwgODEsIDAuMDQpO1xuXG5cdFx0Jl9faGVhZCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0fVxuXG5cdFx0Jl9fdGltZS1tYWluIHtcblx0XHRcdGZvbnQtc2l6ZTogNDJycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICNmZjhkMjc7XG5cdFx0fVxuXG5cdFx0Jl9fdGltZS1zdWIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDhycHg7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICNhM2E4YjI7XG5cdFx0fVxuXG5cdFx0Jl9fcHJpY2Utd3JhcCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRnYXA6IDhycHg7XG5cblx0XHRcdCYtLXNlcmlhbC1vbmx5IHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0XHRtaW4td2lkdGg6IDU0cnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX3NlcmlhbCB7XG5cdFx0XHRmb250LXNpemU6IDM4cnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Y29sb3I6ICMyYzMxMzk7XG5cdFx0fVxuXG5cdFx0Jl9fcHJpY2Uge1xuXHRcdFx0Zm9udC1zaXplOiA0NHJweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRjb2xvcjogI2ZmM2IzMDtcblx0XHR9XG5cblx0XHQmX19tZXRhIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0Z2FwOiAxNnJweDtcblx0XHRcdG1hcmdpbi10b3A6IDEycnB4O1xuXHRcdH1cblxuXHRcdCZfX2V4dHJhIHtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRcdGNvbG9yOiAjYTBhNWFmO1xuXHRcdH1cblxuXHRcdCZfX3RhZ3Mge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRnYXA6IDEwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3RhZy13cmFwIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblxuXHRcdCZfX3RhZy1pY29uIHtcblx0XHRcdHdpZHRoOiAxMDhycHg7XG5cdFx0XHRoZWlnaHQ6IDQwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3RhZy1pbWcge1xuXHRcdFx0d2lkdGg6IDEwOHJweDtcblx0XHRcdGhlaWdodDogNDBycHg7XG5cdFx0fVxuXG5cdFx0Jl9fdGFnIHtcblx0XHRcdHBhZGRpbmc6IDRycHggMTBycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA4cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAyMnJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0Ym9yZGVyOiAxcnB4IHNvbGlkICMyNDczZjU7XG5cdFx0XHRjb2xvcjogIzI0NzNmNTtcblxuXHRcdFx0Ji0tb3JhbmdlIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMzE5ZGVnLCAjRUU5RDBFIDAlLCAjRkY0RTRFIDEwMCUpO1xuXHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdH1cblxuXHRcdFx0Ji0tcmVkIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjZmY2YzU3O1xuXHRcdFx0XHRjb2xvcjogI2ZmNmM1Nztcblx0XHRcdH1cblxuXHRcdFx0Ji0tYmx1ZS1saWdodCB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogIzc0YTlmZjtcblx0XHRcdFx0Y29sb3I6ICM3NGE5ZmY7XG5cdFx0XHR9XG5cblx0XHRcdCYtLWJsdWUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDE2LDE3OCwyNTAsMC4wOCk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xuXHRcdFx0XHRib3JkZXI6IDJycHggc29saWQgIzEwNkVGQTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0Zm9udC1zaXplOiAyMnJweDtcblx0XHRcdFx0Y29sb3I6ICMxMDZFRkE7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fcm91dGUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdG1hcmdpbi10b3A6IDIwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3JvdXRlLXNpZGUge1xuXHRcdFx0d2lkdGg6IDcwcnB4O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRwYWRkaW5nOiAxNHJweCAwIDhycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAyNnJweDtcblx0XHRcdGJhY2tncm91bmQ6ICNmNmY3Zjk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcnB4O1xuXHRcdH1cblxuXHRcdCZfX2Rpc3RhbmNlLWJsb2NrIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0XHQmLS10b3Age1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA2cnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmLS1ib3R0b20ge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA2cnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2Rpc3RhbmNlLXZhbHVlIHtcblx0XHRcdGZvbnQtc2l6ZTogMjZycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICMzMzMzMzM7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0Jl9fZGlzdGFuY2UtdW5pdCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA2cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAxOHJweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRjb2xvcjogIzhjOTM5Zjtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG5cdFx0fVxuXG5cdFx0Jl9fbGluZSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRtaW4taGVpZ2h0OiA2MnJweDtcblx0XHRcdG1hcmdpbjogOHJweCAwO1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyNicgdmlld0JveD0nMCAwIDIwIDI2JyUzRSUzQ3BhdGggZmlsbD0nJTIzOEM5MzlGJyBkPSdNMTAgMEM1LjAzIDAgMSAzLjk5IDEgOC45MmMwIDYuMzEgNy4yOCAxMi44NyA4LjA3IDEzLjU3YTEuNCAxLjQgMCAwIDAgMS44NiAwQzExLjcyIDIxLjc5IDE5IDE1LjIzIDE5IDguOTIgMTkgMy45OSAxNC45NyAwIDEwIDBabTAgMTIuMjRhMy4zMiAzLjMyIDAgMSAxIDAtNi42NCAzLjMyIDMuMzIgMCAwIDEgMCA2LjY0WicvJTNFJTNDL3N2ZyUzRVwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjBycHggMjZycHg7XG5cblx0XHRcdCY6OmJlZm9yZSxcblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcdHdpZHRoOiAycnB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA5OTlycHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNjZmQ0ZGM7XG5cdFx0XHR9XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0aGVpZ2h0OiAxOHJweDtcblx0XHRcdH1cblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdGhlaWdodDogMjRycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fcm91dGUtbWFpbiB7XG5cdFx0XHRmbGV4OiAxO1xuXHRcdH1cblxuXHRcdCZfX3JvdXRlLWl0ZW0ge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdFx0Z2FwOiAxNnJweDtcblxuXHRcdFx0Ji0tZGVzdGluYXRpb24ge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyMHJweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmX19yb3V0ZS10ZXh0cyB7XG5cdFx0XHRmbGV4OiAxO1xuXHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdH1cblxuXHRcdCZfX3JvdXRlLXRpdGxlIHtcblx0XHRcdHdpZHRoOiA1MDBycHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogNDBycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICMyZDMxMzk7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR9XG5cblx0XHQmX19yb3V0ZS1kZXNjIHtcblx0XHRcdHdpZHRoOiA1MDBycHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbi10b3A6IDhycHg7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICM5ZWE0YWU7XG5cdFx0XHRsaW5lLWhlaWdodDogMS40O1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR9XG5cblx0XHQmX19uYXYge1xuXHRcdFx0d2lkdGg6IDQ4cnB4O1xuXHRcdFx0aGVpZ2h0OiA0OHJweDtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdH1cblxuXHRcdCZfX2dvb2RzIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0aGVpZ2h0OiA3MHJweDtcblx0XHRcdHBhZGRpbmc6IDAgMjBycHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAyMHJweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2Y0ZjVmNztcblx0XHR9XG5cblx0XHQmX19nb29kcy10ZXh0IHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICM3YTgxOGQ7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cblxuXHRcdCZfX2dvb2RzLWFycm93IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMnJweDtcblx0XHRcdGZvbnQtc2l6ZTogMjRycHg7XG5cdFx0XHRjb2xvcjogI2E0YTliMTtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuXG5cdFx0XHQmLS1leHBhbmRlZCB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fYnV0dG9uIHtcblx0XHRcdG1hcmdpbi10b3A6IDI0cnB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDg4cnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDg4cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogOTk5cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzJiN2ZmZiAwJSwgIzFmNmZmMyAxMDAlKTtcblx0XHRcdGZvbnQtc2l6ZTogMzRycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdH1cblxuXHRcdFx0Ji0taG92ZXIge1xuXHRcdFx0XHRvcGFjaXR5OiAwLjkyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2FjdGlvbnMge1xuXHRcdFx0bWFyZ2luLXRvcDogMjRycHg7XG5cblx0XHRcdCYtLXBpY2t1cCxcblx0XHRcdCYtLWRlbGl2ZXJpbmcge1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRnYXA6IDIycnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2ljb24tYWN0aW9ucyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGdhcDogMjBycHg7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblxuXHRcdFx0Ji0tc2luZ2xlIHtcblx0XHRcdFx0Z2FwOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2ljb24tYWN0aW9uIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0d2lkdGg6IDc0cnB4O1xuXHRcdH1cblxuXHRcdCZfX2FjdGlvbi1pY29uIHtcblx0XHRcdHdpZHRoOiA0MHJweDtcblx0XHRcdGhlaWdodDogNDBycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA4cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2Y3ZjhmYTtcblx0XHR9XG5cblx0XHQmX19hY3Rpb24tdGV4dCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA4cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAyNnJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Y29sb3I6ICM1YjYxNmI7XG5cdFx0fVxuXG5cdFx0Jl9fYnV0dG9uLS1jb2RlIHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxuPC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///91\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 _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 93));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 12);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n  data: function data() {\n    return {\n      tts: null,\n      show: false,\n      show1: false,\n      showGrabModal: false,\n      selectedGrabOrder: null,\n      selectedCancelOrder: null,\n      cancelRemain: 0,\n      selectedPickupOrder: null,\n      showPhotoDeliverPopup: false,\n      routeInfo: null,\n      statusBarHeight: 0,\n      headerHeight: 0,\n      tabbarHeight: 0,\n      scrollHeight: 0,\n      showFilterPopup: false,\n      acceptingStatus: 0,\n      showStatusPicker: false,\n      statusOptions: [{\n        text: '涓婄嚎',\n        value: 1\n      }, {\n        text: '涓嬬嚎',\n        value: 0\n      }],\n      centerUserInfo: {},\n      activeTab: 'hall',\n      expandedGoodsIds: [],\n      categoryList: [],\n      filterSections: [{\n        key: 'sort',\n        title: '鎺掑簭',\n        options: ['缁煎悎鎺掑簭', '璺濈鏈�杩�']\n      }, {\n        key: 'level',\n        title: '鐗╁搧绛夌骇',\n        options: ['涓嶉檺']\n      }, {\n        key: 'distance',\n        title: '浣嶇疆鑼冨洿',\n        options: ['涓嶉檺', '500m', '1km', '2km', '3km', '4km', '5km', '6km', '7km']\n      }],\n      selectedFilters: {\n        sort: '缁煎悎鎺掑簭',\n        level: '涓嶉檺',\n        distance: '涓嶉檺'\n      },\n      stats: [{\n        value: '-',\n        label: '鏈嶅姟鍒�'\n      }, {\n        value: '-',\n        label: '浠婃棩棰勮浣i噾'\n      }, {\n        value: '-',\n        label: '浠婃棩鎺ュ崟'\n      }],\n      tabs: [{\n        label: '鎶㈠崟澶у巺',\n        value: 'hall'\n      }, {\n        label: '寰呭彇璐�',\n        value: 'pickup'\n      }, {\n        label: '閰嶉�佷腑',\n        value: 'delivering'\n      }],\n      orderList: [],\n      pickupOrderList: [],\n      deliveringOrderList: [],\n      hallPage: 1,\n      hallPageSize: 10,\n      hallLoading: false,\n      hallHasMore: true,\n      pickupLoading: false,\n      deliveringLoading: false,\n      activeOrderCount: null\n    };\n  },\n  watch: {\n    activeTab: function activeTab(newVal) {\n      this.loadOrdersByTab(newVal);\n    }\n  },\n  onLoad: function onLoad() {\n    var systemInfo = uni.getSystemInfoSync();\n    var safeBottom = systemInfo.safeAreaInsets ? systemInfo.safeAreaInsets.bottom || 0 : 0;\n    var windowHeight = systemInfo.windowHeight || 0;\n    this.statusBarHeight = systemInfo.statusBarHeight || 0;\n    this.headerHeight = this.statusBarHeight + uni.upx2px(308);\n    this.tabbarHeight = uni.upx2px(100) + safeBottom;\n    this.scrollHeight = Math.max(windowHeight - this.headerHeight, 0);\n    if (this.userInfo.auditStatus === 99) return;\n    this.acceptingStatus = this.userInfo.acceptingStatus || 0;\n    this.loadOrdersByTab(this.activeTab);\n  },\n  onShow: function onShow() {\n    this.getCenterInfo();\n    this.getCategoryListData();\n    this.getActiveOrderCount();\n  },\n  onReachBottom: function onReachBottom() {\n    if (this.acceptingStatus === 0) return;\n    if (this.activeTab === 'hall') {\n      this.hallPage++;\n      this.getHallOrders();\n    }\n  },\n  computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)(['userInfo', 'token'])), {}, {\n    displayTabs: function displayTabs() {\n      var _this = this;\n      return this.tabs.map(function (tab) {\n        if (tab.value === 'pickup') {\n          var _this$activeOrderCoun;\n          return _objectSpread(_objectSpread({}, tab), {}, {\n            count: (_this$activeOrderCoun = _this.activeOrderCount) === null || _this$activeOrderCoun === void 0 ? void 0 : _this$activeOrderCoun.grabbedCount\n          });\n        } else if (tab.value === 'delivering') {\n          var _this$activeOrderCoun2;\n          return _objectSpread(_objectSpread({}, tab), {}, {\n            count: (_this$activeOrderCoun2 = _this.activeOrderCount) === null || _this$activeOrderCoun2 === void 0 ? void 0 : _this$activeOrderCoun2.deliveringCount\n          });\n        }\n        return tab;\n      });\n    },\n    currentOrderList: function currentOrderList() {\n      var orderMap = {\n        hall: this.orderList,\n        pickup: this.pickupOrderList,\n        delivering: this.deliveringOrderList\n      };\n      return orderMap[this.activeTab] || [];\n    },\n    bodyStyle: function bodyStyle() {\n      return {\n        marginTop: this.headerHeight + 'px',\n        height: this.scrollHeight + 'px'\n      };\n    }\n  }),\n  onReady: function onReady() {\n    this.initTTS(); // 椤甸潰娓叉煋瀹屾垚鍒濆鍖栬闊砛n  },\n\n  methods: {\n    formatRemainTime: function formatRemainTime(minutes) {\n      if (!minutes) return 0;\n      if (minutes === 0) {\n        return '閰嶉�佸凡瓒呮椂';\n      }\n      if (minutes >= 60) {\n        return (minutes / 60).toFixed(2) + '灏忔椂鍐�';\n      }\n      return minutes + '鍒嗛挓鍐�';\n    },\n    getGoodsText: function getGoodsText(items, itemId) {\n      if (!items || items.length === 0) return '鏃�';\n      var text = items.map(function (i) {\n        return \"\".concat(i.name, \"*\").concat(i.quantity);\n      }).join('銆�');\n      if (text.length > 20 && !this.expandedGoodsIds.includes(itemId)) {\n        return text.substring(0, 20) + '...';\n      }\n      return text;\n    },\n    toggleGoodsExpand: function toggleGoodsExpand(id) {\n      var index = this.expandedGoodsIds.indexOf(id);\n      if (index > -1) {\n        this.expandedGoodsIds.splice(index, 1);\n      } else {\n        this.expandedGoodsIds.push(id);\n      }\n    },\n    formatDistanceParts: function formatDistanceParts(distance) {\n      if (distance === null || distance === undefined || distance === '') {\n        return {\n          value: '--',\n          unit: ''\n        };\n      }\n      if (typeof distance === 'number') {\n        if (distance >= 1000) {\n          return {\n            value: (distance / 1000).toFixed(1),\n            unit: 'km'\n          };\n        }\n        return {\n          value: String(Math.round(distance)),\n          unit: 'm'\n        };\n      }\n      var text = String(distance).trim();\n      var match = text.match(/^([\\d.]+)\\s*([a-zA-Z\\u4e00-\\u9fa5]*)$/);\n      if (match) {\n        return {\n          value: match[1],\n          unit: match[2] || ''\n        };\n      }\n      return {\n        value: text,\n        unit: ''\n      };\n    },\n    navigateToAddress: function navigateToAddress(item, type) {\n      var latitude, longitude, name, address;\n      if (type === 'deposit') {\n        latitude = item.depositLat;\n        longitude = item.depositLng;\n        name = item.depositShopName;\n        address = item.depositShopAddress;\n      } else {\n        latitude = item.takeLat;\n        longitude = item.takeLng;\n        name = item.takeName;\n        address = item.takeAddress;\n      }\n      if (!latitude || !longitude) {\n        uni.showToast({\n          title: '鍦板潃鍧愭爣缂哄け',\n          icon: 'none'\n        });\n        return;\n      }\n      uni.openLocation({\n        latitude: latitude,\n        longitude: longitude,\n        name: name,\n        address: address,\n        success: function success() {},\n        fail: function fail(err) {\n          uni.showToast({\n            title: '鎵撳紑鍦板浘澶辫触',\n            icon: 'none'\n          });\n          __f__(\"error\", 'openLocation fail:', err, \" at pages/index/index.vue:473\");\n        }\n      });\n    },\n    handleUserClick: function handleUserClick() {\n      uni.navigateTo({\n        url: '/pages/test/test'\n      });\n    },\n    getActiveOrderCount: function getActiveOrderCount() {\n      var _this2 = this;\n      this.$u.api.activeOrderCount().then(function (res) {\n        if (res.code === 200) {\n          _this2.activeOrderCount = res.data;\n        }\n      }).catch(function (err) {\n        _this2.activeOrderCount = null;\n      });\n    },\n    handleGrabOrder: function handleGrabOrder(item) {\n      __f__(\"log\", item, \" at pages/index/index.vue:494\");\n      this.selectedGrabOrder = item;\n      this.showGrabModal = true;\n    },\n    confirmGrabOrder: function confirmGrabOrder() {\n      var _this3 = this;\n      if (!this.selectedGrabOrder) return;\n      this.$u.api.grabOrder({\n        orderId: this.selectedGrabOrder.id\n      }).then(function (res) {\n        _this3.showGrabModal = false;\n        if (res.code === 200) {\n          uni.showToast({\n            title: '鎶㈠崟鎴愬姛',\n            icon: 'success'\n          });\n          _this3.hallPage = 1;\n          _this3.hallHasMore = true;\n          _this3.orderList = [];\n          _this3.getHallOrders();\n          _this3.getActiveOrderCount();\n          _this3.getCenterInfo();\n        } else {\n          uni.showToast({\n            title: res.message || '鎶㈠崟澶辫触',\n            icon: 'none'\n          });\n        }\n      }).catch(function () {\n        _this3.showGrabModal = false;\n      });\n    },\n    handleCancelOrder: function handleCancelOrder(item) {\n      var _this4 = this;\n      this.selectedCancelOrder = item;\n      this.$u.api.cancelLimit().then(function (res) {\n        if (res.code === 200) {\n          _this4.cancelRemain = res.data.remain;\n        }\n      }).finally(function () {\n        _this4.show = true;\n      });\n    },\n    confirmCancelOrder: function confirmCancelOrder() {\n      var _this5 = this;\n      if (!this.selectedCancelOrder) return;\n      this.$u.api.cancelOrder({\n        orderId: this.selectedCancelOrder.id\n      }).then(function (res) {\n        _this5.show = false;\n        if (res.code === 200) {\n          uni.showToast({\n            title: '鍙栨秷鎴愬姛',\n            icon: 'success'\n          });\n          _this5.getPickupOrders();\n          _this5.getCenterInfo();\n          _this5.getActiveOrderCount();\n        } else {\n          uni.showToast({\n            title: res.message || '鍙栨秷澶辫触',\n            icon: 'none'\n          });\n        }\n      }).catch(function () {\n        _this5.show = false;\n      });\n    },\n    handleCall: function handleCall(item) {\n      if (item.contactPhone) {\n        uni.makePhoneCall({\n          phoneNumber: item.contactPhone\n        });\n      }\n    },\n    handleShowPickupCode: function handleShowPickupCode(item) {\n      this.selectedPickupOrder = item;\n      this.show1 = true;\n    },\n    goToOrderDetail: function goToOrderDetail(item, index) {\n      var url = \"/pages/order-detail/order-detail?id=\".concat(item.id);\n      if (this.activeTab === 'pickup' || this.activeTab === 'delivering') {\n        url += \"&index=\".concat(index + 1);\n      }\n      uni.navigateTo({\n        url: url\n      });\n    },\n    getCenterInfo: function getCenterInfo() {\n      var _this6 = this;\n      this.$u.api.centerInfo().then(function (res) {\n        if (res.code === 200) {\n          _this6.acceptingStatus = res.data.acceptingStatus;\n          _this6.centerUserInfo = {\n            fullImgUrl: res.data.fullImgUrl,\n            name: res.data.name\n          };\n          _this6.stats = [{\n            value: res.data.score,\n            label: '鏈嶅姟鍒�'\n          }, {\n            value: (res.data.todayCommission / 100 || 0).toFixed(2),\n            label: '浠婃棩棰勮浣i噾'\n          }, {\n            value: res.data.todayOrderCount,\n            label: '浠婃棩鎺ュ崟'\n          }];\n        }\n      });\n    },\n    getCategoryListData: function getCategoryListData() {\n      var _this7 = this;\n      this.$u.api.getCategoryList({\n        type: 3\n      }).then(function (res) {\n        if (res.code === 200) {\n          _this7.categoryList = res.data || [];\n          _this7.filterSections.forEach(function (section) {\n            if (section.key === 'level') {\n              section.options = ['涓嶉檺'].concat((0, _toConsumableArray2.default)(_this7.categoryList.map(function (item) {\n                return item.name;\n              })));\n            }\n          });\n        }\n      });\n    },\n    loadOrdersByTab: function loadOrdersByTab(tab) {\n      if (this.userInfo.auditStatus === 99) return;\n      if (this.acceptingStatus === 0) return;\n      if (tab === 'hall') {\n        this.hallPage = 1;\n        this.hallHasMore = true;\n        this.orderList = [];\n        this.getHallOrders();\n      } else if (tab === 'pickup') {\n        this.pickupOrderList = [];\n        this.getPickupOrders();\n      } else if (tab === 'delivering') {\n        this.deliveringOrderList = [];\n        this.getDeliveringOrders();\n      }\n    },\n    getHallOrders: function getHallOrders() {\n      var _this8 = this;\n      if (this.acceptingStatus === 0) return;\n      if (this.hallLoading || !this.hallHasMore) {\n        return;\n      }\n      this.hallLoading = true;\n      var distance = null;\n      if (this.selectedFilters.distance !== '涓嶉檺') {\n        var distanceText = this.selectedFilters.distance;\n        if (distanceText.includes('km')) {\n          distance = parseInt(distanceText) * 1000;\n        } else {\n          distance = parseInt(distanceText);\n        }\n      }\n      var sortTypeMap = {\n        '缁煎悎鎺掑簭': 1,\n        '璺濈鏈�杩�': 2\n      };\n      var sortType = this.selectedFilters.sort !== '涓嶉檺' ? sortTypeMap[this.selectedFilters.sort] || null : null;\n      var gradeId = null;\n      if (this.selectedFilters.level !== '涓嶉檺') {\n        var selectedCategory = this.categoryList.find(function (item) {\n          return item.name === _this8.selectedFilters.level;\n        });\n        if (selectedCategory) {\n          gradeId = selectedCategory.id;\n        }\n      }\n      __f__(\"log\", '鎺ュ崟澶у巺:', {\n        distance: distance,\n        gradeId: gradeId,\n        sortType: sortType\n      }, \" at pages/index/index.vue:646\");\n      this.$u.api.grabOrderHall({\n        capacity: this.hallPageSize,\n        page: this.hallPage,\n        model: {\n          distance: distance,\n          gradeId: gradeId,\n          sortType: sortType\n        }\n      }).then(function (res) {\n        __f__(\"log\", '鎺ュ崟澶у巺', res, \" at pages/index/index.vue:656\");\n        _this8.hallLoading = false;\n        if (res.code === 200) {\n          var list = res.data.records || [];\n          _this8.orderList = _this8.hallPage === 1 ? list : _this8.orderList.concat(list);\n          _this8.hallHasMore = list.length >= _this8.hallPageSize;\n        }\n      }).catch(function (err) {\n        _this8.hallLoading = false;\n      });\n    },\n    getPickupOrders: function getPickupOrders() {\n      var _this9 = this;\n      if (this.acceptingStatus === 0) return;\n      if (this.pickupLoading) return;\n      this.pickupLoading = true;\n      this.$u.api.activeOrders({\n        status: 3\n      }).then(function (res) {\n        __f__(\"log\", '寰呭彇璐�:', res, \" at pages/index/index.vue:673\");\n        _this9.pickupLoading = false;\n        if (res.code === 200) {\n          _this9.pickupOrderList = res.data.records || res.data || [];\n        }\n      }).catch(function (err) {\n        _this9.pickupLoading = false;\n      });\n    },\n    getDeliveringOrders: function getDeliveringOrders() {\n      var _this10 = this;\n      if (this.acceptingStatus === 0) return;\n      if (this.deliveringLoading) return;\n      this.deliveringLoading = true;\n      this.$u.api.activeOrders({\n        status: 4\n      }).then(function (res) {\n        __f__(\"log\", '閰嶉�佷腑:', res, \" at pages/index/index.vue:688\");\n        _this10.deliveringLoading = false;\n        if (res.code === 200) {\n          _this10.deliveringOrderList = res.data || [];\n        }\n      }).catch(function (err) {\n        _this10.deliveringLoading = false;\n      });\n    },\n    openStatusPicker: function openStatusPicker() {\n      this.showStatusPicker = true;\n    },\n    confirmStatus: function confirmStatus(e) {\n      var _this11 = this;\n      this.showStatusPicker = false;\n      var selectedValue = e.value[0];\n      this.$u.api.updateAcceptingStatus({\n        status: selectedValue.value\n      }).then(function (res) {\n        if (res.code === 200) {\n          _this11.acceptingStatus = selectedValue.value;\n          _this11.getCenterInfo();\n          if (_this11.acceptingStatus === 0) {\n            _this11.orderList = [];\n            _this11.pickupOrderList = [];\n            _this11.deliveringOrderList = [];\n          } else {\n            if (_this11.activeTab === 'pickup') {\n              _this11.getPickupOrders();\n            } else if (_this11.activeTab === 'delivering') {\n              _this11.getDeliveringOrders();\n            } else {\n              _this11.hallPage = 1;\n              _this11.hallHasMore = true;\n              _this11.orderList = [];\n              _this11.getHallOrders();\n            }\n          }\n        }\n      });\n    },\n    toDriverCertification: function toDriverCertification() {\n      uni.navigateTo({\n        url: '/pages/driver-certification/driver-certification'\n      });\n    },\n    toggleFilterPopup: function toggleFilterPopup(show) {\n      this.showFilterPopup = show;\n    },\n    selectFilter: function selectFilter(key, option) {\n      this.selectedFilters = _objectSpread(_objectSpread({}, this.selectedFilters), {}, (0, _defineProperty2.default)({}, key, option));\n    },\n    resetFilters: function resetFilters() {\n      this.showFilterPopup = false;\n      if (this.userInfo.auditStatus === 99) return;\n      this.selectedFilters = {\n        sort: '缁煎悎鎺掑簭',\n        level: '涓嶉檺',\n        distance: '涓嶉檺'\n      };\n      if (this.activeTab === 'hall') {\n        this.hallPage = 1;\n        this.hallHasMore = true;\n        this.orderList = [];\n        this.getHallOrders();\n      }\n    },\n    confirmFilters: function confirmFilters() {\n      this.showFilterPopup = false;\n      if (this.userInfo.auditStatus === 99) {\n        this.hallHasMore = true;\n        return;\n      }\n      if (this.activeTab === 'hall') {\n        this.hallPage = 1;\n        this.hallHasMore = true;\n        this.orderList = [];\n        this.getHallOrders();\n      }\n    },\n    initTTS: function initTTS() {\n      var _this12 = this;\n      if (uni.getSystemInfoSync().platform !== 'android') {\n        __f__(\"log\", '浠呮敮鎸佸畨鍗�', \" at pages/index/index.vue:778\");\n        return;\n      }\n      try {\n        // 瀵煎叆瀹夊崜鍘熺敓绫籠n        var TextToSpeech = plus.android.importClass('android.speech.tts.TextToSpeech');\n        var Locale = plus.android.importClass('java.util.Locale');\n\n        // 鍒涘缓TTS\n        this.tts = new TextToSpeech(plus.android.runtimeMainActivity(), {\n          onInit: function onInit(status) {\n            if (status == 0) {\n              // 璁剧疆涓枃\n              _this12.tts.setLanguage(Locale.CHINA);\n              __f__(\"log\", '璇煶鍒濆鍖栨垚鍔�', \" at pages/index/index.vue:793\");\n            }\n          }\n        });\n      } catch (e) {\n        __f__(\"log\", '鍒濆鍖栧け璐�', e, \" at pages/index/index.vue:798\");\n      }\n    },\n    speak: function speak(text) {\n      if (!this.tts) {\n        uni.showToast({\n          title: '璇煶鏈噯澶囧ソ',\n          icon: 'none'\n        });\n        return;\n      }\n      try {\n        // 瀹夊崜鍘熺敓鎾姤锛圦UEUE_FLUSH = 绔嬪嵆鎾姤锛屾墦鏂笂涓�鏉★級\n        this.tts.speak(text, 0, null);\n      } catch (err) {\n        __f__(\"log\", '鎾姤澶辫触', err, \" at pages/index/index.vue:815\");\n      }\n    },\n    stopSpeak: function stopSpeak() {\n      if (this.tts) this.tts.stop();\n    }\n  },\n  onUnload: function onUnload() {\n    if (this.tts) {\n      this.tts.stop();\n      this.tts.shutdown();\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 */ 92)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJ0dHMiLCJzaG93Iiwic2hvdzEiLCJzaG93R3JhYk1vZGFsIiwic2VsZWN0ZWRHcmFiT3JkZXIiLCJzZWxlY3RlZENhbmNlbE9yZGVyIiwiY2FuY2VsUmVtYWluIiwic2VsZWN0ZWRQaWNrdXBPcmRlciIsInNob3dQaG90b0RlbGl2ZXJQb3B1cCIsInJvdXRlSW5mbyIsInN0YXR1c0JhckhlaWdodCIsImhlYWRlckhlaWdodCIsInRhYmJhckhlaWdodCIsInNjcm9sbEhlaWdodCIsInNob3dGaWx0ZXJQb3B1cCIsImFjY2VwdGluZ1N0YXR1cyIsInNob3dTdGF0dXNQaWNrZXIiLCJzdGF0dXNPcHRpb25zIiwidGV4dCIsInZhbHVlIiwiY2VudGVyVXNlckluZm8iLCJhY3RpdmVUYWIiLCJleHBhbmRlZEdvb2RzSWRzIiwiY2F0ZWdvcnlMaXN0IiwiZmlsdGVyU2VjdGlvbnMiLCJrZXkiLCJ0aXRsZSIsIm9wdGlvbnMiLCJzZWxlY3RlZEZpbHRlcnMiLCJzb3J0IiwibGV2ZWwiLCJkaXN0YW5jZSIsInN0YXRzIiwibGFiZWwiLCJ0YWJzIiwib3JkZXJMaXN0IiwicGlja3VwT3JkZXJMaXN0IiwiZGVsaXZlcmluZ09yZGVyTGlzdCIsImhhbGxQYWdlIiwiaGFsbFBhZ2VTaXplIiwiaGFsbExvYWRpbmciLCJoYWxsSGFzTW9yZSIsInBpY2t1cExvYWRpbmciLCJkZWxpdmVyaW5nTG9hZGluZyIsImFjdGl2ZU9yZGVyQ291bnQiLCJ3YXRjaCIsIm9uTG9hZCIsIm9uU2hvdyIsIm9uUmVhY2hCb3R0b20iLCJjb21wdXRlZCIsImRpc3BsYXlUYWJzIiwiY291bnQiLCJjdXJyZW50T3JkZXJMaXN0IiwiaGFsbCIsInBpY2t1cCIsImRlbGl2ZXJpbmciLCJib2R5U3R5bGUiLCJtYXJnaW5Ub3AiLCJoZWlnaHQiLCJvblJlYWR5IiwibWV0aG9kcyIsImZvcm1hdFJlbWFpblRpbWUiLCJnZXRHb29kc1RleHQiLCJ0b2dnbGVHb29kc0V4cGFuZCIsImZvcm1hdERpc3RhbmNlUGFydHMiLCJ1bml0IiwibmF2aWdhdGVUb0FkZHJlc3MiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsIm5hbWUiLCJhZGRyZXNzIiwidW5pIiwiaWNvbiIsInN1Y2Nlc3MiLCJmYWlsIiwiaGFuZGxlVXNlckNsaWNrIiwidXJsIiwiZ2V0QWN0aXZlT3JkZXJDb3VudCIsImhhbmRsZUdyYWJPcmRlciIsImNvbmZpcm1HcmFiT3JkZXIiLCJvcmRlcklkIiwiaGFuZGxlQ2FuY2VsT3JkZXIiLCJjb25maXJtQ2FuY2VsT3JkZXIiLCJoYW5kbGVDYWxsIiwicGhvbmVOdW1iZXIiLCJoYW5kbGVTaG93UGlja3VwQ29kZSIsImdvVG9PcmRlckRldGFpbCIsImdldENlbnRlckluZm8iLCJmdWxsSW1nVXJsIiwiZ2V0Q2F0ZWdvcnlMaXN0RGF0YSIsInR5cGUiLCJzZWN0aW9uIiwibG9hZE9yZGVyc0J5VGFiIiwiZ2V0SGFsbE9yZGVycyIsImdyYWRlSWQiLCJzb3J0VHlwZSIsImNhcGFjaXR5IiwicGFnZSIsIm1vZGVsIiwiZ2V0UGlja3VwT3JkZXJzIiwic3RhdHVzIiwiZ2V0RGVsaXZlcmluZ09yZGVycyIsIm9wZW5TdGF0dXNQaWNrZXIiLCJjb25maXJtU3RhdHVzIiwidG9Ecml2ZXJDZXJ0aWZpY2F0aW9uIiwidG9nZ2xlRmlsdGVyUG9wdXAiLCJzZWxlY3RGaWx0ZXIiLCJyZXNldEZpbHRlcnMiLCJjb25maXJtRmlsdGVycyIsImluaXRUVFMiLCJvbkluaXQiLCJzcGVhayIsInN0b3BTcGVhayIsIm9uVW5sb2FkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFzUUE7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDLGdCQUNBO1FBQUFDO1FBQUFDO01BQUEsR0FDQTtRQUFBRDtRQUFBQztNQUFBLEVBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUMsaUJBQ0E7UUFBQUM7UUFBQUM7UUFBQUM7TUFBQSxHQUNBO1FBQUFGO1FBQUFDO1FBQUFDO01BQUEsR0FDQTtRQUFBRjtRQUFBQztRQUFBQztNQUFBLEVBQ0E7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQyxRQUNBO1FBQUFiO1FBQUFjO01BQUEsR0FDQTtRQUFBZDtRQUFBYztNQUFBLEdBQ0E7UUFBQWQ7UUFBQWM7TUFBQSxFQUNBO01BQ0FDLE9BQ0E7UUFBQUQ7UUFBQWQ7TUFBQSxHQUNBO1FBQUFjO1FBQUFkO01BQUEsR0FDQTtRQUFBYztRQUFBZDtNQUFBLEVBQ0E7TUFDQWdCO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUVBQztJQUNBeEI7TUFDQTtJQUNBO0VBQ0E7RUFFQXlCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUVBQztJQUNBO0lBQ0E7SUFDQTtFQUNBO0VBRUFDO0lBQ0E7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBRUFDLDBDQUNBO0lBRUFDO01BQUE7TUFDQTtRQUNBO1VBQUE7VUFDQTtZQUFBQztVQUFBO1FBQ0E7VUFBQTtVQUNBO1lBQUFBO1VBQUE7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFFQTtJQUNBO0lBRUFDO01BQ0E7UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0VBQUEsRUFDQTtFQUVBQztJQUNBO0VBQ0E7O0VBRUFDO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUFBO01BQUE7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtRQUNBO1VBQUE3QztVQUFBOEM7UUFBQTtNQUNBO01BRUE7UUFDQTtVQUNBO1lBQUE5QztZQUFBOEM7VUFBQTtRQUNBO1FBQ0E7VUFBQTlDO1VBQUE4QztRQUFBO01BQ0E7TUFFQTtNQUNBO01BQ0E7UUFDQTtVQUNBOUM7VUFDQThDO1FBQ0E7TUFDQTtNQUVBO1FBQUE5QztRQUFBOEM7TUFBQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO1FBQ0FIO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQTtRQUNBQztVQUFBN0M7VUFBQThDO1FBQUE7UUFDQTtNQUNBO01BQ0FEO1FBQ0FKO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FHO1FBQ0FDO1VBQ0FIO1lBQUE3QztZQUFBOEM7VUFBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFHO01BQ0FKO1FBQ0FLO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQUE7TUFDQTtNQUNBO1FBQUFDO01BQUE7UUFDQTtRQUNBO1VBQ0FUO1lBQUE3QztZQUFBOEM7VUFBQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO1VBQ0FEO1lBQUE3QztZQUFBOEM7VUFBQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQVM7TUFBQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUFBO01BQ0E7TUFDQTtRQUFBRjtNQUFBO1FBQ0E7UUFDQTtVQUNBVDtZQUFBN0M7WUFBQThDO1VBQUE7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBRDtZQUFBN0M7WUFBQThDO1VBQUE7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFXO01BQ0E7UUFDQVo7VUFDQWE7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO1FBQ0FWO01BQ0E7TUFDQUw7UUFBQUs7TUFBQTtJQUNBO0lBRUFXO01BQUE7TUFDQTtRQUNBO1VBQ0E7VUFDQTtZQUNBQztZQUNBbkI7VUFDQTtVQUNBLGdCQUNBO1lBQUFsRDtZQUFBYztVQUFBLEdBQ0E7WUFBQWQ7WUFBQWM7VUFBQSxHQUNBO1lBQUFkO1lBQUFjO1VBQUEsRUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBd0Q7TUFBQTtNQUNBO1FBQUFDO01BQUE7UUFDQTtVQUNBO1VBQ0E7WUFDQTtjQUNBQztnQkFBQTtjQUFBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUFBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUVBO01BQ0E7UUFDQTtRQUNBO1VBQ0E5RDtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUVBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7TUFFQTtNQUNBO1FBQ0E7VUFBQTtRQUFBO1FBQ0E7VUFDQStEO1FBQ0E7TUFDQTtNQUVBO1FBQUEvRDtRQUFBK0Q7UUFBQUM7TUFBQTtNQUNBO1FBQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0FuRTtVQUNBK0Q7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBSTtNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQUM7TUFBQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQUQ7TUFBQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBRTtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUNBO01BQ0E7TUFDQTtRQUFBSDtNQUFBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFDQTtZQUNBO2NBQ0E7WUFDQTtjQUNBO1lBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQUk7TUFDQWpDO1FBQ0FLO01BQ0E7SUFDQTtJQUVBNkI7TUFDQTtJQUNBO0lBRUFDO01BQ0EsdURBQ0EsNkRBQ0FqRixhQUNBO0lBQ0E7SUFFQWtGO01BQ0E7TUFDQTtNQUNBO1FBQ0E5RTtRQUNBQztRQUNBQztNQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQTZFO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFDO01BQUE7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUVBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7VUFDQUM7WUFDQTtjQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7UUFDQXhDO1VBQ0E3QztVQUNBOEM7UUFDQTtRQUNBO01BQ0E7TUFFQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBd0M7TUFDQTtJQUNBO0VBQ0E7RUFFQUM7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiI5MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VcIj5cblx0XHQ8dmlldyBjbGFzcz1cImhhbGwtcGFnZV9faGVhZGVyXCIgOnN0eWxlPVwieyBwYWRkaW5nVG9wOiBzdGF0dXNCYXJIZWlnaHQgKyAncHgnIH1cIj5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaGFsbC1wYWdlX191c2VyLXJvd1wiIEBjbGljaz1cImhhbmRsZVVzZXJDbGlja1wiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImhhbGwtcGFnZV9fdXNlclwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImhhbGwtcGFnZV9fYXZhdGFyXCIgOnNyYz1cImNlbnRlclVzZXJJbmZvLmZ1bGxJbWdVcmwgfHwgJy9zdGF0aWMvaW1hZ2UvaWNfcGljQDJ4LnBuZydcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJoYWxsLXBhZ2VfX25hbWVcIj57eyBjZW50ZXJVc2VySW5mby5uYW1lIH19PC90ZXh0PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0dXNcIiB2LWlmPVwidXNlckluZm8uYXVkaXRTdGF0dXMgPT09IDNcIiBAY2xpY2s9XCJvcGVuU3RhdHVzUGlja2VyXCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3N0YXR1cy1kb3RcIiA6Y2xhc3M9XCJ7ICdoYWxsLXBhZ2VfX3N0YXR1cy1kb3QtLW9mZmxpbmUnOiBhY2NlcHRpbmdTdGF0dXMgPT09IDAgfVwiPjwvdmlldz5cblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImhhbGwtcGFnZV9fc3RhdHVzLXRleHRcIj57eyBhY2NlcHRpbmdTdGF0dXMgPT09IDEgPyAn5o6l5Y2V5LitJyA6ICflt7LkuIvnur8nIH19PC90ZXh0PlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0dXMtYXJyb3dcIj7ilrw8L3RleHQ+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3VzZXJcIiBzdHlsZT1cIm9wYWNpdHk6IDA7XCI+XG5cdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaGFsbC1wYWdlX19hdmF0YXJcIiA6c3JjPVwiY2VudGVyVXNlckluZm8uZnVsbEltZ1VybCB8fCAnL3N0YXRpYy9pbWFnZS9pY19waWNAMngucG5nJ1wiIG1vZGU9XCJhc3BlY3RGaWxsXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImhhbGwtcGFnZV9fbmFtZVwiPnt7IGNlbnRlclVzZXJJbmZvLm5hbWUgfX08L3RleHQ+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3N0YXRzXCI+XG5cdFx0XHRcdDx2aWV3IHYtZm9yPVwiaXRlbSBpbiBzdGF0c1wiIDprZXk9XCJpdGVtLmxhYmVsXCIgY2xhc3M9XCJoYWxsLXBhZ2VfX3N0YXQtaXRlbVwiPlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0LXZhbHVlXCI+e3sgdXNlckluZm8uYXVkaXRTdGF0dXMgPT09IDMgPyBpdGVtLnZhbHVlIDogJy0nIH19PC90ZXh0PlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19zdGF0LWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvdGV4dD5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhhbGwtcGFnZV9fdGFic1wiPlxuXHRcdFx0XHQ8dmlldyB2LWZvcj1cInRhYiBpbiBkaXNwbGF5VGFic1wiIDprZXk9XCJ0YWIudmFsdWVcIiBjbGFzcz1cImhhbGwtcGFnZV9fdGFiXCIgOmNsYXNzPVwieyAnaGFsbC1wYWdlX190YWItLWFjdGl2ZSc6IGFjdGl2ZVRhYiA9PT0gdGFiLnZhbHVlIH1cIiBAY2xpY2s9XCJhY3RpdmVUYWIgPSB0YWIudmFsdWVcIj5cblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImhhbGwtcGFnZV9fdGFiLXRleHRcIj57eyB0YWIubGFiZWwgfX08L3RleHQ+XG5cdFx0XHRcdFx0PHRleHQgdi1pZj1cInRhYi5jb3VudFwiIGNsYXNzPVwiaGFsbC1wYWdlX190YWItY291bnRcIj57eyB1c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gMyA/IHRhYi5jb3VudCA6ICcnIH19PC90ZXh0PlxuXHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJhY3RpdmVUYWIgPT09IHRhYi52YWx1ZVwiIGNsYXNzPVwiaGFsbC1wYWdlX190YWItbGluZVwiPjwvdmlldz5cblx0XHRcdFx0PC92aWV3Plx0XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGFsbC1wYWdlX19maWx0ZXJcIiBAY2xpY2s9XCJ0b2dnbGVGaWx0ZXJQb3B1cCh0cnVlKVwiPlxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaGFsbC1wYWdlX19maWx0ZXItdGV4dFwiIDpjbGFzcz1cInsgJ2hhbGwtcGFnZV9fZmlsdGVyLXRleHQtLWFjdGl2ZSc6IHNob3dGaWx0ZXJQb3B1cCB9XCI+562b6YCJPC90ZXh0PlxuXHRcdFx0XHRcdDxpbWFnZSA6c3JjPVwic2hvd0ZpbHRlclBvcHVwID8gJy9zdGF0aWMvaW1hZ2UvaWNfc2hhaXh1YW5fc2VsQDJ4LnBuZycgOiAnL3N0YXRpYy9pbWFnZS9pY19zaGFpeHVhbkAyeC5wbmcnXCIgbW9kZT1cIndpZHRoRml4XCIgY2xhc3M9XCJoYWxsLXBhZ2VfX2ZpbHRlci1pY29uXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblxuXHRcdDx2aWV3IHYtaWY9XCJzaG93RmlsdGVyUG9wdXBcIiBjbGFzcz1cImZpbHRlci1wb3B1cFwiIDpzdHlsZT1cInsgdG9wOiBoZWFkZXJIZWlnaHQgKyAncHgnLCBib3R0b206IHRhYmJhckhlaWdodCArICdweCcgfVwiIEBjbGljaz1cInRvZ2dsZUZpbHRlclBvcHVwKGZhbHNlKVwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJmaWx0ZXItcG9wdXBfX3BhbmVsXCIgQGNsaWNrLnN0b3A+XG5cdFx0XHRcdDxzY3JvbGwtdmlldyBjbGFzcz1cImZpbHRlci1wb3B1cF9fY29udGVudFwiIHNjcm9sbC15PlxuXHRcdFx0XHRcdDx2aWV3IHYtZm9yPVwic2VjdGlvbiBpbiBmaWx0ZXJTZWN0aW9uc1wiIDprZXk9XCJzZWN0aW9uLmtleVwiIGNsYXNzPVwiZmlsdGVyLXBvcHVwX19zZWN0aW9uXCI+XG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImZpbHRlci1wb3B1cF9fdGl0bGVcIj57eyBzZWN0aW9uLnRpdGxlIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmaWx0ZXItcG9wdXBfX29wdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXdcblx0XHRcdFx0XHRcdFx0XHR2LWZvcj1cIm9wdGlvbiBpbiBzZWN0aW9uLm9wdGlvbnNcIlxuXHRcdFx0XHRcdFx0XHRcdDprZXk9XCJvcHRpb25cIlxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiZmlsdGVyLXBvcHVwX19vcHRpb25cIlxuXHRcdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsgJ2ZpbHRlci1wb3B1cF9fb3B0aW9uLS1hY3RpdmUnOiBzZWxlY3RlZEZpbHRlcnNbc2VjdGlvbi5rZXldID09PSBvcHRpb24gfVwiXG5cdFx0XHRcdFx0XHRcdFx0QGNsaWNrPVwic2VsZWN0RmlsdGVyKHNlY3Rpb24ua2V5LCBvcHRpb24pXCJcblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiZmlsdGVyLXBvcHVwX19vcHRpb24tdGV4dFwiPnt7IG9wdGlvbiB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PC9zY3JvbGwtdmlldz5cblxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImZpbHRlci1wb3B1cF9fYWN0aW9uc1wiPlxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJmaWx0ZXItcG9wdXBfX2J1dHRvbiBmaWx0ZXItcG9wdXBfX2J1dHRvbi0tcmVzZXRcIiBob3Zlci1jbGFzcz1cImZpbHRlci1wb3B1cF9fYnV0dG9uLS1ob3ZlclwiIEBjbGljaz1cInJlc2V0RmlsdGVyc1wiPumHjee9rjwvYnV0dG9uPlxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJmaWx0ZXItcG9wdXBfX2J1dHRvbiBmaWx0ZXItcG9wdXBfX2J1dHRvbi0tY29uZmlybVwiIGhvdmVyLWNsYXNzPVwiZmlsdGVyLXBvcHVwX19idXR0b24tLWhvdmVyXCIgQGNsaWNrPVwiY29uZmlybUZpbHRlcnNcIj7noa7orqQ8L2J1dHRvbj5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblxuXHRcdDxzY3JvbGwtdmlldyBjbGFzcz1cImhhbGwtcGFnZV9fYm9keVwiIHNjcm9sbC15IDpzdHlsZT1cImJvZHlTdHlsZVwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoYWxsLXBhZ2VfX3ZlcmlmaWVkXCIgdi1pZj1cInVzZXJJbmZvLmF1ZGl0U3RhdHVzICE9PSAzXCI+XG5cdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ltYWdlL2RlZmF1bHRfdW52ZXJpZmllZEAyeC5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHQ8YnV0dG9uIEBjbGljaz1cInRvRHJpdmVyQ2VydGlmaWNhdGlvblwiPuWOu+iupOivgTwvYnV0dG9uPlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgdi1lbHNlLWlmPVwidXNlckluZm8uYXVkaXRTdGF0dXMgPT09IDMgJiYgYWNjZXB0aW5nU3RhdHVzID09PSAxICYmIGN1cnJlbnRPcmRlckxpc3QubGVuZ3RoXCIgY2xhc3M9XCJoYWxsLXBhZ2VfX2xpc3RcIj5cblx0XHRcdFx0PHZpZXcgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGN1cnJlbnRPcmRlckxpc3RcIiA6a2V5PVwiaXRlbS5pZFwiIGNsYXNzPVwib3JkZXItY2FyZFwiIEBjbGljaz1cImdvVG9PcmRlckRldGFpbChpdGVtLCBpbmRleClcIj5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2hlYWRcIj5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fdGltZVwiIHYtaWY9XCJpdGVtLnJlbWFpbk1pbnV0ZXMgPiAwXCI+XG5cdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fdGltZS1tYWluXCI+e3sgZm9ybWF0UmVtYWluVGltZShpdGVtLnJlbWFpbk1pbnV0ZXMpIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3RpbWUtc3ViXCI+6YCB6L6+PC90ZXh0PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX190aW1lXCIgdi1lbHNlPlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3RpbWUtbWFpblwiPumFjemAgeW3sui2heaXtu+8jOivt+WwveW/q+mAgei+vjwvdGV4dD5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJhY3RpdmVUYWIgPT09ICdoYWxsJ1wiIGNsYXNzPVwib3JkZXItY2FyZF9fcHJpY2Utd3JhcFwiPlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3ByaWNlXCI+wqV7eyBpdGVtLnBsYXRmb3JtUmV3YXJkQW1vdW50ID8gKGl0ZW0uZHJpdmVyRmVlICsgaXRlbS5wbGF0Zm9ybVJld2FyZEFtb3VudCkgLyAxMDAgOiAoaXRlbS5kcml2ZXJGZWUgLyAxMDApLnRvRml4ZWQoMikgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyB2LWVsc2UgY2xhc3M9XCJvcmRlci1jYXJkX19wcmljZS13cmFwIG9yZGVyLWNhcmRfX3ByaWNlLXdyYXAtLXNlcmlhbC1vbmx5XCI+XG5cdFx0XHRcdFx0XHRcdDx0ZXh0IHYtaWY9XCJpdGVtLmNvZGVcIiBjbGFzcz1cIm9yZGVyLWNhcmRfX3NlcmlhbFwiPiN7eyBpbmRleCArIDEgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19tZXRhXCI+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX3RhZ3NcIj5cblx0XHRcdFx0XHRcdFx0PGltYWdlIHYtaWY9XCJpdGVtLmlzVXJnZW50ID09PSAxXCIgY2xhc3M9XCJvcmRlci1jYXJkX190YWctaW1nXCIgc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19qaXN1ZGFAMngucG5nXCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PGltYWdlIHYtZWxzZSBjbGFzcz1cIm9yZGVyLWNhcmRfX3RhZy1pbWdcIiBzcmM9XCIvc3RhdGljL2ltYWdlL2ljX2JpYW9zdWRhQDJ4LnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDx0ZXh0IHYtaWY9XCJpdGVtLmlzVmFsdWFibGUgPT09IHRydWVcIiBjbGFzcz1cIm9yZGVyLWNhcmRfX3RhZyBvcmRlci1jYXJkX190YWctLW9yYW5nZVwiPui0temHjeeJqeWTgTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0PHRleHQgdi1lbHNlIGNsYXNzPVwib3JkZXItY2FyZF9fdGFnIG9yZGVyLWNhcmRfX3RhZy0tYmx1ZVwiPnt7IGl0ZW0uZ29vZExldmVsTmFtZSB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx0ZXh0IHYtaWY9XCJhY3RpdmVUYWIgPT09ICdoYWxsJyAmJiBpdGVtLnBsYXRmb3JtUmV3YXJkQW1vdW50XCIgY2xhc3M9XCJvcmRlci1jYXJkX19leHRyYVwiPuWQq+WKoOaApcKle3sgKGl0ZW0ucGxhdGZvcm1SZXdhcmRBbW91bnQgLyAxMDApLnRvRml4ZWQoMikgfX08L3RleHQ+XG5cdFx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZVwiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS1zaWRlXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fZGlzdGFuY2UtYmxvY2sgb3JkZXItY2FyZF9fZGlzdGFuY2UtYmxvY2stLXRvcFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fZGlzdGFuY2UtdmFsdWVcIj57eyBmb3JtYXREaXN0YW5jZVBhcnRzKGl0ZW0uZGVwb3NpdERpc3RhbmNlKS52YWx1ZSB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX2Rpc3RhbmNlLXVuaXRcIj57eyBmb3JtYXREaXN0YW5jZVBhcnRzKGl0ZW0uZGVwb3NpdERpc3RhbmNlKS51bml0IH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fbGluZVwiPjwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19kaXN0YW5jZS1ibG9jayBvcmRlci1jYXJkX19kaXN0YW5jZS1ibG9jay0tYm90dG9tXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJvcmRlci1jYXJkX19kaXN0YW5jZS12YWx1ZVwiPnt7IGZvcm1hdERpc3RhbmNlUGFydHMoaXRlbS50YWtlRGlzdGFuY2UpLnZhbHVlIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fZGlzdGFuY2UtdW5pdFwiPnt7IGZvcm1hdERpc3RhbmNlUGFydHMoaXRlbS50YWtlRGlzdGFuY2UpLnVuaXQgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fcm91dGUtbWFpblwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLWl0ZW1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLXRleHRzXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLXRpdGxlXCI+e3sgaXRlbS5kZXBvc2l0U2hvcE5hbWUgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX3JvdXRlLWRlc2NcIj57eyBpdGVtLmRlcG9zaXRTaG9wQWRkcmVzcyB9fTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9zdGF0aWMvaW1hZ2UvaWNfZGFvaGFuZ0AyeC5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIiBjbGFzcz1cIm9yZGVyLWNhcmRfX25hdlwiIEBjbGljay5zdG9wPVwibmF2aWdhdGVUb0FkZHJlc3MoaXRlbSwgJ2RlcG9zaXQnKVwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS1pdGVtIG9yZGVyLWNhcmRfX3JvdXRlLWl0ZW0tLWRlc3RpbmF0aW9uXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS10ZXh0c1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlIHYtaWY9XCJpdGVtLnRha2VTaG9wSWRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJvcmRlci1jYXJkX19yb3V0ZS10aXRsZVwiPnt7IGl0ZW0udGFrZU5hbWUgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fcm91dGUtZGVzY1wiPnt7IGl0ZW0udGFrZUFkZHJlc3MgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3RlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgdi1lbHNlIGNsYXNzPVwib3JkZXItY2FyZF9fcm91dGUtdGl0bGVcIj57eyBpdGVtLnRha2VBZGRyZXNzIH19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19kYW9oYW5nQDJ4LnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiIGNsYXNzPVwib3JkZXItY2FyZF9fbmF2XCIgQGNsaWNrLnN0b3A9XCJuYXZpZ2F0ZVRvQWRkcmVzcyhpdGVtLCAndGFrZScpXCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fZ29vZHNcIiB2LWlmPVwiaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCA+IDBcIiBAY2xpY2suc3RvcD1cInRvZ2dsZUdvb2RzRXhwYW5kKGl0ZW0uaWQpXCI+XG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX2dvb2RzLXRleHRcIj57eyBnZXRHb29kc1RleHQoaXRlbS5pdGVtcywgaXRlbS5pZCkgfX08L3RleHQ+XG5cdFx0XHRcdFx0XHQ8dS1pY29uIHYtaWY9XCJnZXRHb29kc1RleHQoaXRlbS5pdGVtcywgaXRlbS5pZCkubGVuZ3RoID4gMjBcIiBuYW1lPVwiYXJyb3ctZG93blwiIDpjbGFzcz1cInsgJ29yZGVyLWNhcmRfX2dvb2RzLWFycm93LS1leHBhbmRlZCc6IGV4cGFuZGVkR29vZHNJZHMuaW5jbHVkZXMoaXRlbS5pZCkgfVwiIHNpemU9XCIxMlwiIGNvbG9yPVwiI2E0YTliMVwiPjwvdS1pY29uPlxuXHRcdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9fYWN0aW9uc1wiIDpjbGFzcz1cIidvcmRlci1jYXJkX19hY3Rpb25zLS0nICsgYWN0aXZlVGFiXCI+XG5cdFx0XHRcdFx0XHQ8dGVtcGxhdGUgdi1pZj1cImFjdGl2ZVRhYiA9PT0gJ3BpY2t1cCdcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvcmRlci1jYXJkX19pY29uLWFjdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2ljb24tYWN0aW9uXCIgQGNsaWNrLnN0b3A9XCJoYW5kbGVDYW5jZWxPcmRlcihpdGVtKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cIm9yZGVyLWNhcmRfX2FjdGlvbi1pY29uXCIgc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19jYW5jbGVAMngucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm9yZGVyLWNhcmRfX2FjdGlvbi10ZXh0XCI+5Y+W5raIPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2ljb24tYWN0aW9uXCIgQGNsaWNrLnN0b3A9XCJoYW5kbGVDYWxsKGl0ZW0pXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJvcmRlci1jYXJkX19hY3Rpb24taWNvblwiIHNyYz1cIi9zdGF0aWMvaW1hZ2UvaWNfY2FsbEAyeC5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwib3JkZXItY2FyZF9fYWN0aW9uLXRleHRcIj7ogZTns7s8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJvcmRlci1jYXJkX19idXR0b24gb3JkZXItY2FyZF9fYnV0dG9uLS1jb2RlXCIgaG92ZXItY2xhc3M9XCJvcmRlci1jYXJkX19idXR0b24tLWhvdmVyXCIgQGNsaWNrLnN0b3A9XCJoYW5kbGVTaG93UGlja3VwQ29kZShpdGVtKVwiPuWPlui0p+eggTwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0PC90ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSB2LWVsc2UtaWY9XCJhY3RpdmVUYWIgPT09ICdkZWxpdmVyaW5nJ1wiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm9yZGVyLWNhcmRfX2ljb24tYWN0aW9ucyBvcmRlci1jYXJkX19pY29uLWFjdGlvbnMtLXNpbmdsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwib3JkZXItY2FyZF9faWNvbi1hY3Rpb25cIiBAY2xpY2suc3RvcD1cImhhbmRsZUNhbGwoaXRlbSlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cIm9yZGVyLWNhcmRfX2FjdGlvbi1pY29uXCIgc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19jYWxsQDJ4LnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJvcmRlci1jYXJkX19hY3Rpb24tdGV4dFwiPuiBlOezuzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cIm9yZGVyLWNhcmRfX2J1dHRvbiBvcmRlci1jYXJkX19idXR0b24tLWNvZGVcIiBob3Zlci1jbGFzcz1cIm9yZGVyLWNhcmRfX2J1dHRvbi0taG92ZXJcIiBAY2xpY2suc3RvcD1cImhhbmRsZVNob3dQaWNrdXBDb2RlKGl0ZW0pXCI+5a2Y5Lu256CBPC9idXR0b24+XG5cdFx0XHRcdFx0XHQ8L3RlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB2LWVsc2UgY2xhc3M9XCJvcmRlci1jYXJkX19idXR0b25cIiBob3Zlci1jbGFzcz1cIm9yZGVyLWNhcmRfX2J1dHRvbi0taG92ZXJcIiBAY2xpY2suc3RvcD1cImhhbmRsZUdyYWJPcmRlcihpdGVtKVwiPueri+WNs+aKouWNlTwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXG5cdFx0XHQ8dmlldyB2LWVsc2UgY2xhc3M9XCJoYWxsLXBhZ2VfX2VtcHR5XCI+XG5cdFx0XHRcdDxpbWFnZSBjbGFzcz1cImhhbGwtcGFnZV9fZW1wdHktaWNvblwiIDpzcmM9XCJhY2NlcHRpbmdTdGF0dXMgPT09IDAgPyAnL3N0YXRpYy9pbWFnZS9kZWZhdWx0X25vZGF0YV9ncmV5QDJ4LnBuZycgOiAnL3N0YXRpYy9pbWFnZS9kZWZhdWx0X25vZGF0YUAyeC5wbmcnXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC9zY3JvbGwtdmlldz5cblx0XHRcblx0XHQ8IS0tIOWPlua2iOiuouWNlSAtLT5cblx0XHQ8dS1tb2RhbFxuXHRcdFx0OnNob3c9XCJzaG93XCJcblx0XHRcdHNob3dDYW5jZWxCdXR0b25cblx0XHRcdEBjYW5jZWw9XCJzaG93ID0gZmFsc2VcIlxuXHRcdFx0Y2FuY2VsQ29sb3I9XCIjNjY2NjY2XCJcblx0XHRcdGNvbmZpcm1Db2xvcj1cIiMwMDU1RkZcIlxuXHRcdFx0dGl0bGU9XCLlj5bmtojorqLljZXnoa7orqRcIlxuXHRcdFx0QGNvbmZpcm09XCJjb25maXJtQ2FuY2VsT3JkZXJcIj5cblx0XHRcdDx2aWV3IHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO2NvbG9yOiAjMzMzMzMzO2ZvbnQtc2l6ZTogMjhycHg7Zm9udC13ZWlnaHQ6IDQwMDtcIj5cblx0XHRcdFx05oKo5LuK5pel6L+Y5Y+v5Y+W5raIIHt7IGNhbmNlbFJlbWFpbiB9fSDmrKHorqLljZXvvIzmrKHmlbDnlKjlsL3lkI7ku4rml6XlsIbml6Dms5XmjqXljZXvvIzmmK/lkKbnoa7orqTlj5bmtojvvJ9cblx0XHRcdDwvdmlldz5cblx0XHQ8L3UtbW9kYWw+XG5cblx0XHQ8IS0tIOeri+WNs+aKouWNlSAtLT5cblx0XHQ8dS1tb2RhbFxuXHRcdFx0OnNob3c9XCJzaG93R3JhYk1vZGFsXCJcblx0XHRcdHNob3dDYW5jZWxCdXR0b25cblx0XHRcdEBjYW5jZWw9XCJzaG93R3JhYk1vZGFsID0gZmFsc2VcIlxuXHRcdFx0Y2FuY2VsQ29sb3I9XCIjNjY2NjY2XCJcblx0XHRcdGNvbmZpcm1Db2xvcj1cIiMwMDU1RkZcIlxuXHRcdFx0dGl0bGU9XCLmuKnppqjmj5DnpLpcIlxuXHRcdFx0QGNvbmZpcm09XCJjb25maXJtR3JhYk9yZGVyXCI+XG5cdFx0XHQ8dmlldyBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtjb2xvcjogIzMzMzMzMztmb250LXNpemU6IDI4cnB4O2ZvbnQtd2VpZ2h0OiA0MDA7XCI+XG5cdFx0XHRcdHt7IHNlbGVjdGVkR3JhYk9yZGVyICYmIHNlbGVjdGVkR3JhYk9yZGVyLmhhc092ZXJzaXplZCA9PT0gMSA/ICfmnKzorqLljZXmnInnibnlpKfku7blsLrlr7jooYzmnY7vvIzor7fnoa7orqTmmK/lkKbnu6fnu63miqLljZXvvJ8nIDogJ+aYr+WQpuehruiupOaOpeWNle+8nycgfX1cblx0XHRcdDwvdmlldz5cblx0XHQ8L3UtbW9kYWw+XG5cdFx0XG5cdFx0PCEtLSDlj5botKfnoIEv5a2Y5Lu256CBIC0tPlxuXHRcdDx1LXBvcHVwIDpzaG93PVwic2hvdzFcIiByb3VuZD1cIjIwXCIgbW9kZT1cImJvdHRvbVwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJxcmNvZGVcIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJxcmNvZGUtdGl0bGVcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pbWFnZS9pY19jbG9zZUAyeC5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIiBzdHlsZT1cIm9wYWNpdHk6IDA7XCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8dGV4dD57eyBhY3RpdmVUYWIgPT09ICdkZWxpdmVyaW5nJyA/ICflrZjku7bnoIEnIDogJ+WPlui0p+eggScgfX08L3RleHQ+XG5cdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9zdGF0aWMvaW1hZ2UvaWNfY2xvc2VAMngucG5nXCIgbW9kZT1cIndpZHRoRml4XCIgQGNsaWNrPVwic2hvdzEgPSBmYWxzZVwiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJxcmNvZGUtaW1hZ2VcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cInNlbGVjdGVkUGlja3VwT3JkZXIgJiYgc2VsZWN0ZWRQaWNrdXBPcmRlci5kcml2ZXJWZXJpZnlDb2RlXCIgOnNyYz1cIidodHRwczovL2FwaS5xcnNlcnZlci5jb20vdjEvY3JlYXRlLXFyLWNvZGUvP3NpemU9MjAweDIwMCZkYXRhPScgKyBzZWxlY3RlZFBpY2t1cE9yZGVyLmRyaXZlclZlcmlmeUNvZGVcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicXJjb2RlLWJ0blwiIGhvdmVyLWNsYXNzPVwicXJjb2RlLWJ0bi0taG92ZXJcIiBAY2xpY2s9XCJzaG93MSA9IGZhbHNlXCI+5YWz6ZetPC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdS1wb3B1cD5cblxuXHRcdDx1LXBvcHVwIDpzaG93PVwic2hvd1Bob3RvRGVsaXZlclBvcHVwXCIgcm91bmQ9XCIyMFwiIG1vZGU9XCJib3R0b21cIj5cblx0XHRcdDx2aWV3IGNsYXNzPVwicGhvdG8tZGVsaXZlclwiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX2hlYWRlclwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX2Nsb3NlLXBsYWNlaG9sZGVyXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX190aXRsZVwiPuaLjeeFp+mAgei+vjwvdGV4dD5cblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaG90by1kZWxpdmVyX19jbG9zZVwiIG1vZGU9XCJhc3BlY3RGaXRcIiBAY2xpY2s9XCJzaG93UGhvdG9EZWxpdmVyUG9wdXAgPSBmYWxzZVwiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3NlY3Rpb25cIj5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX2xhYmVsLXJvd1wiPlxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX19sYWJlbFwiPuaLjeaRhOmAgei+vueFp+eJhzwvdGV4dD5cblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwicGhvdG8tZGVsaXZlcl9fcmVxdWlyZWRcIj4qPC90ZXh0PlxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX19oaW50XCI+5pyA5aSaM+W8oOeFp+eJhzwvdGV4dD5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3Bob3Rvc1wiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaG90by1kZWxpdmVyX191cGxvYWQtY2FyZFwiPlxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaG90by1kZWxpdmVyX191cGxvYWQtaWNvblwiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3VwbG9hZC10ZXh0XCI+54K55Ye75ouN54WnPC90ZXh0PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3ByZXZpZXctY2FyZFwiPlxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaG90by1kZWxpdmVyX19wcmV2aWV3LWltYWdlXCIgbW9kZT1cImFzcGVjdEZpbGxcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3ByZXZpZXctbWFza1wiPlxuXHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwicGhvdG8tZGVsaXZlcl9fcHJldmlldy1kZWxldGVcIj7liKDpmaQ8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBob3RvLWRlbGl2ZXJfX3NlY3Rpb24gcGhvdG8tZGVsaXZlcl9fc2VjdGlvbi0tcmVtYXJrXCI+XG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJwaG90by1kZWxpdmVyX19yZW1hcmstdGl0bGVcIj7lpIfms6jkv6Hmga88L3RleHQ+XG5cdFx0XHRcdFx0PHRleHRhcmVhIGNsYXNzPVwicGhvdG8tZGVsaXZlcl9fdGV4dGFyZWFcIiBtYXhsZW5ndGg9XCIyMDBcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpVwiIHBsYWNlaG9sZGVyLXN0eWxlPVwiY29sb3I6ICNjN2NiZDM7XCIgLz5cblx0XHRcdFx0PC92aWV3PlxuXG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJwaG90by1kZWxpdmVyX19zdWJtaXRcIiBob3Zlci1jbGFzcz1cInBob3RvLWRlbGl2ZXJfX3N1Ym1pdC0taG92ZXJcIiBAY2xpY2s9XCJzaG93UGhvdG9EZWxpdmVyUG9wdXAgPSBmYWxzZVwiPuehruiupOmAgei+vjwvYnV0dG9uPlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdS1wb3B1cD5cblxuXHRcdDx1LXBpY2tlclxuXHRcdFx0OnNob3c9XCJzaG93U3RhdHVzUGlja2VyXCJcblx0XHRcdGNvbmZpcm1Db2xvcj1cIiMxMEIyRkFcIlxuXHRcdFx0a2V5TmFtZT1cInRleHRcIlxuXHRcdFx0OmNvbHVtbnM9XCJbc3RhdHVzT3B0aW9uc11cIlxuXHRcdFx0QGNvbmZpcm09XCJjb25maXJtU3RhdHVzXCJcblx0XHRcdEBjYW5jZWw9XCJzaG93U3RhdHVzUGlja2VyID0gZmFsc2VcIiAvPlxuXHQ8L3ZpZXc+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXHRpbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnXG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dHRzOiBudWxsLFxuXHRcdFx0XHRzaG93OiBmYWxzZSxcblx0XHRcdFx0c2hvdzE6IGZhbHNlLFxuXHRcdFx0XHRzaG93R3JhYk1vZGFsOiBmYWxzZSxcblx0XHRcdFx0c2VsZWN0ZWRHcmFiT3JkZXI6IG51bGwsXG5cdFx0XHRcdHNlbGVjdGVkQ2FuY2VsT3JkZXI6IG51bGwsXG5cdFx0XHRcdGNhbmNlbFJlbWFpbjogMCxcblx0XHRcdFx0c2VsZWN0ZWRQaWNrdXBPcmRlcjogbnVsbCxcblx0XHRcdFx0c2hvd1Bob3RvRGVsaXZlclBvcHVwOiBmYWxzZSxcblx0XHRcdFx0cm91dGVJbmZvOiBudWxsLFxuXHRcdFx0XHRzdGF0dXNCYXJIZWlnaHQ6IDAsXG5cdFx0XHRcdGhlYWRlckhlaWdodDogMCxcblx0XHRcdFx0dGFiYmFySGVpZ2h0OiAwLFxuXHRcdFx0XHRzY3JvbGxIZWlnaHQ6IDAsXG5cdFx0XHRcdHNob3dGaWx0ZXJQb3B1cDogZmFsc2UsXG5cdFx0XHRcdGFjY2VwdGluZ1N0YXR1czogMCxcblx0XHRcdFx0c2hvd1N0YXR1c1BpY2tlcjogZmFsc2UsXG5cdFx0XHRcdHN0YXR1c09wdGlvbnM6IFtcblx0XHRcdFx0XHR7IHRleHQ6ICfkuIrnur8nLCB2YWx1ZTogMSB9LFxuXHRcdFx0XHRcdHsgdGV4dDogJ+S4i+e6vycsIHZhbHVlOiAwIH1cblx0XHRcdFx0XSxcblx0XHRcdFx0Y2VudGVyVXNlckluZm86IHt9LFxuXHRcdFx0XHRhY3RpdmVUYWI6ICdoYWxsJyxcblx0XHRcdFx0ZXhwYW5kZWRHb29kc0lkczogW10sXG5cdFx0XHRcdGNhdGVnb3J5TGlzdDogW10sXG5cdFx0XHRcdGZpbHRlclNlY3Rpb25zOiBbXG5cdFx0XHRcdFx0eyBrZXk6ICdzb3J0JywgdGl0bGU6ICfmjpLluo8nLCBvcHRpb25zOiBbJ+e7vOWQiOaOkuW6jycsICfot53nprvmnIDov5EnXSB9LFxuXHRcdFx0XHRcdHsga2V5OiAnbGV2ZWwnLCB0aXRsZTogJ+eJqeWTgeetiee6pycsIG9wdGlvbnM6IFsn5LiN6ZmQJ10gfSxcblx0XHRcdFx0XHR7IGtleTogJ2Rpc3RhbmNlJywgdGl0bGU6ICfkvY3nva7ojIPlm7QnLCBvcHRpb25zOiBbJ+S4jemZkCcsICc1MDBtJywgJzFrbScsICcya20nLCAnM2ttJywgJzRrbScsICc1a20nLCAnNmttJywgJzdrbSddIH1cblx0XHRcdFx0XSxcblx0XHRcdFx0c2VsZWN0ZWRGaWx0ZXJzOiB7XG5cdFx0XHRcdFx0c29ydDogJ+e7vOWQiOaOkuW6jycsXG5cdFx0XHRcdFx0bGV2ZWw6ICfkuI3pmZAnLFxuXHRcdFx0XHRcdGRpc3RhbmNlOiAn5LiN6ZmQJ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzdGF0czogW1xuXHRcdFx0XHRcdHsgdmFsdWU6ICctJywgbGFiZWw6ICfmnI3liqHliIYnIH0sXG5cdFx0XHRcdFx0eyB2YWx1ZTogJy0nLCBsYWJlbDogJ+S7iuaXpemihOiuoeS9o+mHkScgfSxcblx0XHRcdFx0XHR7IHZhbHVlOiAnLScsIGxhYmVsOiAn5LuK5pel5o6l5Y2VJyB9XG5cdFx0XHRcdF0sXG5cdFx0XHRcdHRhYnM6IFtcblx0XHRcdFx0XHR7IGxhYmVsOiAn5oqi5Y2V5aSn5Y6FJywgdmFsdWU6ICdoYWxsJyB9LFxuXHRcdFx0XHRcdHsgbGFiZWw6ICflvoXlj5botKcnLCB2YWx1ZTogJ3BpY2t1cCcgfSxcblx0XHRcdFx0XHR7IGxhYmVsOiAn6YWN6YCB5LitJywgdmFsdWU6ICdkZWxpdmVyaW5nJyB9XG5cdFx0XHRcdF0sXG5cdFx0XHRcdG9yZGVyTGlzdDogW10sXG5cdFx0XHRcdHBpY2t1cE9yZGVyTGlzdDogW10sXG5cdFx0XHRcdGRlbGl2ZXJpbmdPcmRlckxpc3Q6IFtdLFxuXHRcdFx0XHRoYWxsUGFnZTogMSxcblx0XHRcdFx0aGFsbFBhZ2VTaXplOiAxMCxcblx0XHRcdFx0aGFsbExvYWRpbmc6IGZhbHNlLFxuXHRcdFx0XHRoYWxsSGFzTW9yZTogdHJ1ZSxcblx0XHRcdFx0cGlja3VwTG9hZGluZzogZmFsc2UsXG5cdFx0XHRcdGRlbGl2ZXJpbmdMb2FkaW5nOiBmYWxzZSxcblx0XHRcdFx0YWN0aXZlT3JkZXJDb3VudDogbnVsbFxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHR3YXRjaDoge1xuXHRcdFx0YWN0aXZlVGFiKG5ld1ZhbCkge1xuXHRcdFx0XHR0aGlzLmxvYWRPcmRlcnNCeVRhYihuZXdWYWwpXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdG9uTG9hZCgpIHtcblx0XHRcdGNvbnN0IHN5c3RlbUluZm8gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKVxuXHRcdFx0Y29uc3Qgc2FmZUJvdHRvbSA9IHN5c3RlbUluZm8uc2FmZUFyZWFJbnNldHMgPyBzeXN0ZW1JbmZvLnNhZmVBcmVhSW5zZXRzLmJvdHRvbSB8fCAwIDogMFxuXHRcdFx0Y29uc3Qgd2luZG93SGVpZ2h0ID0gc3lzdGVtSW5mby53aW5kb3dIZWlnaHQgfHwgMFxuXHRcdFx0dGhpcy5zdGF0dXNCYXJIZWlnaHQgPSBzeXN0ZW1JbmZvLnN0YXR1c0JhckhlaWdodCB8fCAwXG5cdFx0XHR0aGlzLmhlYWRlckhlaWdodCA9IHRoaXMuc3RhdHVzQmFySGVpZ2h0ICsgdW5pLnVweDJweCgzMDgpXG5cdFx0XHR0aGlzLnRhYmJhckhlaWdodCA9IHVuaS51cHgycHgoMTAwKSArIHNhZmVCb3R0b21cblx0XHRcdHRoaXMuc2Nyb2xsSGVpZ2h0ID0gTWF0aC5tYXgod2luZG93SGVpZ2h0IC0gdGhpcy5oZWFkZXJIZWlnaHQsIDApXG5cdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHJldHVybjtcblx0XHRcdHRoaXMuYWNjZXB0aW5nU3RhdHVzID0gdGhpcy51c2VySW5mby5hY2NlcHRpbmdTdGF0dXMgfHwgMFxuXHRcdFx0dGhpcy5sb2FkT3JkZXJzQnlUYWIodGhpcy5hY3RpdmVUYWIpXG5cdFx0fSxcblxuXHRcdG9uU2hvdygpIHtcblx0XHRcdHRoaXMuZ2V0Q2VudGVySW5mbygpXG5cdFx0XHR0aGlzLmdldENhdGVnb3J5TGlzdERhdGEoKVxuXHRcdFx0dGhpcy5nZXRBY3RpdmVPcmRlckNvdW50KClcblx0XHR9LFxuXG5cdFx0b25SZWFjaEJvdHRvbSgpIHtcblx0XHRcdGlmICh0aGlzLmFjY2VwdGluZ1N0YXR1cyA9PT0gMCkgcmV0dXJuO1xuXHRcdFx0aWYgKHRoaXMuYWN0aXZlVGFiID09PSAnaGFsbCcpIHtcblx0XHRcdFx0dGhpcy5oYWxsUGFnZSsrXG5cdFx0XHRcdHRoaXMuZ2V0SGFsbE9yZGVycygpXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdGNvbXB1dGVkOiB7XG5cdFx0XHQuLi5tYXBTdGF0ZShbJ3VzZXJJbmZvJywgJ3Rva2VuJ10pLFxuXG5cdFx0XHRkaXNwbGF5VGFicygpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMudGFicy5tYXAodGFiID0+IHtcblx0XHRcdFx0XHRpZiAodGFiLnZhbHVlID09PSAncGlja3VwJykge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHsgLi4udGFiLCBjb3VudDogdGhpcy5hY3RpdmVPcmRlckNvdW50Py5ncmFiYmVkQ291bnQgfVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAodGFiLnZhbHVlID09PSAnZGVsaXZlcmluZycpIHtcblx0XHRcdFx0XHRcdHJldHVybiB7IC4uLnRhYiwgY291bnQ6IHRoaXMuYWN0aXZlT3JkZXJDb3VudD8uZGVsaXZlcmluZ0NvdW50IH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRhYlxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0Y3VycmVudE9yZGVyTGlzdCgpIHtcblx0XHRcdFx0Y29uc3Qgb3JkZXJNYXAgPSB7XG5cdFx0XHRcdFx0aGFsbDogdGhpcy5vcmRlckxpc3QsXG5cdFx0XHRcdFx0cGlja3VwOiB0aGlzLnBpY2t1cE9yZGVyTGlzdCxcblx0XHRcdFx0XHRkZWxpdmVyaW5nOiB0aGlzLmRlbGl2ZXJpbmdPcmRlckxpc3Rcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBvcmRlck1hcFt0aGlzLmFjdGl2ZVRhYl0gfHwgW11cblx0XHRcdH0sXG5cblx0XHRcdGJvZHlTdHlsZSgpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRtYXJnaW5Ub3A6IHRoaXMuaGVhZGVySGVpZ2h0ICsgJ3B4Jyxcblx0XHRcdFx0XHRoZWlnaHQ6IHRoaXMuc2Nyb2xsSGVpZ2h0ICsgJ3B4J1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdG9uUmVhZHkoKSB7XG5cdFx0XHR0aGlzLmluaXRUVFMoKSAvLyDpobXpnaLmuLLmn5PlrozmiJDliJ3lp4vljJbor63pn7Ncblx0XHR9LFxuXG5cdFx0bWV0aG9kczoge1xuXHRcdFx0Zm9ybWF0UmVtYWluVGltZShtaW51dGVzKSB7XG5cdFx0XHRcdGlmICghbWludXRlcykgcmV0dXJuIDBcblx0XHRcdFx0aWYgKG1pbnV0ZXMgPT09IDApIHtcblx0XHRcdFx0XHRyZXR1cm4gJ+mFjemAgeW3sui2heaXtidcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobWludXRlcyA+PSA2MCkge1xuXHRcdFx0XHRcdHJldHVybiAobWludXRlcyAvIDYwKS50b0ZpeGVkKDIpICsgJ+Wwj+aXtuWGhSdcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbWludXRlcyArICfliIbpkp/lhoUnXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRHb29kc1RleHQoaXRlbXMsIGl0ZW1JZCkge1xuXHRcdFx0XHRpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuICfml6AnXG5cdFx0XHRcdGNvbnN0IHRleHQgPSBpdGVtcy5tYXAoaSA9PiBgJHtpLm5hbWV9KiR7aS5xdWFudGl0eX1gKS5qb2luKCfjgIEnKVxuXHRcdFx0XHRpZiAodGV4dC5sZW5ndGggPiAyMCAmJiAhdGhpcy5leHBhbmRlZEdvb2RzSWRzLmluY2x1ZGVzKGl0ZW1JZCkpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgMjApICsgJy4uLidcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGV4dFxuXHRcdFx0fSxcblxuXHRcdFx0dG9nZ2xlR29vZHNFeHBhbmQoaWQpIHtcblx0XHRcdFx0Y29uc3QgaW5kZXggPSB0aGlzLmV4cGFuZGVkR29vZHNJZHMuaW5kZXhPZihpZClcblx0XHRcdFx0aWYgKGluZGV4ID4gLTEpIHtcblx0XHRcdFx0XHR0aGlzLmV4cGFuZGVkR29vZHNJZHMuc3BsaWNlKGluZGV4LCAxKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuZXhwYW5kZWRHb29kc0lkcy5wdXNoKGlkKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRmb3JtYXREaXN0YW5jZVBhcnRzKGRpc3RhbmNlKSB7XG5cdFx0XHRcdGlmIChkaXN0YW5jZSA9PT0gbnVsbCB8fCBkaXN0YW5jZSA9PT0gdW5kZWZpbmVkIHx8IGRpc3RhbmNlID09PSAnJykge1xuXHRcdFx0XHRcdHJldHVybiB7IHZhbHVlOiAnLS0nLCB1bml0OiAnJyB9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodHlwZW9mIGRpc3RhbmNlID09PSAnbnVtYmVyJykge1xuXHRcdFx0XHRcdGlmIChkaXN0YW5jZSA+PSAxMDAwKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4geyB2YWx1ZTogKGRpc3RhbmNlIC8gMTAwMCkudG9GaXhlZCgxKSwgdW5pdDogJ2ttJyB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB7IHZhbHVlOiBTdHJpbmcoTWF0aC5yb3VuZChkaXN0YW5jZSkpLCB1bml0OiAnbScgfVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3QgdGV4dCA9IFN0cmluZyhkaXN0YW5jZSkudHJpbSgpXG5cdFx0XHRcdGNvbnN0IG1hdGNoID0gdGV4dC5tYXRjaCgvXihbXFxkLl0rKVxccyooW2EtekEtWlxcdTRlMDAtXFx1OWZhNV0qKSQvKVxuXHRcdFx0XHRpZiAobWF0Y2gpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0dmFsdWU6IG1hdGNoWzFdLFxuXHRcdFx0XHRcdFx0dW5pdDogbWF0Y2hbMl0gfHwgJydcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4geyB2YWx1ZTogdGV4dCwgdW5pdDogJycgfVxuXHRcdFx0fSxcblxuXHRcdFx0bmF2aWdhdGVUb0FkZHJlc3MoaXRlbSwgdHlwZSkge1xuXHRcdFx0XHRsZXQgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgbmFtZSwgYWRkcmVzc1xuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ2RlcG9zaXQnKSB7XG5cdFx0XHRcdFx0bGF0aXR1ZGUgPSBpdGVtLmRlcG9zaXRMYXRcblx0XHRcdFx0XHRsb25naXR1ZGUgPSBpdGVtLmRlcG9zaXRMbmdcblx0XHRcdFx0XHRuYW1lID0gaXRlbS5kZXBvc2l0U2hvcE5hbWVcblx0XHRcdFx0XHRhZGRyZXNzID0gaXRlbS5kZXBvc2l0U2hvcEFkZHJlc3Ncblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsYXRpdHVkZSA9IGl0ZW0udGFrZUxhdFxuXHRcdFx0XHRcdGxvbmdpdHVkZSA9IGl0ZW0udGFrZUxuZ1xuXHRcdFx0XHRcdG5hbWUgPSBpdGVtLnRha2VOYW1lXG5cdFx0XHRcdFx0YWRkcmVzcyA9IGl0ZW0udGFrZUFkZHJlc3Ncblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWxhdGl0dWRlIHx8ICFsb25naXR1ZGUpIHtcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICflnLDlnYDlnZDmoIfnvLrlpLEnLCBpY29uOiAnbm9uZScgfSlcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0fVxuXHRcdFx0XHR1bmkub3BlbkxvY2F0aW9uKHtcblx0XHRcdFx0XHRsYXRpdHVkZSxcblx0XHRcdFx0XHRsb25naXR1ZGUsXG5cdFx0XHRcdFx0bmFtZSxcblx0XHRcdFx0XHRhZGRyZXNzLFxuXHRcdFx0XHRcdHN1Y2Nlc3M6ICgpID0+IHt9LFxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3QoeyB0aXRsZTogJ+aJk+W8gOWcsOWbvuWksei0pScsIGljb246ICdub25lJyB9KVxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignb3BlbkxvY2F0aW9uIGZhaWw6JywgZXJyKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cblx0XHRcdGhhbmRsZVVzZXJDbGljaygpIHtcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDogJy9wYWdlcy90ZXN0L3Rlc3QnXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Z2V0QWN0aXZlT3JkZXJDb3VudCgpIHtcblx0XHRcdFx0dGhpcy4kdS5hcGkuYWN0aXZlT3JkZXJDb3VudCgpLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5hY3RpdmVPcmRlckNvdW50ID0gcmVzLmRhdGFcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKChlcnIpID0+IHtcblx0XHRcdFx0XHR0aGlzLmFjdGl2ZU9yZGVyQ291bnQgPSBudWxsXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRoYW5kbGVHcmFiT3JkZXIoaXRlbSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhpdGVtKVxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkR3JhYk9yZGVyID0gaXRlbVxuXHRcdFx0XHR0aGlzLnNob3dHcmFiTW9kYWwgPSB0cnVlXG5cdFx0XHR9LFxuXG5cdFx0XHRjb25maXJtR3JhYk9yZGVyKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuc2VsZWN0ZWRHcmFiT3JkZXIpIHJldHVyblxuXHRcdFx0XHR0aGlzLiR1LmFwaS5ncmFiT3JkZXIoeyBvcmRlcklkOiB0aGlzLnNlbGVjdGVkR3JhYk9yZGVyLmlkIH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dHcmFiTW9kYWwgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICfmiqLljZXmiJDlip8nLCBpY29uOiAnc3VjY2VzcycgfSlcblx0XHRcdFx0XHRcdHRoaXMuaGFsbFBhZ2UgPSAxXG5cdFx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdFx0dGhpcy5vcmRlckxpc3QgPSBbXVxuXHRcdFx0XHRcdFx0dGhpcy5nZXRIYWxsT3JkZXJzKClcblx0XHRcdFx0XHRcdHRoaXMuZ2V0QWN0aXZlT3JkZXJDb3VudCgpXG5cdFx0XHRcdFx0XHR0aGlzLmdldENlbnRlckluZm8oKVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6IHJlcy5tZXNzYWdlIHx8ICfmiqLljZXlpLHotKUnLCBpY29uOiAnbm9uZScgfSlcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dHcmFiTW9kYWwgPSBmYWxzZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0aGFuZGxlQ2FuY2VsT3JkZXIoaXRlbSkge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkQ2FuY2VsT3JkZXIgPSBpdGVtXG5cdFx0XHRcdHRoaXMuJHUuYXBpLmNhbmNlbExpbWl0KCkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmNhbmNlbFJlbWFpbiA9IHJlcy5kYXRhLnJlbWFpblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5zaG93ID0gdHJ1ZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0Y29uZmlybUNhbmNlbE9yZGVyKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuc2VsZWN0ZWRDYW5jZWxPcmRlcikgcmV0dXJuXG5cdFx0XHRcdHRoaXMuJHUuYXBpLmNhbmNlbE9yZGVyKHsgb3JkZXJJZDogdGhpcy5zZWxlY3RlZENhbmNlbE9yZGVyLmlkIH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3cgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICflj5bmtojmiJDlip8nLCBpY29uOiAnc3VjY2VzcycgfSlcblx0XHRcdFx0XHRcdHRoaXMuZ2V0UGlja3VwT3JkZXJzKClcblx0XHRcdFx0XHRcdHRoaXMuZ2V0Q2VudGVySW5mbygpXG5cdFx0XHRcdFx0XHR0aGlzLmdldEFjdGl2ZU9yZGVyQ291bnQoKVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6IHJlcy5tZXNzYWdlIHx8ICflj5bmtojlpLHotKUnLCBpY29uOiAnbm9uZScgfSlcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3cgPSBmYWxzZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0aGFuZGxlQ2FsbChpdGVtKSB7XG5cdFx0XHRcdGlmIChpdGVtLmNvbnRhY3RQaG9uZSkge1xuXHRcdFx0XHRcdHVuaS5tYWtlUGhvbmVDYWxsKHtcblx0XHRcdFx0XHRcdHBob25lTnVtYmVyOiBpdGVtLmNvbnRhY3RQaG9uZVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdGhhbmRsZVNob3dQaWNrdXBDb2RlKGl0ZW0pIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFBpY2t1cE9yZGVyID0gaXRlbVxuXHRcdFx0XHR0aGlzLnNob3cxID0gdHJ1ZVxuXHRcdFx0fSxcblxuXHRcdFx0Z29Ub09yZGVyRGV0YWlsKGl0ZW0sIGluZGV4KSB7XG5cdFx0XHRcdGxldCB1cmwgPSBgL3BhZ2VzL29yZGVyLWRldGFpbC9vcmRlci1kZXRhaWw/aWQ9JHtpdGVtLmlkfWBcblx0XHRcdFx0aWYgKHRoaXMuYWN0aXZlVGFiID09PSAncGlja3VwJyB8fCB0aGlzLmFjdGl2ZVRhYiA9PT0gJ2RlbGl2ZXJpbmcnKSB7XG5cdFx0XHRcdFx0dXJsICs9IGAmaW5kZXg9JHtpbmRleCArIDF9YFxuXHRcdFx0XHR9XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHsgdXJsIH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRDZW50ZXJJbmZvKCkge1xuXHRcdFx0XHR0aGlzLiR1LmFwaS5jZW50ZXJJbmZvKCkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmFjY2VwdGluZ1N0YXR1cyA9IHJlcy5kYXRhLmFjY2VwdGluZ1N0YXR1c1xuXHRcdFx0XHRcdFx0dGhpcy5jZW50ZXJVc2VySW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0ZnVsbEltZ1VybDogcmVzLmRhdGEuZnVsbEltZ1VybCxcblx0XHRcdFx0XHRcdFx0bmFtZTogcmVzLmRhdGEubmFtZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5zdGF0cyA9IFtcblx0XHRcdFx0XHRcdFx0eyB2YWx1ZTogcmVzLmRhdGEuc2NvcmUsIGxhYmVsOiAn5pyN5Yqh5YiGJyB9LFxuXHRcdFx0XHRcdFx0XHR7IHZhbHVlOiAoKHJlcy5kYXRhLnRvZGF5Q29tbWlzc2lvbiAvIDEwMCkgfHwgMCkudG9GaXhlZCgyKSwgbGFiZWw6ICfku4rml6XpooTorqHkvaPph5EnIH0sXG5cdFx0XHRcdFx0XHRcdHsgdmFsdWU6IHJlcy5kYXRhLnRvZGF5T3JkZXJDb3VudCwgbGFiZWw6ICfku4rml6XmjqXljZUnIH1cblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRDYXRlZ29yeUxpc3REYXRhKCkge1xuXHRcdFx0XHR0aGlzLiR1LmFwaS5nZXRDYXRlZ29yeUxpc3QoeyB0eXBlOiAzIH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5jYXRlZ29yeUxpc3QgPSByZXMuZGF0YSB8fCBbXVxuXHRcdFx0XHRcdFx0dGhpcy5maWx0ZXJTZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoc2VjdGlvbi5rZXkgPT09ICdsZXZlbCcpIHtcblx0XHRcdFx0XHRcdFx0XHRzZWN0aW9uLm9wdGlvbnMgPSBbJ+S4jemZkCcsIC4uLnRoaXMuY2F0ZWdvcnlMaXN0Lm1hcChpdGVtID0+IGl0ZW0ubmFtZSldXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0bG9hZE9yZGVyc0J5VGFiKHRhYikge1xuXHRcdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHJldHVybjtcblx0XHRcdFx0aWYgKHRoaXMuYWNjZXB0aW5nU3RhdHVzID09PSAwKSByZXR1cm47XG5cdFx0XHRcdGlmICh0YWIgPT09ICdoYWxsJykge1xuXHRcdFx0XHRcdHRoaXMuaGFsbFBhZ2UgPSAxXG5cdFx0XHRcdFx0dGhpcy5oYWxsSGFzTW9yZSA9IHRydWVcblx0XHRcdFx0XHR0aGlzLm9yZGVyTGlzdCA9IFtdXG5cdFx0XHRcdFx0dGhpcy5nZXRIYWxsT3JkZXJzKClcblx0XHRcdFx0fSBlbHNlIGlmICh0YWIgPT09ICdwaWNrdXAnKSB7XG5cdFx0XHRcdFx0dGhpcy5waWNrdXBPcmRlckxpc3QgPSBbXVxuXHRcdFx0XHRcdHRoaXMuZ2V0UGlja3VwT3JkZXJzKClcblx0XHRcdFx0fSBlbHNlIGlmICh0YWIgPT09ICdkZWxpdmVyaW5nJykge1xuXHRcdFx0XHRcdHRoaXMuZGVsaXZlcmluZ09yZGVyTGlzdCA9IFtdXG5cdFx0XHRcdFx0dGhpcy5nZXREZWxpdmVyaW5nT3JkZXJzKClcblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0Z2V0SGFsbE9yZGVycygpIHtcblx0XHRcdFx0aWYgKHRoaXMuYWNjZXB0aW5nU3RhdHVzID09PSAwKSByZXR1cm47XG5cdFx0XHRcdGlmICh0aGlzLmhhbGxMb2FkaW5nIHx8ICF0aGlzLmhhbGxIYXNNb3JlKSB7XG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5oYWxsTG9hZGluZyA9IHRydWVcblxuXHRcdFx0XHRsZXQgZGlzdGFuY2UgPSBudWxsXG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdGVkRmlsdGVycy5kaXN0YW5jZSAhPT0gJ+S4jemZkCcpIHtcblx0XHRcdFx0XHRjb25zdCBkaXN0YW5jZVRleHQgPSB0aGlzLnNlbGVjdGVkRmlsdGVycy5kaXN0YW5jZVxuXHRcdFx0XHRcdGlmIChkaXN0YW5jZVRleHQuaW5jbHVkZXMoJ2ttJykpIHtcblx0XHRcdFx0XHRcdGRpc3RhbmNlID0gcGFyc2VJbnQoZGlzdGFuY2VUZXh0KSAqIDEwMDBcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0ZGlzdGFuY2UgPSBwYXJzZUludChkaXN0YW5jZVRleHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3Qgc29ydFR5cGVNYXAgPSB7XG5cdFx0XHRcdFx0J+e7vOWQiOaOkuW6jyc6IDEsXG5cdFx0XHRcdFx0J+i3neemu+acgOi/kSc6IDJcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBzb3J0VHlwZSA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnNvcnQgIT09ICfkuI3pmZAnID8gKHNvcnRUeXBlTWFwW3RoaXMuc2VsZWN0ZWRGaWx0ZXJzLnNvcnRdIHx8IG51bGwpIDogbnVsbFxuXG5cdFx0XHRcdGxldCBncmFkZUlkID0gbnVsbFxuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZEZpbHRlcnMubGV2ZWwgIT09ICfkuI3pmZAnKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnlMaXN0LmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmxldmVsKVxuXHRcdFx0XHRcdGlmIChzZWxlY3RlZENhdGVnb3J5KSB7XG5cdFx0XHRcdFx0XHRncmFkZUlkID0gc2VsZWN0ZWRDYXRlZ29yeS5pZFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmjqXljZXlpKfljoU6JywgeyBkaXN0YW5jZSwgZ3JhZGVJZCwgc29ydFR5cGUgfSlcblx0XHRcdFx0dGhpcy4kdS5hcGkuZ3JhYk9yZGVySGFsbCh7XG5cdFx0XHRcdFx0Y2FwYWNpdHk6IHRoaXMuaGFsbFBhZ2VTaXplLFxuXHRcdFx0XHRcdHBhZ2U6IHRoaXMuaGFsbFBhZ2UsXG5cdFx0XHRcdFx0bW9kZWw6IHtcblx0XHRcdFx0XHRcdGRpc3RhbmNlOiBkaXN0YW5jZSxcblx0XHRcdFx0XHRcdGdyYWRlSWQ6IGdyYWRlSWQsXG5cdFx0XHRcdFx0XHRzb3J0VHlwZTogc29ydFR5cGVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn5o6l5Y2V5aSn5Y6FJywgcmVzKVxuXHRcdFx0XHRcdHRoaXMuaGFsbExvYWRpbmcgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBsaXN0ID0gcmVzLmRhdGEucmVjb3JkcyB8fCBbXVxuXHRcdFx0XHRcdFx0dGhpcy5vcmRlckxpc3QgPSB0aGlzLmhhbGxQYWdlID09PSAxID8gbGlzdCA6IHRoaXMub3JkZXJMaXN0LmNvbmNhdChsaXN0KVxuXHRcdFx0XHRcdFx0dGhpcy5oYWxsSGFzTW9yZSA9IGxpc3QubGVuZ3RoID49IHRoaXMuaGFsbFBhZ2VTaXplXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaCgoZXJyKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5oYWxsTG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRQaWNrdXBPcmRlcnMoKSB7XG5cdFx0XHRcdGlmICh0aGlzLmFjY2VwdGluZ1N0YXR1cyA9PT0gMCkgcmV0dXJuO1xuXHRcdFx0XHRpZiAodGhpcy5waWNrdXBMb2FkaW5nKSByZXR1cm5cblx0XHRcdFx0dGhpcy5waWNrdXBMb2FkaW5nID0gdHJ1ZVxuXHRcdFx0XHR0aGlzLiR1LmFwaS5hY3RpdmVPcmRlcnMoeyBzdGF0dXM6IDMgfSkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCflvoXlj5botKc6JywgcmVzKVxuXHRcdFx0XHRcdHRoaXMucGlja3VwTG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdHRoaXMucGlja3VwT3JkZXJMaXN0ID0gcmVzLmRhdGEucmVjb3JkcyB8fCByZXMuZGF0YSB8fCBbXVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goKGVycikgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGlja3VwTG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXREZWxpdmVyaW5nT3JkZXJzKCkge1xuXHRcdFx0XHRpZiAodGhpcy5hY2NlcHRpbmdTdGF0dXMgPT09IDApIHJldHVybjtcblx0XHRcdFx0aWYgKHRoaXMuZGVsaXZlcmluZ0xvYWRpbmcpIHJldHVyblxuXHRcdFx0XHR0aGlzLmRlbGl2ZXJpbmdMb2FkaW5nID0gdHJ1ZVxuXHRcdFx0XHR0aGlzLiR1LmFwaS5hY3RpdmVPcmRlcnMoeyBzdGF0dXM6IDQgfSkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfphY3pgIHkuK06JywgcmVzKVxuXHRcdFx0XHRcdHRoaXMuZGVsaXZlcmluZ0xvYWRpbmcgPSBmYWxzZVxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmRlbGl2ZXJpbmdPcmRlckxpc3QgPSByZXMuZGF0YSB8fCBbXVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goKGVycikgPT4ge1xuXHRcdFx0XHRcdHRoaXMuZGVsaXZlcmluZ0xvYWRpbmcgPSBmYWxzZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0b3BlblN0YXR1c1BpY2tlcigpIHtcblx0XHRcdFx0dGhpcy5zaG93U3RhdHVzUGlja2VyID0gdHJ1ZVxuXHRcdFx0fSxcblxuXHRcdFx0Y29uZmlybVN0YXR1cyhlKSB7XG5cdFx0XHRcdHRoaXMuc2hvd1N0YXR1c1BpY2tlciA9IGZhbHNlXG5cdFx0XHRcdGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBlLnZhbHVlWzBdXG5cdFx0XHRcdHRoaXMuJHUuYXBpLnVwZGF0ZUFjY2VwdGluZ1N0YXR1cyh7IHN0YXR1czogc2VsZWN0ZWRWYWx1ZS52YWx1ZSB9KS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdHRoaXMuYWNjZXB0aW5nU3RhdHVzID0gc2VsZWN0ZWRWYWx1ZS52YWx1ZVxuXHRcdFx0XHRcdFx0dGhpcy5nZXRDZW50ZXJJbmZvKClcblx0XHRcdFx0XHRcdGlmICh0aGlzLmFjY2VwdGluZ1N0YXR1cyA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9yZGVyTGlzdCA9IFtdXG5cdFx0XHRcdFx0XHRcdHRoaXMucGlja3VwT3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHRcdFx0dGhpcy5kZWxpdmVyaW5nT3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ3BpY2t1cCcpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldFBpY2t1cE9yZGVycygpXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5hY3RpdmVUYWIgPT09ICdkZWxpdmVyaW5nJykge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZ2V0RGVsaXZlcmluZ09yZGVycygpXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5oYWxsUGFnZSA9IDFcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHRcdHRoaXMub3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldEhhbGxPcmRlcnMoKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0dG9Ecml2ZXJDZXJ0aWZpY2F0aW9uKCkge1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2RyaXZlci1jZXJ0aWZpY2F0aW9uL2RyaXZlci1jZXJ0aWZpY2F0aW9uJ1xuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0dG9nZ2xlRmlsdGVyUG9wdXAoc2hvdykge1xuXHRcdFx0XHR0aGlzLnNob3dGaWx0ZXJQb3B1cCA9IHNob3dcblx0XHRcdH0sXG5cblx0XHRcdHNlbGVjdEZpbHRlcihrZXksIG9wdGlvbikge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkRmlsdGVycyA9IHtcblx0XHRcdFx0XHQuLi50aGlzLnNlbGVjdGVkRmlsdGVycyxcblx0XHRcdFx0XHRba2V5XTogb3B0aW9uXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdHJlc2V0RmlsdGVycygpIHtcblx0XHRcdFx0dGhpcy5zaG93RmlsdGVyUG9wdXAgPSBmYWxzZVxuXHRcdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHJldHVybjtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEZpbHRlcnMgPSB7XG5cdFx0XHRcdFx0c29ydDogJ+e7vOWQiOaOkuW6jycsXG5cdFx0XHRcdFx0bGV2ZWw6ICfkuI3pmZAnLFxuXHRcdFx0XHRcdGRpc3RhbmNlOiAn5LiN6ZmQJ1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ2hhbGwnKSB7XG5cdFx0XHRcdFx0dGhpcy5oYWxsUGFnZSA9IDFcblx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdHRoaXMub3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHR0aGlzLmdldEhhbGxPcmRlcnMoKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRjb25maXJtRmlsdGVycygpIHtcblx0XHRcdFx0dGhpcy5zaG93RmlsdGVyUG9wdXAgPSBmYWxzZVxuXHRcdFx0XHRpZiAodGhpcy51c2VySW5mby5hdWRpdFN0YXR1cyA9PT0gOTkpIHtcblx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ2hhbGwnKSB7XG5cdFx0XHRcdFx0dGhpcy5oYWxsUGFnZSA9IDFcblx0XHRcdFx0XHR0aGlzLmhhbGxIYXNNb3JlID0gdHJ1ZVxuXHRcdFx0XHRcdHRoaXMub3JkZXJMaXN0ID0gW11cblx0XHRcdFx0XHR0aGlzLmdldEhhbGxPcmRlcnMoKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRpbml0VFRTKCkge1xuXHRcdFx0XHRpZiAodW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGxhdGZvcm0gIT09ICdhbmRyb2lkJykge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfku4XmlK/mjIHlronljZMnKVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHQvLyDlr7zlhaXlronljZPljp/nlJ/nsbtcblx0XHRcdFx0XHRjb25zdCBUZXh0VG9TcGVlY2ggPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2gnKVxuXHRcdFx0XHRcdGNvbnN0IExvY2FsZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnamF2YS51dGlsLkxvY2FsZScpXG5cblx0XHRcdFx0XHQvLyDliJvlu7pUVFNcblx0XHRcdFx0XHR0aGlzLnR0cyA9IG5ldyBUZXh0VG9TcGVlY2gocGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKSwge1xuXHRcdFx0XHRcdFx0b25Jbml0OiAoc3RhdHVzKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChzdGF0dXMgPT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIOiuvue9ruS4reaWh1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMudHRzLnNldExhbmd1YWdlKExvY2FsZS5DSElOQSlcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K+t6Z+z5Yid5aeL5YyW5oiQ5YqfJylcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn5Yid5aeL5YyW5aSx6LSlJywgZSlcblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0c3BlYWsodGV4dCkge1xuXHRcdFx0XHRpZiAoIXRoaXMudHRzKSB7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivremfs+acquWHhuWkh+WlvScsXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHQvLyDlronljZPljp/nlJ/mkq3miqXvvIhRVUVVRV9GTFVTSCA9IOeri+WNs+aSreaKpe+8jOaJk+aWreS4iuS4gOadoe+8iVxuXHRcdFx0XHRcdHRoaXMudHRzLnNwZWFrKHRleHQsIDAsIG51bGwpXG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmkq3miqXlpLHotKUnLCBlcnIpXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdHN0b3BTcGVhaygpIHtcblx0XHRcdFx0aWYgKHRoaXMudHRzKSB0aGlzLnR0cy5zdG9wKClcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0b25VbmxvYWQoKSB7XG5cdFx0XHRpZiAodGhpcy50dHMpIHtcblx0XHRcdFx0dGhpcy50dHMuc3RvcCgpXG5cdFx0XHRcdHRoaXMudHRzLnNodXRkb3duKClcblx0XHRcdH1cblx0XHR9XG5cdH1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG5cdC5oYWxsLXBhZ2Uge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdGJhY2tncm91bmQ6ICNmNWY2Zjg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC5xcmNvZGUge1xuXHRcdFx0cGFkZGluZzogMzZycHggMzBycHg7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0LnFyY29kZS10aXRsZSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRcdGltYWdlIHtcblx0XHRcdFx0XHR3aWR0aDogMjhycHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAyOHJweDtcblx0XHRcdFx0fVxuXHRcdFx0XHR0ZXh0IHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMzJycHg7XG5cdFx0XHRcdFx0Y29sb3I6ICMxMTExMTE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5xcmNvZGUtaW1hZ2Uge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDYwcnB4O1xuXHRcdFx0XHRpbWFnZSB7XG5cdFx0XHRcdFx0d2lkdGg6IDQwMHJweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDQwMHJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LnFyY29kZS1idG4ge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiA4OHJweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDg4cnB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMxMDZFRkE7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwcnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0Zm9udC1zaXplOiAzMnJweDtcblx0XHRcdFx0Y29sb3I6ICNGRkZGRkY7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDY4cnB4O1xuXG5cdFx0XHRcdCYtLWhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjkyO1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycnB4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5waG90by1kZWxpdmVyIHtcblx0XHRcdHBhZGRpbmc6IDMycnB4IDI4cnB4IGNhbGMoZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pICsgMjhycHgpO1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyMHJweDtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMHJweDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdCZfX2hlYWRlciB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdH1cblxuXHRcdFx0Jl9fdGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6IDM0cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRjb2xvcjogIzExMTExMTtcblx0XHRcdH1cblxuXHRcdFx0Jl9fY2xvc2UsXG5cdFx0XHQmX19jbG9zZS1wbGFjZWhvbGRlciB7XG5cdFx0XHRcdHdpZHRoOiAzNnJweDtcblx0XHRcdFx0aGVpZ2h0OiAzNnJweDtcblx0XHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHR9XG5cblx0XHRcdCZfX2Nsb3NlLXBsYWNlaG9sZGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdH1cblxuXHRcdFx0Jl9fc2VjdGlvbiB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDU2cnB4O1xuXG5cdFx0XHRcdCYtLXJlbWFyayB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogNDZycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Jl9fbGFiZWwtcm93IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0fVxuXG5cdFx0XHQmX19sYWJlbCxcblx0XHRcdCZfX3JlbWFyay10aXRsZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdGNvbG9yOiAjMjMyNjJkO1xuXHRcdFx0fVxuXG5cdFx0XHQmX19yZXF1aXJlZCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA0cnB4O1xuXHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRjb2xvcjogI2ZmM2IzMDtcblx0XHRcdH1cblxuXHRcdFx0Jl9faGludCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMnJweDtcblx0XHRcdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRcdFx0Y29sb3I6ICNhOGFkYjc7XG5cdFx0XHR9XG5cblx0XHRcdCZfX3Bob3RvcyB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGdhcDogMThycHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDMwcnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmX191cGxvYWQtY2FyZCxcblx0XHRcdCZfX3ByZXZpZXctY2FyZCB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0d2lkdGg6IDE2MHJweDtcblx0XHRcdFx0aGVpZ2h0OiAxNjBycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDhycHg7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR9XG5cblx0XHRcdCZfX3VwbG9hZC1jYXJkIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdGJvcmRlcjogMnJweCBkYXNoZWQgI2M5Y2VkNjtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdH1cblxuXHRcdFx0Jl9fdXBsb2FkLWljb24ge1xuXHRcdFx0XHR3aWR0aDogNTJycHg7XG5cdFx0XHRcdGhlaWdodDogNTJycHg7XG5cdFx0XHR9XG5cblx0XHRcdCZfX3VwbG9hZC10ZXh0IHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTRycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjZycHg7XG5cdFx0XHRcdGNvbG9yOiAjOWRhM2FlO1xuXHRcdFx0fVxuXG5cdFx0XHQmX19wcmV2aWV3LWNhcmQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZWVmMWY1O1xuXHRcdFx0fVxuXG5cdFx0XHQmX19wcmV2aWV3LWltYWdlIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0Jl9fcHJldmlldy1tYXNrIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0aGVpZ2h0OiA0OHJweDtcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ2KTtcblx0XHRcdH1cblxuXHRcdFx0Jl9fcHJldmlldy1kZWxldGUge1xuXHRcdFx0XHRmb250LXNpemU6IDI2cnB4O1xuXHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdH1cblxuXHRcdFx0Jl9fdGV4dGFyZWEge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAxMTBycHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDI0cnB4O1xuXHRcdFx0XHRwYWRkaW5nOiAyOHJweCAyNHJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTJycHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNmN2Y4ZmE7XG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzBycHg7XG5cdFx0XHRcdGNvbG9yOiAjMmMzMTM5O1xuXHRcdFx0fVxuXG5cdFx0XHQmX19zdWJtaXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiA4OHJweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDg4cnB4O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA4NnJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBycHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMxMDZlZmE7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzJycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYtLWhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjkyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9faGVhZGVyIHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdHotaW5kZXg6IDEwO1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzI0NzNmNSAwJSwgIzFlNmZlZiAxMDAlKTtcblx0XHRcdGJveC1zaGFkb3c6IDAgMTJycHggMjRycHggcmdiYSgzNiwgMTE1LCAyNDUsIDAuMDgpO1xuXHRcdH1cblxuXHRcdCZfX3VzZXItcm93IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0cGFkZGluZzogMjBycHggMjRycHggMDtcblx0XHR9XG5cblx0XHQmX191c2VyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0Z2FwOiAxNHJweDtcblx0XHR9XG5cblx0XHQmX19hdmF0YXIge1xuXHRcdFx0d2lkdGg6IDQycnB4O1xuXHRcdFx0aGVpZ2h0OiA0MnJweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdGJvcmRlcjogMnJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5cdFx0fVxuXG5cdFx0Jl9fbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdH1cblxuXHRcdCZfX3N0YXR1cyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDEwcnB4IDE2cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogOTk5cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcblx0XHRcdGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHJweCk7XG5cdFx0fVxuXG5cdFx0Jl9fc3RhdHVzLWRvdCB7XG5cdFx0XHR3aWR0aDogMTRycHg7XG5cdFx0XHRoZWlnaHQ6IDE0cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0YmFja2dyb3VuZDogIzMyZDc0Yjtcblx0XHRcdG1hcmdpbi1yaWdodDogMTBycHg7XG5cblx0XHRcdCYtLW9mZmxpbmUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmYzYjMwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX3N0YXR1cy10ZXh0LFxuXHRcdCZfX3N0YXR1cy1hcnJvdyB7XG5cdFx0XHRmb250LXNpemU6IDI0cnB4O1xuXHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0fVxuXG5cdFx0Jl9fc3RhdHVzLWFycm93IHtcblx0XHRcdGZvbnQtc2l6ZTogMThycHg7XG5cdFx0XHRtYXJnaW4tbGVmdDogOHJweDtcblx0XHR9XG5cblx0XHQmX19zdGF0cyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0cGFkZGluZzogMzRycHggMzZycHggMjhycHg7XG5cdFx0fVxuXG5cdFx0Jl9fc3RhdC1pdGVtIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdG1pbi13aWR0aDogMTYwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3N0YXQtdmFsdWUge1xuXHRcdFx0Zm9udC1zaXplOiA1MnJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdH1cblxuXHRcdCZfX3N0YXQtbGFiZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogMTJycHg7XG5cdFx0XHRmb250LXNpemU6IDI2cnB4O1xuXHRcdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG5cdFx0fVxuXG5cdFx0Jl9fdGFicyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGhlaWdodDogODhycHg7XG5cdFx0XHRwYWRkaW5nOiAwIDE4cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHR9XG5cblx0XHQmX190YWIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDAgMThycHg7XG5cdFx0XHRmb250LXNpemU6IDMycnB4O1xuXHRcdFx0Y29sb3I6ICM4YjkwOTk7XG5cdFx0fVxuXG5cdFx0Jl9fdGFiLS1hY3RpdmUge1xuXHRcdFx0Y29sb3I6ICMyNDI5MzM7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdH1cblxuXHRcdCZfX3RhYi10ZXh0IHtcblx0XHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdH1cblxuXHRcdCZfX3RhYi1jb3VudCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogNnJweDtcblx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRjb2xvcjogIzhiOTA5OTtcblx0XHR9XG5cblx0XHQmX190YWItbGluZSB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAxOHJweDtcblx0XHRcdHJpZ2h0OiAxOHJweDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGhlaWdodDogNXJweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDk5OXJweDtcblx0XHRcdGJhY2tncm91bmQ6ICMyNDczZjU7XG5cdFx0fVxuXG5cdFx0Jl9fZmlsdGVyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRnYXA6IDZycHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHJweDtcblx0XHR9XG5cblx0XHQmX19maWx0ZXItdGV4dCB7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICM5YWExYWI7XG5cblx0XHRcdCYtLWFjdGl2ZSB7XG5cdFx0XHRcdGNvbG9yOiAjMTA2ZWZhO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmX19maWx0ZXItaWNvbiB7XG5cdFx0XHR3aWR0aDogMjhycHg7XG5cdFx0XHRoZWlnaHQ6IDI4cnB4O1xuXHRcdH1cblxuXHRcdCZfX2JvZHkge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNGNkY5RkY7XG5cdFx0fVxuXG5cdFx0Jl9fbGlzdCB7XG5cdFx0XHRwYWRkaW5nOiAzMHJweDtcblx0XHR9XG5cblx0XHQmX192ZXJpZmllZCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0aW1hZ2Uge1xuXHRcdFx0XHR3aWR0aDogMzIwcnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDMyMHJweDtcblx0XHRcdH1cblx0XHRcdGJ1dHRvbiB7XG5cdFx0XHRcdHdpZHRoOiAxNjBycHg7XG5cdFx0XHRcdGhlaWdodDogNjRycHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA2NHJweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJvcmRlcjogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMTA2RUZBO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MHJweDtcblx0XHRcdFx0bWFyZ2luLXRvcDogNDBycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdGNvbG9yOiAjRkZGRkZGO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2VtcHR5IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHR9XG5cblx0XHQmX19lbXB0eS1pY29uIHtcblx0XHRcdHdpZHRoOiAzMjBycHg7XG5cdFx0XHRoZWlnaHQ6IDMyMHJweDtcblx0XHR9XG5cdH1cblxuXHQuZmlsdGVyLXBvcHVwIHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR6LWluZGV4OiAyMDtcblxuXHRcdCZfX3BhbmVsIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDI4cnB4O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI4cnB4O1xuXHRcdH1cblxuXHRcdCZfX2NvbnRlbnQge1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0XHRwYWRkaW5nOiAyMnJweCAxOHJweCAwO1xuXHRcdH1cblxuXHRcdCZfX3NlY3Rpb24ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjhycHg7XG5cdFx0fVxuXG5cdFx0Jl9fdGl0bGUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcblx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICMyNTJiMzM7XG5cdFx0fVxuXG5cdFx0Jl9fb3B0aW9ucyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0Z2FwOiAxOHJweCAyMHJweDtcblx0XHR9XG5cblx0XHQmX19vcHRpb24ge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdHdpZHRoOiAyMjZycHg7XG5cdFx0XHRoZWlnaHQ6IDc0cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBycHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuXHRcdFx0Ym9yZGVyOiAycnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRcdFx0Ji0tYWN0aXZlIHtcblx0XHRcdFx0YmFja2dyb3VuZDogI2VkZjVmZjtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjM2Q4Y2ZmO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX29wdGlvbi10ZXh0IHtcblx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRjb2xvcjogIzRiNTE1YTtcblxuXHRcdFx0LmZpbHRlci1wb3B1cF9fb3B0aW9uLS1hY3RpdmUgJiB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdGNvbG9yOiAjMjY3OGZmO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2FjdGlvbnMge1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0Z2FwOiAyNHJweDtcblx0XHRcdHBhZGRpbmc6IDhycHggMThycHggMjZycHg7XG5cdFx0fVxuXG5cdFx0Jl9fYnV0dG9uIHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRoZWlnaHQ6IDkycnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDkycnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogOTk5cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAzNHJweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdH1cblxuXHRcdFx0Ji0tcmVzZXQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZWJlYmViO1xuXHRcdFx0XHRjb2xvcjogIzc3N2Q4Njtcblx0XHRcdH1cblxuXHRcdFx0Ji0tY29uZmlybSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMyZDgyZmYgMCUsICMyMDZlZjYgMTAwJSk7XG5cdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0fVxuXG5cdFx0XHQmLS1ob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuOTI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lm9yZGVyLWNhcmQge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xuXHRcdHBhZGRpbmc6IDIwcnB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDI0cnB4O1xuXHRcdGJhY2tncm91bmQ6ICNmZmZmZmY7XG5cdFx0Ym94LXNoYWRvdzogMCAxMHJweCAyNHJweCByZ2JhKDI2LCA0NCwgODEsIDAuMDQpO1xuXG5cdFx0Jl9faGVhZCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0fVxuXG5cdFx0Jl9fdGltZS1tYWluIHtcblx0XHRcdGZvbnQtc2l6ZTogNDJycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICNmZjhkMjc7XG5cdFx0fVxuXG5cdFx0Jl9fdGltZS1zdWIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDhycHg7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICNhM2E4YjI7XG5cdFx0fVxuXG5cdFx0Jl9fcHJpY2Utd3JhcCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRnYXA6IDhycHg7XG5cblx0XHRcdCYtLXNlcmlhbC1vbmx5IHtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0XHRtaW4td2lkdGg6IDU0cnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX3NlcmlhbCB7XG5cdFx0XHRmb250LXNpemU6IDM4cnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Y29sb3I6ICMyYzMxMzk7XG5cdFx0fVxuXG5cdFx0Jl9fcHJpY2Uge1xuXHRcdFx0Zm9udC1zaXplOiA0NHJweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRjb2xvcjogI2ZmM2IzMDtcblx0XHR9XG5cblx0XHQmX19tZXRhIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0Z2FwOiAxNnJweDtcblx0XHRcdG1hcmdpbi10b3A6IDEycnB4O1xuXHRcdH1cblxuXHRcdCZfX2V4dHJhIHtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRcdGNvbG9yOiAjYTBhNWFmO1xuXHRcdH1cblxuXHRcdCZfX3RhZ3Mge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRnYXA6IDEwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3RhZy13cmFwIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblxuXHRcdCZfX3RhZy1pY29uIHtcblx0XHRcdHdpZHRoOiAxMDhycHg7XG5cdFx0XHRoZWlnaHQ6IDQwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3RhZy1pbWcge1xuXHRcdFx0d2lkdGg6IDEwOHJweDtcblx0XHRcdGhlaWdodDogNDBycHg7XG5cdFx0fVxuXG5cdFx0Jl9fdGFnIHtcblx0XHRcdHBhZGRpbmc6IDRycHggMTBycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA4cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAyMnJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0Ym9yZGVyOiAxcnB4IHNvbGlkICMyNDczZjU7XG5cdFx0XHRjb2xvcjogIzI0NzNmNTtcblxuXHRcdFx0Ji0tb3JhbmdlIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMzE5ZGVnLCAjRUU5RDBFIDAlLCAjRkY0RTRFIDEwMCUpO1xuXHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdH1cblxuXHRcdFx0Ji0tcmVkIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjZmY2YzU3O1xuXHRcdFx0XHRjb2xvcjogI2ZmNmM1Nztcblx0XHRcdH1cblxuXHRcdFx0Ji0tYmx1ZS1saWdodCB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogIzc0YTlmZjtcblx0XHRcdFx0Y29sb3I6ICM3NGE5ZmY7XG5cdFx0XHR9XG5cblx0XHRcdCYtLWJsdWUge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDE2LDE3OCwyNTAsMC4wOCk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xuXHRcdFx0XHRib3JkZXI6IDJycHggc29saWQgIzEwNkVGQTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0Zm9udC1zaXplOiAyMnJweDtcblx0XHRcdFx0Y29sb3I6ICMxMDZFRkE7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fcm91dGUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdG1hcmdpbi10b3A6IDIwcnB4O1xuXHRcdH1cblxuXHRcdCZfX3JvdXRlLXNpZGUge1xuXHRcdFx0d2lkdGg6IDcwcnB4O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRwYWRkaW5nOiAxNHJweCAwIDhycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAyNnJweDtcblx0XHRcdGJhY2tncm91bmQ6ICNmNmY3Zjk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcnB4O1xuXHRcdH1cblxuXHRcdCZfX2Rpc3RhbmNlLWJsb2NrIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0XHQmLS10b3Age1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA2cnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmLS1ib3R0b20ge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA2cnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2Rpc3RhbmNlLXZhbHVlIHtcblx0XHRcdGZvbnQtc2l6ZTogMjZycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICMzMzMzMzM7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0Jl9fZGlzdGFuY2UtdW5pdCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA2cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAxOHJweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRjb2xvcjogIzhjOTM5Zjtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG5cdFx0fVxuXG5cdFx0Jl9fbGluZSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRtaW4taGVpZ2h0OiA2MnJweDtcblx0XHRcdG1hcmdpbjogOHJweCAwO1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyNicgdmlld0JveD0nMCAwIDIwIDI2JyUzRSUzQ3BhdGggZmlsbD0nJTIzOEM5MzlGJyBkPSdNMTAgMEM1LjAzIDAgMSAzLjk5IDEgOC45MmMwIDYuMzEgNy4yOCAxMi44NyA4LjA3IDEzLjU3YTEuNCAxLjQgMCAwIDAgMS44NiAwQzExLjcyIDIxLjc5IDE5IDE1LjIzIDE5IDguOTIgMTkgMy45OSAxNC45NyAwIDEwIDBabTAgMTIuMjRhMy4zMiAzLjMyIDAgMSAxIDAtNi42NCAzLjMyIDMuMzIgMCAwIDEgMCA2LjY0WicvJTNFJTNDL3N2ZyUzRVwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjBycHggMjZycHg7XG5cblx0XHRcdCY6OmJlZm9yZSxcblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcdHdpZHRoOiAycnB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA5OTlycHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNjZmQ0ZGM7XG5cdFx0XHR9XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0aGVpZ2h0OiAxOHJweDtcblx0XHRcdH1cblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdGhlaWdodDogMjRycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fcm91dGUtbWFpbiB7XG5cdFx0XHRmbGV4OiAxO1xuXHRcdH1cblxuXHRcdCZfX3JvdXRlLWl0ZW0ge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdFx0Z2FwOiAxNnJweDtcblxuXHRcdFx0Ji0tZGVzdGluYXRpb24ge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyMHJweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmX19yb3V0ZS10ZXh0cyB7XG5cdFx0XHRmbGV4OiAxO1xuXHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdH1cblxuXHRcdCZfX3JvdXRlLXRpdGxlIHtcblx0XHRcdHdpZHRoOiA1MDBycHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogNDBycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICMyZDMxMzk7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR9XG5cblx0XHQmX19yb3V0ZS1kZXNjIHtcblx0XHRcdHdpZHRoOiA1MDBycHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbi10b3A6IDhycHg7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICM5ZWE0YWU7XG5cdFx0XHRsaW5lLWhlaWdodDogMS40O1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR9XG5cblx0XHQmX19uYXYge1xuXHRcdFx0d2lkdGg6IDQ4cnB4O1xuXHRcdFx0aGVpZ2h0OiA0OHJweDtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdH1cblxuXHRcdCZfX2dvb2RzIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0aGVpZ2h0OiA3MHJweDtcblx0XHRcdHBhZGRpbmc6IDAgMjBycHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAyMHJweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDE2cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2Y0ZjVmNztcblx0XHR9XG5cblx0XHQmX19nb29kcy10ZXh0IHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0Y29sb3I6ICM3YTgxOGQ7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cblxuXHRcdCZfX2dvb2RzLWFycm93IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMnJweDtcblx0XHRcdGZvbnQtc2l6ZTogMjRycHg7XG5cdFx0XHRjb2xvcjogI2E0YTliMTtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuXG5cdFx0XHQmLS1leHBhbmRlZCB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fYnV0dG9uIHtcblx0XHRcdG1hcmdpbi10b3A6IDI0cnB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDg4cnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDg4cnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogOTk5cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzJiN2ZmZiAwJSwgIzFmNmZmMyAxMDAlKTtcblx0XHRcdGZvbnQtc2l6ZTogMzRycHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdH1cblxuXHRcdFx0Ji0taG92ZXIge1xuXHRcdFx0XHRvcGFjaXR5OiAwLjkyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2FjdGlvbnMge1xuXHRcdFx0bWFyZ2luLXRvcDogMjRycHg7XG5cblx0XHRcdCYtLXBpY2t1cCxcblx0XHRcdCYtLWRlbGl2ZXJpbmcge1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRnYXA6IDIycnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2ljb24tYWN0aW9ucyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGdhcDogMjBycHg7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblxuXHRcdFx0Ji0tc2luZ2xlIHtcblx0XHRcdFx0Z2FwOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCZfX2ljb24tYWN0aW9uIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0d2lkdGg6IDc0cnB4O1xuXHRcdH1cblxuXHRcdCZfX2FjdGlvbi1pY29uIHtcblx0XHRcdHdpZHRoOiA0MHJweDtcblx0XHRcdGhlaWdodDogNDBycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA4cnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2Y3ZjhmYTtcblx0XHR9XG5cblx0XHQmX19hY3Rpb24tdGV4dCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA4cnB4O1xuXHRcdFx0Zm9udC1zaXplOiAyNnJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Y29sb3I6ICM1YjYxNmI7XG5cdFx0fVxuXG5cdFx0Jl9fYnV0dG9uLS1jb2RlIHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxuPC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///91\n");
 
 /***/ }),
 /* 92 */
@@ -18770,7 +18770,7 @@
 /***/ (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 _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 12);\nvar _jsMd = _interopRequireDefault(__webpack_require__(/*! js-md5 */ 178));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n  data: function data() {\n    return {\n      locationTimer: null,\n      jpushModule: null,\n      tts: null\n    };\n  },\n  computed: _objectSpread({}, (0, _vuex.mapState)(['userInfo', 'token'])),\n  watch: {\n    token: function token(newVal) {\n      if (newVal) {\n        this.checkAndStartLocationPolling();\n        this.bindJPushAlias();\n      } else {\n        this.stopLocationPolling();\n        this.deleteJPushAlias();\n      }\n    }\n  },\n  onLaunch: function onLaunch() {\n    this.initTTS();\n    this.initJPush();\n    this.checkAndStartLocationPolling();\n    this.checkAppUpdate();\n  },\n  onShow: function onShow() {\n    __f__(\"log\", 'App Show', \" at App.vue:33\");\n    // this.checkAndStartLocationPolling()\n  },\n\n  onHide: function onHide() {\n    __f__(\"log\", 'App Hide', \" at App.vue:37\");\n    // this.stopLocationPolling()\n  },\n  onUnload: function onUnload() {\n    if (this.tts) {\n      this.tts.stop();\n      this.tts.shutdown();\n    }\n    this.stopLocationPolling();\n  },\n  methods: {\n    initTTS: function initTTS() {\n      var _this = this;\n      if (uni.getSystemInfoSync().platform !== 'android') {\n        __f__(\"log\", '浠呮敮鎸佸畨鍗�', \" at App.vue:50\");\n        return;\n      }\n      try {\n        // 瀵煎叆瀹夊崜鍘熺敓绫籠n        var TextToSpeech = plus.android.importClass('android.speech.tts.TextToSpeech');\n        var Locale = plus.android.importClass('java.util.Locale');\n\n        // 鍒涘缓TTS\n        this.tts = new TextToSpeech(plus.android.runtimeMainActivity(), {\n          onInit: function onInit(status) {\n            if (status == 0) {\n              // 璁剧疆涓枃\n              _this.tts.setLanguage(Locale.CHINA);\n              __f__(\"log\", '璇煶鍒濆鍖栨垚鍔�', \" at App.vue:65\");\n            }\n          }\n        });\n      } catch (e) {\n        __f__(\"log\", '鍒濆鍖栧け璐�', e, \" at App.vue:70\");\n      }\n    },\n    speak: function speak(text) {\n      if (!this.tts) {\n        uni.showToast({\n          title: '璇煶鏈噯澶囧ソ',\n          icon: 'none'\n        });\n        return;\n      }\n      try {\n        // 瀹夊崜鍘熺敓鎾姤锛圦UEUE_FLUSH = 绔嬪嵆鎾姤锛屾墦鏂笂涓�鏉★級\n        this.tts.speak(text, 0, null);\n      } catch (err) {\n        __f__(\"log\", '鎾姤澶辫触', err, \" at App.vue:86\");\n      }\n    },\n    initJPush: function initJPush() {\n      __f__(\"log\", '寮�濮嬪垵濮嬪寲鏋佸厜鎺ㄩ��...', \" at App.vue:90\");\n      var jpushModule = null;\n      try {\n        jpushModule = uni.requireNativePlugin('JG-JPush');\n      } catch (e) {\n        __f__(\"error\", '鍔犺浇鏋佸厜鎺ㄩ�佹彃浠跺け璐�:', e, \" at App.vue:96\");\n        return;\n      }\n      if (!jpushModule) {\n        __f__(\"error\", '鏋佸厜鎺ㄩ�佹彃浠舵湭鎵惧埌', \" at App.vue:100\");\n        return;\n      }\n      this.jpushModule = jpushModule;\n      __f__(\"log\", '鏋佸厜鎺ㄩ�佹彃浠跺姞杞芥垚鍔燂紝妯″潡:', (0, _typeof2.default)(jpushModule), \" at App.vue:104\");\n      __f__(\"log\", '妯″潡鏂规硶:', Object.keys(jpushModule), \" at App.vue:105\");\n      if (typeof jpushModule.initJPushService === 'function') {\n        jpushModule.initJPushService();\n        __f__(\"log\", '鏋佸厜鎺ㄩ�乮nitJPushService璋冪敤鎴愬姛', \" at App.vue:109\");\n      } else {\n        __f__(\"error\", 'jpushModule.initJPushService 涓嶆槸鍑芥暟锛屽綋鍓嶆柟娉�:', (0, _typeof2.default)(jpushModule.initJPushService), \" at App.vue:111\");\n        return;\n      }\n      if (typeof jpushModule.setLoggerEnable === 'function') {\n        jpushModule.setLoggerEnable(true);\n      }\n      __f__(\"log\", '鏋佸厜鎺ㄩ�佸垵濮嬪寲瀹屾垚锛岃缃洃鍚櫒...', \" at App.vue:118\");\n      this.setupJPushListeners();\n      this.getRegistrationID();\n    },\n    setupJPushListeners: function setupJPushListeners() {\n      var that = this;\n      if (!this.jpushModule) return;\n\n      // 鐩戝惉杩炴帴鐘舵�乗n      this.jpushModule.addConnectEventListener(function (result) {\n        __f__(\"log\", '鏋佸厜杩炴帴鐘舵��:', result.connectEnable, \" at App.vue:130\");\n      });\n\n      // 鐩戝惉閫氱煡\n      this.jpushModule.addNotificationListener(function (result) {\n        __f__(\"log\", '鏀跺埌閫氱煡:', JSON.stringify(result), \" at App.vue:135\");\n        that.speak(result.content || '');\n        var notificationEventType = result.notificationEventType;\n        // notificationOpened = 鐐瑰嚮閫氱煡\n        if (notificationEventType === 'notificationOpened') {\n          __f__(\"log\", '閫氱煡琚偣鍑�', result.extras, \" at App.vue:140\");\n          var extras = result.extras ? result.extras : {};\n          if (extras.type === 'new_order' && extras.orderId) {\n            uni.navigateTo({\n              url: '/pages/order-detail/order-detail?id=' + extras.orderId\n            });\n          } else {\n            uni.switchTab({\n              url: '/pages/index/index'\n            });\n          }\n        }\n      });\n    },\n    getRegistrationID: function getRegistrationID() {\n      var _this2 = this;\n      if (!this.jpushModule) {\n        __f__(\"log\", 'JPush妯″潡鏈垵濮嬪寲锛屾棤娉曡幏鍙朢egistrationID', \" at App.vue:157\");\n        return;\n      }\n      __f__(\"log\", '寮�濮嬭幏鍙朖Push RegistrationID...', \" at App.vue:160\");\n      this.jpushModule.getRegistrationID(function (result) {\n        __f__(\"log\", 'JPush getRegistrationID result:', JSON.stringify(result), \" at App.vue:162\");\n        if (result && result.registerID) {\n          __f__(\"log\", 'JPush RegistrationID鑾峰彇鎴愬姛:', result.registerID, \" at App.vue:164\");\n          uni.setStorageSync('jpush_registration_id', result.registerID);\n        } else {\n          __f__(\"log\", 'JPush RegistrationID鑾峰彇澶辫触锛屽皾璇曢噸鏂拌幏鍙�', \" at App.vue:167\");\n          setTimeout(function () {\n            _this2.getRegistrationID();\n          }, 2000);\n        }\n      });\n    },\n    bindJPushAlias: function bindJPushAlias() {\n      var _this3 = this,\n        _this$$store$state$us;\n      if (!this.token) return;\n      if (!this.jpushModule) {\n        __f__(\"log\", 'JPush鏈垵濮嬪寲锛屽欢杩熻缃埆鍚�', \" at App.vue:178\");\n        setTimeout(function () {\n          _this3.bindJPushAlias();\n        }, 1000);\n        return;\n      }\n      // 浼樺厛浠巗tore鑾峰彇锛屽鏋滀负绌哄垯浠庢湰鍦板瓨鍌ㄨ幏鍙朶n      var telephone = ((_this$$store$state$us = this.$store.state.userInfo) === null || _this$$store$state$us === void 0 ? void 0 : _this$$store$state$us.telephone) || '';\n      if (!telephone) {\n        var _uni$getStorageSync;\n        telephone = ((_uni$getStorageSync = uni.getStorageSync('userInfo')) === null || _uni$getStorageSync === void 0 ? void 0 : _uni$getStorageSync.telephone) || '';\n      }\n      if (!telephone) {\n        __f__(\"log\", '鐢ㄦ埛鎵嬫満鍙蜂负绌猴紝寤惰繜鑾峰彇...', \" at App.vue:190\");\n        setTimeout(function () {\n          _this3.bindJPushAlias();\n        }, 2000);\n        return;\n      }\n      var alias = (0, _jsMd.default)(telephone);\n      __f__(\"log\", '璁剧疆鏋佸厜鍒悕:', alias, \" at App.vue:197\");\n      this.jpushModule.setAlias({\n        alias: alias,\n        sequence: Date.now()\n      }, function (result) {\n        __f__(\"log\", '璁剧疆鍒悕缁撴灉:', JSON.stringify(result), \" at App.vue:202\");\n        if (result && (result.code === 0 || result.errCode === 0)) {\n          __f__(\"log\", '璁剧疆鏋佸厜鍒悕鎴愬姛', \" at App.vue:204\");\n        } else {\n          __f__(\"log\", '璁剧疆鏋佸厜鍒悕澶辫触', \" at App.vue:206\");\n        }\n      });\n    },\n    deleteJPushAlias: function deleteJPushAlias() {\n      if (!this.jpushModule) return;\n      this.jpushModule.deleteAlias({\n        sequence: Date.now()\n      }, function (result) {\n        __f__(\"log\", '鍒犻櫎鏋佸厜鍒悕:', JSON.stringify(result), \" at App.vue:216\");\n      });\n    },\n    checkAndStartLocationPolling: function checkAndStartLocationPolling() {\n      var _this4 = this;\n      if (!this.token) return;\n      uni.getLocation({\n        type: 'gcj02',\n        success: function success(res) {\n          __f__(\"log\", '鑾峰彇瀹氫綅鏉冮檺鎴愬姛锛屽紑濮嬪畾鏃舵洿鏂颁綅缃�', \" at App.vue:225\");\n          _this4.startLocationPolling();\n        },\n        fail: function fail(err) {\n          __f__(\"log\", '鑾峰彇瀹氫綅鏉冮檺澶辫触:', err.errMsg, \" at App.vue:229\");\n          uni.showToast({\n            title: '闇�瑕佸畾浣嶆潈闄愭墠鑳芥洿鏂颁綅缃�',\n            icon: 'none'\n          });\n        }\n      });\n    },\n    startLocationPolling: function startLocationPolling() {\n      var _this5 = this;\n      this.stopLocationPolling();\n      this.updateLocation();\n      this.locationTimer = setInterval(function () {\n        _this5.updateLocation();\n      }, 60000);\n    },\n    stopLocationPolling: function stopLocationPolling() {\n      if (this.locationTimer) {\n        clearInterval(this.locationTimer);\n        this.locationTimer = null;\n      }\n    },\n    updateLocation: function updateLocation() {\n      if (!this.token) return;\n      var that = this;\n      uni.getLocation({\n        type: 'gcj02',\n        success: function success(res) {\n          __f__(\"log\", '瀹氭椂鏇存柊浣嶇疆:', res.latitude, res.longitude, \" at App.vue:259\");\n          that.$u.api.updateLocation({\n            latitude: res.latitude,\n            longitude: res.longitude\n          }).then(function (res) {\n            if (res.code === 200) {\n              __f__(\"log\", '鏇存柊浣嶇疆鎴愬姛', \" at App.vue:265\");\n            } else {\n              __f__(\"log\", '鏇存柊浣嶇疆澶辫触', \" at App.vue:267\");\n            }\n          }).catch(function (err) {\n            __f__(\"log\", '鏇存柊浣嶇疆璇锋眰澶辫触:', err, \" at App.vue:270\");\n          });\n        },\n        fail: function fail(err) {\n          __f__(\"log\", '鑾峰彇浣嶇疆澶辫触:', err.errMsg, \" at App.vue:274\");\n        }\n      });\n    },\n    checkAppUpdate: function checkAppUpdate() {\n      var _this6 = this;\n      plus.runtime.getProperty(plus.runtime.appid, function (inf) {\n        var currentVersion = inf.versionCode;\n        _this6.$u.api.getApiVersion({\n          type: 0\n        }).then(function (res) {\n          if (res.code === 200 && res.data) {\n            var latestVersion = res.data.versionNum;\n            if (latestVersion > currentVersion) {\n              if (res.data.isForce === 1) {\n                _this6.showForceUpdateDialog(res.data.fileUrl, res.data.versionNum);\n              } else {\n                _this6.showOptionalUpdateDialog(res.data.fileUrl, res.data.versionNum);\n              }\n            }\n          }\n        });\n      });\n    },\n    showForceUpdateDialog: function showForceUpdateDialog(fileUrl, version) {\n      uni.showModal({\n        title: '鐗堟湰鏇存柊',\n        content: \"\\u68C0\\u6D4B\\u5230\\u65B0\\u7248\\u672C\".concat(version, \"\\uFF0C\\u8BF7\\u66F4\\u65B0\\u540E\\u7EE7\\u7EED\\u4F7F\\u7528\"),\n        showCancel: false,\n        confirmText: '绔嬪嵆鏇存柊',\n        success: function success() {\n          plus.runtime.openURL(fileUrl);\n        }\n      });\n    },\n    showOptionalUpdateDialog: function showOptionalUpdateDialog(fileUrl, version) {\n      uni.showModal({\n        title: '鐗堟湰鏇存柊',\n        content: \"\\u68C0\\u6D4B\\u5230\\u65B0\\u7248\\u672C\".concat(version, \"\\uFF0C\\u662F\\u5426\\u66F4\\u65B0\\uFF1F\"),\n        confirmText: '鏇存柊',\n        cancelText: '绋嶅悗',\n        success: function success(res) {\n          if (res.confirm) {\n            plus.runtime.openURL(fileUrl);\n          }\n        }\n      });\n    }\n  }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 92)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibG9jYXRpb25UaW1lciIsImpwdXNoTW9kdWxlIiwidHRzIiwiY29tcHV0ZWQiLCJ3YXRjaCIsInRva2VuIiwib25MYXVuY2giLCJvblNob3ciLCJvbkhpZGUiLCJvblVubG9hZCIsIm1ldGhvZHMiLCJpbml0VFRTIiwib25Jbml0Iiwic3BlYWsiLCJ1bmkiLCJ0aXRsZSIsImljb24iLCJpbml0SlB1c2giLCJzZXR1cEpQdXNoTGlzdGVuZXJzIiwidGhhdCIsInVybCIsImdldFJlZ2lzdHJhdGlvbklEIiwic2V0VGltZW91dCIsImJpbmRKUHVzaEFsaWFzIiwidGVsZXBob25lIiwiYWxpYXMiLCJzZXF1ZW5jZSIsImRlbGV0ZUpQdXNoQWxpYXMiLCJjaGVja0FuZFN0YXJ0TG9jYXRpb25Qb2xsaW5nIiwidHlwZSIsInN1Y2Nlc3MiLCJmYWlsIiwic3RhcnRMb2NhdGlvblBvbGxpbmciLCJzdG9wTG9jYXRpb25Qb2xsaW5nIiwiY2xlYXJJbnRlcnZhbCIsInVwZGF0ZUxvY2F0aW9uIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJjaGVja0FwcFVwZGF0ZSIsInBsdXMiLCJzaG93Rm9yY2VVcGRhdGVEaWFsb2ciLCJjb250ZW50Iiwic2hvd0NhbmNlbCIsImNvbmZpcm1UZXh0Iiwic2hvd09wdGlvbmFsVXBkYXRlRGlhbG9nIiwiY2FuY2VsVGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQSxlQUNBO0VBQ0FBO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDLDRCQUNBLDJDQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTs7RUFDQUM7SUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFBQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO01BRUE7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTtVQUNBQztZQUNBO2NBQ0E7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBQztVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUVBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFFQTtNQUNBO1FBQ0FoQjtNQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFFQTtRQUNBQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7TUFFQTtRQUNBQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBRUE7SUFFQWlCO01BQ0E7TUFDQTs7TUFFQTtNQUNBO1FBQ0E7TUFDQTs7TUFFQTtNQUNBO1FBQ0E7UUFDQUM7UUFDQTtRQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQUw7Y0FDQU07WUFDQTtVQUNBO1lBQ0FOO2NBQ0FNO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUFBO01BQ0E7UUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBO1VBQ0FQO1FBQ0E7VUFDQTtVQUNBUTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtRQUFBO01BQ0E7TUFDQTtRQUNBO1FBQ0FEO1VBQ0E7UUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQTtRQUNBRTtNQUNBO01BQ0E7UUFDQTtRQUNBRjtVQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FHO1FBQ0FDO01BQ0E7UUFDQTtRQUNBO1VBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBRDtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFFO01BQUE7TUFDQTtNQUNBZDtRQUNBZTtRQUNBQztVQUNBO1VBQ0E7UUFDQTtRQUNBQztVQUNBO1VBQ0FqQjtZQUNBQztZQUNBQztVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFnQjtNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7UUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO01BQ0FyQjtRQUNBZTtRQUNBQztVQUNBO1VBQ0FYO1lBQ0FpQjtZQUNBQztVQUNBO1lBQ0E7Y0FDQTtZQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FOO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQU87TUFBQTtNQUNBQztRQUNBO1FBQ0E7VUFBQVY7UUFBQTtVQUNBO1lBQ0E7WUFDQTtjQUNBO2dCQUNBO2NBQ0E7Z0JBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQVc7TUFDQTFCO1FBQ0FDO1FBQ0EwQjtRQUNBQztRQUNBQztRQUNBYjtVQUNBUztRQUNBO01BQ0E7SUFDQTtJQUVBSztNQUNBOUI7UUFDQUM7UUFDQTBCO1FBQ0FFO1FBQ0FFO1FBQ0FmO1VBQ0E7WUFDQVM7VUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxNzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0PlxuXHRpbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnXG5cdGltcG9ydCBtZDUgZnJvbSAnanMtbWQ1Jztcblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRsb2NhdGlvblRpbWVyOiBudWxsLFxuXHRcdFx0XHRqcHVzaE1vZHVsZTogbnVsbCxcblx0XHRcdFx0dHRzOiBudWxsXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRjb21wdXRlZDoge1xuXHRcdFx0Li4ubWFwU3RhdGUoWyd1c2VySW5mbycsICd0b2tlbiddKVxuXHRcdH0sXG5cdFx0d2F0Y2g6IHtcblx0XHRcdHRva2VuKG5ld1ZhbCkge1xuXHRcdFx0XHRpZiAobmV3VmFsKSB7XG5cdFx0XHRcdFx0dGhpcy5jaGVja0FuZFN0YXJ0TG9jYXRpb25Qb2xsaW5nKClcblx0XHRcdFx0XHR0aGlzLmJpbmRKUHVzaEFsaWFzKClcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnN0b3BMb2NhdGlvblBvbGxpbmcoKVxuXHRcdFx0XHRcdHRoaXMuZGVsZXRlSlB1c2hBbGlhcygpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uTGF1bmNoOiBmdW5jdGlvbigpIHtcblx0XHRcdHRoaXMuaW5pdFRUUygpXG5cdFx0XHR0aGlzLmluaXRKUHVzaCgpXG5cdFx0XHR0aGlzLmNoZWNrQW5kU3RhcnRMb2NhdGlvblBvbGxpbmcoKVxuXHRcdFx0dGhpcy5jaGVja0FwcFVwZGF0ZSgpXG5cdFx0fSxcblx0XHRvblNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0XHRcdC8vIHRoaXMuY2hlY2tBbmRTdGFydExvY2F0aW9uUG9sbGluZygpXG5cdFx0fSxcblx0XHRvbkhpZGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29uc29sZS5sb2coJ0FwcCBIaWRlJylcblx0XHRcdC8vIHRoaXMuc3RvcExvY2F0aW9uUG9sbGluZygpXG5cdFx0fSxcblx0XHRvblVubG9hZCgpIHtcblx0XHRcdGlmICh0aGlzLnR0cykge1xuXHRcdFx0XHR0aGlzLnR0cy5zdG9wKClcblx0XHRcdFx0dGhpcy50dHMuc2h1dGRvd24oKVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5zdG9wTG9jYXRpb25Qb2xsaW5nKClcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdGluaXRUVFMoKSB7XG5cdFx0XHRcdGlmICh1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS5wbGF0Zm9ybSAhPT0gJ2FuZHJvaWQnKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S7heaUr+aMgeWuieWNkycpXG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdC8vIOWvvOWFpeWuieWNk+WOn+eUn+exu1xuXHRcdFx0XHRcdGNvbnN0IFRleHRUb1NwZWVjaCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaCcpXG5cdFx0XHRcdFx0Y29uc3QgTG9jYWxlID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdqYXZhLnV0aWwuTG9jYWxlJylcblxuXHRcdFx0XHRcdC8vIOWIm+W7ulRUU1xuXHRcdFx0XHRcdHRoaXMudHRzID0gbmV3IFRleHRUb1NwZWVjaChwbHVzLmFuZHJvaWQucnVudGltZU1haW5BY3Rpdml0eSgpLCB7XG5cdFx0XHRcdFx0XHRvbkluaXQ6IChzdGF0dXMpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHN0YXR1cyA9PSAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0Ly8g6K6+572u5Lit5paHXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy50dHMuc2V0TGFuZ3VhZ2UoTG9jYWxlLkNISU5BKVxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfor63pn7PliJ3lp4vljJbmiJDlip8nKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfliJ3lp4vljJblpLHotKUnLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0c3BlYWsodGV4dCkge1xuXHRcdFx0XHRpZiAoIXRoaXMudHRzKSB7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivremfs+acquWHhuWkh+WlvScsXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHQvLyDlronljZPljp/nlJ/mkq3miqXvvIhRVUVVRV9GTFVTSCA9IOeri+WNs+aSreaKpe+8jOaJk+aWreS4iuS4gOadoe+8iVxuXHRcdFx0XHRcdHRoaXMudHRzLnNwZWFrKHRleHQsIDAsIG51bGwpXG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmkq3miqXlpLHotKUnLCBlcnIpXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRpbml0SlB1c2goKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCflvIDlp4vliJ3lp4vljJbmnoHlhYnmjqjpgIEuLi4nKVxuXHRcdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcblx0XHRcdFx0bGV0IGpwdXNoTW9kdWxlID0gbnVsbFxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGpwdXNoTW9kdWxlID0gdW5pLnJlcXVpcmVOYXRpdmVQbHVnaW4oJ0pHLUpQdXNoJylcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+WKoOi9veaegeWFieaOqOmAgeaPkuS7tuWksei0pTonLCBlKVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghanB1c2hNb2R1bGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCfmnoHlhYnmjqjpgIHmj5Lku7bmnKrmib7liLAnKVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuanB1c2hNb2R1bGUgPSBqcHVzaE1vZHVsZVxuXHRcdFx0XHRjb25zb2xlLmxvZygn5p6B5YWJ5o6o6YCB5o+S5Lu25Yqg6L295oiQ5Yqf77yM5qih5Z2XOicsIHR5cGVvZiBqcHVzaE1vZHVsZSlcblx0XHRcdFx0Y29uc29sZS5sb2coJ+aooeWdl+aWueazlTonLCBPYmplY3Qua2V5cyhqcHVzaE1vZHVsZSkpXG5cblx0XHRcdFx0aWYgKHR5cGVvZiBqcHVzaE1vZHVsZS5pbml0SlB1c2hTZXJ2aWNlID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0anB1c2hNb2R1bGUuaW5pdEpQdXNoU2VydmljZSgpXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+aegeWFieaOqOmAgWluaXRKUHVzaFNlcnZpY2XosIPnlKjmiJDlip8nKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ2pwdXNoTW9kdWxlLmluaXRKUHVzaFNlcnZpY2Ug5LiN5piv5Ye95pWw77yM5b2T5YmN5pa55rOVOicsIHR5cGVvZiBqcHVzaE1vZHVsZS5pbml0SlB1c2hTZXJ2aWNlKVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHR5cGVvZiBqcHVzaE1vZHVsZS5zZXRMb2dnZXJFbmFibGUgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRqcHVzaE1vZHVsZS5zZXRMb2dnZXJFbmFibGUodHJ1ZSlcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zb2xlLmxvZygn5p6B5YWJ5o6o6YCB5Yid5aeL5YyW5a6M5oiQ77yM6K6+572u55uR5ZCs5ZmoLi4uJylcblx0XHRcdFx0dGhpcy5zZXR1cEpQdXNoTGlzdGVuZXJzKClcblx0XHRcdFx0dGhpcy5nZXRSZWdpc3RyYXRpb25JRCgpXG5cdFx0XHRcdC8vICNlbmRpZlxuXHRcdFx0fSxcblxuXHRcdFx0c2V0dXBKUHVzaExpc3RlbmVycygpIHtcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzXG5cdFx0XHRcdGlmICghdGhpcy5qcHVzaE1vZHVsZSkgcmV0dXJuXG5cblx0XHRcdFx0Ly8g55uR5ZCs6L+e5o6l54q25oCBXG5cdFx0XHRcdHRoaXMuanB1c2hNb2R1bGUuYWRkQ29ubmVjdEV2ZW50TGlzdGVuZXIoKHJlc3VsdCkgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmnoHlhYnov57mjqXnirbmgIE6JywgcmVzdWx0LmNvbm5lY3RFbmFibGUpXG5cdFx0XHRcdH0pXG5cblx0XHRcdFx0Ly8g55uR5ZCs6YCa55+lXG5cdFx0XHRcdHRoaXMuanB1c2hNb2R1bGUuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoKHJlc3VsdCkgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmlLbliLDpgJrnn6U6JywgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSlcblx0XHRcdFx0XHR0aGF0LnNwZWFrKHJlc3VsdC5jb250ZW50IHx8ICcnKVxuXHRcdFx0XHRcdGNvbnN0IG5vdGlmaWNhdGlvbkV2ZW50VHlwZSA9IHJlc3VsdC5ub3RpZmljYXRpb25FdmVudFR5cGVcblx0XHRcdFx0XHQvLyBub3RpZmljYXRpb25PcGVuZWQgPSDngrnlh7vpgJrnn6Vcblx0XHRcdFx0XHRpZiAobm90aWZpY2F0aW9uRXZlbnRUeXBlID09PSAnbm90aWZpY2F0aW9uT3BlbmVkJykge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+mAmuefpeiiq+eCueWHuycsIHJlc3VsdC5leHRyYXMpXG5cdFx0XHRcdFx0XHRjb25zdCBleHRyYXMgPSByZXN1bHQuZXh0cmFzID8gcmVzdWx0LmV4dHJhcyA6IHt9XG5cdFx0XHRcdFx0XHRpZiAoZXh0cmFzLnR5cGUgPT09ICduZXdfb3JkZXInICYmIGV4dHJhcy5vcmRlcklkKSB7XG5cdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHRcdFx0XHR1cmw6ICcvcGFnZXMvb3JkZXItZGV0YWlsL29yZGVyLWRldGFpbD9pZD0nICsgZXh0cmFzLm9yZGVySWRcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHVuaS5zd2l0Y2hUYWIoe1xuXHRcdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9pbmRleC9pbmRleCdcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRnZXRSZWdpc3RyYXRpb25JRCgpIHtcblx0XHRcdFx0aWYgKCF0aGlzLmpwdXNoTW9kdWxlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ0pQdXNo5qih5Z2X5pyq5Yid5aeL5YyW77yM5peg5rOV6I635Y+WUmVnaXN0cmF0aW9uSUQnKVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnNvbGUubG9nKCflvIDlp4vojrflj5ZKUHVzaCBSZWdpc3RyYXRpb25JRC4uLicpXG5cdFx0XHRcdHRoaXMuanB1c2hNb2R1bGUuZ2V0UmVnaXN0cmF0aW9uSUQoKHJlc3VsdCkgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdKUHVzaCBnZXRSZWdpc3RyYXRpb25JRCByZXN1bHQ6JywgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSlcblx0XHRcdFx0XHRpZiAocmVzdWx0ICYmIHJlc3VsdC5yZWdpc3RlcklEKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnSlB1c2ggUmVnaXN0cmF0aW9uSUTojrflj5bmiJDlip86JywgcmVzdWx0LnJlZ2lzdGVySUQpXG5cdFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2pwdXNoX3JlZ2lzdHJhdGlvbl9pZCcsIHJlc3VsdC5yZWdpc3RlcklEKVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnSlB1c2ggUmVnaXN0cmF0aW9uSUTojrflj5blpLHotKXvvIzlsJ3or5Xph43mlrDojrflj5YnKVxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZ2V0UmVnaXN0cmF0aW9uSUQoKVxuXHRcdFx0XHRcdFx0fSwgMjAwMClcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRiaW5kSlB1c2hBbGlhcygpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnRva2VuKSByZXR1cm5cblx0XHRcdFx0aWYgKCF0aGlzLmpwdXNoTW9kdWxlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ0pQdXNo5pyq5Yid5aeL5YyW77yM5bu26L+f6K6+572u5Yir5ZCNJylcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuYmluZEpQdXNoQWxpYXMoKVxuXHRcdFx0XHRcdH0sIDEwMDApXG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8g5LyY5YWI5LuOc3RvcmXojrflj5bvvIzlpoLmnpzkuLrnqbrliJnku47mnKzlnLDlrZjlgqjojrflj5Zcblx0XHRcdFx0bGV0IHRlbGVwaG9uZSA9IHRoaXMuJHN0b3JlLnN0YXRlLnVzZXJJbmZvPy50ZWxlcGhvbmUgfHwgJydcblx0XHRcdFx0aWYgKCF0ZWxlcGhvbmUpIHtcblx0XHRcdFx0XHR0ZWxlcGhvbmUgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJyk/LnRlbGVwaG9uZSB8fCAnJ1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghdGVsZXBob25lKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+eUqOaIt+aJi+acuuWPt+S4uuepuu+8jOW7tui/n+iOt+WPli4uLicpXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLmJpbmRKUHVzaEFsaWFzKClcblx0XHRcdFx0XHR9LCAyMDAwKVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGFsaWFzID0gbWQ1KHRlbGVwaG9uZSlcblx0XHRcdFx0Y29uc29sZS5sb2coJ+iuvue9ruaegeWFieWIq+WQjTonLCBhbGlhcylcblx0XHRcdFx0dGhpcy5qcHVzaE1vZHVsZS5zZXRBbGlhcyh7XG5cdFx0XHRcdFx0YWxpYXM6IGFsaWFzLFxuXHRcdFx0XHRcdHNlcXVlbmNlOiBEYXRlLm5vdygpXG5cdFx0XHRcdH0sIChyZXN1bHQpID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K6+572u5Yir5ZCN57uT5p6cOicsIEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpXG5cdFx0XHRcdFx0aWYgKHJlc3VsdCAmJiAocmVzdWx0LmNvZGUgPT09IDAgfHwgcmVzdWx0LmVyckNvZGUgPT09IDApKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K6+572u5p6B5YWJ5Yir5ZCN5oiQ5YqfJylcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iuvue9ruaegeWFieWIq+WQjeWksei0pScpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdFx0ZGVsZXRlSlB1c2hBbGlhcygpIHtcblx0XHRcdFx0aWYgKCF0aGlzLmpwdXNoTW9kdWxlKSByZXR1cm5cblx0XHRcdFx0dGhpcy5qcHVzaE1vZHVsZS5kZWxldGVBbGlhcyh7XG5cdFx0XHRcdFx0c2VxdWVuY2U6IERhdGUubm93KClcblx0XHRcdFx0fSwgKHJlc3VsdCkgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfliKDpmaTmnoHlhYnliKvlkI06JywgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSlcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cblx0XHRcdGNoZWNrQW5kU3RhcnRMb2NhdGlvblBvbGxpbmcoKSB7XG5cdFx0XHRcdGlmICghdGhpcy50b2tlbikgcmV0dXJuXG5cdFx0XHRcdHVuaS5nZXRMb2NhdGlvbih7XG5cdFx0XHRcdFx0dHlwZTogJ2djajAyJyxcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6I635Y+W5a6a5L2N5p2D6ZmQ5oiQ5Yqf77yM5byA5aeL5a6a5pe25pu05paw5L2N572uJylcblx0XHRcdFx0XHRcdHRoaXMuc3RhcnRMb2NhdGlvblBvbGxpbmcoKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPluWumuS9jeadg+mZkOWksei0pTonLCBlcnIuZXJyTXNnKVxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdHRpdGxlOiAn6ZyA6KaB5a6a5L2N5p2D6ZmQ5omN6IO95pu05paw5L2N572uJyxcblx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cblx0XHRcdHN0YXJ0TG9jYXRpb25Qb2xsaW5nKCkge1xuXHRcdFx0XHR0aGlzLnN0b3BMb2NhdGlvblBvbGxpbmcoKVxuXHRcdFx0XHR0aGlzLnVwZGF0ZUxvY2F0aW9uKClcblx0XHRcdFx0dGhpcy5sb2NhdGlvblRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlTG9jYXRpb24oKVxuXHRcdFx0XHR9LCA2MDAwMClcblx0XHRcdH0sXG5cblx0XHRcdHN0b3BMb2NhdGlvblBvbGxpbmcoKSB7XG5cdFx0XHRcdGlmICh0aGlzLmxvY2F0aW9uVGltZXIpIHtcblx0XHRcdFx0XHRjbGVhckludGVydmFsKHRoaXMubG9jYXRpb25UaW1lcilcblx0XHRcdFx0XHR0aGlzLmxvY2F0aW9uVGltZXIgPSBudWxsXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdHVwZGF0ZUxvY2F0aW9uKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMudG9rZW4pIHJldHVyblxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XG5cdFx0XHRcdHVuaS5nZXRMb2NhdGlvbih7XG5cdFx0XHRcdFx0dHlwZTogJ2djajAyJyxcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5a6a5pe25pu05paw5L2N572uOicsIHJlcy5sYXRpdHVkZSwgcmVzLmxvbmdpdHVkZSlcblx0XHRcdFx0XHRcdHRoYXQuJHUuYXBpLnVwZGF0ZUxvY2F0aW9uKHtcblx0XHRcdFx0XHRcdFx0bGF0aXR1ZGU6IHJlcy5sYXRpdHVkZSxcblx0XHRcdFx0XHRcdFx0bG9uZ2l0dWRlOiByZXMubG9uZ2l0dWRlXG5cdFx0XHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+abtOaWsOS9jee9ruaIkOWKnycpXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+abtOaWsOS9jee9ruWksei0pScpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmm7TmlrDkvY3nva7or7fmsYLlpLHotKU6JywgZXJyKVxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfojrflj5bkvY3nva7lpLHotKU6JywgZXJyLmVyck1zZylcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRjaGVja0FwcFVwZGF0ZSgpIHtcblx0XHRcdFx0cGx1cy5ydW50aW1lLmdldFByb3BlcnR5KHBsdXMucnVudGltZS5hcHBpZCwgKGluZikgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gaW5mLnZlcnNpb25Db2RlXG5cdFx0XHRcdFx0dGhpcy4kdS5hcGkuZ2V0QXBpVmVyc2lvbih7IHR5cGU6IDAgfSkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDAgJiYgcmVzLmRhdGEpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbGF0ZXN0VmVyc2lvbiA9IHJlcy5kYXRhLnZlcnNpb25OdW1cblx0XHRcdFx0XHRcdFx0aWYgKGxhdGVzdFZlcnNpb24gPiBjdXJyZW50VmVyc2lvbikge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YS5pc0ZvcmNlID09PSAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3dGb3JjZVVwZGF0ZURpYWxvZyhyZXMuZGF0YS5maWxlVXJsLCByZXMuZGF0YS52ZXJzaW9uTnVtKVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3dPcHRpb25hbFVwZGF0ZURpYWxvZyhyZXMuZGF0YS5maWxlVXJsLCByZXMuZGF0YS52ZXJzaW9uTnVtKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXG5cdFx0XHRzaG93Rm9yY2VVcGRhdGVEaWFsb2coZmlsZVVybCwgdmVyc2lvbikge1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHtcblx0XHRcdFx0XHR0aXRsZTogJ+eJiOacrOabtOaWsCcsXG5cdFx0XHRcdFx0Y29udGVudDogYOajgOa1i+WIsOaWsOeJiOacrCR7dmVyc2lvbn3vvIzor7fmm7TmlrDlkI7nu6fnu63kvb/nlKhgLFxuXHRcdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlLFxuXHRcdFx0XHRcdGNvbmZpcm1UZXh0OiAn56uL5Y2z5pu05pawJyxcblx0XHRcdFx0XHRzdWNjZXNzOiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUub3BlblVSTChmaWxlVXJsKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cblx0XHRcdHNob3dPcHRpb25hbFVwZGF0ZURpYWxvZyhmaWxlVXJsLCB2ZXJzaW9uKSB7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xuXHRcdFx0XHRcdHRpdGxlOiAn54mI5pys5pu05pawJyxcblx0XHRcdFx0XHRjb250ZW50OiBg5qOA5rWL5Yiw5paw54mI5pysJHt2ZXJzaW9ufe+8jOaYr+WQpuabtOaWsO+8n2AsXG5cdFx0XHRcdFx0Y29uZmlybVRleHQ6ICfmm7TmlrAnLFxuXHRcdFx0XHRcdGNhbmNlbFRleHQ6ICfnqI3lkI4nLFxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcblx0XHRcdFx0XHRcdGlmIChyZXMuY29uZmlybSkge1xuXHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUub3BlblVSTChmaWxlVXJsKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH1cblx0XHR9XG5cdH1cbjwvc2NyaXB0PlxuXG48c3R5bGU+XG5cdHBhZ2Uge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNmY4ZmM7XG5cdH1cblx0dW5pLW1wLXNoYXJlIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///177\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 _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 12);\nvar _jsMd = _interopRequireDefault(__webpack_require__(/*! js-md5 */ 178));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n  data: function data() {\n    return {\n      locationTimer: null,\n      jpushModule: null,\n      tts: null\n    };\n  },\n  computed: _objectSpread({}, (0, _vuex.mapState)(['userInfo', 'token'])),\n  watch: {\n    token: function token(newVal) {\n      if (newVal) {\n        this.checkAndStartLocationPolling();\n        this.bindJPushAlias();\n      } else {\n        this.stopLocationPolling();\n        this.deleteJPushAlias();\n      }\n    }\n  },\n  onLaunch: function onLaunch() {\n    this.initTTS();\n    this.initJPush();\n    this.checkAndStartLocationPolling();\n    this.checkAppUpdate();\n  },\n  onShow: function onShow() {\n    __f__(\"log\", 'App Show', \" at App.vue:33\");\n    // this.checkAndStartLocationPolling()\n  },\n\n  onHide: function onHide() {\n    __f__(\"log\", 'App Hide', \" at App.vue:37\");\n    // this.stopLocationPolling()\n  },\n  onUnload: function onUnload() {\n    if (this.tts) {\n      this.tts.stop();\n      this.tts.shutdown();\n    }\n    this.stopLocationPolling();\n  },\n  methods: {\n    initTTS: function initTTS() {\n      var _this = this;\n      if (uni.getSystemInfoSync().platform !== 'android') {\n        __f__(\"log\", '浠呮敮鎸佸畨鍗�', \" at App.vue:50\");\n        return;\n      }\n      try {\n        // 瀵煎叆瀹夊崜鍘熺敓绫籠n        var TextToSpeech = plus.android.importClass('android.speech.tts.TextToSpeech');\n        var Locale = plus.android.importClass('java.util.Locale');\n\n        // 鍒涘缓TTS\n        this.tts = new TextToSpeech(plus.android.runtimeMainActivity(), {\n          onInit: function onInit(status) {\n            if (status == 0) {\n              // 璁剧疆涓枃\n              _this.tts.setLanguage(Locale.CHINA);\n              __f__(\"log\", '璇煶鍒濆鍖栨垚鍔�', \" at App.vue:65\");\n            }\n          }\n        });\n      } catch (e) {\n        __f__(\"log\", '鍒濆鍖栧け璐�', e, \" at App.vue:70\");\n      }\n    },\n    speak: function speak(text) {\n      if (!this.tts) {\n        uni.showToast({\n          title: '璇煶鏈噯澶囧ソ',\n          icon: 'none'\n        });\n        return;\n      }\n      try {\n        // 瀹夊崜鍘熺敓鎾姤锛圦UEUE_FLUSH = 绔嬪嵆鎾姤锛屾墦鏂笂涓�鏉★級\n        this.tts.speak(text, 0, null);\n      } catch (err) {\n        __f__(\"log\", '鎾姤澶辫触', err, \" at App.vue:86\");\n      }\n    },\n    initJPush: function initJPush() {\n      __f__(\"log\", '寮�濮嬪垵濮嬪寲鏋佸厜鎺ㄩ��...', \" at App.vue:90\");\n      var jpushModule = null;\n      try {\n        jpushModule = uni.requireNativePlugin('JG-JPush');\n      } catch (e) {\n        __f__(\"error\", '鍔犺浇鏋佸厜鎺ㄩ�佹彃浠跺け璐�:', e, \" at App.vue:96\");\n        return;\n      }\n      if (!jpushModule) {\n        __f__(\"error\", '鏋佸厜鎺ㄩ�佹彃浠舵湭鎵惧埌', \" at App.vue:100\");\n        return;\n      }\n      this.jpushModule = jpushModule;\n      __f__(\"log\", '鏋佸厜鎺ㄩ�佹彃浠跺姞杞芥垚鍔燂紝妯″潡:', (0, _typeof2.default)(jpushModule), \" at App.vue:104\");\n      __f__(\"log\", '妯″潡鏂规硶:', Object.keys(jpushModule), \" at App.vue:105\");\n      if (typeof jpushModule.initJPushService === 'function') {\n        jpushModule.initJPushService();\n        __f__(\"log\", '鏋佸厜鎺ㄩ�乮nitJPushService璋冪敤鎴愬姛', \" at App.vue:109\");\n      } else {\n        __f__(\"error\", 'jpushModule.initJPushService 涓嶆槸鍑芥暟锛屽綋鍓嶆柟娉�:', (0, _typeof2.default)(jpushModule.initJPushService), \" at App.vue:111\");\n        return;\n      }\n      if (typeof jpushModule.setLoggerEnable === 'function') {\n        jpushModule.setLoggerEnable(true);\n      }\n      __f__(\"log\", '鏋佸厜鎺ㄩ�佸垵濮嬪寲瀹屾垚锛岃缃洃鍚櫒...', \" at App.vue:118\");\n      this.setupJPushListeners();\n      this.getRegistrationID();\n    },\n    setupJPushListeners: function setupJPushListeners() {\n      var that = this;\n      if (!this.jpushModule) return;\n\n      // 鐩戝惉杩炴帴鐘舵�乗n      this.jpushModule.addConnectEventListener(function (result) {\n        __f__(\"log\", '鏋佸厜杩炴帴鐘舵��:', result.connectEnable, \" at App.vue:130\");\n      });\n\n      // 鐩戝惉閫氱煡\n      this.jpushModule.addNotificationListener(function (result) {\n        __f__(\"log\", '鏀跺埌閫氱煡:', JSON.stringify(result), \" at App.vue:135\");\n        that.speak(result.content || '');\n        var notificationEventType = result.notificationEventType;\n        // notificationOpened = 鐐瑰嚮閫氱煡\n        if (notificationEventType === 'notificationOpened') {\n          __f__(\"log\", '閫氱煡琚偣鍑�', result.extras, \" at App.vue:140\");\n          var extras = result.extras ? result.extras : {};\n          if (extras.type === 'new_order' && extras.orderId) {\n            uni.navigateTo({\n              url: '/pages/order-detail/order-detail?id=' + extras.orderId\n            });\n          } else {\n            uni.switchTab({\n              url: '/pages/index/index'\n            });\n          }\n        }\n      });\n    },\n    getRegistrationID: function getRegistrationID() {\n      var _this2 = this;\n      if (!this.jpushModule) {\n        __f__(\"log\", 'JPush妯″潡鏈垵濮嬪寲锛屾棤娉曡幏鍙朢egistrationID', \" at App.vue:157\");\n        return;\n      }\n      __f__(\"log\", '寮�濮嬭幏鍙朖Push RegistrationID...', \" at App.vue:160\");\n      this.jpushModule.getRegistrationID(function (result) {\n        __f__(\"log\", 'JPush getRegistrationID result:', JSON.stringify(result), \" at App.vue:162\");\n        if (result && result.registerID) {\n          __f__(\"log\", 'JPush RegistrationID鑾峰彇鎴愬姛:', result.registerID, \" at App.vue:164\");\n          uni.setStorageSync('jpush_registration_id', result.registerID);\n        } else {\n          __f__(\"log\", 'JPush RegistrationID鑾峰彇澶辫触锛屽皾璇曢噸鏂拌幏鍙�', \" at App.vue:167\");\n          setTimeout(function () {\n            _this2.getRegistrationID();\n          }, 2000);\n        }\n      });\n    },\n    bindJPushAlias: function bindJPushAlias() {\n      var _this3 = this,\n        _this$$store$state$us;\n      if (!this.token) return;\n      if (!this.jpushModule) {\n        __f__(\"log\", 'JPush鏈垵濮嬪寲锛屽欢杩熻缃埆鍚�', \" at App.vue:178\");\n        setTimeout(function () {\n          _this3.bindJPushAlias();\n        }, 1000);\n        return;\n      }\n      // 浼樺厛浠巗tore鑾峰彇锛屽鏋滀负绌哄垯浠庢湰鍦板瓨鍌ㄨ幏鍙朶n      var telephone = ((_this$$store$state$us = this.$store.state.userInfo) === null || _this$$store$state$us === void 0 ? void 0 : _this$$store$state$us.telephone) || '';\n      if (!telephone) {\n        var _uni$getStorageSync;\n        telephone = ((_uni$getStorageSync = uni.getStorageSync('userInfo')) === null || _uni$getStorageSync === void 0 ? void 0 : _uni$getStorageSync.telephone) || '';\n      }\n      if (!telephone) {\n        __f__(\"log\", '鐢ㄦ埛鎵嬫満鍙蜂负绌猴紝寤惰繜鑾峰彇...', \" at App.vue:190\");\n        setTimeout(function () {\n          _this3.bindJPushAlias();\n        }, 2000);\n        return;\n      }\n      var alias = (0, _jsMd.default)(telephone);\n      __f__(\"log\", '璁剧疆鏋佸厜鍒悕:', alias, \" at App.vue:197\");\n      this.jpushModule.setAlias({\n        alias: alias,\n        sequence: Date.now()\n      }, function (result) {\n        __f__(\"log\", '璁剧疆鍒悕缁撴灉:', JSON.stringify(result), \" at App.vue:202\");\n        if (result && (result.code === 0 || result.errCode === 0)) {\n          __f__(\"log\", '璁剧疆鏋佸厜鍒悕鎴愬姛', \" at App.vue:204\");\n        } else {\n          __f__(\"log\", '璁剧疆鏋佸厜鍒悕澶辫触', \" at App.vue:206\");\n        }\n      });\n    },\n    deleteJPushAlias: function deleteJPushAlias() {\n      if (!this.jpushModule) return;\n      this.jpushModule.deleteAlias({\n        sequence: Date.now()\n      }, function (result) {\n        __f__(\"log\", '鍒犻櫎鏋佸厜鍒悕:', JSON.stringify(result), \" at App.vue:216\");\n      });\n    },\n    checkAndStartLocationPolling: function checkAndStartLocationPolling() {\n      var _this4 = this;\n      if (!this.token) return;\n      uni.getLocation({\n        type: 'gcj02',\n        success: function success(res) {\n          __f__(\"log\", '鑾峰彇瀹氫綅鏉冮檺鎴愬姛锛屽紑濮嬪畾鏃舵洿鏂颁綅缃�', \" at App.vue:225\");\n          _this4.startLocationPolling();\n        },\n        fail: function fail(err) {\n          __f__(\"log\", '鑾峰彇瀹氫綅鏉冮檺澶辫触:', err.errMsg, \" at App.vue:229\");\n          uni.showToast({\n            title: '闇�瑕佸畾浣嶆潈闄愭墠鑳芥洿鏂颁綅缃�',\n            icon: 'none'\n          });\n        }\n      });\n    },\n    startLocationPolling: function startLocationPolling() {\n      var _this5 = this;\n      this.stopLocationPolling();\n      this.updateLocation();\n      this.locationTimer = setInterval(function () {\n        _this5.updateLocation();\n      }, 60000);\n    },\n    stopLocationPolling: function stopLocationPolling() {\n      if (this.locationTimer) {\n        clearInterval(this.locationTimer);\n        this.locationTimer = null;\n      }\n    },\n    updateLocation: function updateLocation() {\n      if (!this.token) return;\n      var that = this;\n      uni.getLocation({\n        type: 'gcj02',\n        success: function success(res) {\n          __f__(\"log\", '瀹氭椂鏇存柊浣嶇疆:', res.latitude, res.longitude, \" at App.vue:259\");\n          that.$u.api.updateLocation({\n            latitude: res.latitude,\n            longitude: res.longitude\n          }).then(function (res) {\n            if (res.code === 200) {\n              __f__(\"log\", '鏇存柊浣嶇疆鎴愬姛', \" at App.vue:265\");\n            } else {\n              __f__(\"log\", '鏇存柊浣嶇疆澶辫触', \" at App.vue:267\");\n            }\n          }).catch(function (err) {\n            __f__(\"log\", '鏇存柊浣嶇疆璇锋眰澶辫触:', err, \" at App.vue:270\");\n          });\n        },\n        fail: function fail(err) {\n          __f__(\"log\", '鑾峰彇浣嶇疆澶辫触:', err.errMsg, \" at App.vue:274\");\n        }\n      });\n    },\n    checkAppUpdate: function checkAppUpdate() {\n      var _this6 = this;\n      plus.runtime.getProperty(plus.runtime.appid, function (inf) {\n        var currentVersion = inf.versionCode;\n        _this6.$u.api.getApiVersion({\n          type: 0\n        }).then(function (res) {\n          if (res.code === 200 && res.data) {\n            var latestVersion = res.data.versionNum;\n            if (latestVersion > currentVersion) {\n              if (res.data.isForce === 1) {\n                _this6.showForceUpdateDialog(res.data.fileUrl, res.data.versionNum);\n              } else {\n                _this6.showOptionalUpdateDialog(res.data.fileUrl, res.data.versionNum);\n              }\n            }\n          }\n        });\n      });\n    },\n    showForceUpdateDialog: function showForceUpdateDialog(fileUrl, version) {\n      uni.showModal({\n        title: '鐗堟湰鏇存柊',\n        content: \"\\u68C0\\u6D4B\\u5230\\u65B0\\u7248\\u672C\".concat(version, \"\\uFF0C\\u8BF7\\u66F4\\u65B0\\u540E\\u7EE7\\u7EED\\u4F7F\\u7528\"),\n        showCancel: false,\n        confirmText: '绔嬪嵆鏇存柊',\n        success: function success() {\n          plus.runtime.openURL(fileUrl);\n        }\n      });\n    },\n    showOptionalUpdateDialog: function showOptionalUpdateDialog(fileUrl, version) {\n      uni.showModal({\n        title: '鐗堟湰鏇存柊',\n        content: \"\\u68C0\\u6D4B\\u5230\\u65B0\\u7248\\u672C\".concat(version, \"\\uFF0C\\u662F\\u5426\\u66F4\\u65B0\\uFF1F\"),\n        confirmText: '鏇存柊',\n        cancelText: '绋嶅悗',\n        success: function success(res) {\n          if (res.confirm) {\n            plus.runtime.openURL(fileUrl);\n          }\n        }\n      });\n    }\n  }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 92)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibG9jYXRpb25UaW1lciIsImpwdXNoTW9kdWxlIiwidHRzIiwiY29tcHV0ZWQiLCJtYXBTdGF0ZSIsIndhdGNoIiwidG9rZW4iLCJuZXdWYWwiLCJjaGVja0FuZFN0YXJ0TG9jYXRpb25Qb2xsaW5nIiwiYmluZEpQdXNoQWxpYXMiLCJzdG9wTG9jYXRpb25Qb2xsaW5nIiwiZGVsZXRlSlB1c2hBbGlhcyIsIm9uTGF1bmNoIiwiaW5pdFRUUyIsImluaXRKUHVzaCIsImNoZWNrQXBwVXBkYXRlIiwib25TaG93Iiwib25IaWRlIiwib25VbmxvYWQiLCJzdG9wIiwic2h1dGRvd24iLCJtZXRob2RzIiwidW5pIiwiZ2V0U3lzdGVtSW5mb1N5bmMiLCJwbGF0Zm9ybSIsIlRleHRUb1NwZWVjaCIsInBsdXMiLCJhbmRyb2lkIiwiaW1wb3J0Q2xhc3MiLCJMb2NhbGUiLCJydW50aW1lTWFpbkFjdGl2aXR5Iiwib25Jbml0Iiwic3RhdHVzIiwic2V0TGFuZ3VhZ2UiLCJDSElOQSIsImUiLCJzcGVhayIsInRleHQiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImljb24iLCJlcnIiLCJyZXF1aXJlTmF0aXZlUGx1Z2luIiwiT2JqZWN0Iiwia2V5cyIsImluaXRKUHVzaFNlcnZpY2UiLCJzZXRMb2dnZXJFbmFibGUiLCJzZXR1cEpQdXNoTGlzdGVuZXJzIiwiZ2V0UmVnaXN0cmF0aW9uSUQiLCJ0aGF0IiwiYWRkQ29ubmVjdEV2ZW50TGlzdGVuZXIiLCJyZXN1bHQiLCJjb25uZWN0RW5hYmxlIiwiYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIiLCJKU09OIiwic3RyaW5naWZ5IiwiY29udGVudCIsIm5vdGlmaWNhdGlvbkV2ZW50VHlwZSIsImV4dHJhcyIsInR5cGUiLCJvcmRlcklkIiwibmF2aWdhdGVUbyIsInVybCIsInN3aXRjaFRhYiIsInJlZ2lzdGVySUQiLCJzZXRTdG9yYWdlU3luYyIsInNldFRpbWVvdXQiLCJ0ZWxlcGhvbmUiLCIkc3RvcmUiLCJzdGF0ZSIsInVzZXJJbmZvIiwiZ2V0U3RvcmFnZVN5bmMiLCJhbGlhcyIsIm1kNSIsInNldEFsaWFzIiwic2VxdWVuY2UiLCJEYXRlIiwibm93IiwiY29kZSIsImVyckNvZGUiLCJkZWxldGVBbGlhcyIsImdldExvY2F0aW9uIiwic3VjY2VzcyIsInJlcyIsInN0YXJ0TG9jYXRpb25Qb2xsaW5nIiwiZmFpbCIsImVyck1zZyIsInVwZGF0ZUxvY2F0aW9uIiwic2V0SW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCIkdSIsImFwaSIsInRoZW4iLCJjYXRjaCIsInJ1bnRpbWUiLCJnZXRQcm9wZXJ0eSIsImFwcGlkIiwiaW5mIiwiY3VycmVudFZlcnNpb24iLCJ2ZXJzaW9uQ29kZSIsImdldEFwaVZlcnNpb24iLCJsYXRlc3RWZXJzaW9uIiwidmVyc2lvbk51bSIsImlzRm9yY2UiLCJzaG93Rm9yY2VVcGRhdGVEaWFsb2ciLCJmaWxlVXJsIiwic2hvd09wdGlvbmFsVXBkYXRlRGlhbG9nIiwidmVyc2lvbiIsInNob3dNb2RhbCIsInNob3dDYW5jZWwiLCJjb25maXJtVGV4dCIsIm9wZW5VUkwiLCJjYW5jZWxUZXh0IiwiY29uZmlybSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUF5QjtBQUFBO0FBQUEsZUFDVjtFQUNkQSxJQUFJLGtCQUFHO0lBQ04sT0FBTztNQUNOQyxhQUFhLEVBQUUsSUFBSTtNQUNuQkMsV0FBVyxFQUFFLElBQUk7TUFDakJDLEdBQUcsRUFBRTtJQUNOLENBQUM7RUFDRixDQUFDO0VBQ0RDLFFBQVEsb0JBQ0osSUFBQUMsY0FBUSxFQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQ2xDO0VBQ0RDLEtBQUssRUFBRTtJQUNOQyxLQUFLLGlCQUFDQyxNQUFNLEVBQUU7TUFDYixJQUFJQSxNQUFNLEVBQUU7UUFDWCxJQUFJLENBQUNDLDRCQUE0QixFQUFFO1FBQ25DLElBQUksQ0FBQ0MsY0FBYyxFQUFFO01BQ3RCLENBQUMsTUFBTTtRQUNOLElBQUksQ0FBQ0MsbUJBQW1CLEVBQUU7UUFDMUIsSUFBSSxDQUFDQyxnQkFBZ0IsRUFBRTtNQUN4QjtJQUNEO0VBQ0QsQ0FBQztFQUNEQyxRQUFRLEVBQUUsb0JBQVc7SUFDcEIsSUFBSSxDQUFDQyxPQUFPLEVBQUU7SUFDZCxJQUFJLENBQUNDLFNBQVMsRUFBRTtJQUNoQixJQUFJLENBQUNOLDRCQUE0QixFQUFFO0lBQ25DLElBQUksQ0FBQ08sY0FBYyxFQUFFO0VBQ3RCLENBQUM7RUFDREMsTUFBTSxFQUFFLGtCQUFXO0lBQ2xCLGFBQVksVUFBVTtJQUN0QjtFQUNELENBQUM7O0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7SUFDdEI7RUFDRCxDQUFDO0VBQ0RDLFFBQVEsc0JBQUc7SUFDVixJQUFJLElBQUksQ0FBQ2hCLEdBQUcsRUFBRTtNQUNiLElBQUksQ0FBQ0EsR0FBRyxDQUFDaUIsSUFBSSxFQUFFO01BQ2YsSUFBSSxDQUFDakIsR0FBRyxDQUFDa0IsUUFBUSxFQUFFO0lBQ3BCO0lBQ0EsSUFBSSxDQUFDVixtQkFBbUIsRUFBRTtFQUMzQixDQUFDO0VBQ0RXLE9BQU8sRUFBRTtJQUNSUixPQUFPLHFCQUFHO01BQUE7TUFDVCxJQUFJUyxHQUFHLENBQUNDLGlCQUFpQixFQUFFLENBQUNDLFFBQVEsS0FBSyxTQUFTLEVBQUU7UUFDbkQsYUFBWSxPQUFPO1FBQ25CO01BQ0Q7TUFFQSxJQUFJO1FBQ0g7UUFDQSxJQUFNQyxZQUFZLEdBQUdDLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxXQUFXLENBQUMsaUNBQWlDLENBQUM7UUFDaEYsSUFBTUMsTUFBTSxHQUFHSCxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDLGtCQUFrQixDQUFDOztRQUUzRDtRQUNBLElBQUksQ0FBQzFCLEdBQUcsR0FBRyxJQUFJdUIsWUFBWSxDQUFDQyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0csbUJBQW1CLEVBQUUsRUFBRTtVQUMvREMsTUFBTSxFQUFFLGdCQUFDQyxNQUFNLEVBQUs7WUFDbkIsSUFBSUEsTUFBTSxJQUFJLENBQUMsRUFBRTtjQUNoQjtjQUNBLEtBQUksQ0FBQzlCLEdBQUcsQ0FBQytCLFdBQVcsQ0FBQ0osTUFBTSxDQUFDSyxLQUFLLENBQUM7Y0FDbEMsYUFBWSxTQUFTO1lBQ3RCO1VBQ0Q7UUFDRCxDQUFDLENBQUM7TUFDSCxDQUFDLENBQUMsT0FBT0MsQ0FBQyxFQUFFO1FBQ1gsYUFBWSxPQUFPLEVBQUVBLENBQUM7TUFDdkI7SUFDRCxDQUFDO0lBQ0RDLEtBQUssaUJBQUNDLElBQUksRUFBRTtNQUNYLElBQUksQ0FBQyxJQUFJLENBQUNuQyxHQUFHLEVBQUU7UUFDZG9CLEdBQUcsQ0FBQ2dCLFNBQVMsQ0FBQztVQUNiQyxLQUFLLEVBQUUsUUFBUTtVQUNmQyxJQUFJLEVBQUU7UUFDUCxDQUFDLENBQUM7UUFDRjtNQUNEO01BRUEsSUFBSTtRQUNIO1FBQ0EsSUFBSSxDQUFDdEMsR0FBRyxDQUFDa0MsS0FBSyxDQUFDQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQztNQUM5QixDQUFDLENBQUMsT0FBT0ksR0FBRyxFQUFFO1FBQ2IsYUFBWSxNQUFNLEVBQUVBLEdBQUc7TUFDeEI7SUFDRCxDQUFDO0lBQ0QzQixTQUFTLHVCQUFHO01BQ1gsYUFBWSxjQUFjO01BRTFCLElBQUliLFdBQVcsR0FBRyxJQUFJO01BQ3RCLElBQUk7UUFDSEEsV0FBVyxHQUFHcUIsR0FBRyxDQUFDb0IsbUJBQW1CLENBQUMsVUFBVSxDQUFDO01BQ2xELENBQUMsQ0FBQyxPQUFPUCxDQUFDLEVBQUU7UUFDWCxlQUFjLGFBQWEsRUFBRUEsQ0FBQztRQUM5QjtNQUNEO01BQ0EsSUFBSSxDQUFDbEMsV0FBVyxFQUFFO1FBQ2pCLGVBQWMsV0FBVztRQUN6QjtNQUNEO01BQ0EsSUFBSSxDQUFDQSxXQUFXLEdBQUdBLFdBQVc7TUFDOUIsYUFBWSxnQkFBZ0Isd0JBQVNBLFdBQVc7TUFDaEQsYUFBWSxPQUFPLEVBQUUwQyxNQUFNLENBQUNDLElBQUksQ0FBQzNDLFdBQVcsQ0FBQztNQUU3QyxJQUFJLE9BQU9BLFdBQVcsQ0FBQzRDLGdCQUFnQixLQUFLLFVBQVUsRUFBRTtRQUN2RDVDLFdBQVcsQ0FBQzRDLGdCQUFnQixFQUFFO1FBQzlCLGFBQVksMEJBQTBCO01BQ3ZDLENBQUMsTUFBTTtRQUNOLGVBQWMseUNBQXlDLHdCQUFTNUMsV0FBVyxDQUFDNEMsZ0JBQWdCO1FBQzVGO01BQ0Q7TUFFQSxJQUFJLE9BQU81QyxXQUFXLENBQUM2QyxlQUFlLEtBQUssVUFBVSxFQUFFO1FBQ3REN0MsV0FBVyxDQUFDNkMsZUFBZSxDQUFDLElBQUksQ0FBQztNQUNsQztNQUNBLGFBQVksb0JBQW9CO01BQ2hDLElBQUksQ0FBQ0MsbUJBQW1CLEVBQUU7TUFDMUIsSUFBSSxDQUFDQyxpQkFBaUIsRUFBRTtJQUV6QixDQUFDO0lBRURELG1CQUFtQixpQ0FBRztNQUNyQixJQUFJRSxJQUFJLEdBQUcsSUFBSTtNQUNmLElBQUksQ0FBQyxJQUFJLENBQUNoRCxXQUFXLEVBQUU7O01BRXZCO01BQ0EsSUFBSSxDQUFDQSxXQUFXLENBQUNpRCx1QkFBdUIsQ0FBQyxVQUFDQyxNQUFNLEVBQUs7UUFDcEQsYUFBWSxTQUFTLEVBQUVBLE1BQU0sQ0FBQ0MsYUFBYTtNQUM1QyxDQUFDLENBQUM7O01BRUY7TUFDQSxJQUFJLENBQUNuRCxXQUFXLENBQUNvRCx1QkFBdUIsQ0FBQyxVQUFDRixNQUFNLEVBQUs7UUFDcEQsYUFBWSxPQUFPLEVBQUVHLElBQUksQ0FBQ0MsU0FBUyxDQUFDSixNQUFNLENBQUM7UUFDM0NGLElBQUksQ0FBQ2IsS0FBSyxDQUFDZSxNQUFNLENBQUNLLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBTUMscUJBQXFCLEdBQUdOLE1BQU0sQ0FBQ00scUJBQXFCO1FBQzFEO1FBQ0EsSUFBSUEscUJBQXFCLEtBQUssb0JBQW9CLEVBQUU7VUFDbkQsYUFBWSxPQUFPLEVBQUVOLE1BQU0sQ0FBQ08sTUFBTTtVQUNsQyxJQUFNQSxNQUFNLEdBQUdQLE1BQU0sQ0FBQ08sTUFBTSxHQUFHUCxNQUFNLENBQUNPLE1BQU0sR0FBRyxDQUFDLENBQUM7VUFDakQsSUFBSUEsTUFBTSxDQUFDQyxJQUFJLEtBQUssV0FBVyxJQUFJRCxNQUFNLENBQUNFLE9BQU8sRUFBRTtZQUNsRHRDLEdBQUcsQ0FBQ3VDLFVBQVUsQ0FBQztjQUNkQyxHQUFHLEVBQUUsc0NBQXNDLEdBQUdKLE1BQU0sQ0FBQ0U7WUFDdEQsQ0FBQyxDQUFDO1VBQ0gsQ0FBQyxNQUFNO1lBQ050QyxHQUFHLENBQUN5QyxTQUFTLENBQUM7Y0FDYkQsR0FBRyxFQUFFO1lBQ04sQ0FBQyxDQUFDO1VBQ0g7UUFDRDtNQUNELENBQUMsQ0FBQztJQUNILENBQUM7SUFFRGQsaUJBQWlCLCtCQUFHO01BQUE7TUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQy9DLFdBQVcsRUFBRTtRQUN0QixhQUFZLGdDQUFnQztRQUM1QztNQUNEO01BQ0EsYUFBWSw2QkFBNkI7TUFDekMsSUFBSSxDQUFDQSxXQUFXLENBQUMrQyxpQkFBaUIsQ0FBQyxVQUFDRyxNQUFNLEVBQUs7UUFDOUMsYUFBWSxpQ0FBaUMsRUFBRUcsSUFBSSxDQUFDQyxTQUFTLENBQUNKLE1BQU0sQ0FBQztRQUNyRSxJQUFJQSxNQUFNLElBQUlBLE1BQU0sQ0FBQ2EsVUFBVSxFQUFFO1VBQ2hDLGFBQVksMkJBQTJCLEVBQUViLE1BQU0sQ0FBQ2EsVUFBVTtVQUMxRDFDLEdBQUcsQ0FBQzJDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRWQsTUFBTSxDQUFDYSxVQUFVLENBQUM7UUFDL0QsQ0FBQyxNQUFNO1VBQ04sYUFBWSxpQ0FBaUM7VUFDN0NFLFVBQVUsQ0FBQyxZQUFNO1lBQ2hCLE1BQUksQ0FBQ2xCLGlCQUFpQixFQUFFO1VBQ3pCLENBQUMsRUFBRSxJQUFJLENBQUM7UUFDVDtNQUNELENBQUMsQ0FBQztJQUNILENBQUM7SUFFRHZDLGNBQWMsNEJBQUc7TUFBQTtRQUFBO01BQ2hCLElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtNQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDTCxXQUFXLEVBQUU7UUFDdEIsYUFBWSxrQkFBa0I7UUFDOUJpRSxVQUFVLENBQUMsWUFBTTtVQUNoQixNQUFJLENBQUN6RCxjQUFjLEVBQUU7UUFDdEIsQ0FBQyxFQUFFLElBQUksQ0FBQztRQUNSO01BQ0Q7TUFDQTtNQUNBLElBQUkwRCxTQUFTLEdBQUcsOEJBQUksQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLENBQUNDLFFBQVEsMERBQTFCLHNCQUE0QkgsU0FBUyxLQUFJLEVBQUU7TUFDM0QsSUFBSSxDQUFDQSxTQUFTLEVBQUU7UUFBQTtRQUNmQSxTQUFTLEdBQUcsd0JBQUE3QyxHQUFHLENBQUNpRCxjQUFjLENBQUMsVUFBVSxDQUFDLHdEQUE5QixvQkFBZ0NKLFNBQVMsS0FBSSxFQUFFO01BQzVEO01BQ0EsSUFBSSxDQUFDQSxTQUFTLEVBQUU7UUFDZixhQUFZLGlCQUFpQjtRQUM3QkQsVUFBVSxDQUFDLFlBQU07VUFDaEIsTUFBSSxDQUFDekQsY0FBYyxFQUFFO1FBQ3RCLENBQUMsRUFBRSxJQUFJLENBQUM7UUFDUjtNQUNEO01BQ0EsSUFBTStELEtBQUssR0FBRyxJQUFBQyxhQUFHLEVBQUNOLFNBQVMsQ0FBQztNQUM1QixhQUFZLFNBQVMsRUFBRUssS0FBSztNQUM1QixJQUFJLENBQUN2RSxXQUFXLENBQUN5RSxRQUFRLENBQUM7UUFDekJGLEtBQUssRUFBRUEsS0FBSztRQUNaRyxRQUFRLEVBQUVDLElBQUksQ0FBQ0MsR0FBRztNQUNuQixDQUFDLEVBQUUsVUFBQzFCLE1BQU0sRUFBSztRQUNkLGFBQVksU0FBUyxFQUFFRyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0osTUFBTSxDQUFDO1FBQzdDLElBQUlBLE1BQU0sS0FBS0EsTUFBTSxDQUFDMkIsSUFBSSxLQUFLLENBQUMsSUFBSTNCLE1BQU0sQ0FBQzRCLE9BQU8sS0FBSyxDQUFDLENBQUMsRUFBRTtVQUMxRCxhQUFZLFVBQVU7UUFDdkIsQ0FBQyxNQUFNO1VBQ04sYUFBWSxVQUFVO1FBQ3ZCO01BQ0QsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVEcEUsZ0JBQWdCLDhCQUFHO01BQ2xCLElBQUksQ0FBQyxJQUFJLENBQUNWLFdBQVcsRUFBRTtNQUN2QixJQUFJLENBQUNBLFdBQVcsQ0FBQytFLFdBQVcsQ0FBQztRQUM1QkwsUUFBUSxFQUFFQyxJQUFJLENBQUNDLEdBQUc7TUFDbkIsQ0FBQyxFQUFFLFVBQUMxQixNQUFNLEVBQUs7UUFDZCxhQUFZLFNBQVMsRUFBRUcsSUFBSSxDQUFDQyxTQUFTLENBQUNKLE1BQU0sQ0FBQztNQUM5QyxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRUQzQyw0QkFBNEIsMENBQUc7TUFBQTtNQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDRixLQUFLLEVBQUU7TUFDakJnQixHQUFHLENBQUMyRCxXQUFXLENBQUM7UUFDZnRCLElBQUksRUFBRSxPQUFPO1FBQ2J1QixPQUFPLEVBQUUsaUJBQUNDLEdBQUcsRUFBSztVQUNqQixhQUFZLG1CQUFtQjtVQUMvQixNQUFJLENBQUNDLG9CQUFvQixFQUFFO1FBQzVCLENBQUM7UUFDREMsSUFBSSxFQUFFLGNBQUM1QyxHQUFHLEVBQUs7VUFDZCxhQUFZLFdBQVcsRUFBRUEsR0FBRyxDQUFDNkMsTUFBTTtVQUNuQ2hFLEdBQUcsQ0FBQ2dCLFNBQVMsQ0FBQztZQUNiQyxLQUFLLEVBQUUsY0FBYztZQUNyQkMsSUFBSSxFQUFFO1VBQ1AsQ0FBQyxDQUFDO1FBQ0g7TUFDRCxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRUQ0QyxvQkFBb0Isa0NBQUc7TUFBQTtNQUN0QixJQUFJLENBQUMxRSxtQkFBbUIsRUFBRTtNQUMxQixJQUFJLENBQUM2RSxjQUFjLEVBQUU7TUFDckIsSUFBSSxDQUFDdkYsYUFBYSxHQUFHd0YsV0FBVyxDQUFDLFlBQU07UUFDdEMsTUFBSSxDQUFDRCxjQUFjLEVBQUU7TUFDdEIsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNWLENBQUM7SUFFRDdFLG1CQUFtQixpQ0FBRztNQUNyQixJQUFJLElBQUksQ0FBQ1YsYUFBYSxFQUFFO1FBQ3ZCeUYsYUFBYSxDQUFDLElBQUksQ0FBQ3pGLGFBQWEsQ0FBQztRQUNqQyxJQUFJLENBQUNBLGFBQWEsR0FBRyxJQUFJO01BQzFCO0lBQ0QsQ0FBQztJQUVEdUYsY0FBYyw0QkFBRztNQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDakYsS0FBSyxFQUFFO01BQ2pCLElBQUkyQyxJQUFJLEdBQUcsSUFBSTtNQUNmM0IsR0FBRyxDQUFDMkQsV0FBVyxDQUFDO1FBQ2Z0QixJQUFJLEVBQUUsT0FBTztRQUNidUIsT0FBTyxFQUFFLGlCQUFDQyxHQUFHLEVBQUs7VUFDakIsYUFBWSxTQUFTLEVBQUVBLEdBQUcsQ0FBQ08sUUFBUSxFQUFFUCxHQUFHLENBQUNRLFNBQVM7VUFDbEQxQyxJQUFJLENBQUMyQyxFQUFFLENBQUNDLEdBQUcsQ0FBQ04sY0FBYyxDQUFDO1lBQzFCRyxRQUFRLEVBQUVQLEdBQUcsQ0FBQ08sUUFBUTtZQUN0QkMsU0FBUyxFQUFFUixHQUFHLENBQUNRO1VBQ2hCLENBQUMsQ0FBQyxDQUFDRyxJQUFJLENBQUMsVUFBQVgsR0FBRyxFQUFJO1lBQ2QsSUFBSUEsR0FBRyxDQUFDTCxJQUFJLEtBQUssR0FBRyxFQUFFO2NBQ3JCLGFBQVksUUFBUTtZQUNyQixDQUFDLE1BQU07Y0FDTixhQUFZLFFBQVE7WUFDckI7VUFDRCxDQUFDLENBQUMsQ0FBQ2lCLEtBQUssQ0FBQyxVQUFBdEQsR0FBRyxFQUFJO1lBQ2YsYUFBWSxXQUFXLEVBQUVBLEdBQUc7VUFDN0IsQ0FBQyxDQUFDO1FBQ0gsQ0FBQztRQUNENEMsSUFBSSxFQUFFLGNBQUM1QyxHQUFHLEVBQUs7VUFDZCxhQUFZLFNBQVMsRUFBRUEsR0FBRyxDQUFDNkMsTUFBTTtRQUNsQztNQUNELENBQUMsQ0FBQztJQUNILENBQUM7SUFFRHZFLGNBQWMsNEJBQUc7TUFBQTtNQUNoQlcsSUFBSSxDQUFDc0UsT0FBTyxDQUFDQyxXQUFXLENBQUN2RSxJQUFJLENBQUNzRSxPQUFPLENBQUNFLEtBQUssRUFBRSxVQUFDQyxHQUFHLEVBQUs7UUFDckQsSUFBTUMsY0FBYyxHQUFHRCxHQUFHLENBQUNFLFdBQVc7UUFDdEMsTUFBSSxDQUFDVCxFQUFFLENBQUNDLEdBQUcsQ0FBQ1MsYUFBYSxDQUFDO1VBQUUzQyxJQUFJLEVBQUU7UUFBRSxDQUFDLENBQUMsQ0FBQ21DLElBQUksQ0FBQyxVQUFBWCxHQUFHLEVBQUk7VUFDbEQsSUFBSUEsR0FBRyxDQUFDTCxJQUFJLEtBQUssR0FBRyxJQUFJSyxHQUFHLENBQUNwRixJQUFJLEVBQUU7WUFDakMsSUFBTXdHLGFBQWEsR0FBR3BCLEdBQUcsQ0FBQ3BGLElBQUksQ0FBQ3lHLFVBQVU7WUFDekMsSUFBSUQsYUFBYSxHQUFHSCxjQUFjLEVBQUU7Y0FDbkMsSUFBSWpCLEdBQUcsQ0FBQ3BGLElBQUksQ0FBQzBHLE9BQU8sS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE1BQUksQ0FBQ0MscUJBQXFCLENBQUN2QixHQUFHLENBQUNwRixJQUFJLENBQUM0RyxPQUFPLEVBQUV4QixHQUFHLENBQUNwRixJQUFJLENBQUN5RyxVQUFVLENBQUM7Y0FDbEUsQ0FBQyxNQUFNO2dCQUNOLE1BQUksQ0FBQ0ksd0JBQXdCLENBQUN6QixHQUFHLENBQUNwRixJQUFJLENBQUM0RyxPQUFPLEVBQUV4QixHQUFHLENBQUNwRixJQUFJLENBQUN5RyxVQUFVLENBQUM7Y0FDckU7WUFDRDtVQUNEO1FBQ0QsQ0FBQyxDQUFDO01BQ0gsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVERSxxQkFBcUIsaUNBQUNDLE9BQU8sRUFBRUUsT0FBTyxFQUFFO01BQ3ZDdkYsR0FBRyxDQUFDd0YsU0FBUyxDQUFDO1FBQ2J2RSxLQUFLLEVBQUUsTUFBTTtRQUNiaUIsT0FBTyxnREFBV3FELE9BQU8sMkRBQVc7UUFDcENFLFVBQVUsRUFBRSxLQUFLO1FBQ2pCQyxXQUFXLEVBQUUsTUFBTTtRQUNuQjlCLE9BQU8sRUFBRSxtQkFBTTtVQUNkeEQsSUFBSSxDQUFDc0UsT0FBTyxDQUFDaUIsT0FBTyxDQUFDTixPQUFPLENBQUM7UUFDOUI7TUFDRCxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRURDLHdCQUF3QixvQ0FBQ0QsT0FBTyxFQUFFRSxPQUFPLEVBQUU7TUFDMUN2RixHQUFHLENBQUN3RixTQUFTLENBQUM7UUFDYnZFLEtBQUssRUFBRSxNQUFNO1FBQ2JpQixPQUFPLGdEQUFXcUQsT0FBTyx5Q0FBUTtRQUNqQ0csV0FBVyxFQUFFLElBQUk7UUFDakJFLFVBQVUsRUFBRSxJQUFJO1FBQ2hCaEMsT0FBTyxFQUFFLGlCQUFDQyxHQUFHLEVBQUs7VUFDakIsSUFBSUEsR0FBRyxDQUFDZ0MsT0FBTyxFQUFFO1lBQ2hCekYsSUFBSSxDQUFDc0UsT0FBTyxDQUFDaUIsT0FBTyxDQUFDTixPQUFPLENBQUM7VUFDOUI7UUFDRDtNQUNELENBQUMsQ0FBQztJQUNIO0VBQ0Q7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiMTc3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnXG5pbXBvcnQgbWQ1IGZyb20gJ2pzLW1kNSc7XG5leHBvcnQgZGVmYXVsdCB7XG5cdGRhdGEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGxvY2F0aW9uVGltZXI6IG51bGwsXG5cdFx0XHRqcHVzaE1vZHVsZTogbnVsbCxcblx0XHRcdHR0czogbnVsbFxuXHRcdH1cblx0fSxcblx0Y29tcHV0ZWQ6IHtcblx0XHQuLi5tYXBTdGF0ZShbJ3VzZXJJbmZvJywgJ3Rva2VuJ10pXG5cdH0sXG5cdHdhdGNoOiB7XG5cdFx0dG9rZW4obmV3VmFsKSB7XG5cdFx0XHRpZiAobmV3VmFsKSB7XG5cdFx0XHRcdHRoaXMuY2hlY2tBbmRTdGFydExvY2F0aW9uUG9sbGluZygpXG5cdFx0XHRcdHRoaXMuYmluZEpQdXNoQWxpYXMoKVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zdG9wTG9jYXRpb25Qb2xsaW5nKClcblx0XHRcdFx0dGhpcy5kZWxldGVKUHVzaEFsaWFzKClcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdG9uTGF1bmNoOiBmdW5jdGlvbigpIHtcblx0XHR0aGlzLmluaXRUVFMoKVxuXHRcdHRoaXMuaW5pdEpQdXNoKClcblx0XHR0aGlzLmNoZWNrQW5kU3RhcnRMb2NhdGlvblBvbGxpbmcoKVxuXHRcdHRoaXMuY2hlY2tBcHBVcGRhdGUoKVxuXHR9LFxuXHRvblNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdGNvbnNvbGUubG9nKCdBcHAgU2hvdycpXG5cdFx0Ly8gdGhpcy5jaGVja0FuZFN0YXJ0TG9jYXRpb25Qb2xsaW5nKClcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHRcdC8vIHRoaXMuc3RvcExvY2F0aW9uUG9sbGluZygpXG5cdH0sXG5cdG9uVW5sb2FkKCkge1xuXHRcdGlmICh0aGlzLnR0cykge1xuXHRcdFx0dGhpcy50dHMuc3RvcCgpXG5cdFx0XHR0aGlzLnR0cy5zaHV0ZG93bigpXG5cdFx0fVxuXHRcdHRoaXMuc3RvcExvY2F0aW9uUG9sbGluZygpXG5cdH0sXG5cdG1ldGhvZHM6IHtcblx0XHRpbml0VFRTKCkge1xuXHRcdFx0aWYgKHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtICE9PSAnYW5kcm9pZCcpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coJ+S7heaUr+aMgeWuieWNkycpXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHQvLyDlr7zlhaXlronljZPljp/nlJ/nsbtcblx0XHRcdFx0Y29uc3QgVGV4dFRvU3BlZWNoID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoJylcblx0XHRcdFx0Y29uc3QgTG9jYWxlID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdqYXZhLnV0aWwuTG9jYWxlJylcblxuXHRcdFx0XHQvLyDliJvlu7pUVFNcblx0XHRcdFx0dGhpcy50dHMgPSBuZXcgVGV4dFRvU3BlZWNoKHBsdXMuYW5kcm9pZC5ydW50aW1lTWFpbkFjdGl2aXR5KCksIHtcblx0XHRcdFx0XHRvbkluaXQ6IChzdGF0dXMpID0+IHtcblx0XHRcdFx0XHRcdGlmIChzdGF0dXMgPT0gMCkge1xuXHRcdFx0XHRcdFx0XHQvLyDorr7nva7kuK3mlodcblx0XHRcdFx0XHRcdFx0dGhpcy50dHMuc2V0TGFuZ3VhZ2UoTG9jYWxlLkNISU5BKVxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K+t6Z+z5Yid5aeL5YyW5oiQ5YqfJylcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCfliJ3lp4vljJblpLHotKUnLCBlKVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0c3BlYWsodGV4dCkge1xuXHRcdFx0aWYgKCF0aGlzLnR0cykge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHR0aXRsZTogJ+ivremfs+acquWHhuWkh+WlvScsXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHQvLyDlronljZPljp/nlJ/mkq3miqXvvIhRVUVVRV9GTFVTSCA9IOeri+WNs+aSreaKpe+8jOaJk+aWreS4iuS4gOadoe+8iVxuXHRcdFx0XHR0aGlzLnR0cy5zcGVhayh0ZXh0LCAwLCBudWxsKVxuXHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmkq3miqXlpLHotKUnLCBlcnIpXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRpbml0SlB1c2goKSB7XG5cdFx0XHRjb25zb2xlLmxvZygn5byA5aeL5Yid5aeL5YyW5p6B5YWJ5o6o6YCBLi4uJylcblxuXHRcdFx0bGV0IGpwdXNoTW9kdWxlID0gbnVsbFxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0anB1c2hNb2R1bGUgPSB1bmkucmVxdWlyZU5hdGl2ZVBsdWdpbignSkctSlB1c2gnKVxuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKCfliqDovb3mnoHlhYnmjqjpgIHmj5Lku7blpLHotKU6JywgZSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWpwdXNoTW9kdWxlKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+aegeWFieaOqOmAgeaPkuS7tuacquaJvuWIsCcpXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdFx0dGhpcy5qcHVzaE1vZHVsZSA9IGpwdXNoTW9kdWxlXG5cdFx0XHRjb25zb2xlLmxvZygn5p6B5YWJ5o6o6YCB5o+S5Lu25Yqg6L295oiQ5Yqf77yM5qih5Z2XOicsIHR5cGVvZiBqcHVzaE1vZHVsZSlcblx0XHRcdGNvbnNvbGUubG9nKCfmqKHlnZfmlrnms5U6JywgT2JqZWN0LmtleXMoanB1c2hNb2R1bGUpKVxuXG5cdFx0XHRpZiAodHlwZW9mIGpwdXNoTW9kdWxlLmluaXRKUHVzaFNlcnZpY2UgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0anB1c2hNb2R1bGUuaW5pdEpQdXNoU2VydmljZSgpXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmnoHlhYnmjqjpgIFpbml0SlB1c2hTZXJ2aWNl6LCD55So5oiQ5YqfJylcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ2pwdXNoTW9kdWxlLmluaXRKUHVzaFNlcnZpY2Ug5LiN5piv5Ye95pWw77yM5b2T5YmN5pa55rOVOicsIHR5cGVvZiBqcHVzaE1vZHVsZS5pbml0SlB1c2hTZXJ2aWNlKVxuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblxuXHRcdFx0aWYgKHR5cGVvZiBqcHVzaE1vZHVsZS5zZXRMb2dnZXJFbmFibGUgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0anB1c2hNb2R1bGUuc2V0TG9nZ2VyRW5hYmxlKHRydWUpXG5cdFx0XHR9XG5cdFx0XHRjb25zb2xlLmxvZygn5p6B5YWJ5o6o6YCB5Yid5aeL5YyW5a6M5oiQ77yM6K6+572u55uR5ZCs5ZmoLi4uJylcblx0XHRcdHRoaXMuc2V0dXBKUHVzaExpc3RlbmVycygpXG5cdFx0XHR0aGlzLmdldFJlZ2lzdHJhdGlvbklEKClcblxuXHRcdH0sXG5cblx0XHRzZXR1cEpQdXNoTGlzdGVuZXJzKCkge1xuXHRcdFx0dmFyIHRoYXQgPSB0aGlzXG5cdFx0XHRpZiAoIXRoaXMuanB1c2hNb2R1bGUpIHJldHVyblxuXG5cdFx0XHQvLyDnm5HlkKzov57mjqXnirbmgIFcblx0XHRcdHRoaXMuanB1c2hNb2R1bGUuYWRkQ29ubmVjdEV2ZW50TGlzdGVuZXIoKHJlc3VsdCkgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZygn5p6B5YWJ6L+e5o6l54q25oCBOicsIHJlc3VsdC5jb25uZWN0RW5hYmxlKVxuXHRcdFx0fSlcblxuXHRcdFx0Ly8g55uR5ZCs6YCa55+lXG5cdFx0XHR0aGlzLmpwdXNoTW9kdWxlLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKChyZXN1bHQpID0+IHtcblx0XHRcdFx0Y29uc29sZS5sb2coJ+aUtuWIsOmAmuefpTonLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpKVxuXHRcdFx0XHR0aGF0LnNwZWFrKHJlc3VsdC5jb250ZW50IHx8ICcnKVxuXHRcdFx0XHRjb25zdCBub3RpZmljYXRpb25FdmVudFR5cGUgPSByZXN1bHQubm90aWZpY2F0aW9uRXZlbnRUeXBlXG5cdFx0XHRcdC8vIG5vdGlmaWNhdGlvbk9wZW5lZCA9IOeCueWHu+mAmuefpVxuXHRcdFx0XHRpZiAobm90aWZpY2F0aW9uRXZlbnRUeXBlID09PSAnbm90aWZpY2F0aW9uT3BlbmVkJykge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfpgJrnn6Xooqvngrnlh7snLCByZXN1bHQuZXh0cmFzKVxuXHRcdFx0XHRcdGNvbnN0IGV4dHJhcyA9IHJlc3VsdC5leHRyYXMgPyByZXN1bHQuZXh0cmFzIDoge31cblx0XHRcdFx0XHRpZiAoZXh0cmFzLnR5cGUgPT09ICduZXdfb3JkZXInICYmIGV4dHJhcy5vcmRlcklkKSB7XG5cdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9vcmRlci1kZXRhaWwvb3JkZXItZGV0YWlsP2lkPScgKyBleHRyYXMub3JkZXJJZFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dW5pLnN3aXRjaFRhYih7XG5cdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9pbmRleC9pbmRleCdcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblx0XHRnZXRSZWdpc3RyYXRpb25JRCgpIHtcblx0XHRcdGlmICghdGhpcy5qcHVzaE1vZHVsZSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZygnSlB1c2jmqKHlnZfmnKrliJ3lp4vljJbvvIzml6Dms5Xojrflj5ZSZWdpc3RyYXRpb25JRCcpXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdFx0Y29uc29sZS5sb2coJ+W8gOWni+iOt+WPlkpQdXNoIFJlZ2lzdHJhdGlvbklELi4uJylcblx0XHRcdHRoaXMuanB1c2hNb2R1bGUuZ2V0UmVnaXN0cmF0aW9uSUQoKHJlc3VsdCkgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZygnSlB1c2ggZ2V0UmVnaXN0cmF0aW9uSUQgcmVzdWx0OicsIEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpXG5cdFx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LnJlZ2lzdGVySUQpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnSlB1c2ggUmVnaXN0cmF0aW9uSUTojrflj5bmiJDlip86JywgcmVzdWx0LnJlZ2lzdGVySUQpXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdqcHVzaF9yZWdpc3RyYXRpb25faWQnLCByZXN1bHQucmVnaXN0ZXJJRClcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnSlB1c2ggUmVnaXN0cmF0aW9uSUTojrflj5blpLHotKXvvIzlsJ3or5Xph43mlrDojrflj5YnKVxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5nZXRSZWdpc3RyYXRpb25JRCgpXG5cdFx0XHRcdFx0fSwgMjAwMClcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cdFx0YmluZEpQdXNoQWxpYXMoKSB7XG5cdFx0XHRpZiAoIXRoaXMudG9rZW4pIHJldHVyblxuXHRcdFx0aWYgKCF0aGlzLmpwdXNoTW9kdWxlKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdKUHVzaOacquWIneWni+WMlu+8jOW7tui/n+iuvue9ruWIq+WQjScpXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuYmluZEpQdXNoQWxpYXMoKVxuXHRcdFx0XHR9LCAxMDAwKVxuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblx0XHRcdC8vIOS8mOWFiOS7jnN0b3Jl6I635Y+W77yM5aaC5p6c5Li656m65YiZ5LuO5pys5Zyw5a2Y5YKo6I635Y+WXG5cdFx0XHRsZXQgdGVsZXBob25lID0gdGhpcy4kc3RvcmUuc3RhdGUudXNlckluZm8/LnRlbGVwaG9uZSB8fCAnJ1xuXHRcdFx0aWYgKCF0ZWxlcGhvbmUpIHtcblx0XHRcdFx0dGVsZXBob25lID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpPy50ZWxlcGhvbmUgfHwgJydcblx0XHRcdH1cblx0XHRcdGlmICghdGVsZXBob25lKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCfnlKjmiLfmiYvmnLrlj7fkuLrnqbrvvIzlu7bov5/ojrflj5YuLi4nKVxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLmJpbmRKUHVzaEFsaWFzKClcblx0XHRcdFx0fSwgMjAwMClcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRjb25zdCBhbGlhcyA9IG1kNSh0ZWxlcGhvbmUpXG5cdFx0XHRjb25zb2xlLmxvZygn6K6+572u5p6B5YWJ5Yir5ZCNOicsIGFsaWFzKVxuXHRcdFx0dGhpcy5qcHVzaE1vZHVsZS5zZXRBbGlhcyh7XG5cdFx0XHRcdGFsaWFzOiBhbGlhcyxcblx0XHRcdFx0c2VxdWVuY2U6IERhdGUubm93KClcblx0XHRcdH0sIChyZXN1bHQpID0+IHtcblx0XHRcdFx0Y29uc29sZS5sb2coJ+iuvue9ruWIq+WQjee7k+aenDonLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpKVxuXHRcdFx0XHRpZiAocmVzdWx0ICYmIChyZXN1bHQuY29kZSA9PT0gMCB8fCByZXN1bHQuZXJyQ29kZSA9PT0gMCkpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K6+572u5p6B5YWJ5Yir5ZCN5oiQ5YqfJylcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6K6+572u5p6B5YWJ5Yir5ZCN5aSx6LSlJylcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cdFx0ZGVsZXRlSlB1c2hBbGlhcygpIHtcblx0XHRcdGlmICghdGhpcy5qcHVzaE1vZHVsZSkgcmV0dXJuXG5cdFx0XHR0aGlzLmpwdXNoTW9kdWxlLmRlbGV0ZUFsaWFzKHtcblx0XHRcdFx0c2VxdWVuY2U6IERhdGUubm93KClcblx0XHRcdH0sIChyZXN1bHQpID0+IHtcblx0XHRcdFx0Y29uc29sZS5sb2coJ+WIoOmZpOaegeWFieWIq+WQjTonLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpKVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cdFx0Y2hlY2tBbmRTdGFydExvY2F0aW9uUG9sbGluZygpIHtcblx0XHRcdGlmICghdGhpcy50b2tlbikgcmV0dXJuXG5cdFx0XHR1bmkuZ2V0TG9jYXRpb24oe1xuXHRcdFx0XHR0eXBlOiAnZ2NqMDInLFxuXHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPluWumuS9jeadg+mZkOaIkOWKn++8jOW8gOWni+WumuaXtuabtOaWsOS9jee9ricpXG5cdFx0XHRcdFx0dGhpcy5zdGFydExvY2F0aW9uUG9sbGluZygpXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6I635Y+W5a6a5L2N5p2D6ZmQ5aSx6LSlOicsIGVyci5lcnJNc2cpXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogJ+mcgOimgeWumuS9jeadg+mZkOaJjeiDveabtOaWsOS9jee9ricsXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblx0XHRzdGFydExvY2F0aW9uUG9sbGluZygpIHtcblx0XHRcdHRoaXMuc3RvcExvY2F0aW9uUG9sbGluZygpXG5cdFx0XHR0aGlzLnVwZGF0ZUxvY2F0aW9uKClcblx0XHRcdHRoaXMubG9jYXRpb25UaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0dGhpcy51cGRhdGVMb2NhdGlvbigpXG5cdFx0XHR9LCA2MDAwMClcblx0XHR9LFxuXG5cdFx0c3RvcExvY2F0aW9uUG9sbGluZygpIHtcblx0XHRcdGlmICh0aGlzLmxvY2F0aW9uVGltZXIpIHtcblx0XHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLmxvY2F0aW9uVGltZXIpXG5cdFx0XHRcdHRoaXMubG9jYXRpb25UaW1lciA9IG51bGxcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0dXBkYXRlTG9jYXRpb24oKSB7XG5cdFx0XHRpZiAoIXRoaXMudG9rZW4pIHJldHVyblxuXHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xuXHRcdFx0dW5pLmdldExvY2F0aW9uKHtcblx0XHRcdFx0dHlwZTogJ2djajAyJyxcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCflrprml7bmm7TmlrDkvY3nva46JywgcmVzLmxhdGl0dWRlLCByZXMubG9uZ2l0dWRlKVxuXHRcdFx0XHRcdHRoYXQuJHUuYXBpLnVwZGF0ZUxvY2F0aW9uKHtcblx0XHRcdFx0XHRcdGxhdGl0dWRlOiByZXMubGF0aXR1ZGUsXG5cdFx0XHRcdFx0XHRsb25naXR1ZGU6IHJlcy5sb25naXR1ZGVcblx0XHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5pu05paw5L2N572u5oiQ5YqfJylcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmm7TmlrDkvY3nva7lpLHotKUnKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5pu05paw5L2N572u6K+35rGC5aSx6LSlOicsIGVycilcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPluS9jee9ruWksei0pTonLCBlcnIuZXJyTXNnKVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblx0XHRjaGVja0FwcFVwZGF0ZSgpIHtcblx0XHRcdHBsdXMucnVudGltZS5nZXRQcm9wZXJ0eShwbHVzLnJ1bnRpbWUuYXBwaWQsIChpbmYpID0+IHtcblx0XHRcdFx0Y29uc3QgY3VycmVudFZlcnNpb24gPSBpbmYudmVyc2lvbkNvZGVcblx0XHRcdFx0dGhpcy4kdS5hcGkuZ2V0QXBpVmVyc2lvbih7IHR5cGU6IDAgfSkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwICYmIHJlcy5kYXRhKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBsYXRlc3RWZXJzaW9uID0gcmVzLmRhdGEudmVyc2lvbk51bVxuXHRcdFx0XHRcdFx0aWYgKGxhdGVzdFZlcnNpb24gPiBjdXJyZW50VmVyc2lvbikge1xuXHRcdFx0XHRcdFx0XHRpZiAocmVzLmRhdGEuaXNGb3JjZSA9PT0gMSkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc2hvd0ZvcmNlVXBkYXRlRGlhbG9nKHJlcy5kYXRhLmZpbGVVcmwsIHJlcy5kYXRhLnZlcnNpb25OdW0pXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zaG93T3B0aW9uYWxVcGRhdGVEaWFsb2cocmVzLmRhdGEuZmlsZVVybCwgcmVzLmRhdGEudmVyc2lvbk51bSlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0pXG5cdFx0fSxcblxuXHRcdHNob3dGb3JjZVVwZGF0ZURpYWxvZyhmaWxlVXJsLCB2ZXJzaW9uKSB7XG5cdFx0XHR1bmkuc2hvd01vZGFsKHtcblx0XHRcdFx0dGl0bGU6ICfniYjmnKzmm7TmlrAnLFxuXHRcdFx0XHRjb250ZW50OiBg5qOA5rWL5Yiw5paw54mI5pysJHt2ZXJzaW9ufe+8jOivt+abtOaWsOWQjue7p+e7reS9v+eUqGAsXG5cdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlLFxuXHRcdFx0XHRjb25maXJtVGV4dDogJ+eri+WNs+abtOaWsCcsXG5cdFx0XHRcdHN1Y2Nlc3M6ICgpID0+IHtcblx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUub3BlblVSTChmaWxlVXJsKVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblx0XHRzaG93T3B0aW9uYWxVcGRhdGVEaWFsb2coZmlsZVVybCwgdmVyc2lvbikge1xuXHRcdFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdHRpdGxlOiAn54mI5pys5pu05pawJyxcblx0XHRcdFx0Y29udGVudDogYOajgOa1i+WIsOaWsOeJiOacrCR7dmVyc2lvbn3vvIzmmK/lkKbmm7TmlrDvvJ9gLFxuXHRcdFx0XHRjb25maXJtVGV4dDogJ+abtOaWsCcsXG5cdFx0XHRcdGNhbmNlbFRleHQ6ICfnqI3lkI4nLFxuXHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb25maXJtKSB7XG5cdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUub3BlblVSTChmaWxlVXJsKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///177\n");
 
 /***/ }),
 /* 178 */

--
Gitblit v1.9.3