Commit bc370c231df94442b6764e471543b892dc18f8c6
1 parent
8714e5b1
1
Showing
3 changed files
with
35 additions
and
11 deletions
uniapp-wuduhuajiao/pages/wanl-home/detail.vue
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | <view class="flex" style="align-items: center;"> |
| 27 | 27 | <view style="width: 120rpx;position: relative;"> |
| 28 | 28 | <image :src="'http://app.xn--43vp3ce98aj8m.com/'+item.image" style="width: 100%;" mode="widthFix"></image> |
| 29 | - <view class="online-status" v-if="!item._isOnline" style="justify-content: center;color: red;"> | |
| 29 | + <view class="online-status" v-if="item._isOnline" style="justify-content: center;color: red;"> | |
| 30 | 30 | <!-- <image src="/static/online.png" mode=""></image> --> |
| 31 | 31 | <text>在线</text> |
| 32 | 32 | </view> | ... | ... |
uniapp-wuduhuajiao/unpackage/dist/dev/app-plus/app-service.js
| ... | ... | @@ -17978,7 +17978,7 @@ var render = function() { |
| 17978 | 17978 | _i: "12-" + $31 |
| 17979 | 17979 | } |
| 17980 | 17980 | }), |
| 17981 | - _vm._$s("13-" + $31, "i", !item._isOnline) | |
| 17981 | + _vm._$s("13-" + $31, "i", item._isOnline) | |
| 17982 | 17982 | ? _c( |
| 17983 | 17983 | "view", |
| 17984 | 17984 | { |
| ... | ... | @@ -18097,7 +18097,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu |
| 18097 | 18097 | /***/ (function(module, exports, __webpack_require__) { |
| 18098 | 18098 | |
| 18099 | 18099 | "use strict"; |
| 18100 | -eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n data: function data() {\n return {\n info: {},\n show: false };\n\n },\n onLoad: function onLoad(e) {var _this = this;\n this.id = e.id;\n this.API.wanlshopGetShopInfo({\n id: this.id }).\n then(function (res) {\n __f__(\"log\", 'wanlshopGetShopInfo', res.data, \" at pages/wanl-home/detail.vue:61\");\n _this.info = res.data;\n _this.info.user = _this.info.user.sort(function (a, b) {\n return a.type - b.type;\n });\n\n __f__(\"log\", 'this.info.user', _this.info.user, \" at pages/wanl-home/detail.vue:67\");\n //在线状态检测 start\n var users = _this.info.user.map(function (t) {\n return t.user_id;\n }).map(function (t) {\n return { intUserId: t, isOnline: false };\n });\n __f__(\"log\", 'getUserOnlineStatus users', users, \" at pages/wanl-home/detail.vue:74\");\n _this.API.message.getUserOnlineStatus({ users: users }).then(function (res) {\n __f__(\"log\", 'getUserOnlineStatus res', res, \" at pages/wanl-home/detail.vue:76\");\n var users = res.data.users;\n var list = _this.info.user.map(function (user) {\n var uu = users.find(function (u) {return u.intUserId == user.user_id;});\n user._isOnline = uu && uu.isOnline || user._isOnline || false;\n return user;\n });\n __f__(\"log\", 'list', list, \" at pages/wanl-home/detail.vue:83\");\n _this.info.user = list;\n _this.info = JSON.parse(JSON.stringify(_this.info));\n });\n //在线状态检测 end\n\n\n __f__(\"log\", '商家信息', _this.info, \" at pages/wanl-home/detail.vue:90\");\n _this.$forceUpdate();\n uni.setNavigationBarTitle({\n title: res.data.shopname });\n\n });\n },\n methods: {\n goNav: function goNav(url) {\n uni.navigateTo({\n url: url });\n\n },\n goNavT: function goNavT(id, type) {\n uni.navigateTo({\n url: \"/pages/shop1/list?id=\".concat(id, \"+&type=2\") });\n\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvd2FubC1ob21lL2RldGFpbC52dWUiXSwibmFtZXMiOlsiZGF0YSIsImluZm8iLCJzaG93Iiwib25Mb2FkIiwiZSIsImlkIiwiQVBJIiwid2FubHNob3BHZXRTaG9wSW5mbyIsInRoZW4iLCJyZXMiLCJ1c2VyIiwic29ydCIsImEiLCJiIiwidHlwZSIsInVzZXJzIiwibWFwIiwidCIsInVzZXJfaWQiLCJpbnRVc2VySWQiLCJpc09ubGluZSIsIm1lc3NhZ2UiLCJnZXRVc2VyT25saW5lU3RhdHVzIiwibGlzdCIsInV1IiwiZmluZCIsInUiLCJfaXNPbmxpbmUiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCIkZm9yY2VVcGRhdGUiLCJ1bmkiLCJzZXROYXZpZ2F0aW9uQmFyVGl0bGUiLCJ0aXRsZSIsInNob3BuYW1lIiwibWV0aG9kcyIsImdvTmF2IiwidXJsIiwibmF2aWdhdGVUbyIsImdvTmF2VCJdLCJtYXBwaW5ncyI6InFJQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWU7QUFDZEEsTUFEYyxrQkFDUDtBQUNOLFdBQU87QUFDTkMsVUFBSSxFQUFDLEVBREM7QUFFTkMsVUFBSSxFQUFDLEtBRkMsRUFBUDs7QUFJQSxHQU5hO0FBT2RDLFFBUGMsa0JBT1BDLENBUE8sRUFPSjtBQUNULFNBQUtDLEVBQUwsR0FBUUQsQ0FBQyxDQUFDQyxFQUFWO0FBQ0EsU0FBS0MsR0FBTCxDQUFTQyxtQkFBVCxDQUE2QjtBQUM1QkYsUUFBRSxFQUFDLEtBQUtBLEVBRG9CLEVBQTdCO0FBRUdHLFFBRkgsQ0FFUSxVQUFBQyxHQUFHLEVBQUU7QUFDWixtQkFBWSxxQkFBWixFQUFrQ0EsR0FBRyxDQUFDVCxJQUF0QztBQUNBLFdBQUksQ0FBQ0MsSUFBTCxHQUFVUSxHQUFHLENBQUNULElBQWQ7QUFDQSxXQUFJLENBQUNDLElBQUwsQ0FBVVMsSUFBVixHQUFlLEtBQUksQ0FBQ1QsSUFBTCxDQUFVUyxJQUFWLENBQWVDLElBQWYsQ0FBb0IsVUFBQ0MsQ0FBRCxFQUFHQyxDQUFILEVBQU87QUFDekMsZUFBT0QsQ0FBQyxDQUFDRSxJQUFGLEdBQU9ELENBQUMsQ0FBQ0MsSUFBaEI7QUFDQSxPQUZjLENBQWY7O0FBSUEsbUJBQVksZ0JBQVosRUFBNkIsS0FBSSxDQUFDYixJQUFMLENBQVVTLElBQXZDO0FBQ0E7QUFDQSxVQUFJSyxLQUFLLEdBQUcsS0FBSSxDQUFDZCxJQUFMLENBQVVTLElBQVYsQ0FBZU0sR0FBZixDQUFtQixVQUFBQyxDQUFDLEVBQUU7QUFDakMsZUFBT0EsQ0FBQyxDQUFDQyxPQUFUO0FBQ0EsT0FGVyxFQUVURixHQUZTLENBRUwsVUFBQUMsQ0FBQyxFQUFFO0FBQ1QsZUFBTyxFQUFDRSxTQUFTLEVBQUNGLENBQVgsRUFBYUcsUUFBUSxFQUFDLEtBQXRCLEVBQVA7QUFDQSxPQUpXLENBQVo7QUFLQSxtQkFBWSwyQkFBWixFQUF3Q0wsS0FBeEM7QUFDQSxXQUFJLENBQUNULEdBQUwsQ0FBU2UsT0FBVCxDQUFpQkMsbUJBQWpCLENBQXFDLEVBQUNQLEtBQUssRUFBTEEsS0FBRCxFQUFyQyxFQUE4Q1AsSUFBOUMsQ0FBbUQsVUFBQUMsR0FBRyxFQUFFO0FBQ3ZELHFCQUFZLHlCQUFaLEVBQXNDQSxHQUF0QztBQUNBLFlBQUlNLEtBQUssR0FBR04sR0FBRyxDQUFDVCxJQUFKLENBQVNlLEtBQXJCO0FBQ0EsWUFBSVEsSUFBSSxHQUFHLEtBQUksQ0FBQ3RCLElBQUwsQ0FBVVMsSUFBVixDQUFlTSxHQUFmLENBQW1CLFVBQUFOLElBQUksRUFBRTtBQUNuQyxjQUFJYyxFQUFFLEdBQUdULEtBQUssQ0FBQ1UsSUFBTixDQUFXLFVBQUFDLENBQUMsVUFBRUEsQ0FBQyxDQUFDUCxTQUFGLElBQWVULElBQUksQ0FBQ1EsT0FBdEIsRUFBWixDQUFUO0FBQ0FSLGNBQUksQ0FBQ2lCLFNBQUwsR0FBaUJILEVBQUUsSUFBSUEsRUFBRSxDQUFDSixRQUFULElBQXFCVixJQUFJLENBQUNpQixTQUExQixJQUF1QyxLQUF4RDtBQUNBLGlCQUFPakIsSUFBUDtBQUNBLFNBSlUsQ0FBWDtBQUtBLHFCQUFZLE1BQVosRUFBbUJhLElBQW5CO0FBQ0EsYUFBSSxDQUFDdEIsSUFBTCxDQUFVUyxJQUFWLEdBQWlCYSxJQUFqQjtBQUNBLGFBQUksQ0FBQ3RCLElBQUwsR0FBWTJCLElBQUksQ0FBQ0MsS0FBTCxDQUFXRCxJQUFJLENBQUNFLFNBQUwsQ0FBZSxLQUFJLENBQUM3QixJQUFwQixDQUFYLENBQVo7QUFDQSxPQVhEO0FBWUE7OztBQUdBLG1CQUFZLE1BQVosRUFBbUIsS0FBSSxDQUFDQSxJQUF4QjtBQUNBLFdBQUksQ0FBQzhCLFlBQUw7QUFDQUMsU0FBRyxDQUFDQyxxQkFBSixDQUEwQjtBQUN0QkMsYUFBSyxFQUFFekIsR0FBRyxDQUFDVCxJQUFKLENBQVNtQyxRQURNLEVBQTFCOztBQUdBLEtBckNEO0FBc0NBLEdBL0NhO0FBZ0RkQyxTQUFPLEVBQUM7QUFDUEMsU0FETyxpQkFDREMsR0FEQyxFQUNHO0FBQ1ROLFNBQUcsQ0FBQ08sVUFBSixDQUFlO0FBQ2RELFdBQUcsRUFBQ0EsR0FEVSxFQUFmOztBQUdBLEtBTE07QUFNUEUsVUFOTyxrQkFNQW5DLEVBTkEsRUFNR1MsSUFOSCxFQU1RO0FBQ2RrQixTQUFHLENBQUNPLFVBQUosQ0FBZTtBQUNkRCxXQUFHLGlDQUEwQmpDLEVBQTFCLGFBRFcsRUFBZjs7QUFHQSxLQVZNLEVBaERNLEUiLCJmaWxlIjoiMzgxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aW5mbzp7fSxcblx0XHRcdHNob3c6ZmFsc2Vcblx0XHR9XG5cdH0sXG5cdG9uTG9hZChlKSB7XG5cdFx0dGhpcy5pZD1lLmlkXG5cdFx0dGhpcy5BUEkud2FubHNob3BHZXRTaG9wSW5mbyh7XG5cdFx0XHRpZDp0aGlzLmlkXG5cdFx0fSkudGhlbihyZXM9Pntcblx0XHRcdGNvbnNvbGUubG9nKCd3YW5sc2hvcEdldFNob3BJbmZvJyxyZXMuZGF0YSk7XG5cdFx0XHR0aGlzLmluZm89cmVzLmRhdGFcblx0XHRcdHRoaXMuaW5mby51c2VyPXRoaXMuaW5mby51c2VyLnNvcnQoKGEsYik9Pntcblx0XHRcdFx0cmV0dXJuIGEudHlwZS1iLnR5cGVcblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHRjb25zb2xlLmxvZygndGhpcy5pbmZvLnVzZXInLHRoaXMuaW5mby51c2VyKTtcblx0XHRcdC8v5Zyo57q/54q25oCB5qOA5rWLIHN0YXJ0XG5cdFx0XHRsZXQgdXNlcnMgPSB0aGlzLmluZm8udXNlci5tYXAodD0+e1xuXHRcdFx0XHRyZXR1cm4gdC51c2VyX2lkO1xuXHRcdFx0fSkubWFwKHQ9Pntcblx0XHRcdFx0cmV0dXJuIHtpbnRVc2VySWQ6dCxpc09ubGluZTpmYWxzZX1cblx0XHRcdH0pO1xuXHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJPbmxpbmVTdGF0dXMgdXNlcnMnLHVzZXJzKTtcblx0XHRcdHRoaXMuQVBJLm1lc3NhZ2UuZ2V0VXNlck9ubGluZVN0YXR1cyh7dXNlcnN9KS50aGVuKHJlcz0+e1xuXHRcdFx0XHRjb25zb2xlLmxvZygnZ2V0VXNlck9ubGluZVN0YXR1cyByZXMnLHJlcyk7XG5cdFx0XHRcdGxldCB1c2VycyA9IHJlcy5kYXRhLnVzZXJzO1xuXHRcdFx0XHRsZXQgbGlzdCA9IHRoaXMuaW5mby51c2VyLm1hcCh1c2VyPT57XG5cdFx0XHRcdFx0bGV0IHV1ID0gdXNlcnMuZmluZCh1PT51LmludFVzZXJJZCA9PSB1c2VyLnVzZXJfaWQpO1xuXHRcdFx0XHRcdHVzZXIuX2lzT25saW5lID0gdXUgJiYgdXUuaXNPbmxpbmUgfHwgdXNlci5faXNPbmxpbmUgfHwgZmFsc2U7XG5cdFx0XHRcdFx0cmV0dXJuIHVzZXI7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRjb25zb2xlLmxvZygnbGlzdCcsbGlzdCk7XG5cdFx0XHRcdHRoaXMuaW5mby51c2VyID0gbGlzdDtcblx0XHRcdFx0dGhpcy5pbmZvID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmluZm8pKTtcblx0XHRcdH0pO1xuXHRcdFx0Ly/lnKjnur/nirbmgIHmo4DmtYsgZW5kXG5cdFx0XHRcblx0XHRcdFxuXHRcdFx0Y29uc29sZS5sb2coJ+WVhuWutuS/oeaBrycsdGhpcy5pbmZvKVxuXHRcdFx0dGhpcy4kZm9yY2VVcGRhdGUoKVxuXHRcdFx0dW5pLnNldE5hdmlnYXRpb25CYXJUaXRsZSh7XG5cdFx0XHQgICAgdGl0bGU6IHJlcy5kYXRhLnNob3BuYW1lXG5cdFx0XHQgICB9KTtcblx0XHR9KVxuXHR9LFxuXHRtZXRob2RzOntcblx0XHRnb05hdih1cmwpe1xuXHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHR1cmw6dXJsXG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0Z29OYXZUKGlkLHR5cGUpe1xuXHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHR1cmw6IGAvcGFnZXMvc2hvcDEvbGlzdD9pZD0ke2lkfSsmdHlwZT0yYFxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///381\n"); | |
| 18100 | +eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n data: function data() {\n return {\n info: {},\n show: false };\n\n },\n onLoad: function onLoad(e) {var _this = this;\n this.id = e.id;\n this.API.wanlshopGetShopInfo({\n id: this.id }).\n then(function (res) {\n __f__(\"log\", 'wanlshopGetShopInfo', res.data, \" at pages/wanl-home/detail.vue:61\");\n _this.info = res.data;\n _this.info.user = _this.info.user.sort(function (a, b) {\n return a.type - b.type;\n });\n\n __f__(\"log\", 'this.info.user', _this.info.user, \" at pages/wanl-home/detail.vue:67\");\n //在线状态检测 start\n var users = _this.info.user.map(function (t) {\n return t.user_id;\n }).map(function (t) {\n return { intUserId: t, isOnline: false };\n });\n __f__(\"log\", 'getUserOnlineStatus users', users, \" at pages/wanl-home/detail.vue:74\");\n _this.API.message.getUserOnlineStatus({ users: users }).then(function (res) {\n __f__(\"log\", 'getUserOnlineStatus res', res, \" at pages/wanl-home/detail.vue:76\");\n var users = res.data.users;\n var list = _this.info.user.map(function (user) {\n var uu = users.find(function (u) {return u.intUserId == user.user_id;});\n user._isOnline = uu && uu.isOnline || user._isOnline || false;\n return user;\n });\n __f__(\"log\", 'list', list, \" at pages/wanl-home/detail.vue:83\");\n _this.info.user = list;\n _this.info = JSON.parse(JSON.stringify(_this.info));\n });\n //在线状态检测 end\n\n\n __f__(\"log\", '商家信息', _this.info, \" at pages/wanl-home/detail.vue:90\");\n _this.$forceUpdate();\n uni.setNavigationBarTitle({\n title: res.data.shopname });\n\n });\n },\n methods: {\n goNav: function goNav(url) {\n uni.navigateTo({\n url: url });\n\n },\n goNavT: function goNavT(id, type) {\n uni.navigateTo({\n url: \"/pages/shop1/list?id=\".concat(id, \"+&type=2\") });\n\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvd2FubC1ob21lL2RldGFpbC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0RBO0FBQ0EsTUFEQSxrQkFDQTtBQUNBO0FBQ0EsY0FEQTtBQUVBLGlCQUZBOztBQUlBLEdBTkE7QUFPQSxRQVBBLGtCQU9BLENBUEEsRUFPQTtBQUNBO0FBQ0E7QUFDQSxpQkFEQTtBQUVBLFFBRkEsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FGQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BRkEsRUFFQSxHQUZBLENBRUE7QUFDQTtBQUNBLE9BSkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FKQTtBQUtBO0FBQ0E7QUFDQTtBQUNBLE9BWEE7QUFZQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsZ0NBREE7O0FBR0EsS0FyQ0E7QUFzQ0EsR0EvQ0E7QUFnREE7QUFDQSxTQURBLGlCQUNBLEdBREEsRUFDQTtBQUNBO0FBQ0EsZ0JBREE7O0FBR0EsS0FMQTtBQU1BLFVBTkEsa0JBTUEsRUFOQSxFQU1BLElBTkEsRUFNQTtBQUNBO0FBQ0EsMkRBREE7O0FBR0EsS0FWQSxFQWhEQSxFIiwiZmlsZSI6IjM4MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNGN0Y3Rjc7XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInRvcCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRvcC1saXN0IFwiIHYtZm9yPVwiKGl0ZW0saW5kZXgpIG9mIGluZm8uY2F0ZWdvcnlcIiA6a2V5PVwiaW5kZXhcIiBAY2xpY2s9XCJnb05hdlQoaXRlbS5pZCwyKVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWdcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIDpzcmM9XCInaHR0cDovL2FwcC54bi0tNDN2cDNjZTk4YWo4bS5jb20vJytpdGVtLmltYWdlXCIgdi1pZj1cIml0ZW0uaW1hZ2VcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cInBhZGRpbmc6IDE1cnB4O1wiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImZvbnQtc2l6ZTogMjhycHg7Zm9udC13ZWlnaHQ6IGJvbGQ7XCIgY2xhc3M9XCJ0aXRsZVwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7aXRlbS5uYW1lfX1cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHRcIj5cclxuXHRcdFx0XHRcdFx0XHTor6bmg4Xor7fkuI7lrqLmnI3msp/pgJrlkI7lho3kuIvljZVcclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0PCEtLSA8dmlldyBjbGFzcz1cImJ0biBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuXHRcdFx0PHZpZXcgPueCueWHu+afpeeci+abtOWkmnt7c2hvd319PC92aWV3PlxyXG5cdFx0XHQ8dW5pLWljb25zIHR5cGU9XCJib3R0b21cIiBzaXplPVwiMjBcIiBjb2xvcj1cIiMzRDNEM0RcIj48L3VuaS1pY29ucz5cclxuXHRcdDwvdmlldz4gLS0+XHJcblxyXG5cdFx0PHZpZXcgc3R5bGU9XCJtYXJnaW46IDIwcnB4IDE1cnB4O3BhZGRpbmctYm90dG9tOiAyMHJweDtcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGxpc3RfdXNlclwiIHYtZm9yPVwiKGl0ZW0saW5kZXgpIG9mIGluZm8udXNlclwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuXHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEyMHJweDtwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSA6c3JjPVwiJ2h0dHA6Ly9hcHAueG4tLTQzdnAzY2U5OGFqOG0uY29tLycraXRlbS5pbWFnZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJvbmxpbmUtc3RhdHVzXCIgdi1pZj1cIml0ZW0uX2lzT25saW5lXCIgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtjb2xvcjogcmVkO1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gPGltYWdlIHNyYz1cIi9zdGF0aWMvb25saW5lLnBuZ1wiIG1vZGU9XCJcIj48L2ltYWdlPiAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dD7lnKjnur88L3RleHQ+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiY29sb3I6ICNBOEE4QTg7Zm9udC1zaXplOiAyNnJweDttYXJnaW4tbGVmdDogMjBycHg7bWF4LXdpZHRoOiAxODBycHg7XCIgY2xhc3M9XCJ0aXRsZVwiPnt7aXRlbS5uYW1lfX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyB2LWlmPVwiaXRlbS50eXBlPT0xXCIgY2xhc3M9XCJ0eXBlXCI+5p2R6ZW/PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgdi1pZj1cIml0ZW0udHlwZT09MlwiIGNsYXNzPVwidHlwZTFcIj7npL7plb88L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyB2LWlmPVwiaXRlbS50eXBlPT0zXCIgY2xhc3M9XCJ0eXBlMlwiPuadkeawkTwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZhXCIgQGNsaWNrPVwiZ29OYXYoYC9wYWdlcy9jaGF0L2NoYXQ/dXNlcmlkPSR7aXRlbS51c2VyX2lkfSZ1c2VybmFtZT0ke2l0ZW0ubmFtZX1gKVwiPuWPkea2iOaBrzwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2hpXCIgQGNsaWNrPVwiZ29OYXYoYC9wYWdlcy9tZWV0aW5nL21lZXRpbmc/c2hvcF9pZD0ke2luZm8uaWR9JnVzZXJpZD0ke2l0ZW0udXNlcl9pZH0mdXNlcm5hbWU9JHtpdGVtLm5hbWV9YClcIj7op4bpopHov57nur88L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGluZm86e30sXHJcblx0XHRcdFx0c2hvdzpmYWxzZVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKGUpIHtcclxuXHRcdFx0dGhpcy5pZD1lLmlkXHJcblx0XHRcdHRoaXMuQVBJLndhbmxzaG9wR2V0U2hvcEluZm8oe1xyXG5cdFx0XHRcdGlkOnRoaXMuaWRcclxuXHRcdFx0fSkudGhlbihyZXM9PntcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnd2FubHNob3BHZXRTaG9wSW5mbycscmVzLmRhdGEpO1xyXG5cdFx0XHRcdHRoaXMuaW5mbz1yZXMuZGF0YVxyXG5cdFx0XHRcdHRoaXMuaW5mby51c2VyPXRoaXMuaW5mby51c2VyLnNvcnQoKGEsYik9PntcclxuXHRcdFx0XHRcdHJldHVybiBhLnR5cGUtYi50eXBlXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3RoaXMuaW5mby51c2VyJyx0aGlzLmluZm8udXNlcik7XHJcblx0XHRcdFx0Ly/lnKjnur/nirbmgIHmo4DmtYsgc3RhcnRcclxuXHRcdFx0XHRsZXQgdXNlcnMgPSB0aGlzLmluZm8udXNlci5tYXAodD0+e1xyXG5cdFx0XHRcdFx0cmV0dXJuIHQudXNlcl9pZDtcclxuXHRcdFx0XHR9KS5tYXAodD0+e1xyXG5cdFx0XHRcdFx0cmV0dXJuIHtpbnRVc2VySWQ6dCxpc09ubGluZTpmYWxzZX1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnZ2V0VXNlck9ubGluZVN0YXR1cyB1c2VycycsdXNlcnMpO1xyXG5cdFx0XHRcdHRoaXMuQVBJLm1lc3NhZ2UuZ2V0VXNlck9ubGluZVN0YXR1cyh7dXNlcnN9KS50aGVuKHJlcz0+e1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJPbmxpbmVTdGF0dXMgcmVzJyxyZXMpO1xyXG5cdFx0XHRcdFx0bGV0IHVzZXJzID0gcmVzLmRhdGEudXNlcnM7XHJcblx0XHRcdFx0XHRsZXQgbGlzdCA9IHRoaXMuaW5mby51c2VyLm1hcCh1c2VyPT57XHJcblx0XHRcdFx0XHRcdGxldCB1dSA9IHVzZXJzLmZpbmQodT0+dS5pbnRVc2VySWQgPT0gdXNlci51c2VyX2lkKTtcclxuXHRcdFx0XHRcdFx0dXNlci5faXNPbmxpbmUgPSB1dSAmJiB1dS5pc09ubGluZSB8fCB1c2VyLl9pc09ubGluZSB8fCBmYWxzZTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHVzZXI7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdsaXN0JyxsaXN0KTtcclxuXHRcdFx0XHRcdHRoaXMuaW5mby51c2VyID0gbGlzdDtcclxuXHRcdFx0XHRcdHRoaXMuaW5mbyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5pbmZvKSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Ly/lnKjnur/nirbmgIHmo4DmtYsgZW5kXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+WVhuWutuS/oeaBrycsdGhpcy5pbmZvKVxyXG5cdFx0XHRcdHRoaXMuJGZvcmNlVXBkYXRlKClcclxuXHRcdFx0XHR1bmkuc2V0TmF2aWdhdGlvbkJhclRpdGxlKHtcclxuXHRcdFx0XHQgICAgdGl0bGU6IHJlcy5kYXRhLnNob3BuYW1lXHJcblx0XHRcdFx0ICAgfSk7XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczp7XHJcblx0XHRcdGdvTmF2KHVybCl7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOnVybFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGdvTmF2VChpZCx0eXBlKXtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6IGAvcGFnZXMvc2hvcDEvbGlzdD9pZD0ke2lkfSsmdHlwZT0yYFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdC50ZXh0IHtcclxuXHRcdGNvbG9yOiAjOUU5RTlFO1xyXG5cdFx0Zm9udC1zaXplOiAyMnJweDtcclxuXHRcdHBhZGRpbmc6IDEwcnB4IDAgMTVycHg7XHJcblx0fVxyXG5cclxuXHQudG9wIHtcclxuXHRcdHBhZGRpbmctdG9wOiAyNXJweDtcclxuXHRcdG1hcmdpbjogMCAyNXJweCAwO1xyXG5cdH1cclxuXHJcblx0LnRvcC1saXN0IHtcclxuXHRcdHdpZHRoOiA0OCU7XHJcblxyXG5cdFx0aW1hZ2Uge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiAyNDBycHg7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRtYXJnaW4tYm90dG9tOjMwcnB4O1xyXG5cdH1cclxuXHJcblx0LmltZyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcblxyXG5cdC50aXRsZSB7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwOyAvL+aWh+acrOW8uuWItuS4jeaNouihjO+8m1xyXG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IC8vIOaWh+acrOa6ouWHuuaYvuekuuecgeeVpeWPt++8m1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjsgLy/muqLlh7rnmoTpg6jliIbpmpDol4/vvJtcclxuXHR9XHJcblxyXG5cdC5idG4ge1xyXG5cdFx0bWFyZ2luOiAwIDI1cnB4IDI1cnB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGhlaWdodDogODBycHg7XHJcblx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xyXG5cdH1cclxuXHJcblx0Lmxpc3RfdXNlciB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0cGFkZGluZzogMjBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNXJweDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcclxuXHR9XHJcblxyXG5cdC5mYSB7XHJcblx0XHRwYWRkaW5nOiAxMHJweDtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0Zm9udC1zaXplOiAyNHJweDtcclxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0YwNkZENCwgI0YwNkZENCk7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNXJweDtcclxuXHR9XHJcblxyXG5cdC5zaGkge1xyXG5cdFx0cGFkZGluZzogMTBycHg7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdGZvbnQtc2l6ZTogMjRycHg7XHJcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjA3ZGVnLCAjRDY2OUJFIDAlLCAjQUY5RkZGIDEwMCUpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTVycHg7XHJcblx0XHRtYXJnaW4tbGVmdDogMTBycHg7XHJcblx0fVxyXG5cdC50eXBle1xyXG5cdFx0Y29sb3I6ICMyRTYwN0M7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRTNGNUZGO1xyXG5cdFx0Zm9udC1zaXplOiAyNHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xyXG5cdFx0cGFkZGluZzogNXJweCAyMHJweCA7XHJcblx0XHRtYXJnaW4tbGVmdDogMjBycHg7XHJcblx0fVxyXG5cdC50eXBlMXtcclxuXHRcdGNvbG9yOiAjMkU3QzNCO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0UzRkZFRTtcclxuXHRcdGZvbnQtc2l6ZTogMjRycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNXJweDtcclxuXHRcdHBhZGRpbmc6IDVycHggMjBycHggO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDIwcnB4O1xyXG5cdH1cclxuXHQudHlwZTJ7XHJcblx0XHRjb2xvcjogIzdkNzFiNjtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNlMWU1ZmY7XHJcblx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTVycHg7XHJcblx0XHRwYWRkaW5nOiA1cnB4IDIwcnB4IDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAyMHJweDtcclxuXHR9XHJcblx0Lm9ubGluZS1zdGF0dXN7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRjb2xvcjojZmZmO1xyXG5cdFx0cGFkZGluZzogNXJweCAxMHJweDtcclxuXHRcdGZvbnQtc2l6ZTogMjBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAgMCAwIDE1cnB4IDE1cnB4O1xyXG5cdFx0aW1hZ2V7XHJcblx0XHRcdHdpZHRoOiAyNXJweDtcclxuXHRcdFx0aGVpZ2h0OiAyNXJweDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiA1cnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///381\n"); | |
| 18101 | 18101 | |
| 18102 | 18102 | /***/ }), |
| 18103 | 18103 | /* 382 */ | ... | ... |
uniapp-wuduhuajiao/unpackage/dist/dev/app-plus/pages/meeting/meeting.js
| ... | ... | @@ -2051,7 +2051,9 @@ var render = function() { |
| 2051 | 2051 | }, |
| 2052 | 2052 | [_vm._v("等待客服加入")] |
| 2053 | 2053 | ), |
| 2054 | - !_vm.hasInvite && _vm.joinType == "customer" | |
| 2054 | + !_vm.hasInvite && | |
| 2055 | + (_vm.joinType == "customer" || | |
| 2056 | + _vm.joinType == "seller") | |
| 2055 | 2057 | ? _c( |
| 2056 | 2058 | "u-text", |
| 2057 | 2059 | { |
| ... | ... | @@ -2464,17 +2466,25 @@ var render = function() { |
| 2464 | 2466 | attrs: { |
| 2465 | 2467 | placeholder: "想说点什么?", |
| 2466 | 2468 | placeholderStyle: "color:#fff", |
| 2467 | - confirmType: "send", | |
| 2468 | 2469 | confirmHold: true, |
| 2469 | 2470 | value: _vm.messageContent |
| 2470 | 2471 | }, |
| 2471 | 2472 | on: { |
| 2472 | - confirm: _vm.sendMessage, | |
| 2473 | 2473 | input: function($event) { |
| 2474 | 2474 | _vm.messageContent = $event.detail.value |
| 2475 | 2475 | } |
| 2476 | 2476 | } |
| 2477 | - }) | |
| 2477 | + }), | |
| 2478 | + _vm.messageContent | |
| 2479 | + ? _c( | |
| 2480 | + "button", | |
| 2481 | + { | |
| 2482 | + staticClass: ["btn", "submit-btn"], | |
| 2483 | + on: { click: _vm.sendMessage } | |
| 2484 | + }, | |
| 2485 | + [_vm._v("发送")] | |
| 2486 | + ) | |
| 2487 | + : _vm._e() | |
| 2478 | 2488 | ], |
| 2479 | 2489 | 1 |
| 2480 | 2490 | ) |
| ... | ... | @@ -2513,7 +2523,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu |
| 2513 | 2523 | /***/ (function(module, exports, __webpack_require__) { |
| 2514 | 2524 | |
| 2515 | 2525 | "use strict"; |
| 2516 | -eval("/* WEBPACK VAR INJECTION */(function(__webpack_provided_uni_dot_requireNativePlugin, __f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _vuex = __webpack_require__(/*! vuex */ 12);\n\n\nvar _permission = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/permission.js */ 80));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/lib/index */ 81));\nvar _TrtcDefines = __webpack_require__(/*! @/TrtcCloud/lib/TrtcDefines */ 83);\n\n\n\n\n\nvar _GenerateTestUserSig = __webpack_require__(/*! @/debug/GenerateTestUserSig */ 84);\n\n\nvar _TrtcLocalView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcLocalView */ 86));\nvar _TrtcRemoteView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcRemoteView */ 91));\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/apis/index.js */ 96));\nvar _config = _interopRequireDefault(__webpack_require__(/*! @/common/config/config.js */ 104));\nvar _service = _interopRequireDefault(__webpack_require__(/*! @/service/service.js */ 99));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}var TrtcEvent = __webpack_provided_uni_dot_requireNativePlugin('globalEvent');\nvar socketTask = getApp().globalData.socketTask;var _default =\n{\n components: {\n TrtcLocalView: _TrtcLocalView.default,\n TrtcRemoteView: _TrtcRemoteView.default },\n\n filters: {\n imageUrlFilter: function imageUrlFilter(val) {\n try {\n if (val.indexOf('data:') == 0) {\n var base64 = val;\n base64 = base64.replace(\"/data:image//png;base64,/\", \"\");\n base64 = base64.replace(\"/\\/\", \"\");\n return base64;\n }\n if (val.indexOf('http') == 0 || val.indexOf('../') == 0 || val.indexOf('/static') == 0) {\n return val;\n }\n return _config.default.baseurl + val;\n } catch (e) {\n return val;\n }\n } },\n\n data: function data() {\n return {\n hasInvite: false,\n //需方\n meetingCustomerUser: {\n userId: 0,\n meeting: false },\n\n //供方\n meetingBusinessUser: {\n userId: 0,\n meeting: false },\n\n\n //客服\n meetingServiceUser: {\n userId: 0,\n meeting: false },\n\n num: 10,\n trtcCloud: null,\n sdkAppId: 0,\n userSig: '',\n roomId: 0,\n userId: '',\n userType: '等待进入',\n appScene: _TrtcDefines.TRTCAppScene.TRTCAppSceneVideoCall, // TRTCAppSceneVideoCall\n isFrontCamera: true,\n streamType: _TrtcDefines.TRTCVideoStreamType.TRTCVideoStreamTypeBig,\n remoteUserId: '',\n audioRoute: _TrtcDefines.TRTCCloudDef.TRTC_AUDIO_ROUTE_SPEAKER,\n messageList: [],\n messageContent: '',\n myUserInfo: '',\n room: {},\n shopId: 0,\n sellerUserId: 0,\n param: {},\n joinType: 'customer',\n scorllId: 'bottom' };\n\n },\n computed: _objectSpread(_objectSpread({},\n (0, _vuex.mapState)(['user', 'statistics', 'common'])), {}, {\n startBtnVisible: function startBtnVisible() {\n if (this.userId == this.meetingServiceUser.userId) {\n return !this.meetingServiceUser.meeting && this.meetingBusinessUser.userId;\n }\n return false;\n },\n joinBtnVisible: function joinBtnVisible() {\n if (this.userId != this.meetingServiceUser.userId) {\n return this.meetingServiceUser.meeting && !this.meeting;\n }\n return false;\n } }),\n\n onLoad: function onLoad(e) {var _this = this;\n __f__(\"log\", 'meeting onload', e, \" at pages/meeting/meeting.nvue:213\");\n this.param = e;\n //加入类型,是以什么身份加入的\n var joinType = e.joinType || 'customer';\n this.joinType = joinType;\n this.roomId = e.roomId;\n this.sellerUserId = e.userid;\n this.userId = \"\".concat(joinType, \"_\") + this.user.id;\n __f__(\"log\", 'this.user', this.user, \" at pages/meeting/meeting.nvue:221\");\n this.shopId = e.shop_id;\n\n if (joinType == 'customer') {\n //需方\n this.meetingCustomerUser = Object.assign({}, this.meetingCustomerUser, {\n userId: this.userId,\n id: this.user.id });\n\n this.createRoom({\n \"name\": \"测试房间\",\n \"bodyText\": \"\",\n \"roomNo\": \"\",\n \"description\": \"\",\n \"clientId\": \"\",\n // \"productId\": e.goods_id,\n \"shopId\": e.shop_id });\n\n this.getUserInfo(this.user.id, 'customer');\n } else {\n this.room = {\n id: e.roomId,\n RoomNo: e.roomId };\n\n this.meetingCustomerUser = {\n userId: \"customer_\" + e.customerid.toString(),\n id: e.customerid,\n meeting: false };\n\n }\n if (joinType == 'seller') {\n //供方\n this.meetingBusinessUser = {\n userId: this.userId,\n id: this.user.id,\n meeting: false };\n\n this.getUserInfo(this.user.id, 'seller');\n }\n if (joinType == 'service') {\n //平台客服\n this.meetingServiceUser = {\n userId: this.userId,\n id: this.user.id,\n meeting: false };\n\n this.getUserInfo(this.user.id, 'service');\n }\n if (this.roomId) {\n this.joinRoom();\n this.handleStartMeeting();\n }\n this.$forceUpdate();\n //文字聊天\n uni.$on('socketMessage', function (data) {\n __f__(\"log\", 'socketMessage', data, \" at pages/meeting/meeting.nvue:276\");\n if (data.messageType == 'send_to_room' || data.method == 'send_to_room') {\n var formUserId = data.formUserId || '';\n var _joinType = formUserId.split('_')[0];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n var sendUserName = userType[_joinType] || data.realName;\n _this.addMessage(sendUserName, data.message);\n }\n if (data.messageType == 'join' || data.method == 'join') {\n var userid = data.userIntId;\n if (userid != _this.user.id) {\n //有用户加入房间\n var _joinType2 = data.messageContent;\n __f__(\"log\", 'joinType', _joinType2, data, \" at pages/meeting/meeting.nvue:293\");\n if (_joinType2 == 'seller') {\n _this.meetingBusinessUser.userId = 'seller_' + userid;\n _this.meetingBusinessUser.id = userid;\n _this.addMessage('', '供方加入房间');\n }\n if (_joinType2 == 'service') {\n _this.meetingServiceUser.userId = 'service_' + userid;\n _this.meetingServiceUser.id = userid;\n _this.addMessage('', '客服加入房间');\n }\n _this.getUserInfo(userid, _joinType2);\n }\n }\n });\n },\n onHide: function onHide() {\n this.destroyInstance();\n this.stopLocalPreview();\n },\n mounted: function mounted() {\n if (uni.getSystemInfoSync().platform === 'android') {\n _permission.default.requestAndroidPermission('android.permission.RECORD_AUDIO');\n _permission.default.requestAndroidPermission('android.permission.CAMERA');\n }\n this.initUserSign();\n },\n onUnload: function onUnload() {\n this.destroyInstance();\n __f__(\"log\", '- onUnload', \" at pages/meeting/meeting.nvue:322\");\n },\n onBackPress: function onBackPress() {\n this.destroyInstance();\n },\n methods: {\n getUserInfo: function getUserInfo(id, type) {var _this2 = this;\n _index2.default.getUserInfo(id).then(function (res) {\n __f__(\"log\", 'getUserInfo', res, \" at pages/meeting/meeting.nvue:330\");\n var user = res.data;\n if (user && user.id) {\n if (type == 'customer') {\n _this2.meetingCustomerUser.userInfo = user;\n }\n if (type == 'seller') {\n _this2.meetingBusinessUser.userInfo = user;\n }\n if (type == 'service') {\n _this2.meetingServiceUser.userInfo = user;\n }\n }\n _this2.$forceUpdate();\n });\n },\n addMessage: function addMessage(author, message) {var _this3 = this;\n this.messageList.push({\n author: author || '系统',\n content: message,\n id: this.messageList.length });\n\n this.$nextTick(function () {\n _this3.scrollToBottom();\n });\n },\n scrollToBottom: function scrollToBottom() {var _this4 = this;\n this.scorllId = 'item1_' + this.messageList[this.messageList.length - 1].id;\n this.$nextTick(function () {\n _this4.scorllId = 'bottom';\n });\n\n },\n joinRoom: function joinRoom() {\n var param = {\n method: 'join',\n IsRoom: true,\n RoomNo: this.roomId,\n RoomName: this.room.RoomName,\n messageContent: this.joinType,\n token: _service.default.getTokenChaoge() };\n\n __f__(\"log\", 'joinRoom', param, \" at pages/meeting/meeting.nvue:372\");\n socketTask.send({\n data: JSON.stringify(param),\n success: function success(res) {\n __f__(\"log\", 'socketTask.send success', res, \" at pages/meeting/meeting.nvue:376\");\n },\n fail: function (_fail) {function fail(_x) {return _fail.apply(this, arguments);}fail.toString = function () {return _fail.toString();};return fail;}(function (e) {\n __f__(\"log\", 'socketTask.send fail', fail, \" at pages/meeting/meeting.nvue:379\");\n socketTask = getApp().globalData.initSocket();\n }),\n complete: function complete() {} });\n\n },\n initUserSign: function initUserSign() {var _this5 = this;\n if (this.userId) {\n __f__(\"log\", 'initUserSign', this.userId, \" at pages/meeting/meeting.nvue:387\");\n // 生成 userSig\n var _genTestUserSig =\n\n\n (0, _GenerateTestUserSig.genTestUserSig)(this.userId),sdkAppId = _genTestUserSig.sdkAppId,userSig = _genTestUserSig.userSig;\n this.sdkAppId = sdkAppId;\n this.userSig = userSig;\n __f__(\"log\", 'sdkAppId,userSig', sdkAppId, userSig, \" at pages/meeting/meeting.nvue:395\");\n if (!sdkAppId || !userSig) {\n uni.showToast({\n title: '请填写 sdkAppId、userSig',\n icon: 'none' });\n\n }\n } else {\n setTimeout(function () {\n _this5.initUserSign();\n }, 200);\n }\n },\n handleToSubmitOrder: function handleToSubmitOrder() {\n uni.navigateBack();\n },\n //邀请商家客服\n handleInviteBusinessUser: function handleInviteBusinessUser() {\n _index2.default.message.getInviteBusinessUserJoin(this.shopId || 0, this.room.RoomNo, this.sellerUserId).then(function (res) {});\n },\n //邀请平台客服\n handleInviteServiceUser: function handleInviteServiceUser() {var _this6 = this;\n uni.showLoading();\n _index2.default.message.getInviteServiceUserJoin(this.room.RoomNo, 'joinMultiplayerVideo').then(function (res) {\n uni.showToast({\n title: '邀请成功' });\n\n _this6.hasInvite = true;\n }).finally(function () {\n uni.hideLoading();\n });\n },\n createRoom: function createRoom(data) {var _this7 = this;\n uni.showLoading({\n title: '正在创建房间' });\n\n _index2.default.message.postAddRoom(data).then(function (res) {\n _this7.room = res.data;\n _this7.roomId = res.data.RoomNo;\n _this7.handleInviteBusinessUser();\n _this7.joinRoom();\n _this7.handleStartMeeting();\n }).finally(function () {\n uni.hideLoading();\n });\n },\n\n sendMessage: function sendMessage() {\n var that = this;\n var param = JSON.stringify({\n formUserId: this.userId,\n contentType: \"\",\n content: this.messageContent,\n messageContent: this.messageContent,\n sendTime: new Date(),\n method: 'send_to_room',\n RoomNo: this.room.RoomNo,\n RoomName: this.room.Name,\n IsRoom: true,\n token: _service.default.getTokenChaoge() });\n\n __f__(\"log\", param, \" at pages/meeting/meeting.nvue:456\");\n socketTask.send({\n data: param,\n success: function success(res) {\n __f__(\"log\", 'socketTask.send success', res, \" at pages/meeting/meeting.nvue:460\");\n },\n fail: function fail(e) {\n __f__(\"log\", 'socketTask.send fail', e, \" at pages/meeting/meeting.nvue:463\");\n },\n complete: function complete() {} });\n\n that.messageContent = '';\n },\n handleJoinMeeting: function handleJoinMeeting() {\n this.meeting = true;\n this.startLocalPreview();\n },\n handleStartMeeting: function handleStartMeeting() {var _this8 = this;\n this.$nextTick(function () {\n _this8.createTrtcCloud();\n _this8.enterRoom();\n });\n },\n handleEndtMeeting: function handleEndtMeeting() {\n this.meeting = false;\n this.meetingCustomerUser.meeting = false;\n this.meetingBusinessUser.meeting = false;\n this.meetingServiceUser.meeting = false;\n this.stopLocalPreview();\n // this.exitRoom();\n },\n\n bindInputChange: function bindInputChange(event, type) {\n var value = event.detail.value;\n switch (type) {\n case 'roomId':{\n this.roomId = value;\n break;\n }\n case 'userId':{\n this.userId = value;\n break;\n }}\n\n },\n destroyInstance: function destroyInstance() {\n if (this.trtcCloud) {\n _index.default.destroyInstance();\n this.trtcCloud = null;\n }\n },\n createTrtcCloud: function createTrtcCloud() {\n if (!this.trtcCloud) {\n this.trtcCloud = _index.default.createInstance();\n this.handleEvents();\n this.sdkAppId && uni.$createTrtcCloudUpload(this.sdkAppId);\n }\n },\n enterRoom: function enterRoom() {\n var userId = this.userId;\n try {var\n\n sdkAppId =\n\n\n this.sdkAppId,appScene = this.appScene,userSig = this.userSig;\n var param = {\n roomId: 0,\n strRoomId: this.room.RoomNo,\n userId: this.userId,\n sdkAppId: sdkAppId,\n userSig: userSig };\n\n __f__(\"log\", 'enterRoom', param, \" at pages/meeting/meeting.nvue:529\");\n this.trtcCloud.enterRoom(param, appScene);\n this.sdkAppId && uni.$enterRoomSuccessUpload(this.sdkAppId);\n\n\n } catch (error) {\n this.addMessage('', \"enterRoom error = \".concat(JSON.stringify(error)));\n this.sdkAppId && uni.$enterRoomFailedUpload(this.sdkAppId, JSON.stringify(error));\n }\n },\n exitRoom: function exitRoom() {\n try {\n this.meeting = false;\n this.stopLocalPreview();\n this.stopRemoteView();\n this.trtcCloud.exitRoom();\n } catch (e) {\n // TODO handle the exception\n }\n },\n startLocalPreview: function startLocalPreview() {var _this9 = this;\n this.meeting = true;\n var userId = this.userId;\n if (this.meetingBusinessUser.userId == userId) {\n this.meetingBusinessUser.meeting = true;\n }\n if (this.meetingCustomerUser.userId == userId) {\n this.meetingCustomerUser.meeting = true;\n }\n if (this.meetingServiceUser.userId == userId) {\n this.meetingServiceUser.meeting = true;\n }\n this.enterRoom();\n this.$nextTick(function () {\n _this9.trtcCloud.startLocalPreview(_this9.isFrontCamera, \"\".concat(_this9.joinType, \"_local\"));\n _this9.trtcCloud.startLocalAudio(_TrtcDefines.TRTCAudioQuality.TRTCAudioQualityDefault);\n _this9.sdkAppId && uni.$startLocalPreviewUpload(_this9.sdkAppId);\n });\n },\n stopLocalPreview: function stopLocalPreview() {\n this.trtcCloud.stopLocalPreview();\n this.trtcCloud.stopLocalAudio();\n },\n startRemoteView: function startRemoteView(userId) {var _this10 = this;\n var joinType = userId.split('_')[0];\n var playType = userId == this.userId ? 'local' : 'remote';\n\n if (joinType == 'customer') {\n this.meetingCustomerUser.userId = userId;\n this.meetingCustomerUser.meeting = true;\n }\n if (joinType == 'seller') {\n this.meetingBusinessUser.userId = userId;\n this.meetingBusinessUser.meeting = true;\n }\n if (joinType == 'service') {\n this.meetingServiceUser.userId = userId;\n this.meetingServiceUser.meeting = true;\n }\n this.$forceUpdate();\n setTimeout(function () {\n _this10.$nextTick(function () {\n _this10.trtcCloud.startRemoteView(userId, _this10.streamType, \"\".concat(joinType, \"_\").concat(playType));\n _this10.sdkAppId && uni.$startRemoteViewSuccessUpload(_this10.sdkAppId);\n });\n }, 1000);\n },\n stopRemoteView: function stopRemoteView(userId) {\n this.trtcCloud.stopRemoteView(userId, this.streamType);\n if (this.meetingBusinessUser.userId == userId) {\n this.meetingBusinessUser.meeting = false;\n }\n if (this.meetingCustomerUser.userId == userId) {\n this.meetingCustomerUser.meeting = false;\n }\n if (this.meetingServiceUser.userId == userId) {\n this.meetingServiceUser.meeting = false;\n }\n\n },\n // 听筒、免提 切换\n switchAudioRoute: function switchAudioRoute() {\n this.audioRoute = this.audioRoute === _TrtcDefines.TRTCCloudDef.TRTC_AUDIO_ROUTE_SPEAKER ? _TrtcDefines.TRTCCloudDef.\n TRTC_AUDIO_ROUTE_EARPIECE : _TrtcDefines.TRTCCloudDef.TRTC_AUDIO_ROUTE_SPEAKER;\n this.trtcCloud.setAudioRoute(this.audioRoute);\n },\n handleEvents: function handleEvents() {var _this11 = this;\n this.trtcCloud.on('onWarning', function (res) {\n // uni.showToast({\n // \ttitle: `本地摄像头错误`,\n // \ticon: 'none',\n // });\n });\n this.trtcCloud.on('onError', function (res) {\n __f__(\"log\", 'onError', res, \" at pages/meeting/meeting.nvue:623\");\n _this11.sdkAppId && uni.$onErrorUpload(_this11.sdkAppId, JSON.stringify(res));\n });\n this.trtcCloud.on('onEnterRoom', function (result) {\n __f__(\"log\", \"- onEnterRoom = \".concat(result), \" at pages/meeting/meeting.nvue:627\");\n if (result > 0) {\n _this11.addMessage('', \"\\u8FDB\\u623F\\u6210\\u529F\\uFF0C\\u8017\\u65F6: \".concat(result, \"ms\"));\n } else {\n __f__(\"log\", \"enter room failed\\uFF0Cerror code = \".concat(result), \" at pages/meeting/meeting.nvue:631\");\n }\n });\n this.trtcCloud.on('onExitRoom', function (reason) {\n var reasonList = ['主动调用 exitRoom 退房', '被服务器踢出当前房间', '当前房间整个被解散'];\n _this11.addMessage('', \"\\u9000\\u623F \".concat(reasonList[reason]));\n _this11.meeting = false;\n });\n this.trtcCloud.on('onFirstVideoFrame', function (res) {\n __f__(\"log\", \"\\u6E32\\u67D3\\u7684\\u9996\\u5E27\\u753B\\u9762\\u54CD\\u5E94 = \".concat(JSON.stringify(res)), \" at pages/meeting/meeting.nvue:640\");\n });\n this.trtcCloud.on('onRemoteUserEnterRoom', function (userId) {\n __f__(\"log\", 'onRemoteUserEnterRoom', userId, \" at pages/meeting/meeting.nvue:643\");\n var joinType = userId.split('_')[0];\n var userid = userId.split('_')[1];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n _this11.addMessage('', \"\".concat(userType[joinType] || '未知用户', \"\\u52A0\\u5165\\u89C6\\u9891\\u804A\\u5929\"));\n _this11.getUserInfo(userid, joinType);\n\n if (joinType == 'customer') {\n _this11.meetingCustomerUser.userId = userId;\n }\n if (joinType == 'seller') {\n _this11.meetingBusinessUser.userId = userId;\n }\n if (joinType == 'service') {\n _this11.meetingServiceUser.userId = userId;\n }\n\n\n\n });\n this.trtcCloud.on('onRemoteUserLeaveRoom', function (userId) {\n var joinType = userId.split('_')[0];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n _this11.addMessage('', \"\".concat(userType[joinType] || '未知用户', \"\\u9000\\u51FA\\u89C6\\u9891\\u804A\\u5929\"));\n if (joinType == 'service') {\n _this11.meeting = false;\n _this11.meetingCustomerUser.meeting = false;\n _this11.meetingServiceUser.meeting = false;\n _this11.meetingBusinessUser.meeting = false;\n _this11.stopLocalPreview();\n _this11.stopRemoteView(_this11.meetingCustomerUser.userId);\n _this11.stopRemoteView(_this11.meetingServiceUser.userId);\n _this11.stopRemoteView(_this11.meetingBusinessUser.userId);\n }\n if (userId == _this11.userId) {\n _this11.stopLocalPreview();\n } else {\n _this11.stopRemoteView(userId);\n }\n });\n this.trtcCloud.on('onUserVideoAvailable', function (res) {var\n\n userId =\n\n res.userId,available = res.available;\n __f__(\"log\", 'onUserVideoAvailable', res, \" at pages/meeting/meeting.nvue:696\");\n var joinType = userId.split('_')[0];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n\n\n\n if (available) {\n if (_this11.meeting) {\n _this11.$nextTick(function () {\n _this11.startRemoteView(userId);\n });\n } else {\n if (joinType == 'service') {\n _this11.meeting = true;\n _this11.$nextTick(function () {\n _this11.startLocalPreview();\n _this11.startRemoteView(userId);\n });\n }\n }\n } else {\n _this11.addMessage('', \"\".concat(userType[joinType] || '未知用户', \"\\u9000\\u51FA\\u89C6\\u9891\\u804A\\u5929\"));\n if (joinType == 'service') {\n _this11.meeting = false;\n _this11.meetingCustomerUser.meeting = false;\n _this11.meetingServiceUser.meeting = false;\n _this11.meetingBusinessUser.meeting = false;\n _this11.stopLocalPreview();\n _this11.stopRemoteView(_this11.meetingCustomerUser.userId);\n _this11.stopRemoteView(_this11.meetingServiceUser.userId);\n _this11.stopRemoteView(_this11.meetingBusinessUser.userId);\n }\n if (userId == _this11.userId) {\n _this11.stopLocalPreview();\n } else {\n _this11.stopRemoteView(userId);\n }\n }\n });\n this.trtcCloud.on('onExitRoom', function (res) {\n __f__(\"log\", \"onExitRoom = \".concat(JSON.stringify(res)), \" at pages/meeting/meeting.nvue:740\");\n });\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-hbuilderx/packages/uni-app-plus-nvue/dist/require-native-plugin.js */ 32)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 48)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVldGluZy9tZWV0aW5nLm52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4R0E7OztBQUdBO0FBQ0E7QUFDQTs7Ozs7O0FBTUE7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJGLHduQ0FIQTtBQUlBLGdEO0FBQ0E7QUFDQTtBQUNBLHlDQURBO0FBRUEsMkNBRkEsRUFEQTs7QUFLQTtBQUNBLGtCQURBLDBCQUNBLEdBREEsRUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQVhBLENBV0E7QUFDQTtBQUNBO0FBQ0EsS0FoQkEsRUFMQTs7QUF1QkEsTUF2QkEsa0JBdUJBO0FBQ0E7QUFDQSxzQkFEQTtBQUVBO0FBQ0E7QUFDQSxpQkFEQTtBQUVBLHNCQUZBLEVBSEE7O0FBT0E7QUFDQTtBQUNBLGlCQURBO0FBRUEsc0JBRkEsRUFSQTs7O0FBYUE7QUFDQTtBQUNBLGlCQURBO0FBRUEsc0JBRkEsRUFkQTs7QUFrQkEsYUFsQkE7QUFtQkEscUJBbkJBO0FBb0JBLGlCQXBCQTtBQXFCQSxpQkFyQkE7QUFzQkEsZUF0QkE7QUF1QkEsZ0JBdkJBO0FBd0JBLHNCQXhCQTtBQXlCQSwrREF6QkEsRUF5QkE7QUFDQSx5QkExQkE7QUEyQkEseUVBM0JBO0FBNEJBLHNCQTVCQTtBQTZCQSxvRUE3QkE7QUE4QkEscUJBOUJBO0FBK0JBLHdCQS9CQTtBQWdDQSxvQkFoQ0E7QUFpQ0EsY0FqQ0E7QUFrQ0EsZUFsQ0E7QUFtQ0EscUJBbkNBO0FBb0NBLGVBcENBO0FBcUNBLDBCQXJDQTtBQXNDQSx3QkF0Q0E7O0FBd0NBLEdBaEVBO0FBaUVBO0FBQ0EsdURBREE7QUFF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Q0E7QUFDQSxPQUpBO0FBS0E7QUFDQTtBQUNBLE9BRkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQSxzQkFGQTtBQUdBLHVCQUhBOztBQUtBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUEsT0F4QkE7QUF5QkE7QUFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQSxzQkFGQTtBQUdBLHVCQUhBOztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBLE9BdkJBO0FBd0JBOztBQUVBLGNBRkE7O0FBSUEsV0FKQSxDQUVBLE1BRkEsQ0FHQSxTQUhBLEdBSUEsR0FKQSxDQUdBLFNBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTtBQUVBLHNCQUZBO0FBR0EsdUJBSEE7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUZBO0FBR0EsV0FKQSxNQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBSEE7QUFJQTtBQUNBO0FBQ0EsU0FkQSxNQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQS9DQTtBQWdEQTtBQUNBO0FBQ0EsT0FGQTtBQUdBLEtBL1pBLEVBbk1BLEUiLCJmaWxlIjoiMTEyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3PlxyXG5cdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9ob21lL2JhbmNrMi5wbmdcIiBzdHlsZT1cIndpZHRoOiA3NTBycHg7IGhlaWdodDogMTAwJTtcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJiYWNrXCI+XHJcblx0XHRcdDwhLS0g5bmz5Y+w5a6i5pyNIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3QxXCI+XHJcblx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaW1nLWJnXCIgc3R5bGU9XCJsZWZ0OiA2MHJweDtib3R0b206IC0yMHJweDtcIiBzcmM9XCIvc3RhdGljL2hlYWRfa2VmdS5wbmdcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6MzYwcnB4O3dpZHRoOiAzMDBycHg7ZmxleC1kaXJlY3Rpb246IHJvdztqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjttYXJnaW46IDAgYXV0bztcIj5cclxuXHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdHYtaWY9XCJtZWV0aW5nU2VydmljZVVzZXIudXNlcklkICYmIHVzZXJJZCA9PSBtZWV0aW5nU2VydmljZVVzZXIudXNlcklkICYmIG1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nXCI+XHJcblx0XHRcdFx0XHRcdDx0cnRjLWxvY2FsLXZpZXcgdmlld0lkPVwic2VydmljZV9sb2NhbFwiIHN0eWxlPVwiaGVpZ2h0OiAzODBycHg7d2lkdGg6IDM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0PC90cnRjLWxvY2FsLXZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHQ6Y2xhc3M9XCJ7J2hpZGUnOiEobWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCAmJiB1c2VySWQgIT0gbWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCAmJiBtZWV0aW5nU2VydmljZVVzZXIubWVldGluZyl9XCI+XHJcblx0XHRcdFx0XHRcdDx0cnRjLXJlbW90ZS12aWV3IDp1c2VySWQ9XCJtZWV0aW5nU2VydmljZVVzZXIudXNlcklkXCIgdmlld0lkPVwic2VydmljZV9yZW1vdGVcIlxyXG5cdFx0XHRcdFx0XHRcdHN0eWxlPVwiaGVpZ2h0OiAzNjBycHg7d2lkdGg6IDMwMHJweDtcIj5cclxuXHRcdFx0XHRcdFx0PC90cnRjLXJlbW90ZS12aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgIHYtaWY9XCIhbWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZFwiIGNsYXNzPVwibGlzdC13YWl0aW5nXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IHN0eWxlPVwiY29sb3I6ICNmZmY7XCI+562J5b6F5a6i5pyN5Yqg5YWlPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInNpbXBsZS1idG5cIiBzdHlsZT1cIm1hcmdpbi10b3A6NDBweDtcIiBAY2xpY2s9XCJoYW5kbGVJbnZpdGVTZXJ2aWNlVXNlclwiIHYtaWY9XCIhaGFzSW52aXRlICYmIGpvaW5UeXBlID09ICdjdXN0b21lcidcIj7pgoDor7flrqLmnI08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8YmxvY2sgdi1pZj1cIm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgIW1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSB2LWlmPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJbmZvICYmIG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySW5mby5hdmF0YXJcIiA6c3JjPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJbmZvLmF2YXRhciB8IGltYWdlVXJsRmlsdGVyXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O2hlaWdodDogMzYwcnB4O2JvcmRlci1yYWRpdXM6IDQwcnB4O1wiIG1vZGU9XCJhc3BlY3RGaWxsXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwibmFtZVwiPuWuouacjTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47d2lkdGg6IDY1MHJweDttYXJnaW4tdG9wOjQwcnB4O1wiPlxyXG5cdFx0XHRcdDwhLS3kvpvmlrktLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImxpc3QxXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O21hcmdpbi1yaWdodDogMjBweDtcIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImltZy1iZ1wiIHNyYz1cIi9zdGF0aWMvaGVhZF9nZi5wbmdcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6MzYwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsnaGlkZSc6IShtZWV0aW5nQnVzaW5lc3NVc2VyICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID09IHVzZXJJZCAmJiBtZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcpfVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLWxvY2FsLXZpZXcgdmlld0lkPVwic2VsbGVyX2xvY2FsXCIgc3R5bGU9XCJoZWlnaHQ6IDM4MHJweDt3aWR0aDogMzYwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwvdHJ0Yy1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0OmNsYXNzPVwieydoaWRlJzohKG1lZXRpbmdCdXNpbmVzc1VzZXIgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgIT0gdXNlcklkICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyl9XCI+XHJcblx0XHRcdFx0XHRcdFx0PHRydGMtcmVtb3RlLXZpZXcgOnVzZXJJZD1cIm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkXCIgdmlld0lkPVwic2VsbGVyX3JlbW90ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMzYwcnB4O3dpZHRoOiAzMDBycHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PC90cnRjLXJlbW90ZS12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3ICB2LWlmPVwiIW1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkXCIgY2xhc3M9XCJsaXN0LXdhaXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBzdHlsZT1cImNvbG9yOiAjZmZmO1wiPuetieW+heS+m+aWueWKoOWFpTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8YmxvY2sgdi1pZj1cIm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkICYmICFtZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cIm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlckluZm8gJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySW5mby5hdmF0YXJcIiA6c3JjPVwibWVldGluZ0J1c2luZXNzVXNlci51c2VySW5mby5hdmF0YXIgfCBpbWFnZVVybEZpbHRlclwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDtoZWlnaHQ6IDM2MHJweDtib3JkZXItcmFkaXVzOiA0MHJweDtcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIj7kvpvmlrk8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8IS0t6ZyA5pa5LS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0MVwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpbWctYmdcIiBzcmM9XCIvc3RhdGljL2hlYWRfeGYucG5nXCIgbW9kZT1cImFzcGVjdEZpbGxcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OjM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0XHR2LWlmPVwibWVldGluZ0N1c3RvbWVyVXNlciAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQgJiYgbWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nXCI+XHJcblx0XHRcdFx0XHRcdFx0PHRydGMtbG9jYWwtdmlldyB2aWV3SWQ9XCJjdXN0b21lcl9sb2NhbFwiIHN0eWxlPVwiaGVpZ2h0OiAzODBycHg7d2lkdGg6IDM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L3RydGMtbG9jYWwtdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsnaGlkZSc6IShtZWV0aW5nQ3VzdG9tZXJVc2VyICYmIG1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkICYmIG1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkICE9IHVzZXJJZCAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcpfVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLXJlbW90ZS12aWV3IDp1c2VySWQ9XCJtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZFwiIHZpZXdJZD1cImN1c3RvbWVyX3JlbW90ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMzYwcnB4O3dpZHRoOiAzMDBycHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PC90cnRjLXJlbW90ZS12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxibG9jayB2LWlmPVwiIW1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkIHx8ICFtZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cIm1lZXRpbmdDdXN0b21lclVzZXIudXNlckluZm8gJiYgbWVldGluZ0N1c3RvbWVyVXNlci51c2VySW5mby5hdmF0YXJcIiA6c3JjPVwibWVldGluZ0N1c3RvbWVyVXNlci51c2VySW5mby5hdmF0YXIgfCBpbWFnZVVybEZpbHRlclwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDtoZWlnaHQ6IDM2MHJweDtib3JkZXItcmFkaXVzOiA0MHJweDtcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIj7pnIDmlrk8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHN0eWxlPVwiZmxleC1kaXJlY3Rpb246IHJvdztqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDttYXJnaW4tdG9wOjQwcnB4O21hcmdpbi1ib3R0b206NDBycHg7d2lkdGg6IDY1MHJweDtcIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJ0blwiIEBjbGljaz1cImhhbmRsZUpvaW5NZWV0aW5nXCIgdi1pZj1cInN0YXJ0QnRuVmlzaWJsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAyMHJweDtcIj5cclxuXHRcdFx0XHRcdOW8gOWni+inhumikVxyXG5cdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJ0blwiIEBjbGljaz1cImhhbmRsZUpvaW5NZWV0aW5nXCIgdi1pZj1cImpvaW5CdG5WaXNpYmxlXCJcclxuXHRcdFx0XHRcdHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAyMHJweDtcIj7liqDlhaXop4bpopE8L3RleHQ+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJidG5cIiB2LWlmPVwibWVldGluZyAmJiBqb2luVHlwZSA9PSAnc2VydmljZSdcIiBAY2xpY2s9XCJoYW5kbGVFbmR0TWVldGluZ1wiXHJcblx0XHRcdFx0XHRzdHlsZT1cIm1hcmdpbi1yaWdodDogMjBweDtcIj5cclxuXHRcdFx0XHRcdOaMguaWrVxyXG5cdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJ0blwiIHYtaWY9XCJqb2luVHlwZSA9PSAnY3VzdG9tZXInXCIgQGNsaWNrPVwiaGFuZGxlVG9TdWJtaXRPcmRlclwiPlxyXG5cdFx0XHRcdFx056uL5Y2z5LiL5Y2VXHJcblx0XHRcdFx0PC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDxzY3JvbGwtdmlldyA6c2Nyb2xsLXk9XCJ0cnVlXCIgY2xhc3M9XCJtZXNzYWdlXCIgOnNjcm9sbC1pbnRvLXZpZXc9XCJzY29ybGxJZFwiPlxyXG5cdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDMyMHB4O1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgdi1mb3I9XCJpdGVtIGluIG1lc3NhZ2VMaXN0XCIgOmlkPVwiJ2l0ZW1fJytpdGVtLmlkXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IHN0eWxlPVwiY29sb3I6ICNmZmY7bWFyZ2luLWxlZnQ6IDEwcnB4O2Rpc3BsYXk6IGlubGluZTtmb250LXNpemU6IDE1cHg7XCI+XHJcblx0XHRcdFx0XHRcdFx044CQe3tpdGVtLmF1dGhvciB8fCAn57O757ufJ31944CR77yae3tpdGVtLmNvbnRlbnR9fVxyXG5cdFx0XHRcdFx0XHQ8L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGlkPVwiYm90dG9tXCIgc3R5bGU9XCJoZWlnaHQ6IDEwcnB4O1wiPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC9zY3JvbGwtdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b20taW5wdXRcIj5cclxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJpbnB1dFwiIHBsYWNlaG9sZGVyPVwi5oOz6K+054K55LuA5LmI77yfXCIgcGxhY2Vob2xkZXItc3R5bGU9XCJjb2xvcjojZmZmXCIgdi1tb2RlbD1cIm1lc3NhZ2VDb250ZW50XCJcclxuXHRcdFx0XHRcdEBjb25maXJtPVwic2VuZE1lc3NhZ2VcIiBjb25maXJtLXR5cGU9XCJzZW5kXCIgOmNvbmZpcm0taG9sZD1cInRydWVcIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCB7XHJcblx0XHRtYXBTdGF0ZVxyXG5cdH0gZnJvbSAndnVleCc7XHJcblx0aW1wb3J0IHBlcm1pc2lvbiBmcm9tIFwiQC9UcnRjQ2xvdWQvcGVybWlzc2lvbi5qc1wiO1xyXG5cdGltcG9ydCBUcnRjQ2xvdWQgZnJvbSAnQC9UcnRjQ2xvdWQvbGliL2luZGV4JztcclxuXHRpbXBvcnQge1xyXG5cdFx0VFJUQ0FwcFNjZW5lLFxyXG5cdFx0VFJUQ1ZpZGVvU3RyZWFtVHlwZSxcclxuXHRcdFRSVENDbG91ZERlZixcclxuXHRcdFRSVENBdWRpb1F1YWxpdHlcclxuXHR9IGZyb20gJ0AvVHJ0Y0Nsb3VkL2xpYi9UcnRjRGVmaW5lcyc7XHJcblx0aW1wb3J0IHtcclxuXHRcdGdlblRlc3RVc2VyU2lnXHJcblx0fSBmcm9tICdAL2RlYnVnL0dlbmVyYXRlVGVzdFVzZXJTaWcnO1xyXG5cdGltcG9ydCBUcnRjTG9jYWxWaWV3IGZyb20gJ0AvVHJ0Y0Nsb3VkL3ZpZXcvVHJ0Y0xvY2FsVmlldyc7XHJcblx0aW1wb3J0IFRydGNSZW1vdGVWaWV3IGZyb20gJ0AvVHJ0Y0Nsb3VkL3ZpZXcvVHJ0Y1JlbW90ZVZpZXcnO1xyXG5cdGNvbnN0IFRydGNFdmVudCA9IHVuaS5yZXF1aXJlTmF0aXZlUGx1Z2luKCdnbG9iYWxFdmVudCcpO1xyXG5cdGltcG9ydCBBUEkgZnJvbSAnQC9hcGlzL2luZGV4LmpzJ1xyXG5cdGltcG9ydCBjb25maWcgZnJvbSAnQC9jb21tb24vY29uZmlnL2NvbmZpZy5qcydcclxuXHRpbXBvcnQgc2VydmljZSBmcm9tICdAL3NlcnZpY2Uvc2VydmljZS5qcydcclxuXHRsZXQgc29ja2V0VGFzayA9IGdldEFwcCgpLmdsb2JhbERhdGEuc29ja2V0VGFzaztcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRydGNMb2NhbFZpZXc6IFRydGNMb2NhbFZpZXcsXHJcblx0XHRcdFRydGNSZW1vdGVWaWV3OiBUcnRjUmVtb3RlVmlldyxcclxuXHRcdH0sXHJcblx0XHRmaWx0ZXJzOntcclxuXHRcdFx0aW1hZ2VVcmxGaWx0ZXIodmFsKXtcclxuXHRcdFx0XHR0cnl7XHJcblx0XHRcdFx0XHRpZih2YWwuaW5kZXhPZignZGF0YTonKSA9PSAwKXtcclxuXHRcdFx0XHRcdFx0bGV0IGJhc2U2NCA9IHZhbDtcclxuXHRcdFx0XHRcdFx0YmFzZTY0ID0gYmFzZTY0LnJlcGxhY2UoXCIvZGF0YTppbWFnZS8vcG5nO2Jhc2U2NCwvXCIsXCJcIik7XHJcblx0XHRcdFx0XHRcdGJhc2U2NCA9IGJhc2U2NC5yZXBsYWNlKFwiL1xcL1wiLFwiXCIpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gYmFzZTY0O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYodmFsLmluZGV4T2YoJ2h0dHAnKSA9PSAwIHx8IHZhbC5pbmRleE9mKCcuLi8nKSA9PSAwIHx8IHZhbC5pbmRleE9mKCcvc3RhdGljJykgPT0gMCl7XHJcblx0XHRcdFx0XHRcdHJldHVybiB2YWw7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gY29uZmlnLmJhc2V1cmwrdmFsO1xyXG5cdFx0XHRcdH1jYXRjaChlKXtcclxuXHRcdFx0XHRcdHJldHVybiB2YWw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0aGFzSW52aXRlOiBmYWxzZSxcclxuXHRcdFx0XHQvL+mcgOaWuVxyXG5cdFx0XHRcdG1lZXRpbmdDdXN0b21lclVzZXI6IHtcclxuXHRcdFx0XHRcdHVzZXJJZDogMCxcclxuXHRcdFx0XHRcdG1lZXRpbmc6IGZhbHNlLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Ly/kvpvmlrlcclxuXHRcdFx0XHRtZWV0aW5nQnVzaW5lc3NVc2VyOiB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IDAsXHJcblx0XHRcdFx0XHRtZWV0aW5nOiBmYWxzZSxcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHQvL+WuouacjVxyXG5cdFx0XHRcdG1lZXRpbmdTZXJ2aWNlVXNlcjoge1xyXG5cdFx0XHRcdFx0dXNlcklkOiAwLFxyXG5cdFx0XHRcdFx0bWVldGluZzogZmFsc2UsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRudW06IDEwLFxyXG5cdFx0XHRcdHRydGNDbG91ZDogbnVsbCxcclxuXHRcdFx0XHRzZGtBcHBJZDogMCxcclxuXHRcdFx0XHR1c2VyU2lnOiAnJyxcclxuXHRcdFx0XHRyb29tSWQ6IDAsXHJcblx0XHRcdFx0dXNlcklkOiAnJyxcclxuXHRcdFx0XHR1c2VyVHlwZTogJ+etieW+hei/m+WFpScsXHJcblx0XHRcdFx0YXBwU2NlbmU6IFRSVENBcHBTY2VuZS5UUlRDQXBwU2NlbmVWaWRlb0NhbGwsIC8vIFRSVENBcHBTY2VuZVZpZGVvQ2FsbFxyXG5cdFx0XHRcdGlzRnJvbnRDYW1lcmE6IHRydWUsXHJcblx0XHRcdFx0c3RyZWFtVHlwZTogVFJUQ1ZpZGVvU3RyZWFtVHlwZS5UUlRDVmlkZW9TdHJlYW1UeXBlQmlnLFxyXG5cdFx0XHRcdHJlbW90ZVVzZXJJZDogJycsXHJcblx0XHRcdFx0YXVkaW9Sb3V0ZTogVFJUQ0Nsb3VkRGVmLlRSVENfQVVESU9fUk9VVEVfU1BFQUtFUixcclxuXHRcdFx0XHRtZXNzYWdlTGlzdDogW10sXHJcblx0XHRcdFx0bWVzc2FnZUNvbnRlbnQ6ICcnLFxyXG5cdFx0XHRcdG15VXNlckluZm86ICcnLFxyXG5cdFx0XHRcdHJvb206IHt9LFxyXG5cdFx0XHRcdHNob3BJZDogMCxcclxuXHRcdFx0XHRzZWxsZXJVc2VySWQ6IDAsXHJcblx0XHRcdFx0cGFyYW06IHt9LFxyXG5cdFx0XHRcdGpvaW5UeXBlOiAnY3VzdG9tZXInLFxyXG5cdFx0XHRcdHNjb3JsbElkOiAnYm90dG9tJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0Li4ubWFwU3RhdGUoWyd1c2VyJywgJ3N0YXRpc3RpY3MnLCAnY29tbW9uJ10pLFxyXG5cdFx0XHRzdGFydEJ0blZpc2libGUoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMudXNlcklkID09IHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuICF0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nICYmIHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fSxcclxuXHRcdFx0am9pbkJ0blZpc2libGUoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMudXNlcklkICE9IHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcgJiYgIXRoaXMubWVldGluZ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoZSkge1xyXG5cdFx0XHRjb25zb2xlLmxvZygnbWVldGluZyBvbmxvYWQnLGUpO1xyXG5cdFx0XHR0aGlzLnBhcmFtID0gZTtcclxuXHRcdFx0Ly/liqDlhaXnsbvlnovvvIzmmK/ku6Xku4DkuYjouqvku73liqDlhaXnmoRcclxuXHRcdFx0bGV0IGpvaW5UeXBlID0gZS5qb2luVHlwZSB8fCAnY3VzdG9tZXInXHJcblx0XHRcdHRoaXMuam9pblR5cGUgPSBqb2luVHlwZTtcclxuXHRcdFx0dGhpcy5yb29tSWQgPSBlLnJvb21JZDtcclxuXHRcdFx0dGhpcy5zZWxsZXJVc2VySWQgPSBlLnVzZXJpZDtcclxuXHRcdFx0dGhpcy51c2VySWQgPSBgJHtqb2luVHlwZX1fYCArIHRoaXMudXNlci5pZDtcclxuXHRcdFx0Y29uc29sZS5sb2coJ3RoaXMudXNlcicsdGhpcy51c2VyKTtcclxuXHRcdFx0dGhpcy5zaG9wSWQgPSBlLnNob3BfaWQ7XHJcblxyXG5cdFx0XHRpZiAoam9pblR5cGUgPT0gJ2N1c3RvbWVyJykge1xyXG5cdFx0XHRcdC8v6ZyA5pa5XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLCB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IHRoaXMudXNlcklkLFxyXG5cdFx0XHRcdFx0aWQ6IHRoaXMudXNlci5pZCxcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdHRoaXMuY3JlYXRlUm9vbSh7XHJcblx0XHRcdFx0XHRcIm5hbWVcIjogXCLmtYvor5XmiL/pl7RcIixcclxuXHRcdFx0XHRcdFwiYm9keVRleHRcIjogXCJcIixcclxuXHRcdFx0XHRcdFwicm9vbU5vXCI6IFwiXCIsXHJcblx0XHRcdFx0XHRcImRlc2NyaXB0aW9uXCI6IFwiXCIsXHJcblx0XHRcdFx0XHRcImNsaWVudElkXCI6IFwiXCIsXHJcblx0XHRcdFx0XHQvLyBcInByb2R1Y3RJZFwiOiBlLmdvb2RzX2lkLFxyXG5cdFx0XHRcdFx0XCJzaG9wSWRcIjogZS5zaG9wX2lkXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy5nZXRVc2VySW5mbyh0aGlzLnVzZXIuaWQsJ2N1c3RvbWVyJylcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnJvb20gPSB7XHJcblx0XHRcdFx0XHRpZDogZS5yb29tSWQsXHJcblx0XHRcdFx0XHRSb29tTm86IGUucm9vbUlkXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIgPSB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IGBjdXN0b21lcl9gICsgZS5jdXN0b21lcmlkLnRvU3RyaW5nKCksXHJcblx0XHRcdFx0XHRpZDogZS5jdXN0b21lcmlkLFxyXG5cdFx0XHRcdFx0bWVldGluZzogZmFsc2VcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VsbGVyJykge1xyXG5cdFx0XHRcdC8v5L6b5pa5XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyID0ge1xyXG5cdFx0XHRcdFx0dXNlcklkOiB0aGlzLnVzZXJJZCxcclxuXHRcdFx0XHRcdGlkOiB0aGlzLnVzZXIuaWQsXHJcblx0XHRcdFx0XHRtZWV0aW5nOiBmYWxzZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0dGhpcy5nZXRVc2VySW5mbyh0aGlzLnVzZXIuaWQsJ3NlbGxlcicpXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZXJ2aWNlJykge1xyXG5cdFx0XHRcdC8v5bmz5Y+w5a6i5pyNXHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIgPSB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IHRoaXMudXNlcklkLFxyXG5cdFx0XHRcdFx0aWQ6IHRoaXMudXNlci5pZCxcclxuXHRcdFx0XHRcdG1lZXRpbmc6IGZhbHNlXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHR0aGlzLmdldFVzZXJJbmZvKHRoaXMudXNlci5pZCwnc2VydmljZScpXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMucm9vbUlkKSB7XHJcblx0XHRcdFx0dGhpcy5qb2luUm9vbSgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlU3RhcnRNZWV0aW5nKCk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy4kZm9yY2VVcGRhdGUoKTtcclxuXHRcdFx0Ly/mloflrZfogYrlpKlcclxuXHRcdFx0dW5pLiRvbignc29ja2V0TWVzc2FnZScsIChkYXRhKSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3NvY2tldE1lc3NhZ2UnLCBkYXRhKTtcclxuXHRcdFx0XHRpZiAoZGF0YS5tZXNzYWdlVHlwZSA9PSAnc2VuZF90b19yb29tJyB8fCBkYXRhLm1ldGhvZCA9PSAnc2VuZF90b19yb29tJykge1xyXG5cdFx0XHRcdFx0bGV0IGZvcm1Vc2VySWQgPSBkYXRhLmZvcm1Vc2VySWQgfHwgJyc7XHJcblx0XHRcdFx0XHRsZXQgam9pblR5cGUgPSBmb3JtVXNlcklkLnNwbGl0KCdfJylbMF1cclxuXHRcdFx0XHRcdGxldCB1c2VyVHlwZSA9IHtcclxuXHRcdFx0XHRcdFx0Y3VzdG9tZXI6ICfpnIDmlrknLFxyXG5cdFx0XHRcdFx0XHRzZWxsZXI6ICfkvpvmlrknLFxyXG5cdFx0XHRcdFx0XHRzZXJ2aWNlOiAn5a6i5pyNJ1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdGxldCBzZW5kVXNlck5hbWUgPSB1c2VyVHlwZVtqb2luVHlwZV0gfHwgZGF0YS5yZWFsTmFtZTtcclxuXHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZShzZW5kVXNlck5hbWUsIGRhdGEubWVzc2FnZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChkYXRhLm1lc3NhZ2VUeXBlID09ICdqb2luJyB8fCBkYXRhLm1ldGhvZCA9PSAnam9pbicpIHtcclxuXHRcdFx0XHRcdGxldCB1c2VyaWQgPSBkYXRhLnVzZXJJbnRJZDtcclxuXHRcdFx0XHRcdGlmICh1c2VyaWQgIT0gdGhpcy51c2VyLmlkKSB7XHJcblx0XHRcdFx0XHRcdC8v5pyJ55So5oi35Yqg5YWl5oi/6Ze0XHJcblx0XHRcdFx0XHRcdGxldCBqb2luVHlwZSA9IGRhdGEubWVzc2FnZUNvbnRlbnQ7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdqb2luVHlwZScsIGpvaW5UeXBlLCBkYXRhKTtcclxuXHRcdFx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZWxsZXInKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCA9ICdzZWxsZXJfJyArIHVzZXJpZDtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIuaWQgPSB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5hZGRNZXNzYWdlKCcnLCAn5L6b5pa55Yqg5YWl5oi/6Ze0Jyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZXJ2aWNlJykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9ICdzZXJ2aWNlXycgKyB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIuaWQgPSB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5hZGRNZXNzYWdlKCcnLCAn5a6i5pyN5Yqg5YWl5oi/6Ze0Jyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5nZXRVc2VySW5mbyh1c2VyaWQsam9pblR5cGUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRvbkhpZGUoKSB7XHJcblx0XHRcdHRoaXMuZGVzdHJveUluc3RhbmNlKCk7XHJcblx0XHRcdHRoaXMuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdGlmICh1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS5wbGF0Zm9ybSA9PT0gJ2FuZHJvaWQnKSB7XHJcblx0XHRcdFx0cGVybWlzaW9uLnJlcXVlc3RBbmRyb2lkUGVybWlzc2lvbignYW5kcm9pZC5wZXJtaXNzaW9uLlJFQ09SRF9BVURJTycpO1xyXG5cdFx0XHRcdHBlcm1pc2lvbi5yZXF1ZXN0QW5kcm9pZFBlcm1pc3Npb24oJ2FuZHJvaWQucGVybWlzc2lvbi5DQU1FUkEnKTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmluaXRVc2VyU2lnbigpO1xyXG5cdFx0fSxcclxuXHRcdG9uVW5sb2FkKCkge1xyXG5cdFx0XHR0aGlzLmRlc3Ryb3lJbnN0YW5jZSgpO1xyXG5cdFx0XHRjb25zb2xlLmxvZygnLSBvblVubG9hZCcpO1xyXG5cdFx0fSxcclxuXHRcdG9uQmFja1ByZXNzKCkge1xyXG5cdFx0XHR0aGlzLmRlc3Ryb3lJbnN0YW5jZSgpO1xyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Z2V0VXNlckluZm8oaWQsdHlwZSl7XHJcblx0XHRcdFx0QVBJLmdldFVzZXJJbmZvKGlkKS50aGVuKHJlcz0+e1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJJbmZvJyxyZXMpO1xyXG5cdFx0XHRcdFx0bGV0IHVzZXIgPSByZXMuZGF0YTtcclxuXHRcdFx0XHRcdGlmKHVzZXIgJiYgdXNlci5pZCl7XHJcblx0XHRcdFx0XHRcdGlmKHR5cGUgPT0gJ2N1c3RvbWVyJyl7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJbmZvID0gdXNlcjtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZih0eXBlID09ICdzZWxsZXInKXtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlckluZm8gPSB1c2VyO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmKHR5cGUgPT0gJ3NlcnZpY2UnKXtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySW5mbyA9IHVzZXI7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMuJGZvcmNlVXBkYXRlKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGFkZE1lc3NhZ2UoYXV0aG9yLCBtZXNzYWdlKSB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdGF1dGhvcjogYXV0aG9yIHx8ICfns7vnu58nLFxyXG5cdFx0XHRcdFx0Y29udGVudDogbWVzc2FnZSxcclxuXHRcdFx0XHRcdGlkOiB0aGlzLm1lc3NhZ2VMaXN0Lmxlbmd0aFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0c2Nyb2xsVG9Cb3R0b20oKSB7XHJcblx0XHRcdFx0dGhpcy5zY29ybGxJZCA9ICdpdGVtMV8nICsgdGhpcy5tZXNzYWdlTGlzdFt0aGlzLm1lc3NhZ2VMaXN0Lmxlbmd0aCAtIDFdLmlkO1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuc2NvcmxsSWQgPSAnYm90dG9tJztcclxuXHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0am9pblJvb20oKSB7XHJcblx0XHRcdFx0bGV0IHBhcmFtID0ge1xyXG5cdFx0XHRcdFx0bWV0aG9kOiAnam9pbicsXHJcblx0XHRcdFx0XHRJc1Jvb206IHRydWUsXHJcblx0XHRcdFx0XHRSb29tTm86IHRoaXMucm9vbUlkLFxyXG5cdFx0XHRcdFx0Um9vbU5hbWU6IHRoaXMucm9vbS5Sb29tTmFtZSxcclxuXHRcdFx0XHRcdG1lc3NhZ2VDb250ZW50OiB0aGlzLmpvaW5UeXBlLFxyXG5cdFx0XHRcdFx0dG9rZW46IHNlcnZpY2UuZ2V0VG9rZW5DaGFvZ2UoKSxcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdqb2luUm9vbScsIHBhcmFtKTtcclxuXHRcdFx0XHRzb2NrZXRUYXNrLnNlbmQoe1xyXG5cdFx0XHRcdFx0ZGF0YTogSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3NvY2tldFRhc2suc2VuZCBzdWNjZXNzJywgcmVzKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsKGUpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3NvY2tldFRhc2suc2VuZCBmYWlsJywgZmFpbCk7XHJcblx0XHRcdFx0XHRcdHNvY2tldFRhc2sgPSBnZXRBcHAoKS5nbG9iYWxEYXRhLmluaXRTb2NrZXQoKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRjb21wbGV0ZSgpIHt9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGluaXRVc2VyU2lnbigpIHtcclxuXHRcdFx0XHRpZiAodGhpcy51c2VySWQpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdpbml0VXNlclNpZ24nLCB0aGlzLnVzZXJJZCk7XHJcblx0XHRcdFx0XHQvLyDnlJ/miJAgdXNlclNpZ1xyXG5cdFx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0XHRzZGtBcHBJZCxcclxuXHRcdFx0XHRcdFx0dXNlclNpZ1xyXG5cdFx0XHRcdFx0fSA9IGdlblRlc3RVc2VyU2lnKHRoaXMudXNlcklkKTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgPSBzZGtBcHBJZDtcclxuXHRcdFx0XHRcdHRoaXMudXNlclNpZyA9IHVzZXJTaWc7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2RrQXBwSWQsdXNlclNpZycsIHNka0FwcElkLCB1c2VyU2lnKTtcclxuXHRcdFx0XHRcdGlmICghc2RrQXBwSWQgfHwgIXVzZXJTaWcpIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6ICfor7floavlhpkgc2RrQXBwSWTjgIF1c2VyU2lnJyxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmluaXRVc2VyU2lnbigpO1xyXG5cdFx0XHRcdFx0fSwgMjAwKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlVG9TdWJtaXRPcmRlcigpIHtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6YKA6K+35ZWG5a625a6i5pyNXHJcblx0XHRcdGhhbmRsZUludml0ZUJ1c2luZXNzVXNlcigpIHtcclxuXHRcdFx0XHRBUEkubWVzc2FnZS5nZXRJbnZpdGVCdXNpbmVzc1VzZXJKb2luKHRoaXMuc2hvcElkIHx8IDAsIHRoaXMucm9vbS5Sb29tTm8sIHRoaXMuc2VsbGVyVXNlcklkKS50aGVuKHJlcyA9PiB7fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/pgoDor7flubPlj7DlrqLmnI1cclxuXHRcdFx0aGFuZGxlSW52aXRlU2VydmljZVVzZXIoKSB7XHJcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKCk7XHJcblx0XHRcdFx0QVBJLm1lc3NhZ2UuZ2V0SW52aXRlU2VydmljZVVzZXJKb2luKHRoaXMucm9vbS5Sb29tTm8sICdqb2luTXVsdGlwbGF5ZXJWaWRlbycpLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+mCgOivt+aIkOWKnydcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR0aGlzLmhhc0ludml0ZSA9IHRydWU7XHJcblx0XHRcdFx0fSkuZmluYWxseSgoKSA9PiB7XHJcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Y3JlYXRlUm9vbShkYXRhKSB7XHJcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcclxuXHRcdFx0XHRcdHRpdGxlOiAn5q2j5Zyo5Yib5bu65oi/6Ze0J1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdEFQSS5tZXNzYWdlLnBvc3RBZGRSb29tKGRhdGEpLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucm9vbSA9IHJlcy5kYXRhO1xyXG5cdFx0XHRcdFx0dGhpcy5yb29tSWQgPSByZXMuZGF0YS5Sb29tTm87XHJcblx0XHRcdFx0XHR0aGlzLmhhbmRsZUludml0ZUJ1c2luZXNzVXNlcigpO1xyXG5cdFx0XHRcdFx0dGhpcy5qb2luUm9vbSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVTdGFydE1lZXRpbmcoKTtcclxuXHRcdFx0XHR9KS5maW5hbGx5KCgpID0+IHtcclxuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0c2VuZE1lc3NhZ2UoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdGxldCBwYXJhbSA9IEpTT04uc3RyaW5naWZ5KHtcclxuXHRcdFx0XHRcdGZvcm1Vc2VySWQ6IHRoaXMudXNlcklkLFxyXG5cdFx0XHRcdFx0Y29udGVudFR5cGU6IFwiXCIsXHJcblx0XHRcdFx0XHRjb250ZW50OiB0aGlzLm1lc3NhZ2VDb250ZW50LFxyXG5cdFx0XHRcdFx0bWVzc2FnZUNvbnRlbnQ6IHRoaXMubWVzc2FnZUNvbnRlbnQsXHJcblx0XHRcdFx0XHRzZW5kVGltZTogbmV3IERhdGUoKSxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ3NlbmRfdG9fcm9vbScsXHJcblx0XHRcdFx0XHRSb29tTm86IHRoaXMucm9vbS5Sb29tTm8sXHJcblx0XHRcdFx0XHRSb29tTmFtZTogdGhpcy5yb29tLk5hbWUsXHJcblx0XHRcdFx0XHRJc1Jvb206IHRydWUsXHJcblx0XHRcdFx0XHR0b2tlbjogc2VydmljZS5nZXRUb2tlbkNoYW9nZSgpLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHBhcmFtKTtcclxuXHRcdFx0XHRzb2NrZXRUYXNrLnNlbmQoe1xyXG5cdFx0XHRcdFx0ZGF0YTogcGFyYW0sXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc29ja2V0VGFzay5zZW5kIHN1Y2Nlc3MnLCByZXMpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWwoZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnc29ja2V0VGFzay5zZW5kIGZhaWwnLCBlKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRjb21wbGV0ZSgpIHt9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhhdC5tZXNzYWdlQ29udGVudCA9ICcnO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVKb2luTWVldGluZygpIHtcclxuXHRcdFx0XHR0aGlzLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMuc3RhcnRMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlU3RhcnRNZWV0aW5nKCkge1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuY3JlYXRlVHJ0Y0Nsb3VkKCk7XHJcblx0XHRcdFx0XHR0aGlzLmVudGVyUm9vbSgpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZUVuZHRNZWV0aW5nKCkge1xyXG5cdFx0XHRcdHRoaXMubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5zdG9wTG9jYWxQcmV2aWV3KCk7XHJcblx0XHRcdFx0Ly8gdGhpcy5leGl0Um9vbSgpO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0YmluZElucHV0Q2hhbmdlKGV2ZW50LCB0eXBlKSB7XHJcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRcdFx0XHRjYXNlICdyb29tSWQnOiB7XHJcblx0XHRcdFx0XHRcdHRoaXMucm9vbUlkID0gdmFsdWU7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y2FzZSAndXNlcklkJzoge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVzZXJJZCA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGRlc3Ryb3lJbnN0YW5jZSgpIHtcclxuXHRcdFx0XHRpZiAodGhpcy50cnRjQ2xvdWQpIHtcclxuXHRcdFx0XHRcdFRydGNDbG91ZC5kZXN0cm95SW5zdGFuY2UoKTtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkID0gbnVsbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNyZWF0ZVRydGNDbG91ZCgpIHtcclxuXHRcdFx0XHRpZiAoIXRoaXMudHJ0Y0Nsb3VkKSB7XHJcblx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZCA9IFRydGNDbG91ZC5jcmVhdGVJbnN0YW5jZSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVFdmVudHMoKTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRjcmVhdGVUcnRjQ2xvdWRVcGxvYWQodGhpcy5zZGtBcHBJZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlbnRlclJvb20oKSB7XHJcblx0XHRcdFx0bGV0IHVzZXJJZCA9IHRoaXMudXNlcklkO1xyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHRcdHNka0FwcElkLFxyXG5cdFx0XHRcdFx0XHRhcHBTY2VuZSxcclxuXHRcdFx0XHRcdFx0dXNlclNpZ1xyXG5cdFx0XHRcdFx0fSA9IHRoaXM7XHJcblx0XHRcdFx0XHRsZXQgcGFyYW0gPSB7XHJcblx0XHRcdFx0XHRcdHJvb21JZDogMCxcclxuXHRcdFx0XHRcdFx0c3RyUm9vbUlkOiB0aGlzLnJvb20uUm9vbU5vLFxyXG5cdFx0XHRcdFx0XHR1c2VySWQ6IHRoaXMudXNlcklkLFxyXG5cdFx0XHRcdFx0XHRzZGtBcHBJZCxcclxuXHRcdFx0XHRcdFx0dXNlclNpZ1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdlbnRlclJvb20nLCBwYXJhbSk7XHJcblx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZC5lbnRlclJvb20ocGFyYW0sIGFwcFNjZW5lKTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRlbnRlclJvb21TdWNjZXNzVXBsb2FkKHRoaXMuc2RrQXBwSWQpO1xyXG5cclxuXHJcblx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgYGVudGVyUm9vbSBlcnJvciA9ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfWApXHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kZW50ZXJSb29tRmFpbGVkVXBsb2FkKHRoaXMuc2RrQXBwSWQsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRleGl0Um9vbSgpIHtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcoKTtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLmV4aXRSb29tKCk7XHJcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdFx0Ly8gVE9ETyBoYW5kbGUgdGhlIGV4Y2VwdGlvblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c3RhcnRMb2NhbFByZXZpZXcoKSB7XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHRsZXQgdXNlcklkID0gdGhpcy51c2VySWQ7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nU2VydmljZVVzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZW50ZXJSb29tKCk7XHJcblx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RhcnRMb2NhbFByZXZpZXcodGhpcy5pc0Zyb250Q2FtZXJhLCBgJHt0aGlzLmpvaW5UeXBlfV9sb2NhbGApO1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RhcnRMb2NhbEF1ZGlvKFRSVENBdWRpb1F1YWxpdHkuVFJUQ0F1ZGlvUXVhbGl0eURlZmF1bHQpO1xyXG5cdFx0XHRcdFx0dGhpcy5zZGtBcHBJZCAmJiB1bmkuJHN0YXJ0TG9jYWxQcmV2aWV3VXBsb2FkKHRoaXMuc2RrQXBwSWQpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHN0b3BMb2NhbFByZXZpZXcoKSB7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0b3BMb2NhbEF1ZGlvKCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHN0YXJ0UmVtb3RlVmlldyh1c2VySWQpIHtcclxuXHRcdFx0XHRsZXQgam9pblR5cGUgPSB1c2VySWQuc3BsaXQoJ18nKVswXTtcclxuXHRcdFx0XHRsZXQgcGxheVR5cGUgPSB1c2VySWQgPT0gdGhpcy51c2VySWQgPyAnbG9jYWwnIDogJ3JlbW90ZSc7XHJcblxyXG5cdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnY3VzdG9tZXInKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkID0gdXNlcklkO1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlbGxlcicpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPSB1c2VySWQ7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9IHVzZXJJZDtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZC5zdGFydFJlbW90ZVZpZXcodXNlcklkLCB0aGlzLnN0cmVhbVR5cGUsIGAke2pvaW5UeXBlfV8ke3BsYXlUeXBlfWApO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kc3RhcnRSZW1vdGVWaWV3U3VjY2Vzc1VwbG9hZCh0aGlzLnNka0FwcElkKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdH0sXHJcblx0XHRcdHN0b3BSZW1vdGVWaWV3KHVzZXJJZCkge1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0b3BSZW1vdGVWaWV3KHVzZXJJZCwgdGhpcy5zdHJlYW1UeXBlKTtcclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ0J1c2luZXNzVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlkKznrZLjgIHlhY3mj5Ag5YiH5o2iXHJcblx0XHRcdHN3aXRjaEF1ZGlvUm91dGUoKSB7XHJcblx0XHRcdFx0dGhpcy5hdWRpb1JvdXRlID0gdGhpcy5hdWRpb1JvdXRlID09PSBUUlRDQ2xvdWREZWYuVFJUQ19BVURJT19ST1VURV9TUEVBS0VSID8gVFJUQ0Nsb3VkRGVmXHJcblx0XHRcdFx0XHQuVFJUQ19BVURJT19ST1VURV9FQVJQSUVDRSA6IFRSVENDbG91ZERlZi5UUlRDX0FVRElPX1JPVVRFX1NQRUFLRVI7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc2V0QXVkaW9Sb3V0ZSh0aGlzLmF1ZGlvUm91dGUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVFdmVudHMoKSB7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uV2FybmluZycsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdC8vIHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0Ly8gXHR0aXRsZTogYOacrOWcsOaRhOWDj+WktOmUmeivr2AsXHJcblx0XHRcdFx0XHQvLyBcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdC8vIH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbkVycm9yJywgKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ29uRXJyb3InLCByZXMpXHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kb25FcnJvclVwbG9hZCh0aGlzLnNka0FwcElkLCBKU09OLnN0cmluZ2lmeShyZXMpKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25FbnRlclJvb20nLCAocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhgLSBvbkVudGVyUm9vbSA9ICR7cmVzdWx0fWApO1xyXG5cdFx0XHRcdFx0aWYgKHJlc3VsdCA+IDApIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5hZGRNZXNzYWdlKCcnLCBg6L+b5oi/5oiQ5Yqf77yM6ICX5pe2OiAke3Jlc3VsdH1tc2ApXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgZW50ZXIgcm9vbSBmYWlsZWTvvIxlcnJvciBjb2RlID0gJHtyZXN1bHR9YCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uRXhpdFJvb20nLCAocmVhc29uKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCByZWFzb25MaXN0ID0gWyfkuLvliqjosIPnlKggZXhpdFJvb20g6YCA5oi/JywgJ+iiq+acjeWKoeWZqOi4ouWHuuW9k+WJjeaIv+mXtCcsICflvZPliY3miL/pl7TmlbTkuKrooqvop6PmlaMnXTtcclxuXHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgYOmAgOaIvyAke3JlYXNvbkxpc3RbcmVhc29uXX1gKVxyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uRmlyc3RWaWRlb0ZyYW1lJywgKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coYOa4suafk+eahOmmluW4p+eUu+mdouWTjeW6lCA9ICR7SlNPTi5zdHJpbmdpZnkocmVzKX1gKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25SZW1vdGVVc2VyRW50ZXJSb29tJywgKHVzZXJJZCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ29uUmVtb3RlVXNlckVudGVyUm9vbScsIHVzZXJJZCk7XHJcblx0XHRcdFx0XHRsZXQgam9pblR5cGUgPSB1c2VySWQuc3BsaXQoJ18nKVswXTtcclxuXHRcdFx0XHRcdGxldCB1c2VyaWQgPSB1c2VySWQuc3BsaXQoJ18nKVsxXTtcclxuXHRcdFx0XHRcdGxldCB1c2VyVHlwZSA9IHtcclxuXHRcdFx0XHRcdFx0Y3VzdG9tZXI6ICfpnIDmlrknLFxyXG5cdFx0XHRcdFx0XHRzZWxsZXI6ICfkvpvmlrknLFxyXG5cdFx0XHRcdFx0XHRzZXJ2aWNlOiAn5a6i5pyNJ1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgYCR7dXNlclR5cGVbam9pblR5cGVdIHx8ICfmnKrnn6XnlKjmiLcnfeWKoOWFpeinhumikeiBiuWkqWApO1xyXG5cdFx0XHRcdFx0dGhpcy5nZXRVc2VySW5mbyh1c2VyaWQsam9pblR5cGUpO1xyXG5cclxuXHRcdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnY3VzdG9tZXInKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgPSB1c2VySWQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlbGxlcicpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCA9IHVzZXJJZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIudXNlcklkID0gdXNlcklkO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHJcblxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvblJlbW90ZVVzZXJMZWF2ZVJvb20nLCAodXNlcklkKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgam9pblR5cGUgPSB1c2VySWQuc3BsaXQoJ18nKVswXTtcclxuXHRcdFx0XHRcdGxldCB1c2VyVHlwZSA9IHtcclxuXHRcdFx0XHRcdFx0Y3VzdG9tZXI6ICfpnIDmlrknLFxyXG5cdFx0XHRcdFx0XHRzZWxsZXI6ICfkvpvmlrknLFxyXG5cdFx0XHRcdFx0XHRzZXJ2aWNlOiAn5a6i5pyNJ1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgYCR7dXNlclR5cGVbam9pblR5cGVdIHx8ICfmnKrnn6XnlKjmiLcnfemAgOWHuuinhumikeiBiuWkqWApXHJcblx0XHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlcnZpY2UnKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ0J1c2luZXNzVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCk7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcodGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAodXNlcklkID09IHRoaXMudXNlcklkKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdG9wUmVtb3RlVmlldyh1c2VySWQpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvblVzZXJWaWRlb0F2YWlsYWJsZScsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRcdFx0dXNlcklkLFxyXG5cdFx0XHRcdFx0XHRhdmFpbGFibGVcclxuXHRcdFx0XHRcdH0gPSByZXM7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnb25Vc2VyVmlkZW9BdmFpbGFibGUnLCByZXMpO1xyXG5cdFx0XHRcdFx0bGV0IGpvaW5UeXBlID0gdXNlcklkLnNwbGl0KCdfJylbMF07XHJcblx0XHRcdFx0XHRsZXQgdXNlclR5cGUgPSB7XHJcblx0XHRcdFx0XHRcdGN1c3RvbWVyOiAn6ZyA5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VsbGVyOiAn5L6b5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VydmljZTogJ+WuouacjSdcclxuXHRcdFx0XHRcdH07XHJcblxyXG5cclxuXHJcblx0XHRcdFx0XHRpZiAoYXZhaWxhYmxlKSB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLm1lZXRpbmcpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnN0YXJ0UmVtb3RlVmlldyh1c2VySWQpO1xyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZXJ2aWNlJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGFydExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnN0YXJ0UmVtb3RlVmlldyh1c2VySWQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgYCR7dXNlclR5cGVbam9pblR5cGVdIHx8ICfmnKrnn6XnlKjmiLcnfemAgOWHuuinhumikeiBiuWkqWApXHJcblx0XHRcdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcodGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zdG9wUmVtb3RlVmlldyh0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcodGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKHVzZXJJZCA9PSB0aGlzLnVzZXJJZCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcodXNlcklkKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbkV4aXRSb29tJywgKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coYG9uRXhpdFJvb20gPSAke0pTT04uc3RyaW5naWZ5KHJlcyl9YCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIHNyYz1cIkAvcGFnZXMvbWVldGluZy9tZWV0aW5nLmNzc1wiPjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///112\n"); | |
| 2526 | +eval("/* WEBPACK VAR INJECTION */(function(__webpack_provided_uni_dot_requireNativePlugin, __f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _vuex = __webpack_require__(/*! vuex */ 12);\n\n\nvar _permission = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/permission.js */ 80));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/lib/index */ 81));\nvar _TrtcDefines = __webpack_require__(/*! @/TrtcCloud/lib/TrtcDefines */ 83);\n\n\n\n\n\nvar _GenerateTestUserSig = __webpack_require__(/*! @/debug/GenerateTestUserSig */ 84);\n\n\nvar _TrtcLocalView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcLocalView */ 86));\nvar _TrtcRemoteView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcRemoteView */ 91));\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/apis/index.js */ 96));\nvar _config = _interopRequireDefault(__webpack_require__(/*! @/common/config/config.js */ 104));\nvar _service = _interopRequireDefault(__webpack_require__(/*! @/service/service.js */ 99));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}var TrtcEvent = __webpack_provided_uni_dot_requireNativePlugin('globalEvent');\nvar socketTask = getApp().globalData.socketTask;var _default =\n{\n components: {\n TrtcLocalView: _TrtcLocalView.default,\n TrtcRemoteView: _TrtcRemoteView.default },\n\n filters: {\n imageUrlFilter: function imageUrlFilter(val) {\n try {\n if (val.indexOf('data:') == 0) {\n var base64 = val;\n base64 = base64.replace(\"/data:image//png;base64,/\", \"\");\n base64 = base64.replace(\"/\\/\", \"\");\n return base64;\n }\n if (val.indexOf('http') == 0 || val.indexOf('../') == 0 || val.indexOf('/static') == 0) {\n return val;\n }\n return _config.default.baseurl + val;\n } catch (e) {\n return val;\n }\n } },\n\n data: function data() {\n return {\n hasInvite: false,\n //需方\n meetingCustomerUser: {\n userId: 0,\n meeting: false },\n\n //供方\n meetingBusinessUser: {\n userId: 0,\n meeting: false },\n\n\n //客服\n meetingServiceUser: {\n userId: 0,\n meeting: false },\n\n num: 10,\n trtcCloud: null,\n sdkAppId: 0,\n userSig: '',\n roomId: 0,\n userId: '',\n userType: '等待进入',\n appScene: _TrtcDefines.TRTCAppScene.TRTCAppSceneVideoCall, // TRTCAppSceneVideoCall\n isFrontCamera: true,\n streamType: _TrtcDefines.TRTCVideoStreamType.TRTCVideoStreamTypeBig,\n remoteUserId: '',\n audioRoute: _TrtcDefines.TRTCCloudDef.TRTC_AUDIO_ROUTE_SPEAKER,\n messageList: [],\n messageContent: '',\n myUserInfo: '',\n room: {},\n shopId: 0,\n sellerUserId: 0,\n param: {},\n joinType: 'customer',\n scorllId: 'bottom' };\n\n },\n computed: _objectSpread(_objectSpread({},\n (0, _vuex.mapState)(['user', 'statistics', 'common'])), {}, {\n startBtnVisible: function startBtnVisible() {\n if (this.userId == this.meetingServiceUser.userId) {\n return !this.meetingServiceUser.meeting;\n }\n return false;\n },\n joinBtnVisible: function joinBtnVisible() {\n if (this.userId != this.meetingServiceUser.userId) {\n return this.meetingServiceUser.meeting && !this.meeting;\n }\n return false;\n } }),\n\n onLoad: function onLoad(e) {var _this = this;\n __f__(\"log\", 'meeting onload', e, \" at pages/meeting/meeting.nvue:214\");\n this.param = e;\n //加入类型,是以什么身份加入的\n var joinType = e.joinType || 'customer';\n this.joinType = joinType;\n this.roomId = e.roomId;\n this.sellerUserId = e.userid;\n this.userId = \"\".concat(joinType, \"_\") + this.user.id;\n __f__(\"log\", 'this.user', this.user, \" at pages/meeting/meeting.nvue:222\");\n this.shopId = e.shop_id;\n\n if (joinType == 'customer') {\n //需方\n this.meetingCustomerUser = Object.assign({}, this.meetingCustomerUser, {\n userId: this.userId,\n id: this.user.id });\n\n this.createRoom({\n \"name\": \"测试房间\",\n \"bodyText\": \"\",\n \"roomNo\": \"\",\n \"description\": \"\",\n \"clientId\": \"\",\n // \"productId\": e.goods_id,\n \"shopId\": e.shop_id });\n\n this.getUserInfo(this.user.id, 'customer');\n } else {\n this.room = {\n id: e.roomId,\n RoomNo: e.roomId };\n\n this.meetingCustomerUser = {\n userId: \"customer_\" + e.customerid.toString(),\n id: e.customerid,\n meeting: false };\n\n }\n if (joinType == 'seller') {\n //供方\n this.meetingBusinessUser = {\n userId: this.userId,\n id: this.user.id,\n meeting: false };\n\n this.getUserInfo(this.user.id, 'seller');\n }\n if (joinType == 'service') {\n //平台客服\n this.meetingServiceUser = {\n userId: this.userId,\n id: this.user.id,\n meeting: false };\n\n this.getUserInfo(this.user.id, 'service');\n }\n if (this.roomId) {\n this.joinRoom();\n this.handleStartMeeting();\n }\n this.$forceUpdate();\n //文字聊天\n uni.$on('socketMessage', function (data) {\n __f__(\"log\", 'socketMessage', data, \" at pages/meeting/meeting.nvue:277\");\n if (data.messageType == 'send_to_room' || data.method == 'send_to_room') {\n var formUserId = data.formUserId || '';\n var _joinType = formUserId.split('_')[0];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n var sendUserName = userType[_joinType] || data.realName;\n _this.addMessage(sendUserName, data.message);\n }\n if (data.messageType == 'join' || data.method == 'join') {\n var userid = data.userIntId;\n if (userid != _this.user.id) {\n //有用户加入房间\n var _joinType2 = data.messageContent;\n __f__(\"log\", 'joinType', _joinType2, data, \" at pages/meeting/meeting.nvue:294\");\n if (_joinType2 == 'seller') {\n _this.meetingBusinessUser.userId = 'seller_' + userid;\n _this.meetingBusinessUser.id = userid;\n _this.addMessage('', '供方加入房间');\n }\n if (_joinType2 == 'service') {\n _this.meetingServiceUser.userId = 'service_' + userid;\n _this.meetingServiceUser.id = userid;\n _this.addMessage('', '客服加入房间');\n }\n _this.getUserInfo(userid, _joinType2);\n }\n }\n });\n },\n onHide: function onHide() {\n this.destroyInstance();\n this.stopLocalPreview();\n },\n mounted: function mounted() {\n if (uni.getSystemInfoSync().platform === 'android') {\n _permission.default.requestAndroidPermission('android.permission.RECORD_AUDIO');\n _permission.default.requestAndroidPermission('android.permission.CAMERA');\n }\n this.initUserSign();\n },\n onUnload: function onUnload() {\n this.destroyInstance();\n __f__(\"log\", '- onUnload', \" at pages/meeting/meeting.nvue:323\");\n },\n onBackPress: function onBackPress() {\n this.destroyInstance();\n },\n methods: {\n getUserInfo: function getUserInfo(id, type) {var _this2 = this;\n _index2.default.getUserInfo(id).then(function (res) {\n __f__(\"log\", 'getUserInfo', res, \" at pages/meeting/meeting.nvue:331\");\n var user = res.data;\n if (user && user.id) {\n if (type == 'customer') {\n _this2.meetingCustomerUser.userInfo = user;\n }\n if (type == 'seller') {\n _this2.meetingBusinessUser.userInfo = user;\n }\n if (type == 'service') {\n _this2.meetingServiceUser.userInfo = user;\n }\n }\n _this2.$forceUpdate();\n });\n },\n addMessage: function addMessage(author, message) {var _this3 = this;\n this.messageList.push({\n author: author || '系统',\n content: message,\n id: this.messageList.length });\n\n this.$nextTick(function () {\n _this3.scrollToBottom();\n });\n },\n scrollToBottom: function scrollToBottom() {var _this4 = this;\n this.scorllId = 'item1_' + this.messageList[this.messageList.length - 1].id;\n this.$nextTick(function () {\n _this4.scorllId = 'bottom';\n });\n\n },\n joinRoom: function joinRoom() {\n var param = {\n method: 'join',\n IsRoom: true,\n RoomNo: this.roomId,\n RoomName: this.room.RoomName,\n messageContent: this.joinType,\n token: _service.default.getTokenChaoge() };\n\n __f__(\"log\", 'joinRoom', param, \" at pages/meeting/meeting.nvue:373\");\n socketTask.send({\n data: JSON.stringify(param),\n success: function success(res) {\n __f__(\"log\", 'socketTask.send success', res, \" at pages/meeting/meeting.nvue:377\");\n },\n fail: function (_fail) {function fail(_x) {return _fail.apply(this, arguments);}fail.toString = function () {return _fail.toString();};return fail;}(function (e) {\n __f__(\"log\", 'socketTask.send fail', fail, \" at pages/meeting/meeting.nvue:380\");\n socketTask = getApp().globalData.initSocket();\n }),\n complete: function complete() {} });\n\n },\n initUserSign: function initUserSign() {var _this5 = this;\n if (this.userId) {\n __f__(\"log\", 'initUserSign', this.userId, \" at pages/meeting/meeting.nvue:388\");\n // 生成 userSig\n var _genTestUserSig =\n\n\n (0, _GenerateTestUserSig.genTestUserSig)(this.userId),sdkAppId = _genTestUserSig.sdkAppId,userSig = _genTestUserSig.userSig;\n this.sdkAppId = sdkAppId;\n this.userSig = userSig;\n __f__(\"log\", 'sdkAppId,userSig', sdkAppId, userSig, \" at pages/meeting/meeting.nvue:396\");\n if (!sdkAppId || !userSig) {\n uni.showToast({\n title: '请填写 sdkAppId、userSig',\n icon: 'none' });\n\n }\n } else {\n setTimeout(function () {\n _this5.initUserSign();\n }, 200);\n }\n },\n handleToSubmitOrder: function handleToSubmitOrder() {\n uni.navigateBack();\n },\n //邀请商家客服\n handleInviteBusinessUser: function handleInviteBusinessUser() {\n _index2.default.message.getInviteBusinessUserJoin(this.shopId || 0, this.room.RoomNo, this.sellerUserId).then(function (res) {});\n },\n //邀请平台客服\n handleInviteServiceUser: function handleInviteServiceUser() {var _this6 = this;\n uni.showLoading();\n _index2.default.message.getInviteServiceUserJoin(this.room.RoomNo, 'joinMultiplayerVideo').then(function (res) {\n uni.showToast({\n title: '邀请成功' });\n\n _this6.hasInvite = true;\n }).finally(function () {\n uni.hideLoading();\n });\n },\n createRoom: function createRoom(data) {var _this7 = this;\n uni.showLoading({\n title: '正在创建房间' });\n\n _index2.default.message.postAddRoom(data).then(function (res) {\n _this7.room = res.data;\n _this7.roomId = res.data.RoomNo;\n _this7.handleInviteBusinessUser();\n _this7.joinRoom();\n _this7.handleStartMeeting();\n }).finally(function () {\n uni.hideLoading();\n });\n },\n\n sendMessage: function sendMessage() {\n var that = this;\n var param = JSON.stringify({\n formUserId: this.userId,\n contentType: \"\",\n content: this.messageContent,\n messageContent: this.messageContent,\n sendTime: new Date(),\n method: 'send_to_room',\n RoomNo: this.room.RoomNo,\n RoomName: this.room.Name,\n IsRoom: true,\n token: _service.default.getTokenChaoge() });\n\n __f__(\"log\", param, \" at pages/meeting/meeting.nvue:457\");\n socketTask.send({\n data: param,\n success: function success(res) {\n __f__(\"log\", 'socketTask.send success', res, \" at pages/meeting/meeting.nvue:461\");\n },\n fail: function fail(e) {\n __f__(\"log\", 'socketTask.send fail', e, \" at pages/meeting/meeting.nvue:464\");\n },\n complete: function complete() {} });\n\n that.messageContent = '';\n },\n handleJoinMeeting: function handleJoinMeeting() {\n this.meeting = true;\n this.startLocalPreview();\n },\n handleStartMeeting: function handleStartMeeting() {var _this8 = this;\n this.$nextTick(function () {\n _this8.createTrtcCloud();\n _this8.enterRoom();\n });\n },\n handleEndtMeeting: function handleEndtMeeting() {\n this.meeting = false;\n this.meetingCustomerUser.meeting = false;\n this.meetingBusinessUser.meeting = false;\n this.meetingServiceUser.meeting = false;\n this.stopLocalPreview();\n // this.exitRoom();\n },\n\n bindInputChange: function bindInputChange(event, type) {\n var value = event.detail.value;\n switch (type) {\n case 'roomId':{\n this.roomId = value;\n break;\n }\n case 'userId':{\n this.userId = value;\n break;\n }}\n\n },\n destroyInstance: function destroyInstance() {\n if (this.trtcCloud) {\n _index.default.destroyInstance();\n this.trtcCloud = null;\n }\n },\n createTrtcCloud: function createTrtcCloud() {\n if (!this.trtcCloud) {\n this.trtcCloud = _index.default.createInstance();\n this.handleEvents();\n this.sdkAppId && uni.$createTrtcCloudUpload(this.sdkAppId);\n }\n },\n enterRoom: function enterRoom() {\n var userId = this.userId;\n try {var\n\n sdkAppId =\n\n\n this.sdkAppId,appScene = this.appScene,userSig = this.userSig;\n var param = {\n roomId: 0,\n strRoomId: this.room.RoomNo,\n userId: this.userId,\n sdkAppId: sdkAppId,\n userSig: userSig };\n\n __f__(\"log\", 'enterRoom', param, \" at pages/meeting/meeting.nvue:530\");\n this.trtcCloud.enterRoom(param, appScene);\n this.sdkAppId && uni.$enterRoomSuccessUpload(this.sdkAppId);\n\n\n } catch (error) {\n this.addMessage('', \"enterRoom error = \".concat(JSON.stringify(error)));\n this.sdkAppId && uni.$enterRoomFailedUpload(this.sdkAppId, JSON.stringify(error));\n }\n },\n exitRoom: function exitRoom() {\n try {\n this.meeting = false;\n this.stopLocalPreview();\n this.stopRemoteView();\n this.trtcCloud.exitRoom();\n } catch (e) {\n // TODO handle the exception\n }\n },\n startLocalPreview: function startLocalPreview() {var _this9 = this;\n this.meeting = true;\n var userId = this.userId;\n if (this.meetingBusinessUser.userId == userId) {\n this.meetingBusinessUser.meeting = true;\n }\n if (this.meetingCustomerUser.userId == userId) {\n this.meetingCustomerUser.meeting = true;\n }\n if (this.meetingServiceUser.userId == userId) {\n this.meetingServiceUser.meeting = true;\n }\n this.enterRoom();\n this.$nextTick(function () {\n _this9.trtcCloud.startLocalPreview(_this9.isFrontCamera, \"\".concat(_this9.joinType, \"_local\"));\n _this9.trtcCloud.startLocalAudio(_TrtcDefines.TRTCAudioQuality.TRTCAudioQualityDefault);\n _this9.sdkAppId && uni.$startLocalPreviewUpload(_this9.sdkAppId);\n });\n },\n stopLocalPreview: function stopLocalPreview() {\n this.trtcCloud.stopLocalPreview();\n this.trtcCloud.stopLocalAudio();\n },\n startRemoteView: function startRemoteView(userId) {var _this10 = this;\n var joinType = userId.split('_')[0];\n var playType = userId == this.userId ? 'local' : 'remote';\n\n if (joinType == 'customer') {\n this.meetingCustomerUser.userId = userId;\n this.meetingCustomerUser.meeting = true;\n }\n if (joinType == 'seller') {\n this.meetingBusinessUser.userId = userId;\n this.meetingBusinessUser.meeting = true;\n }\n if (joinType == 'service') {\n this.meetingServiceUser.userId = userId;\n this.meetingServiceUser.meeting = true;\n }\n this.$forceUpdate();\n setTimeout(function () {\n _this10.$nextTick(function () {\n _this10.trtcCloud.startRemoteView(userId, _this10.streamType, \"\".concat(joinType, \"_\").concat(playType));\n _this10.sdkAppId && uni.$startRemoteViewSuccessUpload(_this10.sdkAppId);\n });\n }, 1000);\n },\n stopRemoteView: function stopRemoteView(userId) {\n this.trtcCloud.stopRemoteView(userId, this.streamType);\n if (this.meetingBusinessUser.userId == userId) {\n this.meetingBusinessUser.meeting = false;\n }\n if (this.meetingCustomerUser.userId == userId) {\n this.meetingCustomerUser.meeting = false;\n }\n if (this.meetingServiceUser.userId == userId) {\n this.meetingServiceUser.meeting = false;\n }\n\n },\n // 听筒、免提 切换\n switchAudioRoute: function switchAudioRoute() {\n this.audioRoute = this.audioRoute === _TrtcDefines.TRTCCloudDef.TRTC_AUDIO_ROUTE_SPEAKER ? _TrtcDefines.TRTCCloudDef.\n TRTC_AUDIO_ROUTE_EARPIECE : _TrtcDefines.TRTCCloudDef.TRTC_AUDIO_ROUTE_SPEAKER;\n this.trtcCloud.setAudioRoute(this.audioRoute);\n },\n handleEvents: function handleEvents() {var _this11 = this;\n this.trtcCloud.on('onWarning', function (res) {\n // uni.showToast({\n // \ttitle: `本地摄像头错误`,\n // \ticon: 'none',\n // });\n });\n this.trtcCloud.on('onError', function (res) {\n __f__(\"log\", 'onError', res, \" at pages/meeting/meeting.nvue:624\");\n _this11.sdkAppId && uni.$onErrorUpload(_this11.sdkAppId, JSON.stringify(res));\n });\n this.trtcCloud.on('onEnterRoom', function (result) {\n __f__(\"log\", \"- onEnterRoom = \".concat(result), \" at pages/meeting/meeting.nvue:628\");\n if (result > 0) {\n _this11.addMessage('', \"\\u8FDB\\u623F\\u6210\\u529F\\uFF0C\\u8017\\u65F6: \".concat(result, \"ms\"));\n } else {\n __f__(\"log\", \"enter room failed\\uFF0Cerror code = \".concat(result), \" at pages/meeting/meeting.nvue:632\");\n }\n });\n this.trtcCloud.on('onExitRoom', function (reason) {\n var reasonList = ['主动调用 exitRoom 退房', '被服务器踢出当前房间', '当前房间整个被解散'];\n _this11.addMessage('', \"\\u9000\\u623F \".concat(reasonList[reason]));\n _this11.meeting = false;\n });\n this.trtcCloud.on('onFirstVideoFrame', function (res) {\n __f__(\"log\", \"\\u6E32\\u67D3\\u7684\\u9996\\u5E27\\u753B\\u9762\\u54CD\\u5E94 = \".concat(JSON.stringify(res)), \" at pages/meeting/meeting.nvue:641\");\n });\n this.trtcCloud.on('onRemoteUserEnterRoom', function (userId) {\n __f__(\"log\", 'onRemoteUserEnterRoom', userId, \" at pages/meeting/meeting.nvue:644\");\n var joinType = userId.split('_')[0];\n var userid = userId.split('_')[1];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n _this11.addMessage('', \"\".concat(userType[joinType] || '未知用户', \"\\u52A0\\u5165\\u89C6\\u9891\\u804A\\u5929\"));\n _this11.getUserInfo(userid, joinType);\n\n if (joinType == 'customer') {\n _this11.meetingCustomerUser.userId = userId;\n }\n if (joinType == 'seller') {\n _this11.meetingBusinessUser.userId = userId;\n }\n if (joinType == 'service') {\n _this11.meetingServiceUser.userId = userId;\n }\n\n\n\n });\n this.trtcCloud.on('onRemoteUserLeaveRoom', function (userId) {\n var joinType = userId.split('_')[0];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n _this11.addMessage('', \"\".concat(userType[joinType] || '未知用户', \"\\u9000\\u51FA\\u89C6\\u9891\\u804A\\u5929\"));\n if (joinType == 'service') {\n _this11.meeting = false;\n _this11.meetingCustomerUser.meeting = false;\n _this11.meetingServiceUser.meeting = false;\n _this11.meetingBusinessUser.meeting = false;\n _this11.stopLocalPreview();\n _this11.stopRemoteView(_this11.meetingCustomerUser.userId);\n _this11.stopRemoteView(_this11.meetingServiceUser.userId);\n _this11.stopRemoteView(_this11.meetingBusinessUser.userId);\n }\n if (userId == _this11.userId) {\n _this11.stopLocalPreview();\n } else {\n _this11.stopRemoteView(userId);\n }\n });\n this.trtcCloud.on('onUserVideoAvailable', function (res) {var\n\n userId =\n\n res.userId,available = res.available;\n __f__(\"log\", 'onUserVideoAvailable', res, \" at pages/meeting/meeting.nvue:697\");\n var joinType = userId.split('_')[0];\n var userType = {\n customer: '需方',\n seller: '供方',\n service: '客服' };\n\n\n\n\n if (available) {\n if (_this11.meeting) {\n _this11.$nextTick(function () {\n _this11.startRemoteView(userId);\n });\n } else {\n if (joinType == 'service') {\n _this11.meeting = true;\n _this11.$nextTick(function () {\n _this11.startLocalPreview();\n _this11.startRemoteView(userId);\n });\n }\n }\n } else {\n _this11.addMessage('', \"\".concat(userType[joinType] || '未知用户', \"\\u9000\\u51FA\\u89C6\\u9891\\u804A\\u5929\"));\n if (joinType == 'service') {\n _this11.meeting = false;\n _this11.meetingCustomerUser.meeting = false;\n _this11.meetingServiceUser.meeting = false;\n _this11.meetingBusinessUser.meeting = false;\n _this11.stopLocalPreview();\n _this11.stopRemoteView(_this11.meetingCustomerUser.userId);\n _this11.stopRemoteView(_this11.meetingServiceUser.userId);\n _this11.stopRemoteView(_this11.meetingBusinessUser.userId);\n }\n if (userId == _this11.userId) {\n _this11.stopLocalPreview();\n } else {\n _this11.stopRemoteView(userId);\n }\n }\n });\n this.trtcCloud.on('onExitRoom', function (res) {\n __f__(\"log\", \"onExitRoom = \".concat(JSON.stringify(res)), \" at pages/meeting/meeting.nvue:741\");\n });\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-hbuilderx/packages/uni-app-plus-nvue/dist/require-native-plugin.js */ 32)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 48)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVldGluZy9tZWV0aW5nLm52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0dBOzs7QUFHQTtBQUNBO0FBQ0E7Ozs7OztBQU1BOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyRix3bkNBSEE7QUFJQSxnRDtBQUNBO0FBQ0E7QUFDQSx5Q0FEQTtBQUVBLDJDQUZBLEVBREE7O0FBS0E7QUFDQSxrQkFEQSwwQkFDQSxHQURBLEVBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FYQSxDQVdBO0FBQ0E7QUFDQTtBQUNBLEtBaEJBLEVBTEE7O0FBdUJBLE1BdkJBLGtCQXVCQTtBQUNBO0FBQ0Esc0JBREE7QUFFQTtBQUNBO0FBQ0EsaUJBREE7QUFFQSxzQkFGQSxFQUhBOztBQU9BO0FBQ0E7QUFDQSxpQkFEQTtBQUVBLHNCQUZBLEVBUkE7OztBQWFBO0FBQ0E7QUFDQSxpQkFEQTtBQUVBLHNCQUZBLEVBZEE7O0FBa0JBLGFBbEJBO0FBbUJBLHFCQW5CQTtBQW9CQSxpQkFwQkE7QUFxQkEsaUJBckJBO0FBc0JBLGVBdEJBO0FBdUJBLGdCQXZCQTtBQXdCQSxzQkF4QkE7QUF5QkEsK0RBekJBLEVBeUJBO0FBQ0EseUJBMUJBO0FBMkJBLHlFQTNCQTtBQTRCQSxzQkE1QkE7QUE2QkEsb0VBN0JBO0FBOEJBLHFCQTlCQTtBQStCQSx3QkEvQkE7QUFnQ0Esb0JBaENBO0FBaUNBLGNBakNBO0FBa0NBLGVBbENBO0FBbUNBLHFCQW5DQTtBQW9DQSxlQXBDQTtBQXFDQSwwQkFyQ0E7QUFzQ0Esd0JBdENBOztBQXdDQSxHQWhFQTtBQWlFQTtBQUNBLHVEQURBO0FB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QUNBO0FBQ0EsT0FKQTtBQUtBO0FBQ0E7QUFDQSxPQUZBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQURBO0FBRUEsc0JBRkE7QUFHQSx1QkFIQTs7QUFLQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBLE9BeEJBO0FBeUJBO0FBQ0E7QUFDQTtBQUNBLHdCQURBO0FBRUEsc0JBRkE7QUFHQSx1QkFIQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxPQXZCQTtBQXdCQTs7QUFFQSxjQUZBOztBQUlBLFdBSkEsQ0FFQSxNQUZBLENBR0EsU0FIQSxHQUlBLEdBSkEsQ0FHQSxTQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQSxzQkFGQTtBQUdBLHVCQUhBOzs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFGQTtBQUdBLFdBSkEsTUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUhBO0FBSUE7QUFDQTtBQUNBLFNBZEEsTUFjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0EvQ0E7QUFnREE7QUFDQTtBQUNBLE9BRkE7QUFHQSxLQS9aQSxFQW5NQSxFIiwiZmlsZSI6IjExMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvaG9tZS9iYW5jazIucG5nXCIgc3R5bGU9XCJ3aWR0aDogNzUwcnB4OyBoZWlnaHQ6IDEwMCU7XCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYmFja1wiPlxyXG5cdFx0XHQ8IS0tIOW5s+WPsOWuouacjSAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0MVwiPlxyXG5cdFx0XHRcdDxpbWFnZSBjbGFzcz1cImltZy1iZ1wiIHN0eWxlPVwibGVmdDogNjBycHg7Ym90dG9tOiAtMjBycHg7XCIgc3JjPVwiL3N0YXRpYy9oZWFkX2tlZnUucG5nXCIgbW9kZT1cImFzcGVjdEZpbGxcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OjM2MHJweDt3aWR0aDogMzAwcnB4O2ZsZXgtZGlyZWN0aW9uOiByb3c7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7bWFyZ2luOiAwIGF1dG87XCI+XHJcblx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHR2LWlmPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCAmJiB1c2VySWQgPT0gbWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCAmJiBtZWV0aW5nU2VydmljZVVzZXIubWVldGluZ1wiPlxyXG5cdFx0XHRcdFx0XHQ8dHJ0Yy1sb2NhbC12aWV3IHZpZXdJZD1cInNlcnZpY2VfbG9jYWxcIiBzdHlsZT1cImhlaWdodDogMzgwcnB4O3dpZHRoOiAzNjBycHg7XCI+XHJcblx0XHRcdFx0XHRcdDwvdHJ0Yy1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0OmNsYXNzPVwieydoaWRlJzohKG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgdXNlcklkICE9IG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgbWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcpfVwiPlxyXG5cdFx0XHRcdFx0XHQ8dHJ0Yy1yZW1vdGUtdmlldyA6dXNlcklkPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZFwiIHZpZXdJZD1cInNlcnZpY2VfcmVtb3RlXCJcclxuXHRcdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMzYwcnB4O3dpZHRoOiAzMDBycHg7XCI+XHJcblx0XHRcdFx0XHRcdDwvdHJ0Yy1yZW1vdGUtdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3ICB2LWlmPVwiIW1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWRcIiBjbGFzcz1cImxpc3Qtd2FpdGluZ1wiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBzdHlsZT1cImNvbG9yOiAjZmZmO1wiPuetieW+heWuouacjeWKoOWFpTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJzaW1wbGUtYnRuXCIgc3R5bGU9XCJtYXJnaW4tdG9wOjQwcHg7XCIgQGNsaWNrPVwiaGFuZGxlSW52aXRlU2VydmljZVVzZXJcIiB2LWlmPVwiIWhhc0ludml0ZSAmJiAoam9pblR5cGUgPT0gJ2N1c3RvbWVyJyB8fCBqb2luVHlwZSA9PSAnc2VsbGVyJylcIj7pgoDor7flrqLmnI08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8YmxvY2sgdi1pZj1cIm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgIW1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSB2LWlmPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJbmZvICYmIG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySW5mby5hdmF0YXJcIiA6c3JjPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJbmZvLmF2YXRhciB8IGltYWdlVXJsRmlsdGVyXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O2hlaWdodDogMzYwcnB4O2JvcmRlci1yYWRpdXM6IDQwcnB4O1wiIG1vZGU9XCJhc3BlY3RGaWxsXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwibmFtZVwiPuWuouacjTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47d2lkdGg6IDY1MHJweDttYXJnaW4tdG9wOjQwcnB4O1wiPlxyXG5cdFx0XHRcdDwhLS3kvpvmlrktLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImxpc3QxXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O21hcmdpbi1yaWdodDogMjBweDtcIj5cclxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImltZy1iZ1wiIHNyYz1cIi9zdGF0aWMvaGVhZF9nZi5wbmdcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6MzYwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsnaGlkZSc6IShtZWV0aW5nQnVzaW5lc3NVc2VyICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID09IHVzZXJJZCAmJiBtZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcpfVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLWxvY2FsLXZpZXcgdmlld0lkPVwic2VsbGVyX2xvY2FsXCIgc3R5bGU9XCJoZWlnaHQ6IDM4MHJweDt3aWR0aDogMzYwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwvdHJ0Yy1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0OmNsYXNzPVwieydoaWRlJzohKG1lZXRpbmdCdXNpbmVzc1VzZXIgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgIT0gdXNlcklkICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyl9XCI+XHJcblx0XHRcdFx0XHRcdFx0PHRydGMtcmVtb3RlLXZpZXcgOnVzZXJJZD1cIm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkXCIgdmlld0lkPVwic2VsbGVyX3JlbW90ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMzYwcnB4O3dpZHRoOiAzMDBycHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PC90cnRjLXJlbW90ZS12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3ICB2LWlmPVwiIW1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkXCIgY2xhc3M9XCJsaXN0LXdhaXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBzdHlsZT1cImNvbG9yOiAjZmZmO1wiPuetieW+heS+m+aWueWKoOWFpTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8YmxvY2sgdi1pZj1cIm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkICYmICFtZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cIm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlckluZm8gJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySW5mby5hdmF0YXJcIiA6c3JjPVwibWVldGluZ0J1c2luZXNzVXNlci51c2VySW5mby5hdmF0YXIgfCBpbWFnZVVybEZpbHRlclwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDtoZWlnaHQ6IDM2MHJweDtib3JkZXItcmFkaXVzOiA0MHJweDtcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIj7kvpvmlrk8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8IS0t6ZyA5pa5LS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0MVwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpbWctYmdcIiBzcmM9XCIvc3RhdGljL2hlYWRfeGYucG5nXCIgbW9kZT1cImFzcGVjdEZpbGxcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OjM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0XHR2LWlmPVwibWVldGluZ0N1c3RvbWVyVXNlciAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQgJiYgbWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nXCI+XHJcblx0XHRcdFx0XHRcdFx0PHRydGMtbG9jYWwtdmlldyB2aWV3SWQ9XCJjdXN0b21lcl9sb2NhbFwiIHN0eWxlPVwiaGVpZ2h0OiAzODBycHg7d2lkdGg6IDM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L3RydGMtbG9jYWwtdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsnaGlkZSc6IShtZWV0aW5nQ3VzdG9tZXJVc2VyICYmIG1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkICYmIG1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkICE9IHVzZXJJZCAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcpfVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLXJlbW90ZS12aWV3IDp1c2VySWQ9XCJtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZFwiIHZpZXdJZD1cImN1c3RvbWVyX3JlbW90ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMzYwcnB4O3dpZHRoOiAzMDBycHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PC90cnRjLXJlbW90ZS12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxibG9jayB2LWlmPVwiIW1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkIHx8ICFtZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cIm1lZXRpbmdDdXN0b21lclVzZXIudXNlckluZm8gJiYgbWVldGluZ0N1c3RvbWVyVXNlci51c2VySW5mby5hdmF0YXJcIiA6c3JjPVwibWVldGluZ0N1c3RvbWVyVXNlci51c2VySW5mby5hdmF0YXIgfCBpbWFnZVVybEZpbHRlclwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDtoZWlnaHQ6IDM2MHJweDtib3JkZXItcmFkaXVzOiA0MHJweDtcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIj7pnIDmlrk8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHN0eWxlPVwiZmxleC1kaXJlY3Rpb246IHJvdztqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDttYXJnaW4tdG9wOjQwcnB4O21hcmdpbi1ib3R0b206NDBycHg7d2lkdGg6IDY1MHJweDtcIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJ0blwiIEBjbGljaz1cImhhbmRsZUpvaW5NZWV0aW5nXCIgdi1pZj1cInN0YXJ0QnRuVmlzaWJsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAyMHJweDtcIj5cclxuXHRcdFx0XHRcdOW8gOWni+inhumikVxyXG5cdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJ0blwiIEBjbGljaz1cImhhbmRsZUpvaW5NZWV0aW5nXCIgdi1pZj1cImpvaW5CdG5WaXNpYmxlXCJcclxuXHRcdFx0XHRcdHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAyMHJweDtcIj7liqDlhaXop4bpopE8L3RleHQ+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJidG5cIiB2LWlmPVwibWVldGluZyAmJiBqb2luVHlwZSA9PSAnc2VydmljZSdcIiBAY2xpY2s9XCJoYW5kbGVFbmR0TWVldGluZ1wiXHJcblx0XHRcdFx0XHRzdHlsZT1cIm1hcmdpbi1yaWdodDogMjBweDtcIj5cclxuXHRcdFx0XHRcdOaMguaWrVxyXG5cdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJ0blwiIHYtaWY9XCJqb2luVHlwZSA9PSAnY3VzdG9tZXInXCIgQGNsaWNrPVwiaGFuZGxlVG9TdWJtaXRPcmRlclwiPlxyXG5cdFx0XHRcdFx056uL5Y2z5LiL5Y2VXHJcblx0XHRcdFx0PC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDxzY3JvbGwtdmlldyA6c2Nyb2xsLXk9XCJ0cnVlXCIgY2xhc3M9XCJtZXNzYWdlXCIgOnNjcm9sbC1pbnRvLXZpZXc9XCJzY29ybGxJZFwiPlxyXG5cdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDMyMHB4O1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgdi1mb3I9XCJpdGVtIGluIG1lc3NhZ2VMaXN0XCIgOmlkPVwiJ2l0ZW1fJytpdGVtLmlkXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IHN0eWxlPVwiY29sb3I6ICNmZmY7bWFyZ2luLWxlZnQ6IDEwcnB4O2Rpc3BsYXk6IGlubGluZTtmb250LXNpemU6IDE1cHg7XCI+XHJcblx0XHRcdFx0XHRcdFx044CQe3tpdGVtLmF1dGhvciB8fCAn57O757ufJ31944CR77yae3tpdGVtLmNvbnRlbnR9fVxyXG5cdFx0XHRcdFx0XHQ8L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGlkPVwiYm90dG9tXCIgc3R5bGU9XCJoZWlnaHQ6IDEwcnB4O1wiPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC9zY3JvbGwtdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b20taW5wdXRcIj5cclxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJpbnB1dFwiIHBsYWNlaG9sZGVyPVwi5oOz6K+054K55LuA5LmI77yfXCIgcGxhY2Vob2xkZXItc3R5bGU9XCJjb2xvcjojZmZmXCIgdi1tb2RlbD1cIm1lc3NhZ2VDb250ZW50XCJcclxuXHRcdFx0XHRcdCA6Y29uZmlybS1ob2xkPVwidHJ1ZVwiIC8+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIHN1Ym1pdC1idG5cIiB2LWlmPVwibWVzc2FnZUNvbnRlbnRcIiBAY2xpY2s9XCJzZW5kTWVzc2FnZVwiPuWPkemAgTwvYnV0dG9uPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCB7XHJcblx0XHRtYXBTdGF0ZVxyXG5cdH0gZnJvbSAndnVleCc7XHJcblx0aW1wb3J0IHBlcm1pc2lvbiBmcm9tIFwiQC9UcnRjQ2xvdWQvcGVybWlzc2lvbi5qc1wiO1xyXG5cdGltcG9ydCBUcnRjQ2xvdWQgZnJvbSAnQC9UcnRjQ2xvdWQvbGliL2luZGV4JztcclxuXHRpbXBvcnQge1xyXG5cdFx0VFJUQ0FwcFNjZW5lLFxyXG5cdFx0VFJUQ1ZpZGVvU3RyZWFtVHlwZSxcclxuXHRcdFRSVENDbG91ZERlZixcclxuXHRcdFRSVENBdWRpb1F1YWxpdHlcclxuXHR9IGZyb20gJ0AvVHJ0Y0Nsb3VkL2xpYi9UcnRjRGVmaW5lcyc7XHJcblx0aW1wb3J0IHtcclxuXHRcdGdlblRlc3RVc2VyU2lnXHJcblx0fSBmcm9tICdAL2RlYnVnL0dlbmVyYXRlVGVzdFVzZXJTaWcnO1xyXG5cdGltcG9ydCBUcnRjTG9jYWxWaWV3IGZyb20gJ0AvVHJ0Y0Nsb3VkL3ZpZXcvVHJ0Y0xvY2FsVmlldyc7XHJcblx0aW1wb3J0IFRydGNSZW1vdGVWaWV3IGZyb20gJ0AvVHJ0Y0Nsb3VkL3ZpZXcvVHJ0Y1JlbW90ZVZpZXcnO1xyXG5cdGNvbnN0IFRydGNFdmVudCA9IHVuaS5yZXF1aXJlTmF0aXZlUGx1Z2luKCdnbG9iYWxFdmVudCcpO1xyXG5cdGltcG9ydCBBUEkgZnJvbSAnQC9hcGlzL2luZGV4LmpzJ1xyXG5cdGltcG9ydCBjb25maWcgZnJvbSAnQC9jb21tb24vY29uZmlnL2NvbmZpZy5qcydcclxuXHRpbXBvcnQgc2VydmljZSBmcm9tICdAL3NlcnZpY2Uvc2VydmljZS5qcydcclxuXHRsZXQgc29ja2V0VGFzayA9IGdldEFwcCgpLmdsb2JhbERhdGEuc29ja2V0VGFzaztcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRydGNMb2NhbFZpZXc6IFRydGNMb2NhbFZpZXcsXHJcblx0XHRcdFRydGNSZW1vdGVWaWV3OiBUcnRjUmVtb3RlVmlldyxcclxuXHRcdH0sXHJcblx0XHRmaWx0ZXJzOntcclxuXHRcdFx0aW1hZ2VVcmxGaWx0ZXIodmFsKXtcclxuXHRcdFx0XHR0cnl7XHJcblx0XHRcdFx0XHRpZih2YWwuaW5kZXhPZignZGF0YTonKSA9PSAwKXtcclxuXHRcdFx0XHRcdFx0bGV0IGJhc2U2NCA9IHZhbDtcclxuXHRcdFx0XHRcdFx0YmFzZTY0ID0gYmFzZTY0LnJlcGxhY2UoXCIvZGF0YTppbWFnZS8vcG5nO2Jhc2U2NCwvXCIsXCJcIik7XHJcblx0XHRcdFx0XHRcdGJhc2U2NCA9IGJhc2U2NC5yZXBsYWNlKFwiL1xcL1wiLFwiXCIpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gYmFzZTY0O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYodmFsLmluZGV4T2YoJ2h0dHAnKSA9PSAwIHx8IHZhbC5pbmRleE9mKCcuLi8nKSA9PSAwIHx8IHZhbC5pbmRleE9mKCcvc3RhdGljJykgPT0gMCl7XHJcblx0XHRcdFx0XHRcdHJldHVybiB2YWw7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gY29uZmlnLmJhc2V1cmwrdmFsO1xyXG5cdFx0XHRcdH1jYXRjaChlKXtcclxuXHRcdFx0XHRcdHJldHVybiB2YWw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0aGFzSW52aXRlOiBmYWxzZSxcclxuXHRcdFx0XHQvL+mcgOaWuVxyXG5cdFx0XHRcdG1lZXRpbmdDdXN0b21lclVzZXI6IHtcclxuXHRcdFx0XHRcdHVzZXJJZDogMCxcclxuXHRcdFx0XHRcdG1lZXRpbmc6IGZhbHNlLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Ly/kvpvmlrlcclxuXHRcdFx0XHRtZWV0aW5nQnVzaW5lc3NVc2VyOiB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IDAsXHJcblx0XHRcdFx0XHRtZWV0aW5nOiBmYWxzZSxcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHQvL+WuouacjVxyXG5cdFx0XHRcdG1lZXRpbmdTZXJ2aWNlVXNlcjoge1xyXG5cdFx0XHRcdFx0dXNlcklkOiAwLFxyXG5cdFx0XHRcdFx0bWVldGluZzogZmFsc2UsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRudW06IDEwLFxyXG5cdFx0XHRcdHRydGNDbG91ZDogbnVsbCxcclxuXHRcdFx0XHRzZGtBcHBJZDogMCxcclxuXHRcdFx0XHR1c2VyU2lnOiAnJyxcclxuXHRcdFx0XHRyb29tSWQ6IDAsXHJcblx0XHRcdFx0dXNlcklkOiAnJyxcclxuXHRcdFx0XHR1c2VyVHlwZTogJ+etieW+hei/m+WFpScsXHJcblx0XHRcdFx0YXBwU2NlbmU6IFRSVENBcHBTY2VuZS5UUlRDQXBwU2NlbmVWaWRlb0NhbGwsIC8vIFRSVENBcHBTY2VuZVZpZGVvQ2FsbFxyXG5cdFx0XHRcdGlzRnJvbnRDYW1lcmE6IHRydWUsXHJcblx0XHRcdFx0c3RyZWFtVHlwZTogVFJUQ1ZpZGVvU3RyZWFtVHlwZS5UUlRDVmlkZW9TdHJlYW1UeXBlQmlnLFxyXG5cdFx0XHRcdHJlbW90ZVVzZXJJZDogJycsXHJcblx0XHRcdFx0YXVkaW9Sb3V0ZTogVFJUQ0Nsb3VkRGVmLlRSVENfQVVESU9fUk9VVEVfU1BFQUtFUixcclxuXHRcdFx0XHRtZXNzYWdlTGlzdDogW10sXHJcblx0XHRcdFx0bWVzc2FnZUNvbnRlbnQ6ICcnLFxyXG5cdFx0XHRcdG15VXNlckluZm86ICcnLFxyXG5cdFx0XHRcdHJvb206IHt9LFxyXG5cdFx0XHRcdHNob3BJZDogMCxcclxuXHRcdFx0XHRzZWxsZXJVc2VySWQ6IDAsXHJcblx0XHRcdFx0cGFyYW06IHt9LFxyXG5cdFx0XHRcdGpvaW5UeXBlOiAnY3VzdG9tZXInLFxyXG5cdFx0XHRcdHNjb3JsbElkOiAnYm90dG9tJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0Li4ubWFwU3RhdGUoWyd1c2VyJywgJ3N0YXRpc3RpY3MnLCAnY29tbW9uJ10pLFxyXG5cdFx0XHRzdGFydEJ0blZpc2libGUoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMudXNlcklkID09IHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuICF0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHRcdGpvaW5CdG5WaXNpYmxlKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLnVzZXJJZCAhPSB0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQpIHtcclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nICYmICF0aGlzLm1lZXRpbmdcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKGUpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ21lZXRpbmcgb25sb2FkJyxlKTtcclxuXHRcdFx0dGhpcy5wYXJhbSA9IGU7XHJcblx0XHRcdC8v5Yqg5YWl57G75Z6L77yM5piv5Lul5LuA5LmI6Lqr5Lu95Yqg5YWl55qEXHJcblx0XHRcdGxldCBqb2luVHlwZSA9IGUuam9pblR5cGUgfHwgJ2N1c3RvbWVyJ1xyXG5cdFx0XHR0aGlzLmpvaW5UeXBlID0gam9pblR5cGU7XHJcblx0XHRcdHRoaXMucm9vbUlkID0gZS5yb29tSWQ7XHJcblx0XHRcdHRoaXMuc2VsbGVyVXNlcklkID0gZS51c2VyaWQ7XHJcblx0XHRcdHRoaXMudXNlcklkID0gYCR7am9pblR5cGV9X2AgKyB0aGlzLnVzZXIuaWQ7XHJcblx0XHRcdGNvbnNvbGUubG9nKCd0aGlzLnVzZXInLHRoaXMudXNlcik7XHJcblx0XHRcdHRoaXMuc2hvcElkID0gZS5zaG9wX2lkO1xyXG5cclxuXHRcdFx0aWYgKGpvaW5UeXBlID09ICdjdXN0b21lcicpIHtcclxuXHRcdFx0XHQvL+mcgOaWuVxyXG5cdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlciA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMubWVldGluZ0N1c3RvbWVyVXNlciwge1xyXG5cdFx0XHRcdFx0dXNlcklkOiB0aGlzLnVzZXJJZCxcclxuXHRcdFx0XHRcdGlkOiB0aGlzLnVzZXIuaWQsXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHR0aGlzLmNyZWF0ZVJvb20oe1xyXG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwi5rWL6K+V5oi/6Ze0XCIsXHJcblx0XHRcdFx0XHRcImJvZHlUZXh0XCI6IFwiXCIsXHJcblx0XHRcdFx0XHRcInJvb21Ob1wiOiBcIlwiLFxyXG5cdFx0XHRcdFx0XCJkZXNjcmlwdGlvblwiOiBcIlwiLFxyXG5cdFx0XHRcdFx0XCJjbGllbnRJZFwiOiBcIlwiLFxyXG5cdFx0XHRcdFx0Ly8gXCJwcm9kdWN0SWRcIjogZS5nb29kc19pZCxcclxuXHRcdFx0XHRcdFwic2hvcElkXCI6IGUuc2hvcF9pZFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMuZ2V0VXNlckluZm8odGhpcy51c2VyLmlkLCdjdXN0b21lcicpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5yb29tID0ge1xyXG5cdFx0XHRcdFx0aWQ6IGUucm9vbUlkLFxyXG5cdFx0XHRcdFx0Um9vbU5vOiBlLnJvb21JZFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyID0ge1xyXG5cdFx0XHRcdFx0dXNlcklkOiBgY3VzdG9tZXJfYCArIGUuY3VzdG9tZXJpZC50b1N0cmluZygpLFxyXG5cdFx0XHRcdFx0aWQ6IGUuY3VzdG9tZXJpZCxcclxuXHRcdFx0XHRcdG1lZXRpbmc6IGZhbHNlXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlbGxlcicpIHtcclxuXHRcdFx0XHQvL+S+m+aWuVxyXG5cdFx0XHRcdHRoaXMubWVldGluZ0J1c2luZXNzVXNlciA9IHtcclxuXHRcdFx0XHRcdHVzZXJJZDogdGhpcy51c2VySWQsXHJcblx0XHRcdFx0XHRpZDogdGhpcy51c2VyLmlkLFxyXG5cdFx0XHRcdFx0bWVldGluZzogZmFsc2VcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHRoaXMuZ2V0VXNlckluZm8odGhpcy51c2VyLmlkLCdzZWxsZXInKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHQvL+W5s+WPsOWuouacjVxyXG5cdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyID0ge1xyXG5cdFx0XHRcdFx0dXNlcklkOiB0aGlzLnVzZXJJZCxcclxuXHRcdFx0XHRcdGlkOiB0aGlzLnVzZXIuaWQsXHJcblx0XHRcdFx0XHRtZWV0aW5nOiBmYWxzZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0dGhpcy5nZXRVc2VySW5mbyh0aGlzLnVzZXIuaWQsJ3NlcnZpY2UnKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLnJvb21JZCkge1xyXG5cdFx0XHRcdHRoaXMuam9pblJvb20oKTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVN0YXJ0TWVldGluZygpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuJGZvcmNlVXBkYXRlKCk7XHJcblx0XHRcdC8v5paH5a2X6IGK5aSpXHJcblx0XHRcdHVuaS4kb24oJ3NvY2tldE1lc3NhZ2UnLCAoZGF0YSkgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdzb2NrZXRNZXNzYWdlJywgZGF0YSk7XHJcblx0XHRcdFx0aWYgKGRhdGEubWVzc2FnZVR5cGUgPT0gJ3NlbmRfdG9fcm9vbScgfHwgZGF0YS5tZXRob2QgPT0gJ3NlbmRfdG9fcm9vbScpIHtcclxuXHRcdFx0XHRcdGxldCBmb3JtVXNlcklkID0gZGF0YS5mb3JtVXNlcklkIHx8ICcnO1xyXG5cdFx0XHRcdFx0bGV0IGpvaW5UeXBlID0gZm9ybVVzZXJJZC5zcGxpdCgnXycpWzBdXHJcblx0XHRcdFx0XHRsZXQgdXNlclR5cGUgPSB7XHJcblx0XHRcdFx0XHRcdGN1c3RvbWVyOiAn6ZyA5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VsbGVyOiAn5L6b5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VydmljZTogJ+WuouacjSdcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRsZXQgc2VuZFVzZXJOYW1lID0gdXNlclR5cGVbam9pblR5cGVdIHx8IGRhdGEucmVhbE5hbWU7XHJcblx0XHRcdFx0XHR0aGlzLmFkZE1lc3NhZ2Uoc2VuZFVzZXJOYW1lLCBkYXRhLm1lc3NhZ2UpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoZGF0YS5tZXNzYWdlVHlwZSA9PSAnam9pbicgfHwgZGF0YS5tZXRob2QgPT0gJ2pvaW4nKSB7XHJcblx0XHRcdFx0XHRsZXQgdXNlcmlkID0gZGF0YS51c2VySW50SWQ7XHJcblx0XHRcdFx0XHRpZiAodXNlcmlkICE9IHRoaXMudXNlci5pZCkge1xyXG5cdFx0XHRcdFx0XHQvL+acieeUqOaIt+WKoOWFpeaIv+mXtFxyXG5cdFx0XHRcdFx0XHRsZXQgam9pblR5cGUgPSBkYXRhLm1lc3NhZ2VDb250ZW50O1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnam9pblR5cGUnLCBqb2luVHlwZSwgZGF0YSk7XHJcblx0XHRcdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VsbGVyJykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPSAnc2VsbGVyXycgKyB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLmlkID0gdXNlcmlkO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgJ+S+m+aWueWKoOWFpeaIv+mXtCcpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgPSAnc2VydmljZV8nICsgdXNlcmlkO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLmlkID0gdXNlcmlkO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgJ+WuouacjeWKoOWFpeaIv+mXtCcpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoaXMuZ2V0VXNlckluZm8odXNlcmlkLGpvaW5UeXBlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0b25IaWRlKCkge1xyXG5cdFx0XHR0aGlzLmRlc3Ryb3lJbnN0YW5jZSgpO1xyXG5cdFx0XHR0aGlzLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRpZiAodW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGxhdGZvcm0gPT09ICdhbmRyb2lkJykge1xyXG5cdFx0XHRcdHBlcm1pc2lvbi5yZXF1ZXN0QW5kcm9pZFBlcm1pc3Npb24oJ2FuZHJvaWQucGVybWlzc2lvbi5SRUNPUkRfQVVESU8nKTtcclxuXHRcdFx0XHRwZXJtaXNpb24ucmVxdWVzdEFuZHJvaWRQZXJtaXNzaW9uKCdhbmRyb2lkLnBlcm1pc3Npb24uQ0FNRVJBJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5pbml0VXNlclNpZ24oKTtcclxuXHRcdH0sXHJcblx0XHRvblVubG9hZCgpIHtcclxuXHRcdFx0dGhpcy5kZXN0cm95SW5zdGFuY2UoKTtcclxuXHRcdFx0Y29uc29sZS5sb2coJy0gb25VbmxvYWQnKTtcclxuXHRcdH0sXHJcblx0XHRvbkJhY2tQcmVzcygpIHtcclxuXHRcdFx0dGhpcy5kZXN0cm95SW5zdGFuY2UoKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdGdldFVzZXJJbmZvKGlkLHR5cGUpe1xyXG5cdFx0XHRcdEFQSS5nZXRVc2VySW5mbyhpZCkudGhlbihyZXM9PntcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnZXRVc2VySW5mbycscmVzKTtcclxuXHRcdFx0XHRcdGxldCB1c2VyID0gcmVzLmRhdGE7XHJcblx0XHRcdFx0XHRpZih1c2VyICYmIHVzZXIuaWQpe1xyXG5cdFx0XHRcdFx0XHRpZih0eXBlID09ICdjdXN0b21lcicpe1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci51c2VySW5mbyA9IHVzZXI7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYodHlwZSA9PSAnc2VsbGVyJyl7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJbmZvID0gdXNlcjtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZih0eXBlID09ICdzZXJ2aWNlJyl7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIudXNlckluZm8gPSB1c2VyO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRhZGRNZXNzYWdlKGF1dGhvciwgbWVzc2FnZSkge1xyXG5cdFx0XHRcdHRoaXMubWVzc2FnZUxpc3QucHVzaCh7XHJcblx0XHRcdFx0XHRhdXRob3I6IGF1dGhvciB8fCAn57O757ufJyxcclxuXHRcdFx0XHRcdGNvbnRlbnQ6IG1lc3NhZ2UsXHJcblx0XHRcdFx0XHRpZDogdGhpcy5tZXNzYWdlTGlzdC5sZW5ndGhcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnNjcm9sbFRvQm90dG9tKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHNjcm9sbFRvQm90dG9tKCkge1xyXG5cdFx0XHRcdHRoaXMuc2NvcmxsSWQgPSAnaXRlbTFfJyArIHRoaXMubWVzc2FnZUxpc3RbdGhpcy5tZXNzYWdlTGlzdC5sZW5ndGggLSAxXS5pZDtcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnNjb3JsbElkID0gJ2JvdHRvbSc7XHJcblx0XHRcdFx0fSlcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGpvaW5Sb29tKCkge1xyXG5cdFx0XHRcdGxldCBwYXJhbSA9IHtcclxuXHRcdFx0XHRcdG1ldGhvZDogJ2pvaW4nLFxyXG5cdFx0XHRcdFx0SXNSb29tOiB0cnVlLFxyXG5cdFx0XHRcdFx0Um9vbU5vOiB0aGlzLnJvb21JZCxcclxuXHRcdFx0XHRcdFJvb21OYW1lOiB0aGlzLnJvb20uUm9vbU5hbWUsXHJcblx0XHRcdFx0XHRtZXNzYWdlQ29udGVudDogdGhpcy5qb2luVHlwZSxcclxuXHRcdFx0XHRcdHRva2VuOiBzZXJ2aWNlLmdldFRva2VuQ2hhb2dlKCksXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnam9pblJvb20nLCBwYXJhbSk7XHJcblx0XHRcdFx0c29ja2V0VGFzay5zZW5kKHtcclxuXHRcdFx0XHRcdGRhdGE6IEpTT04uc3RyaW5naWZ5KHBhcmFtKSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdzb2NrZXRUYXNrLnNlbmQgc3VjY2VzcycsIHJlcyk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbChlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdzb2NrZXRUYXNrLnNlbmQgZmFpbCcsIGZhaWwpO1xyXG5cdFx0XHRcdFx0XHRzb2NrZXRUYXNrID0gZ2V0QXBwKCkuZ2xvYmFsRGF0YS5pbml0U29ja2V0KCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0Y29tcGxldGUoKSB7fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbml0VXNlclNpZ24oKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMudXNlcklkKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnaW5pdFVzZXJTaWduJywgdGhpcy51c2VySWQpO1xyXG5cdFx0XHRcdFx0Ly8g55Sf5oiQIHVzZXJTaWdcclxuXHRcdFx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRcdFx0c2RrQXBwSWQsXHJcblx0XHRcdFx0XHRcdHVzZXJTaWdcclxuXHRcdFx0XHRcdH0gPSBnZW5UZXN0VXNlclNpZyh0aGlzLnVzZXJJZCk7XHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkID0gc2RrQXBwSWQ7XHJcblx0XHRcdFx0XHR0aGlzLnVzZXJTaWcgPSB1c2VyU2lnO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ3Nka0FwcElkLHVzZXJTaWcnLCBzZGtBcHBJZCwgdXNlclNpZyk7XHJcblx0XHRcdFx0XHRpZiAoIXNka0FwcElkIHx8ICF1c2VyU2lnKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiAn6K+35aGr5YaZIHNka0FwcElk44CBdXNlclNpZycsXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5pbml0VXNlclNpZ24oKTtcclxuXHRcdFx0XHRcdH0sIDIwMClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZVRvU3VibWl0T3JkZXIoKSB7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjaygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+mCgOivt+WVhuWutuWuouacjVxyXG5cdFx0XHRoYW5kbGVJbnZpdGVCdXNpbmVzc1VzZXIoKSB7XHJcblx0XHRcdFx0QVBJLm1lc3NhZ2UuZ2V0SW52aXRlQnVzaW5lc3NVc2VySm9pbih0aGlzLnNob3BJZCB8fCAwLCB0aGlzLnJvb20uUm9vbU5vLCB0aGlzLnNlbGxlclVzZXJJZCkudGhlbihyZXMgPT4ge30pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6YKA6K+35bmz5Y+w5a6i5pyNXHJcblx0XHRcdGhhbmRsZUludml0ZVNlcnZpY2VVc2VyKCkge1xyXG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZygpO1xyXG5cdFx0XHRcdEFQSS5tZXNzYWdlLmdldEludml0ZVNlcnZpY2VVc2VySm9pbih0aGlzLnJvb20uUm9vbU5vLCAnam9pbk11bHRpcGxheWVyVmlkZW8nKS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfpgoDor7fmiJDlip8nXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0dGhpcy5oYXNJbnZpdGUgPSB0cnVlO1xyXG5cdFx0XHRcdH0pLmZpbmFsbHkoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNyZWF0ZVJvb20oZGF0YSkge1xyXG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZyh7XHJcblx0XHRcdFx0XHR0aXRsZTogJ+ato+WcqOWIm+W7uuaIv+mXtCdcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRBUEkubWVzc2FnZS5wb3N0QWRkUm9vbShkYXRhKS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnJvb20gPSByZXMuZGF0YTtcclxuXHRcdFx0XHRcdHRoaXMucm9vbUlkID0gcmVzLmRhdGEuUm9vbU5vO1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVJbnZpdGVCdXNpbmVzc1VzZXIoKTtcclxuXHRcdFx0XHRcdHRoaXMuam9pblJvb20oKTtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlU3RhcnRNZWV0aW5nKCk7XHJcblx0XHRcdFx0fSkuZmluYWxseSgoKSA9PiB7XHJcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdHNlbmRNZXNzYWdlKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHRsZXQgcGFyYW0gPSBKU09OLnN0cmluZ2lmeSh7XHJcblx0XHRcdFx0XHRmb3JtVXNlcklkOiB0aGlzLnVzZXJJZCxcclxuXHRcdFx0XHRcdGNvbnRlbnRUeXBlOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y29udGVudDogdGhpcy5tZXNzYWdlQ29udGVudCxcclxuXHRcdFx0XHRcdG1lc3NhZ2VDb250ZW50OiB0aGlzLm1lc3NhZ2VDb250ZW50LFxyXG5cdFx0XHRcdFx0c2VuZFRpbWU6IG5ldyBEYXRlKCksXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdzZW5kX3RvX3Jvb20nLFxyXG5cdFx0XHRcdFx0Um9vbU5vOiB0aGlzLnJvb20uUm9vbU5vLFxyXG5cdFx0XHRcdFx0Um9vbU5hbWU6IHRoaXMucm9vbS5OYW1lLFxyXG5cdFx0XHRcdFx0SXNSb29tOiB0cnVlLFxyXG5cdFx0XHRcdFx0dG9rZW46IHNlcnZpY2UuZ2V0VG9rZW5DaGFvZ2UoKSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhwYXJhbSk7XHJcblx0XHRcdFx0c29ja2V0VGFzay5zZW5kKHtcclxuXHRcdFx0XHRcdGRhdGE6IHBhcmFtLFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3NvY2tldFRhc2suc2VuZCBzdWNjZXNzJywgcmVzKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsKGUpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3NvY2tldFRhc2suc2VuZCBmYWlsJywgZSk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0Y29tcGxldGUoKSB7fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoYXQubWVzc2FnZUNvbnRlbnQgPSAnJztcclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlSm9pbk1lZXRpbmcoKSB7XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLnN0YXJ0TG9jYWxQcmV2aWV3KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZVN0YXJ0TWVldGluZygpIHtcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVRydGNDbG91ZCgpO1xyXG5cdFx0XHRcdFx0dGhpcy5lbnRlclJvb20oKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVFbmR0TWVldGluZygpIHtcclxuXHRcdFx0XHR0aGlzLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMubWVldGluZ0J1c2luZXNzVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdC8vIHRoaXMuZXhpdFJvb20oKTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdGJpbmRJbnB1dENoYW5nZShldmVudCwgdHlwZSkge1xyXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xyXG5cdFx0XHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRcdFx0Y2FzZSAncm9vbUlkJzoge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnJvb21JZCA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNhc2UgJ3VzZXJJZCc6IHtcclxuXHRcdFx0XHRcdFx0dGhpcy51c2VySWQgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRkZXN0cm95SW5zdGFuY2UoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMudHJ0Y0Nsb3VkKSB7XHJcblx0XHRcdFx0XHRUcnRjQ2xvdWQuZGVzdHJveUluc3RhbmNlKCk7XHJcblx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZCA9IG51bGw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjcmVhdGVUcnRjQ2xvdWQoKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLnRydGNDbG91ZCkge1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQgPSBUcnRjQ2xvdWQuY3JlYXRlSW5zdGFuY2UoKTtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlRXZlbnRzKCk7XHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kY3JlYXRlVHJ0Y0Nsb3VkVXBsb2FkKHRoaXMuc2RrQXBwSWQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZW50ZXJSb29tKCkge1xyXG5cdFx0XHRcdGxldCB1c2VySWQgPSB0aGlzLnVzZXJJZDtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0XHRzZGtBcHBJZCxcclxuXHRcdFx0XHRcdFx0YXBwU2NlbmUsXHJcblx0XHRcdFx0XHRcdHVzZXJTaWdcclxuXHRcdFx0XHRcdH0gPSB0aGlzO1xyXG5cdFx0XHRcdFx0bGV0IHBhcmFtID0ge1xyXG5cdFx0XHRcdFx0XHRyb29tSWQ6IDAsXHJcblx0XHRcdFx0XHRcdHN0clJvb21JZDogdGhpcy5yb29tLlJvb21ObyxcclxuXHRcdFx0XHRcdFx0dXNlcklkOiB0aGlzLnVzZXJJZCxcclxuXHRcdFx0XHRcdFx0c2RrQXBwSWQsXHJcblx0XHRcdFx0XHRcdHVzZXJTaWdcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZW50ZXJSb29tJywgcGFyYW0pO1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuZW50ZXJSb29tKHBhcmFtLCBhcHBTY2VuZSk7XHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kZW50ZXJSb29tU3VjY2Vzc1VwbG9hZCh0aGlzLnNka0FwcElkKTtcclxuXHJcblxyXG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdFx0XHR0aGlzLmFkZE1lc3NhZ2UoJycsIGBlbnRlclJvb20gZXJyb3IgPSAke0pTT04uc3RyaW5naWZ5KGVycm9yKX1gKVxyXG5cdFx0XHRcdFx0dGhpcy5zZGtBcHBJZCAmJiB1bmkuJGVudGVyUm9vbUZhaWxlZFVwbG9hZCh0aGlzLnNka0FwcElkLCBKU09OLnN0cmluZ2lmeShlcnJvcikpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXhpdFJvb20oKSB7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5zdG9wTG9jYWxQcmV2aWV3KCk7XHJcblx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KCk7XHJcblx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZC5leGl0Um9vbSgpO1xyXG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRcdC8vIFRPRE8gaGFuZGxlIHRoZSBleGNlcHRpb25cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHN0YXJ0TG9jYWxQcmV2aWV3KCkge1xyXG5cdFx0XHRcdHRoaXMubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0bGV0IHVzZXJJZCA9IHRoaXMudXNlcklkO1xyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmVudGVyUm9vbSgpO1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0YXJ0TG9jYWxQcmV2aWV3KHRoaXMuaXNGcm9udENhbWVyYSwgYCR7dGhpcy5qb2luVHlwZX1fbG9jYWxgKTtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0YXJ0TG9jYWxBdWRpbyhUUlRDQXVkaW9RdWFsaXR5LlRSVENBdWRpb1F1YWxpdHlEZWZhdWx0KTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRzdGFydExvY2FsUHJldmlld1VwbG9hZCh0aGlzLnNka0FwcElkKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzdG9wTG9jYWxQcmV2aWV3KCkge1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5zdG9wTG9jYWxBdWRpbygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzdGFydFJlbW90ZVZpZXcodXNlcklkKSB7XHJcblx0XHRcdFx0bGV0IGpvaW5UeXBlID0gdXNlcklkLnNwbGl0KCdfJylbMF07XHJcblx0XHRcdFx0bGV0IHBsYXlUeXBlID0gdXNlcklkID09IHRoaXMudXNlcklkID8gJ2xvY2FsJyA6ICdyZW1vdGUnO1xyXG5cclxuXHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ2N1c3RvbWVyJykge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9IHVzZXJJZDtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZWxsZXInKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID0gdXNlcklkO1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlcnZpY2UnKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgPSB1c2VySWQ7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy4kZm9yY2VVcGRhdGUoKTtcclxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RhcnRSZW1vdGVWaWV3KHVzZXJJZCwgdGhpcy5zdHJlYW1UeXBlLCBgJHtqb2luVHlwZX1fJHtwbGF5VHlwZX1gKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zZGtBcHBJZCAmJiB1bmkuJHN0YXJ0UmVtb3RlVmlld1N1Y2Nlc3NVcGxvYWQodGhpcy5zZGtBcHBJZCk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9LCAxMDAwKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzdG9wUmVtb3RlVmlldyh1c2VySWQpIHtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5zdG9wUmVtb3RlVmlldyh1c2VySWQsIHRoaXMuc3RyZWFtVHlwZSk7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5ZCs562S44CB5YWN5o+QIOWIh+aNolxyXG5cdFx0XHRzd2l0Y2hBdWRpb1JvdXRlKCkge1xyXG5cdFx0XHRcdHRoaXMuYXVkaW9Sb3V0ZSA9IHRoaXMuYXVkaW9Sb3V0ZSA9PT0gVFJUQ0Nsb3VkRGVmLlRSVENfQVVESU9fUk9VVEVfU1BFQUtFUiA/IFRSVENDbG91ZERlZlxyXG5cdFx0XHRcdFx0LlRSVENfQVVESU9fUk9VVEVfRUFSUElFQ0UgOiBUUlRDQ2xvdWREZWYuVFJUQ19BVURJT19ST1VURV9TUEVBS0VSO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnNldEF1ZGlvUm91dGUodGhpcy5hdWRpb1JvdXRlKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlRXZlbnRzKCkge1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbldhcm5pbmcnLCAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHQvLyB1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdC8vIFx0dGl0bGU6IGDmnKzlnLDmkYTlg4/lpLTplJnor69gLFxyXG5cdFx0XHRcdFx0Ly8gXHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHQvLyB9KTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25FcnJvcicsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdvbkVycm9yJywgcmVzKVxyXG5cdFx0XHRcdFx0dGhpcy5zZGtBcHBJZCAmJiB1bmkuJG9uRXJyb3JVcGxvYWQodGhpcy5zZGtBcHBJZCwgSlNPTi5zdHJpbmdpZnkocmVzKSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uRW50ZXJSb29tJywgKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coYC0gb25FbnRlclJvb20gPSAke3Jlc3VsdH1gKTtcclxuXHRcdFx0XHRcdGlmIChyZXN1bHQgPiAwKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuYWRkTWVzc2FnZSgnJywgYOi/m+aIv+aIkOWKn++8jOiAl+aXtjogJHtyZXN1bHR9bXNgKVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYGVudGVyIHJvb20gZmFpbGVk77yMZXJyb3IgY29kZSA9ICR7cmVzdWx0fWApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbkV4aXRSb29tJywgKHJlYXNvbikgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgcmVhc29uTGlzdCA9IFsn5Li75Yqo6LCD55SoIGV4aXRSb29tIOmAgOaIvycsICfooqvmnI3liqHlmajouKLlh7rlvZPliY3miL/pl7QnLCAn5b2T5YmN5oi/6Ze05pW05Liq6KKr6Kej5pWjJ107XHJcblx0XHRcdFx0XHR0aGlzLmFkZE1lc3NhZ2UoJycsIGDpgIDmiL8gJHtyZWFzb25MaXN0W3JlYXNvbl19YClcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbkZpcnN0VmlkZW9GcmFtZScsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGDmuLLmn5PnmoTpppbluKfnlLvpnaLlk43lupQgPSAke0pTT04uc3RyaW5naWZ5KHJlcyl9YCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uUmVtb3RlVXNlckVudGVyUm9vbScsICh1c2VySWQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdvblJlbW90ZVVzZXJFbnRlclJvb20nLCB1c2VySWQpO1xyXG5cdFx0XHRcdFx0bGV0IGpvaW5UeXBlID0gdXNlcklkLnNwbGl0KCdfJylbMF07XHJcblx0XHRcdFx0XHRsZXQgdXNlcmlkID0gdXNlcklkLnNwbGl0KCdfJylbMV07XHJcblx0XHRcdFx0XHRsZXQgdXNlclR5cGUgPSB7XHJcblx0XHRcdFx0XHRcdGN1c3RvbWVyOiAn6ZyA5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VsbGVyOiAn5L6b5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VydmljZTogJ+WuouacjSdcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR0aGlzLmFkZE1lc3NhZ2UoJycsIGAke3VzZXJUeXBlW2pvaW5UeXBlXSB8fCAn5pyq55+l55So5oi3J33liqDlhaXop4bpopHogYrlpKlgKTtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0VXNlckluZm8odXNlcmlkLGpvaW5UeXBlKTtcclxuXHJcblx0XHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ2N1c3RvbWVyJykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkID0gdXNlcklkO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZWxsZXInKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPSB1c2VySWQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlcnZpY2UnKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9IHVzZXJJZDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblxyXG5cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25SZW1vdGVVc2VyTGVhdmVSb29tJywgKHVzZXJJZCkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGpvaW5UeXBlID0gdXNlcklkLnNwbGl0KCdfJylbMF07XHJcblx0XHRcdFx0XHRsZXQgdXNlclR5cGUgPSB7XHJcblx0XHRcdFx0XHRcdGN1c3RvbWVyOiAn6ZyA5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VsbGVyOiAn5L6b5pa5JyxcclxuXHRcdFx0XHRcdFx0c2VydmljZTogJ+WuouacjSdcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR0aGlzLmFkZE1lc3NhZ2UoJycsIGAke3VzZXJUeXBlW2pvaW5UeXBlXSB8fCAn5pyq55+l55So5oi3J33pgIDlh7rop4bpopHogYrlpKlgKVxyXG5cdFx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZXJ2aWNlJykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdG9wUmVtb3RlVmlldyh0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdG9wUmVtb3RlVmlldyh0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHVzZXJJZCA9PSB0aGlzLnVzZXJJZCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcodXNlcklkKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25Vc2VyVmlkZW9BdmFpbGFibGUnLCAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHRcdHVzZXJJZCxcclxuXHRcdFx0XHRcdFx0YXZhaWxhYmxlXHJcblx0XHRcdFx0XHR9ID0gcmVzO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ29uVXNlclZpZGVvQXZhaWxhYmxlJywgcmVzKTtcclxuXHRcdFx0XHRcdGxldCBqb2luVHlwZSA9IHVzZXJJZC5zcGxpdCgnXycpWzBdO1xyXG5cdFx0XHRcdFx0bGV0IHVzZXJUeXBlID0ge1xyXG5cdFx0XHRcdFx0XHRjdXN0b21lcjogJ+mcgOaWuScsXHJcblx0XHRcdFx0XHRcdHNlbGxlcjogJ+S+m+aWuScsXHJcblx0XHRcdFx0XHRcdHNlcnZpY2U6ICflrqLmnI0nXHJcblx0XHRcdFx0XHR9O1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdFx0aWYgKGF2YWlsYWJsZSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGFydFJlbW90ZVZpZXcodXNlcklkKTtcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhcnRMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGFydFJlbW90ZVZpZXcodXNlcklkKTtcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFkZE1lc3NhZ2UoJycsIGAke3VzZXJUeXBlW2pvaW5UeXBlXSB8fCAn5pyq55+l55So5oi3J33pgIDlh7rop4bpopHogYrlpKlgKVxyXG5cdFx0XHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlcnZpY2UnKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcodGhpcy5tZWV0aW5nU2VydmljZVVzZXIudXNlcklkKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh1c2VySWQgPT0gdGhpcy51c2VySWQpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KHVzZXJJZCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25FeGl0Um9vbScsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGBvbkV4aXRSb29tID0gJHtKU09OLnN0cmluZ2lmeShyZXMpfWApO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBzcmM9XCJAL3BhZ2VzL21lZXRpbmcvbWVldGluZy5jc3NcIj48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///112\n"); | |
| 2517 | 2527 | |
| 2518 | 2528 | /***/ }), |
| 2519 | 2529 | /* 113 */ |
| ... | ... | @@ -2602,10 +2612,15 @@ module.exports = { |
| 2602 | 2612 | "flex": 1 |
| 2603 | 2613 | }, |
| 2604 | 2614 | "bottom-input": { |
| 2605 | - "marginTop": "20rpx" | |
| 2615 | + "width": "650rpx", | |
| 2616 | + "marginTop": "20rpx", | |
| 2617 | + "display": "flex", | |
| 2618 | + "alignItems": "center", | |
| 2619 | + "justifyContent": "space-between", | |
| 2620 | + "flexDirection": "row" | |
| 2606 | 2621 | }, |
| 2607 | 2622 | "input": { |
| 2608 | - "width": "650rpx", | |
| 2623 | + "width": "500rpx", | |
| 2609 | 2624 | "height": "80rpx", |
| 2610 | 2625 | "backgroundColor": "#111118", |
| 2611 | 2626 | "borderRadius": "20", |
| ... | ... | @@ -2615,7 +2630,16 @@ module.exports = { |
| 2615 | 2630 | "paddingBottom": "10", |
| 2616 | 2631 | "paddingLeft": "10", |
| 2617 | 2632 | "fontSize": "12", |
| 2618 | - "color": "#ffffff" | |
| 2633 | + "color": "#ffffff", | |
| 2634 | + "flex": 1 | |
| 2635 | + }, | |
| 2636 | + "submit-btn": { | |
| 2637 | + "width": "110rpx", | |
| 2638 | + "marginLeft": "10rpx", | |
| 2639 | + "paddingTop": 0, | |
| 2640 | + "paddingRight": 0, | |
| 2641 | + "paddingBottom": 0, | |
| 2642 | + "paddingLeft": 0 | |
| 2619 | 2643 | }, |
| 2620 | 2644 | "name": { |
| 2621 | 2645 | "width": "100", | ... | ... |