diff --git a/uniapp-wuduhuajiao/pages/meeting/meeting.css b/uniapp-wuduhuajiao/pages/meeting/meeting.css
index b0b4ad2..4ead085 100644
--- a/uniapp-wuduhuajiao/pages/meeting/meeting.css
+++ b/uniapp-wuduhuajiao/pages/meeting/meeting.css
@@ -1,6 +1,10 @@
+.hide{
+ position: fixed;
+ top: -1000px;
+ left: -1000px;
+}
.back {
padding-top: 60px;
- /* margin: 0 auto; */
position: fixed;
top: 0;
bottom: 0;
diff --git a/uniapp-wuduhuajiao/pages/meeting/meeting.nvue b/uniapp-wuduhuajiao/pages/meeting/meeting.nvue
index 5f0252c..1dd0d34 100644
--- a/uniapp-wuduhuajiao/pages/meeting/meeting.nvue
+++ b/uniapp-wuduhuajiao/pages/meeting/meeting.nvue
@@ -7,17 +7,18 @@
{{ '等待客服进入' }}
客服
{{ meetingServiceUser.userInfo && meetingServiceUser.userInfo.name || '' }}
-
-
+
+
-
+
-
@@ -30,17 +31,18 @@
{{ meetingBusinessUser.userInfo && meetingBusinessUser.userInfo.name || '' }}
+ :class="{'hide':!(meetingBusinessUser && meetingBusinessUser.userId && meetingBusinessUser.userId == userId && meetingBusinessUser.meeting)}">
+ :class="{'hide':!(meetingBusinessUser && meetingBusinessUser.userId && meetingBusinessUser.userId != userId && !meetingBusinessUser.meeting)}">
-
@@ -54,17 +56,18 @@
{{ meetingCustomerUser.userInfo && meetingCustomerUser.userInfo.name || '' }}
+ :class="{'hide':!(meetingCustomerUser && meetingCustomerUser.userId && meetingCustomerUser.userId == userId && meetingCustomerUser.meeting)}">
+ :class="{'hide':!(meetingCustomerUser && meetingCustomerUser.userId && meetingCustomerUser.userId != userId && meetingCustomerUser.meeting)}">
-
diff --git a/uniapp-wuduhuajiao/uniapp-wuduhuajiao.rar b/uniapp-wuduhuajiao/uniapp-wuduhuajiao.rar
index ef5edd0..b750654 100644
--- a/uniapp-wuduhuajiao/uniapp-wuduhuajiao.rar
+++ b/uniapp-wuduhuajiao/uniapp-wuduhuajiao.rar
diff --git a/uniapp-wuduhuajiao/unpackage/dist/dev/app-plus/pages/meeting/meeting.js b/uniapp-wuduhuajiao/unpackage/dist/dev/app-plus/pages/meeting/meeting.js
index cd42327..3590959 100644
--- a/uniapp-wuduhuajiao/unpackage/dist/dev/app-plus/pages/meeting/meeting.js
+++ b/uniapp-wuduhuajiao/unpackage/dist/dev/app-plus/pages/meeting/meeting.js
@@ -1957,48 +1957,54 @@ var render = function() {
flexDirection: "row",
justifyContent: "center",
margin: "0 auto"
- },
- attrs: { id: "root" }
+ }
},
[
- _vm.meetingServiceUser.userId &&
- _vm.userId == _vm.meetingServiceUser.userId &&
- _vm.meetingServiceUser.meeting
- ? _c(
- "view",
- [
- _c("trtc-local-view", {
- staticStyle: {
- height: "380rpx",
- width: "360rpx"
- },
- attrs: { viewId: _vm.meetingServiceUser.userId }
- })
- ],
- 1
- )
- : _vm._e(),
- _vm.meetingServiceUser.userId &&
- _vm.userId != _vm.meetingServiceUser.userId &&
- _vm.meetingServiceUser.meeting
- ? _c(
- "view",
- [
- _c("trtc-remote-view", {
- staticStyle: {
- height: "360rpx",
- width: "300rpx",
- border: "1px solid #fff"
- },
- attrs: {
- userId: _vm.meetingServiceUser.userId,
- viewId: _vm.meetingServiceUser.userId
- }
- })
- ],
- 1
- )
- : _vm._e(),
+ _c(
+ "view",
+ {
+ class: {
+ hide: !(
+ _vm.meetingServiceUser.userId &&
+ _vm.userId == _vm.meetingServiceUser.userId &&
+ _vm.meetingServiceUser.meeting
+ )
+ }
+ },
+ [
+ _c("trtc-local-view", {
+ staticStyle: { height: "380rpx", width: "360rpx" },
+ attrs: { viewId: _vm.meetingServiceUser.userId }
+ })
+ ],
+ 1
+ ),
+ _c(
+ "view",
+ {
+ class: {
+ hide: !(
+ _vm.meetingServiceUser.userId &&
+ _vm.userId != _vm.meetingServiceUser.userId &&
+ _vm.meetingServiceUser.meeting
+ )
+ }
+ },
+ [
+ _c("trtc-remote-view", {
+ staticStyle: {
+ height: "360rpx",
+ width: "300rpx",
+ border: "1px solid #fff"
+ },
+ attrs: {
+ userId: _vm.meetingServiceUser.userId,
+ viewId: _vm.meetingServiceUser.userId
+ }
+ })
+ ],
+ 1
+ ),
!_vm.meetingServiceUser.meeting
? _c("u-image", {
directives: [
@@ -2074,48 +2080,60 @@ var render = function() {
"view",
{ staticStyle: { width: "100%", height: "360rpx" } },
[
- _vm.meetingBusinessUser &&
- _vm.meetingBusinessUser.userId &&
- _vm.meetingBusinessUser.userId == _vm.userId &&
- _vm.meetingBusinessUser.meeting
- ? _c(
- "view",
- [
- _c("trtc-local-view", {
- staticStyle: {
- height: "380rpx",
- width: "360rpx"
- },
- attrs: {
- viewId: _vm.meetingBusinessUser.userId
- }
- })
- ],
- 1
- )
- : _vm._e(),
- _vm.meetingBusinessUser &&
- _vm.meetingBusinessUser.userId &&
- _vm.meetingBusinessUser.userId != _vm.userId &&
- !_vm.meetingBusinessUser.meeting
- ? _c(
- "view",
- [
- _c("trtc-remote-view", {
- staticStyle: {
- height: "360rpx",
- width: "300rpx",
- border: "1px solid #fff"
- },
- attrs: {
- userId: _vm.meetingBusinessUser.userId,
- viewId: _vm.meetingBusinessUser.userId
- }
- })
- ],
- 1
- )
- : _vm._e(),
+ _c(
+ "view",
+ {
+ class: {
+ hide: !(
+ _vm.meetingBusinessUser &&
+ _vm.meetingBusinessUser.userId &&
+ _vm.meetingBusinessUser.userId ==
+ _vm.userId &&
+ _vm.meetingBusinessUser.meeting
+ )
+ }
+ },
+ [
+ _c("trtc-local-view", {
+ staticStyle: {
+ height: "380rpx",
+ width: "360rpx"
+ },
+ attrs: {
+ viewId: _vm.meetingBusinessUser.userId
+ }
+ })
+ ],
+ 1
+ ),
+ _c(
+ "view",
+ {
+ class: {
+ hide: !(
+ _vm.meetingBusinessUser &&
+ _vm.meetingBusinessUser.userId &&
+ _vm.meetingBusinessUser.userId !=
+ _vm.userId &&
+ !_vm.meetingBusinessUser.meeting
+ )
+ }
+ },
+ [
+ _c("trtc-remote-view", {
+ staticStyle: {
+ height: "360rpx",
+ width: "300rpx",
+ border: "1px solid #fff"
+ },
+ attrs: {
+ userId: _vm.meetingBusinessUser.userId,
+ viewId: _vm.meetingBusinessUser.userId
+ }
+ })
+ ],
+ 1
+ ),
!_vm.meetingBusinessUser ||
!_vm.meetingBusinessUser.userId ||
!_vm.meetingBusinessUser.meeting
@@ -2175,48 +2193,60 @@ var render = function() {
"view",
{ staticStyle: { width: "100%", height: "360rpx" } },
[
- _vm.meetingCustomerUser &&
- _vm.meetingCustomerUser.userId &&
- _vm.meetingCustomerUser.userId == _vm.userId &&
- _vm.meetingCustomerUser.meeting
- ? _c(
- "view",
- [
- _c("trtc-local-view", {
- staticStyle: {
- height: "380rpx",
- width: "360rpx"
- },
- attrs: {
- viewId: _vm.meetingCustomerUser.userId
- }
- })
- ],
- 1
- )
- : _vm._e(),
- _vm.meetingCustomerUser &&
- _vm.meetingCustomerUser.userId &&
- _vm.meetingCustomerUser.userId != _vm.userId &&
- _vm.meetingCustomerUser.meeting
- ? _c(
- "view",
- [
- _c("trtc-remote-view", {
- staticStyle: {
- height: "360rpx",
- width: "300rpx",
- border: "1px solid #fff"
- },
- attrs: {
- userId: _vm.meetingCustomerUser.userId,
- viewId: _vm.meetingCustomerUser.userId
- }
- })
- ],
- 1
- )
- : _vm._e(),
+ _c(
+ "view",
+ {
+ class: {
+ hide: !(
+ _vm.meetingCustomerUser &&
+ _vm.meetingCustomerUser.userId &&
+ _vm.meetingCustomerUser.userId ==
+ _vm.userId &&
+ _vm.meetingCustomerUser.meeting
+ )
+ }
+ },
+ [
+ _c("trtc-local-view", {
+ staticStyle: {
+ height: "380rpx",
+ width: "360rpx"
+ },
+ attrs: {
+ viewId: _vm.meetingCustomerUser.userId
+ }
+ })
+ ],
+ 1
+ ),
+ _c(
+ "view",
+ {
+ class: {
+ hide: !(
+ _vm.meetingCustomerUser &&
+ _vm.meetingCustomerUser.userId &&
+ _vm.meetingCustomerUser.userId !=
+ _vm.userId &&
+ _vm.meetingCustomerUser.meeting
+ )
+ }
+ },
+ [
+ _c("trtc-remote-view", {
+ staticStyle: {
+ height: "360rpx",
+ width: "300rpx",
+ border: "1px solid #fff"
+ },
+ attrs: {
+ userId: _vm.meetingCustomerUser.userId,
+ viewId: _vm.meetingCustomerUser.userId
+ }
+ })
+ ],
+ 1
+ ),
!_vm.meetingCustomerUser ||
!_vm.meetingCustomerUser.userId ||
!_vm.meetingCustomerUser.meeting
@@ -2418,7 +2448,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _D_P
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-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 */ 13));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/lib/index */ 14));\nvar _TrtcDefines = __webpack_require__(/*! @/TrtcCloud/lib/TrtcDefines */ 16);\n\n\n\n\n\nvar _GenerateTestUserSig = __webpack_require__(/*! @/debug/GenerateTestUserSig */ 17);\n\n\nvar _TrtcLocalView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcLocalView */ 19));\nvar _TrtcRemoteView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcRemoteView */ 25));\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/apis/index.js */ 30));\nvar _config = _interopRequireDefault(__webpack_require__(/*! @/common/config/config.js */ 38));\nvar _service = _interopRequireDefault(__webpack_require__(/*! @/service/service.js */ 33));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 data: function data() {\n return {\n hasInvite: false,\n //我\n meetingUserMy: {\n userId: 0 },\n\n\n //需方\n meetingCustomerUser: {\n userId: 0 },\n\n\n //供方\n meetingBusinessUser: {\n userId: 0 },\n\n\n //客服\n meetingServiceUser: {\n userId: 0 },\n\n\n num: 10,\n trtcCloud: null,\n sdkAppId: 0,\n userSig: '',\n roomId: 0,\n userId: '',\n starting: false,\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\n param: {},\n joinType: 'customer' };\n\n },\n computed: _objectSpread({},\n (0, _vuex.mapState)(['user', 'statistics', 'common'])),\n\n onLoad: function onLoad(e) {var _this = this;\n __f__(\"log\", 'onload e', e, \" at pages/meeting/meeting.nvue:189\");\n __f__(\"log\", 'user', this.user, \" at pages/meeting/meeting.nvue:190\");\n this.param = e;\n\n //加入类型,是以什么身份加入的\n var joinType = e.joinType || 'customer';\n __f__(\"log\", 'onLoad joinType', joinType, \" at pages/meeting/meeting.nvue:195\");\n this.joinType = joinType;\n\n this.roomId = e.roomId;\n this.sellerUserId = e.userid;\n this.userId = 'user_' + this.user.id;\n this.meetingUserMy = {\n userId: this.userId,\n id: this.user.id };\n\n this.shopId = e.shop_id;\n\n if (joinType == 'customer') {\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.meetingCustomerUser = _objectSpread({},\n this.meetingUserMy);\n\n } else {\n this.room = {\n id: e.roomId,\n RoomNo: e.roomId };\n\n\n this.meetingCustomerUser = {\n userId: 'user_' + e.customerid.toString(),\n id: e.customerid };\n\n }\n\n if (joinType == 'seller') {\n //供方\n this.meetingBusinessUser = {\n userId: this.meetingUserMy.userId,\n id: this.meetingUserMy.id };\n\n\n }\n if (joinType == 'service') {\n //平台客服\n this.meetingServiceUser = {\n userId: this.meetingUserMy.userId,\n id: this.meetingUserMy.id };\n\n }\n\n __f__(\"log\", 'onLoad meetingBusinessUser', this.meetingBusinessUser, \" at pages/meeting/meeting.nvue:249\");\n __f__(\"log\", 'onLoad meetingServiceUser', this.meetingServiceUser, \" at pages/meeting/meeting.nvue:250\");\n\n // this.getUserInfo(this.user.id,joinType);\n this.joinRoom();\n\n this.$forceUpdate();\n\n //文字聊天\n uni.$on('socketMessage', function (data) {\n if (data.messageType == 'send_to_room') {\n _this.messageList.push({\n author: data.realName,\n content: data.toMessage });\n\n }\n if (data.messageType == 'join') {\n var userid = data.userIntId;\n if (userid != _this.user.id) {\n //有用户加入房间\n var _joinType = data.messageContent;\n if (_joinType == 'seller') {\n _this.meetingBusinessUser.userId = 'user_' + userid;\n _this.meetingBusinessUser.id = userid;\n }\n if (_joinType == 'service') {\n _this.meetingServiceUser.userId = 'user_' + userid;\n _this.meetingServiceUser.id = userid;\n }\n }\n }\n });\n },\n onShow: function onShow() {},\n onHide: function onHide() {},\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:293\");\n },\n onBackPress: function onBackPress() {\n this.destroyInstance();\n },\n methods: {\n getUserInfo: function getUserInfo(userid, type) {var _this2 = this;\n __f__(\"log\", 'getUserInfo', userid, type, \" at pages/meeting/meeting.nvue:300\");\n _index2.default.message.getUserTypeInfo(userid).then(function (res) {\n __f__(\"log\", 'getUserTypeInfo', res, \" at pages/meeting/meeting.nvue:302\");\n if (type == 'customer') {\n __f__(\"log\", 'getUserTypeInfo type=customer', \" at pages/meeting/meeting.nvue:304\");\n _this2.meetingCustomerUser.userInfo = res.data[0];\n }\n if (type == 'seller') {\n __f__(\"log\", 'getUserTypeInfo type=seller', \" at pages/meeting/meeting.nvue:308\");\n _this2.meetingBusinessUser.userInfo = res.data[0];\n that.messageList.push({\n author: '系统',\n content: '供方加入房间' });\n\n }\n if (type == 'service') {\n __f__(\"log\", 'getUserTypeInfo type=service', \" at pages/meeting/meeting.nvue:316\");\n // this.meetingServiceUser.userInfo = res.data[0];\n that.messageList.push({\n author: '系统',\n content: '客服加入房间' });\n\n }\n __f__(\"log\", 'getUserTypeInfo meetingServiceUser', _this2.meetingServiceUser, \" at pages/meeting/meeting.nvue:323\");\n });\n },\n joinRoom: function joinRoom() {\n socketTask.send({\n data: JSON.stringify({\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 success: function success(res) {},\n fail: function fail(e) {},\n complete: function complete() {} });\n\n },\n initUserSign: function initUserSign() {var _this3 = this;\n if (this.userId) {\n __f__(\"log\", 'initUserSign', this.userId, \" at pages/meeting/meeting.nvue:343\");\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:351\");\n if (!sdkAppId || !userSig) {\n uni.showToast({\n title: '请填写 sdkAppId、userSig',\n icon: 'none' });\n\n }\n } else {\n setTimeout(function () {\n _this3.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, this.room.RoomNo, this.sellerUserId).then(function (res) {});\n },\n //邀请平台客服\n handleInviteServiceUser: function handleInviteServiceUser() {var _this4 = this;\n uni.showLoading();\n _index2.default.message.getInviteServiceUserJoin(this.room.RoomNo, 'joinMultiplayerVideo').then(function (res) {\n uni.showToast({\n title: '邀请成功' });\n\n _this4.hasInvite = true;\n }).finally(function () {\n uni.hideLoading();\n });\n },\n createRoom: function createRoom(data) {var _this5 = this;\n uni.showLoading({\n title: '正在创建房间' });\n\n _index2.default.message.postAddRoom(data).then(function (res) {\n _this5.room = res.data;\n _this5.roomId = res.data.RoomNo;\n _this5.handleInviteBusinessUser();\n _this5.joinRoom();\n }).finally(function () {\n uni.hideLoading();\n });\n },\n\n sendMessage: function sendMessage() {\n var that = this;\n that.messageList.push({\n author: '我',\n content: that.messageContent });\n\n that.messageContent = '';\n socketTask.send({\n data: JSON.stringify({\n formUserId: this.userId,\n contentType: \"\",\n content: 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\n success: function success(res) {},\n fail: function fail(e) {},\n complete: function complete() {} });\n\n },\n handleStartMeeting: function handleStartMeeting() {var _this6 = this;\n this.starting = true;\n this.$nextTick(function () {\n _this6.createTrtcCloud();\n _this6.enterRoom();\n _this6.startLocalPreview();\n });\n },\n handleEndtMeeting: function handleEndtMeeting() {\n this.meeting = false;\n this.stopLocalPreview();\n this.exitRoom();\n this.destroyInstance();\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 __f__(\"log\", 'createTrtcCloud', this.sdkAppId, \" at pages/meeting/meeting.nvue:455\");\n this.trtcCloud = _index.default.createInstance();\n __f__(\"log\", 'this.trtcCloud', this.trtcCloud, \" at pages/meeting/meeting.nvue:457\");\n this.handleEvents();\n this.sdkAppId && uni.$createTrtcCloudUpload(this.sdkAppId);\n },\n enterRoom: function enterRoom() {\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:475\");\n this.trtcCloud.enterRoom(param, appScene);\n this.sdkAppId && uni.$enterRoomSuccessUpload(this.sdkAppId);\n\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\n } catch (error) {\n this.messageList.unshift({\n content: \"enterRoom error = \".concat(JSON.stringify(error)) });\n\n this.sdkAppId && uni.$enterRoomFailedUpload(this.sdkAppId, JSON.stringify(error));\n }\n },\n exitRoom: function exitRoom() {\n try {\n this.starting = 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 _this7 = this;\n this.$nextTick(function () {\n __f__(\"log\", 'startLocalPreview', _this7.userId, \" at pages/meeting/meeting.nvue:509\");\n _this7.meeting = true;\n _this7.trtcCloud.startLocalPreview(_this7.isFrontCamera, _this7.userId);\n _this7.trtcCloud.startLocalAudio(_TrtcDefines.TRTCAudioQuality.TRTCAudioQualityDefault);\n _this7.sdkAppId && uni.$startLocalPreviewUpload(_this7.sdkAppId);\n });\n },\n stopLocalPreview: function stopLocalPreview() {\n this.trtcCloud.stopLocalPreview();\n },\n startRemoteView: function startRemoteView(userId) {var _this8 = this;\n this.$nextTick(function () {\n _this8.trtcCloud.startRemoteView(userId, _this8.streamType, userId);\n _this8.sdkAppId && uni.$startRemoteViewSuccessUpload(_this8.sdkAppId);\n });\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 },\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 _this9 = this;\n this.trtcCloud.on('onWarning', function (res) {\n uni.showToast({\n title: \"onWarning: \".concat(JSON.stringify(res)),\n icon: 'none' });\n\n });\n this.trtcCloud.on('onError', function (res) {\n __f__(\"log\", 'onError', res, \" at pages/meeting/meeting.nvue:561\");\n _this9.messageList.unshift({\n content: \"error: \".concat(JSON.stringify(res)) });\n\n _this9.sdkAppId && uni.$onErrorUpload(_this9.sdkAppId, JSON.stringify(res));\n });\n this.trtcCloud.on('onEnterRoom', function (result) {\n __f__(\"log\", \"- onEnterRoom = \".concat(result), \" at pages/meeting/meeting.nvue:568\");\n if (result > 0) {\n _this9.messageList.unshift({\n content: \"\\u8FDB\\u623F\\u6210\\u529F\\uFF0C\\u8017\\u65F6: \".concat(result, \"ms\") });\n\n } else {\n __f__(\"log\", \"enter room failed\\uFF0Cerror code = \".concat(result), \" at pages/meeting/meeting.nvue:574\");\n }\n });\n this.trtcCloud.on('onExitRoom', function (reason) {\n var reasonList = ['主动调用 exitRoom 退房', '被服务器踢出当前房间', '当前房间整个被解散'];\n _this9.messageList.unshift({\n content: \"\\u9000\\u623F \".concat(reasonList[reason]) });\n\n _this9.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:585\");\n });\n this.trtcCloud.on('onRemoteUserEnterRoom', function (userId) {\n __f__(\"log\", 'onRemoteUserEnterRoom', userId, \" at pages/meeting/meeting.nvue:588\");\n _this9.startRemoteView(userId);\n });\n this.trtcCloud.on('onRemoteUserLeaveRoom', function (userId) {\n var index = _this9.meetingUsers.findIndex(function (t) {return t.userId == userId;});\n if (index >= 0) {\n _this9.meetingUsers.splice(index, 1);\n }\n if (_this9.meetingUsers.length < 2) {\n _this9.meetingUsers.push({\n type: '等待进入' });\n\n }\n _this9.messageList.unshift({\n content: \"\\u7528\\u6237\\u79BB\\u5F00\\u623F\\u95F4: userId = \".concat(userId) });\n\n\n\n });\n this.trtcCloud.on('onUserVideoAvailable', function (res) {var\n\n userId =\n\n res.userId,available = res.available;\n if (available) {\n _this9.startLocalPreview();\n }\n if (userId && available) {\n _this9.startRemoteView(userId);\n } else {\n _this9.stopRemoteView(userId);\n }\n });\n this.trtcCloud.on('onExitRoom', function (res) {\n __f__(\"log\", \"onExitRoom = \".concat(JSON.stringify(res)), \" at pages/meeting/meeting.nvue:622\");\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 */ 10)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 11)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVldGluZy9tZWV0aW5nLm52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4R0E7OztBQUdBO0FBQ0E7QUFDQTs7Ozs7O0FBTUE7OztBQUdBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSwyRix3bkNBSkE7QUFLQSxnRDtBQUNBO0FBQ0E7QUFDQSx5Q0FEQTtBQUVBLDJDQUZBLEVBREE7O0FBS0EsTUFMQSxrQkFLQTtBQUNBO0FBQ0Esc0JBREE7QUFFQTtBQUNBO0FBQ0EsaUJBREEsRUFIQTs7O0FBT0E7QUFDQTtBQUNBLGlCQURBLEVBUkE7OztBQVlBO0FBQ0E7QUFDQSxpQkFEQSxFQWJBOzs7QUFpQkE7QUFDQTtBQUNBLGlCQURBLEVBbEJBOzs7QUFzQkEsYUF0QkE7QUF1QkEscUJBdkJBO0FBd0JBLGlCQXhCQTtBQXlCQSxpQkF6QkE7QUEwQkEsZUExQkE7QUEyQkEsZ0JBM0JBO0FBNEJBLHFCQTVCQTtBQTZCQSxzQkE3QkE7QUE4QkEsK0RBOUJBLEVBOEJBO0FBQ0EseUJBL0JBO0FBZ0NBLHlFQWhDQTtBQWlDQSxzQkFqQ0E7QUFrQ0Esb0VBbENBO0FBbUNBLHFCQW5DQTtBQW9DQSx3QkFwQ0E7QUFxQ0Esb0JBckNBO0FBc0NBLGNBdENBO0FBdUNBLGVBdkNBO0FBd0NBLHFCQXhDQTs7QUEwQ0EsZUExQ0E7QUEyQ0EsMEJBM0NBOztBQTZDQSxHQW5EQTtBQW9EQTtBQUNBLHVEQURBLENBcERBOztBQXVEQSxRQXZEQSxrQkF1REEsQ0F2REEsRUF1REE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLHNCQUZBOztBQUlBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQURBO0FBRUEsc0JBRkE7QUFHQSxvQkFIQTtBQUlBLHlCQUpBO0FBS0Esc0JBTEE7QUFNQTtBQUNBLDJCQVBBOztBQVNBO0FBQ0Esd0JBREE7O0FBR0EsS0FkQSxNQWNBO0FBQ0E7QUFDQSxvQkFEQTtBQUVBLHdCQUZBOzs7QUFLQTtBQUNBLGlEQURBO0FBRUEsd0JBRkE7O0FBSUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EseUNBREE7QUFFQSxpQ0FGQTs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FEQTtBQUVBLGlDQUZBOztBQUlBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQURBO0FBRUEsaUNBRkE7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXRCQTtBQXVCQSxHQXBKQTtBQXFKQSxRQXJKQSxvQkFxSkEsRUFySkE7QUFzSkEsUUF0SkEsb0JBc0pBLEVBdEpBO0FBdUpBLFNBdkpBLHFCQXVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQTdKQTtBQThKQSxVQTlKQSxzQkE4SkE7QUFDQTtBQUNBO0FBQ0EsR0FqS0E7QUFrS0EsYUFsS0EseUJBa0tBO0FBQ0E7QUFDQSxHQXBLQTtBQXFLQTtBQUNBLGVBREEsdUJBQ0EsTUFEQSxFQUNBLElBREEsRUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTtBQUVBLDZCQUZBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTtBQUVBLDZCQUZBOztBQUlBO0FBQ0E7QUFDQSxPQXZCQTtBQXdCQSxLQTNCQTtBQTRCQSxZQTVCQSxzQkE0QkE7QUFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQSxzQkFGQTtBQUdBLDZCQUhBO0FBSUEsc0NBSkE7QUFLQSx1Q0FMQTtBQU1BLGtEQU5BLEdBREE7O0FBU0EsZUFUQSxtQkFTQSxHQVRBLEVBU0EsRUFUQTtBQVVBLFlBVkEsZ0JBVUEsQ0FWQSxFQVVBLEVBVkE7QUFXQSxnQkFYQSxzQkFXQSxFQVhBOztBQWFBLEtBMUNBO0FBMkNBLGdCQTNDQSwwQkEyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTs7O0FBTUEsNkRBTkEsQ0FJQSxRQUpBLG1CQUlBLFFBSkEsQ0FLQSxPQUxBLG1CQUtBLE9BTEE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBREE7QUFFQSx3QkFGQTs7QUFJQTtBQUNBLE9BaEJBLE1BZ0JBO0FBQ0E7QUFDQTtBQUNBLFNBRkEsRUFFQSxHQUZBO0FBR0E7QUFDQSxLQWpFQTtBQWtFQSx1QkFsRUEsaUNBa0VBO0FBQ0E7QUFDQSxLQXBFQTtBQXFFQTtBQUNBLDRCQXRFQSxzQ0FzRUE7QUFDQTtBQUNBLEtBeEVBO0FBeUVBO0FBQ0EsMkJBMUVBLHFDQTBFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQURBOztBQUdBO0FBQ0EsT0FMQSxFQUtBLE9BTEEsQ0FLQTtBQUNBO0FBQ0EsT0FQQTtBQVFBLEtBcEZBO0FBcUZBLGNBckZBLHNCQXFGQSxJQXJGQSxFQXFGQTtBQUNBO0FBQ0EsdUJBREE7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEEsRUFLQSxPQUxBLENBS0E7QUFDQTtBQUNBLE9BUEE7QUFRQSxLQWpHQTs7QUFtR0EsZUFuR0EseUJBbUdBO0FBQ0E7QUFDQTtBQUNBLG1CQURBO0FBRUEsb0NBRkE7O0FBSUE7QUFDQTtBQUNBO0FBQ0EsaUNBREE7QUFFQSx5QkFGQTtBQUdBLHNDQUhBO0FBSUEsOEJBSkE7QUFLQSxnQ0FMQTtBQU1BLGtDQU5BO0FBT0Esa0NBUEE7QUFRQSxzQkFSQSxHQURBOztBQVdBLGVBWEEsbUJBV0EsR0FYQSxFQVdBLEVBWEE7QUFZQSxZQVpBLGdCQVlBLENBWkEsRUFZQSxFQVpBO0FBYUEsZ0JBYkEsc0JBYUEsRUFiQTs7QUFlQSxLQXpIQTtBQTBIQSxzQkExSEEsZ0NBMEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BSkE7QUFLQSxLQWpJQTtBQWtJQSxxQkFsSUEsK0JBa0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXZJQTs7QUF5SUEsbUJBeklBLDJCQXlJQSxLQXpJQSxFQXlJQSxJQXpJQSxFQXlJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBUkE7O0FBVUEsS0FySkE7QUFzSkEsbUJBdEpBLDZCQXNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0EzSkE7QUE0SkEsbUJBNUpBLDZCQTRKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQWxLQTtBQW1LQSxhQW5LQSx1QkFtS0E7QUFDQTs7QUFFQSxnQkFGQTs7O0FBS0EsWUFMQSxDQUVBLFFBRkEsQ0FHQSxRQUhBLEdBS0EsSUFMQSxDQUdBLFFBSEEsQ0FJQSxPQUpBLEdBS0EsSUFMQSxDQUlBLE9BSkE7QUFNQTtBQUNBLG1CQURBO0FBRUEscUNBRkE7QUFHQSw2QkFIQTtBQUlBLDRCQUpBO0FBS0EsMEJBTEE7O0FBT0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE9BNUJBLENBNEJBO0FBQ0E7QUFDQSxxRUFEQTs7QUFHQTtBQUNBO0FBQ0EsS0F0TUE7QUF1TUEsWUF2TUEsc0JBdU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEEsQ0FLQTtBQUNBO0FBQ0E7QUFDQSxLQWhOQTtBQWlOQSxxQkFqTkEsK0JBaU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FOQTtBQU9BLEtBek5BO0FBME5BLG9CQTFOQSw4QkEwTkE7QUFDQTtBQUNBLEtBNU5BO0FBNk5BLG1CQTdOQSwyQkE2TkEsTUE3TkEsRUE2TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0EzT0E7QUE0T0Esa0JBNU9BLDBCQTRPQSxNQTVPQSxFQTRPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBeFBBO0FBeVBBO0FBQ0Esb0JBMVBBLDhCQTBQQTtBQUNBO0FBQ0EsK0JBREEsR0FDQSxrREFEQTtBQUVBO0FBQ0EsS0E5UEE7QUErUEEsZ0JBL1BBLDBCQStQQTtBQUNBO0FBQ0E7QUFDQSwwREFEQTtBQUVBLHNCQUZBOztBQUlBLE9BTEE7QUFNQTtBQUNBO0FBQ0E7QUFDQSx3REFEQTs7QUFHQTtBQUNBLE9BTkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdGQURBOztBQUdBLFNBSkEsTUFJQTtBQUNBO0FBQ0E7QUFDQSxPQVRBO0FBVUE7QUFDQTtBQUNBO0FBQ0EsNkRBREE7O0FBR0E7QUFDQSxPQU5BO0FBT0E7QUFDQTtBQUNBLE9BRkE7QUFHQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTs7QUFHQTtBQUNBO0FBQ0EsbUZBREE7Ozs7QUFLQSxPQWZBO0FBZ0JBOztBQUVBLGNBRkE7O0FBSUEsV0FKQSxDQUVBLE1BRkEsQ0FHQSxTQUhBLEdBSUEsR0FKQSxDQUdBLFNBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBLE9BYkE7QUFjQTtBQUNBO0FBQ0EsT0FGQTtBQUdBLEtBdFVBLEVBcktBLEUiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2hvbWUvYmFuY2syLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJiYWNrXCI+XHJcblx0XHRcdDwhLS0g5bmz5Y+w5a6i5pyNIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3QxXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO292ZXJmbG93OiBoaWRkZW47XCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJuYW1lXCIgdi1pZj1cIiFtZWV0aW5nU2VydmljZVVzZXIudXNlcklkXCI+e3sgJ+etieW+heWuouacjei/m+WFpScgfX08L3RleHQ+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJuYW1lXCIgdi1lbHNlPuWuouacjVxyXG5cdFx0XHRcdFx0e3sgbWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJbmZvICYmIG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySW5mby5uYW1lIHx8ICcnIH19PC90ZXh0PlxyXG5cdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OjM2MHJweDtmbGV4LWRpcmVjdGlvbjogcm93O2p1c3RpZnktY29udGVudDogY2VudGVyO21hcmdpbjogMCBhdXRvO1wiIGlkPSdyb290Jz5cclxuXHRcdFx0XHRcdDx2aWV3IHYtaWY9XCJtZWV0aW5nU2VydmljZVVzZXIudXNlcklkICYmIHVzZXJJZCA9PSBtZWV0aW5nU2VydmljZVVzZXIudXNlcklkICYmIG1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nXCI+XHJcblx0XHRcdFx0XHRcdDx0cnRjLWxvY2FsLXZpZXcgOnZpZXdJZD1cIm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWRcIiBzdHlsZT1cImhlaWdodDogMzgwcnB4O3dpZHRoOiAzNjBycHg7XCI+XHJcblx0XHRcdFx0XHRcdDwvdHJ0Yy1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgdi1pZj1cIm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgdXNlcklkICE9IG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgbWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0PHRydGMtcmVtb3RlLXZpZXcgOnVzZXJJZD1cIm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWRcIiA6dmlld0lkPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZFwiXHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDM2MHJweDt3aWR0aDogMzAwcnB4O2JvcmRlcjogMXB4IHNvbGlkICNmZmY7XCI+XHJcblx0XHRcdFx0XHRcdDwvdHJ0Yy1yZW1vdGUtdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cIiFtZWV0aW5nU2VydmljZVVzZXIubWVldGluZ1wiIHYtZWxzZSBzcmM9XCIuLi8uLi9zdGF0aWMvaG9tZS9yZW4gKDEpLndlYnBcIlxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cIndpZHRoOiAzODBycHg7aGVpZ2h0OiAzNjBycHg7Ym9yZGVyLXJhZGl1czogNDBycHg7XCIgbW9kZT1cImFzcGVjdEZpbGxcIj5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgc3R5bGU9XCJmbGV4LWRpcmVjdGlvbjogcm93O2p1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO3dpZHRoOiAxMDB2dztcIj5cclxuXHRcdFx0XHQ8IS0t5L6b5pa5LS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0MVwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIiB2LWlmPVwiIW1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkXCI+562J5b6F5L6b5pa56L+b5YWlPC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJuYW1lXCIgdi1lbHNlPuS+m+aWuVxyXG5cdFx0XHRcdFx0XHR7eyBtZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJbmZvICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlckluZm8ubmFtZSB8fCAnJyB9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDozNjBycHg7XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0di1pZj1cIm1lZXRpbmdCdXNpbmVzc1VzZXIgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPT0gdXNlcklkICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLWxvY2FsLXZpZXcgOnZpZXdJZD1cIm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkXCIgc3R5bGU9XCJoZWlnaHQ6IDM4MHJweDt3aWR0aDogMzYwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwvdHJ0Yy1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0di1pZj1cIm1lZXRpbmdCdXNpbmVzc1VzZXIgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgIT0gdXNlcklkICYmICFtZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dHJ0Yy1yZW1vdGUtdmlldyA6dXNlcklkPVwibWVldGluZ0J1c2luZXNzVXNlci51c2VySWRcIiA6dmlld0lkPVwibWVldGluZ0J1c2luZXNzVXNlci51c2VySWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDM2MHJweDt3aWR0aDogMzAwcnB4O2JvcmRlcjogMXB4IHNvbGlkICNmZmY7XCI+XHJcblx0XHRcdFx0XHRcdFx0PC90cnRjLXJlbW90ZS12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSB2LWlmPVwiIW1lZXRpbmdCdXNpbmVzc1VzZXIgfHwgIW1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkIHx8ICFtZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmdcIlxyXG5cdFx0XHRcdFx0XHRcdHNyYz1cIi4uLy4uL3N0YXRpYy9ob21lL3JlbiAoMikud2VicFwiXHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJ3aWR0aDogMzAwcnB4O2hlaWdodDogMzYwcnB4O2JvcmRlci1yYWRpdXM6IDQwcnB4O1wiIG1vZGU9XCJhc3BlY3RGaWxsXCI+XHJcblx0XHRcdFx0XHRcdDwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8IS0t6ZyA5pa5LS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0MVwiIHN0eWxlPVwid2lkdGg6IDMwMHJweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIiB2LWlmPVwiIW1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkXCI+562J5b6F6ZyA5pa56L+b5YWlPC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJuYW1lXCIgdi1lbHNlPumcgOaWuVxyXG5cdFx0XHRcdFx0XHR7eyBtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJbmZvICYmIG1lZXRpbmdDdXN0b21lclVzZXIudXNlckluZm8ubmFtZSB8fCAnJyB9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDozNjBycHg7XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0di1pZj1cIm1lZXRpbmdDdXN0b21lclVzZXIgJiYgbWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgJiYgbWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgPT0gdXNlcklkICYmIG1lZXRpbmdDdXN0b21lclVzZXIubWVldGluZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLWxvY2FsLXZpZXcgOnZpZXdJZD1cIm1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkXCIgc3R5bGU9XCJoZWlnaHQ6IDM4MHJweDt3aWR0aDogMzYwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwvdHJ0Yy1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0di1pZj1cIm1lZXRpbmdDdXN0b21lclVzZXIgJiYgbWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgJiYgbWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgIT0gdXNlcklkICYmIG1lZXRpbmdDdXN0b21lclVzZXIubWVldGluZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLXJlbW90ZS12aWV3IDp1c2VySWQ9XCJtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZFwiIDp2aWV3SWQ9XCJtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMzYwcnB4O3dpZHRoOiAzMDBycHg7Ym9yZGVyOiAxcHggc29saWQgI2ZmZjtcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L3RydGMtcmVtb3RlLXZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PGltYWdlIHYtaWY9XCIhbWVldGluZ0N1c3RvbWVyVXNlciB8fCAhbWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgfHwgIW1lZXRpbmdDdXN0b21lclVzZXIubWVldGluZ1wiXHJcblx0XHRcdFx0XHRcdFx0c3JjPVwiLi4vLi4vc3RhdGljL2hvbWUvcmVuICgyKS53ZWJwXCJcclxuXHRcdFx0XHRcdFx0XHRzdHlsZT1cIndpZHRoOiAzMDBycHg7aGVpZ2h0OiAzNjBycHg7Ym9yZGVyLXJhZGl1czogNDBycHg7XCIgbW9kZT1cImFzcGVjdEZpbGxcIj5cclxuXHRcdFx0XHRcdFx0PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgc3R5bGU9XCJmbGV4LWRpcmVjdGlvbjogcm93O2p1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1wiPlxyXG5cdFx0XHRcdDxibG9jaz5cclxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiYnRuXCIgQGNsaWNrPVwiaGFuZGxlU3RhcnRNZWV0aW5nXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDIwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHTlvIDlp4vop4bpopFcclxuXHRcdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHQ8L2Jsb2NrPlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiYnRuXCIgdi1pZj1cIm1lZXRpbmdcIiBAY2xpY2s9XCJoYW5kbGVFbmR0TWVldGluZ1wiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAyMHB4O1wiPlxyXG5cdFx0XHRcdFx05oyC5patXHJcblx0XHRcdFx0PC90ZXh0PlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiYnRuXCIgQGNsaWNrPVwiaGFuZGxlSW52aXRlU2VydmljZVVzZXJcIiB2LWlmPVwiIWhhc0ludml0ZSAmJiBqb2luVHlwZSA9PSAnY3VzdG9tZXInXCJcclxuXHRcdFx0XHRcdHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAyMHJweDtcIj5cclxuXHRcdFx0XHRcdOmCgOivt+WuouacjVxyXG5cdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJ0blwiIHYtaWY9XCJqb2luVHlwZSA9PSAnY3VzdG9tZXInXCIgQGNsaWNrPVwiaGFuZGxlVG9TdWJtaXRPcmRlclwiPlxyXG5cdFx0XHRcdFx056uL5Y2z5LiL5Y2VXHJcblx0XHRcdFx0PC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDxzY3JvbGwtdmlldyA6c2Nyb2xsLXk9XCJ0cnVlXCIgY2xhc3M9XCJtZXNzYWdlXCI+XHJcblx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzIwcHg7XCI+XHJcblx0XHRcdFx0XHQ8dmlldyB2LWZvcj1cIml0ZW0gaW4gbWVzc2FnZUxpc3RcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztmbGV4LXdyYXA6IHdyYXA7XCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IHN0eWxlPVwiY29sb3I6ICNGRkRBOTcgO1wiPnt7aXRlbS5hdXRob3IgfHwgJ+ezu+e7nyd9fTo8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDx0ZXh0XHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogI2ZmZjttYXJnaW4tbGVmdDogMTBycHg7d29yZC1icmVhazogYnJlYWstYWxsO3dvcmQtd3JhcDogYnJlYWstd29yZDt3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XCI+XHJcblx0XHRcdFx0XHRcdFx0e3tpdGVtLmNvbnRlbnR9fVxyXG5cdFx0XHRcdFx0XHQ8L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3Njcm9sbC12aWV3PlxyXG5cdFx0XHQ8dmlld1xyXG5cdFx0XHRcdHN0eWxlPVwicG9zaXRpb246IGZpeGVkO2JvdHRvbTogMDtsZWZ0OiAwO3JpZ2h0OiAwO2p1c3RpZnktY29udGVudDogY2VudGVyO2FsaWduLWl0ZW1zOiBjZW50ZXI7Ym90dG9tOiAyMHB4O1wiPlxyXG5cdFx0XHRcdDxpbnB1dCBjbGFzcz1cImlucHV0XCIgcGxhY2Vob2xkZXI9XCLlm57lpI1cIiBwbGFjZWhvbGRlci1zdHlsZT1cImNvbG9yOiNmZmZcIiB2LW1vZGVsPVwibWVzc2FnZUNvbnRlbnRcIlxyXG5cdFx0XHRcdFx0QGNvbmZpcm09XCJzZW5kTWVzc2FnZVwiIGNvbmZpcm0tdHlwZT1cInNlbmRcIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCB7XHJcblx0XHRtYXBTdGF0ZVxyXG5cdH0gZnJvbSAndnVleCc7XHJcblx0aW1wb3J0IHBlcm1pc2lvbiBmcm9tIFwiQC9UcnRjQ2xvdWQvcGVybWlzc2lvbi5qc1wiO1xyXG5cdGltcG9ydCBUcnRjQ2xvdWQgZnJvbSAnQC9UcnRjQ2xvdWQvbGliL2luZGV4JztcclxuXHRpbXBvcnQge1xyXG5cdFx0VFJUQ0FwcFNjZW5lLFxyXG5cdFx0VFJUQ1ZpZGVvU3RyZWFtVHlwZSxcclxuXHRcdFRSVENDbG91ZERlZixcclxuXHRcdFRSVENBdWRpb1F1YWxpdHlcclxuXHR9IGZyb20gJ0AvVHJ0Y0Nsb3VkL2xpYi9UcnRjRGVmaW5lcyc7XHJcblx0aW1wb3J0IHtcclxuXHRcdGdlblRlc3RVc2VyU2lnXHJcblx0fSBmcm9tICdAL2RlYnVnL0dlbmVyYXRlVGVzdFVzZXJTaWcnO1xyXG5cdGltcG9ydCBUcnRjTG9jYWxWaWV3IGZyb20gJ0AvVHJ0Y0Nsb3VkL3ZpZXcvVHJ0Y0xvY2FsVmlldyc7XHJcblx0aW1wb3J0IFRydGNSZW1vdGVWaWV3IGZyb20gJ0AvVHJ0Y0Nsb3VkL3ZpZXcvVHJ0Y1JlbW90ZVZpZXcnO1xyXG5cdGNvbnN0IFRydGNFdmVudCA9IHVuaS5yZXF1aXJlTmF0aXZlUGx1Z2luKCdnbG9iYWxFdmVudCcpO1xyXG5cclxuXHRpbXBvcnQgQVBJIGZyb20gJ0AvYXBpcy9pbmRleC5qcydcclxuXHRpbXBvcnQgY29uZmlnIGZyb20gJ0AvY29tbW9uL2NvbmZpZy9jb25maWcuanMnXHJcblx0aW1wb3J0IHNlcnZpY2UgZnJvbSAnQC9zZXJ2aWNlL3NlcnZpY2UuanMnXHJcblx0bGV0IHNvY2tldFRhc2sgPSBnZXRBcHAoKS5nbG9iYWxEYXRhLnNvY2tldFRhc2s7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czoge1xyXG5cdFx0XHRUcnRjTG9jYWxWaWV3OiBUcnRjTG9jYWxWaWV3LFxyXG5cdFx0XHRUcnRjUmVtb3RlVmlldzogVHJ0Y1JlbW90ZVZpZXcsXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRoYXNJbnZpdGU6IGZhbHNlLFxyXG5cdFx0XHRcdC8v5oiRXHJcblx0XHRcdFx0bWVldGluZ1VzZXJNeToge1xyXG5cdFx0XHRcdFx0dXNlcklkOiAwXHJcblx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0Ly/pnIDmlrlcclxuXHRcdFx0XHRtZWV0aW5nQ3VzdG9tZXJVc2VyOiB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IDBcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHQvL+S+m+aWuVxyXG5cdFx0XHRcdG1lZXRpbmdCdXNpbmVzc1VzZXI6IHtcclxuXHRcdFx0XHRcdHVzZXJJZDogMFxyXG5cdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdC8v5a6i5pyNXHJcblx0XHRcdFx0bWVldGluZ1NlcnZpY2VVc2VyOiB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IDBcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHRudW06IDEwLFxyXG5cdFx0XHRcdHRydGNDbG91ZDogbnVsbCxcclxuXHRcdFx0XHRzZGtBcHBJZDogMCxcclxuXHRcdFx0XHR1c2VyU2lnOiAnJyxcclxuXHRcdFx0XHRyb29tSWQ6IDAsXHJcblx0XHRcdFx0dXNlcklkOiAnJyxcclxuXHRcdFx0XHRzdGFydGluZzogZmFsc2UsXHJcblx0XHRcdFx0dXNlclR5cGU6ICfnrYnlvoXov5vlhaUnLFxyXG5cdFx0XHRcdGFwcFNjZW5lOiBUUlRDQXBwU2NlbmUuVFJUQ0FwcFNjZW5lVmlkZW9DYWxsLCAvLyBUUlRDQXBwU2NlbmVWaWRlb0NhbGxcclxuXHRcdFx0XHRpc0Zyb250Q2FtZXJhOiB0cnVlLFxyXG5cdFx0XHRcdHN0cmVhbVR5cGU6IFRSVENWaWRlb1N0cmVhbVR5cGUuVFJUQ1ZpZGVvU3RyZWFtVHlwZUJpZyxcclxuXHRcdFx0XHRyZW1vdGVVc2VySWQ6ICcnLFxyXG5cdFx0XHRcdGF1ZGlvUm91dGU6IFRSVENDbG91ZERlZi5UUlRDX0FVRElPX1JPVVRFX1NQRUFLRVIsXHJcblx0XHRcdFx0bWVzc2FnZUxpc3Q6IFtdLFxyXG5cdFx0XHRcdG1lc3NhZ2VDb250ZW50OiAnJyxcclxuXHRcdFx0XHRteVVzZXJJbmZvOiAnJyxcclxuXHRcdFx0XHRyb29tOiB7fSxcclxuXHRcdFx0XHRzaG9wSWQ6IDAsXHJcblx0XHRcdFx0c2VsbGVyVXNlcklkOiAwLFxyXG5cclxuXHRcdFx0XHRwYXJhbToge30sXHJcblx0XHRcdFx0am9pblR5cGU6ICdjdXN0b21lcidcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdC4uLm1hcFN0YXRlKFsndXNlcicsICdzdGF0aXN0aWNzJywgJ2NvbW1vbiddKVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChlKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdvbmxvYWQgZScsIGUpO1xyXG5cdFx0XHRjb25zb2xlLmxvZygndXNlcicsIHRoaXMudXNlcik7XHJcblx0XHRcdHRoaXMucGFyYW0gPSBlO1xyXG5cclxuXHRcdFx0Ly/liqDlhaXnsbvlnovvvIzmmK/ku6Xku4DkuYjouqvku73liqDlhaXnmoRcclxuXHRcdFx0bGV0IGpvaW5UeXBlID0gZS5qb2luVHlwZSB8fCAnY3VzdG9tZXInXHJcblx0XHRcdGNvbnNvbGUubG9nKCdvbkxvYWQgam9pblR5cGUnLCBqb2luVHlwZSk7XHJcblx0XHRcdHRoaXMuam9pblR5cGUgPSBqb2luVHlwZTtcclxuXHJcblx0XHRcdHRoaXMucm9vbUlkID0gZS5yb29tSWQ7XHJcblx0XHRcdHRoaXMuc2VsbGVyVXNlcklkID0gZS51c2VyaWQ7XHJcblx0XHRcdHRoaXMudXNlcklkID0gJ3VzZXJfJyArIHRoaXMudXNlci5pZDtcclxuXHRcdFx0dGhpcy5tZWV0aW5nVXNlck15ID0ge1xyXG5cdFx0XHRcdHVzZXJJZDogdGhpcy51c2VySWQsXHJcblx0XHRcdFx0aWQ6IHRoaXMudXNlci5pZFxyXG5cdFx0XHR9O1xyXG5cdFx0XHR0aGlzLnNob3BJZCA9IGUuc2hvcF9pZDtcclxuXHJcblx0XHRcdGlmIChqb2luVHlwZSA9PSAnY3VzdG9tZXInKSB7XHJcblx0XHRcdFx0Ly/pnIDmlrlcclxuXHRcdFx0XHR0aGlzLmNyZWF0ZVJvb20oe1xyXG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwi5rWL6K+V5oi/6Ze0XCIsXHJcblx0XHRcdFx0XHRcImJvZHlUZXh0XCI6IFwiXCIsXHJcblx0XHRcdFx0XHRcInJvb21Ob1wiOiBcIlwiLFxyXG5cdFx0XHRcdFx0XCJkZXNjcmlwdGlvblwiOiBcIlwiLFxyXG5cdFx0XHRcdFx0XCJjbGllbnRJZFwiOiBcIlwiLFxyXG5cdFx0XHRcdFx0Ly8gXCJwcm9kdWN0SWRcIjogZS5nb29kc19pZCxcclxuXHRcdFx0XHRcdFwic2hvcElkXCI6IGUuc2hvcF9pZFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlciA9IHtcclxuXHRcdFx0XHRcdC4uLnRoaXMubWVldGluZ1VzZXJNeVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5yb29tID0ge1xyXG5cdFx0XHRcdFx0aWQ6IGUucm9vbUlkLFxyXG5cdFx0XHRcdFx0Um9vbU5vOiBlLnJvb21JZFxyXG5cdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlciA9IHtcclxuXHRcdFx0XHRcdHVzZXJJZDogJ3VzZXJfJyArIGUuY3VzdG9tZXJpZC50b1N0cmluZygpLFxyXG5cdFx0XHRcdFx0aWQ6IGUuY3VzdG9tZXJpZFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VsbGVyJykge1xyXG5cdFx0XHRcdC8v5L6b5pa5XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyID0ge1xyXG5cdFx0XHRcdFx0dXNlcklkOiB0aGlzLm1lZXRpbmdVc2VyTXkudXNlcklkLFxyXG5cdFx0XHRcdFx0aWQ6IHRoaXMubWVldGluZ1VzZXJNeS5pZFxyXG5cdFx0XHRcdH07XHJcblxyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHQvL+W5s+WPsOWuouacjVxyXG5cdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyID0ge1xyXG5cdFx0XHRcdFx0dXNlcklkOiB0aGlzLm1lZXRpbmdVc2VyTXkudXNlcklkLFxyXG5cdFx0XHRcdFx0aWQ6IHRoaXMubWVldGluZ1VzZXJNeS5pZFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnNvbGUubG9nKCdvbkxvYWQgbWVldGluZ0J1c2luZXNzVXNlcicsIHRoaXMubWVldGluZ0J1c2luZXNzVXNlcik7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdvbkxvYWQgbWVldGluZ1NlcnZpY2VVc2VyJywgdGhpcy5tZWV0aW5nU2VydmljZVVzZXIpO1xyXG5cclxuXHRcdFx0Ly8gdGhpcy5nZXRVc2VySW5mbyh0aGlzLnVzZXIuaWQsam9pblR5cGUpO1xyXG5cdFx0XHR0aGlzLmpvaW5Sb29tKCk7XHJcblxyXG5cdFx0XHR0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG5cclxuXHRcdFx0Ly/mloflrZfogYrlpKlcclxuXHRcdFx0dW5pLiRvbignc29ja2V0TWVzc2FnZScsIChkYXRhKSA9PiB7XHJcblx0XHRcdFx0aWYgKGRhdGEubWVzc2FnZVR5cGUgPT0gJ3NlbmRfdG9fcm9vbScpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZUxpc3QucHVzaCh7XHJcblx0XHRcdFx0XHRcdGF1dGhvcjogZGF0YS5yZWFsTmFtZSxcclxuXHRcdFx0XHRcdFx0Y29udGVudDogZGF0YS50b01lc3NhZ2VcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChkYXRhLm1lc3NhZ2VUeXBlID09ICdqb2luJykge1xyXG5cdFx0XHRcdFx0bGV0IHVzZXJpZCA9IGRhdGEudXNlckludElkO1xyXG5cdFx0XHRcdFx0aWYgKHVzZXJpZCAhPSB0aGlzLnVzZXIuaWQpIHtcclxuXHRcdFx0XHRcdFx0Ly/mnInnlKjmiLfliqDlhaXmiL/pl7RcclxuXHRcdFx0XHRcdFx0bGV0IGpvaW5UeXBlID0gZGF0YS5tZXNzYWdlQ29udGVudDtcclxuXHRcdFx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZWxsZXInKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCA9ICd1c2VyXycgKyB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLmlkID0gdXNlcmlkO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmIChqb2luVHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgPSAndXNlcl8nICsgdXNlcmlkO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLmlkID0gdXNlcmlkO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdG9uU2hvdygpIHt9LFxyXG5cdFx0b25IaWRlKCkge30sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRpZiAodW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGxhdGZvcm0gPT09ICdhbmRyb2lkJykge1xyXG5cdFx0XHRcdHBlcm1pc2lvbi5yZXF1ZXN0QW5kcm9pZFBlcm1pc3Npb24oJ2FuZHJvaWQucGVybWlzc2lvbi5SRUNPUkRfQVVESU8nKTtcclxuXHRcdFx0XHRwZXJtaXNpb24ucmVxdWVzdEFuZHJvaWRQZXJtaXNzaW9uKCdhbmRyb2lkLnBlcm1pc3Npb24uQ0FNRVJBJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5pbml0VXNlclNpZ24oKTtcclxuXHRcdH0sXHJcblx0XHRvblVubG9hZCgpIHtcclxuXHRcdFx0dGhpcy5kZXN0cm95SW5zdGFuY2UoKTtcclxuXHRcdFx0Y29uc29sZS5sb2coJy0gb25VbmxvYWQnKTtcclxuXHRcdH0sXHJcblx0XHRvbkJhY2tQcmVzcygpIHtcclxuXHRcdFx0dGhpcy5kZXN0cm95SW5zdGFuY2UoKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdGdldFVzZXJJbmZvKHVzZXJpZCwgdHlwZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdnZXRVc2VySW5mbycsIHVzZXJpZCwgdHlwZSk7XHJcblx0XHRcdFx0QVBJLm1lc3NhZ2UuZ2V0VXNlclR5cGVJbmZvKHVzZXJpZCkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJUeXBlSW5mbycsIHJlcyk7XHJcblx0XHRcdFx0XHRpZiAodHlwZSA9PSAnY3VzdG9tZXInKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnZXRVc2VyVHlwZUluZm8gdHlwZT1jdXN0b21lcicpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIudXNlckluZm8gPSByZXMuZGF0YVswXTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICh0eXBlID09ICdzZWxsZXInKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnZXRVc2VyVHlwZUluZm8gdHlwZT1zZWxsZXInKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJbmZvID0gcmVzLmRhdGFbMF07XHJcblx0XHRcdFx0XHRcdHRoYXQubWVzc2FnZUxpc3QucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0YXV0aG9yOiAn57O757ufJyxcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiAn5L6b5pa55Yqg5YWl5oi/6Ze0J1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHR5cGUgPT0gJ3NlcnZpY2UnKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnZXRVc2VyVHlwZUluZm8gdHlwZT1zZXJ2aWNlJyk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJbmZvID0gcmVzLmRhdGFbMF07XHJcblx0XHRcdFx0XHRcdHRoYXQubWVzc2FnZUxpc3QucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0YXV0aG9yOiAn57O757ufJyxcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiAn5a6i5pyN5Yqg5YWl5oi/6Ze0J1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJUeXBlSW5mbyBtZWV0aW5nU2VydmljZVVzZXInLCB0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlcik7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0am9pblJvb20oKSB7XHJcblx0XHRcdFx0c29ja2V0VGFzay5zZW5kKHtcclxuXHRcdFx0XHRcdGRhdGE6IEpTT04uc3RyaW5naWZ5KHtcclxuXHRcdFx0XHRcdFx0bWV0aG9kOiAnam9pbicsXHJcblx0XHRcdFx0XHRcdElzUm9vbTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0Um9vbU5vOiB0aGlzLnJvb21JZCxcclxuXHRcdFx0XHRcdFx0Um9vbU5hbWU6IHRoaXMucm9vbS5Sb29tTmFtZSxcclxuXHRcdFx0XHRcdFx0bWVzc2FnZUNvbnRlbnQ6IHRoaXMuam9pblR5cGUsXHJcblx0XHRcdFx0XHRcdHRva2VuOiBzZXJ2aWNlLmdldFRva2VuQ2hhb2dlKCksXHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7fSxcclxuXHRcdFx0XHRcdGZhaWwoZSkge30sXHJcblx0XHRcdFx0XHRjb21wbGV0ZSgpIHt9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGluaXRVc2VyU2lnbigpIHtcclxuXHRcdFx0XHRpZiAodGhpcy51c2VySWQpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdpbml0VXNlclNpZ24nLCB0aGlzLnVzZXJJZCk7XHJcblx0XHRcdFx0XHQvLyDnlJ/miJAgdXNlclNpZ1xyXG5cdFx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0XHRzZGtBcHBJZCxcclxuXHRcdFx0XHRcdFx0dXNlclNpZ1xyXG5cdFx0XHRcdFx0fSA9IGdlblRlc3RVc2VyU2lnKHRoaXMudXNlcklkKTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgPSBzZGtBcHBJZDtcclxuXHRcdFx0XHRcdHRoaXMudXNlclNpZyA9IHVzZXJTaWc7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnc2RrQXBwSWQsdXNlclNpZycsIHNka0FwcElkLCB1c2VyU2lnKTtcclxuXHRcdFx0XHRcdGlmICghc2RrQXBwSWQgfHwgIXVzZXJTaWcpIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6ICfor7floavlhpkgc2RrQXBwSWTjgIF1c2VyU2lnJyxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmluaXRVc2VyU2lnbigpO1xyXG5cdFx0XHRcdFx0fSwgMjAwKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlVG9TdWJtaXRPcmRlcigpIHtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6YKA6K+35ZWG5a625a6i5pyNXHJcblx0XHRcdGhhbmRsZUludml0ZUJ1c2luZXNzVXNlcigpIHtcclxuXHRcdFx0XHRBUEkubWVzc2FnZS5nZXRJbnZpdGVCdXNpbmVzc1VzZXJKb2luKHRoaXMuc2hvcElkLCB0aGlzLnJvb20uUm9vbU5vLCB0aGlzLnNlbGxlclVzZXJJZCkudGhlbihyZXMgPT4ge30pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6YKA6K+35bmz5Y+w5a6i5pyNXHJcblx0XHRcdGhhbmRsZUludml0ZVNlcnZpY2VVc2VyKCkge1xyXG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZygpO1xyXG5cdFx0XHRcdEFQSS5tZXNzYWdlLmdldEludml0ZVNlcnZpY2VVc2VySm9pbih0aGlzLnJvb20uUm9vbU5vLCAnam9pbk11bHRpcGxheWVyVmlkZW8nKS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfpgoDor7fmiJDlip8nXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0dGhpcy5oYXNJbnZpdGUgPSB0cnVlO1xyXG5cdFx0XHRcdH0pLmZpbmFsbHkoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNyZWF0ZVJvb20oZGF0YSkge1xyXG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZyh7XHJcblx0XHRcdFx0XHR0aXRsZTogJ+ato+WcqOWIm+W7uuaIv+mXtCdcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRBUEkubWVzc2FnZS5wb3N0QWRkUm9vbShkYXRhKS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnJvb20gPSByZXMuZGF0YTtcclxuXHRcdFx0XHRcdHRoaXMucm9vbUlkID0gcmVzLmRhdGEuUm9vbU5vO1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVJbnZpdGVCdXNpbmVzc1VzZXIoKTtcclxuXHRcdFx0XHRcdHRoaXMuam9pblJvb20oKTtcclxuXHRcdFx0XHR9KS5maW5hbGx5KCgpID0+IHtcclxuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0c2VuZE1lc3NhZ2UoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHRoYXQubWVzc2FnZUxpc3QucHVzaCh7XHJcblx0XHRcdFx0XHRhdXRob3I6ICfmiJEnLFxyXG5cdFx0XHRcdFx0Y29udGVudDogdGhhdC5tZXNzYWdlQ29udGVudFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0dGhhdC5tZXNzYWdlQ29udGVudCA9ICcnO1xyXG5cdFx0XHRcdHNvY2tldFRhc2suc2VuZCh7XHJcblx0XHRcdFx0XHRkYXRhOiBKU09OLnN0cmluZ2lmeSh7XHJcblx0XHRcdFx0XHRcdGZvcm1Vc2VySWQ6IHRoaXMudXNlcklkLFxyXG5cdFx0XHRcdFx0XHRjb250ZW50VHlwZTogXCJcIixcclxuXHRcdFx0XHRcdFx0Y29udGVudDogdGhpcy5tZXNzYWdlQ29udGVudCxcclxuXHRcdFx0XHRcdFx0c2VuZFRpbWU6IG5ldyBEYXRlKCksXHJcblx0XHRcdFx0XHRcdG1ldGhvZDogJ3NlbmRfdG9fcm9vbScsXHJcblx0XHRcdFx0XHRcdFJvb21ObzogdGhpcy5yb29tLlJvb21ObyxcclxuXHRcdFx0XHRcdFx0Um9vbU5hbWU6IHRoaXMucm9vbS5OYW1lLFxyXG5cdFx0XHRcdFx0XHRJc1Jvb206IHRydWVcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHt9LFxyXG5cdFx0XHRcdFx0ZmFpbChlKSB7fSxcclxuXHRcdFx0XHRcdGNvbXBsZXRlKCkge31cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlU3RhcnRNZWV0aW5nKCkge1xyXG5cdFx0XHRcdHRoaXMuc3RhcnRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuY3JlYXRlVHJ0Y0Nsb3VkKCk7XHJcblx0XHRcdFx0XHR0aGlzLmVudGVyUm9vbSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5zdGFydExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZUVuZHRNZWV0aW5nKCkge1xyXG5cdFx0XHRcdHRoaXMubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdHRoaXMuZXhpdFJvb20oKTtcclxuXHRcdFx0XHR0aGlzLmRlc3Ryb3lJbnN0YW5jZSgpO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0YmluZElucHV0Q2hhbmdlKGV2ZW50LCB0eXBlKSB7XHJcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRcdFx0XHRjYXNlICdyb29tSWQnOiB7XHJcblx0XHRcdFx0XHRcdHRoaXMucm9vbUlkID0gdmFsdWU7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y2FzZSAndXNlcklkJzoge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVzZXJJZCA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGRlc3Ryb3lJbnN0YW5jZSgpIHtcclxuXHRcdFx0XHRpZiAodGhpcy50cnRjQ2xvdWQpIHtcclxuXHRcdFx0XHRcdFRydGNDbG91ZC5kZXN0cm95SW5zdGFuY2UoKTtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkID0gbnVsbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNyZWF0ZVRydGNDbG91ZCgpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnY3JlYXRlVHJ0Y0Nsb3VkJywgdGhpcy5zZGtBcHBJZCk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQgPSBUcnRjQ2xvdWQuY3JlYXRlSW5zdGFuY2UoKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygndGhpcy50cnRjQ2xvdWQnLCB0aGlzLnRydGNDbG91ZClcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUV2ZW50cygpO1xyXG5cdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRjcmVhdGVUcnRjQ2xvdWRVcGxvYWQodGhpcy5zZGtBcHBJZCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGVudGVyUm9vbSgpIHtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0XHRzZGtBcHBJZCxcclxuXHRcdFx0XHRcdFx0YXBwU2NlbmUsXHJcblx0XHRcdFx0XHRcdHVzZXJTaWdcclxuXHRcdFx0XHRcdH0gPSB0aGlzO1xyXG5cdFx0XHRcdFx0bGV0IHBhcmFtID0ge1xyXG5cdFx0XHRcdFx0XHRyb29tSWQ6IDAsXHJcblx0XHRcdFx0XHRcdHN0clJvb21JZDogdGhpcy5yb29tLlJvb21ObyxcclxuXHRcdFx0XHRcdFx0dXNlcklkOiB0aGlzLnVzZXJJZCxcclxuXHRcdFx0XHRcdFx0c2RrQXBwSWQsXHJcblx0XHRcdFx0XHRcdHVzZXJTaWdcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZW50ZXJSb29tJywgcGFyYW0pO1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuZW50ZXJSb29tKHBhcmFtLCBhcHBTY2VuZSk7XHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kZW50ZXJSb29tU3VjY2Vzc1VwbG9hZCh0aGlzLnNka0FwcElkKTtcclxuXHJcblx0XHRcdFx0XHRsZXQgdXNlcklkID0gdGhpcy51c2VySWQ7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlTGlzdC51bnNoaWZ0KHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogYGVudGVyUm9vbSBlcnJvciA9ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfWBcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kZW50ZXJSb29tRmFpbGVkVXBsb2FkKHRoaXMuc2RrQXBwSWQsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRleGl0Um9vbSgpIHtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0dGhpcy5zdGFydGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5zdG9wTG9jYWxQcmV2aWV3KCk7XHJcblx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KCk7XHJcblx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZC5leGl0Um9vbSgpO1xyXG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRcdC8vIFRPRE8gaGFuZGxlIHRoZSBleGNlcHRpb25cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHN0YXJ0TG9jYWxQcmV2aWV3KCkge1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdzdGFydExvY2FsUHJldmlldycsIHRoaXMudXNlcklkKTtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZC5zdGFydExvY2FsUHJldmlldyh0aGlzLmlzRnJvbnRDYW1lcmEsIHRoaXMudXNlcklkKTtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0YXJ0TG9jYWxBdWRpbyhUUlRDQXVkaW9RdWFsaXR5LlRSVENBdWRpb1F1YWxpdHlEZWZhdWx0KTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRzdGFydExvY2FsUHJldmlld1VwbG9hZCh0aGlzLnNka0FwcElkKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzdG9wTG9jYWxQcmV2aWV3KCkge1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0c3RhcnRSZW1vdGVWaWV3KHVzZXJJZCkge1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0YXJ0UmVtb3RlVmlldyh1c2VySWQsIHRoaXMuc3RyZWFtVHlwZSwgdXNlcklkKTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRzdGFydFJlbW90ZVZpZXdTdWNjZXNzVXBsb2FkKHRoaXMuc2RrQXBwSWQpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c3RvcFJlbW90ZVZpZXcodXNlcklkKSB7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RvcFJlbW90ZVZpZXcodXNlcklkLCB0aGlzLnN0cmVhbVR5cGUpO1xyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyLm1lZXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nU2VydmljZVVzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWQrOetkuOAgeWFjeaPkCDliIfmjaJcclxuXHRcdFx0c3dpdGNoQXVkaW9Sb3V0ZSgpIHtcclxuXHRcdFx0XHR0aGlzLmF1ZGlvUm91dGUgPSB0aGlzLmF1ZGlvUm91dGUgPT09IFRSVENDbG91ZERlZi5UUlRDX0FVRElPX1JPVVRFX1NQRUFLRVIgPyBUUlRDQ2xvdWREZWZcclxuXHRcdFx0XHRcdC5UUlRDX0FVRElPX1JPVVRFX0VBUlBJRUNFIDogVFJUQ0Nsb3VkRGVmLlRSVENfQVVESU9fUk9VVEVfU1BFQUtFUjtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5zZXRBdWRpb1JvdXRlKHRoaXMuYXVkaW9Sb3V0ZSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZUV2ZW50cygpIHtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25XYXJuaW5nJywgKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiBgb25XYXJuaW5nOiAke0pTT04uc3RyaW5naWZ5KHJlcyl9YCxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uRXJyb3InLCAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnb25FcnJvcicsIHJlcylcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZUxpc3QudW5zaGlmdCh7XHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IGBlcnJvcjogJHtKU09OLnN0cmluZ2lmeShyZXMpfWBcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR0aGlzLnNka0FwcElkICYmIHVuaS4kb25FcnJvclVwbG9hZCh0aGlzLnNka0FwcElkLCBKU09OLnN0cmluZ2lmeShyZXMpKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25FbnRlclJvb20nLCAocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhgLSBvbkVudGVyUm9vbSA9ICR7cmVzdWx0fWApO1xyXG5cdFx0XHRcdFx0aWYgKHJlc3VsdCA+IDApIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZXNzYWdlTGlzdC51bnNoaWZ0KHtcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiBg6L+b5oi/5oiQ5Yqf77yM6ICX5pe2OiAke3Jlc3VsdH1tc2BcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGBlbnRlciByb29tIGZhaWxlZO+8jGVycm9yIGNvZGUgPSAke3Jlc3VsdH1gKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25FeGl0Um9vbScsIChyZWFzb24pID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHJlYXNvbkxpc3QgPSBbJ+S4u+WKqOiwg+eUqCBleGl0Um9vbSDpgIDmiL8nLCAn6KKr5pyN5Yqh5Zmo6Lii5Ye65b2T5YmN5oi/6Ze0JywgJ+W9k+WJjeaIv+mXtOaVtOS4quiiq+ino+aVoyddO1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlTGlzdC51bnNoaWZ0KHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogYOmAgOaIvyAke3JlYXNvbkxpc3RbcmVhc29uXX1gXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbkZpcnN0VmlkZW9GcmFtZScsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGDmuLLmn5PnmoTpppbluKfnlLvpnaLlk43lupQgPSAke0pTT04uc3RyaW5naWZ5KHJlcyl9YCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uUmVtb3RlVXNlckVudGVyUm9vbScsICh1c2VySWQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdvblJlbW90ZVVzZXJFbnRlclJvb20nLCB1c2VySWQpO1xyXG5cdFx0XHRcdFx0dGhpcy5zdGFydFJlbW90ZVZpZXcodXNlcklkKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25SZW1vdGVVc2VyTGVhdmVSb29tJywgKHVzZXJJZCkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGluZGV4ID0gdGhpcy5tZWV0aW5nVXNlcnMuZmluZEluZGV4KHQgPT4gdC51c2VySWQgPT0gdXNlcklkKTtcclxuXHRcdFx0XHRcdGlmIChpbmRleCA+PSAwKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1VzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nVXNlcnMubGVuZ3RoIDwgMikge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdVc2Vycy5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiAn562J5b6F6L+b5YWlJ1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlTGlzdC51bnNoaWZ0KHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogYOeUqOaIt+emu+W8gOaIv+mXtDogdXNlcklkID0gJHt1c2VySWR9YFxyXG5cdFx0XHRcdFx0fSlcclxuXHJcblxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvblVzZXJWaWRlb0F2YWlsYWJsZScsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRcdFx0dXNlcklkLFxyXG5cdFx0XHRcdFx0XHRhdmFpbGFibGVcclxuXHRcdFx0XHRcdH0gPSByZXM7XHJcblx0XHRcdFx0XHRpZiAoYXZhaWxhYmxlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RhcnRMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICh1c2VySWQgJiYgYXZhaWxhYmxlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RhcnRSZW1vdGVWaWV3KHVzZXJJZCk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0b3BSZW1vdGVWaWV3KHVzZXJJZCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uRXhpdFJvb20nLCAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhgb25FeGl0Um9vbSA9ICR7SlNPTi5zdHJpbmdpZnkocmVzKX1gKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG48c3R5bGUgc3JjPVwiQC9wYWdlcy9tZWV0aW5nL21lZXRpbmcuY3NzXCI+PC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///46\n");
+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\n\n\nvar _vuex = __webpack_require__(/*! vuex */ 12);\n\n\nvar _permission = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/permission.js */ 13));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/lib/index */ 14));\nvar _TrtcDefines = __webpack_require__(/*! @/TrtcCloud/lib/TrtcDefines */ 16);\n\n\n\n\n\nvar _GenerateTestUserSig = __webpack_require__(/*! @/debug/GenerateTestUserSig */ 17);\n\n\nvar _TrtcLocalView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcLocalView */ 19));\nvar _TrtcRemoteView = _interopRequireDefault(__webpack_require__(/*! @/TrtcCloud/view/TrtcRemoteView */ 25));\n\n\nvar _index2 = _interopRequireDefault(__webpack_require__(/*! @/apis/index.js */ 30));\nvar _config = _interopRequireDefault(__webpack_require__(/*! @/common/config/config.js */ 38));\nvar _service = _interopRequireDefault(__webpack_require__(/*! @/service/service.js */ 33));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 data: function data() {\n return {\n hasInvite: false,\n //我\n meetingUserMy: {\n userId: 0 },\n\n\n //需方\n meetingCustomerUser: {\n userId: 0 },\n\n\n //供方\n meetingBusinessUser: {\n userId: 0 },\n\n\n //客服\n meetingServiceUser: {\n userId: 0 },\n\n\n num: 10,\n trtcCloud: null,\n sdkAppId: 0,\n userSig: '',\n roomId: 0,\n userId: '',\n starting: false,\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\n param: {},\n joinType: 'customer' };\n\n },\n computed: _objectSpread({},\n (0, _vuex.mapState)(['user', 'statistics', 'common'])),\n\n onLoad: function onLoad(e) {var _this = this;\n __f__(\"log\", 'onload e', e, \" at pages/meeting/meeting.nvue:192\");\n __f__(\"log\", 'user', this.user, \" at pages/meeting/meeting.nvue:193\");\n this.param = e;\n\n //加入类型,是以什么身份加入的\n var joinType = e.joinType || 'customer';\n __f__(\"log\", 'onLoad joinType', joinType, \" at pages/meeting/meeting.nvue:198\");\n this.joinType = joinType;\n\n this.roomId = e.roomId;\n this.sellerUserId = e.userid;\n this.userId = 'user_' + this.user.id;\n this.meetingUserMy = {\n userId: this.userId,\n id: this.user.id };\n\n this.shopId = e.shop_id;\n\n if (joinType == 'customer') {\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.meetingCustomerUser = _objectSpread({},\n this.meetingUserMy);\n\n } else {\n this.room = {\n id: e.roomId,\n RoomNo: e.roomId };\n\n\n this.meetingCustomerUser = {\n userId: 'user_' + e.customerid.toString(),\n id: e.customerid };\n\n }\n\n if (joinType == 'seller') {\n //供方\n this.meetingBusinessUser = {\n userId: this.meetingUserMy.userId,\n id: this.meetingUserMy.id };\n\n\n }\n if (joinType == 'service') {\n //平台客服\n this.meetingServiceUser = {\n userId: this.meetingUserMy.userId,\n id: this.meetingUserMy.id };\n\n }\n\n __f__(\"log\", 'onLoad meetingBusinessUser', this.meetingBusinessUser, \" at pages/meeting/meeting.nvue:252\");\n __f__(\"log\", 'onLoad meetingServiceUser', this.meetingServiceUser, \" at pages/meeting/meeting.nvue:253\");\n\n // this.getUserInfo(this.user.id,joinType);\n this.joinRoom();\n\n this.$forceUpdate();\n\n //文字聊天\n uni.$on('socketMessage', function (data) {\n if (data.messageType == 'send_to_room') {\n _this.messageList.push({\n author: data.realName,\n content: data.toMessage });\n\n }\n if (data.messageType == 'join') {\n var userid = data.userIntId;\n if (userid != _this.user.id) {\n //有用户加入房间\n var _joinType = data.messageContent;\n if (_joinType == 'seller') {\n _this.meetingBusinessUser.userId = 'user_' + userid;\n _this.meetingBusinessUser.id = userid;\n }\n if (_joinType == 'service') {\n _this.meetingServiceUser.userId = 'user_' + userid;\n _this.meetingServiceUser.id = userid;\n }\n }\n }\n });\n },\n onShow: function onShow() {},\n onHide: function onHide() {},\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:296\");\n },\n onBackPress: function onBackPress() {\n this.destroyInstance();\n },\n methods: {\n getUserInfo: function getUserInfo(userid, type) {var _this2 = this;\n __f__(\"log\", 'getUserInfo', userid, type, \" at pages/meeting/meeting.nvue:303\");\n _index2.default.message.getUserTypeInfo(userid).then(function (res) {\n __f__(\"log\", 'getUserTypeInfo', res, \" at pages/meeting/meeting.nvue:305\");\n if (type == 'customer') {\n __f__(\"log\", 'getUserTypeInfo type=customer', \" at pages/meeting/meeting.nvue:307\");\n _this2.meetingCustomerUser.userInfo = res.data[0];\n }\n if (type == 'seller') {\n __f__(\"log\", 'getUserTypeInfo type=seller', \" at pages/meeting/meeting.nvue:311\");\n _this2.meetingBusinessUser.userInfo = res.data[0];\n that.messageList.push({\n author: '系统',\n content: '供方加入房间' });\n\n }\n if (type == 'service') {\n __f__(\"log\", 'getUserTypeInfo type=service', \" at pages/meeting/meeting.nvue:319\");\n // this.meetingServiceUser.userInfo = res.data[0];\n that.messageList.push({\n author: '系统',\n content: '客服加入房间' });\n\n }\n __f__(\"log\", 'getUserTypeInfo meetingServiceUser', _this2.meetingServiceUser, \" at pages/meeting/meeting.nvue:326\");\n });\n },\n joinRoom: function joinRoom() {\n socketTask.send({\n data: JSON.stringify({\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 success: function success(res) {},\n fail: function fail(e) {},\n complete: function complete() {} });\n\n },\n initUserSign: function initUserSign() {var _this3 = this;\n if (this.userId) {\n __f__(\"log\", 'initUserSign', this.userId, \" at pages/meeting/meeting.nvue:346\");\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:354\");\n if (!sdkAppId || !userSig) {\n uni.showToast({\n title: '请填写 sdkAppId、userSig',\n icon: 'none' });\n\n }\n } else {\n setTimeout(function () {\n _this3.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, this.room.RoomNo, this.sellerUserId).then(function (res) {});\n },\n //邀请平台客服\n handleInviteServiceUser: function handleInviteServiceUser() {var _this4 = this;\n uni.showLoading();\n _index2.default.message.getInviteServiceUserJoin(this.room.RoomNo, 'joinMultiplayerVideo').then(function (res) {\n uni.showToast({\n title: '邀请成功' });\n\n _this4.hasInvite = true;\n }).finally(function () {\n uni.hideLoading();\n });\n },\n createRoom: function createRoom(data) {var _this5 = this;\n uni.showLoading({\n title: '正在创建房间' });\n\n _index2.default.message.postAddRoom(data).then(function (res) {\n _this5.room = res.data;\n _this5.roomId = res.data.RoomNo;\n _this5.handleInviteBusinessUser();\n _this5.joinRoom();\n }).finally(function () {\n uni.hideLoading();\n });\n },\n\n sendMessage: function sendMessage() {\n var that = this;\n that.messageList.push({\n author: '我',\n content: that.messageContent });\n\n that.messageContent = '';\n socketTask.send({\n data: JSON.stringify({\n formUserId: this.userId,\n contentType: \"\",\n content: 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\n success: function success(res) {},\n fail: function fail(e) {},\n complete: function complete() {} });\n\n },\n handleStartMeeting: function handleStartMeeting() {var _this6 = this;\n this.starting = true;\n this.$nextTick(function () {\n _this6.createTrtcCloud();\n _this6.enterRoom();\n _this6.startLocalPreview();\n });\n },\n handleEndtMeeting: function handleEndtMeeting() {\n this.meeting = false;\n this.stopLocalPreview();\n this.exitRoom();\n this.destroyInstance();\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 __f__(\"log\", 'createTrtcCloud', this.sdkAppId, \" at pages/meeting/meeting.nvue:458\");\n this.trtcCloud = _index.default.createInstance();\n __f__(\"log\", 'this.trtcCloud', this.trtcCloud, \" at pages/meeting/meeting.nvue:460\");\n this.handleEvents();\n this.sdkAppId && uni.$createTrtcCloudUpload(this.sdkAppId);\n },\n enterRoom: function enterRoom() {\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:478\");\n this.trtcCloud.enterRoom(param, appScene);\n this.sdkAppId && uni.$enterRoomSuccessUpload(this.sdkAppId);\n\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\n } catch (error) {\n this.messageList.unshift({\n content: \"enterRoom error = \".concat(JSON.stringify(error)) });\n\n this.sdkAppId && uni.$enterRoomFailedUpload(this.sdkAppId, JSON.stringify(error));\n }\n },\n exitRoom: function exitRoom() {\n try {\n this.starting = 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 _this7 = this;\n this.$nextTick(function () {\n __f__(\"log\", 'startLocalPreview', _this7.userId, \" at pages/meeting/meeting.nvue:512\");\n _this7.meeting = true;\n _this7.trtcCloud.startLocalPreview(_this7.isFrontCamera, _this7.userId);\n _this7.trtcCloud.startLocalAudio(_TrtcDefines.TRTCAudioQuality.TRTCAudioQualityDefault);\n _this7.sdkAppId && uni.$startLocalPreviewUpload(_this7.sdkAppId);\n });\n },\n stopLocalPreview: function stopLocalPreview() {\n this.trtcCloud.stopLocalPreview();\n },\n startRemoteView: function startRemoteView(userId) {var _this8 = this;\n this.$nextTick(function () {\n _this8.trtcCloud.startRemoteView(userId, _this8.streamType, userId);\n _this8.sdkAppId && uni.$startRemoteViewSuccessUpload(_this8.sdkAppId);\n });\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 },\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 _this9 = this;\n this.trtcCloud.on('onWarning', function (res) {\n uni.showToast({\n title: \"onWarning: \".concat(JSON.stringify(res)),\n icon: 'none' });\n\n });\n this.trtcCloud.on('onError', function (res) {\n __f__(\"log\", 'onError', res, \" at pages/meeting/meeting.nvue:564\");\n _this9.messageList.unshift({\n content: \"error: \".concat(JSON.stringify(res)) });\n\n _this9.sdkAppId && uni.$onErrorUpload(_this9.sdkAppId, JSON.stringify(res));\n });\n this.trtcCloud.on('onEnterRoom', function (result) {\n __f__(\"log\", \"- onEnterRoom = \".concat(result), \" at pages/meeting/meeting.nvue:571\");\n if (result > 0) {\n _this9.messageList.unshift({\n content: \"\\u8FDB\\u623F\\u6210\\u529F\\uFF0C\\u8017\\u65F6: \".concat(result, \"ms\") });\n\n } else {\n __f__(\"log\", \"enter room failed\\uFF0Cerror code = \".concat(result), \" at pages/meeting/meeting.nvue:577\");\n }\n });\n this.trtcCloud.on('onExitRoom', function (reason) {\n var reasonList = ['主动调用 exitRoom 退房', '被服务器踢出当前房间', '当前房间整个被解散'];\n _this9.messageList.unshift({\n content: \"\\u9000\\u623F \".concat(reasonList[reason]) });\n\n _this9.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:588\");\n });\n this.trtcCloud.on('onRemoteUserEnterRoom', function (userId) {\n __f__(\"log\", 'onRemoteUserEnterRoom', userId, \" at pages/meeting/meeting.nvue:591\");\n _this9.startRemoteView(userId);\n });\n this.trtcCloud.on('onRemoteUserLeaveRoom', function (userId) {\n var index = _this9.meetingUsers.findIndex(function (t) {return t.userId == userId;});\n if (index >= 0) {\n _this9.meetingUsers.splice(index, 1);\n }\n if (_this9.meetingUsers.length < 2) {\n _this9.meetingUsers.push({\n type: '等待进入' });\n\n }\n _this9.messageList.unshift({\n content: \"\\u7528\\u6237\\u79BB\\u5F00\\u623F\\u95F4: userId = \".concat(userId) });\n\n\n\n });\n this.trtcCloud.on('onUserVideoAvailable', function (res) {var\n\n userId =\n\n res.userId,available = res.available;\n if (available) {\n _this9.startLocalPreview();\n }\n if (userId && available) {\n _this9.startRemoteView(userId);\n } else {\n _this9.stopRemoteView(userId);\n }\n });\n this.trtcCloud.on('onExitRoom', function (res) {\n __f__(\"log\", \"onExitRoom = \".concat(JSON.stringify(res)), \" at pages/meeting/meeting.nvue:625\");\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 */ 10)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 11)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVldGluZy9tZWV0aW5nLm52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpSEE7OztBQUdBO0FBQ0E7QUFDQTs7Ozs7O0FBTUE7OztBQUdBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSwyRix3bkNBSkE7QUFLQSxnRDtBQUNBO0FBQ0E7QUFDQSx5Q0FEQTtBQUVBLDJDQUZBLEVBREE7O0FBS0EsTUFMQSxrQkFLQTtBQUNBO0FBQ0Esc0JBREE7QUFFQTtBQUNBO0FBQ0EsaUJBREEsRUFIQTs7O0FBT0E7QUFDQTtBQUNBLGlCQURBLEVBUkE7OztBQVlBO0FBQ0E7QUFDQSxpQkFEQSxFQWJBOzs7QUFpQkE7QUFDQTtBQUNBLGlCQURBLEVBbEJBOzs7QUFzQkEsYUF0QkE7QUF1QkEscUJBdkJBO0FBd0JBLGlCQXhCQTtBQXlCQSxpQkF6QkE7QUEwQkEsZUExQkE7QUEyQkEsZ0JBM0JBO0FBNEJBLHFCQTVCQTtBQTZCQSxzQkE3QkE7QUE4QkEsK0RBOUJBLEVBOEJBO0FBQ0EseUJBL0JBO0FBZ0NBLHlFQWhDQTtBQWlDQSxzQkFqQ0E7QUFrQ0Esb0VBbENBO0FBbUNBLHFCQW5DQTtBQW9DQSx3QkFwQ0E7QUFxQ0Esb0JBckNBO0FBc0NBLGNBdENBO0FBdUNBLGVBdkNBO0FBd0NBLHFCQXhDQTs7QUEwQ0EsZUExQ0E7QUEyQ0EsMEJBM0NBOztBQTZDQSxHQW5EQTtBQW9EQTtBQUNBLHVEQURBLENBcERBOztBQXVEQSxRQXZEQSxrQkF1REEsQ0F2REEsRUF1REE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLHNCQUZBOztBQUlBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQURBO0FBRUEsc0JBRkE7QUFHQSxvQkFIQTtBQUlBLHlCQUpBO0FBS0Esc0JBTEE7QUFNQTtBQUNBLDJCQVBBOztBQVNBO0FBQ0Esd0JBREE7O0FBR0EsS0FkQSxNQWNBO0FBQ0E7QUFDQSxvQkFEQTtBQUVBLHdCQUZBOzs7QUFLQTtBQUNBLGlEQURBO0FBRUEsd0JBRkE7O0FBSUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EseUNBREE7QUFFQSxpQ0FGQTs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FEQTtBQUVBLGlDQUZBOztBQUlBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQURBO0FBRUEsaUNBRkE7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXRCQTtBQXVCQSxHQXBKQTtBQXFKQSxRQXJKQSxvQkFxSkEsRUFySkE7QUFzSkEsUUF0SkEsb0JBc0pBLEVBdEpBO0FBdUpBLFNBdkpBLHFCQXVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQTdKQTtBQThKQSxVQTlKQSxzQkE4SkE7QUFDQTtBQUNBO0FBQ0EsR0FqS0E7QUFrS0EsYUFsS0EseUJBa0tBO0FBQ0E7QUFDQSxHQXBLQTtBQXFLQTtBQUNBLGVBREEsdUJBQ0EsTUFEQSxFQUNBLElBREEsRUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTtBQUVBLDZCQUZBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTtBQUVBLDZCQUZBOztBQUlBO0FBQ0E7QUFDQSxPQXZCQTtBQXdCQSxLQTNCQTtBQTRCQSxZQTVCQSxzQkE0QkE7QUFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQSxzQkFGQTtBQUdBLDZCQUhBO0FBSUEsc0NBSkE7QUFLQSx1Q0FMQTtBQU1BLGtEQU5BLEdBREE7O0FBU0EsZUFUQSxtQkFTQSxHQVRBLEVBU0EsRUFUQTtBQVVBLFlBVkEsZ0JBVUEsQ0FWQSxFQVVBLEVBVkE7QUFXQSxnQkFYQSxzQkFXQSxFQVhBOztBQWFBLEtBMUNBO0FBMkNBLGdCQTNDQSwwQkEyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTs7O0FBTUEsNkRBTkEsQ0FJQSxRQUpBLG1CQUlBLFFBSkEsQ0FLQSxPQUxBLG1CQUtBLE9BTEE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBREE7QUFFQSx3QkFGQTs7QUFJQTtBQUNBLE9BaEJBLE1BZ0JBO0FBQ0E7QUFDQTtBQUNBLFNBRkEsRUFFQSxHQUZBO0FBR0E7QUFDQSxLQWpFQTtBQWtFQSx1QkFsRUEsaUNBa0VBO0FBQ0E7QUFDQSxLQXBFQTtBQXFFQTtBQUNBLDRCQXRFQSxzQ0FzRUE7QUFDQTtBQUNBLEtBeEVBO0FBeUVBO0FBQ0EsMkJBMUVBLHFDQTBFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQURBOztBQUdBO0FBQ0EsT0FMQSxFQUtBLE9BTEEsQ0FLQTtBQUNBO0FBQ0EsT0FQQTtBQVFBLEtBcEZBO0FBcUZBLGNBckZBLHNCQXFGQSxJQXJGQSxFQXFGQTtBQUNBO0FBQ0EsdUJBREE7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEEsRUFLQSxPQUxBLENBS0E7QUFDQTtBQUNBLE9BUEE7QUFRQSxLQWpHQTs7QUFtR0EsZUFuR0EseUJBbUdBO0FBQ0E7QUFDQTtBQUNBLG1CQURBO0FBRUEsb0NBRkE7O0FBSUE7QUFDQTtBQUNBO0FBQ0EsaUNBREE7QUFFQSx5QkFGQTtBQUdBLHNDQUhBO0FBSUEsOEJBSkE7QUFLQSxnQ0FMQTtBQU1BLGtDQU5BO0FBT0Esa0NBUEE7QUFRQSxzQkFSQSxHQURBOztBQVdBLGVBWEEsbUJBV0EsR0FYQSxFQVdBLEVBWEE7QUFZQSxZQVpBLGdCQVlBLENBWkEsRUFZQSxFQVpBO0FBYUEsZ0JBYkEsc0JBYUEsRUFiQTs7QUFlQSxLQXpIQTtBQTBIQSxzQkExSEEsZ0NBMEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BSkE7QUFLQSxLQWpJQTtBQWtJQSxxQkFsSUEsK0JBa0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXZJQTs7QUF5SUEsbUJBeklBLDJCQXlJQSxLQXpJQSxFQXlJQSxJQXpJQSxFQXlJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBUkE7O0FBVUEsS0FySkE7QUFzSkEsbUJBdEpBLDZCQXNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0EzSkE7QUE0SkEsbUJBNUpBLDZCQTRKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQWxLQTtBQW1LQSxhQW5LQSx1QkFtS0E7QUFDQTs7QUFFQSxnQkFGQTs7O0FBS0EsWUFMQSxDQUVBLFFBRkEsQ0FHQSxRQUhBLEdBS0EsSUFMQSxDQUdBLFFBSEEsQ0FJQSxPQUpBLEdBS0EsSUFMQSxDQUlBLE9BSkE7QUFNQTtBQUNBLG1CQURBO0FBRUEscUNBRkE7QUFHQSw2QkFIQTtBQUlBLDRCQUpBO0FBS0EsMEJBTEE7O0FBT0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE9BNUJBLENBNEJBO0FBQ0E7QUFDQSxxRUFEQTs7QUFHQTtBQUNBO0FBQ0EsS0F0TUE7QUF1TUEsWUF2TUEsc0JBdU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEEsQ0FLQTtBQUNBO0FBQ0E7QUFDQSxLQWhOQTtBQWlOQSxxQkFqTkEsK0JBaU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FOQTtBQU9BLEtBek5BO0FBME5BLG9CQTFOQSw4QkEwTkE7QUFDQTtBQUNBLEtBNU5BO0FBNk5BLG1CQTdOQSwyQkE2TkEsTUE3TkEsRUE2TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0EzT0E7QUE0T0Esa0JBNU9BLDBCQTRPQSxNQTVPQSxFQTRPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBeFBBO0FBeVBBO0FBQ0Esb0JBMVBBLDhCQTBQQTtBQUNBO0FBQ0EsK0JBREEsR0FDQSxrREFEQTtBQUVBO0FBQ0EsS0E5UEE7QUErUEEsZ0JBL1BBLDBCQStQQTtBQUNBO0FBQ0E7QUFDQSwwREFEQTtBQUVBLHNCQUZBOztBQUlBLE9BTEE7QUFNQTtBQUNBO0FBQ0E7QUFDQSx3REFEQTs7QUFHQTtBQUNBLE9BTkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdGQURBOztBQUdBLFNBSkEsTUFJQTtBQUNBO0FBQ0E7QUFDQSxPQVRBO0FBVUE7QUFDQTtBQUNBO0FBQ0EsNkRBREE7O0FBR0E7QUFDQSxPQU5BO0FBT0E7QUFDQTtBQUNBLE9BRkE7QUFHQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTs7QUFHQTtBQUNBO0FBQ0EsbUZBREE7Ozs7QUFLQSxPQWZBO0FBZ0JBOztBQUVBLGNBRkE7O0FBSUEsV0FKQSxDQUVBLE1BRkEsQ0FHQSxTQUhBLEdBSUEsR0FKQSxDQUdBLFNBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBLE9BYkE7QUFjQTtBQUNBO0FBQ0EsT0FGQTtBQUdBLEtBdFVBLEVBcktBLEUiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2hvbWUvYmFuY2syLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJiYWNrXCI+XHJcblx0XHRcdDwhLS0g5bmz5Y+w5a6i5pyNIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3QxXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO292ZXJmbG93OiBoaWRkZW47XCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJuYW1lXCIgdi1pZj1cIiFtZWV0aW5nU2VydmljZVVzZXIudXNlcklkXCI+e3sgJ+etieW+heWuouacjei/m+WFpScgfX08L3RleHQ+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJuYW1lXCIgdi1lbHNlPuWuouacjVxyXG5cdFx0XHRcdFx0e3sgbWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJbmZvICYmIG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySW5mby5uYW1lIHx8ICcnIH19PC90ZXh0PlxyXG5cdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OjM2MHJweDtmbGV4LWRpcmVjdGlvbjogcm93O2p1c3RpZnktY29udGVudDogY2VudGVyO21hcmdpbjogMCBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0OmNsYXNzPVwieydoaWRlJzohKG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgdXNlcklkID09IG1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgJiYgbWVldGluZ1NlcnZpY2VVc2VyLm1lZXRpbmcpfVwiPlxyXG5cdFx0XHRcdFx0XHQ8dHJ0Yy1sb2NhbC12aWV3IDp2aWV3SWQ9XCJtZWV0aW5nU2VydmljZVVzZXIudXNlcklkXCIgc3R5bGU9XCJoZWlnaHQ6IDM4MHJweDt3aWR0aDogMzYwcnB4O1wiPlxyXG5cdFx0XHRcdFx0XHQ8L3RydGMtbG9jYWwtdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdDpjbGFzcz1cInsnaGlkZSc6IShtZWV0aW5nU2VydmljZVVzZXIudXNlcklkICYmIHVzZXJJZCAhPSBtZWV0aW5nU2VydmljZVVzZXIudXNlcklkICYmIG1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nKX1cIj5cclxuXHRcdFx0XHRcdFx0PHRydGMtcmVtb3RlLXZpZXcgOnVzZXJJZD1cIm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWRcIiA6dmlld0lkPVwibWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZFwiXHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDM2MHJweDt3aWR0aDogMzAwcnB4O2JvcmRlcjogMXB4IHNvbGlkICNmZmY7XCI+XHJcblx0XHRcdFx0XHRcdDwvdHJ0Yy1yZW1vdGUtdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDxpbWFnZSB2LWlmPVwiIW1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nXCIgdi1lbHNlIHNyYz1cIi4uLy4uL3N0YXRpYy9ob21lL3JlbiAoMSkud2VicFwiXHJcblx0XHRcdFx0XHRcdHN0eWxlPVwid2lkdGg6IDM4MHJweDtoZWlnaHQ6IDM2MHJweDtib3JkZXItcmFkaXVzOiA0MHJweDtcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBzdHlsZT1cImZsZXgtZGlyZWN0aW9uOiByb3c7anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7d2lkdGg6IDEwMHZ3O1wiPlxyXG5cdFx0XHRcdDwhLS3kvpvmlrktLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImxpc3QxXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O21hcmdpbi1yaWdodDogMjBweDtcIj5cclxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwibmFtZVwiIHYtaWY9XCIhbWVldGluZ0J1c2luZXNzVXNlci51c2VySWRcIj7nrYnlvoXkvpvmlrnov5vlhaU8L3RleHQ+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIiB2LWVsc2U+5L6b5pa5XHJcblx0XHRcdFx0XHRcdHt7IG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlckluZm8gJiYgbWVldGluZ0J1c2luZXNzVXNlci51c2VySW5mby5uYW1lIHx8ICcnIH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OjM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0XHQ6Y2xhc3M9XCJ7J2hpZGUnOiEobWVldGluZ0J1c2luZXNzVXNlciAmJiBtZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCAmJiBtZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZCA9PSB1c2VySWQgJiYgbWVldGluZ0J1c2luZXNzVXNlci5tZWV0aW5nKX1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dHJ0Yy1sb2NhbC12aWV3IDp2aWV3SWQ9XCJtZWV0aW5nQnVzaW5lc3NVc2VyLnVzZXJJZFwiIHN0eWxlPVwiaGVpZ2h0OiAzODBycHg7d2lkdGg6IDM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L3RydGMtbG9jYWwtdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsnaGlkZSc6IShtZWV0aW5nQnVzaW5lc3NVc2VyICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkICYmIG1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkICE9IHVzZXJJZCAmJiAhbWVldGluZ0J1c2luZXNzVXNlci5tZWV0aW5nKX1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dHJ0Yy1yZW1vdGUtdmlldyA6dXNlcklkPVwibWVldGluZ0J1c2luZXNzVXNlci51c2VySWRcIiA6dmlld0lkPVwibWVldGluZ0J1c2luZXNzVXNlci51c2VySWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDM2MHJweDt3aWR0aDogMzAwcnB4O2JvcmRlcjogMXB4IHNvbGlkICNmZmY7XCI+XHJcblx0XHRcdFx0XHRcdFx0PC90cnRjLXJlbW90ZS12aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxpbWFnZVxyXG5cdFx0XHRcdFx0XHRcdHYtaWY9XCIhbWVldGluZ0J1c2luZXNzVXNlciB8fCAhbWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgfHwgIW1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZ1wiXHJcblx0XHRcdFx0XHRcdFx0c3JjPVwiLi4vLi4vc3RhdGljL2hvbWUvcmVuICgyKS53ZWJwXCJcclxuXHRcdFx0XHRcdFx0XHRzdHlsZT1cIndpZHRoOiAzMDBycHg7aGVpZ2h0OiAzNjBycHg7Ym9yZGVyLXJhZGl1czogNDBycHg7XCIgbW9kZT1cImFzcGVjdEZpbGxcIj5cclxuXHRcdFx0XHRcdFx0PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdDwhLS3pnIDmlrktLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImxpc3QxXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O21hcmdpbi1yaWdodDogMjBweDtcIj5cclxuXHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwibmFtZVwiIHYtaWY9XCIhbWVldGluZ0N1c3RvbWVyVXNlci51c2VySWRcIj7nrYnlvoXpnIDmlrnov5vlhaU8L3RleHQ+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIm5hbWVcIiB2LWVsc2U+6ZyA5pa5XHJcblx0XHRcdFx0XHRcdHt7IG1lZXRpbmdDdXN0b21lclVzZXIudXNlckluZm8gJiYgbWVldGluZ0N1c3RvbWVyVXNlci51c2VySW5mby5uYW1lIHx8ICcnIH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OjM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0XHQ6Y2xhc3M9XCJ7J2hpZGUnOiEobWVldGluZ0N1c3RvbWVyVXNlciAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQgJiYgbWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nKX1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dHJ0Yy1sb2NhbC12aWV3IDp2aWV3SWQ9XCJtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZFwiIHN0eWxlPVwiaGVpZ2h0OiAzODBycHg7d2lkdGg6IDM2MHJweDtcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L3RydGMtbG9jYWwtdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsnaGlkZSc6IShtZWV0aW5nQ3VzdG9tZXJVc2VyICYmIG1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkICYmIG1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkICE9IHVzZXJJZCAmJiBtZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcpfVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx0cnRjLXJlbW90ZS12aWV3IDp1c2VySWQ9XCJtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZFwiIDp2aWV3SWQ9XCJtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMzYwcnB4O3dpZHRoOiAzMDBycHg7Ym9yZGVyOiAxcHggc29saWQgI2ZmZjtcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L3RydGMtcmVtb3RlLXZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PGltYWdlXHJcblx0XHRcdFx0XHRcdFx0di1pZj1cIiFtZWV0aW5nQ3VzdG9tZXJVc2VyIHx8ICFtZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCB8fCAhbWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nXCJcclxuXHRcdFx0XHRcdFx0XHRzcmM9XCIuLi8uLi9zdGF0aWMvaG9tZS9yZW4gKDIpLndlYnBcIlxyXG5cdFx0XHRcdFx0XHRcdHN0eWxlPVwid2lkdGg6IDMwMHJweDtoZWlnaHQ6IDM2MHJweDtib3JkZXItcmFkaXVzOiA0MHJweDtcIiBtb2RlPVwiYXNwZWN0RmlsbFwiPlxyXG5cdFx0XHRcdFx0XHQ8L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBzdHlsZT1cImZsZXgtZGlyZWN0aW9uOiByb3c7anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XCI+XHJcblx0XHRcdFx0PGJsb2NrPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJidG5cIiBAY2xpY2s9XCJoYW5kbGVTdGFydE1lZXRpbmdcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMjBycHg7XCI+XHJcblx0XHRcdFx0XHRcdOW8gOWni+inhumikVxyXG5cdFx0XHRcdFx0PC90ZXh0PlxyXG5cdFx0XHRcdDwvYmxvY2s+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJidG5cIiB2LWlmPVwibWVldGluZ1wiIEBjbGljaz1cImhhbmRsZUVuZHRNZWV0aW5nXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDIwcHg7XCI+XHJcblx0XHRcdFx0XHTmjILmlq1cclxuXHRcdFx0XHQ8L3RleHQ+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJidG5cIiBAY2xpY2s9XCJoYW5kbGVJbnZpdGVTZXJ2aWNlVXNlclwiIHYtaWY9XCIhaGFzSW52aXRlICYmIGpvaW5UeXBlID09ICdjdXN0b21lcidcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDIwcnB4O1wiPlxyXG5cdFx0XHRcdFx06YKA6K+35a6i5pyNXHJcblx0XHRcdFx0PC90ZXh0PlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiYnRuXCIgdi1pZj1cImpvaW5UeXBlID09ICdjdXN0b21lcidcIiBAY2xpY2s9XCJoYW5kbGVUb1N1Ym1pdE9yZGVyXCI+XHJcblx0XHRcdFx0XHTnq4vljbPkuIvljZVcclxuXHRcdFx0XHQ8L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHNjcm9sbC12aWV3IDpzY3JvbGwteT1cInRydWVcIiBjbGFzcz1cIm1lc3NhZ2VcIj5cclxuXHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAzMjBweDtcIj5cclxuXHRcdFx0XHRcdDx2aWV3IHYtZm9yPVwiaXRlbSBpbiBtZXNzYWdlTGlzdFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogcm93O2ZsZXgtd3JhcDogd3JhcDtcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQgc3R5bGU9XCJjb2xvcjogI0ZGREE5NyA7XCI+e3tpdGVtLmF1dGhvciB8fCAn57O757ufJ319OjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PHRleHRcclxuXHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiAjZmZmO21hcmdpbi1sZWZ0OiAxMHJweDt3b3JkLWJyZWFrOiBicmVhay1hbGw7d29yZC13cmFwOiBicmVhay13b3JkO3doaXRlLXNwYWNlOiBwcmUtd3JhcDtcIj5cclxuXHRcdFx0XHRcdFx0XHR7e2l0ZW0uY29udGVudH19XHJcblx0XHRcdFx0XHRcdDwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvc2Nyb2xsLXZpZXc+XHJcblx0XHRcdDx2aWV3XHJcblx0XHRcdFx0c3R5bGU9XCJwb3NpdGlvbjogZml4ZWQ7Ym90dG9tOiAwO2xlZnQ6IDA7cmlnaHQ6IDA7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7YWxpZ24taXRlbXM6IGNlbnRlcjtib3R0b206IDIwcHg7XCI+XHJcblx0XHRcdFx0PGlucHV0IGNsYXNzPVwiaW5wdXRcIiBwbGFjZWhvbGRlcj1cIuWbnuWkjVwiIHBsYWNlaG9sZGVyLXN0eWxlPVwiY29sb3I6I2ZmZlwiIHYtbW9kZWw9XCJtZXNzYWdlQ29udGVudFwiXHJcblx0XHRcdFx0XHRAY29uZmlybT1cInNlbmRNZXNzYWdlXCIgY29uZmlybS10eXBlPVwic2VuZFwiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHtcclxuXHRcdG1hcFN0YXRlXHJcblx0fSBmcm9tICd2dWV4JztcclxuXHRpbXBvcnQgcGVybWlzaW9uIGZyb20gXCJAL1RydGNDbG91ZC9wZXJtaXNzaW9uLmpzXCI7XHJcblx0aW1wb3J0IFRydGNDbG91ZCBmcm9tICdAL1RydGNDbG91ZC9saWIvaW5kZXgnO1xyXG5cdGltcG9ydCB7XHJcblx0XHRUUlRDQXBwU2NlbmUsXHJcblx0XHRUUlRDVmlkZW9TdHJlYW1UeXBlLFxyXG5cdFx0VFJUQ0Nsb3VkRGVmLFxyXG5cdFx0VFJUQ0F1ZGlvUXVhbGl0eVxyXG5cdH0gZnJvbSAnQC9UcnRjQ2xvdWQvbGliL1RydGNEZWZpbmVzJztcclxuXHRpbXBvcnQge1xyXG5cdFx0Z2VuVGVzdFVzZXJTaWdcclxuXHR9IGZyb20gJ0AvZGVidWcvR2VuZXJhdGVUZXN0VXNlclNpZyc7XHJcblx0aW1wb3J0IFRydGNMb2NhbFZpZXcgZnJvbSAnQC9UcnRjQ2xvdWQvdmlldy9UcnRjTG9jYWxWaWV3JztcclxuXHRpbXBvcnQgVHJ0Y1JlbW90ZVZpZXcgZnJvbSAnQC9UcnRjQ2xvdWQvdmlldy9UcnRjUmVtb3RlVmlldyc7XHJcblx0Y29uc3QgVHJ0Y0V2ZW50ID0gdW5pLnJlcXVpcmVOYXRpdmVQbHVnaW4oJ2dsb2JhbEV2ZW50Jyk7XHJcblxyXG5cdGltcG9ydCBBUEkgZnJvbSAnQC9hcGlzL2luZGV4LmpzJ1xyXG5cdGltcG9ydCBjb25maWcgZnJvbSAnQC9jb21tb24vY29uZmlnL2NvbmZpZy5qcydcclxuXHRpbXBvcnQgc2VydmljZSBmcm9tICdAL3NlcnZpY2Uvc2VydmljZS5qcydcclxuXHRsZXQgc29ja2V0VGFzayA9IGdldEFwcCgpLmdsb2JhbERhdGEuc29ja2V0VGFzaztcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRydGNMb2NhbFZpZXc6IFRydGNMb2NhbFZpZXcsXHJcblx0XHRcdFRydGNSZW1vdGVWaWV3OiBUcnRjUmVtb3RlVmlldyxcclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGhhc0ludml0ZTogZmFsc2UsXHJcblx0XHRcdFx0Ly/miJFcclxuXHRcdFx0XHRtZWV0aW5nVXNlck15OiB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IDBcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHQvL+mcgOaWuVxyXG5cdFx0XHRcdG1lZXRpbmdDdXN0b21lclVzZXI6IHtcclxuXHRcdFx0XHRcdHVzZXJJZDogMFxyXG5cdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdC8v5L6b5pa5XHJcblx0XHRcdFx0bWVldGluZ0J1c2luZXNzVXNlcjoge1xyXG5cdFx0XHRcdFx0dXNlcklkOiAwXHJcblx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0Ly/lrqLmnI1cclxuXHRcdFx0XHRtZWV0aW5nU2VydmljZVVzZXI6IHtcclxuXHRcdFx0XHRcdHVzZXJJZDogMFxyXG5cdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdG51bTogMTAsXHJcblx0XHRcdFx0dHJ0Y0Nsb3VkOiBudWxsLFxyXG5cdFx0XHRcdHNka0FwcElkOiAwLFxyXG5cdFx0XHRcdHVzZXJTaWc6ICcnLFxyXG5cdFx0XHRcdHJvb21JZDogMCxcclxuXHRcdFx0XHR1c2VySWQ6ICcnLFxyXG5cdFx0XHRcdHN0YXJ0aW5nOiBmYWxzZSxcclxuXHRcdFx0XHR1c2VyVHlwZTogJ+etieW+hei/m+WFpScsXHJcblx0XHRcdFx0YXBwU2NlbmU6IFRSVENBcHBTY2VuZS5UUlRDQXBwU2NlbmVWaWRlb0NhbGwsIC8vIFRSVENBcHBTY2VuZVZpZGVvQ2FsbFxyXG5cdFx0XHRcdGlzRnJvbnRDYW1lcmE6IHRydWUsXHJcblx0XHRcdFx0c3RyZWFtVHlwZTogVFJUQ1ZpZGVvU3RyZWFtVHlwZS5UUlRDVmlkZW9TdHJlYW1UeXBlQmlnLFxyXG5cdFx0XHRcdHJlbW90ZVVzZXJJZDogJycsXHJcblx0XHRcdFx0YXVkaW9Sb3V0ZTogVFJUQ0Nsb3VkRGVmLlRSVENfQVVESU9fUk9VVEVfU1BFQUtFUixcclxuXHRcdFx0XHRtZXNzYWdlTGlzdDogW10sXHJcblx0XHRcdFx0bWVzc2FnZUNvbnRlbnQ6ICcnLFxyXG5cdFx0XHRcdG15VXNlckluZm86ICcnLFxyXG5cdFx0XHRcdHJvb206IHt9LFxyXG5cdFx0XHRcdHNob3BJZDogMCxcclxuXHRcdFx0XHRzZWxsZXJVc2VySWQ6IDAsXHJcblxyXG5cdFx0XHRcdHBhcmFtOiB7fSxcclxuXHRcdFx0XHRqb2luVHlwZTogJ2N1c3RvbWVyJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0Li4ubWFwU3RhdGUoWyd1c2VyJywgJ3N0YXRpc3RpY3MnLCAnY29tbW9uJ10pXHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKGUpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ29ubG9hZCBlJywgZSk7XHJcblx0XHRcdGNvbnNvbGUubG9nKCd1c2VyJywgdGhpcy51c2VyKTtcclxuXHRcdFx0dGhpcy5wYXJhbSA9IGU7XHJcblxyXG5cdFx0XHQvL+WKoOWFpeexu+Wei++8jOaYr+S7peS7gOS5iOi6q+S7veWKoOWFpeeahFxyXG5cdFx0XHRsZXQgam9pblR5cGUgPSBlLmpvaW5UeXBlIHx8ICdjdXN0b21lcidcclxuXHRcdFx0Y29uc29sZS5sb2coJ29uTG9hZCBqb2luVHlwZScsIGpvaW5UeXBlKTtcclxuXHRcdFx0dGhpcy5qb2luVHlwZSA9IGpvaW5UeXBlO1xyXG5cclxuXHRcdFx0dGhpcy5yb29tSWQgPSBlLnJvb21JZDtcclxuXHRcdFx0dGhpcy5zZWxsZXJVc2VySWQgPSBlLnVzZXJpZDtcclxuXHRcdFx0dGhpcy51c2VySWQgPSAndXNlcl8nICsgdGhpcy51c2VyLmlkO1xyXG5cdFx0XHR0aGlzLm1lZXRpbmdVc2VyTXkgPSB7XHJcblx0XHRcdFx0dXNlcklkOiB0aGlzLnVzZXJJZCxcclxuXHRcdFx0XHRpZDogdGhpcy51c2VyLmlkXHJcblx0XHRcdH07XHJcblx0XHRcdHRoaXMuc2hvcElkID0gZS5zaG9wX2lkO1xyXG5cclxuXHRcdFx0aWYgKGpvaW5UeXBlID09ICdjdXN0b21lcicpIHtcclxuXHRcdFx0XHQvL+mcgOaWuVxyXG5cdFx0XHRcdHRoaXMuY3JlYXRlUm9vbSh7XHJcblx0XHRcdFx0XHRcIm5hbWVcIjogXCLmtYvor5XmiL/pl7RcIixcclxuXHRcdFx0XHRcdFwiYm9keVRleHRcIjogXCJcIixcclxuXHRcdFx0XHRcdFwicm9vbU5vXCI6IFwiXCIsXHJcblx0XHRcdFx0XHRcImRlc2NyaXB0aW9uXCI6IFwiXCIsXHJcblx0XHRcdFx0XHRcImNsaWVudElkXCI6IFwiXCIsXHJcblx0XHRcdFx0XHQvLyBcInByb2R1Y3RJZFwiOiBlLmdvb2RzX2lkLFxyXG5cdFx0XHRcdFx0XCJzaG9wSWRcIjogZS5zaG9wX2lkXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyID0ge1xyXG5cdFx0XHRcdFx0Li4udGhpcy5tZWV0aW5nVXNlck15XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnJvb20gPSB7XHJcblx0XHRcdFx0XHRpZDogZS5yb29tSWQsXHJcblx0XHRcdFx0XHRSb29tTm86IGUucm9vbUlkXHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyID0ge1xyXG5cdFx0XHRcdFx0dXNlcklkOiAndXNlcl8nICsgZS5jdXN0b21lcmlkLnRvU3RyaW5nKCksXHJcblx0XHRcdFx0XHRpZDogZS5jdXN0b21lcmlkXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZWxsZXInKSB7XHJcblx0XHRcdFx0Ly/kvpvmlrlcclxuXHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIgPSB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IHRoaXMubWVldGluZ1VzZXJNeS51c2VySWQsXHJcblx0XHRcdFx0XHRpZDogdGhpcy5tZWV0aW5nVXNlck15LmlkXHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZXJ2aWNlJykge1xyXG5cdFx0XHRcdC8v5bmz5Y+w5a6i5pyNXHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIgPSB7XHJcblx0XHRcdFx0XHR1c2VySWQ6IHRoaXMubWVldGluZ1VzZXJNeS51c2VySWQsXHJcblx0XHRcdFx0XHRpZDogdGhpcy5tZWV0aW5nVXNlck15LmlkXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc29sZS5sb2coJ29uTG9hZCBtZWV0aW5nQnVzaW5lc3NVc2VyJywgdGhpcy5tZWV0aW5nQnVzaW5lc3NVc2VyKTtcclxuXHRcdFx0Y29uc29sZS5sb2coJ29uTG9hZCBtZWV0aW5nU2VydmljZVVzZXInLCB0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlcik7XHJcblxyXG5cdFx0XHQvLyB0aGlzLmdldFVzZXJJbmZvKHRoaXMudXNlci5pZCxqb2luVHlwZSk7XHJcblx0XHRcdHRoaXMuam9pblJvb20oKTtcclxuXHJcblx0XHRcdHRoaXMuJGZvcmNlVXBkYXRlKCk7XHJcblxyXG5cdFx0XHQvL+aWh+Wtl+iBiuWkqVxyXG5cdFx0XHR1bmkuJG9uKCdzb2NrZXRNZXNzYWdlJywgKGRhdGEpID0+IHtcclxuXHRcdFx0XHRpZiAoZGF0YS5tZXNzYWdlVHlwZSA9PSAnc2VuZF90b19yb29tJykge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0YXV0aG9yOiBkYXRhLnJlYWxOYW1lLFxyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBkYXRhLnRvTWVzc2FnZVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGRhdGEubWVzc2FnZVR5cGUgPT0gJ2pvaW4nKSB7XHJcblx0XHRcdFx0XHRsZXQgdXNlcmlkID0gZGF0YS51c2VySW50SWQ7XHJcblx0XHRcdFx0XHRpZiAodXNlcmlkICE9IHRoaXMudXNlci5pZCkge1xyXG5cdFx0XHRcdFx0XHQvL+acieeUqOaIt+WKoOWFpeaIv+mXtFxyXG5cdFx0XHRcdFx0XHRsZXQgam9pblR5cGUgPSBkYXRhLm1lc3NhZ2VDb250ZW50O1xyXG5cdFx0XHRcdFx0XHRpZiAoam9pblR5cGUgPT0gJ3NlbGxlcicpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID0gJ3VzZXJfJyArIHVzZXJpZDtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIuaWQgPSB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKGpvaW5UeXBlID09ICdzZXJ2aWNlJykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9ICd1c2VyXycgKyB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIuaWQgPSB1c2VyaWQ7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0b25TaG93KCkge30sXHJcblx0XHRvbkhpZGUoKSB7fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdGlmICh1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS5wbGF0Zm9ybSA9PT0gJ2FuZHJvaWQnKSB7XHJcblx0XHRcdFx0cGVybWlzaW9uLnJlcXVlc3RBbmRyb2lkUGVybWlzc2lvbignYW5kcm9pZC5wZXJtaXNzaW9uLlJFQ09SRF9BVURJTycpO1xyXG5cdFx0XHRcdHBlcm1pc2lvbi5yZXF1ZXN0QW5kcm9pZFBlcm1pc3Npb24oJ2FuZHJvaWQucGVybWlzc2lvbi5DQU1FUkEnKTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmluaXRVc2VyU2lnbigpO1xyXG5cdFx0fSxcclxuXHRcdG9uVW5sb2FkKCkge1xyXG5cdFx0XHR0aGlzLmRlc3Ryb3lJbnN0YW5jZSgpO1xyXG5cdFx0XHRjb25zb2xlLmxvZygnLSBvblVubG9hZCcpO1xyXG5cdFx0fSxcclxuXHRcdG9uQmFja1ByZXNzKCkge1xyXG5cdFx0XHR0aGlzLmRlc3Ryb3lJbnN0YW5jZSgpO1xyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Z2V0VXNlckluZm8odXNlcmlkLCB0eXBlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJJbmZvJywgdXNlcmlkLCB0eXBlKTtcclxuXHRcdFx0XHRBUEkubWVzc2FnZS5nZXRVc2VyVHlwZUluZm8odXNlcmlkKS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2V0VXNlclR5cGVJbmZvJywgcmVzKTtcclxuXHRcdFx0XHRcdGlmICh0eXBlID09ICdjdXN0b21lcicpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJUeXBlSW5mbyB0eXBlPWN1c3RvbWVyJyk7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci51c2VySW5mbyA9IHJlcy5kYXRhWzBdO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHR5cGUgPT0gJ3NlbGxlcicpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJUeXBlSW5mbyB0eXBlPXNlbGxlcicpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlckluZm8gPSByZXMuZGF0YVswXTtcclxuXHRcdFx0XHRcdFx0dGhhdC5tZXNzYWdlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRhdXRob3I6ICfns7vnu58nLFxyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICfkvpvmlrnliqDlhaXmiL/pl7QnXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAodHlwZSA9PSAnc2VydmljZScpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dldFVzZXJUeXBlSW5mbyB0eXBlPXNlcnZpY2UnKTtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy5tZWV0aW5nU2VydmljZVVzZXIudXNlckluZm8gPSByZXMuZGF0YVswXTtcclxuXHRcdFx0XHRcdFx0dGhhdC5tZXNzYWdlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRhdXRob3I6ICfns7vnu58nLFxyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICflrqLmnI3liqDlhaXmiL/pl7QnXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2V0VXNlclR5cGVJbmZvIG1lZXRpbmdTZXJ2aWNlVXNlcicsIHRoaXMubWVldGluZ1NlcnZpY2VVc2VyKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRqb2luUm9vbSgpIHtcclxuXHRcdFx0XHRzb2NrZXRUYXNrLnNlbmQoe1xyXG5cdFx0XHRcdFx0ZGF0YTogSlNPTi5zdHJpbmdpZnkoe1xyXG5cdFx0XHRcdFx0XHRtZXRob2Q6ICdqb2luJyxcclxuXHRcdFx0XHRcdFx0SXNSb29tOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRSb29tTm86IHRoaXMucm9vbUlkLFxyXG5cdFx0XHRcdFx0XHRSb29tTmFtZTogdGhpcy5yb29tLlJvb21OYW1lLFxyXG5cdFx0XHRcdFx0XHRtZXNzYWdlQ29udGVudDogdGhpcy5qb2luVHlwZSxcclxuXHRcdFx0XHRcdFx0dG9rZW46IHNlcnZpY2UuZ2V0VG9rZW5DaGFvZ2UoKSxcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHt9LFxyXG5cdFx0XHRcdFx0ZmFpbChlKSB7fSxcclxuXHRcdFx0XHRcdGNvbXBsZXRlKCkge31cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0aW5pdFVzZXJTaWduKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLnVzZXJJZCkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2luaXRVc2VyU2lnbicsIHRoaXMudXNlcklkKTtcclxuXHRcdFx0XHRcdC8vIOeUn+aIkCB1c2VyU2lnXHJcblx0XHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHRcdHNka0FwcElkLFxyXG5cdFx0XHRcdFx0XHR1c2VyU2lnXHJcblx0XHRcdFx0XHR9ID0gZ2VuVGVzdFVzZXJTaWcodGhpcy51c2VySWQpO1xyXG5cdFx0XHRcdFx0dGhpcy5zZGtBcHBJZCA9IHNka0FwcElkO1xyXG5cdFx0XHRcdFx0dGhpcy51c2VyU2lnID0gdXNlclNpZztcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdzZGtBcHBJZCx1c2VyU2lnJywgc2RrQXBwSWQsIHVzZXJTaWcpO1xyXG5cdFx0XHRcdFx0aWYgKCFzZGtBcHBJZCB8fCAhdXNlclNpZykge1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+Whq+WGmSBzZGtBcHBJZOOAgXVzZXJTaWcnLFxyXG5cdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuaW5pdFVzZXJTaWduKCk7XHJcblx0XHRcdFx0XHR9LCAyMDApXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVUb1N1Ym1pdE9yZGVyKCkge1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/pgoDor7fllYblrrblrqLmnI1cclxuXHRcdFx0aGFuZGxlSW52aXRlQnVzaW5lc3NVc2VyKCkge1xyXG5cdFx0XHRcdEFQSS5tZXNzYWdlLmdldEludml0ZUJ1c2luZXNzVXNlckpvaW4odGhpcy5zaG9wSWQsIHRoaXMucm9vbS5Sb29tTm8sIHRoaXMuc2VsbGVyVXNlcklkKS50aGVuKHJlcyA9PiB7fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/pgoDor7flubPlj7DlrqLmnI1cclxuXHRcdFx0aGFuZGxlSW52aXRlU2VydmljZVVzZXIoKSB7XHJcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKCk7XHJcblx0XHRcdFx0QVBJLm1lc3NhZ2UuZ2V0SW52aXRlU2VydmljZVVzZXJKb2luKHRoaXMucm9vbS5Sb29tTm8sICdqb2luTXVsdGlwbGF5ZXJWaWRlbycpLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+mCgOivt+aIkOWKnydcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR0aGlzLmhhc0ludml0ZSA9IHRydWU7XHJcblx0XHRcdFx0fSkuZmluYWxseSgoKSA9PiB7XHJcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Y3JlYXRlUm9vbShkYXRhKSB7XHJcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcclxuXHRcdFx0XHRcdHRpdGxlOiAn5q2j5Zyo5Yib5bu65oi/6Ze0J1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdEFQSS5tZXNzYWdlLnBvc3RBZGRSb29tKGRhdGEpLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucm9vbSA9IHJlcy5kYXRhO1xyXG5cdFx0XHRcdFx0dGhpcy5yb29tSWQgPSByZXMuZGF0YS5Sb29tTm87XHJcblx0XHRcdFx0XHR0aGlzLmhhbmRsZUludml0ZUJ1c2luZXNzVXNlcigpO1xyXG5cdFx0XHRcdFx0dGhpcy5qb2luUm9vbSgpO1xyXG5cdFx0XHRcdH0pLmZpbmFsbHkoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRzZW5kTWVzc2FnZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dGhhdC5tZXNzYWdlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdGF1dGhvcjogJ+aIkScsXHJcblx0XHRcdFx0XHRjb250ZW50OiB0aGF0Lm1lc3NhZ2VDb250ZW50XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHR0aGF0Lm1lc3NhZ2VDb250ZW50ID0gJyc7XHJcblx0XHRcdFx0c29ja2V0VGFzay5zZW5kKHtcclxuXHRcdFx0XHRcdGRhdGE6IEpTT04uc3RyaW5naWZ5KHtcclxuXHRcdFx0XHRcdFx0Zm9ybVVzZXJJZDogdGhpcy51c2VySWQsXHJcblx0XHRcdFx0XHRcdGNvbnRlbnRUeXBlOiBcIlwiLFxyXG5cdFx0XHRcdFx0XHRjb250ZW50OiB0aGlzLm1lc3NhZ2VDb250ZW50LFxyXG5cdFx0XHRcdFx0XHRzZW5kVGltZTogbmV3IERhdGUoKSxcclxuXHRcdFx0XHRcdFx0bWV0aG9kOiAnc2VuZF90b19yb29tJyxcclxuXHRcdFx0XHRcdFx0Um9vbU5vOiB0aGlzLnJvb20uUm9vbU5vLFxyXG5cdFx0XHRcdFx0XHRSb29tTmFtZTogdGhpcy5yb29tLk5hbWUsXHJcblx0XHRcdFx0XHRcdElzUm9vbTogdHJ1ZVxyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge30sXHJcblx0XHRcdFx0XHRmYWlsKGUpIHt9LFxyXG5cdFx0XHRcdFx0Y29tcGxldGUoKSB7fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVTdGFydE1lZXRpbmcoKSB7XHJcblx0XHRcdFx0dGhpcy5zdGFydGluZyA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5jcmVhdGVUcnRjQ2xvdWQoKTtcclxuXHRcdFx0XHRcdHRoaXMuZW50ZXJSb29tKCk7XHJcblx0XHRcdFx0XHR0aGlzLnN0YXJ0TG9jYWxQcmV2aWV3KCk7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlRW5kdE1lZXRpbmcoKSB7XHJcblx0XHRcdFx0dGhpcy5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5zdG9wTG9jYWxQcmV2aWV3KCk7XHJcblx0XHRcdFx0dGhpcy5leGl0Um9vbSgpO1xyXG5cdFx0XHRcdHRoaXMuZGVzdHJveUluc3RhbmNlKCk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRiaW5kSW5wdXRDaGFuZ2UoZXZlbnQsIHR5cGUpIHtcclxuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IGV2ZW50LmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRzd2l0Y2ggKHR5cGUpIHtcclxuXHRcdFx0XHRcdGNhc2UgJ3Jvb21JZCc6IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5yb29tSWQgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjYXNlICd1c2VySWQnOiB7XHJcblx0XHRcdFx0XHRcdHRoaXMudXNlcklkID0gdmFsdWU7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZGVzdHJveUluc3RhbmNlKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLnRydGNDbG91ZCkge1xyXG5cdFx0XHRcdFx0VHJ0Y0Nsb3VkLmRlc3Ryb3lJbnN0YW5jZSgpO1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Y3JlYXRlVHJ0Y0Nsb3VkKCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdjcmVhdGVUcnRjQ2xvdWQnLCB0aGlzLnNka0FwcElkKTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZCA9IFRydGNDbG91ZC5jcmVhdGVJbnN0YW5jZSgpO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCd0aGlzLnRydGNDbG91ZCcsIHRoaXMudHJ0Y0Nsb3VkKVxyXG5cdFx0XHRcdHRoaXMuaGFuZGxlRXZlbnRzKCk7XHJcblx0XHRcdFx0dGhpcy5zZGtBcHBJZCAmJiB1bmkuJGNyZWF0ZVRydGNDbG91ZFVwbG9hZCh0aGlzLnNka0FwcElkKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0ZW50ZXJSb29tKCkge1xyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHRcdHNka0FwcElkLFxyXG5cdFx0XHRcdFx0XHRhcHBTY2VuZSxcclxuXHRcdFx0XHRcdFx0dXNlclNpZ1xyXG5cdFx0XHRcdFx0fSA9IHRoaXM7XHJcblx0XHRcdFx0XHRsZXQgcGFyYW0gPSB7XHJcblx0XHRcdFx0XHRcdHJvb21JZDogMCxcclxuXHRcdFx0XHRcdFx0c3RyUm9vbUlkOiB0aGlzLnJvb20uUm9vbU5vLFxyXG5cdFx0XHRcdFx0XHR1c2VySWQ6IHRoaXMudXNlcklkLFxyXG5cdFx0XHRcdFx0XHRzZGtBcHBJZCxcclxuXHRcdFx0XHRcdFx0dXNlclNpZ1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdlbnRlclJvb20nLCBwYXJhbSk7XHJcblx0XHRcdFx0XHR0aGlzLnRydGNDbG91ZC5lbnRlclJvb20ocGFyYW0sIGFwcFNjZW5lKTtcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRlbnRlclJvb21TdWNjZXNzVXBsb2FkKHRoaXMuc2RrQXBwSWQpO1xyXG5cclxuXHRcdFx0XHRcdGxldCB1c2VySWQgPSB0aGlzLnVzZXJJZDtcclxuXHRcdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHRoaXMubWVldGluZ1NlcnZpY2VVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VMaXN0LnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBgZW50ZXJSb29tIGVycm9yID0gJHtKU09OLnN0cmluZ2lmeShlcnJvcil9YFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRlbnRlclJvb21GYWlsZWRVcGxvYWQodGhpcy5zZGtBcHBJZCwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGV4aXRSb29tKCkge1xyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHR0aGlzLnN0YXJ0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnN0b3BMb2NhbFByZXZpZXcoKTtcclxuXHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcoKTtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLmV4aXRSb29tKCk7XHJcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdFx0Ly8gVE9ETyBoYW5kbGUgdGhlIGV4Y2VwdGlvblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c3RhcnRMb2NhbFByZXZpZXcoKSB7XHJcblx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ3N0YXJ0TG9jYWxQcmV2aWV3JywgdGhpcy51c2VySWQpO1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnN0YXJ0TG9jYWxQcmV2aWV3KHRoaXMuaXNGcm9udENhbWVyYSwgdGhpcy51c2VySWQpO1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RhcnRMb2NhbEF1ZGlvKFRSVENBdWRpb1F1YWxpdHkuVFJUQ0F1ZGlvUXVhbGl0eURlZmF1bHQpO1xyXG5cdFx0XHRcdFx0dGhpcy5zZGtBcHBJZCAmJiB1bmkuJHN0YXJ0TG9jYWxQcmV2aWV3VXBsb2FkKHRoaXMuc2RrQXBwSWQpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHN0b3BMb2NhbFByZXZpZXcoKSB7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RvcExvY2FsUHJldmlldygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzdGFydFJlbW90ZVZpZXcodXNlcklkKSB7XHJcblx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy50cnRjQ2xvdWQuc3RhcnRSZW1vdGVWaWV3KHVzZXJJZCwgdGhpcy5zdHJlYW1UeXBlLCB1c2VySWQpO1xyXG5cdFx0XHRcdFx0dGhpcy5zZGtBcHBJZCAmJiB1bmkuJHN0YXJ0UmVtb3RlVmlld1N1Y2Nlc3NVcGxvYWQodGhpcy5zZGtBcHBJZCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdDdXN0b21lclVzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLm1lZXRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nU2VydmljZVVzZXIudXNlcklkID09IHVzZXJJZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nU2VydmljZVVzZXIubWVldGluZyA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzdG9wUmVtb3RlVmlldyh1c2VySWQpIHtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5zdG9wUmVtb3RlVmlldyh1c2VySWQsIHRoaXMuc3RyZWFtVHlwZSk7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVldGluZ0J1c2luZXNzVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdCdXNpbmVzc1VzZXIubWVldGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tZWV0aW5nQ3VzdG9tZXJVc2VyLnVzZXJJZCA9PSB1c2VySWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVldGluZ0N1c3RvbWVyVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci51c2VySWQgPT0gdXNlcklkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lZXRpbmdTZXJ2aWNlVXNlci5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5ZCs562S44CB5YWN5o+QIOWIh+aNolxyXG5cdFx0XHRzd2l0Y2hBdWRpb1JvdXRlKCkge1xyXG5cdFx0XHRcdHRoaXMuYXVkaW9Sb3V0ZSA9IHRoaXMuYXVkaW9Sb3V0ZSA9PT0gVFJUQ0Nsb3VkRGVmLlRSVENfQVVESU9fUk9VVEVfU1BFQUtFUiA/IFRSVENDbG91ZERlZlxyXG5cdFx0XHRcdFx0LlRSVENfQVVESU9fUk9VVEVfRUFSUElFQ0UgOiBUUlRDQ2xvdWREZWYuVFJUQ19BVURJT19ST1VURV9TUEVBS0VSO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLnNldEF1ZGlvUm91dGUodGhpcy5hdWRpb1JvdXRlKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlRXZlbnRzKCkge1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbldhcm5pbmcnLCAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6IGBvbldhcm5pbmc6ICR7SlNPTi5zdHJpbmdpZnkocmVzKX1gLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25FcnJvcicsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdvbkVycm9yJywgcmVzKVxyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlTGlzdC51bnNoaWZ0KHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogYGVycm9yOiAke0pTT04uc3RyaW5naWZ5KHJlcyl9YFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHRoaXMuc2RrQXBwSWQgJiYgdW5pLiRvbkVycm9yVXBsb2FkKHRoaXMuc2RrQXBwSWQsIEpTT04uc3RyaW5naWZ5KHJlcykpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbkVudGVyUm9vbScsIChyZXN1bHQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGAtIG9uRW50ZXJSb29tID0gJHtyZXN1bHR9YCk7XHJcblx0XHRcdFx0XHRpZiAocmVzdWx0ID4gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VMaXN0LnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IGDov5vmiL/miJDlip/vvIzogJfml7Y6ICR7cmVzdWx0fW1zYFxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYGVudGVyIHJvb20gZmFpbGVk77yMZXJyb3IgY29kZSA9ICR7cmVzdWx0fWApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvbkV4aXRSb29tJywgKHJlYXNvbikgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgcmVhc29uTGlzdCA9IFsn5Li75Yqo6LCD55SoIGV4aXRSb29tIOmAgOaIvycsICfooqvmnI3liqHlmajouKLlh7rlvZPliY3miL/pl7QnLCAn5b2T5YmN5oi/6Ze05pW05Liq6KKr6Kej5pWjJ107XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VMaXN0LnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBg6YCA5oi/ICR7cmVhc29uTGlzdFtyZWFzb25dfWBcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0dGhpcy5tZWV0aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uRmlyc3RWaWRlb0ZyYW1lJywgKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coYOa4suafk+eahOmmluW4p+eUu+mdouWTjeW6lCA9ICR7SlNPTi5zdHJpbmdpZnkocmVzKX1gKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25SZW1vdGVVc2VyRW50ZXJSb29tJywgKHVzZXJJZCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ29uUmVtb3RlVXNlckVudGVyUm9vbScsIHVzZXJJZCk7XHJcblx0XHRcdFx0XHR0aGlzLnN0YXJ0UmVtb3RlVmlldyh1c2VySWQpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMudHJ0Y0Nsb3VkLm9uKCdvblJlbW90ZVVzZXJMZWF2ZVJvb20nLCAodXNlcklkKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLm1lZXRpbmdVc2Vycy5maW5kSW5kZXgodCA9PiB0LnVzZXJJZCA9PSB1c2VySWQpO1xyXG5cdFx0XHRcdFx0aWYgKGluZGV4ID49IDApIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZWV0aW5nVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICh0aGlzLm1lZXRpbmdVc2Vycy5sZW5ndGggPCAyKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVldGluZ1VzZXJzLnB1c2goe1xyXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICfnrYnlvoXov5vlhaUnXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VMaXN0LnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBg55So5oi356a75byA5oi/6Ze0OiB1c2VySWQgPSAke3VzZXJJZH1gXHJcblx0XHRcdFx0XHR9KVxyXG5cclxuXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50cnRjQ2xvdWQub24oJ29uVXNlclZpZGVvQXZhaWxhYmxlJywgKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0XHR1c2VySWQsXHJcblx0XHRcdFx0XHRcdGF2YWlsYWJsZVxyXG5cdFx0XHRcdFx0fSA9IHJlcztcclxuXHRcdFx0XHRcdGlmIChhdmFpbGFibGUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdGFydExvY2FsUHJldmlldygpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHVzZXJJZCAmJiBhdmFpbGFibGUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdGFydFJlbW90ZVZpZXcodXNlcklkKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RvcFJlbW90ZVZpZXcodXNlcklkKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRydGNDbG91ZC5vbignb25FeGl0Um9vbScsIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGBvbkV4aXRSb29tID0gJHtKU09OLnN0cmluZ2lmeShyZXMpfWApO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBzcmM9XCJAL3BhZ2VzL21lZXRpbmcvbWVldGluZy5jc3NcIj48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///46\n");
/***/ }),
/* 47 */
@@ -2444,6 +2474,11 @@ __webpack_require__.r(__webpack_exports__);
/***/ (function(module, exports) {
module.exports = {
+ "hide": {
+ "position": "fixed",
+ "top": "-1000",
+ "left": "-1000"
+ },
"back": {
"paddingTop": "60",
"position": "fixed",