diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index aecdc8d7..6620ffd6 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -7,7 +7,11 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; +<<<<<<< HEAD eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\n__webpack_require__(/*! uni-pages */ 7);\n__webpack_require__(/*! @dcloudio/vue-cli-plugin-uni/packages/uni-push/dist/uni-push-v1.plus.es.js */ 2632);\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 13));\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 2633));\nvar _uviewUi = _interopRequireDefault(__webpack_require__(/*! uview-ui */ 2636));\nvar _uniIcons = _interopRequireDefault(__webpack_require__(/*! ./uni_modules/uni-icons/components/uni-icons/uni-icons.vue */ 2662));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n;\n_vue.default.use(_uviewUi.default);\n// H5控制台**********\n// let consoleScript = document.createElement(\"script\");\n// consoleScript.src = \"https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js\";\n// consoleScript.onload = function () {\n// new VConsole()\n// }\n// document.head.appendChild(consoleScript);\n// // H5控制台**********\n// // import VConsole from 'vconsole'//h5控制台\n// // const vConsole = new VConsole()//h5控制台\n// // Vue.use(vConsole)//h5控制台\n_vue.default.config.productionTip = false;\n// Vue.use(VueResource)\n_App.default.mpType = 'app';\n// import UniIcons from './uni_modules/uni-icons/components/uni-icons/uni-icons.vue'\n// Vue.use('UniIcons')\n// 由于引入的icons的命名会跟项目文件里的冲突,所以随便往命名加了个2,区分开来\n\n_vue.default.component('uni-icons2', _uniIcons.default);\n//全局变量\n// Vue.prototype.mobileTopHeight = uni.getMenuButtonBoundingClientRect()?uni.getMenuButtonBoundingClientRect().top:0;\n// Vue.prototype.url_config = ''\n// Vue.prototype.COMPANY = \"longguang\"\n// Vue.prototype.COMPANY = \"nanchang\"\n// Vue.prototype.COMPANY = \"sanjiang\" //(部署三江h5需要打开/pages/projectManage/projectManage,页面onload内容)\n// Vue.prototype.COMPANY = \"zjwj\"\n// Vue.prototype.COMPANY = \"sccr\"\n_vue.default.prototype.COMPANY = \"agjt\"; // 鞍钢集团环境\n// Vue.prototype.COMPANY = \"\" // 标准版\nif (true) {\n // 开发环境\n __f__(\"log\", '开发环境', \" at main.js:38\");\n // Vue.prototype.url_config = 'http://47.93.215.234:9809/' // 鞍钢正式地址(弃用)\n // Vue.prototype.url_config = 'http://42.180.188.17:9809/' // 鞍钢正式地址\n // Vue.prototype.url_config = 'http://42.180.188.17:11211/' // 鞍钢测试地址\n // Vue.prototype.url_config = 'http://182.90.224.237:51234/' //雄哥内网穿透地址\n // Vue.prototype.url_config = 'http://jxj.zhgdyun.com:61212/' //杰哥内网穿透地址\n // Vue.prototype.url_config = ' http://192.168.34.221:28888/' //郭圣雄本地\n // Vue.prototype.url_config = ' http://192.168.34.221:9111/' //郭圣雄本地\n _vue.default.prototype.url_config = 'http://182.90.224.237:51234/'; //郭圣雄本地\n // Vue.prototype.url_config = 'http://192.168.34.155:19111/' //彭洁本地\n // Vue.prototype.work_url = 'http://47.93.215.234:19997' // 工作流线上地址(弃用)\n // Vue.prototype.work_url = 'http://42.180.188.17:19997' // 工作流线上地址\n // Vue.prototype.work_url = 'http://42.180.188.17:19097' // 工作流测试地址\n _vue.default.prototype.work_url = 'http://192.168.34.126:5173'; // 工作流地址\n // Vue.prototype.work_url = 'http://192.168.34.138:5173' // 工作流地址\n // Vue.prototype.work_url = 'http://139.9.66.234:5173' // 工作流地址\n // Vue.prototype.work_url = 'http://192.168.34.126:5173' // 工作流地址\n // Vue.prototype.url_config = 'http://8.142.139.165:7080/' // 湖里\n // Vue.prototype.url_config = 'http://139.9.66.234:5173/'\n // Vue.prototype.url_config = 'http://192.168.34.125:6023/'\n // Vue.prototype.url_config = 'http://182.90.224.237:7000/' //广西联通\n // Vue.prototype.url_config = 'http://124.71.67.160:8088/'//中建四局\n // Vue.prototype.url_config = 'http://192.168.34.148:6023' //广西联通/本地\n // Vue.prototype.url_config = 'http://223.82.100.80:9000/'\n // Vue.prototype.url_config = 'http://120.236.247.200:9000/'\n // Vue.prototype.url_config = 'http://zhgd.loganwy.com/'\n // Vue.prototype.url_config = 'http://183.60.227.61:30249/'\n // Vue.prototype.url_config = 'http://183.60.227.61:30249/'\n // Vue.prototype.url_config = 'http://124.71.178.44:9000/'\n // Vue.prototype.url_config = \"http://58.34.63.88:9090/\"\n // Vue.prototype.url_config = \"http://183.95.84.34:7185/\"\n // Vue.prototype.url_config = \"http://218.92.215.138:9090/\" //新佳城小区 123456\n // Vue.prototype.url_config = \"http://36.137.53.203:9090/\" //南昌地铁 gdjt 123456\n // Vue.prototype.url_config = 'http://124.71.178.44:8/'\n // Vue.prototype.url_config = 'http://124.71.87.250/'\n // Vue.prototype.url_config = 'http://124.71.178.44:8012' // 河南\n // Vue.prototype.url_config = 'http://182.90.224.147:100/' //演示平台\n // Vue.prototype.url_config = 'http://192.168.34.116:6023/'//邱平毅本地\n // Vue.prototype.url_config = 'http://182.90.224.147:18170'//瑞士恒通\n // Vue.prototype.url_config = 'https://jxjzhgd.yyvtl.com:8443/'//三江\n // Vue.prototype.url_config = 'http://192.168.34.221:30002'//郭圣熊本地\n // Vue.prototype.url_config = 'http://192.168.34.221:8188'//中建四局本地\n // Vue.prototype.url_config = 'http://101.43.164.214:12350'//中建五局\n // Vue.prototype.url_config = 'http://42.194.144.62:8088'//新中建四局地址\n // Vue.prototype.url_config = 'http://192.168.34.221:11111/'//郭圣雄三江本地\n // Vue.prototype.url_config = 'http://182.90.224.147:15551'//成润线上\n // Vue.prototype.url_config = 'http://118.121.198.147:23232'//成润正式\n // Vue.prototype.url_config = 'http://huli.zjzhiliao.com/jxjgdapi'//金林湾测试\n // Vue.prototype.url_config = 'http://8.136.222.164:8808/'//中科安信\n} else {}\n\n_vue.default.prototype.$formatDates = formatDates;\n//时间戳转换方法 date:时间戳数字\nfunction formatDates(date) {\n var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-MM-dd HH:mm:ss';\n if (!date) {\n return '';\n }\n if (date.length == 10) {\n date = date * 1000;\n }\n if (typeof date === 'string') {\n date = date.replace('T', ' ').replace('Z', '');\n date = new Date(date.replace(/-/g, '/'));\n }\n if (typeof date === 'number') {\n date = new Date(date);\n }\n var o = {\n 'M+': date.getMonth() + 1,\n 'd+': date.getDate(),\n 'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,\n 'H+': date.getHours(),\n 'm+': date.getMinutes(),\n 's+': date.getSeconds(),\n 'q+': Math.floor((date.getMonth() + 3) / 3),\n 'S': date.getMilliseconds()\n };\n var week = {\n '0': \"\\u65E5\",\n '1': \"\\u4E00\",\n '2': \"\\u4E8C\",\n '3': \"\\u4E09\",\n '4': \"\\u56DB\",\n '5': \"\\u4E94\",\n '6': \"\\u516D\"\n };\n if (/(y+)/.test(fmt)) {\n fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));\n }\n if (/(E+)/.test(fmt)) {\n fmt = fmt.replace(RegExp.$1, (RegExp.$1.length > 1 ? RegExp.$1.length > 2 ? \"\\u661F\\u671F\" : \"\\u5468\" : '') + week[date.getDay() + '']);\n }\n for (var k in o) {\n if (new RegExp('(' + k + ')').test(fmt)) {\n fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));\n }\n }\n return fmt;\n}\n_vue.default.prototype.sendRequest = function (param) {\n var _self = this,\n url = param.url,\n method = param.method,\n header = param.header || {\n 'content-type': \"application/json\"\n },\n data = param.data || {},\n token = \"\",\n isalert = param.isalert || false,\n hideLoading = param.hideLoading || false;\n\n //拼接完整请求地址\n var requestUrl = _vue.default.prototype.url_config + url + '?lang=' + uni.getStorageSync('language');\n if (uni.getStorageSync('userInfo') && url != 'xmgl/base/login' && url != 'xmgl/wirelessEducationQuestionSubject/getDeviceRandomEducationQuestion' && url != 'xmgl/wirelessEducationQuestionAnswer/add' && url != 'xmgl/safeEducationQuestionAnswer/getAnswerWorkerInfo' && url != 'xmgl/safeEducationQuestionAnswer/add' && url != 'xmgl/safeEducationQuestion/selectSafeEducationQuestionInfo') {\n if (JSON.parse(uni.getStorageSync('userInfo')).token) {\n token = \"Bearer \" + JSON.parse(uni.getStorageSync('userInfo')).token;\n header[\"Authorization\"] = token;\n __f__(\"log\", \"网络请求 token :\" + token, \" at main.js:214\");\n }\n }\n\n // var timestamp = Date.parse(new Date());//时间戳\n // data[\"timestamp\"] = timestamp;\n\n // data[\"device\"] = \"iosapp\";\n // data[\"ver\"] = \"1.0.0\";\n\n if (method) {\n method = method.toUpperCase(); //小写改为大写\n }\n //加密sessionStorage.getItem(\"loginData\")\n // if (uni.getStorageSync(\"loginData\") && data != {}) {\n // \tconsole.log(url+\"参数\");\n // \tconsole.log(data);\n // \tdata = encryptByDES(data);\n // }\n //用户交互:加载圈\n if (!hideLoading) {\n uni.showLoading({\n title: '加载中...'\n });\n }\n // console.log(requestUrl, \"网络请求start\");\n // console.log(data, \"网络请求data====================\");\n //网络请求\n uni.request({\n url: requestUrl,\n method: method,\n header: header,\n data: data,\n success: function success(res) {\n // console.log(\"网络请求success:\" + JSON.stringify(res.data));\n\n if (res.data.code && res.data.code != 200) {\n if (res.data.code == 401 || res.data.code == 403) {\n uni.showToast({\n title: '登录过期,请重新登录',\n icon: \"none\"\n });\n setTimeout(function () {\n uni.removeStorageSync('userInfo');\n uni.redirectTo({\n url: '/pages/login/login.vue'\n });\n }, 1000);\n } else {\n setTimeout(function () {\n if (!isalert) {\n uni.showToast({\n title: res.data.message,\n icon: \"none\"\n });\n }\n }, 200);\n }\n typeof param.error == \"function\" && param.error(Data);\n return;\n }\n var Data = res.data;\n // if (res.data.data && res.data.data.requestData) {\n // \tlet data = decryptByDES(\n // \t\tres.data.data.requestData,\n // \t\tres.data.data.encrypted\n // \t);\n // \tData.data = JSON.parse(data);\n // \tconsole.log(url + \"解密后的数据\");\n // \tconsole.log(Data);\n // }\n typeof param.success == \"function\" && param.success(Data);\n },\n fail: function fail(e) {\n __f__(\"log\", \"网络请求fail:\" + JSON.stringify(e), \" at main.js:293\");\n __f__(\"log\", requestUrl, \"requestUrl\", \" at main.js:294\");\n // uni.showModal({\n // \tcontent: \"\" + e.errMsg\n // });\n uni.showToast({\n title: '服务器开小差了呢,请您稍后再试',\n icon: 'none'\n });\n typeof param.fail == \"function\" && param.fail(e.data);\n },\n complete: function complete() {\n if (!hideLoading) {\n uni.hideLoading();\n }\n typeof param.complete == \"function\" && param.complete();\n return;\n }\n });\n};\n// 判断按钮权限的函数\n_vue.default.prototype.checkBtnPermission = function (permission) {\n var permissions = JSON.parse(uni.getStorageSync(\"userInfo\")).menuAuthority.menuList;\n // var permissions = store.state.userInfo.menuAuthority.menuList;\n permissions = permissions.filter(function (x) {\n return x.path == permission.menuPath;\n })[0];\n __f__(\"log\", permissions, '按钮权限', \" at main.js:320\");\n if (!permissions || !permissions.actionList) {\n return false;\n }\n var index = permissions.actionList.findIndex(function (x) {\n return x.actionCode == permission.key;\n });\n return index != -1 ? true : false;\n};\n_vue.default.prototype.checkMenuPermission = function (permission) {\n var permissions = JSON.parse(uni.getStorageSync(\"userInfo\")).menuAuthority.menuList;\n // var permissions = store.state.userInfo.menuAuthority.menuList;\n permissions = permissions.filter(function (x) {\n return x.path == permission.menuPath;\n })[0];\n if (!permissions) {\n return false;\n } else {\n return true;\n }\n};\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJ1c2UiLCJ1VmlldyIsImNvbmZpZyIsInByb2R1Y3Rpb25UaXAiLCJBcHAiLCJtcFR5cGUiLCJjb21wb25lbnQiLCJ1bmlJY29uczIiLCJwcm90b3R5cGUiLCJDT01QQU5ZIiwicHJvY2VzcyIsInVybF9jb25maWciLCJ3b3JrX3VybCIsIiRmb3JtYXREYXRlcyIsImZvcm1hdERhdGVzIiwiZGF0ZSIsImZtdCIsImxlbmd0aCIsInJlcGxhY2UiLCJEYXRlIiwibyIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJNYXRoIiwiZmxvb3IiLCJnZXRNaWxsaXNlY29uZHMiLCJ3ZWVrIiwidGVzdCIsIlJlZ0V4cCIsIiQxIiwiZ2V0RnVsbFllYXIiLCJzdWJzdHIiLCJnZXREYXkiLCJrIiwic2VuZFJlcXVlc3QiLCJwYXJhbSIsIl9zZWxmIiwidXJsIiwibWV0aG9kIiwiaGVhZGVyIiwiZGF0YSIsInRva2VuIiwiaXNhbGVydCIsImhpZGVMb2FkaW5nIiwicmVxdWVzdFVybCIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiSlNPTiIsInBhcnNlIiwidG9VcHBlckNhc2UiLCJzaG93TG9hZGluZyIsInRpdGxlIiwicmVxdWVzdCIsInN1Y2Nlc3MiLCJyZXMiLCJjb2RlIiwic2hvd1RvYXN0IiwiaWNvbiIsInNldFRpbWVvdXQiLCJyZW1vdmVTdG9yYWdlU3luYyIsInJlZGlyZWN0VG8iLCJtZXNzYWdlIiwiZXJyb3IiLCJEYXRhIiwiZmFpbCIsImUiLCJzdHJpbmdpZnkiLCJjb21wbGV0ZSIsImNoZWNrQnRuUGVybWlzc2lvbiIsInBlcm1pc3Npb24iLCJwZXJtaXNzaW9ucyIsIm1lbnVBdXRob3JpdHkiLCJtZW51TGlzdCIsImZpbHRlciIsIngiLCJwYXRoIiwibWVudVBhdGgiLCJhY3Rpb25MaXN0IiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJh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eEQsSUFBSUMsV0FBVyxHQUFHdkIsSUFBSSxDQUFDQyxLQUFLLENBQUNILEdBQUcsQ0FBQ0MsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUN5QixhQUFhLENBQUNDLFFBQVE7RUFDbkY7RUFDQUYsV0FBVyxHQUFHQSxXQUFXLENBQUNHLE1BQU0sQ0FDL0IsVUFBQ0MsQ0FBQztJQUFBLE9BQUtBLENBQUMsQ0FBQ0MsSUFBSSxJQUFJTixVQUFVLENBQUNPLFFBQVE7RUFBQSxFQUNwQyxDQUFDLENBQUMsQ0FBQztFQUNKLElBQUksQ0FBQ04sV0FBVyxFQUFFO0lBQ2pCLE9BQU8sS0FBSztFQUNiLENBQUMsTUFBTTtJQUNOLE9BQU8sSUFBSTtFQUNaO0FBQ0QsQ0FBQztBQUNELElBQU1hLEdBQUcsR0FBRyxJQUFJdkYsWUFBRyxtQkFDZkssWUFBRyxFQUNMO0FBQ0ZrRixHQUFHLENBQUNDLE1BQU0sRUFBRSxDIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3VuaS1wYWdlcyc7O2ltcG9ydCAnQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy91bmktcHVzaC9kaXN0L3VuaS1wdXNoLXYxLnBsdXMuZXMuanMnO2ltcG9ydCBWdWUgZnJvbSAndnVlJ1xyXG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwJ1xyXG4vLyBpbXBvcnQgVnVlUmVzb3VyY2UgZnJvbSBcInZ1ZS1yZXNvdXJjZVwiO1xyXG4vLyBtYWluLmpzXHJcbmltcG9ydCB1VmlldyBmcm9tIFwidXZpZXctdWlcIjtcclxuVnVlLnVzZSh1Vmlldyk7XHJcbi8vICBINeaOp+WItuWPsCoqKioqKioqKipcclxuLy8gbGV0IGNvbnNvbGVTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xyXG4vLyBjb25zb2xlU2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9jZG4uYm9vdGNzcy5jb20vdkNvbnNvbGUvMy4zLjQvdmNvbnNvbGUubWluLmpzXCI7XHJcbi8vIGNvbnNvbGVTY3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4vLyAgIG5ldyBWQ29uc29sZSgpXHJcbi8vIH1cclxuLy8gZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjb25zb2xlU2NyaXB0KTtcclxuLy8gLy8gIEg15o6n5Yi25Y+wKioqKioqKioqKlxyXG4vLyAvLyBpbXBvcnQgVkNvbnNvbGUgZnJvbSAndmNvbnNvbGUnLy9oNeaOp+WItuWPsFxyXG4vLyAvLyBjb25zdCB2Q29uc29sZSA9IG5ldyBWQ29uc29sZSgpLy9oNeaOp+WItuWPsFxyXG4vLyAvLyBWdWUudXNlKHZDb25zb2xlKS8vaDXmjqfliLblj7BcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuLy8gVnVlLnVzZShWdWVSZXNvdXJjZSlcclxuQXBwLm1wVHlwZSA9ICdhcHAnXHJcbi8vIGltcG9ydCBVbmlJY29ucyBmcm9tICcuL3VuaV9tb2R1bGVzL3VuaS1pY29ucy9jb21wb25lbnRzL3VuaS1pY29ucy91bmktaWNvbnMudnVlJ1xyXG4vLyBWdWUudXNlKCdVbmlJY29ucycpXHJcbi8vIOeUseS6juW8leWFpeeahGljb25z55qE5ZG95ZCN5Lya6Lef6aG555uu5paH5Lu26YeM55qE5Yay56qB77yM5omA5Lul6ZqP5L6/5b6A5ZG95ZCN5Yqg5LqG5LiqMu+8jOWMuuWIhuW8gOadpVxyXG5pbXBvcnQgdW5pSWNvbnMyIGZyb20gJy4vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL3VuaS1pY29ucy52dWUnXHJcblZ1ZS5jb21wb25lbnQoJ3VuaS1pY29uczInLCB1bmlJY29uczIpXHJcbi8v5YWo5bGA5Y+Y6YePXHJcbi8vIFZ1ZS5wcm90b3R5cGUubW9iaWxlVG9wSGVpZ2h0ID0gdW5pLmdldE1lbnVCdXR0b25Cb3VuZGluZ0NsaWVudFJlY3QoKT91bmkuZ2V0TWVudUJ1dHRvbkJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDowO1xyXG4vLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnJ1xyXG4vLyBWdWUucHJvdG90eXBlLkNPTVBBTlkgPSBcImxvbmdndWFuZ1wiXHJcbi8vIFZ1ZS5wcm90b3R5cGUuQ09NUEFOWSA9IFwibmFuY2hhbmdcIlxyXG4vLyBWdWUucHJvdG90eXBlLkNPTVBBTlkgPSBcInNhbmppYW5nXCIgLy/vvIjpg6jnvbLkuInmsZ9oNemcgOimgeaJk+W8gC9wYWdlcy9wcm9qZWN0TWFuYWdlL3Byb2plY3RNYW5hZ2XvvIzpobXpnaJvbmxvYWTlhoXlrrnvvIlcclxuLy8gVnVlLnByb3RvdHlwZS5DT01QQU5ZID0gXCJ6andqXCJcclxuLy8gVnVlLnByb3RvdHlwZS5DT01QQU5ZID0gXCJzY2NyXCJcclxuVnVlLnByb3RvdHlwZS5DT01QQU5ZID0gXCJhZ2p0XCIgLy8g6Z6N6ZKi6ZuG5Zui546v5aKDXHJcbi8vIFZ1ZS5wcm90b3R5cGUuQ09NUEFOWSA9IFwiXCIgLy8g5qCH5YeG54mIXHJcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xyXG5cdC8vIOW8gOWPkeeOr+Wig1xyXG5cdGNvbnNvbGUubG9nKCflvIDlj5Hnjq/looMnKVxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vNDcuOTMuMjE1LjIzNDo5ODA5LycgLy8g6Z6N6ZKi5q2j5byP5Zyw5Z2A77yI5byD55So77yJXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly80Mi4xODAuMTg4LjE3Ojk4MDkvJyAvLyDpno3pkqLmraPlvI/lnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6MTEyMTEvJyAvLyDpno3pkqLmtYvor5XlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMjM3OjUxMjM0LycgLy/pm4Tlk6XlhoXnvZHnqb/pgI/lnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovL2p4ai56aGdkeXVuLmNvbTo2MTIxMi8nIC8v5p2w5ZOl5YaF572R56m/6YCP5Zyw5Z2AXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJyBodHRwOi8vMTkyLjE2OC4zNC4yMjE6Mjg4ODgvJyAvL+mDreWco+mbhOacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICcgaHR0cDovLzE5Mi4xNjguMzQuMjIxOjkxMTEvJyAvL+mDreWco+mbhOacrOWcsFxyXG5cdFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4yMzc6NTEyMzQvJyAvL+mDreWco+mbhOacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xNTU6MTkxMTEvJyAvL+W9rea0geacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzQ3LjkzLjIxNS4yMzQ6MTk5OTcnIC8vIOW3peS9nOa1gee6v+S4iuWcsOWdgO+8iOW8g+eUqO+8iVxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6MTk5OTcnIC8vIOW3peS9nOa1gee6v+S4iuWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6MTkwOTcnIC8vIOW3peS9nOa1gea1i+ivleWcsOWdgFxyXG5cdFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTI2OjUxNzMnIC8vIOW3peS9nOa1geWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTM4OjUxNzMnIC8vIOW3peS9nOa1geWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzEzOS45LjY2LjIzNDo1MTczJyAvLyDlt6XkvZzmtYHlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjEyNjo1MTczJyAvLyDlt6XkvZzmtYHlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzguMTQyLjEzOS4xNjU6NzA4MC8nIC8vIOa5lumHjFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTM5LjkuNjYuMjM0OjUxNzMvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xMjU6NjAyMy8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xODIuOTAuMjI0LjIzNzo3MDAwLycgLy/lub/opb/ogZTpgJpcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS42Ny4xNjA6ODA4OC8nLy/kuK3lu7rlm5vlsYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTQ4OjYwMjMnIC8v5bm/6KW/6IGU6YCaL+acrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMjIzLjgyLjEwMC44MDo5MDAwLydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyMC4yMzYuMjQ3LjIwMDo5MDAwLydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovL3poZ2QubG9nYW53eS5jb20vJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgzLjYwLjIyNy42MTozMDI0OS8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xODMuNjAuMjI3LjYxOjMwMjQ5LydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS4xNzguNDQ6OTAwMC8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vNTguMzQuNjMuODg6OTA5MC9cIlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9IFwiaHR0cDovLzE4My45NS44NC4zNDo3MTg1L1wiXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vMjE4LjkyLjIxNS4xMzg6OTA5MC9cIiAgIC8v5paw5L2z5Z+O5bCP5Yy6ICAgMTIzNDU2XHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vMzYuMTM3LjUzLjIwMzo5MDkwL1wiICAvL+WNl+aYjOWcsOmTgSAgZ2RqdCAgIDEyMzQ1NlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTI0LjcxLjE3OC40NDo4LydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS44Ny4yNTAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTI0LjcxLjE3OC40NDo4MDEyJyAvLyDmsrPljZdcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjEwMC8nIC8v5ryU56S65bmz5Y+wXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjExNjo2MDIzLycvL+mCseW5s+avheacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4xNDc6MTgxNzAnLy/nkZ7lo6vmgZLpgJpcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgID0gJ2h0dHBzOi8vanhqemhnZC55eXZ0bC5jb206ODQ0My8nLy/kuInmsZ9cclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMjIxOjMwMDAyJy8v6YOt5Zyj54aK5pys5ZywXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMTo4MTg4Jy8v5Lit5bu65Zub5bGA5pys5ZywXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMDEuNDMuMTY0LjIxNDoxMjM1MCcvL+S4reW7uuS6lOWxgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vNDIuMTk0LjE0NC42Mjo4MDg4Jy8v5paw5Lit5bu65Zub5bGA5Zyw5Z2AXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMToxMTExMS8nLy/pg63lnKPpm4TkuInmsZ/mnKzlnLBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjE1NTUxJy8v5oiQ5ram57q/5LiKXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMTguMTIxLjE5OC4xNDc6MjMyMzInLy/miJDmtqbmraPlvI9cclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovL2h1bGkuemp6aGlsaWFvLmNvbS9qeGpnZGFwaScvL+mHkeael+a5vua1i+ivlVxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vOC4xMzYuMjIyLjE2NDo4ODA4LycvL+S4reenkeWuieS/oVxyXG5cdFxyXG5cclxufSBlbHNlIHtcclxuXHQvLyDnlJ/kuqfnjq/looNcclxuXHRjb25zb2xlLmxvZygn55Sf5Lqn546v5aKDJylcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEwLjE2OC4xLjEwNToxMTExMS8nIC8vIOe6v+S4iuWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTAuMTY4LjEuMTA0OjExMTExLycgLy8g57q/5LiK5Zyw5Z2AXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly80Ny45My4yMTUuMjM0Ojk4MDkvJyAvLyDpno3pkqLnur/kuIrlnLDlnYDvvIjlvIPnlKjvvIlcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6OTgwOS8nIC8vIOmejemSoue6v+S4iuWcsOWdgFxyXG5cdFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vNDIuMTgwLjE4OC4xNzoxMTIxMS8nIC8vIOmejemSoue6v+S4iua1i+ivleWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4yMzc6NTEyMzQvJyAvLyDnmb7oibLkuInmoIfmrrVcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMjIxOjkxMTEvJyAvLyDnmb7oibLkuInmoIfmrrVcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly80Ny45My4yMTUuMjM0OjE5OTk3JyAvLyDlt6XkvZzmtYHnur/kuIrlnLDlnYDvvIjlvIPnlKjvvIlcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly80Mi4xODAuMTg4LjE3OjE5OTk3JyAvLyDlt6XkvZzmtYHnur/kuIrlnLDlnYBcclxuXHRWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly80Mi4xODAuMTg4LjE3OjE5MDk3JyAvLyDlt6XkvZzmtYHmtYvor5XlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjEzOTo1MTczJyAvLyDlt6XkvZzmtYHlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjEwMC8nIC8v5ryU56S65bmz5Y+wXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0naHR0cDovLzEyNC43MS4xNzguNDQ6ODAxMi8nIC8vIOays+WNl1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vOC4xNDIuMTM5LjE2NTo3MDgwLycgLy/muZbph4xcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEzOS45LjY2LjIzNDo4LydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTI1OjYwMjMvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4yMzc6NzAwMC8nIC8v5bm/6KW/6IGU6YCaXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMjQuNzEuNjcuMTYwOjgwODgvJyAvL+S4reW7uuWbm+WxgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xNDg6NjAyMycgLy/lub/opb/ogZTpgJov5pys5ZywXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8yMjMuODIuMTAwLjgwOjkwMDAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTIwLjIzNi4yNDcuMjAwOjkwMDAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9IFwiaHR0cDovLzU4LjM0LjYzLjg4OjkwOTAvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS4xNzguNDQ6OTAwMC8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vMTgzLjk1Ljg0LjM0OjcxODUvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSBcImh0dHA6Ly8zNi4xMzcuNTMuMjAzOjkwOTAvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTI1OjYwMjMvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgzLjYwLjIyNy42MTozMDI0OS8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly96aGdkLmxvZ2Fud3kuY29tLydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSBcImh0dHA6Ly8zNi4xMzcuNTMuMjAzOjkwOTAvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS44Ny4yNTAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xMTY6NjAyMy8nLy/pgrHlubPmr4XmnKzlnLBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjE4MTcwLycvL+eRnuWjq+aBkumAmlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwczovL2p4anpoZ2QueXl2dGwuY29tOjg0NDMvJy8v5LiJ5rGfXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMTo4MTg4LycvL+S4reW7uuWbm+WxgOacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZz0gJ2h0dHA6Ly8xMDEuNDMuMTY0LjIxNDoxMjM1MC8nLy/kuK3lu7rkupTlsYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzQyLjE5NC4xNDQuNjI6ODA4OC8nLy/mlrDkuK3lu7rlm5vlsYDlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMjIxOjExMTExLycvL+mDreWco+mbhOS4ieaxn+acrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4xNDc6MTU1NTEvJy8v5oiQ5ram57q/5LiKXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMTguMTIxLjE5OC4xNDc6MjMyMzIvJy8v5oiQ5ram5q2j5byPXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMTozMDAwMi8nLy/pg63lnKPpm4TmnKzlnLBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEwMS40My4xNjQuMjE0OjQ1MDIyLycvL+ebmOmUplxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgzLjI0OS4yMjQuMTE4OjkwMDAvJy8vIOWYieWFtOmhueebrlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vanhqLnpoZ2R5dW4uY29tOjMwMjUwLyMvJy8vIOa8lOekuuW5s+WPsEg1XHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMDEuNDMuMTY0LjIxNDoxMTExMS8nLy8g55m+6Imy5LiJ5qCH5q61XHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly84LjEzNi4yMjIuMTY0Ojg4MDgvJy8v5Lit56eR5a6J5L+hXHJcbn1cclxuXHJcblZ1ZS5wcm90b3R5cGUuJGZvcm1hdERhdGVzID0gZm9ybWF0RGF0ZXM7XHJcbi8v5pe26Ze05oiz6L2s5o2i5pa55rOVICAgIGRhdGU65pe26Ze05oiz5pWw5a2XXHJcbmZ1bmN0aW9uIGZvcm1hdERhdGVzKGRhdGUsIGZtdCA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJykge1xyXG5cclxuXHRpZiAoIWRhdGUpIHtcclxuXHRcdHJldHVybiAnJ1xyXG5cdH1cclxuXHRpZiAoZGF0ZS5sZW5ndGggPT0gMTApIHtcclxuXHRcdGRhdGUgPSBkYXRlICogMTAwMDtcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xyXG5cdFx0ZGF0ZSA9IGRhdGUucmVwbGFjZSgnVCcsICcgJykucmVwbGFjZSgnWicsICcnKTtcclxuXHRcdGRhdGUgPSBuZXcgRGF0ZShkYXRlLnJlcGxhY2UoLy0vZywgJy8nKSlcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xyXG5cdFx0ZGF0ZSA9IG5ldyBEYXRlKGRhdGUpXHJcblx0fVxyXG5cdHZhciBvID0ge1xyXG5cdFx0J00rJzogZGF0ZS5nZXRNb250aCgpICsgMSxcclxuXHRcdCdkKyc6IGRhdGUuZ2V0RGF0ZSgpLFxyXG5cdFx0J2grJzogZGF0ZS5nZXRIb3VycygpICUgMTIgPT09IDAgPyAxMiA6IGRhdGUuZ2V0SG91cnMoKSAlIDEyLFxyXG5cdFx0J0grJzogZGF0ZS5nZXRIb3VycygpLFxyXG5cdFx0J20rJzogZGF0ZS5nZXRNaW51dGVzKCksXHJcblx0XHQncysnOiBkYXRlLmdldFNlY29uZHMoKSxcclxuXHRcdCdxKyc6IE1hdGguZmxvb3IoKGRhdGUuZ2V0TW9udGgoKSArIDMpIC8gMyksXHJcblx0XHQnUyc6IGRhdGUuZ2V0TWlsbGlzZWNvbmRzKClcclxuXHR9XHJcblx0dmFyIHdlZWsgPSB7XHJcblx0XHQnMCc6ICdcXHU2NWU1JyxcclxuXHRcdCcxJzogJ1xcdTRlMDAnLFxyXG5cdFx0JzInOiAnXFx1NGU4YycsXHJcblx0XHQnMyc6ICdcXHU0ZTA5JyxcclxuXHRcdCc0JzogJ1xcdTU2ZGInLFxyXG5cdFx0JzUnOiAnXFx1NGU5NCcsXHJcblx0XHQnNic6ICdcXHU1MTZkJ1xyXG5cdH1cclxuXHRpZiAoLyh5KykvLnRlc3QoZm10KSkge1xyXG5cdFx0Zm10ID0gZm10LnJlcGxhY2UoUmVnRXhwLiQxLCAoZGF0ZS5nZXRGdWxsWWVhcigpICsgJycpLnN1YnN0cig0IC0gUmVnRXhwLiQxLmxlbmd0aCkpXHJcblx0fVxyXG5cdGlmICgvKEUrKS8udGVzdChmbXQpKSB7XHJcblx0XHRmbXQgPSBmbXQucmVwbGFjZShSZWdFeHAuJDEsICgoUmVnRXhwLiQxLmxlbmd0aCA+IDEpID8gKFJlZ0V4cC4kMS5sZW5ndGggPiAyID8gJ1xcdTY2MWZcXHU2NzFmJyA6ICdcXHU1NDY4JykgOlxyXG5cdFx0XHRcdCcnKSArXHJcblx0XHRcdHdlZWtbZGF0ZS5nZXREYXkoKSArICcnXSlcclxuXHR9XHJcblx0Zm9yICh2YXIgayBpbiBvKSB7XHJcblx0XHRpZiAobmV3IFJlZ0V4cCgnKCcgKyBrICsgJyknKS50ZXN0KGZtdCkpIHtcclxuXHRcdFx0Zm10ID0gZm10LnJlcGxhY2UoUmVnRXhwLiQxLCAoUmVnRXhwLiQxLmxlbmd0aCA9PT0gMSkgPyAob1trXSkgOiAoKCcwMCcgKyBvW2tdKS5zdWJzdHIoKCcnICsgb1trXSkubGVuZ3RoKSkpXHJcblx0XHR9XHJcblx0fVxyXG5cdHJldHVybiBmbXRcclxufVxyXG5cclxuVnVlLnByb3RvdHlwZS5zZW5kUmVxdWVzdCA9IGZ1bmN0aW9uKHBhcmFtKSB7XHJcblx0dmFyIF9zZWxmID0gdGhpcyxcclxuXHRcdHVybCA9IHBhcmFtLnVybCxcclxuXHRcdG1ldGhvZCA9IHBhcmFtLm1ldGhvZCxcclxuXHRcdGhlYWRlciA9IHBhcmFtLmhlYWRlciB8fCB7XHJcblx0XHRcdCdjb250ZW50LXR5cGUnOiBcImFwcGxpY2F0aW9uL2pzb25cIlxyXG5cdFx0fSxcclxuXHJcblx0XHRkYXRhID0gcGFyYW0uZGF0YSB8fCB7fSxcclxuXHRcdHRva2VuID0gXCJcIixcclxuXHRcdGlzYWxlcnQgPSBwYXJhbS5pc2FsZXJ0IHx8IGZhbHNlLFxyXG5cdFx0aGlkZUxvYWRpbmcgPSBwYXJhbS5oaWRlTG9hZGluZyB8fCBmYWxzZTtcclxuXHJcblx0Ly/mi7zmjqXlrozmlbTor7fmsYLlnLDlnYBcclxuXHR2YXIgcmVxdWVzdFVybCA9IFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyArIHVybCArICc/bGFuZz0nICsgdW5pLmdldFN0b3JhZ2VTeW5jKCdsYW5ndWFnZScpO1xyXG5cdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJykgJiYgdXJsICE9ICd4bWdsL2Jhc2UvbG9naW4nICYmIHVybCAhPVxyXG5cdFx0J3htZ2wvd2lyZWxlc3NFZHVjYXRpb25RdWVzdGlvblN1YmplY3QvZ2V0RGV2aWNlUmFuZG9tRWR1Y2F0aW9uUXVlc3Rpb24nICYmIHVybCAhPVxyXG5cdFx0J3htZ2wvd2lyZWxlc3NFZHVjYXRpb25RdWVzdGlvbkFuc3dlci9hZGQnICYmIHVybCAhPVxyXG5cdFx0J3htZ2wvc2FmZUVkdWNhdGlvblF1ZXN0aW9uQW5zd2VyL2dldEFuc3dlcldvcmtlckluZm8nICYmIHVybCAhPSAneG1nbC9zYWZlRWR1Y2F0aW9uUXVlc3Rpb25BbnN3ZXIvYWRkJyAmJlxyXG5cdFx0dXJsICE9ICd4bWdsL3NhZmVFZHVjYXRpb25RdWVzdGlvbi9zZWxlY3RTYWZlRWR1Y2F0aW9uUXVlc3Rpb25JbmZvJykge1xyXG5cdFx0aWYgKEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpKS50b2tlbikge1xyXG5cdFx0XHR0b2tlbiA9IFwiQmVhcmVyIFwiICsgSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJykpLnRva2VuO1xyXG5cdFx0XHRoZWFkZXJbXCJBdXRob3JpemF0aW9uXCJdID0gdG9rZW5cclxuXHRcdFx0Y29uc29sZS5sb2coXCLnvZHnu5zor7fmsYIgdG9rZW4gOlwiICsgdG9rZW4pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gdmFyIHRpbWVzdGFtcCA9IERhdGUucGFyc2UobmV3IERhdGUoKSk7Ly/ml7bpl7TmiLNcclxuXHQvLyBkYXRhW1widGltZXN0YW1wXCJdID0gdGltZXN0YW1wO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblx0Ly8gZGF0YVtcImRldmljZVwiXSA9IFwiaW9zYXBwXCI7XHJcblx0Ly8gZGF0YVtcInZlclwiXSA9IFwiMS4wLjBcIjtcclxuXHJcblx0aWYgKG1ldGhvZCkge1xyXG5cdFx0bWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7IC8v5bCP5YaZ5pS55Li65aSn5YaZXHJcblx0fVxyXG5cdC8v5Yqg5a+Gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImxvZ2luRGF0YVwiKVxyXG5cdC8vIGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJsb2dpbkRhdGFcIikgJiYgZGF0YSAhPSB7fSkge1xyXG5cdC8vIFx0Y29uc29sZS5sb2codXJsK1wi5Y+C5pWwXCIpO1xyXG5cdC8vIFx0Y29uc29sZS5sb2coZGF0YSk7XHJcblx0Ly8gXHRkYXRhID0gZW5jcnlwdEJ5REVTKGRhdGEpO1xyXG5cdC8vIH1cclxuXHQvL+eUqOaIt+S6pOS6kjrliqDovb3lnIhcclxuXHRpZiAoIWhpZGVMb2FkaW5nKSB7XHJcblx0XHR1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdFx0XHR0aXRsZTogJ+WKoOi9veS4rS4uLidcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvLyBjb25zb2xlLmxvZyhyZXF1ZXN0VXJsLCBcIue9kee7nOivt+axgnN0YXJ0XCIpO1xyXG5cdC8vIGNvbnNvbGUubG9nKGRhdGEsIFwi572R57uc6K+35rGCZGF0YT09PT09PT09PT09PT09PT09PT09XCIpO1xyXG5cdC8v572R57uc6K+35rGCXHJcblx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0dXJsOiByZXF1ZXN0VXJsLFxyXG5cdFx0bWV0aG9kOiBtZXRob2QsXHJcblx0XHRoZWFkZXI6IGhlYWRlcixcclxuXHRcdGRhdGE6IGRhdGEsXHJcblx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhcIue9kee7nOivt+axgnN1Y2Nlc3M6XCIgKyBKU09OLnN0cmluZ2lmeShyZXMuZGF0YSkpO1xyXG5cclxuXHRcdFx0aWYgKHJlcy5kYXRhLmNvZGUgJiYgcmVzLmRhdGEuY29kZSAhPSAyMDApIHtcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEuY29kZSA9PSA0MDEgfHwgcmVzLmRhdGEuY29kZSA9PSA0MDMpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+eZu+W9lei/h+acnyzor7fph43mlrDnmbvlvZUnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIlxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5yZW1vdmVTdG9yYWdlU3luYygndXNlckluZm8nKVxyXG5cdFx0XHRcdFx0XHR1bmkucmVkaXJlY3RUbyh7XHJcblx0XHRcdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2xvZ2luL2xvZ2luLnZ1ZSdcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdGlmICghaXNhbGVydCkge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5kYXRhLm1lc3NhZ2UsXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIlxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sIDIwMClcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHR5cGVvZiBwYXJhbS5lcnJvciA9PSBcImZ1bmN0aW9uXCIgJiYgcGFyYW0uZXJyb3IoRGF0YSk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGxldCBEYXRhID0gcmVzLmRhdGE7XHJcblx0XHRcdC8vIGlmIChyZXMuZGF0YS5kYXRhICYmIHJlcy5kYXRhLmRhdGEucmVxdWVzdERhdGEpIHtcclxuXHRcdFx0Ly8gXHRsZXQgZGF0YSA9IGRlY3J5cHRCeURFUyhcclxuXHRcdFx0Ly8gXHRcdHJlcy5kYXRhLmRhdGEucmVxdWVzdERhdGEsXHJcblx0XHRcdC8vIFx0XHRyZXMuZGF0YS5kYXRhLmVuY3J5cHRlZFxyXG5cdFx0XHQvLyBcdCk7XHJcblx0XHRcdC8vIFx0RGF0YS5kYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcclxuXHRcdFx0Ly8gXHRjb25zb2xlLmxvZyh1cmwgKyBcIuino+WvhuWQjueahOaVsOaNrlwiKTtcclxuXHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhEYXRhKTtcclxuXHRcdFx0Ly8gfVxyXG5cdFx0XHR0eXBlb2YgcGFyYW0uc3VjY2VzcyA9PSBcImZ1bmN0aW9uXCIgJiYgcGFyYW0uc3VjY2VzcyhEYXRhKTtcclxuXHRcdH0sXHJcblx0XHRmYWlsOiAoZSkgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcIue9kee7nOivt+axgmZhaWw6XCIgKyBKU09OLnN0cmluZ2lmeShlKSk7XHJcblx0XHRcdGNvbnNvbGUubG9nKHJlcXVlc3RVcmwsIFwicmVxdWVzdFVybFwiKTtcclxuXHRcdFx0Ly8gdW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdC8vIFx0Y29udGVudDogXCJcIiArIGUuZXJyTXNnXHJcblx0XHRcdC8vIH0pO1xyXG5cdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8gOWwj+W3ruS6huWRou+8jOivt+aCqOeojeWQjuWGjeivlScsXHJcblx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdH0pXHJcblx0XHRcdHR5cGVvZiBwYXJhbS5mYWlsID09IFwiZnVuY3Rpb25cIiAmJiBwYXJhbS5mYWlsKGUuZGF0YSk7XHJcblx0XHR9LFxyXG5cdFx0Y29tcGxldGU6ICgpID0+IHtcclxuXHRcdFx0aWYgKCFoaWRlTG9hZGluZykge1xyXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHR5cGVvZiBwYXJhbS5jb21wbGV0ZSA9PSBcImZ1bmN0aW9uXCIgJiYgcGFyYW0uY29tcGxldGUoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG59XHJcbi8vIOWIpOaWreaMiemSruadg+mZkOeahOWHveaVsFxyXG5WdWUucHJvdG90eXBlLmNoZWNrQnRuUGVybWlzc2lvbiA9IGZ1bmN0aW9uKHBlcm1pc3Npb24pIHtcclxuXHR2YXIgcGVybWlzc2lvbnMgPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYyhcInVzZXJJbmZvXCIpKS5tZW51QXV0aG9yaXR5Lm1lbnVMaXN0O1xyXG5cdC8vIHZhciBwZXJtaXNzaW9ucyA9IHN0b3JlLnN0YXRlLnVzZXJJbmZvLm1lbnVBdXRob3JpdHkubWVudUxpc3Q7XHJcblx0cGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucy5maWx0ZXIoXHJcblx0XHQoeCkgPT4geC5wYXRoID09IHBlcm1pc3Npb24ubWVudVBhdGhcclxuXHQpWzBdO1xyXG5cdGNvbnNvbGUubG9nKHBlcm1pc3Npb25zLCfmjInpkq7mnYPpmZAnKVxyXG5cdGlmICghcGVybWlzc2lvbnMgfHwgIXBlcm1pc3Npb25zLmFjdGlvbkxpc3QpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblx0bGV0IGluZGV4ID0gcGVybWlzc2lvbnMuYWN0aW9uTGlzdC5maW5kSW5kZXgoXHJcblx0XHQoeCkgPT4geC5hY3Rpb25Db2RlID09IHBlcm1pc3Npb24ua2V5XHJcblx0KVxyXG5cdHJldHVybiBpbmRleCAhPSAtMSA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5WdWUucHJvdG90eXBlLmNoZWNrTWVudVBlcm1pc3Npb24gPSBmdW5jdGlvbihwZXJtaXNzaW9uKSB7XHJcblx0dmFyIHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKSkubWVudUF1dGhvcml0eS5tZW51TGlzdDtcclxuXHQvLyB2YXIgcGVybWlzc2lvbnMgPSBzdG9yZS5zdGF0ZS51c2VySW5mby5tZW51QXV0aG9yaXR5Lm1lbnVMaXN0O1xyXG5cdHBlcm1pc3Npb25zID0gcGVybWlzc2lvbnMuZmlsdGVyKFxyXG5cdFx0KHgpID0+IHgucGF0aCA9PSBwZXJtaXNzaW9uLm1lbnVQYXRoXHJcblx0KVswXTtcclxuXHRpZiAoIXBlcm1pc3Npb25zKSB7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxufVxyXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcclxuXHQuLi5BcHBcclxufSlcclxuYXBwLiRtb3VudCgpIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0\n"); +======= +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\n__webpack_require__(/*! uni-pages */ 7);\n__webpack_require__(/*! @dcloudio/vue-cli-plugin-uni/packages/uni-push/dist/uni-push-v1.plus.es.js */ 2632);\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 13));\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 2633));\nvar _uviewUi = _interopRequireDefault(__webpack_require__(/*! uview-ui */ 2636));\nvar _uniIcons = _interopRequireDefault(__webpack_require__(/*! ./uni_modules/uni-icons/components/uni-icons/uni-icons.vue */ 2662));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n;\n_vue.default.use(_uviewUi.default);\n// H5控制台**********\n// let consoleScript = document.createElement(\"script\");\n// consoleScript.src = \"https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js\";\n// consoleScript.onload = function () {\n// new VConsole()\n// }\n// document.head.appendChild(consoleScript);\n// // H5控制台**********\n// // import VConsole from 'vconsole'//h5控制台\n// // const vConsole = new VConsole()//h5控制台\n// // Vue.use(vConsole)//h5控制台\n_vue.default.config.productionTip = false;\n// Vue.use(VueResource)\n_App.default.mpType = 'app';\n// import UniIcons from './uni_modules/uni-icons/components/uni-icons/uni-icons.vue'\n// Vue.use('UniIcons')\n// 由于引入的icons的命名会跟项目文件里的冲突,所以随便往命名加了个2,区分开来\n\n_vue.default.component('uni-icons2', _uniIcons.default);\n//全局变量\n// Vue.prototype.mobileTopHeight = uni.getMenuButtonBoundingClientRect()?uni.getMenuButtonBoundingClientRect().top:0;\n// Vue.prototype.url_config = ''\n// Vue.prototype.COMPANY = \"longguang\"\n// Vue.prototype.COMPANY = \"nanchang\"\n// Vue.prototype.COMPANY = \"sanjiang\" //(部署三江h5需要打开/pages/projectManage/projectManage,页面onload内容)\n// Vue.prototype.COMPANY = \"zjwj\"\n// Vue.prototype.COMPANY = \"sccr\"\n_vue.default.prototype.COMPANY = \"agjt\"; // 鞍钢集团环境\n// Vue.prototype.COMPANY = \"\" // 标准版\nif (true) {\n // 开发环境\n __f__(\"log\", '开发环境', \" at main.js:38\");\n // Vue.prototype.url_config = 'http://47.93.215.234:9809/' // 鞍钢正式地址(弃用)\n // Vue.prototype.url_config = 'http://42.180.188.17:9809/' // 鞍钢正式地址\n // Vue.prototype.url_config = 'http://42.180.188.17:11211/' // 鞍钢测试地址\n // Vue.prototype.url_config = 'http://182.90.224.237:51234/' //雄哥内网穿透地址\n // Vue.prototype.url_config = 'http://jxj.zhgdyun.com:61212/' //杰哥内网穿透地址\n // Vue.prototype.url_config = ' http://192.168.34.221:28888/' //郭圣雄本地\n _vue.default.prototype.url_config = ' http://192.168.34.221:9111/'; //郭圣雄本地\n // Vue.prototype.url_config = 'http://182.90.224.237:51234/' //郭圣雄本地\n // Vue.prototype.url_config = 'http://192.168.34.155:19111/' //彭洁本地\n // Vue.prototype.work_url = 'http://47.93.215.234:19997' // 工作流线上地址(弃用)\n // Vue.prototype.work_url = 'http://42.180.188.17:19997' // 工作流线上地址\n // Vue.prototype.work_url = 'http://42.180.188.17:19097' // 工作流测试地址\n _vue.default.prototype.work_url = 'http://192.168.34.126:5173'; // 工作流地址\n // Vue.prototype.work_url = 'http://192.168.34.138:5173' // 工作流地址\n // Vue.prototype.work_url = 'http://139.9.66.234:5173' // 工作流地址\n // Vue.prototype.work_url = 'http://192.168.34.126:5173' // 工作流地址\n // Vue.prototype.url_config = 'http://8.142.139.165:7080/' // 湖里\n // Vue.prototype.url_config = 'http://139.9.66.234:5173/'\n // Vue.prototype.url_config = 'http://192.168.34.125:6023/'\n // Vue.prototype.url_config = 'http://182.90.224.237:7000/' //广西联通\n // Vue.prototype.url_config = 'http://124.71.67.160:8088/'//中建四局\n // Vue.prototype.url_config = 'http://192.168.34.148:6023' //广西联通/本地\n // Vue.prototype.url_config = 'http://223.82.100.80:9000/'\n // Vue.prototype.url_config = 'http://120.236.247.200:9000/'\n // Vue.prototype.url_config = 'http://zhgd.loganwy.com/'\n // Vue.prototype.url_config = 'http://183.60.227.61:30249/'\n // Vue.prototype.url_config = 'http://183.60.227.61:30249/'\n // Vue.prototype.url_config = 'http://124.71.178.44:9000/'\n // Vue.prototype.url_config = \"http://58.34.63.88:9090/\"\n // Vue.prototype.url_config = \"http://183.95.84.34:7185/\"\n // Vue.prototype.url_config = \"http://218.92.215.138:9090/\" //新佳城小区 123456\n // Vue.prototype.url_config = \"http://36.137.53.203:9090/\" //南昌地铁 gdjt 123456\n // Vue.prototype.url_config = 'http://124.71.178.44:8/'\n // Vue.prototype.url_config = 'http://124.71.87.250/'\n // Vue.prototype.url_config = 'http://124.71.178.44:8012' // 河南\n // Vue.prototype.url_config = 'http://182.90.224.147:100/' //演示平台\n // Vue.prototype.url_config = 'http://192.168.34.116:6023/'//邱平毅本地\n // Vue.prototype.url_config = 'http://182.90.224.147:18170'//瑞士恒通\n // Vue.prototype.url_config = 'https://jxjzhgd.yyvtl.com:8443/'//三江\n // Vue.prototype.url_config = 'http://192.168.34.221:30002'//郭圣熊本地\n // Vue.prototype.url_config = 'http://192.168.34.221:8188'//中建四局本地\n // Vue.prototype.url_config = 'http://101.43.164.214:12350'//中建五局\n // Vue.prototype.url_config = 'http://42.194.144.62:8088'//新中建四局地址\n // Vue.prototype.url_config = 'http://192.168.34.221:11111/'//郭圣雄三江本地\n // Vue.prototype.url_config = 'http://182.90.224.147:15551'//成润线上\n // Vue.prototype.url_config = 'http://118.121.198.147:23232'//成润正式\n // Vue.prototype.url_config = 'http://huli.zjzhiliao.com/jxjgdapi'//金林湾测试\n // Vue.prototype.url_config = 'http://8.136.222.164:8808/'//中科安信\n} else {}\n\n_vue.default.prototype.$formatDates = formatDates;\n//时间戳转换方法 date:时间戳数字\nfunction formatDates(date) {\n var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-MM-dd HH:mm:ss';\n if (!date) {\n return '';\n }\n if (date.length == 10) {\n date = date * 1000;\n }\n if (typeof date === 'string') {\n date = date.replace('T', ' ').replace('Z', '');\n date = new Date(date.replace(/-/g, '/'));\n }\n if (typeof date === 'number') {\n date = new Date(date);\n }\n var o = {\n 'M+': date.getMonth() + 1,\n 'd+': date.getDate(),\n 'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,\n 'H+': date.getHours(),\n 'm+': date.getMinutes(),\n 's+': date.getSeconds(),\n 'q+': Math.floor((date.getMonth() + 3) / 3),\n 'S': date.getMilliseconds()\n };\n var week = {\n '0': \"\\u65E5\",\n '1': \"\\u4E00\",\n '2': \"\\u4E8C\",\n '3': \"\\u4E09\",\n '4': \"\\u56DB\",\n '5': \"\\u4E94\",\n '6': \"\\u516D\"\n };\n if (/(y+)/.test(fmt)) {\n fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));\n }\n if (/(E+)/.test(fmt)) {\n fmt = fmt.replace(RegExp.$1, (RegExp.$1.length > 1 ? RegExp.$1.length > 2 ? \"\\u661F\\u671F\" : \"\\u5468\" : '') + week[date.getDay() + '']);\n }\n for (var k in o) {\n if (new RegExp('(' + k + ')').test(fmt)) {\n fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));\n }\n }\n return fmt;\n}\n_vue.default.prototype.sendRequest = function (param) {\n var _self = this,\n url = param.url,\n method = param.method,\n header = param.header || {\n 'content-type': \"application/json\"\n },\n data = param.data || {},\n token = \"\",\n isalert = param.isalert || false,\n hideLoading = param.hideLoading || false;\n\n //拼接完整请求地址\n var requestUrl = _vue.default.prototype.url_config + url + '?lang=' + uni.getStorageSync('language');\n if (uni.getStorageSync('userInfo') && url != 'xmgl/base/login' && url != 'xmgl/wirelessEducationQuestionSubject/getDeviceRandomEducationQuestion' && url != 'xmgl/wirelessEducationQuestionAnswer/add' && url != 'xmgl/safeEducationQuestionAnswer/getAnswerWorkerInfo' && url != 'xmgl/safeEducationQuestionAnswer/add' && url != 'xmgl/safeEducationQuestion/selectSafeEducationQuestionInfo') {\n if (JSON.parse(uni.getStorageSync('userInfo')).token) {\n token = \"Bearer \" + JSON.parse(uni.getStorageSync('userInfo')).token;\n header[\"Authorization\"] = token;\n __f__(\"log\", \"网络请求 token :\" + token, \" at main.js:214\");\n }\n }\n\n // var timestamp = Date.parse(new Date());//时间戳\n // data[\"timestamp\"] = timestamp;\n\n // data[\"device\"] = \"iosapp\";\n // data[\"ver\"] = \"1.0.0\";\n\n if (method) {\n method = method.toUpperCase(); //小写改为大写\n }\n //加密sessionStorage.getItem(\"loginData\")\n // if (uni.getStorageSync(\"loginData\") && data != {}) {\n // \tconsole.log(url+\"参数\");\n // \tconsole.log(data);\n // \tdata = encryptByDES(data);\n // }\n //用户交互:加载圈\n if (!hideLoading) {\n uni.showLoading({\n title: '加载中...'\n });\n }\n // console.log(requestUrl, \"网络请求start\");\n // console.log(data, \"网络请求data====================\");\n //网络请求\n uni.request({\n url: requestUrl,\n method: method,\n header: header,\n data: data,\n success: function success(res) {\n // console.log(\"网络请求success:\" + JSON.stringify(res.data));\n\n if (res.data.code && res.data.code != 200) {\n if (res.data.code == 401 || res.data.code == 403) {\n uni.showToast({\n title: '登录过期,请重新登录',\n icon: \"none\"\n });\n setTimeout(function () {\n uni.removeStorageSync('userInfo');\n uni.redirectTo({\n url: '/pages/login/login.vue'\n });\n }, 1000);\n } else {\n setTimeout(function () {\n if (!isalert) {\n uni.showToast({\n title: res.data.message,\n icon: \"none\"\n });\n }\n }, 200);\n }\n typeof param.error == \"function\" && param.error(Data);\n return;\n }\n var Data = res.data;\n // if (res.data.data && res.data.data.requestData) {\n // \tlet data = decryptByDES(\n // \t\tres.data.data.requestData,\n // \t\tres.data.data.encrypted\n // \t);\n // \tData.data = JSON.parse(data);\n // \tconsole.log(url + \"解密后的数据\");\n // \tconsole.log(Data);\n // }\n typeof param.success == \"function\" && param.success(Data);\n },\n fail: function fail(e) {\n __f__(\"log\", \"网络请求fail:\" + JSON.stringify(e), \" at main.js:293\");\n __f__(\"log\", requestUrl, \"requestUrl\", \" at main.js:294\");\n // uni.showModal({\n // \tcontent: \"\" + e.errMsg\n // });\n uni.showToast({\n title: '服务器开小差了呢,请您稍后再试',\n icon: 'none'\n });\n typeof param.fail == \"function\" && param.fail(e.data);\n },\n complete: function complete() {\n if (!hideLoading) {\n uni.hideLoading();\n }\n typeof param.complete == \"function\" && param.complete();\n return;\n }\n });\n};\n// 判断按钮权限的函数\n_vue.default.prototype.checkBtnPermission = function (permission) {\n var permissions = JSON.parse(uni.getStorageSync(\"userInfo\")).menuAuthority.menuList;\n // var permissions = store.state.userInfo.menuAuthority.menuList;\n permissions = permissions.filter(function (x) {\n return x.path == permission.menuPath;\n })[0];\n __f__(\"log\", permissions, '按钮权限', \" at main.js:320\");\n if (!permissions || !permissions.actionList) {\n return false;\n }\n var index = permissions.actionList.findIndex(function (x) {\n return x.actionCode == permission.key;\n });\n return index != -1 ? true : false;\n};\n_vue.default.prototype.checkMenuPermission = function (permission) {\n var permissions = JSON.parse(uni.getStorageSync(\"userInfo\")).menuAuthority.menuList;\n // var permissions = store.state.userInfo.menuAuthority.menuList;\n permissions = permissions.filter(function (x) {\n return x.path == permission.menuPath;\n })[0];\n if (!permissions) {\n return false;\n } else {\n return true;\n }\n};\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJ1c2UiLCJ1VmlldyIsImNvbmZpZyIsInByb2R1Y3Rpb25UaXAiLCJBcHAiLCJtcFR5cGUiLCJjb21wb25lbnQiLCJ1bmlJY29uczIiLCJwcm90b3R5cGUiLCJDT01QQU5ZIiwicHJvY2VzcyIsInVybF9jb25maWciLCJ3b3JrX3VybCIsIiRmb3JtYXREYXRlcyIsImZvcm1hdERhdGVzIiwiZGF0ZSIsImZtdCIsImxlbmd0aCIsInJlcGxhY2UiLCJEYXRlIiwibyIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJNYXRoIiwiZmxvb3IiLCJnZXRNaWxsaXNlY29uZHMiLCJ3ZWVrIiwidGVzdCIsIlJlZ0V4cCIsIiQxIiwiZ2V0RnVsbFllYXIiLCJzdWJzdHIiLCJnZXREYXkiLCJrIiwic2VuZFJlcXVlc3QiLCJwYXJhbSIsIl9zZWxmIiwidXJsIiwibWV0aG9kIiwiaGVhZGVyIiwiZGF0YSIsInRva2VuIiwiaXNhbGVydCIsImhpZGVMb2FkaW5nIiwicmVxdWVzdFVybCIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiSlNPTiIsInBhcnNlIiwidG9VcHBlckNhc2UiLCJzaG93TG9hZGluZyIsInRpdGxlIiwicmVxdWVzdCIsInN1Y2Nlc3MiLCJyZXMiLCJjb2RlIiwic2hvd1RvYXN0IiwiaWNvbiIsInNldFRpbWVvdXQiLCJyZW1vdmVTdG9yYWdlU3luYyIsInJlZGlyZWN0VG8iLCJtZXNzYWdlIiwiZXJyb3IiLCJEYXRhIiwiZmFpbCIsImUiLCJzdHJpbmdpZnkiLCJjb21wbGV0ZSIsImNoZWNrQnRuUGVybWlzc2lvbiIsInBlcm1pc3Npb24iLCJwZXJtaXNzaW9ucyIsIm1lbnVBdXRob3JpdHkiLCJtZW51TGlzdCIsImZpbHRlciIsIngiLCJwYXRoIiwibWVudVBhdGgiLCJhY3Rpb25MaXN0IiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJh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eEQsSUFBSUMsV0FBVyxHQUFHdkIsSUFBSSxDQUFDQyxLQUFLLENBQUNILEdBQUcsQ0FBQ0MsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUN5QixhQUFhLENBQUNDLFFBQVE7RUFDbkY7RUFDQUYsV0FBVyxHQUFHQSxXQUFXLENBQUNHLE1BQU0sQ0FDL0IsVUFBQ0MsQ0FBQztJQUFBLE9BQUtBLENBQUMsQ0FBQ0MsSUFBSSxJQUFJTixVQUFVLENBQUNPLFFBQVE7RUFBQSxFQUNwQyxDQUFDLENBQUMsQ0FBQztFQUNKLElBQUksQ0FBQ04sV0FBVyxFQUFFO0lBQ2pCLE9BQU8sS0FBSztFQUNiLENBQUMsTUFBTTtJQUNOLE9BQU8sSUFBSTtFQUNaO0FBQ0QsQ0FBQztBQUNELElBQU1hLEdBQUcsR0FBRyxJQUFJdkYsWUFBRyxtQkFDZkssWUFBRyxFQUNMO0FBQ0ZrRixHQUFHLENBQUNDLE1BQU0sRUFBRSxDIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3VuaS1wYWdlcyc7O2ltcG9ydCAnQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy91bmktcHVzaC9kaXN0L3VuaS1wdXNoLXYxLnBsdXMuZXMuanMnO2ltcG9ydCBWdWUgZnJvbSAndnVlJ1xyXG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwJ1xyXG4vLyBpbXBvcnQgVnVlUmVzb3VyY2UgZnJvbSBcInZ1ZS1yZXNvdXJjZVwiO1xyXG4vLyBtYWluLmpzXHJcbmltcG9ydCB1VmlldyBmcm9tIFwidXZpZXctdWlcIjtcclxuVnVlLnVzZSh1Vmlldyk7XHJcbi8vICBINeaOp+WItuWPsCoqKioqKioqKipcclxuLy8gbGV0IGNvbnNvbGVTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xyXG4vLyBjb25zb2xlU2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9jZG4uYm9vdGNzcy5jb20vdkNvbnNvbGUvMy4zLjQvdmNvbnNvbGUubWluLmpzXCI7XHJcbi8vIGNvbnNvbGVTY3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4vLyAgIG5ldyBWQ29uc29sZSgpXHJcbi8vIH1cclxuLy8gZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjb25zb2xlU2NyaXB0KTtcclxuLy8gLy8gIEg15o6n5Yi25Y+wKioqKioqKioqKlxyXG4vLyAvLyBpbXBvcnQgVkNvbnNvbGUgZnJvbSAndmNvbnNvbGUnLy9oNeaOp+WItuWPsFxyXG4vLyAvLyBjb25zdCB2Q29uc29sZSA9IG5ldyBWQ29uc29sZSgpLy9oNeaOp+WItuWPsFxyXG4vLyAvLyBWdWUudXNlKHZDb25zb2xlKS8vaDXmjqfliLblj7BcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuLy8gVnVlLnVzZShWdWVSZXNvdXJjZSlcclxuQXBwLm1wVHlwZSA9ICdhcHAnXHJcbi8vIGltcG9ydCBVbmlJY29ucyBmcm9tICcuL3VuaV9tb2R1bGVzL3VuaS1pY29ucy9jb21wb25lbnRzL3VuaS1pY29ucy91bmktaWNvbnMudnVlJ1xyXG4vLyBWdWUudXNlKCdVbmlJY29ucycpXHJcbi8vIOeUseS6juW8leWFpeeahGljb25z55qE5ZG95ZCN5Lya6Lef6aG555uu5paH5Lu26YeM55qE5Yay56qB77yM5omA5Lul6ZqP5L6/5b6A5ZG95ZCN5Yqg5LqG5LiqMu+8jOWMuuWIhuW8gOadpVxyXG5pbXBvcnQgdW5pSWNvbnMyIGZyb20gJy4vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL3VuaS1pY29ucy52dWUnXHJcblZ1ZS5jb21wb25lbnQoJ3VuaS1pY29uczInLCB1bmlJY29uczIpXHJcbi8v5YWo5bGA5Y+Y6YePXHJcbi8vIFZ1ZS5wcm90b3R5cGUubW9iaWxlVG9wSGVpZ2h0ID0gdW5pLmdldE1lbnVCdXR0b25Cb3VuZGluZ0NsaWVudFJlY3QoKT91bmkuZ2V0TWVudUJ1dHRvbkJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDowO1xyXG4vLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnJ1xyXG4vLyBWdWUucHJvdG90eXBlLkNPTVBBTlkgPSBcImxvbmdndWFuZ1wiXHJcbi8vIFZ1ZS5wcm90b3R5cGUuQ09NUEFOWSA9IFwibmFuY2hhbmdcIlxyXG4vLyBWdWUucHJvdG90eXBlLkNPTVBBTlkgPSBcInNhbmppYW5nXCIgLy/vvIjpg6jnvbLkuInmsZ9oNemcgOimgeaJk+W8gC9wYWdlcy9wcm9qZWN0TWFuYWdlL3Byb2plY3RNYW5hZ2XvvIzpobXpnaJvbmxvYWTlhoXlrrnvvIlcclxuLy8gVnVlLnByb3RvdHlwZS5DT01QQU5ZID0gXCJ6andqXCJcclxuLy8gVnVlLnByb3RvdHlwZS5DT01QQU5ZID0gXCJzY2NyXCJcclxuVnVlLnByb3RvdHlwZS5DT01QQU5ZID0gXCJhZ2p0XCIgLy8g6Z6N6ZKi6ZuG5Zui546v5aKDXHJcbi8vIFZ1ZS5wcm90b3R5cGUuQ09NUEFOWSA9IFwiXCIgLy8g5qCH5YeG54mIXHJcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xyXG5cdC8vIOW8gOWPkeeOr+Wig1xyXG5cdGNvbnNvbGUubG9nKCflvIDlj5Hnjq/looMnKVxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vNDcuOTMuMjE1LjIzNDo5ODA5LycgLy8g6Z6N6ZKi5q2j5byP5Zyw5Z2A77yI5byD55So77yJXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly80Mi4xODAuMTg4LjE3Ojk4MDkvJyAvLyDpno3pkqLmraPlvI/lnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6MTEyMTEvJyAvLyDpno3pkqLmtYvor5XlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMjM3OjUxMjM0LycgLy/pm4Tlk6XlhoXnvZHnqb/pgI/lnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovL2p4ai56aGdkeXVuLmNvbTo2MTIxMi8nIC8v5p2w5ZOl5YaF572R56m/6YCP5Zyw5Z2AXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJyBodHRwOi8vMTkyLjE2OC4zNC4yMjE6Mjg4ODgvJyAvL+mDreWco+mbhOacrOWcsFxyXG5cdFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICcgaHR0cDovLzE5Mi4xNjguMzQuMjIxOjkxMTEvJyAvL+mDreWco+mbhOacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4yMzc6NTEyMzQvJyAvL+mDreWco+mbhOacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xNTU6MTkxMTEvJyAvL+W9rea0geacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzQ3LjkzLjIxNS4yMzQ6MTk5OTcnIC8vIOW3peS9nOa1gee6v+S4iuWcsOWdgO+8iOW8g+eUqO+8iVxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6MTk5OTcnIC8vIOW3peS9nOa1gee6v+S4iuWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6MTkwOTcnIC8vIOW3peS9nOa1gea1i+ivleWcsOWdgFxyXG5cdFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTI2OjUxNzMnIC8vIOW3peS9nOa1geWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTM4OjUxNzMnIC8vIOW3peS9nOa1geWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUud29ya191cmwgPSAnaHR0cDovLzEzOS45LjY2LjIzNDo1MTczJyAvLyDlt6XkvZzmtYHlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjEyNjo1MTczJyAvLyDlt6XkvZzmtYHlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzguMTQyLjEzOS4xNjU6NzA4MC8nIC8vIOa5lumHjFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTM5LjkuNjYuMjM0OjUxNzMvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xMjU6NjAyMy8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xODIuOTAuMjI0LjIzNzo3MDAwLycgLy/lub/opb/ogZTpgJpcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS42Ny4xNjA6ODA4OC8nLy/kuK3lu7rlm5vlsYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTQ4OjYwMjMnIC8v5bm/6KW/6IGU6YCaL+acrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMjIzLjgyLjEwMC44MDo5MDAwLydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyMC4yMzYuMjQ3LjIwMDo5MDAwLydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovL3poZ2QubG9nYW53eS5jb20vJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgzLjYwLjIyNy42MTozMDI0OS8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xODMuNjAuMjI3LjYxOjMwMjQ5LydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS4xNzguNDQ6OTAwMC8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vNTguMzQuNjMuODg6OTA5MC9cIlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9IFwiaHR0cDovLzE4My45NS44NC4zNDo3MTg1L1wiXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vMjE4LjkyLjIxNS4xMzg6OTA5MC9cIiAgIC8v5paw5L2z5Z+O5bCP5Yy6ICAgMTIzNDU2XHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vMzYuMTM3LjUzLjIwMzo5MDkwL1wiICAvL+WNl+aYjOWcsOmTgSAgZ2RqdCAgIDEyMzQ1NlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTI0LjcxLjE3OC40NDo4LydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS44Ny4yNTAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTI0LjcxLjE3OC40NDo4MDEyJyAvLyDmsrPljZdcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjEwMC8nIC8v5ryU56S65bmz5Y+wXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjExNjo2MDIzLycvL+mCseW5s+avheacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4xNDc6MTgxNzAnLy/nkZ7lo6vmgZLpgJpcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgID0gJ2h0dHBzOi8vanhqemhnZC55eXZ0bC5jb206ODQ0My8nLy/kuInmsZ9cclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMjIxOjMwMDAyJy8v6YOt5Zyj54aK5pys5ZywXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMTo4MTg4Jy8v5Lit5bu65Zub5bGA5pys5ZywXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMDEuNDMuMTY0LjIxNDoxMjM1MCcvL+S4reW7uuS6lOWxgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vNDIuMTk0LjE0NC42Mjo4MDg4Jy8v5paw5Lit5bu65Zub5bGA5Zyw5Z2AXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMToxMTExMS8nLy/pg63lnKPpm4TkuInmsZ/mnKzlnLBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjE1NTUxJy8v5oiQ5ram57q/5LiKXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMTguMTIxLjE5OC4xNDc6MjMyMzInLy/miJDmtqbmraPlvI9cclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovL2h1bGkuemp6aGlsaWFvLmNvbS9qeGpnZGFwaScvL+mHkeael+a5vua1i+ivlVxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vOC4xMzYuMjIyLjE2NDo4ODA4LycvL+S4reenkeWuieS/oVxyXG5cdFxyXG5cclxufSBlbHNlIHtcclxuXHQvLyDnlJ/kuqfnjq/looNcclxuXHRjb25zb2xlLmxvZygn55Sf5Lqn546v5aKDJylcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEwLjE2OC4xLjEwNToxMTExMS8nIC8vIOe6v+S4iuWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTAuMTY4LjEuMTA0OjExMTExLycgLy8g57q/5LiK5Zyw5Z2AXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly80Ny45My4yMTUuMjM0Ojk4MDkvJyAvLyDpno3pkqLnur/kuIrlnLDlnYDvvIjlvIPnlKjvvIlcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzQyLjE4MC4xODguMTc6OTgwOS8nIC8vIOmejemSoue6v+S4iuWcsOWdgFxyXG5cdFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vNDIuMTgwLjE4OC4xNzoxMTIxMS8nIC8vIOmejemSoue6v+S4iua1i+ivleWcsOWdgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4yMzc6NTEyMzQvJyAvLyDnmb7oibLkuInmoIfmrrVcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMjIxOjkxMTEvJyAvLyDnmb7oibLkuInmoIfmrrVcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly80Ny45My4yMTUuMjM0OjE5OTk3JyAvLyDlt6XkvZzmtYHnur/kuIrlnLDlnYDvvIjlvIPnlKjvvIlcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly80Mi4xODAuMTg4LjE3OjE5OTk3JyAvLyDlt6XkvZzmtYHnur/kuIrlnLDlnYBcclxuXHRWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly80Mi4xODAuMTg4LjE3OjE5MDk3JyAvLyDlt6XkvZzmtYHmtYvor5XlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLndvcmtfdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjEzOTo1MTczJyAvLyDlt6XkvZzmtYHlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjEwMC8nIC8v5ryU56S65bmz5Y+wXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0naHR0cDovLzEyNC43MS4xNzguNDQ6ODAxMi8nIC8vIOays+WNl1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vOC4xNDIuMTM5LjE2NTo3MDgwLycgLy/muZbph4xcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEzOS45LjY2LjIzNDo4LydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTI1OjYwMjMvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4yMzc6NzAwMC8nIC8v5bm/6KW/6IGU6YCaXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMjQuNzEuNjcuMTYwOjgwODgvJyAvL+S4reW7uuWbm+WxgFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xNDg6NjAyMycgLy/lub/opb/ogZTpgJov5pys5ZywXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8yMjMuODIuMTAwLjgwOjkwMDAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTIwLjIzNi4yNDcuMjAwOjkwMDAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9IFwiaHR0cDovLzU4LjM0LjYzLjg4OjkwOTAvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS4xNzguNDQ6OTAwMC8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gXCJodHRwOi8vMTgzLjk1Ljg0LjM0OjcxODUvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSBcImh0dHA6Ly8zNi4xMzcuNTMuMjAzOjkwOTAvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMTI1OjYwMjMvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgzLjYwLjIyNy42MTozMDI0OS8nXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly96aGdkLmxvZ2Fud3kuY29tLydcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSBcImh0dHA6Ly8zNi4xMzcuNTMuMjAzOjkwOTAvXCJcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEyNC43MS44Ny4yNTAvJ1xyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTkyLjE2OC4zNC4xMTY6NjAyMy8nLy/pgrHlubPmr4XmnKzlnLBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE4Mi45MC4yMjQuMTQ3OjE4MTcwLycvL+eRnuWjq+aBkumAmlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwczovL2p4anpoZ2QueXl2dGwuY29tOjg0NDMvJy8v5LiJ5rGfXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMTo4MTg4LycvL+S4reW7uuWbm+WxgOacrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZz0gJ2h0dHA6Ly8xMDEuNDMuMTY0LjIxNDoxMjM1MC8nLy/kuK3lu7rkupTlsYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzQyLjE5NC4xNDQuNjI6ODA4OC8nLy/mlrDkuK3lu7rlm5vlsYDlnLDlnYBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzE5Mi4xNjguMzQuMjIxOjExMTExLycvL+mDreWco+mbhOS4ieaxn+acrOWcsFxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgyLjkwLjIyNC4xNDc6MTU1NTEvJy8v5oiQ5ram57q/5LiKXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMTguMTIxLjE5OC4xNDc6MjMyMzIvJy8v5oiQ5ram5q2j5byPXHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xOTIuMTY4LjM0LjIyMTozMDAwMi8nLy/pg63lnKPpm4TmnKzlnLBcclxuXHQvLyBWdWUucHJvdG90eXBlLnVybF9jb25maWcgPSAnaHR0cDovLzEwMS40My4xNjQuMjE0OjQ1MDIyLycvL+ebmOmUplxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vMTgzLjI0OS4yMjQuMTE4OjkwMDAvJy8vIOWYieWFtOmhueebrlxyXG5cdC8vIFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyA9ICdodHRwOi8vanhqLnpoZ2R5dW4uY29tOjMwMjUwLyMvJy8vIOa8lOekuuW5s+WPsEg1XHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly8xMDEuNDMuMTY0LjIxNDoxMTExMS8nLy8g55m+6Imy5LiJ5qCH5q61XHJcblx0Ly8gVnVlLnByb3RvdHlwZS51cmxfY29uZmlnID0gJ2h0dHA6Ly84LjEzNi4yMjIuMTY0Ojg4MDgvJy8v5Lit56eR5a6J5L+hXHJcbn1cclxuXHJcblZ1ZS5wcm90b3R5cGUuJGZvcm1hdERhdGVzID0gZm9ybWF0RGF0ZXM7XHJcbi8v5pe26Ze05oiz6L2s5o2i5pa55rOVICAgIGRhdGU65pe26Ze05oiz5pWw5a2XXHJcbmZ1bmN0aW9uIGZvcm1hdERhdGVzKGRhdGUsIGZtdCA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJykge1xyXG5cclxuXHRpZiAoIWRhdGUpIHtcclxuXHRcdHJldHVybiAnJ1xyXG5cdH1cclxuXHRpZiAoZGF0ZS5sZW5ndGggPT0gMTApIHtcclxuXHRcdGRhdGUgPSBkYXRlICogMTAwMDtcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xyXG5cdFx0ZGF0ZSA9IGRhdGUucmVwbGFjZSgnVCcsICcgJykucmVwbGFjZSgnWicsICcnKTtcclxuXHRcdGRhdGUgPSBuZXcgRGF0ZShkYXRlLnJlcGxhY2UoLy0vZywgJy8nKSlcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xyXG5cdFx0ZGF0ZSA9IG5ldyBEYXRlKGRhdGUpXHJcblx0fVxyXG5cdHZhciBvID0ge1xyXG5cdFx0J00rJzogZGF0ZS5nZXRNb250aCgpICsgMSxcclxuXHRcdCdkKyc6IGRhdGUuZ2V0RGF0ZSgpLFxyXG5cdFx0J2grJzogZGF0ZS5nZXRIb3VycygpICUgMTIgPT09IDAgPyAxMiA6IGRhdGUuZ2V0SG91cnMoKSAlIDEyLFxyXG5cdFx0J0grJzogZGF0ZS5nZXRIb3VycygpLFxyXG5cdFx0J20rJzogZGF0ZS5nZXRNaW51dGVzKCksXHJcblx0XHQncysnOiBkYXRlLmdldFNlY29uZHMoKSxcclxuXHRcdCdxKyc6IE1hdGguZmxvb3IoKGRhdGUuZ2V0TW9udGgoKSArIDMpIC8gMyksXHJcblx0XHQnUyc6IGRhdGUuZ2V0TWlsbGlzZWNvbmRzKClcclxuXHR9XHJcblx0dmFyIHdlZWsgPSB7XHJcblx0XHQnMCc6ICdcXHU2NWU1JyxcclxuXHRcdCcxJzogJ1xcdTRlMDAnLFxyXG5cdFx0JzInOiAnXFx1NGU4YycsXHJcblx0XHQnMyc6ICdcXHU0ZTA5JyxcclxuXHRcdCc0JzogJ1xcdTU2ZGInLFxyXG5cdFx0JzUnOiAnXFx1NGU5NCcsXHJcblx0XHQnNic6ICdcXHU1MTZkJ1xyXG5cdH1cclxuXHRpZiAoLyh5KykvLnRlc3QoZm10KSkge1xyXG5cdFx0Zm10ID0gZm10LnJlcGxhY2UoUmVnRXhwLiQxLCAoZGF0ZS5nZXRGdWxsWWVhcigpICsgJycpLnN1YnN0cig0IC0gUmVnRXhwLiQxLmxlbmd0aCkpXHJcblx0fVxyXG5cdGlmICgvKEUrKS8udGVzdChmbXQpKSB7XHJcblx0XHRmbXQgPSBmbXQucmVwbGFjZShSZWdFeHAuJDEsICgoUmVnRXhwLiQxLmxlbmd0aCA+IDEpID8gKFJlZ0V4cC4kMS5sZW5ndGggPiAyID8gJ1xcdTY2MWZcXHU2NzFmJyA6ICdcXHU1NDY4JykgOlxyXG5cdFx0XHRcdCcnKSArXHJcblx0XHRcdHdlZWtbZGF0ZS5nZXREYXkoKSArICcnXSlcclxuXHR9XHJcblx0Zm9yICh2YXIgayBpbiBvKSB7XHJcblx0XHRpZiAobmV3IFJlZ0V4cCgnKCcgKyBrICsgJyknKS50ZXN0KGZtdCkpIHtcclxuXHRcdFx0Zm10ID0gZm10LnJlcGxhY2UoUmVnRXhwLiQxLCAoUmVnRXhwLiQxLmxlbmd0aCA9PT0gMSkgPyAob1trXSkgOiAoKCcwMCcgKyBvW2tdKS5zdWJzdHIoKCcnICsgb1trXSkubGVuZ3RoKSkpXHJcblx0XHR9XHJcblx0fVxyXG5cdHJldHVybiBmbXRcclxufVxyXG5cclxuVnVlLnByb3RvdHlwZS5zZW5kUmVxdWVzdCA9IGZ1bmN0aW9uKHBhcmFtKSB7XHJcblx0dmFyIF9zZWxmID0gdGhpcyxcclxuXHRcdHVybCA9IHBhcmFtLnVybCxcclxuXHRcdG1ldGhvZCA9IHBhcmFtLm1ldGhvZCxcclxuXHRcdGhlYWRlciA9IHBhcmFtLmhlYWRlciB8fCB7XHJcblx0XHRcdCdjb250ZW50LXR5cGUnOiBcImFwcGxpY2F0aW9uL2pzb25cIlxyXG5cdFx0fSxcclxuXHJcblx0XHRkYXRhID0gcGFyYW0uZGF0YSB8fCB7fSxcclxuXHRcdHRva2VuID0gXCJcIixcclxuXHRcdGlzYWxlcnQgPSBwYXJhbS5pc2FsZXJ0IHx8IGZhbHNlLFxyXG5cdFx0aGlkZUxvYWRpbmcgPSBwYXJhbS5oaWRlTG9hZGluZyB8fCBmYWxzZTtcclxuXHJcblx0Ly/mi7zmjqXlrozmlbTor7fmsYLlnLDlnYBcclxuXHR2YXIgcmVxdWVzdFVybCA9IFZ1ZS5wcm90b3R5cGUudXJsX2NvbmZpZyArIHVybCArICc/bGFuZz0nICsgdW5pLmdldFN0b3JhZ2VTeW5jKCdsYW5ndWFnZScpO1xyXG5cdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJykgJiYgdXJsICE9ICd4bWdsL2Jhc2UvbG9naW4nICYmIHVybCAhPVxyXG5cdFx0J3htZ2wvd2lyZWxlc3NFZHVjYXRpb25RdWVzdGlvblN1YmplY3QvZ2V0RGV2aWNlUmFuZG9tRWR1Y2F0aW9uUXVlc3Rpb24nICYmIHVybCAhPVxyXG5cdFx0J3htZ2wvd2lyZWxlc3NFZHVjYXRpb25RdWVzdGlvbkFuc3dlci9hZGQnICYmIHVybCAhPVxyXG5cdFx0J3htZ2wvc2FmZUVkdWNhdGlvblF1ZXN0aW9uQW5zd2VyL2dldEFuc3dlcldvcmtlckluZm8nICYmIHVybCAhPSAneG1nbC9zYWZlRWR1Y2F0aW9uUXVlc3Rpb25BbnN3ZXIvYWRkJyAmJlxyXG5cdFx0dXJsICE9ICd4bWdsL3NhZmVFZHVjYXRpb25RdWVzdGlvbi9zZWxlY3RTYWZlRWR1Y2F0aW9uUXVlc3Rpb25JbmZvJykge1xyXG5cdFx0aWYgKEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpKS50b2tlbikge1xyXG5cdFx0XHR0b2tlbiA9IFwiQmVhcmVyIFwiICsgSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJykpLnRva2VuO1xyXG5cdFx0XHRoZWFkZXJbXCJBdXRob3JpemF0aW9uXCJdID0gdG9rZW5cclxuXHRcdFx0Y29uc29sZS5sb2coXCLnvZHnu5zor7fmsYIgdG9rZW4gOlwiICsgdG9rZW4pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gdmFyIHRpbWVzdGFtcCA9IERhdGUucGFyc2UobmV3IERhdGUoKSk7Ly/ml7bpl7TmiLNcclxuXHQvLyBkYXRhW1widGltZXN0YW1wXCJdID0gdGltZXN0YW1wO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblx0Ly8gZGF0YVtcImRldmljZVwiXSA9IFwiaW9zYXBwXCI7XHJcblx0Ly8gZGF0YVtcInZlclwiXSA9IFwiMS4wLjBcIjtcclxuXHJcblx0aWYgKG1ldGhvZCkge1xyXG5cdFx0bWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7IC8v5bCP5YaZ5pS55Li65aSn5YaZXHJcblx0fVxyXG5cdC8v5Yqg5a+Gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImxvZ2luRGF0YVwiKVxyXG5cdC8vIGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJsb2dpbkRhdGFcIikgJiYgZGF0YSAhPSB7fSkge1xyXG5cdC8vIFx0Y29uc29sZS5sb2codXJsK1wi5Y+C5pWwXCIpO1xyXG5cdC8vIFx0Y29uc29sZS5sb2coZGF0YSk7XHJcblx0Ly8gXHRkYXRhID0gZW5jcnlwdEJ5REVTKGRhdGEpO1xyXG5cdC8vIH1cclxuXHQvL+eUqOaIt+S6pOS6kjrliqDovb3lnIhcclxuXHRpZiAoIWhpZGVMb2FkaW5nKSB7XHJcblx0XHR1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdFx0XHR0aXRsZTogJ+WKoOi9veS4rS4uLidcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvLyBjb25zb2xlLmxvZyhyZXF1ZXN0VXJsLCBcIue9kee7nOivt+axgnN0YXJ0XCIpO1xyXG5cdC8vIGNvbnNvbGUubG9nKGRhdGEsIFwi572R57uc6K+35rGCZGF0YT09PT09PT09PT09PT09PT09PT09XCIpO1xyXG5cdC8v572R57uc6K+35rGCXHJcblx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0dXJsOiByZXF1ZXN0VXJsLFxyXG5cdFx0bWV0aG9kOiBtZXRob2QsXHJcblx0XHRoZWFkZXI6IGhlYWRlcixcclxuXHRcdGRhdGE6IGRhdGEsXHJcblx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhcIue9kee7nOivt+axgnN1Y2Nlc3M6XCIgKyBKU09OLnN0cmluZ2lmeShyZXMuZGF0YSkpO1xyXG5cclxuXHRcdFx0aWYgKHJlcy5kYXRhLmNvZGUgJiYgcmVzLmRhdGEuY29kZSAhPSAyMDApIHtcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEuY29kZSA9PSA0MDEgfHwgcmVzLmRhdGEuY29kZSA9PSA0MDMpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+eZu+W9lei/h+acnyzor7fph43mlrDnmbvlvZUnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIlxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5yZW1vdmVTdG9yYWdlU3luYygndXNlckluZm8nKVxyXG5cdFx0XHRcdFx0XHR1bmkucmVkaXJlY3RUbyh7XHJcblx0XHRcdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2xvZ2luL2xvZ2luLnZ1ZSdcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdGlmICghaXNhbGVydCkge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5kYXRhLm1lc3NhZ2UsXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIlxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sIDIwMClcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHR5cGVvZiBwYXJhbS5lcnJvciA9PSBcImZ1bmN0aW9uXCIgJiYgcGFyYW0uZXJyb3IoRGF0YSk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGxldCBEYXRhID0gcmVzLmRhdGE7XHJcblx0XHRcdC8vIGlmIChyZXMuZGF0YS5kYXRhICYmIHJlcy5kYXRhLmRhdGEucmVxdWVzdERhdGEpIHtcclxuXHRcdFx0Ly8gXHRsZXQgZGF0YSA9IGRlY3J5cHRCeURFUyhcclxuXHRcdFx0Ly8gXHRcdHJlcy5kYXRhLmRhdGEucmVxdWVzdERhdGEsXHJcblx0XHRcdC8vIFx0XHRyZXMuZGF0YS5kYXRhLmVuY3J5cHRlZFxyXG5cdFx0XHQvLyBcdCk7XHJcblx0XHRcdC8vIFx0RGF0YS5kYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcclxuXHRcdFx0Ly8gXHRjb25zb2xlLmxvZyh1cmwgKyBcIuino+WvhuWQjueahOaVsOaNrlwiKTtcclxuXHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhEYXRhKTtcclxuXHRcdFx0Ly8gfVxyXG5cdFx0XHR0eXBlb2YgcGFyYW0uc3VjY2VzcyA9PSBcImZ1bmN0aW9uXCIgJiYgcGFyYW0uc3VjY2VzcyhEYXRhKTtcclxuXHRcdH0sXHJcblx0XHRmYWlsOiAoZSkgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcIue9kee7nOivt+axgmZhaWw6XCIgKyBKU09OLnN0cmluZ2lmeShlKSk7XHJcblx0XHRcdGNvbnNvbGUubG9nKHJlcXVlc3RVcmwsIFwicmVxdWVzdFVybFwiKTtcclxuXHRcdFx0Ly8gdW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdC8vIFx0Y29udGVudDogXCJcIiArIGUuZXJyTXNnXHJcblx0XHRcdC8vIH0pO1xyXG5cdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8gOWwj+W3ruS6huWRou+8jOivt+aCqOeojeWQjuWGjeivlScsXHJcblx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdH0pXHJcblx0XHRcdHR5cGVvZiBwYXJhbS5mYWlsID09IFwiZnVuY3Rpb25cIiAmJiBwYXJhbS5mYWlsKGUuZGF0YSk7XHJcblx0XHR9LFxyXG5cdFx0Y29tcGxldGU6ICgpID0+IHtcclxuXHRcdFx0aWYgKCFoaWRlTG9hZGluZykge1xyXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHR5cGVvZiBwYXJhbS5jb21wbGV0ZSA9PSBcImZ1bmN0aW9uXCIgJiYgcGFyYW0uY29tcGxldGUoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG59XHJcbi8vIOWIpOaWreaMiemSruadg+mZkOeahOWHveaVsFxyXG5WdWUucHJvdG90eXBlLmNoZWNrQnRuUGVybWlzc2lvbiA9IGZ1bmN0aW9uKHBlcm1pc3Npb24pIHtcclxuXHR2YXIgcGVybWlzc2lvbnMgPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYyhcInVzZXJJbmZvXCIpKS5tZW51QXV0aG9yaXR5Lm1lbnVMaXN0O1xyXG5cdC8vIHZhciBwZXJtaXNzaW9ucyA9IHN0b3JlLnN0YXRlLnVzZXJJbmZvLm1lbnVBdXRob3JpdHkubWVudUxpc3Q7XHJcblx0cGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucy5maWx0ZXIoXHJcblx0XHQoeCkgPT4geC5wYXRoID09IHBlcm1pc3Npb24ubWVudVBhdGhcclxuXHQpWzBdO1xyXG5cdGNvbnNvbGUubG9nKHBlcm1pc3Npb25zLCfmjInpkq7mnYPpmZAnKVxyXG5cdGlmICghcGVybWlzc2lvbnMgfHwgIXBlcm1pc3Npb25zLmFjdGlvbkxpc3QpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblx0bGV0IGluZGV4ID0gcGVybWlzc2lvbnMuYWN0aW9uTGlzdC5maW5kSW5kZXgoXHJcblx0XHQoeCkgPT4geC5hY3Rpb25Db2RlID09IHBlcm1pc3Npb24ua2V5XHJcblx0KVxyXG5cdHJldHVybiBpbmRleCAhPSAtMSA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5WdWUucHJvdG90eXBlLmNoZWNrTWVudVBlcm1pc3Npb24gPSBmdW5jdGlvbihwZXJtaXNzaW9uKSB7XHJcblx0dmFyIHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKSkubWVudUF1dGhvcml0eS5tZW51TGlzdDtcclxuXHQvLyB2YXIgcGVybWlzc2lvbnMgPSBzdG9yZS5zdGF0ZS51c2VySW5mby5tZW51QXV0aG9yaXR5Lm1lbnVMaXN0O1xyXG5cdHBlcm1pc3Npb25zID0gcGVybWlzc2lvbnMuZmlsdGVyKFxyXG5cdFx0KHgpID0+IHgucGF0aCA9PSBwZXJtaXNzaW9uLm1lbnVQYXRoXHJcblx0KVswXTtcclxuXHRpZiAoIXBlcm1pc3Npb25zKSB7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxufVxyXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcclxuXHQuLi5BcHBcclxufSlcclxuYXBwLiRtb3VudCgpIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0\n"); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /***/ }), /* 1 */ @@ -40811,6 +40815,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +<<<<<<< HEAD eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page */ 421);\n/* harmony import */ var _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./personDetail.vue?vue&type=script&lang=js&mpType=page */ 438);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 17);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"92670d5c\",\n null,\n false,\n _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/projectEnd/laborManage/searchTeam/personDetail.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBZ0o7QUFDaEo7QUFDMkU7QUFDTDs7O0FBR3RFO0FBQzZMO0FBQzdMLGdCQUFnQiwrTEFBVTtBQUMxQixFQUFFLDZGQUFNO0FBQ1IsRUFBRSw4R0FBTTtBQUNSLEVBQUUsdUhBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsa0hBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9wZXJzb25EZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTkyNjcwZDVjJnNjb3BlZD10cnVlJm1wVHlwZT1wYWdlXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9wZXJzb25EZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL3BlcnNvbkRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWRlcui9r+S7ti9IQnVpbGRlclgvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjkyNjcwZDVjXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL3Byb2plY3RFbmQvbGFib3JNYW5hZ2Uvc2VhcmNoVGVhbS9wZXJzb25EZXRhaWwudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///420\n"); /***/ }), @@ -40818,11 +40823,21 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _per /*!****************************************************************************************************************************************!*\ !*** D:/jxj/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! \****************************************************************************************************************************************/ +======= +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page */ 421);\n/* harmony import */ var _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./personDetail.vue?vue&type=script&lang=js&mpType=page */ 438);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 17);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"92670d5c\",\n null,\n false,\n _personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/projectEnd/laborManage/searchTeam/personDetail.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBZ0o7QUFDaEo7QUFDMkU7QUFDTDs7O0FBR3RFO0FBQytNO0FBQy9NLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDZGQUFNO0FBQ1IsRUFBRSw4R0FBTTtBQUNSLEVBQUUsdUhBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsa0hBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9wZXJzb25EZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTkyNjcwZDVjJnNjb3BlZD10cnVlJm1wVHlwZT1wYWdlXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9wZXJzb25EZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL3BlcnNvbkRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vLi4vR1BU5rWP6KeI5Zmo5LiL6L29L0hCdWlsZGVyWC40LjE0LjIwMjQwNDMwMTMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjkyNjcwZDVjXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL3Byb2plY3RFbmQvbGFib3JNYW5hZ2Uvc2VhcmNoVGVhbS9wZXJzb25EZXRhaWwudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///420\n"); + +/***/ }), +/* 421 */ +/*!***********************************************************************************************************************************************!*\ + !*** D:/jxj/uniapp/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! + \***********************************************************************************************************************************************/ +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); +<<<<<<< HEAD /* harmony import */ var _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page */ 422); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); @@ -40831,14 +40846,30 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); +======= +/* harmony import */ var _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page */ 422); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /***/ }), /* 422 */ +<<<<<<< HEAD /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/jxj/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +======= +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/jxj/uniapp/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -81819,7 +81850,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu /***/ (function(module, exports, __webpack_require__) { "use strict"; +<<<<<<< HEAD eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 161));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 164));\nvar _tkiTree = _interopRequireDefault(__webpack_require__(/*! @/components/tki-tree/tki-tree.vue */ 746));\nvar _canversCom = _interopRequireDefault(__webpack_require__(/*! @/pages/videoManage/component/canversCom.vue */ 191));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/components/dateTimePicker/index.vue */ 394));\nvar _tool = __webpack_require__(/*! @/utils/tool.js */ 85);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n components: {\n tkiTree: _tkiTree.default,\n canversCom: _canversCom.default,\n dateTimePiccker: _index.default\n },\n data: function data() {\n return {\n isShowPicker: true,\n startTime: this.getDate({\n format: true\n }),\n startTime2: this.getDate({\n format: true\n }),\n checkedTab: 'type1',\n imgList: {},\n openImg: false,\n base64Image: '',\n imgIndex: -1,\n pointList: [],\n location: {\n left: '0',\n top: '0'\n },\n x: 0,\n y: 0,\n imgDialogUrlSu: false,\n imgDialogUrlText: \"编辑隐患点\",\n imgDialog: false,\n imgDialogUrl: [],\n pageTitle: '新增检查',\n projectSn: '',\n checkType: 1,\n //分包商类型 1专业分包 6劳务分包\n form: {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: \"\",\n urgentLevel: \"\",\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1,\n dangerName: '',\n subsectionId: '',\n //分部工程\n subentryId: '',\n //分项工程\n floor: '',\n //巡检楼层\n addedDescription: '',\n //事件描述\n taskId: '',\n //任务ID\n itemId: '' // 任务子ID\n },\n\n checkPointList: [],\n //获取检查部位数据\n checkPointName: '',\n issueList: [],\n //问题分类 || 问题描述\n issueName: '',\n issueGradeList: [{\n name: '一级',\n value: 1\n }, {\n name: '二级',\n value: 2\n }, {\n name: '三级',\n value: 3\n }, {\n name: '四级',\n value: 4\n }],\n //问题等级\n issueGradeIndex: 0,\n urgencyList: [{\n name: '一般',\n value: 1\n }, {\n name: '严重',\n value: 2\n }, {\n name: '紧要',\n value: 3\n }],\n //紧急程度\n urgencyIndex: 0,\n personUpdateList: [],\n // 人员列表-整改人\n personList: [],\n //人员列表 -- 检查人、整改人、复查人、核验人、通知人\n inspectManIndex: null,\n //检查人\n changePeopleIndex: null,\n //整改人\n verifyManIndex: null,\n //核验人\n reviewIndex: null,\n //复查人\n notifier: '',\n //通知人\n unitDialog: false,\n //分包商弹窗\n subpackageLsit: [],\n //分包商数据列表\n videoFileList: [],\n imgFileList: [],\n mapImgList: [],\n basicInfo: {},\n selectIndex: null,\n userInfo: '',\n typeCheck: 'type1',\n // 类型 type1为质量问题 type2为排查记录\n listData: [],\n //分部工程\n subListData: [],\n //分项工程\n subsectionIndex: -1,\n //分部工程\n subentryIndex: -1,\n ////分项工程\n unitEnterpriseId: \"\",\n taskId: '',\n //任务ID\n itemId: '',\n // 任务子ID\n defaultAuditPerson: \"\",\n reviewList: [],\n areaData: {}\n };\n },\n onLoad: function onLoad(option) {\n this.pageTitle = option.type == 'add' ? '新增检查' : '编辑检查';\n this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;\n this.userInfo = JSON.parse(uni.getStorageSync('userInfo'));\n this.getCheckPointList();\n this.getIssueList();\n this.getPersonList();\n // this.getReviewPeopleList();\n // this.getPersonUpdateList();\n this.getProgressListData();\n __f__(\"log\", 'lll', option.taskId, option.itemId, \" at pages/projectEnd/qualityManage/addIssue.vue:576\");\n this.taskId = option.taskId;\n this.itemId = option.itemId;\n this.form.taskId = option.taskId;\n this.form.itemId = option.itemId;\n __f__(\"log\", (0, _tool.dateformat)(new Date()), 777888, \" at pages/projectEnd/qualityManage/addIssue.vue:581\");\n },\n methods: {\n //获取复查人\n getReviewPeopleList: function getReviewPeopleList() {\n var _this = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n // enterpriseTypeId: 7,\n qualityRegionId: this.form.regionId,\n qualityRegionBindType: 2,\n isSupervisingRoleName: 1\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:599\");\n if (res.result.length > 0) {\n _this.reviewList = res.result;\n } else {\n _this.reviewList = [];\n }\n }\n });\n },\n getDate: function getDate(type) {\n var date = new Date();\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n if (type === 'start') {\n year = year;\n } else if (type === 'end') {\n // year = year + 2;\n }\n month = month > 9 ? month : '0' + month;\n day = day > 9 ? day : '0' + day;\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n },\n imgUrl: function imgUrl(val) {\n this.openImg = false;\n this.imgUpload(val);\n this.openImg = true;\n },\n //图片上传请求的接口\n imgUpload: function imgUpload(baseImg) {\n __f__(\"log\", '进入----------图片上传请求的接口', \" at pages/projectEnd/qualityManage/addIssue.vue:631\");\n var that = this;\n var cuDate = new Date().getTime();\n var arr = [];\n that.base64Image = baseImg;\n var parmars = {\n base64Image: that.base64Image\n };\n this.sendRequest({\n url: 'xmgl/upload/uploadBase64',\n method: 'post',\n header: {\n 'content-type': 'application/x-www-form-urlencoded' //自定义请求头信息\n },\n\n data: parmars,\n success: function success(res) {\n __f__(\"log\", '转换后的地址----------', res.data.imageUrl, \" at pages/projectEnd/qualityManage/addIssue.vue:648\");\n __f__(\"log\", '阶段代码 imgUpload 耗时2 :' + (new Date().getTime() - cuDate), \" at pages/projectEnd/qualityManage/addIssue.vue:649\");\n that.imgFileList[that.imgFileList.length - 1].url = res.data.imageUrl;\n }\n });\n },\n imgDialogBtn: function imgDialogBtn() {\n this.imgDialog = false;\n // this.pointList=[]\n },\n //点击点位展示的内容\n pointShow: function pointShow(index) {\n __f__(\"log\", \"当前index : \" + index + \"- this.imgIndex: \" + this.imgIndex, \" at pages/projectEnd/qualityManage/addIssue.vue:660\");\n if (index === this.imgIndex) {\n this.imgIndex = -1;\n } else {\n this.imgIndex = index;\n }\n },\n //删除点位\n removePoint: function removePoint(index) {\n __f__(\"log\", '点击的内容', index, \" at pages/projectEnd/qualityManage/addIssue.vue:669\");\n this.pointList.splice(index, 1);\n this.imgIndex = -1;\n },\n //布点\n pointImage: function pointImage(event) {\n if (this.imgDialogUrlSu) {\n __f__(\"log\", \"开始布点 :\", event, \" at pages/projectEnd/qualityManage/addIssue.vue:676\");\n __f__(\"log\", \"x:\", event.detail.x, \" at pages/projectEnd/qualityManage/addIssue.vue:677\");\n __f__(\"log\", \"y :\", event.detail.y, \" at pages/projectEnd/qualityManage/addIssue.vue:678\");\n var obj = {\n x: event.detail.x,\n y: event.detail.y\n };\n this.pointList.push(obj);\n }\n },\n //开始布点或者结束布点\n pointText: function pointText() {\n this.imgDialogUrlText = this.imgDialogUrlSu ? \"编辑隐患点\" : \"保存隐患点\";\n this.imgDialogUrlSu = !this.imgDialogUrlSu;\n },\n //打开图纸上传弹框\n openImgDialog: function openImgDialog() {\n this.imgDialog = true;\n },\n toggle: function toggle() {},\n //分部工程改动事件\n checkSubListData: function checkSubListData(e, type) {\n __f__(\"log\", e, type, \" at pages/projectEnd/qualityManage/addIssue.vue:700\");\n if (type === 1) {\n var _this$listData$this$s;\n if (this.listData[e.detail.value] == \"暂无数据\") return;\n // 选择一级菜单\n this.subsectionIndex = e.detail.value;\n this.form.subsectionId = ((_this$listData$this$s = this.listData[this.subsectionIndex]) === null || _this$listData$this$s === void 0 ? void 0 : _this$listData$this$s.id) || -1; // 赋值给subsectionId字段\n\n this.subListData = this.listData[this.subsectionIndex].children || [];\n if (this.subListData.length) {\n var _this$subListData$;\n this.subentryIndex = 0; // 如果存在子级菜单,则将分项索引初始化为0\n this.subentryId = ((_this$subListData$ = this.subListData[0]) === null || _this$subListData$ === void 0 ? void 0 : _this$subListData$.id) || -1; // 赋值给subentryId字段\n } else {\n this.subentryIndex = -1; // 如果不存在子级菜单,则将分项索引初始化为-1\n this.subentryId = -1; // 初始化为-1\n }\n } else {\n var _this$subListData$thi;\n if (this.subListData[e.detail.value] == \"暂无数据\") return;\n // 选择二级菜单\n this.subentryIndex = e.detail.value;\n this.form.subentryId = ((_this$subListData$thi = this.subListData[this.subentryIndex]) === null || _this$subListData$thi === void 0 ? void 0 : _this$subListData$thi.id) || -1; // 赋值给subentryId字段\n }\n },\n //获取分部分项工程, 以父子节点形式呈现\n getProgressListData: function getProgressListData() {\n var _this2 = this;\n this.sendRequest({\n url: 'xmgl/subdivisionProject/getParentChildList',\n method: 'get',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n if (res.code == 200) {\n _this2.listData = res.result;\n __f__(\"log\", '获取分部分项工程, 以父子节点形式呈现', _this2.listData, \" at pages/projectEnd/qualityManage/addIssue.vue:733\");\n if (_this2.listData.length >= 1) {\n _this2.form.subsectionId = _this2.listData[0].id;\n if (_this2.listData[0].children.length >= 1) {\n _this2.subListData = _this2.listData[0].children;\n _this2.form.subentryId = _this2.listData[0].children[0].id;\n } else {\n _this2.subListData = ['暂无数据'];\n }\n } else {\n _this2.listData = ['暂无数据'];\n }\n }\n }\n });\n },\n //获取检查部位 列表\n getCheckPointList: function getCheckPointList() {\n var _this3 = this;\n this.sendRequest({\n url: 'xmgl/qualityRegion/list',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n notSupervisingUnit: 1\n },\n success: function success(res) {\n if (res.code == 200) {\n _this3.checkPointList = res.result;\n __f__(\"log\", '-----------', _this3.checkPointList, \" at pages/projectEnd/qualityManage/addIssue.vue:761\");\n }\n }\n });\n },\n dealFalseCheck: function dealFalseCheck(arr) {\n var _this4 = this;\n arr.map(function (item) {\n if (item.children) {\n item.checked = false;\n item.orChecked = false;\n _this4.dealFalseCheck(item.children);\n } else {\n item.checked = false;\n item.orChecked = false;\n }\n });\n },\n //确定选中--回显 \n checkPointBtn: function checkPointBtn(val, type) {\n this.form.level = '';\n // type==1 检查部位 ; 2 问题分类 \t3,通知人\t\t\t\n if (type == 1) {\n this.form.enterpriseSn = \"\";\n this.form.enterpriseName = \"\";\n this.form.changeId = \"\";\n __f__(\"log\", val, type, \" at pages/projectEnd/qualityManage/addIssue.vue:786\");\n this.changePeopleIndex = null;\n // console.log(this.checkPointList, val, this.personList)\n this.areaData = val[0];\n this.form.regionId = val[0].id;\n var arr = JSON.parse(JSON.stringify(val[0].parents));\n var obj = {\n id: val[0].id,\n regionName: val[0].regionName\n };\n arr.push(obj);\n //获取选中的字符串 名称\n var regionName = arr.map(function (item, index) {\n return item.regionName;\n }).join(\"/\");\n this.checkPointName = regionName;\n this.form.regionName = regionName;\n this.form.changeId = val[0].dutyId;\n this.notifier = val[0].intendanceNames;\n this.form.notifyPerson = val[0].intendanceIds;\n // 分包单位数据拿取\n this.subpackageLsit = val[0].enterpriseInfos;\n this.personUpdateList = [];\n // 整改人数据拿取\n // this.personUpdateList = val[0].systemUsers\n // this.personUpdateList.forEach((item, index) => {\n // \tif (item.userId == val[0].dutyId) {\n // \t\tthis.changePeopleIndex = index\n // \t}\n // });\n this.reviewList = [];\n this.reviewIndex = null;\n this.getReviewPeopleList();\n } else if (type == 2) {\n __f__(\"log\", '选择问题描述的数据', val, \" at pages/projectEnd/qualityManage/addIssue.vue:821\");\n //设置问题描述\n this.form.dangerItemContent = val[0].dangerName;\n this.form.dangerItemId = val[0].id;\n this.form.level = val[0].level;\n this.form.remark = val[0].remark; //整改要求\n //设置问题类型\n if (val[0].parents.length == 0) {\n this.form.dangerTypeId = val[0].id;\n this.issueName = val[0].dangerName;\n } else {\n this.form.dangerTypeId = val[0].parents[0].id;\n this.issueName = val[0].parents[0].dangerName + '/' + val[0].parents[1].dangerName + '/' + val[0].dangerName;\n this.form.dangerName = val[0].dangerName;\n }\n } else if (type == 3) {\n __f__(\"log\", val, \" at pages/projectEnd/qualityManage/addIssue.vue:838\");\n this.notifier = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n this.form.notifyPerson = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n }\n },\n //获取问题分类\n getIssueList: function getIssueList() {\n var _this5 = this;\n this.sendRequest({\n url: 'xmgl/dangerTypeRecord/selectDangerTypeAndItemList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n recordStatus: 0\n },\n success: function success(res) {\n if (res.result.length > 0) {\n res.result.forEach(function (item) {\n if (item.children && item.children.length > 0) {\n item.children.forEach(function (itm) {\n if (itm.itemList && itm.itemList.length > 0) {\n itm.itemList.forEach(function (item2) {\n item2.dangerName = item2.content;\n });\n itm.children = itm.itemList;\n }\n });\n }\n });\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:871\");\n _this5.issueList = res.result;\n }\n }\n });\n },\n //补充说明\n supplementTextarea: function supplementTextarea(e) {\n this.form.dangerDesc = e.detail.value;\n },\n //整改要求\n claimTextarea: function claimTextarea(e) {\n this.form.remark = e.detail.value;\n },\n //事件描述\n eventDescription: function eventDescription(e) {\n this.form.addedDescription = e.detail.value;\n },\n //巡检楼层\n eventfloor: function eventfloor(e) {\n __f__(\"log\", '巡检楼层---', e, \" at pages/projectEnd/qualityManage/addIssue.vue:893\");\n var input = e.detail.value;\n this.form.floor = parseInt(input); // 或者 this.form.floor = parseInt(input);\n },\n //获取分包公司\n getSubpackageLsit: function getSubpackageLsit() {\n var _this6 = this;\n var data = {\n // enterpriseTypeId: this.checkType,\n pageNo: 1,\n pageSize: 999,\n projectSn: this.projectSn\n };\n this.sendRequest({\n url: 'xmgl/projectEnterprise/list',\n method: 'post',\n data: data,\n success: function success(res) {\n if (res.result.records.length > 0) {\n _this6.subpackageLsit = res.result.records;\n } else {\n _this6.subpackageLsit = [];\n }\n }\n });\n },\n //下拉选择回显\n bindPickerChange: function bindPickerChange(e, type) {\n __f__(\"log\", e, \" at pages/projectEnd/qualityManage/addIssue.vue:921\");\n //type ==1 问题等级;2紧急情况;3检查人;4 检查时间;5整改时限; 6整改人; 7复查人; 8核验人;\n if (type == 1) {\n this.issueGradeIndex = e.detail.value;\n this.form.level = this.issueGradeList[e.detail.value].value;\n } else if (type == 2) {\n this.urgencyIndex = e.detail.value;\n this.form.urgentLevel = this.urgencyList[e.detail.value].value;\n } else if (type == 3) {\n this.inspectManIndex = e.detail.value;\n this.form.inspectManId = this.personList[e.detail.value].userId;\n } else if (type == 'startTime') {\n this.form.inspectTime = e.f3;\n } else if (type == 'startTime2') {\n this.form.changeLimitTime = e.f3;\n } else if (type == 6) {\n this.changePeopleIndex = e.detail.value;\n this.form.changeId = this.personUpdateList[e.detail.value].userId;\n __f__(\"log\", this.changePeopleIndex, this.form.changeId, \" at pages/projectEnd/qualityManage/addIssue.vue:939\");\n } else if (type == 7) {\n this.reviewIndex = e.detail.value;\n this.form.reviewId = this.reviewList[e.detail.value].userId;\n } else if (type == 8) {\n this.verifyManIndex = e.detail.value;\n this.form.verifyManId = this.personList[e.detail.value].userId;\n }\n },\n //获取人员列表--- 检查人、整改人、复查人、核验人、通知人\n getPersonList: function getPersonList() {\n var _this7 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:960\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this7.personList, \" at pages/projectEnd/qualityManage/addIssue.vue:962\");\n _this7.personList = res.result;\n var index = _this7.personList.findIndex(function (item) {\n return item.userId == _this7.userInfo.userId;\n });\n if (index != -1) {\n _this7.verifyManIndex = index;\n _this7.form.verifyManId = _this7.personList[index].userId;\n } else {\n _this7.defaultAuditPerson = _this7.userInfo.realName;\n _this7.form.verifyManId = _this7.userInfo.userId;\n }\n } else {\n _this7.personList = [];\n }\n }\n });\n },\n //获取人员列表--- 整改人\n getPersonUpdateList: function getPersonUpdateList() {\n var _this8 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n enterpriseId: this.unitEnterpriseId\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:991\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this8.personList, \" at pages/projectEnd/qualityManage/addIssue.vue:993\");\n _this8.personUpdateList = res.result;\n } else {\n _this8.personUpdateList = [];\n }\n }\n });\n },\n //选择的分包公司\n checkSubpackage: function checkSubpackage(val) {\n var _this9 = this;\n // if (this.checkType == 1) {\n this.form.enterpriseSn = val.enterpriseSn;\n this.form.enterpriseName = val.enterpriseName;\n this.unitEnterpriseId = val.id;\n this.form.changeId = \"\";\n this.changePeopleIndex = null;\n this.isShowPicker = false;\n this.$nextTick(function () {\n _this9.isShowPicker = true;\n });\n var newArr = [];\n if (this.areaData.systemUsers) {\n this.areaData.systemUsers.filter(function (item) {\n if (item.userId && item.enterpriseId == _this9.unitEnterpriseId) {\n newArr.push(item);\n }\n });\n this.personUpdateList = newArr;\n }\n // this.getPersonUpdateList();\n // } else {\n // \tthis.form.enterpriseSn = val.enterpriseSn;\n // \tthis.form.enterpriseName = val.enterpriseName;\n // }\n this.unitDialog = false;\n },\n //删除---公用\n deletesBtn: function deletesBtn(type) {\n window.event.stopPropagation();\n //type==1 分包单位\n if (type == 1) {\n this.form.enterpriseSn = '';\n this.form.enterpriseName = '';\n }\n },\n //现场整改是否完成\n switchChange: function switchChange(e) {\n if (e.detail.value) {\n this.form.status = 5;\n } else {\n this.form.status = 2;\n }\n },\n //选择分包单位\n clickUnit: function clickUnit() {\n this.unitDialog = true;\n // this.getSubpackageLsit();\n },\n //切换分包商\n checkTypeBtn: function checkTypeBtn(type) {\n this.checkType = type;\n this.getSubpackageLsit();\n },\n //上传附件\n uploadImg: function uploadImg(type) {\n var that = this;\n if (type == 1) {\n uni.chooseImage({\n count: 5 - that.imgFileList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.imgFileList.push(data);\n uni.getImageInfo({\n src: tempFilePaths[0],\n success: function success(resInfo) {\n __f__(\"log\", '传过去啦 resInfo', resInfo, \" at pages/projectEnd/qualityManage/addIssue.vue:1085\");\n that.imgList = {\n imgUrl: tempFilePaths[0],\n imgWidth: resInfo.width,\n imgHeight: resInfo.height\n // team:'班组人员',\n // name: '张三'\n };\n\n that.openImg = true;\n }\n });\n that.openImg = false;\n }\n });\n }\n });\n } else if (type == 2) {\n uni.chooseImage({\n count: 1,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n if (that.imgDialogUrl.length >= 1) {\n that.imgDialogUrl[0].url = data.url;\n that.imgDialogUrl[0].name = data.name;\n } else {\n that.imgDialogUrl.push(data);\n }\n __f__(\"log\", \"上传图片的信息:\", that.imgDialogUrl, \" at pages/projectEnd/qualityManage/addIssue.vue:1123\");\n }\n });\n }\n });\n } else {\n uni.chooseImage({\n count: 1 - that.mapImgList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.mapImgList.push(data);\n }\n });\n }\n });\n }\n },\n //删除附件\n deleteImg: function deleteImg(val, type) {\n var that = this;\n uni.showModal({\n title: '提示',\n content: '确定删除该附件吗?',\n success: function success(res) {\n if (res.confirm) {\n if (type == 1) {\n var fileArr = JSON.parse(JSON.stringify(that.imgFileList));\n fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n fileArr.splice(index, 1);\n }\n });\n that.imgFileList = fileArr;\n } else if (type == 2) {\n var _fileArr = JSON.parse(JSON.stringify(that.videoFileList));\n _fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n _fileArr.splice(index, 1);\n }\n });\n that.videoFileList = _fileArr;\n }\n } else if (res.cancel) {\n __f__(\"log\", '用户点击取消', \" at pages/projectEnd/qualityManage/addIssue.vue:1179\");\n }\n }\n });\n },\n //上传视频\n uploadVideo: function uploadVideo() {\n var that = this;\n uni.chooseVideo({\n count: 5 - that.videoFileList.length,\n sourceType: ['camera', 'album'],\n compressed: false,\n success: function success(res) {\n var url = res.tempFilePath;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: url,\n name: 'files',\n success: function success(uploadFileRes) {\n var obj = {\n name: JSON.parse(uploadFileRes.data).data[0].fileInfo.originalFilename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.videoFileList.push(obj);\n __f__(\"log\", '上传视频后的数据', that.videoFileList, \" at pages/projectEnd/qualityManage/addIssue.vue:1205\");\n }\n });\n }\n });\n },\n //查看视频\n playVideo: function playVideo(url, type) {\n uni.navigateTo({\n url: '../carWashManage/mediaPlay?url=' + url + '&type=' + type\n });\n },\n //预览图片\n previewImage: function previewImage(url) {\n uni.previewImage({\n urls: [url]\n });\n },\n //新增保存\n addSaveBtn: function addSaveBtn() {\n var _this10 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var arr, arr2, data, pointArr, i, obj, data2;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n arr = [], arr2 = [];\n _this10.videoFileList.forEach(function (item) {\n arr.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n _this10.imgFileList.forEach(function (item) {\n arr2.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n // this.form.fileUrl = this.videoFileList.length>0?JSON.stringify(this.videoFileList):'';\n // this.form.imageUrl = this.imgFileList.length>0?JSON.stringify(this.imgFileList):'';\n _this10.form.fileUrl = arr.join(',');\n _this10.form.imageUrl = arr2.join(',');\n data = JSON.parse(JSON.stringify(_this10.form));\n if (data.regionId) {\n _context.next = 9;\n break;\n }\n uni.showToast({\n title: '请选择检查部位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 9:\n if (!(!data.dangerItemContent && _this10.typeCheck == \"type1\")) {\n _context.next = 14;\n break;\n }\n uni.showToast({\n title: '请选择问题描述',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 14:\n if (data.dangerItemContent) {\n _context.next = 17;\n break;\n }\n uni.showToast({\n title: '请选择排查分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 17:\n if (!(!data.dangerTypeId && _this10.typeCheck == \"type1\")) {\n _context.next = 20;\n break;\n }\n uni.showToast({\n title: '请选择问题分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 20:\n if (data.inspectTime) {\n _context.next = 23;\n break;\n }\n uni.showToast({\n title: '请选择检查时间',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 23:\n if (data.enterpriseName) {\n _context.next = 26;\n break;\n }\n uni.showToast({\n title: '请选择分包单位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 26:\n if (!(!data.changeLimitTime && _this10.typeCheck == \"type1\")) {\n _context.next = 29;\n break;\n }\n uni.showToast({\n title: '请选择整改时限',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 29:\n if (!(!data.changeId && _this10.typeCheck == \"type1\")) {\n _context.next = 32;\n break;\n }\n uni.showToast({\n title: '请选择整改人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 32:\n if (!(!data.reviewId && _this10.typeCheck == \"type1\")) {\n _context.next = 35;\n break;\n }\n uni.showToast({\n title: '请选择复查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 35:\n if (!(!data.verifyManId && _this10.typeCheck == \"type1\")) {\n _context.next = 38;\n break;\n }\n uni.showToast({\n title: '请选择核查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 38:\n ;\n data.level = data.level == 0 ? Number(data.level) + 1 : data.level;\n data.urgentLevel = data.urgentLevel == 0 ? Number(data.urgentLevel) + 1 : data.urgentLevel;\n data.projectSn = _this10.projectSn;\n data.inspectManId = _this10.userInfo.userId;\n data.creatorId = _this10.userInfo.userId;\n data.dangerItemContent = _this10.issueName;\n pointArr = [];\n for (i = 0; i < _this10.pointList.length; i++) {\n obj = _this10.pointList[i].x + '*' + _this10.pointList[i].y;\n pointArr.push(obj);\n }\n data.measurePoints = pointArr.join(',');\n __f__(\"log\", 'data.measurePoints=============', data.measurePoints, \" at pages/projectEnd/qualityManage/addIssue.vue:1333\");\n if (!(_this10.typeCheck == \"type1\")) {\n _context.next = 54;\n break;\n }\n __f__(\"log\", data, \" at pages/projectEnd/qualityManage/addIssue.vue:1335\");\n // 质量问题\n _this10.sendRequest({\n url: 'xmgl/qualityInspectionRecord/add',\n method: 'post',\n data: data,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/qualityManage/addIssue.vue:1342\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n _context.next = 60;\n break;\n case 54:\n __f__(\"log\", _this10.taskId, \" at pages/projectEnd/qualityManage/addIssue.vue:1361\");\n __f__(\"log\", _this10.itemId, \" at pages/projectEnd/qualityManage/addIssue.vue:1362\");\n // 排查记录\n data2 = {\n dangerDesc: data.dangerDesc,\n dangerItemContent: _this10.issueName,\n dangerItemId: data.dangerItemId,\n dangerTypeId: data.dangerTypeId,\n enterpriseName: data.enterpriseName,\n enterpriseSn: data.enterpriseSn,\n fileUrl: data.fileUrl,\n imageUrl: data.imageUrl,\n inspectManId: data.inspectManId,\n inspectTime: data.inspectTime,\n projectSn: data.projectSn,\n recordType: 2,\n regionId: data.regionId,\n regionName: data.regionName,\n routineInspect: 0,\n subsectionId: data.subsectionId,\n //分部工程\n subentryId: data.subentryId,\n //分项工程\n floor: data.floor,\n //巡检楼层\n addedDescription: data.addedDescription,\n //事件描述\n taskId: _this10.taskId || null,\n // 任务ID\n itemId: _this10.itemId || null // 任务子ID\n };\n\n __f__(\"log\", data.taskId, \" at pages/projectEnd/qualityManage/addIssue.vue:1387\");\n _context.next = 60;\n return _this10.sendRequest({\n url: 'xmgl/qualityInspectionRecord/add',\n method: 'post',\n data: data2,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/qualityManage/addIssue.vue:1393\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n case 60:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 切换tab\n radioChange: function radioChange(value) {\n var _this11 = this;\n this.typeCheck = value;\n this.checkedTab = value;\n __f__(\"log\", '切换tab', this.form, \" at pages/projectEnd/qualityManage/addIssue.vue:1419\");\n // 重制内容\n this.form = {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: 0,\n urgentLevel: 0,\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1\n // taskId:'',\n // itemId:''\n };\n\n this.issueName = '';\n this.checkPointName = \"\";\n this.videoFileList = [];\n this.imgFileList = [];\n this.subsectionIndex = -1;\n this.subentryIndex = -1;\n this.changePeopleIndex = null;\n // 重置检查部位\n this.dealFalseCheck(this.checkPointList);\n this.$refs.locationTree._reTreeList();\n // 分包单位数据拿取\n this.subpackageLsit = [];\n // 整改人数据拿取\n this.personUpdateList = [];\n var index = this.personList.findIndex(function (item) {\n return item.userId == _this11.userInfo.userId;\n });\n if (index != -1) {\n this.verifyManIndex = index;\n this.form.verifyManId = this.personList[index].userId;\n } else {\n this.defaultAuditPerson = this.userInfo.realName;\n this.form.verifyManId = this.userInfo.userId;\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcHJvamVjdEVuZC9xdWFsaXR5TWFuYWdlL2FkZElzc3VlLnZ1ZSJdLCJuYW1lcyI6WyJjb21wb25lbnRzIiwidGtpVHJlZSIsImNhbnZlcnNDb20iLCJkYXRlVGltZVBpY2NrZXIiLCJkYXRhIiwiaXNTaG93UGlja2VyIiwic3RhcnRUaW1lIiwiZ2V0RGF0ZSIsImZvcm1hdCIsInN0YXJ0VGltZTIiLCJjaGVja2VkVGFiIiwiaW1nTGlzdCIsIm9wZW5JbWciLCJiYXNlNjRJbWFnZSIsImltZ0luZGV4IiwicG9pbnRMaXN0IiwibG9jYXRpb24iLCJsZWZ0IiwidG9wIiwieCIsInkiLCJpbWdEaWFsb2dVcmxTdSIsImltZ0RpYWxvZ1VybFRleHQiLCJpbWdEaWFsb2ciLCJpbWdEaWFsb2dVcmwiLCJwYWdlVGl0bGUiLCJwcm9qZWN0U24iLCJjaGVja1R5cGUiLCJmb3JtIiwicmVnaW9uSWQiLCJyZWdpb25OYW1lIiwiZGFuZ2VySXRlbUNvbnRlbnQiLCJkYW5nZXJJdGVtSWQiLCJkYW5nZXJUeXBlSWQiLCJkYW5nZXJEZXNjIiwicmVtYXJrIiwicm91dGluZUlkIiwibGV2ZWwiLCJ1cmdlbnRMZXZlbCIsImluc3BlY3RNYW5JZCIsImluc3BlY3RUaW1lIiwiZGF0ZWZvcm1hdCIsIkRhdGUiLCJlbnRlcnByaXNlU24iLCJlbnRlcnByaXNlTmFtZSIsImNoYW5nZUxpbWl0VGltZSIsImNoYW5nZUlkIiwicmV2aWV3SWQiLCJ2ZXJpZnlNYW5JZCIsIm5vdGlmeVBlcnNvbiIsInN0YXR1cyIsIm1lYXN1cmVQb2ludHMiLCJpbWFnZVVybCIsImZpbGVVcmwiLCJyZWNvcmRUeXBlIiwiZGFuZ2VyTmFtZSIsInN1YnNlY3Rpb25JZCIsInN1YmVudHJ5SWQiLCJmbG9vciIsImFkZGVkRGVzY3JpcHRpb24iLCJ0YXNrSWQiLCJpdGVtSWQiLCJjaGVja1BvaW50TGlzdCIsImNoZWNrUG9pbnROYW1lIiwiaXNzdWVMaXN0IiwiaXNzdWVOYW1lIiwiaXNzdWVHcmFkZUxpc3QiLCJuYW1lIiwidmFsdWUiLCJpc3N1ZUdyYWRlSW5kZXgiLCJ1cmdlbmN5TGlzdCIsInVyZ2VuY3lJbmRleCIsInBlcnNvblVwZGF0ZUxpc3QiLCJwZXJzb25MaXN0IiwiaW5zcGVjdE1hbkluZGV4IiwiY2hhbmdlUGVvcGxlSW5kZXgiLCJ2ZXJpZnlNYW5JbmRleCIsInJldmlld0luZGV4Iiwibm90aWZpZXIiLCJ1bml0RGlhbG9nIiwic3VicGFja2FnZUxzaXQiLCJ2aWRlb0ZpbGVMaXN0IiwiaW1nRmlsZUxpc3QiLCJtYXBJbWdMaXN0IiwiYmFzaWNJbmZvIiwic2VsZWN0SW5kZXgiLCJ1c2VySW5mbyIsInR5cGVDaGVjayIsImxpc3REYXRhIiwic3ViTGlzdERhdGEiLCJzdWJzZWN0aW9uSW5kZXgiLCJzdWJlbnRyeUluZGV4IiwidW5pdEVudGVycHJpc2VJZCIsImRlZmF1bHRBdWRpdFBlcnNvbiIsInJldmlld0xpc3QiLCJhcmVhRGF0YSIsIm9uTG9hZCIsIm9wdGlvbiIsInR5cGUiLCJKU09OIiwicGFyc2UiLCJ1bmkiLCJnZXRTdG9yYWdlU3luYyIsImdldENoZWNrUG9pbnRMaXN0IiwiZ2V0SXNzdWVMaXN0IiwiZ2V0UGVyc29uTGlzdCIsImdldFByb2dyZXNzTGlzdERhdGEiLCJtZXRob2RzIiwiZ2V0UmV2aWV3UGVvcGxlTGlzdCIsInNlbmRSZXF1ZXN0IiwidXJsIiwibWV0aG9kIiwicXVhbGl0eVJlZ2lvbklkIiwicXVhbGl0eVJlZ2lvbkJpbmRUeXBlIiwiaXNTdXBlcnZpc2luZ1JvbGVOYW1lIiwic3VjY2VzcyIsInJlcyIsInJlc3VsdCIsImxlbmd0aCIsImRhdGUiLCJ5ZWFyIiwiZ2V0RnVsbFllYXIiLCJtb250aCIsImdldE1vbnRoIiwiZGF5IiwiaW1nVXJsIiwidmFsIiwiaW1nVXBsb2FkIiwiYmFzZUltZyIsInRoYXQiLCJjdURhdGUiLCJnZXRUaW1lIiwiYXJyIiwicGFybWFycyIsImhlYWRlciIsImltZ0RpYWxvZ0J0biIsInBvaW50U2hvdyIsImluZGV4IiwicmVtb3ZlUG9pbnQiLCJzcGxpY2UiLCJwb2ludEltYWdlIiwiZXZlbnQiLCJkZXRhaWwiLCJvYmoiLCJwdXNoIiwicG9pbnRUZXh0Iiwib3BlbkltZ0RpYWxvZyIsInRvZ2dsZSIsImNoZWNrU3ViTGlzdERhdGEiLCJlIiwiaWQiLCJjaGlsZHJlbiIsImNvZGUiLCJub3RTdXBlcnZpc2luZ1VuaXQiLCJkZWFsRmFsc2VDaGVjayIsIm1hcCIsIml0ZW0iLCJjaGVja2VkIiwib3JDaGVja2VkIiwiY2hlY2tQb2ludEJ0biIsInN0cmluZ2lmeSIsInBhcmVudHMiLCJqb2luIiwiZHV0eUlkIiwiaW50ZW5kYW5jZU5hbWVzIiwiaW50ZW5kYW5jZUlkcyIsImVudGVycHJpc2VJbmZvcyIsIndvcmtlck5hbWUiLCJyZWNvcmRTdGF0dXMiLCJmb3JFYWNoIiwiaXRtIiwiaXRlbUxpc3QiLCJpdGVtMiIsImNvbnRlbnQiLCJzdXBwbGVtZW50VGV4dGFyZWEiLCJjbGFpbVRleHRhcmVhIiwiZXZlbnREZXNjcmlwdGlvbiIsImV2ZW50Zmxvb3IiLCJpbnB1dCIsInBhcnNlSW50IiwiZ2V0U3VicGFja2FnZUxzaXQiLCJwYWdlTm8iLCJwYWdlU2l6ZSIsInJlY29yZHMiLCJiaW5kUGlja2VyQ2hhbmdlIiwidXNlcklkIiwiZjMiLCJmaW5kSW5kZXgiLCJyZWFsTmFtZSIsImdldFBlcnNvblVwZGF0ZUxpc3QiLCJlbnRlcnByaXNlSWQiLCJjaGVja1N1YnBhY2thZ2UiLCIkbmV4dFRpY2siLCJuZXdBcnIiLCJzeXN0ZW1Vc2VycyIsImZpbHRlciIsImRlbGV0ZXNCdG4iLCJ3aW5kb3ciLCJzdG9wUHJvcGFnYXRpb24iLCJzd2l0Y2hDaGFuZ2UiLCJjbGlja1VuaXQiLCJjaGVja1R5cGVCdG4iLCJ1cGxvYWRJbWciLCJjaG9vc2VJbWFnZSIsImNvdW50IiwidGVtcEZpbGVQYXRocyIsInVwbG9hZEZpbGUiLCJ1cmxfY29uZmlnIiwiZmlsZVBhdGgiLCJ1cGxvYWRGaWxlUmVzIiwiZmlsZW5hbWUiLCJnZXRJbWFnZUluZm8iLCJzcmMiLCJyZXNJbmZvIiwiaW1nV2lkdGgiLCJ3aWR0aCIsImltZ0hlaWdodCIsImhlaWdodCIsImRlbGV0ZUltZyIsInNob3dNb2RhbCIsInRpdGxlIiwiY29uZmlybSIsImZpbGVBcnIiLCJjYW5jZWwiLCJ1cGxvYWRWaWRlbyIsImNob29zZVZpZGVvIiwic291cmNlVHlwZSIsImNvbXByZXNzZWQiLCJ0ZW1wRmlsZVBhdGgiLCJmaWxlSW5mbyIsIm9yaWdpbmFsRmlsZW5hbWUiLCJwbGF5VmlkZW8iLCJuYXZpZ2F0ZVRvIiwicHJldmlld0ltYWdlIiwidXJscyIsImFkZFNhdmVCdG4iLCJhcnIyIiwic2hvd1RvYXN0IiwiaWNvbiIsIk51bWJlciIsImNyZWF0b3JJZCIsInBvaW50QXJyIiwiaSIsInNldFRpbWVvdXQiLCJuYXZpZ2F0ZUJhY2siLCJkZWx0YSIsIm1lc3NhZ2UiLCJkYXRhMiIsInJvdXRpbmVJbnNwZWN0IiwicmFkaW9DaGFuZ2UiLCIkcmVmcyIsImxvY2F0aW9uVHJlZSIsIl9yZVRyZWVMaXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUEyYUE7QUFDQTtBQUNBO0FBQ0E7QUE5YUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUEsZUFRZTtFQUNkQSxVQUFVLEVBQUU7SUFDWEMsT0FBTyxFQUFQQSxnQkFBTztJ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LENBQUNSLGdCQUFnQixHQUFHLEVBQUU7TUFDMUIsSUFBSWlFLEtBQUssR0FBRyxJQUFJLENBQUNoRSxVQUFVLENBQUNrSCxTQUFTLENBQUMsVUFBQS9CLElBQUksRUFBSTtRQUM3QyxPQUFPQSxJQUFJLENBQUM2QixNQUFNLElBQUksT0FBSSxDQUFDbkcsUUFBUSxDQUFDbUcsTUFBTTtNQUMzQyxDQUFDLENBQUM7TUFDRixJQUFJaEQsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFO1FBQ2hCLElBQUksQ0FBQzdELGNBQWMsR0FBRzZELEtBQUs7UUFDM0IsSUFBSSxDQUFDN0csSUFBSSxDQUFDb0IsV0FBVyxHQUFHLElBQUksQ0FBQ3lCLFVBQVUsQ0FBQ2dFLEtBQUssQ0FBQyxDQUFDZ0QsTUFBTTtNQUN0RCxDQUFDLE1BQU07UUFDTixJQUFJLENBQUM1RixrQkFBa0IsR0FBRyxJQUFJLENBQUNQLFFBQVEsQ0FBQ3NHLFFBQVE7UUFDaEQsSUFBSSxDQUFDaEssSUFBSSxDQUFDb0IsV0FBVyxHQUFHLElBQUksQ0FBQ3NDLFFBQVEsQ0FBQ21HLE1BQU07TUFDN0M7SUFDRDtFQUNEO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6Ijc4Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cblxuaW1wb3J0IHRraVRyZWUgZnJvbSBcIkAvY29tcG9uZW50cy90a2ktdHJlZS90a2ktdHJlZS52dWVcIlxuaW1wb3J0IGNhbnZlcnNDb20gZnJvbSBcIkAvcGFnZXMvdmlkZW9NYW5hZ2UvY29tcG9uZW50L2NhbnZlcnNDb20udnVlXCJcbmltcG9ydCBkYXRlVGltZVBpY2NrZXIgZnJvbSAnQC9jb21wb25lbnRzL2RhdGVUaW1lUGlja2VyL2luZGV4LnZ1ZSdcbmltcG9ydCB7XG5cdGRhdGVmb3JtYXRcbn0gZnJvbSBcIkAvdXRpbHMvdG9vbC5qc1wiXG5leHBvcnQgZGVmYXVsdCB7XG5cdGNvbXBvbmVudHM6IHtcblx0XHR0a2lUcmVlLFxuXHRcdGNhbnZlcnNDb20sXG5cdFx0ZGF0ZVRpbWVQaWNja2VyXG5cblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNTaG93UGlja2VyOiB0cnVlLFxuXHRcdFx0c3RhcnRUaW1lOiB0aGlzLmdldERhdGUoe1xuXHRcdFx0XHRmb3JtYXQ6IHRydWUsXG5cdFx0XHR9KSxcblx0XHRcdHN0YXJ0VGltZTI6IHRoaXMuZ2V0RGF0ZSh7XG5cdFx0XHRcdGZvcm1hdDogdHJ1ZSxcblx0XHRcdH0pLFxuXHRcdFx0Y2hlY2tlZFRhYjogJ3R5cGUxJyxcblx0XHRcdGltZ0xpc3Q6IHt9LFxuXHRcdFx0b3BlbkltZzogZmFsc2UsXG5cdFx0XHRiYXNlNjRJbWFnZTogJycsXG5cdFx0XHRpbWdJbmRleDogLTEsXG5cdFx0XHRwb2ludExpc3Q6IFtdLFxuXHRcdFx0bG9jYXRpb246IHtcblx0XHRcdFx0bGVmdDogJzAnLFxuXHRcdFx0XHR0b3A6ICcwJ1xuXHRcdFx0fSxcblx0XHRcdHg6IDAsXG5cdFx0XHR5OiAwLFxuXHRcdFx0aW1nRGlhbG9nVXJsU3U6IGZhbHNlLFxuXHRcdFx0aW1nRGlhbG9nVXJsVGV4dDogXCLnvJbovpHpmpDmgqPngrlcIixcblx0XHRcdGltZ0RpYWxvZzogZmFsc2UsXG5cdFx0XHRpbWdEaWFsb2dVcmw6IFtdLFxuXHRcdFx0cGFnZVRpdGxlOiAn5paw5aKe5qOA5p+lJyxcblx0XHRcdHByb2plY3RTbjogJycsXG5cdFx0XHRjaGVja1R5cGU6IDEsIC8v5YiG5YyF5ZWG57G75Z6LICAgMeS4k+S4muWIhuWMhSAgNuWKs+WKoeWIhuWMhVxuXHRcdFx0Zm9ybToge1xuXHRcdFx0XHRyZWdpb25JZDogXCJcIiwgLy8g5qOA5p+l6YOo5L2NXG5cdFx0XHRcdHJlZ2lvbk5hbWU6IFwiXCIsXG5cdFx0XHRcdGRhbmdlckl0ZW1Db250ZW50OiBcIlwiLFxuXHRcdFx0XHRkYW5nZXJJdGVtSWQ6IFwiXCIsXG5cdFx0XHRcdGRhbmdlclR5cGVJZDogXCJcIixcblx0XHRcdFx0ZGFuZ2VyRGVzYzogXCJcIixcblx0XHRcdFx0cmVtYXJrOiBcIlwiLFxuXHRcdFx0XHRyb3V0aW5lSWQ6IDAsXG5cdFx0XHRcdGxldmVsOiBcIlwiLFxuXHRcdFx0XHR1cmdlbnRMZXZlbDogXCJcIixcblx0XHRcdFx0aW5zcGVjdE1hbklkOiBcIlwiLFxuXHRcdFx0XHRpbnNwZWN0VGltZTogZGF0ZWZvcm1hdChuZXcgRGF0ZSgpKSxcblx0XHRcdFx0ZW50ZXJwcmlzZVNuOiBcIlwiLFxuXHRcdFx0XHRlbnRlcnByaXNlTmFtZTogXCJcIixcblx0XHRcdFx0Y2hhbmdlTGltaXRUaW1lOiBcIlwiLFxuXHRcdFx0XHRjaGFuZ2VJZDogXCJcIixcblx0XHRcdFx0cmV2aWV3SWQ6IFwiXCIsXG5cdFx0XHRcdHZlcmlmeU1hbklkOiBcIlwiLFxuXHRcdFx0XHRub3RpZnlQZXJzb246IFtdLFxuXHRcdFx0XHRzdGF0dXM6IDIsIC8vIOeOsOWcuuaVtOaUueeKtuaAgSAgMuacquWujOaIkCAgIDXlt7LlrozmiJBcblx0XHRcdFx0bWVhc3VyZVBvaW50czogW10sXG5cdFx0XHRcdGltYWdlVXJsOiBcIlwiLFxuXHRcdFx0XHRmaWxlVXJsOiBcIlwiLFxuXHRcdFx0XHRyZWNvcmRUeXBlOiAxLFxuXHRcdFx0XHRkYW5nZXJOYW1lOiAnJyxcblx0XHRcdFx0c3Vic2VjdGlvbklkOiAnJywgLy/liIbpg6jlt6XnqItcblx0XHRcdFx0c3ViZW50cnlJZDogJycsIC8v5YiG6aG55bel56iLXG5cdFx0XHRcdGZsb29yOiAnJywgLy/lt6Hmo4DmpbzlsYJcblx0XHRcdFx0YWRkZWREZXNjcmlwdGlvbjogJycsIC8v5LqL5Lu25o+P6L+wXG5cdFx0XHRcdHRhc2tJZDogJycsIC8v5Lu75YqhSURcblx0XHRcdFx0aXRlbUlkOiAnJyAvLyDku7vliqHlrZBJRFxuXHRcdFx0fSxcblx0XHRcdGNoZWNrUG9pbnRMaXN0OiBbXSwgLy/ojrflj5bmo4Dmn6Xpg6jkvY3mlbDmja5cblx0XHRcdGNoZWNrUG9pbnROYW1lOiAnJyxcblx0XHRcdGlzc3VlTGlzdDogW10sIC8v6Zeu6aKY5YiG57G7IHx8IOmXrumimOaPj+i/sFxuXHRcdFx0aXNzdWVOYW1lOiAnJyxcblx0XHRcdGlzc3VlR3JhZGVMaXN0OiBbe1xuXHRcdFx0XHRcdG5hbWU6ICfkuIDnuqcnLFxuXHRcdFx0XHRcdHZhbHVlOiAxXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRuYW1lOiAn5LqM57qnJyxcblx0XHRcdFx0XHR2YWx1ZTogMlxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bmFtZTogJ+S4iee6pycsXG5cdFx0XHRcdFx0dmFsdWU6IDNcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG5hbWU6ICflm5vnuqcnLFxuXHRcdFx0XHRcdHZhbHVlOiA0XG5cdFx0XHRcdH0sXG5cdFx0XHRdLCAvL+mXrumimOetiee6p1xuXHRcdFx0aXNzdWVHcmFkZUluZGV4OiAwLFxuXHRcdFx0dXJnZW5jeUxpc3Q6IFt7XG5cdFx0XHRcdFx0bmFtZTogJ+S4gOiIrCcsXG5cdFx0XHRcdFx0dmFsdWU6IDFcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG5hbWU6ICfkuKXph40nLFxuXHRcdFx0XHRcdHZhbHVlOiAyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRuYW1lOiAn57Sn6KaBJyxcblx0XHRcdFx0XHR2YWx1ZTogM1xuXHRcdFx0XHR9LFxuXHRcdFx0XSwgLy/ntKfmgKXnqIvluqZcblx0XHRcdHVyZ2VuY3lJbmRleDogMCxcblx0XHRcdHBlcnNvblVwZGF0ZUxpc3Q6IFtdLCAvLyDkurrlkZjliJfooagt5pW05pS55Lq6XG5cdFx0XHRwZXJzb25MaXN0OiBbXSwgLy/kurrlkZjliJfooaggIC0tIOajgOafpeS6uuOAgeaVtOaUueS6uuOAgeWkjeafpeS6uuOAgeaguOmqjOS6uuOAgemAmuefpeS6ulxuXHRcdFx0aW5zcGVjdE1hbkluZGV4OiBudWxsLCAvL+ajgOafpeS6ulxuXHRcdFx0Y2hhbmdlUGVvcGxlSW5kZXg6IG51bGwsIC8v5pW05pS55Lq6XG5cdFx0XHR2ZXJpZnlNYW5JbmRleDogbnVsbCwgLy/moLjpqozkurpcblx0XHRcdHJldmlld0luZGV4OiBudWxsLCAvL+WkjeafpeS6ulxuXHRcdFx0bm90aWZpZXI6ICcnLCAvL+mAmuefpeS6ulxuXHRcdFx0dW5pdERpYWxvZzogZmFsc2UsIC8v5YiG5YyF5ZWG5by556qXXG5cdFx0XHRzdWJwYWNrYWdlTHNpdDogW10sIC8v5YiG5YyF5ZWG5pWw5o2u5YiX6KGoXG5cdFx0XHR2aWRlb0ZpbGVMaXN0OiBbXSxcblx0XHRcdGltZ0ZpbGVMaXN0OiBbXSxcblx0XHRcdG1hcEltZ0xpc3Q6IFtdLFxuXHRcdFx0YmFzaWNJbmZvOiB7fSxcblx0XHRcdHNlbGVjdEluZGV4OiBudWxsLFxuXHRcdFx0dXNlckluZm86ICcnLFxuXHRcdFx0dHlwZUNoZWNrOiAndHlwZTEnLCAvLyDnsbvlnosgdHlwZTHkuLrotKjph4/pl67popggIHR5cGUy5Li65o6S5p+l6K6w5b2VXG5cdFx0XHRsaXN0RGF0YTogW10sIC8v5YiG6YOo5bel56iLXG5cdFx0XHRzdWJMaXN0RGF0YTogW10sIC8v5YiG6aG55bel56iLXG5cdFx0XHRzdWJzZWN0aW9uSW5kZXg6IC0xLCAvL+WIhumDqOW3peeoi1xuXHRcdFx0c3ViZW50cnlJbmRleDogLTEsIC8vLy/liIbpobnlt6XnqItcblx0XHRcdHVuaXRFbnRlcnByaXNlSWQ6IFwiXCIsXG5cdFx0XHR0YXNrSWQ6ICcnLCAvL+S7u+WKoUlEXG5cdFx0XHRpdGVtSWQ6ICcnLCAvLyDku7vliqHlrZBJRFxuXHRcdFx0ZGVmYXVsdEF1ZGl0UGVyc29uOiBcIlwiLFxuXHRcdFx0cmV2aWV3TGlzdDogW10sXG5cdFx0XHRhcmVhRGF0YToge31cblx0XHR9XG5cdH0sXG5cdG9uTG9hZChvcHRpb24pIHtcblx0XHR0aGlzLnBhZ2VUaXRsZSA9IG9wdGlvbi50eXBlID09ICdhZGQnID8gJ+aWsOWinuajgOafpScgOiAn57yW6L6R5qOA5p+lJztcblx0XHR0aGlzLnByb2plY3RTbiA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKCdwcm9qZWN0RGV0YWlsJykpLnByb2plY3RTbjtcblx0XHR0aGlzLnVzZXJJbmZvID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJbmZvJykpO1xuXHRcdHRoaXMuZ2V0Q2hlY2tQb2ludExpc3QoKTtcblx0XHR0aGlzLmdldElzc3VlTGlzdCgpO1xuXHRcdHRoaXMuZ2V0UGVyc29uTGlzdCgpO1xuXHRcdC8vIHRoaXMuZ2V0UmV2aWV3UGVvcGxlTGlzdCgpO1xuXHRcdC8vIHRoaXMuZ2V0UGVyc29uVXBkYXRlTGlzdCgpO1xuXHRcdHRoaXMuZ2V0UHJvZ3Jlc3NMaXN0RGF0YSgpXG5cdFx0Y29uc29sZS5sb2coJ2xsbCcsIG9wdGlvbi50YXNrSWQsIG9wdGlvbi5pdGVtSWQpXG5cdFx0dGhpcy50YXNrSWQgPSBvcHRpb24udGFza0lkXG5cdFx0dGhpcy5pdGVtSWQgPSBvcHRpb24uaXRlbUlkXG5cdFx0dGhpcy5mb3JtLnRhc2tJZCA9IG9wdGlvbi50YXNrSWRcblx0XHR0aGlzLmZvcm0uaXRlbUlkID0gb3B0aW9uLml0ZW1JZFxuXHRcdGNvbnNvbGUubG9nKGRhdGVmb3JtYXQobmV3IERhdGUoKSksIDc3Nzg4OClcblx0fSxcblxuXG5cdG1ldGhvZHM6IHtcblx0XHQvL+iOt+WPluWkjeafpeS6ulxuXHRcdGdldFJldmlld1Blb3BsZUxpc3QoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdFx0Ly8gZW50ZXJwcmlzZVR5cGVJZDogNyxcblx0XHRcdFx0XHRxdWFsaXR5UmVnaW9uSWQ6IHRoaXMuZm9ybS5yZWdpb25JZCxcblx0XHRcdFx0XHRxdWFsaXR5UmVnaW9uQmluZFR5cGU6IDIsXG5cdFx0XHRcdFx0aXNTdXBlcnZpc2luZ1JvbGVOYW1lOiAxXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcblx0XHRcdFx0XHRpZiAocmVzLnJlc3VsdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJldmlld0xpc3QgPSByZXMucmVzdWx0O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJldmlld0xpc3QgPSBbXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblx0XHRnZXREYXRlKHR5cGUpIHtcblx0XHRcdGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0bGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRsZXQgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xuXHRcdFx0bGV0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xuXHRcdFx0aWYgKHR5cGUgPT09ICdzdGFydCcpIHtcblx0XHRcdFx0eWVhciA9IHllYXI7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT09ICdlbmQnKSB7XG5cdFx0XHRcdC8vIHllYXIgPSB5ZWFyICsgMjtcblx0XHRcdH1cblx0XHRcdG1vbnRoID0gbW9udGggPiA5ID8gbW9udGggOiAnMCcgKyBtb250aDtcblx0XHRcdGRheSA9IGRheSA+IDkgPyBkYXkgOiAnMCcgKyBkYXk7XG5cdFx0XHRyZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcblx0XHR9LFxuXHRcdGltZ1VybCh2YWwpIHtcblx0XHRcdHRoaXMub3BlbkltZyA9IGZhbHNlXG5cdFx0XHR0aGlzLmltZ1VwbG9hZCh2YWwpXG5cblx0XHRcdHRoaXMub3BlbkltZyA9IHRydWVcblx0XHR9LFxuXG5cdFx0Ly/lm77niYfkuIrkvKDor7fmsYLnmoTmjqXlj6Ncblx0XHRpbWdVcGxvYWQoYmFzZUltZykge1xuXHRcdFx0Y29uc29sZS5sb2coJ+i/m+WFpS0tLS0tLS0tLS3lm77niYfkuIrkvKDor7fmsYLnmoTmjqXlj6MnKTtcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0bGV0IGN1RGF0ZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXHRcdFx0bGV0IGFyciA9IFtdXG5cdFx0XHR0aGF0LmJhc2U2NEltYWdlID0gYmFzZUltZ1xuXHRcdFx0bGV0IHBhcm1hcnMgPSB7XG5cdFx0XHRcdGJhc2U2NEltYWdlOiB0aGF0LmJhc2U2NEltYWdlXG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xuXHRcdFx0XHR1cmw6ICd4bWdsL3VwbG9hZC91cGxvYWRCYXNlNjQnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0aGVhZGVyOiB7XG5cdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIC8v6Ieq5a6a5LmJ6K+35rGC5aS05L+h5oGvXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGRhdGE6IHBhcm1hcnMsXG5cdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6L2s5o2i5ZCO55qE5Zyw5Z2ALS0tLS0tLS0tLScsIHJlcy5kYXRhLmltYWdlVXJsKTtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6Zi25q615Luj56CBICBpbWdVcGxvYWQg6ICX5pe2MiDvvJonICsgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gY3VEYXRlKSlcblx0XHRcdFx0XHR0aGF0LmltZ0ZpbGVMaXN0W3RoYXQuaW1nRmlsZUxpc3QubGVuZ3RoIC0gMV0udXJsID0gcmVzLmRhdGEuaW1hZ2VVcmxcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXHRcdGltZ0RpYWxvZ0J0bigpIHtcblx0XHRcdHRoaXMuaW1nRGlhbG9nID0gZmFsc2Vcblx0XHRcdC8vIHRoaXMucG9pbnRMaXN0PVtdXG5cdFx0fSxcblx0XHQvL+eCueWHu+eCueS9jeWxleekuueahOWGheWuuVxuXHRcdHBvaW50U2hvdyhpbmRleCkge1xuXHRcdFx0Y29uc29sZS5sb2coXCLlvZPliY1pbmRleCA6IFwiICsgaW5kZXggKyBcIi0gdGhpcy5pbWdJbmRleDogXCIgKyB0aGlzLmltZ0luZGV4KVxuXHRcdFx0aWYgKGluZGV4ID09PSB0aGlzLmltZ0luZGV4KSB7XG5cdFx0XHRcdHRoaXMuaW1nSW5kZXggPSAtMVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5pbWdJbmRleCA9IGluZGV4XG5cdFx0XHR9XG5cdFx0fSxcblx0XHQvL+WIoOmZpOeCueS9jVxuXHRcdHJlbW92ZVBvaW50KGluZGV4KSB7XG5cdFx0XHRjb25zb2xlLmxvZygn54K55Ye755qE5YaF5a65JywgaW5kZXgpO1xuXHRcdFx0dGhpcy5wb2ludExpc3Quc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdHRoaXMuaW1nSW5kZXggPSAtMVxuXHRcdH0sXG5cdFx0Ly/luIPngrlcblx0XHRwb2ludEltYWdlKGV2ZW50KSB7XG5cdFx0XHRpZiAodGhpcy5pbWdEaWFsb2dVcmxTdSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcIuW8gOWni+W4g+eCuSDvvJpcIiwgZXZlbnQpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcInjvvJpcIiwgZXZlbnQuZGV0YWlsLngpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcInkg77yaXCIsIGV2ZW50LmRldGFpbC55KTtcblx0XHRcdFx0bGV0IG9iaiA9IHtcblx0XHRcdFx0XHR4OiBldmVudC5kZXRhaWwueCxcblx0XHRcdFx0XHR5OiBldmVudC5kZXRhaWwueVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMucG9pbnRMaXN0LnB1c2gob2JqKVxuXHRcdFx0fVxuXG5cdFx0fSxcblx0XHQvL+W8gOWni+W4g+eCueaIluiAhee7k+adn+W4g+eCuVxuXHRcdHBvaW50VGV4dCgpIHtcblx0XHRcdHRoaXMuaW1nRGlhbG9nVXJsVGV4dCA9IHRoaXMuaW1nRGlhbG9nVXJsU3UgPyBcIue8lui+kemakOaCo+eCuVwiIDogXCLkv53lrZjpmpDmgqPngrlcIlxuXHRcdFx0dGhpcy5pbWdEaWFsb2dVcmxTdSA9ICF0aGlzLmltZ0RpYWxvZ1VybFN1XG5cblx0XHR9LFxuXHRcdC8v5omT5byA5Zu+57q45LiK5Lyg5by55qGGXG5cdFx0b3BlbkltZ0RpYWxvZygpIHtcblx0XHRcdHRoaXMuaW1nRGlhbG9nID0gdHJ1ZVxuXHRcdH0sXG5cdFx0dG9nZ2xlKCkge30sXG5cdFx0Ly/liIbpg6jlt6XnqIvmlLnliqjkuovku7Zcblx0XHRjaGVja1N1Ykxpc3REYXRhKGUsIHR5cGUpIHtcblx0XHRcdGNvbnNvbGUubG9nKGUsIHR5cGUpXG5cdFx0XHRpZiAodHlwZSA9PT0gMSkge1xuXHRcdFx0XHRpZiAodGhpcy5saXN0RGF0YVtlLmRldGFpbC52YWx1ZV0gPT0gXCLmmoLml6DmlbDmja5cIikgcmV0dXJuO1xuXHRcdFx0XHQvLyDpgInmi6nkuIDnuqfoj5zljZVcblx0XHRcdFx0dGhpcy5zdWJzZWN0aW9uSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcblx0XHRcdFx0dGhpcy5mb3JtLnN1YnNlY3Rpb25JZCA9IHRoaXMubGlzdERhdGFbdGhpcy5zdWJzZWN0aW9uSW5kZXhdPy5pZCB8fCAtMTsgLy8g6LWL5YC857uZc3Vic2VjdGlvbklk5a2X5q61XG5cblx0XHRcdFx0dGhpcy5zdWJMaXN0RGF0YSA9IHRoaXMubGlzdERhdGFbdGhpcy5zdWJzZWN0aW9uSW5kZXhdLmNoaWxkcmVuIHx8IFtdO1xuXHRcdFx0XHRpZiAodGhpcy5zdWJMaXN0RGF0YS5sZW5ndGgpIHtcblx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SW5kZXggPSAwOyAvLyDlpoLmnpzlrZjlnKjlrZDnuqfoj5zljZXvvIzliJnlsIbliIbpobnntKLlvJXliJ3lp4vljJbkuLowXG5cdFx0XHRcdFx0dGhpcy5zdWJlbnRyeUlkID0gdGhpcy5zdWJMaXN0RGF0YVswXT8uaWQgfHwgLTE7IC8vIOi1i+WAvOe7mXN1YmVudHJ5SWTlrZfmrrVcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SW5kZXggPSAtMTsgLy8g5aaC5p6c5LiN5a2Y5Zyo5a2Q57qn6I+c5Y2V77yM5YiZ5bCG5YiG6aG557Si5byV5Yid5aeL5YyW5Li6LTFcblx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SWQgPSAtMTsgLy8g5Yid5aeL5YyW5Li6LTFcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKHRoaXMuc3ViTGlzdERhdGFbZS5kZXRhaWwudmFsdWVdID09IFwi5pqC5peg5pWw5o2uXCIpIHJldHVybjtcblx0XHRcdFx0Ly8g6YCJ5oup5LqM57qn6I+c5Y2VXG5cdFx0XHRcdHRoaXMuc3ViZW50cnlJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0uc3ViZW50cnlJZCA9IHRoaXMuc3ViTGlzdERhdGFbdGhpcy5zdWJlbnRyeUluZGV4XT8uaWQgfHwgLTE7IC8vIOi1i+WAvOe7mXN1YmVudHJ5SWTlrZfmrrVcblx0XHRcdH1cblx0XHR9LFxuXHRcdC8v6I635Y+W5YiG6YOo5YiG6aG55bel56iL77yMIOS7peeItuWtkOiKgueCueW9ouW8j+WRiOeOsFxuXHRcdGdldFByb2dyZXNzTGlzdERhdGEoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9zdWJkaXZpc2lvblByb2plY3QvZ2V0UGFyZW50Q2hpbGRMaXN0Jyxcblx0XHRcdFx0bWV0aG9kOiAnZ2V0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U25cblx0XHRcdFx0fSxcblx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmxpc3REYXRhID0gcmVzLnJlc3VsdDtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfojrflj5bliIbpg6jliIbpobnlt6XnqIvvvIwg5Lul54i25a2Q6IqC54K55b2i5byP5ZGI546wJywgdGhpcy5saXN0RGF0YSlcblx0XHRcdFx0XHRcdGlmICh0aGlzLmxpc3REYXRhLmxlbmd0aCA+PSAxKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZm9ybS5zdWJzZWN0aW9uSWQgPSB0aGlzLmxpc3REYXRhWzBdLmlkXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmxpc3REYXRhWzBdLmNoaWxkcmVuLmxlbmd0aCA+PSAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zdWJMaXN0RGF0YSA9IHRoaXMubGlzdERhdGFbMF0uY2hpbGRyZW47XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLnN1YmVudHJ5SWQgPSB0aGlzLmxpc3REYXRhWzBdLmNoaWxkcmVuWzBdLmlkO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3ViTGlzdERhdGEgPSBbJ+aaguaXoOaVsOaNriddXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMubGlzdERhdGEgPSBbJ+aaguaXoOaVsOaNriddXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly/ojrflj5bmo4Dmn6Xpg6jkvY0g5YiX6KGoXG5cdFx0Z2V0Q2hlY2tQb2ludExpc3QoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9xdWFsaXR5UmVnaW9uL2xpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdFx0bm90U3VwZXJ2aXNpbmdVbml0OiAxXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5jaGVja1BvaW50TGlzdCA9IHJlcy5yZXN1bHQ7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnLS0tLS0tLS0tLS0nLCB0aGlzLmNoZWNrUG9pbnRMaXN0KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXHRcdGRlYWxGYWxzZUNoZWNrKGFycil7XG5cdFx0XHRhcnIubWFwKGl0ZW0gPT4ge1xuXHRcdFx0XHRpZihpdGVtLmNoaWxkcmVuKXtcblx0XHRcdFx0XHRpdGVtLmNoZWNrZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRpdGVtLm9yQ2hlY2tlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuZGVhbEZhbHNlQ2hlY2soaXRlbS5jaGlsZHJlbilcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpdGVtLmNoZWNrZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRpdGVtLm9yQ2hlY2tlZCA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly/noa7lrprpgInkuK0tLeWbnuaYviAgXG5cdFx0Y2hlY2tQb2ludEJ0bih2YWwsIHR5cGUpIHtcblx0XHRcdHRoaXMuZm9ybS5sZXZlbCA9ICcnXG5cdFx0XHQvLyB0eXBlPT0xIOajgOafpemDqOS9jSDvvJsgIDIg6Zeu6aKY5YiG57G7IFx0MyzpgJrnn6XkurpcdFx0XHRcblx0XHRcdGlmICh0eXBlID09IDEpIHtcblx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9IFwiXCI7XG5cdFx0XHRcdHRoaXMuZm9ybS5lbnRlcnByaXNlTmFtZSA9IFwiXCI7XG5cdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VJZCA9IFwiXCI7XG5cdFx0XHRcdGNvbnNvbGUubG9nKHZhbCwgdHlwZSlcblx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGxcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codGhpcy5jaGVja1BvaW50TGlzdCwgdmFsLCB0aGlzLnBlcnNvbkxpc3QpXG5cdFx0XHRcdHRoaXMuYXJlYURhdGEgPSB2YWxbMF07XG5cdFx0XHRcdHRoaXMuZm9ybS5yZWdpb25JZCA9IHZhbFswXS5pZDtcblx0XHRcdFx0bGV0IGFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsWzBdLnBhcmVudHMpKTtcblx0XHRcdFx0bGV0IG9iaiA9IHtcblx0XHRcdFx0XHRpZDogdmFsWzBdLmlkLFxuXHRcdFx0XHRcdHJlZ2lvbk5hbWU6IHZhbFswXS5yZWdpb25OYW1lXG5cdFx0XHRcdH07XG5cdFx0XHRcdGFyci5wdXNoKG9iaik7XG5cdFx0XHRcdC8v6I635Y+W6YCJ5Lit55qE5a2X56ym5LiyIOWQjeensFxuXHRcdFx0XHR2YXIgcmVnaW9uTmFtZSA9IGFyci5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcblx0XHRcdFx0XHRyZXR1cm4gaXRlbS5yZWdpb25OYW1lO1xuXHRcdFx0XHR9KS5qb2luKFwiL1wiKTtcblx0XHRcdFx0dGhpcy5jaGVja1BvaW50TmFtZSA9IHJlZ2lvbk5hbWU7XG5cdFx0XHRcdHRoaXMuZm9ybS5yZWdpb25OYW1lID0gcmVnaW9uTmFtZTtcblx0XHRcdFx0XG5cdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VJZCA9IHZhbFswXS5kdXR5SWQ7XG5cdFx0XHRcdHRoaXMubm90aWZpZXIgPSB2YWxbMF0uaW50ZW5kYW5jZU5hbWVzO1xuXHRcdFx0XHR0aGlzLmZvcm0ubm90aWZ5UGVyc29uID0gdmFsWzBdLmludGVuZGFuY2VJZHM7XG5cdFx0XHRcdC8vIOWIhuWMheWNleS9jeaVsOaNruaLv+WPllxuXHRcdFx0XHR0aGlzLnN1YnBhY2thZ2VMc2l0ID0gdmFsWzBdLmVudGVycHJpc2VJbmZvc1xuXHRcdFx0XHR0aGlzLnBlcnNvblVwZGF0ZUxpc3QgPSBbXVxuXHRcdFx0XHQvLyDmlbTmlLnkurrmlbDmja7mi7/lj5Zcblx0XHRcdFx0Ly8gdGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gdmFsWzBdLnN5c3RlbVVzZXJzXG5cdFx0XHRcdC8vIHRoaXMucGVyc29uVXBkYXRlTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHQvLyBcdGlmIChpdGVtLnVzZXJJZCA9PSB2YWxbMF0uZHV0eUlkKSB7XG5cdFx0XHRcdC8vIFx0XHR0aGlzLmNoYW5nZVBlb3BsZUluZGV4ID0gaW5kZXhcblx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdC8vIH0pO1xuXHRcdFx0XHR0aGlzLnJldmlld0xpc3QgPSBbXTtcblx0XHRcdFx0dGhpcy5yZXZpZXdJbmRleCA9IG51bGxcblx0XHRcdFx0dGhpcy5nZXRSZXZpZXdQZW9wbGVMaXN0KClcblx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAyKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCfpgInmi6npl67popjmj4/ov7DnmoTmlbDmja4nLCB2YWwpO1xuXHRcdFx0XHQvL+iuvue9rumXrumimOaPj+i/sFxuXHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VySXRlbUNvbnRlbnQgPSB2YWxbMF0uZGFuZ2VyTmFtZTtcblx0XHRcdFx0dGhpcy5mb3JtLmRhbmdlckl0ZW1JZCA9IHZhbFswXS5pZDtcblx0XHRcdFx0dGhpcy5mb3JtLmxldmVsID0gdmFsWzBdLmxldmVsXG5cdFx0XHRcdHRoaXMuZm9ybS5yZW1hcmsgPSB2YWxbMF0ucmVtYXJrIC8v5pW05pS56KaB5rGCXG5cdFx0XHRcdC8v6K6+572u6Zeu6aKY57G75Z6LXG5cdFx0XHRcdGlmICh2YWxbMF0ucGFyZW50cy5sZW5ndGggPT0gMCkge1xuXHRcdFx0XHRcdHRoaXMuZm9ybS5kYW5nZXJUeXBlSWQgPSB2YWxbMF0uaWQ7XG5cdFx0XHRcdFx0dGhpcy5pc3N1ZU5hbWUgPSB2YWxbMF0uZGFuZ2VyTmFtZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VyVHlwZUlkID0gdmFsWzBdLnBhcmVudHNbMF0uaWQ7XG5cdFx0XHRcdFx0dGhpcy5pc3N1ZU5hbWUgPSB2YWxbMF0ucGFyZW50c1swXS5kYW5nZXJOYW1lICsgJy8nICsgdmFsWzBdLnBhcmVudHNbMV0uZGFuZ2VyTmFtZSArICcvJyArIHZhbFswXVxuXHRcdFx0XHRcdFx0LmRhbmdlck5hbWU7XG5cdFx0XHRcdFx0dGhpcy5mb3JtLmRhbmdlck5hbWUgPSB2YWxbMF0uZGFuZ2VyTmFtZVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gMykge1xuXHRcdFx0XHRjb25zb2xlLmxvZyh2YWwpXG5cdFx0XHRcdHRoaXMubm90aWZpZXIgPSB2YWwubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBpdGVtLndvcmtlck5hbWVcblx0XHRcdFx0fSkuam9pbignLCcpO1xuXHRcdFx0XHR0aGlzLmZvcm0ubm90aWZ5UGVyc29uID0gdmFsLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gaXRlbS53b3JrZXJOYW1lXG5cdFx0XHRcdH0pLmpvaW4oJywnKVxuXHRcdFx0fVxuXG5cdFx0fSxcblx0XHQvL+iOt+WPlumXrumimOWIhuexu1xuXHRcdGdldElzc3VlTGlzdCgpIHtcblx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xuXHRcdFx0XHR1cmw6ICd4bWdsL2RhbmdlclR5cGVSZWNvcmQvc2VsZWN0RGFuZ2VyVHlwZUFuZEl0ZW1MaXN0Jyxcblx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXG5cdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuLFxuXHRcdFx0XHRcdHJlY29yZFN0YXR1czogMCxcblx0XHRcdFx0fSxcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMucmVzdWx0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdHJlcy5yZXN1bHQuZm9yRWFjaChpdGVtID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0aXRlbS5jaGlsZHJlbi5mb3JFYWNoKGl0bSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoaXRtLml0ZW1MaXN0ICYmIGl0bS5pdGVtTGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGl0bS5pdGVtTGlzdC5mb3JFYWNoKGl0ZW0yID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpdGVtMi5kYW5nZXJOYW1lID0gaXRlbTIuY29udGVudFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpdG0uY2hpbGRyZW4gPSBpdG0uaXRlbUxpc3Rcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcblx0XHRcdFx0XHRcdHRoaXMuaXNzdWVMaXN0ID0gcmVzLnJlc3VsdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cblx0XHQvL+ihpeWFheivtOaYjlxuXHRcdHN1cHBsZW1lbnRUZXh0YXJlYShlKSB7XG5cdFx0XHR0aGlzLmZvcm0uZGFuZ2VyRGVzYyA9IGUuZGV0YWlsLnZhbHVlXG5cdFx0fSxcblx0XHQvL+aVtOaUueimgeaxglxuXHRcdGNsYWltVGV4dGFyZWEoZSkge1xuXHRcdFx0dGhpcy5mb3JtLnJlbWFyayA9IGUuZGV0YWlsLnZhbHVlXG5cdFx0fSxcblx0XHQvL+S6i+S7tuaPj+i/sFxuXHRcdGV2ZW50RGVzY3JpcHRpb24oZSkge1xuXHRcdFx0dGhpcy5mb3JtLmFkZGVkRGVzY3JpcHRpb24gPSBlLmRldGFpbC52YWx1ZVxuXHRcdH0sXG5cdFx0Ly/lt6Hmo4DmpbzlsYJcblx0XHRldmVudGZsb29yKGUpIHtcblx0XHRcdGNvbnNvbGUubG9nKCflt6Hmo4DmpbzlsYItLS0nLCBlKTtcblx0XHRcdGxldCBpbnB1dCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0dGhpcy5mb3JtLmZsb29yID0gcGFyc2VJbnQoaW5wdXQpOyAvLyDmiJbogIUgdGhpcy5mb3JtLmZsb29yID0gcGFyc2VJbnQoaW5wdXQpO1xuXHRcdH0sXG5cdFx0Ly/ojrflj5bliIbljIXlhazlj7hcblx0XHRnZXRTdWJwYWNrYWdlTHNpdCgpIHtcblx0XHRcdGxldCBkYXRhID0ge1xuXHRcdFx0XHQvLyBlbnRlcnByaXNlVHlwZUlkOiB0aGlzLmNoZWNrVHlwZSxcblx0XHRcdFx0cGFnZU5vOiAxLFxuXHRcdFx0XHRwYWdlU2l6ZTogOTk5LFxuXHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuLFxuXHRcdFx0fTtcblx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xuXHRcdFx0XHR1cmw6ICd4bWdsL3Byb2plY3RFbnRlcnByaXNlL2xpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMucmVzdWx0LnJlY29yZHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IHJlcy5yZXN1bHQucmVjb3Jkcztcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cdFx0Ly/kuIvmi4npgInmi6nlm57mmL5cblx0XHRiaW5kUGlja2VyQ2hhbmdlKGUsIHR5cGUpIHtcblx0XHRcdGNvbnNvbGUubG9nKGUpXG5cdFx0XHQvL3R5cGUgPT0xIOmXrumimOetiee6pzsy57Sn5oCl5oOF5Ya1OzPmo4Dmn6Xkuro7NCDmo4Dmn6Xml7bpl7Q7NeaVtOaUueaXtumZkDsgNuaVtOaUueS6ujsgN+WkjeafpeS6ujsgOOaguOmqjOS6ujtcblx0XHRcdGlmICh0eXBlID09IDEpIHtcblx0XHRcdFx0dGhpcy5pc3N1ZUdyYWRlSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcblx0XHRcdFx0dGhpcy5mb3JtLmxldmVsID0gdGhpcy5pc3N1ZUdyYWRlTGlzdFtlLmRldGFpbC52YWx1ZV0udmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gMikge1xuXHRcdFx0XHR0aGlzLnVyZ2VuY3lJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0udXJnZW50TGV2ZWwgPSB0aGlzLnVyZ2VuY3lMaXN0W2UuZGV0YWlsLnZhbHVlXS52YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAzKSB7XG5cdFx0XHRcdHRoaXMuaW5zcGVjdE1hbkluZGV4ID0gZS5kZXRhaWwudmFsdWU7XG5cdFx0XHRcdHRoaXMuZm9ybS5pbnNwZWN0TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZFxuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09ICdzdGFydFRpbWUnKSB7XG5cdFx0XHRcdHRoaXMuZm9ybS5pbnNwZWN0VGltZSA9IGUuZjM7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gJ3N0YXJ0VGltZTInKSB7XG5cdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VMaW1pdFRpbWUgPSBlLmYzO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDYpIHtcblx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0uY2hhbmdlSWQgPSB0aGlzLnBlcnNvblVwZGF0ZUxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZDtcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5jaGFuZ2VQZW9wbGVJbmRleCwgdGhpcy5mb3JtLmNoYW5nZUlkKVxuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDcpIHtcblx0XHRcdFx0dGhpcy5yZXZpZXdJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0ucmV2aWV3SWQgPSB0aGlzLnJldmlld0xpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZDtcblx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSA4KSB7XG5cdFx0XHRcdHRoaXMudmVyaWZ5TWFuSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcblx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy5wZXJzb25MaXN0W2UuZGV0YWlsLnZhbHVlXS51c2VySWQ7XG5cdFx0XHR9XG5cblx0XHR9LFxuXG5cblx0XHQvL+iOt+WPluS6uuWRmOWIl+ihqC0tLSDmo4Dmn6XkurrjgIHmlbTmlLnkurrjgIHlpI3mn6XkurrjgIHmoLjpqozkurrjgIHpgJrnn6Xkurpcblx0XHRnZXRQZXJzb25MaXN0KCkge1xuXHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XG5cdFx0XHRcdHVybDogJ3htZ2wvc3lzdGVtVXNlci9nZXRQcm9qZWN0Q2hpbGRlclN5c3RlbVVzZXJMaXN0Jyxcblx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXG5cdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcblx0XHRcdFx0XHRpZiAocmVzLnJlc3VsdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5qOA5p+l5Lq65ZGY5YiX6KGoJywgdGhpcy5wZXJzb25MaXN0KTtcblx0XHRcdFx0XHRcdHRoaXMucGVyc29uTGlzdCA9IHJlcy5yZXN1bHQ7XG5cdFx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLnBlcnNvbkxpc3QuZmluZEluZGV4KGl0ZW0gPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS51c2VySWQgPT0gdGhpcy51c2VySW5mby51c2VySWQ7XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0aWYgKGluZGV4ICE9IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMudmVyaWZ5TWFuSW5kZXggPSBpbmRleDtcblx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy5wZXJzb25MaXN0W2luZGV4XS51c2VySWQ7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRlZmF1bHRBdWRpdFBlcnNvbiA9IHRoaXMudXNlckluZm8ucmVhbE5hbWU7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZm9ybS52ZXJpZnlNYW5JZCA9IHRoaXMudXNlckluZm8udXNlcklkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLnBlcnNvbkxpc3QgPSBbXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblxuXHRcdC8v6I635Y+W5Lq65ZGY5YiX6KGoLS0tIOaVtOaUueS6ulxuXHRcdGdldFBlcnNvblVwZGF0ZUxpc3QoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdFx0ZW50ZXJwcmlzZUlkOiB0aGlzLnVuaXRFbnRlcnByaXNlSWRcblx0XHRcdFx0fSxcblx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMucmVzdWx0KVxuXHRcdFx0XHRcdGlmIChyZXMucmVzdWx0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmo4Dmn6XkurrlkZjliJfooagnLCB0aGlzLnBlcnNvbkxpc3QpO1xuXHRcdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gcmVzLnJlc3VsdDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblxuXG5cdFx0Ly/pgInmi6nnmoTliIbljIXlhazlj7hcblx0XHRjaGVja1N1YnBhY2thZ2UodmFsKSB7XG5cdFx0XHQvLyBpZiAodGhpcy5jaGVja1R5cGUgPT0gMSkge1xuXHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9IHZhbC5lbnRlcnByaXNlU247XG5cdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSB2YWwuZW50ZXJwcmlzZU5hbWU7XG5cdFx0XHR0aGlzLnVuaXRFbnRlcnByaXNlSWQgPSB2YWwuaWQ7XG5cdFx0XHR0aGlzLmZvcm0uY2hhbmdlSWQgPSBcIlwiO1xuXHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGw7XG5cdFx0XHR0aGlzLmlzU2hvd1BpY2tlciA9IGZhbHNlO1xuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmlzU2hvd1BpY2tlciA9IHRydWU7XG5cdFx0XHR9KTtcblx0XHRcdGxldCBuZXdBcnIgPSBbXTtcblx0XHRcdGlmICh0aGlzLmFyZWFEYXRhLnN5c3RlbVVzZXJzKSB7XG5cdFx0XHRcdHRoaXMuYXJlYURhdGEuc3lzdGVtVXNlcnMuZmlsdGVyKChpdGVtKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGl0ZW0udXNlcklkICYmIGl0ZW0uZW50ZXJwcmlzZUlkID09IHRoaXMudW5pdEVudGVycHJpc2VJZCkge1xuXHRcdFx0XHRcdFx0bmV3QXJyLnB1c2goaXRlbSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gbmV3QXJyO1xuXHRcdFx0fVxuXHRcdFx0Ly8gdGhpcy5nZXRQZXJzb25VcGRhdGVMaXN0KCk7XG5cdFx0XHQvLyB9IGVsc2Uge1xuXHRcdFx0Ly8gXHR0aGlzLmZvcm0uZW50ZXJwcmlzZVNuID0gdmFsLmVudGVycHJpc2VTbjtcblx0XHRcdC8vIFx0dGhpcy5mb3JtLmVudGVycHJpc2VOYW1lID0gdmFsLmVudGVycHJpc2VOYW1lO1xuXHRcdFx0Ly8gfVxuXHRcdFx0dGhpcy51bml0RGlhbG9nID0gZmFsc2U7XG5cdFx0fSxcblxuXG5cdFx0Ly/liKDpmaQtLS3lhaznlKhcblx0XHRkZWxldGVzQnRuKHR5cGUpIHtcblx0XHRcdHdpbmRvdy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdC8vdHlwZT09MSDliIbljIXljZXkvY1cblx0XHRcdGlmICh0eXBlID09IDEpIHtcblx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9ICcnO1xuXHRcdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSAnJztcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0Ly/njrDlnLrmlbTmlLnmmK/lkKblrozmiJBcblx0XHRzd2l0Y2hDaGFuZ2UoZSkge1xuXHRcdFx0aWYgKGUuZGV0YWlsLnZhbHVlKSB7XG5cdFx0XHRcdHRoaXMuZm9ybS5zdGF0dXMgPSA1O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5mb3JtLnN0YXR1cyA9IDI7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8v6YCJ5oup5YiG5YyF5Y2V5L2NXG5cdFx0Y2xpY2tVbml0KCkge1xuXHRcdFx0dGhpcy51bml0RGlhbG9nID0gdHJ1ZTtcblx0XHRcdC8vIHRoaXMuZ2V0U3VicGFja2FnZUxzaXQoKTtcblx0XHR9LFxuXHRcdC8v5YiH5o2i5YiG5YyF5ZWGXG5cdFx0Y2hlY2tUeXBlQnRuKHR5cGUpIHtcblx0XHRcdHRoaXMuY2hlY2tUeXBlID0gdHlwZTtcblx0XHRcdHRoaXMuZ2V0U3VicGFja2FnZUxzaXQoKTtcblx0XHR9LFxuXG5cdFx0Ly/kuIrkvKDpmYTku7Zcblx0XHR1cGxvYWRJbWcodHlwZSkge1xuXHRcdFx0dmFyIHRoYXQgPSB0aGlzXG5cdFx0XHRpZiAodHlwZSA9PSAxKSB7XG5cdFx0XHRcdHVuaS5jaG9vc2VJbWFnZSh7XG5cdFx0XHRcdFx0Y291bnQ6IDUgLSB0aGF0LmltZ0ZpbGVMaXN0Lmxlbmd0aCxcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdGVtcEZpbGVQYXRocyA9IHJlcy50ZW1wRmlsZVBhdGhzO1xuXHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQudXJsX2NvbmZpZyArICd1cGxvYWQvaW1hZ2UnLCAvL+S7heS4uuekuuS+i++8jOmdnuecn+WunueahOaOpeWPo+WcsOWdgFxuXHRcdFx0XHRcdFx0XHRmaWxlUGF0aDogdGVtcEZpbGVQYXRoc1swXSxcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZGF0YSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxuXHRcdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdGaWxlTGlzdC5wdXNoKGRhdGEpXG5cdFx0XHRcdFx0XHRcdFx0dW5pLmdldEltYWdlSW5mbyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRzcmM6IHRlbXBGaWxlUGF0aHNbMF0sXG5cdFx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzOiAocmVzSW5mbykgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5Lyg6L+H5Y675ZWmIHJlc0luZm8nLCByZXNJbmZvKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmltZ0xpc3QgPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aW1nVXJsOiB0ZW1wRmlsZVBhdGhzWzBdLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGltZ1dpZHRoOiByZXNJbmZvLndpZHRoLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGltZ0hlaWdodDogcmVzSW5mby5oZWlnaHQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gdGVhbTon54+t57uE5Lq65ZGYJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBuYW1lOiAn5byg5LiJJ1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IHRydWVcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IGZhbHNlXG5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcblx0XHRcdFx0dW5pLmNob29zZUltYWdlKHtcblx0XHRcdFx0XHRjb3VudDogMSxcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdGVtcEZpbGVQYXRocyA9IHJlcy50ZW1wRmlsZVBhdGhzO1xuXHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQudXJsX2NvbmZpZyArICd1cGxvYWQvaW1hZ2UnLCAvL+S7heS4uuekuuS+i++8jOmdnuecn+WunueahOaOpeWPo+WcsOWdgFxuXHRcdFx0XHRcdFx0XHRmaWxlUGF0aDogdGVtcEZpbGVQYXRoc1swXSxcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZGF0YSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxuXHRcdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW1nRGlhbG9nVXJsLmxlbmd0aCA+PSAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmltZ0RpYWxvZ1VybFswXS51cmwgPSBkYXRhLnVybFxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdEaWFsb2dVcmxbMF0ubmFtZSA9IGRhdGEubmFtZVxuXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaW1nRGlhbG9nVXJsLnB1c2goZGF0YSlcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkuIrkvKDlm77niYfnmoTkv6Hmga/vvJpcIiwgdGhhdC5pbWdEaWFsb2dVcmwpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHVuaS5jaG9vc2VJbWFnZSh7XG5cdFx0XHRcdFx0Y291bnQ6IDEgLSB0aGF0Lm1hcEltZ0xpc3QubGVuZ3RoLFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB0ZW1wRmlsZVBhdGhzID0gcmVzLnRlbXBGaWxlUGF0aHM7XG5cdFx0XHRcdFx0XHR1bmkudXBsb2FkRmlsZSh7XG5cdFx0XHRcdFx0XHRcdHVybDogdGhhdC51cmxfY29uZmlnICsgJ3VwbG9hZC9pbWFnZScsIC8v5LuF5Li656S65L6L77yM6Z2e55yf5a6e55qE5o6l5Y+j5Zyw5Z2AXG5cdFx0XHRcdFx0XHRcdGZpbGVQYXRoOiB0ZW1wRmlsZVBhdGhzWzBdLFxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxuXHRcdFx0XHRcdFx0XHRzdWNjZXNzOiAodXBsb2FkRmlsZVJlcykgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uZmlsZW5hbWUsXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmltYWdlVXJsXG5cdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1hcEltZ0xpc3QucHVzaChkYXRhKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cblx0XHRcdH1cblxuXG5cdFx0fSxcblx0XHQvL+WIoOmZpOmZhOS7tlxuXHRcdGRlbGV0ZUltZyh2YWwsIHR5cGUpIHtcblx0XHRcdGxldCB0aGF0ID0gdGhpcztcblx0XHRcdHVuaS5zaG93TW9kYWwoe1xuXHRcdFx0XHR0aXRsZTogJ+aPkOekuicsXG5cdFx0XHRcdGNvbnRlbnQ6ICfnoa7lrprliKDpmaTor6XpmYTku7blkJc/Jyxcblx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb25maXJtKSB7XG5cdFx0XHRcdFx0XHRpZiAodHlwZSA9PSAxKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBmaWxlQXJyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGF0LmltZ0ZpbGVMaXN0KSk7XG5cdFx0XHRcdFx0XHRcdGZpbGVBcnIuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoaXRlbS51cmwgPT0gdmFsLnVybCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZmlsZUFyci5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR0aGF0LmltZ0ZpbGVMaXN0ID0gZmlsZUFycjtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAyKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBmaWxlQXJyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGF0LnZpZGVvRmlsZUxpc3QpKTtcblx0XHRcdFx0XHRcdFx0ZmlsZUFyci5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChpdGVtLnVybCA9PSB2YWwudXJsKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRmaWxlQXJyLnNwbGljZShpbmRleCwgMSlcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdHRoYXQudmlkZW9GaWxlTGlzdCA9IGZpbGVBcnI7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jYW5jZWwpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfnlKjmiLfngrnlh7vlj5bmtognKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0fSxcblx0XHQvL+S4iuS8oOinhumikVxuXHRcdHVwbG9hZFZpZGVvKCkge1xuXHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xuXHRcdFx0dW5pLmNob29zZVZpZGVvKHtcblx0XHRcdFx0Y291bnQ6IDUgLSB0aGF0LnZpZGVvRmlsZUxpc3QubGVuZ3RoLFxuXHRcdFx0XHRzb3VyY2VUeXBlOiBbJ2NhbWVyYScsICdhbGJ1bSddLFxuXHRcdFx0XHRjb21wcmVzc2VkOiBmYWxzZSxcblx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0bGV0IHVybCA9IHJlcy50ZW1wRmlsZVBhdGg7XG5cdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0dXJsOiB0aGF0LnVybF9jb25maWcgKyAndXBsb2FkL2ltYWdlJywgLy/ku4XkuLrnpLrkvovvvIzpnZ7nnJ/lrp7nmoTmjqXlj6PlnLDlnYBcblx0XHRcdFx0XHRcdGZpbGVQYXRoOiB1cmwsXG5cdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxuXHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0bGV0IG9iaiA9IHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5maWxlSW5mb1xuXHRcdFx0XHRcdFx0XHRcdFx0Lm9yaWdpbmFsRmlsZW5hbWUsXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHRoYXQudmlkZW9GaWxlTGlzdC5wdXNoKG9iaik7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfkuIrkvKDop4bpopHlkI7nmoTmlbDmja4nLCB0aGF0LnZpZGVvRmlsZUxpc3QpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblx0XHQvL+afpeeci+inhumikVxuXHRcdHBsYXlWaWRlbyh1cmwsIHR5cGUpIHtcblx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0dXJsOiAnLi4vY2FyV2FzaE1hbmFnZS9tZWRpYVBsYXk/dXJsPScgKyB1cmwgKyAnJnR5cGU9JyArIHR5cGVcblx0XHRcdH0pXG5cdFx0fSxcblx0XHQvL+mihOiniOWbvueJh1xuXHRcdHByZXZpZXdJbWFnZSh1cmwpIHtcblx0XHRcdHVuaS5wcmV2aWV3SW1hZ2Uoe1xuXHRcdFx0XHR1cmxzOiBbdXJsXVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cblx0XHQvL+aWsOWinuS/neWtmFxuXHRcdGFzeW5jIGFkZFNhdmVCdG4oKSB7XG5cdFx0XHRsZXQgYXJyID0gW10sXG5cdFx0XHRcdGFycjIgPSBbXTtcblxuXG5cdFx0XHR0aGlzLnZpZGVvRmlsZUxpc3QuZm9yRWFjaChpdGVtID0+IHtcblx0XHRcdFx0YXJyLnB1c2goaXRlbS5uYW1lICsgXCIqXCIgKyB0aGlzLnVybF9jb25maWcgKyAnaW1hZ2UvJyArIGl0ZW0udXJsKVxuXHRcdFx0fSlcblx0XHRcdHRoaXMuaW1nRmlsZUxpc3QuZm9yRWFjaChpdGVtID0+IHtcblx0XHRcdFx0YXJyMi5wdXNoKGl0ZW0ubmFtZSArIFwiKlwiICsgdGhpcy51cmxfY29uZmlnICsgJ2ltYWdlLycgKyBpdGVtLnVybClcblx0XHRcdH0pXG5cdFx0XHQvLyB0aGlzLmZvcm0uZmlsZVVybCA9IHRoaXMudmlkZW9GaWxlTGlzdC5sZW5ndGg+MD9KU09OLnN0cmluZ2lmeSh0aGlzLnZpZGVvRmlsZUxpc3QpOicnO1xuXHRcdFx0Ly8gdGhpcy5mb3JtLmltYWdlVXJsID0gdGhpcy5pbWdGaWxlTGlzdC5sZW5ndGg+MD9KU09OLnN0cmluZ2lmeSh0aGlzLmltZ0ZpbGVMaXN0KTonJztcblx0XHRcdHRoaXMuZm9ybS5maWxlVXJsID0gYXJyLmpvaW4oJywnKVxuXHRcdFx0dGhpcy5mb3JtLmltYWdlVXJsID0gYXJyMi5qb2luKCcsJylcblx0XHRcdGxldCBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0pKTtcblx0XHRcdGlmICghZGF0YS5yZWdpb25JZCkge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpemDqOS9jScsXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdFx0aWYgKCFkYXRhLmRhbmdlckl0ZW1Db250ZW50ICYmIHRoaXMudHlwZUNoZWNrID09IFwidHlwZTFcIikge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqemXrumimOaPj+i/sCcsXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fSBlbHNlIGlmICghZGF0YS5kYW5nZXJJdGVtQ29udGVudCkge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeaOkuafpeWIhuexuycsXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdFx0aWYgKCFkYXRhLmRhbmdlclR5cGVJZCAmJiB0aGlzLnR5cGVDaGVjayA9PSBcInR5cGUxXCIpIHtcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6npl67popjliIbnsbsnLFxuXHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHR9KVxuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblx0XHRcdC8vIGlmIChkYXRhLmluc3BlY3RNYW5JZCA9PSAnJykge1xuXHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdC8vIFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpeS6uicsXG5cdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHQvLyBcdH0pXG5cdFx0XHQvLyBcdHJldHVyblxuXHRcdFx0Ly8gfVxuXHRcdFx0aWYgKCFkYXRhLmluc3BlY3RUaW1lKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5qOA5p+l5pe26Ze0Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEuZW50ZXJwcmlzZU5hbWUpIHtcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6nliIbljIXljZXkvY0nLFxuXHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHR9KVxuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblx0XHRcdGlmICghZGF0YS5jaGFuZ2VMaW1pdFRpbWUgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5pW05pS55pe26ZmQJyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEuY2hhbmdlSWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5pW05pS55Lq6Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEucmV2aWV3SWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5aSN5p+l5Lq6Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEudmVyaWZ5TWFuSWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5qC45p+l5Lq6Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9O1xuXHRcdFx0ZGF0YS5sZXZlbCA9IGRhdGEubGV2ZWwgPT0gMCA/IE51bWJlcihkYXRhLmxldmVsKSArIDEgOiBkYXRhLmxldmVsO1xuXHRcdFx0ZGF0YS51cmdlbnRMZXZlbCA9IGRhdGEudXJnZW50TGV2ZWwgPT0gMCA/IE51bWJlcihkYXRhLnVyZ2VudExldmVsKSArIDEgOiBkYXRhLnVyZ2VudExldmVsO1xuXHRcdFx0ZGF0YS5wcm9qZWN0U24gPSB0aGlzLnByb2plY3RTbjtcblx0XHRcdGRhdGEuaW5zcGVjdE1hbklkID0gdGhpcy51c2VySW5mby51c2VySWRcblx0XHRcdGRhdGEuY3JlYXRvcklkID0gdGhpcy51c2VySW5mby51c2VySWRcblx0XHRcdGRhdGEuZGFuZ2VySXRlbUNvbnRlbnQgPSB0aGlzLmlzc3VlTmFtZVxuXHRcdFx0bGV0IHBvaW50QXJyID0gW11cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wb2ludExpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0bGV0IG9iaiA9XG5cdFx0XHRcdFx0dGhpcy5wb2ludExpc3RbaV0ueCArXG5cdFx0XHRcdFx0JyonICtcblx0XHRcdFx0XHR0aGlzLnBvaW50TGlzdFtpXS55XG5cdFx0XHRcdHBvaW50QXJyLnB1c2gob2JqKVxuXHRcdFx0fVxuXHRcdFx0ZGF0YS5tZWFzdXJlUG9pbnRzID0gcG9pbnRBcnIuam9pbignLCcpXG5cdFx0XHRjb25zb2xlLmxvZygnZGF0YS5tZWFzdXJlUG9pbnRzPT09PT09PT09PT09PScsIGRhdGEubWVhc3VyZVBvaW50cyk7XG5cdFx0XHRpZiAodGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpO1xuXHRcdFx0XHQvLyDotKjph4/pl67pophcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiAneG1nbC9xdWFsaXR5SW5zcGVjdGlvblJlY29yZC9hZGQnLFxuXHRcdFx0XHRcdG1ldGhvZDogJ3Bvc3QnLFxuXHRcdFx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+S/neWtmOaIkOWKnydcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XG5cdFx0XHRcdFx0XHRcdFx0XHRkZWx0YTogMVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0sIDEyMDApXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogcmVzLm1lc3NhZ2UsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy50YXNrSWQpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLml0ZW1JZCk7XG5cdFx0XHRcdC8vIOaOkuafpeiusOW9lVxuXHRcdFx0XHRsZXQgZGF0YTIgPSB7XG5cdFx0XHRcdFx0ZGFuZ2VyRGVzYzogZGF0YS5kYW5nZXJEZXNjLFxuXHRcdFx0XHRcdGRhbmdlckl0ZW1Db250ZW50OiB0aGlzLmlzc3VlTmFtZSxcblx0XHRcdFx0XHRkYW5nZXJJdGVtSWQ6IGRhdGEuZGFuZ2VySXRlbUlkLFxuXHRcdFx0XHRcdGRhbmdlclR5cGVJZDogZGF0YS5kYW5nZXJUeXBlSWQsXG5cdFx0XHRcdFx0ZW50ZXJwcmlzZU5hbWU6IGRhdGEuZW50ZXJwcmlzZU5hbWUsXG5cdFx0XHRcdFx0ZW50ZXJwcmlzZVNuOiBkYXRhLmVudGVycHJpc2VTbixcblx0XHRcdFx0XHRmaWxlVXJsOiBkYXRhLmZpbGVVcmwsXG5cdFx0XHRcdFx0aW1hZ2VVcmw6IGRhdGEuaW1hZ2VVcmwsXG5cdFx0XHRcdFx0aW5zcGVjdE1hbklkOiBkYXRhLmluc3BlY3RNYW5JZCxcblx0XHRcdFx0XHRpbnNwZWN0VGltZTogZGF0YS5pbnNwZWN0VGltZSxcblx0XHRcdFx0XHRwcm9qZWN0U246IGRhdGEucHJvamVjdFNuLFxuXHRcdFx0XHRcdHJlY29yZFR5cGU6IDIsXG5cdFx0XHRcdFx0cmVnaW9uSWQ6IGRhdGEucmVnaW9uSWQsXG5cdFx0XHRcdFx0cmVnaW9uTmFtZTogZGF0YS5yZWdpb25OYW1lLFxuXHRcdFx0XHRcdHJvdXRpbmVJbnNwZWN0OiAwLFxuXHRcdFx0XHRcdHN1YnNlY3Rpb25JZDogZGF0YS5zdWJzZWN0aW9uSWQsIC8v5YiG6YOo5bel56iLXG5cdFx0XHRcdFx0c3ViZW50cnlJZDogZGF0YS5zdWJlbnRyeUlkLCAvL+WIhumhueW3peeoi1xuXHRcdFx0XHRcdGZsb29yOiBkYXRhLmZsb29yLCAvL+W3oeajgOalvOWxglxuXHRcdFx0XHRcdGFkZGVkRGVzY3JpcHRpb246IGRhdGEuYWRkZWREZXNjcmlwdGlvbiwgLy/kuovku7bmj4/ov7Bcblx0XHRcdFx0XHR0YXNrSWQ6IHRoaXMudGFza0lkIHx8IG51bGwsIC8vIOS7u+WKoUlEXG5cdFx0XHRcdFx0aXRlbUlkOiB0aGlzLml0ZW1JZCB8fCBudWxsIC8vIOS7u+WKoeWtkElEXG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YS50YXNrSWQpO1xuXHRcdFx0XHRhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3F1YWxpdHlJbnNwZWN0aW9uUmVjb3JkL2FkZCcsXG5cdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXG5cdFx0XHRcdFx0ZGF0YTogZGF0YTIsXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+S/neWtmOaIkOWKnydcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XG5cdFx0XHRcdFx0XHRcdFx0XHRkZWx0YTogMVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0sIDEyMDApXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogcmVzLm1lc3NhZ2UsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvLyDliIfmjaJ0YWJcblx0XHRyYWRpb0NoYW5nZSh2YWx1ZSkge1xuXG5cdFx0XHR0aGlzLnR5cGVDaGVjayA9IHZhbHVlXG5cdFx0XHR0aGlzLmNoZWNrZWRUYWIgPSB2YWx1ZVxuXHRcdFx0Y29uc29sZS5sb2coJ+WIh+aNonRhYicsIHRoaXMuZm9ybSk7XG5cdFx0XHQvLyDph43liLblhoXlrrlcblx0XHRcdHRoaXMuZm9ybSA9IHtcblx0XHRcdFx0cmVnaW9uSWQ6IFwiXCIsIC8vIOajgOafpemDqOS9jVxuXHRcdFx0XHRyZWdpb25OYW1lOiBcIlwiLFxuXHRcdFx0XHRkYW5nZXJJdGVtQ29udGVudDogXCJcIixcblx0XHRcdFx0ZGFuZ2VySXRlbUlkOiBcIlwiLFxuXHRcdFx0XHRkYW5nZXJUeXBlSWQ6IFwiXCIsXG5cdFx0XHRcdGRhbmdlckRlc2M6IFwiXCIsXG5cdFx0XHRcdHJlbWFyazogXCJcIixcblx0XHRcdFx0cm91dGluZUlkOiAwLFxuXHRcdFx0XHRsZXZlbDogMCxcblx0XHRcdFx0dXJnZW50TGV2ZWw6IDAsXG5cdFx0XHRcdGluc3BlY3RNYW5JZDogXCJcIixcblx0XHRcdFx0aW5zcGVjdFRpbWU6IGRhdGVmb3JtYXQobmV3IERhdGUoKSksXG5cdFx0XHRcdGVudGVycHJpc2VTbjogXCJcIixcblx0XHRcdFx0ZW50ZXJwcmlzZU5hbWU6IFwiXCIsXG5cdFx0XHRcdGNoYW5nZUxpbWl0VGltZTogXCJcIixcblx0XHRcdFx0Y2hhbmdlSWQ6IFwiXCIsXG5cdFx0XHRcdHJldmlld0lkOiBcIlwiLFxuXHRcdFx0XHR2ZXJpZnlNYW5JZDogXCJcIixcblx0XHRcdFx0bm90aWZ5UGVyc29uOiBbXSxcblx0XHRcdFx0c3RhdHVzOiAyLCAvLyDnjrDlnLrmlbTmlLnnirbmgIEgIDLmnKrlrozmiJAgICA15bey5a6M5oiQXG5cdFx0XHRcdG1lYXN1cmVQb2ludHM6IFtdLFxuXHRcdFx0XHRpbWFnZVVybDogXCJcIixcblx0XHRcdFx0ZmlsZVVybDogXCJcIixcblx0XHRcdFx0cmVjb3JkVHlwZTogMSxcblx0XHRcdFx0Ly8gdGFza0lkOicnLFxuXHRcdFx0XHQvLyBpdGVtSWQ6Jydcblx0XHRcdH07XG5cdFx0XHR0aGlzLmlzc3VlTmFtZSA9ICcnXG5cdFx0XHR0aGlzLmNoZWNrUG9pbnROYW1lID0gXCJcIlxuXHRcdFx0dGhpcy52aWRlb0ZpbGVMaXN0ID0gW107XG5cdFx0XHR0aGlzLmltZ0ZpbGVMaXN0ID0gW107XG5cdFx0XHR0aGlzLnN1YnNlY3Rpb25JbmRleCA9IC0xXG5cdFx0XHR0aGlzLnN1YmVudHJ5SW5kZXggPSAtMVxuXHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGxcblx0XHRcdC8vIOmHjee9ruajgOafpemDqOS9jVxuXHRcdFx0dGhpcy5kZWFsRmFsc2VDaGVjayh0aGlzLmNoZWNrUG9pbnRMaXN0KTtcblx0XHRcdHRoaXMuJHJlZnMubG9jYXRpb25UcmVlLl9yZVRyZWVMaXN0KCk7XG5cdFx0XHQvLyDliIbljIXljZXkvY3mlbDmja7mi7/lj5Zcblx0XHRcdHRoaXMuc3VicGFja2FnZUxzaXQgPSBbXVxuXHRcdFx0Ly8g5pW05pS55Lq65pWw5o2u5ou/5Y+WXG5cdFx0XHR0aGlzLnBlcnNvblVwZGF0ZUxpc3QgPSBbXVxuXHRcdFx0bGV0IGluZGV4ID0gdGhpcy5wZXJzb25MaXN0LmZpbmRJbmRleChpdGVtID0+IHtcblx0XHRcdFx0cmV0dXJuIGl0ZW0udXNlcklkID09IHRoaXMudXNlckluZm8udXNlcklkO1xuXHRcdFx0fSlcblx0XHRcdGlmIChpbmRleCAhPSAtMSkge1xuXHRcdFx0XHR0aGlzLnZlcmlmeU1hbkluZGV4ID0gaW5kZXg7XG5cdFx0XHRcdHRoaXMuZm9ybS52ZXJpZnlNYW5JZCA9IHRoaXMucGVyc29uTGlzdFtpbmRleF0udXNlcklkO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5kZWZhdWx0QXVkaXRQZXJzb24gPSB0aGlzLnVzZXJJbmZvLnJlYWxOYW1lO1xuXHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnVzZXJJbmZvLnVzZXJJZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///782\n"); +======= +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 161));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 164));\nvar _tkiTree = _interopRequireDefault(__webpack_require__(/*! @/components/tki-tree/tki-tree.vue */ 746));\nvar _canversCom = _interopRequireDefault(__webpack_require__(/*! @/pages/videoManage/component/canversCom.vue */ 191));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/components/dateTimePicker/index.vue */ 394));\nvar _tool = __webpack_require__(/*! @/utils/tool.js */ 85);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n components: {\n tkiTree: _tkiTree.default,\n canversCom: _canversCom.default,\n dateTimePiccker: _index.default\n },\n data: function data() {\n return {\n isShowPicker: true,\n startTime: this.getDate({\n format: true\n }),\n startTime2: this.getDate({\n format: true\n }),\n checkedTab: 'type1',\n imgList: {},\n openImg: false,\n base64Image: '',\n imgIndex: -1,\n pointList: [],\n location: {\n left: '0',\n top: '0'\n },\n x: 0,\n y: 0,\n imgDialogUrlSu: false,\n imgDialogUrlText: \"编辑隐患点\",\n imgDialog: false,\n imgDialogUrl: [],\n pageTitle: '新增检查',\n projectSn: '',\n checkType: 1,\n //分包商类型 1专业分包 6劳务分包\n form: {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: \"\",\n urgentLevel: \"\",\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1,\n dangerName: '',\n subsectionId: '',\n //分部工程\n subentryId: '',\n //分项工程\n floor: '',\n //巡检楼层\n addedDescription: '',\n //事件描述\n taskId: '',\n //任务ID\n itemId: '' // 任务子ID\n },\n\n checkPointList: [],\n //获取检查部位数据\n checkPointName: '',\n issueList: [],\n //问题分类 || 问题描述\n issueName: '',\n issueGradeList: [{\n name: '一级',\n value: 1\n }, {\n name: '二级',\n value: 2\n }, {\n name: '三级',\n value: 3\n }, {\n name: '四级',\n value: 4\n }],\n //问题等级\n issueGradeIndex: 0,\n urgencyList: [{\n name: '一般',\n value: 1\n }, {\n name: '严重',\n value: 2\n }, {\n name: '紧要',\n value: 3\n }],\n //紧急程度\n urgencyIndex: 0,\n personUpdateList: [],\n // 人员列表-整改人\n personList: [],\n //人员列表 -- 检查人、整改人、复查人、核验人、通知人\n inspectManIndex: null,\n //检查人\n changePeopleIndex: null,\n //整改人\n verifyManIndex: null,\n //核验人\n reviewIndex: null,\n //复查人\n notifier: '',\n //通知人\n unitDialog: false,\n //分包商弹窗\n subpackageLsit: [],\n //分包商数据列表\n videoFileList: [],\n imgFileList: [],\n mapImgList: [],\n basicInfo: {},\n selectIndex: null,\n userInfo: '',\n typeCheck: 'type1',\n // 类型 type1为质量问题 type2为排查记录\n listData: [],\n //分部工程\n subListData: [],\n //分项工程\n subsectionIndex: -1,\n //分部工程\n subentryIndex: -1,\n ////分项工程\n unitEnterpriseId: \"\",\n taskId: '',\n //任务ID\n itemId: '',\n // 任务子ID\n defaultAuditPerson: \"\",\n reviewList: [],\n areaData: {}\n };\n },\n onLoad: function onLoad(option) {\n this.pageTitle = option.type == 'add' ? '新增检查' : '编辑检查';\n this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;\n this.userInfo = JSON.parse(uni.getStorageSync('userInfo'));\n this.getCheckPointList();\n this.getIssueList();\n this.getPersonList();\n // this.getReviewPeopleList();\n // this.getPersonUpdateList();\n this.getProgressListData();\n __f__(\"log\", 'lll', option.taskId, option.itemId, \" at pages/projectEnd/qualityManage/addIssue.vue:576\");\n this.taskId = option.taskId;\n this.itemId = option.itemId;\n this.form.taskId = option.taskId;\n this.form.itemId = option.itemId;\n __f__(\"log\", (0, _tool.dateformat)(new Date()), 777888, \" at pages/projectEnd/qualityManage/addIssue.vue:581\");\n },\n methods: {\n //获取复查人\n getReviewPeopleList: function getReviewPeopleList() {\n var _this = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n // enterpriseTypeId: 7,\n qualityRegionId: this.form.regionId,\n qualityRegionBindType: 2,\n isSupervisingRoleName: 1\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:599\");\n if (res.result.length > 0) {\n _this.reviewList = res.result;\n } else {\n _this.reviewList = [];\n }\n }\n });\n },\n getDate: function getDate(type) {\n var date = new Date();\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n if (type === 'start') {\n year = year;\n } else if (type === 'end') {\n // year = year + 2;\n }\n month = month > 9 ? month : '0' + month;\n day = day > 9 ? day : '0' + day;\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n },\n imgUrl: function imgUrl(val) {\n this.openImg = false;\n this.imgUpload(val);\n this.openImg = true;\n },\n //图片上传请求的接口\n imgUpload: function imgUpload(baseImg) {\n __f__(\"log\", '进入----------图片上传请求的接口', \" at pages/projectEnd/qualityManage/addIssue.vue:631\");\n var that = this;\n var cuDate = new Date().getTime();\n var arr = [];\n that.base64Image = baseImg;\n var parmars = {\n base64Image: that.base64Image\n };\n this.sendRequest({\n url: 'xmgl/upload/uploadBase64',\n method: 'post',\n header: {\n 'content-type': 'application/x-www-form-urlencoded' //自定义请求头信息\n },\n\n data: parmars,\n success: function success(res) {\n __f__(\"log\", '转换后的地址----------', res.data.imageUrl, \" at pages/projectEnd/qualityManage/addIssue.vue:648\");\n __f__(\"log\", '阶段代码 imgUpload 耗时2 :' + (new Date().getTime() - cuDate), \" at pages/projectEnd/qualityManage/addIssue.vue:649\");\n that.imgFileList[that.imgFileList.length - 1].url = res.data.imageUrl;\n }\n });\n },\n imgDialogBtn: function imgDialogBtn() {\n this.imgDialog = false;\n // this.pointList=[]\n },\n //点击点位展示的内容\n pointShow: function pointShow(index) {\n __f__(\"log\", \"当前index : \" + index + \"- this.imgIndex: \" + this.imgIndex, \" at pages/projectEnd/qualityManage/addIssue.vue:660\");\n if (index === this.imgIndex) {\n this.imgIndex = -1;\n } else {\n this.imgIndex = index;\n }\n },\n //删除点位\n removePoint: function removePoint(index) {\n __f__(\"log\", '点击的内容', index, \" at pages/projectEnd/qualityManage/addIssue.vue:669\");\n this.pointList.splice(index, 1);\n this.imgIndex = -1;\n },\n //布点\n pointImage: function pointImage(event) {\n if (this.imgDialogUrlSu) {\n __f__(\"log\", \"开始布点 :\", event, \" at pages/projectEnd/qualityManage/addIssue.vue:676\");\n __f__(\"log\", \"x:\", event.detail.x, \" at pages/projectEnd/qualityManage/addIssue.vue:677\");\n __f__(\"log\", \"y :\", event.detail.y, \" at pages/projectEnd/qualityManage/addIssue.vue:678\");\n var obj = {\n x: event.detail.x,\n y: event.detail.y\n };\n this.pointList.push(obj);\n }\n },\n //开始布点或者结束布点\n pointText: function pointText() {\n this.imgDialogUrlText = this.imgDialogUrlSu ? \"编辑隐患点\" : \"保存隐患点\";\n this.imgDialogUrlSu = !this.imgDialogUrlSu;\n },\n //打开图纸上传弹框\n openImgDialog: function openImgDialog() {\n this.imgDialog = true;\n },\n toggle: function toggle() {},\n //分部工程改动事件\n checkSubListData: function checkSubListData(e, type) {\n __f__(\"log\", e, type, \" at pages/projectEnd/qualityManage/addIssue.vue:700\");\n if (type === 1) {\n var _this$listData$this$s;\n if (this.listData[e.detail.value] == \"暂无数据\") return;\n // 选择一级菜单\n this.subsectionIndex = e.detail.value;\n this.form.subsectionId = ((_this$listData$this$s = this.listData[this.subsectionIndex]) === null || _this$listData$this$s === void 0 ? void 0 : _this$listData$this$s.id) || -1; // 赋值给subsectionId字段\n\n this.subListData = this.listData[this.subsectionIndex].children || [];\n if (this.subListData.length) {\n var _this$subListData$;\n this.subentryIndex = 0; // 如果存在子级菜单,则将分项索引初始化为0\n this.subentryId = ((_this$subListData$ = this.subListData[0]) === null || _this$subListData$ === void 0 ? void 0 : _this$subListData$.id) || -1; // 赋值给subentryId字段\n } else {\n this.subentryIndex = -1; // 如果不存在子级菜单,则将分项索引初始化为-1\n this.subentryId = -1; // 初始化为-1\n }\n } else {\n var _this$subListData$thi;\n if (this.subListData[e.detail.value] == \"暂无数据\") return;\n // 选择二级菜单\n this.subentryIndex = e.detail.value;\n this.form.subentryId = ((_this$subListData$thi = this.subListData[this.subentryIndex]) === null || _this$subListData$thi === void 0 ? void 0 : _this$subListData$thi.id) || -1; // 赋值给subentryId字段\n }\n },\n //获取分部分项工程, 以父子节点形式呈现\n getProgressListData: function getProgressListData() {\n var _this2 = this;\n this.sendRequest({\n url: 'xmgl/subdivisionProject/getParentChildList',\n method: 'get',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n if (res.code == 200) {\n _this2.listData = res.result;\n __f__(\"log\", '获取分部分项工程, 以父子节点形式呈现', _this2.listData, \" at pages/projectEnd/qualityManage/addIssue.vue:733\");\n if (_this2.listData.length >= 1) {\n _this2.form.subsectionId = _this2.listData[0].id;\n if (_this2.listData[0].children.length >= 1) {\n _this2.subListData = _this2.listData[0].children;\n _this2.form.subentryId = _this2.listData[0].children[0].id;\n } else {\n _this2.subListData = ['暂无数据'];\n }\n } else {\n _this2.listData = ['暂无数据'];\n }\n }\n }\n });\n },\n //获取检查部位 列表\n getCheckPointList: function getCheckPointList() {\n var _this3 = this;\n this.sendRequest({\n url: 'xmgl/qualityRegion/list',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n notSupervisingUnit: 1\n },\n success: function success(res) {\n if (res.code == 200) {\n _this3.checkPointList = res.result;\n __f__(\"log\", '-----------', _this3.checkPointList, \" at pages/projectEnd/qualityManage/addIssue.vue:761\");\n }\n }\n });\n },\n dealFalseCheck: function dealFalseCheck(arr) {\n var _this4 = this;\n arr.map(function (item) {\n if (item.children) {\n item.checked = false;\n item.orChecked = false;\n _this4.dealFalseCheck(item.children);\n } else {\n item.checked = false;\n item.orChecked = false;\n }\n });\n },\n //确定选中--回显 \n checkPointBtn: function checkPointBtn(val, type) {\n this.form.level = '';\n // type==1 检查部位 ; 2 问题分类 \t3,通知人\t\t\t\n if (type == 1) {\n this.form.enterpriseSn = \"\";\n this.form.enterpriseName = \"\";\n this.form.changeId = \"\";\n __f__(\"log\", val, type, \" at pages/projectEnd/qualityManage/addIssue.vue:786\");\n this.changePeopleIndex = null;\n // console.log(this.checkPointList, val, this.personList)\n this.areaData = val[0];\n this.form.regionId = val[0].id;\n var arr = JSON.parse(JSON.stringify(val[0].parents));\n var obj = {\n id: val[0].id,\n regionName: val[0].regionName\n };\n arr.push(obj);\n //获取选中的字符串 名称\n var regionName = arr.map(function (item, index) {\n return item.regionName;\n }).join(\"/\");\n this.checkPointName = regionName;\n this.form.regionName = regionName;\n this.form.changeId = val[0].dutyId;\n this.notifier = val[0].intendanceNames;\n this.form.notifyPerson = val[0].intendanceIds;\n // 分包单位数据拿取\n this.subpackageLsit = val[0].enterpriseInfos;\n this.personUpdateList = [];\n // 整改人数据拿取\n // this.personUpdateList = val[0].systemUsers\n // this.personUpdateList.forEach((item, index) => {\n // \tif (item.userId == val[0].dutyId) {\n // \t\tthis.changePeopleIndex = index\n // \t}\n // });\n this.getReviewPeopleList();\n } else if (type == 2) {\n __f__(\"log\", '选择问题描述的数据', val, \" at pages/projectEnd/qualityManage/addIssue.vue:819\");\n //设置问题描述\n this.form.dangerItemContent = val[0].dangerName;\n this.form.dangerItemId = val[0].id;\n this.form.level = val[0].level;\n this.form.remark = val[0].remark; //整改要求\n //设置问题类型\n if (val[0].parents.length == 0) {\n this.form.dangerTypeId = val[0].id;\n this.issueName = val[0].dangerName;\n } else {\n this.form.dangerTypeId = val[0].parents[0].id;\n this.issueName = val[0].parents[0].dangerName + '/' + val[0].parents[1].dangerName + '/' + val[0].dangerName;\n this.form.dangerName = val[0].dangerName;\n }\n } else if (type == 3) {\n __f__(\"log\", val, \" at pages/projectEnd/qualityManage/addIssue.vue:836\");\n this.notifier = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n this.form.notifyPerson = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n }\n },\n //获取问题分类\n getIssueList: function getIssueList() {\n var _this5 = this;\n this.sendRequest({\n url: 'xmgl/dangerTypeRecord/selectDangerTypeAndItemList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n recordStatus: 0\n },\n success: function success(res) {\n if (res.result.length > 0) {\n res.result.forEach(function (item) {\n if (item.children && item.children.length > 0) {\n item.children.forEach(function (itm) {\n if (itm.itemList && itm.itemList.length > 0) {\n itm.itemList.forEach(function (item2) {\n item2.dangerName = item2.content;\n });\n itm.children = itm.itemList;\n }\n });\n }\n });\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:869\");\n _this5.issueList = res.result;\n }\n }\n });\n },\n //补充说明\n supplementTextarea: function supplementTextarea(e) {\n this.form.dangerDesc = e.detail.value;\n },\n //整改要求\n claimTextarea: function claimTextarea(e) {\n this.form.remark = e.detail.value;\n },\n //事件描述\n eventDescription: function eventDescription(e) {\n this.form.addedDescription = e.detail.value;\n },\n //巡检楼层\n eventfloor: function eventfloor(e) {\n __f__(\"log\", '巡检楼层---', e, \" at pages/projectEnd/qualityManage/addIssue.vue:891\");\n var input = e.detail.value;\n this.form.floor = parseInt(input); // 或者 this.form.floor = parseInt(input);\n },\n //获取分包公司\n getSubpackageLsit: function getSubpackageLsit() {\n var _this6 = this;\n var data = {\n // enterpriseTypeId: this.checkType,\n pageNo: 1,\n pageSize: 999,\n projectSn: this.projectSn\n };\n this.sendRequest({\n url: 'xmgl/projectEnterprise/list',\n method: 'post',\n data: data,\n success: function success(res) {\n if (res.result.records.length > 0) {\n _this6.subpackageLsit = res.result.records;\n } else {\n _this6.subpackageLsit = [];\n }\n }\n });\n },\n //下拉选择回显\n bindPickerChange: function bindPickerChange(e, type) {\n __f__(\"log\", e, \" at pages/projectEnd/qualityManage/addIssue.vue:919\");\n //type ==1 问题等级;2紧急情况;3检查人;4 检查时间;5整改时限; 6整改人; 7复查人; 8核验人;\n if (type == 1) {\n this.issueGradeIndex = e.detail.value;\n this.form.level = this.issueGradeList[e.detail.value].value;\n } else if (type == 2) {\n this.urgencyIndex = e.detail.value;\n this.form.urgentLevel = this.urgencyList[e.detail.value].value;\n } else if (type == 3) {\n this.inspectManIndex = e.detail.value;\n this.form.inspectManId = this.personList[e.detail.value].userId;\n } else if (type == 'startTime') {\n this.form.inspectTime = e.f3;\n } else if (type == 'startTime2') {\n this.form.changeLimitTime = e.f3;\n } else if (type == 6) {\n this.changePeopleIndex = e.detail.value;\n this.form.changeId = this.personUpdateList[e.detail.value].userId;\n __f__(\"log\", this.changePeopleIndex, this.form.changeId, \" at pages/projectEnd/qualityManage/addIssue.vue:937\");\n } else if (type == 7) {\n this.reviewIndex = e.detail.value;\n this.form.reviewId = this.reviewList[e.detail.value].userId;\n } else if (type == 8) {\n this.verifyManIndex = e.detail.value;\n this.form.verifyManId = this.personList[e.detail.value].userId;\n }\n },\n //获取人员列表--- 检查人、整改人、复查人、核验人、通知人\n getPersonList: function getPersonList() {\n var _this7 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:958\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this7.personList, \" at pages/projectEnd/qualityManage/addIssue.vue:960\");\n _this7.personList = res.result;\n var index = _this7.personList.findIndex(function (item) {\n return item.userId == _this7.userInfo.userId;\n });\n if (index != -1) {\n _this7.verifyManIndex = index;\n _this7.form.verifyManId = _this7.personList[index].userId;\n } else {\n _this7.defaultAuditPerson = _this7.userInfo.realName;\n _this7.form.verifyManId = _this7.userInfo.userId;\n }\n } else {\n _this7.personList = [];\n }\n }\n });\n },\n //获取人员列表--- 整改人\n getPersonUpdateList: function getPersonUpdateList() {\n var _this8 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n enterpriseId: this.unitEnterpriseId\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/qualityManage/addIssue.vue:989\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this8.personList, \" at pages/projectEnd/qualityManage/addIssue.vue:991\");\n _this8.personUpdateList = res.result;\n } else {\n _this8.personUpdateList = [];\n }\n }\n });\n },\n //选择的分包公司\n checkSubpackage: function checkSubpackage(val) {\n var _this9 = this;\n // if (this.checkType == 1) {\n this.form.enterpriseSn = val.enterpriseSn;\n this.form.enterpriseName = val.enterpriseName;\n this.unitEnterpriseId = val.id;\n this.form.changeId = \"\";\n this.changePeopleIndex = null;\n this.isShowPicker = false;\n this.$nextTick(function () {\n _this9.isShowPicker = true;\n });\n var newArr = [];\n if (this.areaData.systemUsers) {\n this.areaData.systemUsers.filter(function (item) {\n if (item.userId && item.enterpriseId == _this9.unitEnterpriseId) {\n newArr.push(item);\n }\n });\n this.personUpdateList = newArr;\n }\n // this.getPersonUpdateList();\n // } else {\n // \tthis.form.enterpriseSn = val.enterpriseSn;\n // \tthis.form.enterpriseName = val.enterpriseName;\n // }\n this.unitDialog = false;\n },\n //删除---公用\n deletesBtn: function deletesBtn(type) {\n window.event.stopPropagation();\n //type==1 分包单位\n if (type == 1) {\n this.form.enterpriseSn = '';\n this.form.enterpriseName = '';\n }\n },\n //现场整改是否完成\n switchChange: function switchChange(e) {\n if (e.detail.value) {\n this.form.status = 5;\n } else {\n this.form.status = 2;\n }\n },\n //选择分包单位\n clickUnit: function clickUnit() {\n this.unitDialog = true;\n // this.getSubpackageLsit();\n },\n //切换分包商\n checkTypeBtn: function checkTypeBtn(type) {\n this.checkType = type;\n this.getSubpackageLsit();\n },\n //上传附件\n uploadImg: function uploadImg(type) {\n var that = this;\n if (type == 1) {\n uni.chooseImage({\n count: 5 - that.imgFileList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.imgFileList.push(data);\n uni.getImageInfo({\n src: tempFilePaths[0],\n success: function success(resInfo) {\n __f__(\"log\", '传过去啦 resInfo', resInfo, \" at pages/projectEnd/qualityManage/addIssue.vue:1083\");\n that.imgList = {\n imgUrl: tempFilePaths[0],\n imgWidth: resInfo.width,\n imgHeight: resInfo.height\n // team:'班组人员',\n // name: '张三'\n };\n\n that.openImg = true;\n }\n });\n that.openImg = false;\n }\n });\n }\n });\n } else if (type == 2) {\n uni.chooseImage({\n count: 1,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n if (that.imgDialogUrl.length >= 1) {\n that.imgDialogUrl[0].url = data.url;\n that.imgDialogUrl[0].name = data.name;\n } else {\n that.imgDialogUrl.push(data);\n }\n __f__(\"log\", \"上传图片的信息:\", that.imgDialogUrl, \" at pages/projectEnd/qualityManage/addIssue.vue:1121\");\n }\n });\n }\n });\n } else {\n uni.chooseImage({\n count: 1 - that.mapImgList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.mapImgList.push(data);\n }\n });\n }\n });\n }\n },\n //删除附件\n deleteImg: function deleteImg(val, type) {\n var that = this;\n uni.showModal({\n title: '提示',\n content: '确定删除该附件吗?',\n success: function success(res) {\n if (res.confirm) {\n if (type == 1) {\n var fileArr = JSON.parse(JSON.stringify(that.imgFileList));\n fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n fileArr.splice(index, 1);\n }\n });\n that.imgFileList = fileArr;\n } else if (type == 2) {\n var _fileArr = JSON.parse(JSON.stringify(that.videoFileList));\n _fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n _fileArr.splice(index, 1);\n }\n });\n that.videoFileList = _fileArr;\n }\n } else if (res.cancel) {\n __f__(\"log\", '用户点击取消', \" at pages/projectEnd/qualityManage/addIssue.vue:1177\");\n }\n }\n });\n },\n //上传视频\n uploadVideo: function uploadVideo() {\n var that = this;\n uni.chooseVideo({\n count: 5 - that.videoFileList.length,\n sourceType: ['camera', 'album'],\n compressed: false,\n success: function success(res) {\n var url = res.tempFilePath;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: url,\n name: 'files',\n success: function success(uploadFileRes) {\n var obj = {\n name: JSON.parse(uploadFileRes.data).data[0].fileInfo.originalFilename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.videoFileList.push(obj);\n __f__(\"log\", '上传视频后的数据', that.videoFileList, \" at pages/projectEnd/qualityManage/addIssue.vue:1203\");\n }\n });\n }\n });\n },\n //查看视频\n playVideo: function playVideo(url, type) {\n uni.navigateTo({\n url: '../carWashManage/mediaPlay?url=' + url + '&type=' + type\n });\n },\n //预览图片\n previewImage: function previewImage(url) {\n uni.previewImage({\n urls: [url]\n });\n },\n //新增保存\n addSaveBtn: function addSaveBtn() {\n var _this10 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var arr, arr2, data, pointArr, i, obj, data2;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n arr = [], arr2 = [];\n _this10.videoFileList.forEach(function (item) {\n arr.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n _this10.imgFileList.forEach(function (item) {\n arr2.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n // this.form.fileUrl = this.videoFileList.length>0?JSON.stringify(this.videoFileList):'';\n // this.form.imageUrl = this.imgFileList.length>0?JSON.stringify(this.imgFileList):'';\n _this10.form.fileUrl = arr.join(',');\n _this10.form.imageUrl = arr2.join(',');\n data = JSON.parse(JSON.stringify(_this10.form));\n if (data.regionId) {\n _context.next = 9;\n break;\n }\n uni.showToast({\n title: '请选择检查部位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 9:\n if (!(!data.dangerItemContent && _this10.typeCheck == \"type1\")) {\n _context.next = 14;\n break;\n }\n uni.showToast({\n title: '请选择问题描述',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 14:\n if (data.dangerItemContent) {\n _context.next = 17;\n break;\n }\n uni.showToast({\n title: '请选择排查分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 17:\n if (!(!data.dangerTypeId && _this10.typeCheck == \"type1\")) {\n _context.next = 20;\n break;\n }\n uni.showToast({\n title: '请选择问题分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 20:\n if (data.inspectTime) {\n _context.next = 23;\n break;\n }\n uni.showToast({\n title: '请选择检查时间',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 23:\n if (data.enterpriseName) {\n _context.next = 26;\n break;\n }\n uni.showToast({\n title: '请选择分包单位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 26:\n if (!(!data.changeLimitTime && _this10.typeCheck == \"type1\")) {\n _context.next = 29;\n break;\n }\n uni.showToast({\n title: '请选择整改时限',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 29:\n if (!(!data.changeId && _this10.typeCheck == \"type1\")) {\n _context.next = 32;\n break;\n }\n uni.showToast({\n title: '请选择整改人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 32:\n if (!(!data.reviewId && _this10.typeCheck == \"type1\")) {\n _context.next = 35;\n break;\n }\n uni.showToast({\n title: '请选择复查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 35:\n if (!(!data.verifyManId && _this10.typeCheck == \"type1\")) {\n _context.next = 38;\n break;\n }\n uni.showToast({\n title: '请选择核查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 38:\n ;\n data.level = data.level == 0 ? Number(data.level) + 1 : data.level;\n data.urgentLevel = data.urgentLevel == 0 ? Number(data.urgentLevel) + 1 : data.urgentLevel;\n data.projectSn = _this10.projectSn;\n data.inspectManId = _this10.userInfo.userId;\n data.creatorId = _this10.userInfo.userId;\n data.dangerItemContent = _this10.issueName;\n pointArr = [];\n for (i = 0; i < _this10.pointList.length; i++) {\n obj = _this10.pointList[i].x + '*' + _this10.pointList[i].y;\n pointArr.push(obj);\n }\n data.measurePoints = pointArr.join(',');\n __f__(\"log\", 'data.measurePoints=============', data.measurePoints, \" at pages/projectEnd/qualityManage/addIssue.vue:1331\");\n if (!(_this10.typeCheck == \"type1\")) {\n _context.next = 54;\n break;\n }\n __f__(\"log\", data, \" at pages/projectEnd/qualityManage/addIssue.vue:1333\");\n // 质量问题\n _this10.sendRequest({\n url: 'xmgl/qualityInspectionRecord/add',\n method: 'post',\n data: data,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/qualityManage/addIssue.vue:1340\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n _context.next = 60;\n break;\n case 54:\n __f__(\"log\", _this10.taskId, \" at pages/projectEnd/qualityManage/addIssue.vue:1359\");\n __f__(\"log\", _this10.itemId, \" at pages/projectEnd/qualityManage/addIssue.vue:1360\");\n // 排查记录\n data2 = {\n dangerDesc: data.dangerDesc,\n dangerItemContent: _this10.issueName,\n dangerItemId: data.dangerItemId,\n dangerTypeId: data.dangerTypeId,\n enterpriseName: data.enterpriseName,\n enterpriseSn: data.enterpriseSn,\n fileUrl: data.fileUrl,\n imageUrl: data.imageUrl,\n inspectManId: data.inspectManId,\n inspectTime: data.inspectTime,\n projectSn: data.projectSn,\n recordType: 2,\n regionId: data.regionId,\n regionName: data.regionName,\n routineInspect: 0,\n subsectionId: data.subsectionId,\n //分部工程\n subentryId: data.subentryId,\n //分项工程\n floor: data.floor,\n //巡检楼层\n addedDescription: data.addedDescription,\n //事件描述\n taskId: _this10.taskId || null,\n // 任务ID\n itemId: _this10.itemId || null // 任务子ID\n };\n\n __f__(\"log\", data.taskId, \" at pages/projectEnd/qualityManage/addIssue.vue:1385\");\n _context.next = 60;\n return _this10.sendRequest({\n url: 'xmgl/qualityInspectionRecord/add',\n method: 'post',\n data: data2,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/qualityManage/addIssue.vue:1391\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n case 60:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 切换tab\n radioChange: function radioChange(value) {\n var _this11 = this;\n this.typeCheck = value;\n this.checkedTab = value;\n __f__(\"log\", '切换tab', this.form, \" at pages/projectEnd/qualityManage/addIssue.vue:1417\");\n // 重制内容\n this.form = {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: 0,\n urgentLevel: 0,\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1\n // taskId:'',\n // itemId:''\n };\n\n this.issueName = '';\n this.checkPointName = \"\";\n this.videoFileList = [];\n this.imgFileList = [];\n this.subsectionIndex = -1;\n this.subentryIndex = -1;\n this.changePeopleIndex = null;\n // 重置检查部位\n this.dealFalseCheck(this.checkPointList);\n this.$refs.locationTree._reTreeList();\n // 分包单位数据拿取\n this.subpackageLsit = [];\n // 整改人数据拿取\n this.personUpdateList = [];\n var index = this.personList.findIndex(function (item) {\n return item.userId == _this11.userInfo.userId;\n });\n if (index != -1) {\n this.verifyManIndex = index;\n this.form.verifyManId = this.personList[index].userId;\n } else {\n this.defaultAuditPerson = this.userInfo.realName;\n this.form.verifyManId = this.userInfo.userId;\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcHJvamVjdEVuZC9xdWFsaXR5TWFuYWdlL2FkZElzc3VlLnZ1ZSJdLCJuYW1lcyI6WyJjb21wb25lbnRzIiwidGtpVHJlZSIsImNhbnZlcnNDb20iLCJkYXRlVGltZVBpY2NrZXIiLCJkYXRhIiwiaXNTaG93UGlja2VyIiwic3RhcnRUaW1lIiwiZm9ybWF0Iiwic3RhcnRUaW1lMiIsImNoZWNrZWRUYWIiLCJpbWdMaXN0Iiwib3BlbkltZyIsImJhc2U2NEltYWdlIiwiaW1nSW5kZXgiLCJwb2ludExpc3QiLCJsb2NhdGlvbiIsImxlZnQiLCJ0b3AiLCJ4IiwieSIsImltZ0RpYWxvZ1VybFN1IiwiaW1nRGlhbG9nVXJsVGV4dCIsImltZ0RpYWxvZyIsImltZ0RpYWxvZ1VybCIsInBhZ2VUaXRsZSIsInByb2plY3RTbiIsImNoZWNrVHlwZSIsImZvcm0iLCJyZWdpb25JZCIsInJlZ2lvbk5hbWUiLCJkYW5nZXJJdGVtQ29udGVudCIsImRhbmdlckl0ZW1JZCIsImRhbmdlclR5cGVJZCIsImRhbmdlckRlc2MiLCJyZW1hcmsiLCJyb3V0aW5lSWQiLCJsZXZlbCIsInVyZ2VudExldmVsIiwiaW5zcGVjdE1hbklkIiwiaW5zcGVjdFRpbWUiLCJlbnRlcnByaXNlU24iLCJlbnRlcnByaXNlTmFtZSIsImNoYW5nZUxpbWl0VGltZSIsImNoYW5nZUlkIiwicmV2aWV3SWQiLCJ2ZXJpZnlNYW5JZCIsIm5vdGlmeVBlcnNvbiIsInN0YXR1cyIsIm1lYXN1cmVQb2ludHMiLCJpbWFnZVVybCIsImZpbGVVcmwiLCJyZWNvcmRUeXBlIiwiZGFuZ2VyTmFtZSIsInN1YnNlY3Rpb25JZCIsInN1YmVudHJ5SWQiLCJmbG9vciIsImFkZGVkRGVzY3JpcHRpb24iLCJ0YXNrSWQiLCJpdGVtSWQiLCJjaGVja1BvaW50TGlzdCIsImNoZWNrUG9pbnROYW1lIiwiaXNzdWVMaXN0IiwiaXNzdWVOYW1lIiwiaXNzdWVHcmFkZUxpc3QiLCJuYW1lIiwidmFsdWUiLCJpc3N1ZUdyYWRlSW5kZXgiLCJ1cmdlbmN5TGlzdCIsInVyZ2VuY3lJbmRleCIsInBlcnNvblVwZGF0ZUxpc3QiLCJwZXJzb25MaXN0IiwiaW5zcGVjdE1hbkluZGV4IiwiY2hhbmdlUGVvcGxlSW5kZXgiLCJ2ZXJpZnlNYW5JbmRleCIsInJldmlld0luZGV4Iiwibm90aWZpZXIiLCJ1bml0RGlhbG9nIiwic3VicGFja2FnZUxzaXQiLCJ2aWRlb0ZpbGVMaXN0IiwiaW1nRmlsZUxpc3QiLCJtYXBJbWdMaXN0IiwiYmFzaWNJbmZvIiwic2VsZWN0SW5kZXgiLCJ1c2VySW5mbyIsInR5cGVDaGVjayIsImxpc3REYXRhIiwic3ViTGlzdERhdGEiLCJzdWJzZWN0aW9uSW5kZXgiLCJzdWJlbnRyeUluZGV4IiwidW5pdEVudGVycHJpc2VJZCIsImRlZmF1bHRBdWRpdFBlcnNvbiIsInJldmlld0xpc3QiLCJhcmVhRGF0YSIsIm9uTG9hZCIsIm1ldGhvZHMiLCJnZXRSZXZpZXdQZW9wbGVMaXN0IiwidXJsIiwibWV0aG9kIiwicXVhbGl0eVJlZ2lvbklkIiwicXVhbGl0eVJlZ2lvbkJpbmRUeXBlIiwiaXNTdXBlcnZpc2luZ1JvbGVOYW1lIiwic3VjY2VzcyIsImdldERhdGUiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJpbWdVcmwiLCJpbWdVcGxvYWQiLCJ0aGF0IiwiaGVhZGVyIiwiaW1nRGlhbG9nQnRuIiwicG9pbnRTaG93IiwicmVtb3ZlUG9pbnQiLCJwb2ludEltYWdlIiwicG9pbnRUZXh0Iiwib3BlbkltZ0RpYWxvZyIsInRvZ2dsZSIsImNoZWNrU3ViTGlzdERhdGEiLCJnZXRQcm9ncmVzc0xpc3REYXRhIiwiZ2V0Q2hlY2tQb2ludExpc3QiLCJub3RTdXBlcnZpc2luZ1VuaXQiLCJkZWFsRmFsc2VDaGVjayIsImFyciIsIml0ZW0iLCJjaGVja1BvaW50QnRuIiwiaWQiLCJnZXRJc3N1ZUxpc3QiLCJyZWNvcmRTdGF0dXMiLCJyZXMiLCJpdG0iLCJpdGVtMiIsInN1cHBsZW1lbnRUZXh0YXJlYSIsImNsYWltVGV4dGFyZWEiLCJldmVudERlc2NyaXB0aW9uIiwiZXZlbnRmbG9vciIsImdldFN1YnBhY2thZ2VMc2l0IiwicGFnZU5vIiwicGFnZVNpemUiLCJiaW5kUGlja2VyQ2hhbmdlIiwiZ2V0UGVyc29uTGlzdCIsImdldFBlcnNvblVwZGF0ZUxpc3QiLCJlbnRlcnByaXNlSWQiLCJjaGVja1N1YnBhY2thZ2UiLCJuZXdBcnIiLCJkZWxldGVzQnRuIiwid2luZG93Iiwic3dpdGNoQ2hhbmdlIiwiY2xpY2tVbml0IiwiY2hlY2tUeXBlQnRuIiwidXBsb2FkSW1nIiwidW5pIiwiY291bnQiLCJmaWxlUGF0aCIsInNyYyIsImltZ1dpZHRoIiwiaW1nSGVpZ2h0IiwiZGVsZXRlSW1nIiwidGl0bGUiLCJjb250ZW50IiwiZmlsZUFyciIsInVwbG9hZFZpZGVvIiwic291cmNlVHlwZSIsImNvbXByZXNzZWQiLCJvcmlnaW5hbEZpbGVuYW1lIiwicGxheVZpZGVvIiwicHJldmlld0ltYWdlIiwidXJscyIsImFkZFNhdmVCdG4iLCJhcnIyIiwiaWNvbiIsInBvaW50QXJyIiwib2JqIiwic2V0VGltZW91dCIsImRlbHRhIiwiZGF0YTIiLCJyb3V0aW5lSW5zcGVjdCIsInJhZGlvQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUEyYUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFHQTtFQUNBQTtJQUNBQztJQUNBQztJQUNBQztFQUVBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7UUFDQUM7TUFDQTtNQUNBQztRQUNBRDtNQUNBO01BQ0FFO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztRQUNBQztRQUFBO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQUE7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFBQTtRQUNBQztRQUFBO1FBQ0FDO1FBQUE7UUFDQUM7UUFBQTtRQUNBQztRQUFBO1FBQ0FDO01BQ0E7O01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztRQUNBQztRQUNBQztNQUNBLEdBQ0E7UUFDQUQ7UUFDQUM7TUFDQSxHQUNBO1FBQ0FEO1FBQ0FDO01BQ0EsR0FDQTtRQUNBRDtRQUNBQztNQUNBLEVBQ0E7TUFBQTtNQUNBQztNQUNBQztRQUNBSDtRQUNBQztNQUNBLEdBQ0E7UUFDQUQ7UUFDQUM7TUFDQSxHQUNBO1FBQ0FEO1FBQ0FDO01BQ0EsRUFDQTtNQUFBO01BQ0FHO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUNBaEM7TUFBQTtNQUNBQztNQUFBO01BQ0FnQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUdBQztJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBQztRQUNBQztRQUNBN0Y7VUFDQXFCO1VBQ0E7VUFDQXlFO1VBQ0FDO1VBQ0FDO1FBQ0E7UUFDQUM7VUFDQTtVQUNBO1lBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7UUFDQTtNQUFBO01BRUFDO01BQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFFQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBQztNQUNBO1FBQ0FoRztNQUNBO01BRUE7UUFDQW9GO1FBQ0FDO1FBQ0FZO1VBQ0E7UUFDQTs7UUFDQXpHO1FBQ0FpRztVQUNBO1VBQ0E7VUFDQU87UUFDQTtNQUNBO0lBQ0E7SUFDQUU7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUNBL0Y7VUFDQUM7UUFDQTtRQUNBO01BQ0E7SUFFQTtJQUNBO0lBQ0ErRjtNQUNBO01BQ0E7SUFFQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUFBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTtVQUFBO1VBQ0E7VUFDQTtRQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7UUFBQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBdEI7UUFDQUM7UUFDQTdGO1VBQ0FxQjtRQUNBO1FBQ0E0RTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0E7Y0FDQTtnQkFDQTtnQkFDQTtjQUNBO2dCQUNBO2NBQ0E7WUFDQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FrQjtNQUFBO01BQ0E7UUFDQXZCO1FBQ0FDO1FBQ0E3RjtVQUNBcUI7VUFDQStGO1FBQ0E7UUFDQW5CO1VBQ0E7WUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQW9CO01BQUE7TUFDQUM7UUFDQTtVQUNBQztVQUNBQTtVQUNBO1FBQ0E7VUFDQUE7VUFDQUE7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0FDO1VBQ0FoRztRQUNBO1FBQ0E2RjtRQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBLGtHQUNBdEU7VUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBRUE7SUFDQTtJQUNBMEU7TUFBQTtNQUNBO1FBQ0E5QjtRQUNBQztRQUNBN0Y7VUFDQXFCO1VBQ0FzRztRQUNBO1FBQ0ExQjtVQUNBO1lBQ0EyQjtjQUNBO2dCQUNBTDtrQkFDQTtvQkFDQU07c0JBQ0FDO29CQUNBO29CQUNBRDtrQkFDQTtnQkFDQTtjQUNBO1lBQ0E7WUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFHQTtJQUNBRTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQ0E7UUFDQUM7UUFDQUM7UUFDQWhIO01BQ0E7TUFDQTtRQUNBdUU7UUFDQUM7UUFDQTdGO1FBQ0FpRztVQUNBO1lBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQTtJQUNBcUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO0lBRUE7SUFHQTtJQUNBQztNQUFBO01BQ0E7UUFDQTNDO1FBQ0FDO1FBQ0E3RjtVQUNBcUI7UUFDQTtRQUNBNEU7VUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0E7WUFDQTtZQUNBO2NBQ0E7Y0FDQTtZQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQXVDO01BQUE7TUFDQTtRQUNBNUM7UUFDQUM7UUFDQTdGO1VBQ0FxQjtVQUNBb0g7UUFDQTtRQUNBeEM7VUFDQTtVQUNBO1lBQ0E7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUlBO0lBQ0F5QztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQTtZQUNBQztVQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFHQTtJQUNBQztNQUNBQztNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNB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QztRQUNBQztRQUFBO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0E7UUFDQTtNQUNBOztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6Ijc4Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8IS0tIOaWsOWinumXrumimCAtLT5cclxuXHQ8dmlldyBjbGFzcz1cImFkZElzc3VlXCI+XHJcblx0XHQ8aGVhZGVycyA6c2hvd0JhY2s9XCJ0cnVlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaGVhZGVyTmFtZVwiPlxyXG5cdFx0XHRcdHt7cGFnZVRpdGxlfX1cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC9oZWFkZXJzPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ0YWIgZmxleDJcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWJUeXBlXCIgQGNsaWNrPVwicmFkaW9DaGFuZ2UoJ3R5cGUxJylcIiA6Y2xhc3M9XCJjaGVja2VkVGFiPT0ndHlwZTEnPydjaGVja2VkVGFiJzonbm9DaGVja1RhYidcIj5cclxuXHRcdFx0XHTotKjph4/pl67popg8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiVHlwZVwiIEBjbGljaz1cInJhZGlvQ2hhbmdlKCd0eXBlMicpXCIgOmNsYXNzPVwiY2hlY2tlZFRhYj09J3R5cGUyJz8nY2hlY2tlZFRhYic6J25vQ2hlY2tUYWInXCI+XHJcblx0XHRcdFx05o6S5p+l6K6w5b2VPC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cclxuXHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiAgdi1pZj1cIkNPTVBBTlkgIT0gJ3pqd2onXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuexu+Wei++8mjwvdmlldz5cclxuXHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0PHJhZGlvLWdyb3VwIEBjaGFuZ2U9XCJyYWRpb0NoYW5nZVwiIGNsYXNzPVwicmFkaW8td3JhcFwiPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwicmFkaW9cIj5cclxuXHRcdFx0XHRcdFx0PHJhZGlvIHZhbHVlPVwidHlwZTFcIiBjaGVja2VkPVwidHJ1ZVwiIC8+6LSo6YeP6Zeu6aKYXHJcblx0XHRcdFx0XHQ8L2xhYmVsPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwicmFkaW9cIj5cclxuXHRcdFx0XHRcdFx0PHJhZGlvIHZhbHVlPVwidHlwZTJcIiAvPuaOkuafpeiusOW9lVxyXG5cdFx0XHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0XHQ8L3JhZGlvLWdyb3VwPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+KjwvdGV4dD7mo4Dmn6Xpg6jkvY3vvJo8L3ZpZXc+XHJcblx0XHRcdFx0PHBpY2tlciBAY2xpY2s9XCIkcmVmcy5sb2NhdGlvblRyZWUuX3Nob3coKVwiIDpkaXNhYmxlZD1cInRydWVcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJjaGVja1BvaW50TmFtZT09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGZsZXgyXCIgdi1lbHNlPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA5OCU7XCIgY2xhc3M9XCJlbGxpcHNpc1wiPnt7Y2hlY2tQb2ludE5hbWV9fTwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHJcblxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+6Zeu6aKY5o+P6L+w77yaPC92aWV3PlxyXG5cdFx0XHRcdDxwaWNrZXIgOmRpc2FibGVkPVwidHJ1ZVwiIEBjbGljaz1cIiRyZWZzLmlzc3VlVHJlZS5fc2hvdygpXCIgY2xhc3M9XCJwaWNrZXJcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgY2xcIiB2LWlmPVwiZm9ybS5kYW5nZXJJdGVtQ29udGVudD09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0XCIgdi1lbHNlPnt7Zm9ybS5kYW5nZXJJdGVtQ29udGVudH19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1lbHNlPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+5o6S5p+l5YiG57G777yaPC92aWV3PlxyXG5cdFx0XHRcdDxwaWNrZXIgOmRpc2FibGVkPVwidHJ1ZVwiIEBjbGljaz1cIiRyZWZzLmlzc3VlVHJlZS5fc2hvdygpXCIgY2xhc3M9XCJwaWNrZXJcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgY2xcIiB2LWlmPVwiaXNzdWVOYW1lPT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3tpc3N1ZU5hbWV9fVxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+6Zeu6aKY5YiG57G777yaPC92aWV3PlxyXG5cdFx0XHRcdDwhLS0gPHBpY2tlciBjbGFzcz1cInBpY2tlclwiIDpkaXNhYmxlZD1cInRydWVcIiAgQGNsaWNrPVwiJHJlZnMuaXNzdWVUcmVlLl9zaG93KClcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgY2xcIiB2LWlmPVwiaXNzdWVOYW1lPT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3tpc3N1ZU5hbWV9fVxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPiAtLT5cclxuXHRcdFx0XHQ8cGlja2VyIGNsYXNzPVwicGlja2VyXCIgOmRpc2FibGVkPVwidHJ1ZVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJpc3N1ZU5hbWU9PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+i+k+WFpVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e2lzc3VlTmFtZX19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4M1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuihpeWFheivtOaYju+8mjwvdmlldz5cclxuXHRcdFx0XHQ8dGV4dGFyZWEgY2xhc3M9XCJ0ZXh0YXJlYVwiIG1heGxlbmd0aD1cIi0xXCIgcGxhY2Vob2xkZXItY2xhc3M9XCJjbFwiIG5hbWU9XCJpbnNwZWN0Q29udGVudFwiXHJcblx0XHRcdFx0XHRAaW5wdXQ9J3N1cHBsZW1lbnRUZXh0YXJlYScgOnZhbHVlPVwiZm9ybS5kYW5nZXJEZXNjXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIj48L3RleHRhcmVhPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4M1wiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuaVtOaUueimgeaxgu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8dGV4dGFyZWEgY2xhc3M9XCJ0ZXh0YXJlYVwiIG1heGxlbmd0aD1cIi0xXCIgcGxhY2Vob2xkZXItY2xhc3M9XCJjbFwiIG5hbWU9XCJpbnNwZWN0Q29udGVudFwiXHJcblx0XHRcdFx0XHRAaW5wdXQ9J2NsYWltVGV4dGFyZWEnIDp2YWx1ZT1cImZvcm0ucmVtYXJrXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIj48L3RleHRhcmVhPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cclxuXHJcblx0XHRcdDwhLS0g5paw5aKe5Zub5Liq5a2X5q61IC0tPlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cIkNPTVBBTlkgIT0gJ3pqd2onXCI+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+PC90ZXh0PuWIhumDqOW3peeoi++8mjwvdmlldz5cclxuICAgICAgICA8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmNoZWNrU3ViTGlzdERhdGEoZSwxKVwiIDp2YWx1ZT1cInN1YnNlY3Rpb25JbmRleFwiIGNsYXNzPVwicGlja2VyXCIgOnJhbmdlPVwibGlzdERhdGFcIlxyXG4gICAgICAgICAgcmFuZ2Uta2V5PVwic3ViZGl2aXNpb25Qcm9qZWN0TmFtZVwiPlxyXG4gICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJzdWJzZWN0aW9uSW5kZXg9PS0xXCI+XHJcbiAgICAgICAgICAgIOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cclxuICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgIDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+XHJcbiAgICAgICAgICAgIHt7bGlzdERhdGFbc3Vic2VjdGlvbkluZGV4XT9saXN0RGF0YVtzdWJzZWN0aW9uSW5kZXhdLnN1YmRpdmlzaW9uUHJvamVjdE5hbWU6Jyd9fVxyXG4gICAgICAgICAgICA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG4gICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgIDwvcGlja2VyPlxyXG4gICAgICA8L3ZpZXc+XHJcblxyXG5cclxuICAgICAgPHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwiQ09NUEFOWSAhPSAnemp3aidcIj5cclxuICAgICAgICA8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj48L3RleHQ+5YiG6aG55bel56iL77yaPC92aWV3PlxyXG4gICAgICAgIDxwaWNrZXIgQGNoYW5nZT1cIihlKT0+Y2hlY2tTdWJMaXN0RGF0YShlLDIpXCIgOnZhbHVlPVwic3ViZW50cnlJbmRleFwiIGNsYXNzPVwicGlja2VyXCIgOnJhbmdlPVwic3ViTGlzdERhdGFcIlxyXG4gICAgICAgICAgcmFuZ2Uta2V5PVwic3ViZGl2aXNpb25Qcm9qZWN0TmFtZVwiPlxyXG4gICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJzdWJlbnRyeUluZGV4PT0tMSB8fCBzdWJMaXN0RGF0YS5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICDor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgIDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+XHJcbiAgICAgICAgICAgIHt7IHN1Ykxpc3REYXRhW3N1YmVudHJ5SW5kZXhdP3N1Ykxpc3REYXRhW3N1YmVudHJ5SW5kZXhdLnN1YmRpdmlzaW9uUHJvamVjdE5hbWUgOiAnJyB9fVxyXG4gICAgICAgICAgICA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG4gICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgIDwvcGlja2VyPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cIkNPTVBBTlkgIT0gJ3pqd2onXCI+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+PC90ZXh0PuW3oeajgOalvOWxgu+8mjwvdmlldz5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyLWNsYXNzPVwiY2xcIiBjbGFzcz1cImlucHVTdHlsZSAgdW5pLXNlbGVjdCBjbFwiIDp2YWx1ZT1cImZvcm0uZmxvb3JcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIiBAaW5wdXQ9J2V2ZW50Zmxvb3InIC8+XHJcbiAgICAgIDwvdmlldz4gLS0+XHJcblxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleDNcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj7kuovku7bmj4/ov7DvvJo8L3ZpZXc+XHJcblx0XHRcdFx0PHRleHRhcmVhIGNsYXNzPVwidGV4dGFyZWFcIiBtYXhsZW5ndGg9XCItMVwiIHBsYWNlaG9sZGVyLWNsYXNzPVwiY2xcIiBuYW1lPVwiaW5zcGVjdENvbnRlbnRcIlxyXG5cdFx0XHRcdFx0QGlucHV0PSdldmVudERlc2NyaXB0aW9uJyA6dmFsdWU9XCJmb3JtLmFkZGVkRGVzY3JpcHRpb25cIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpVwiPjwvdGV4dGFyZWE+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDwhLS0g5paw5aKe5a2X5q615YiG5Ymy57q/LS0tLS0tLS0tLS0tIC0tPlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwidHlwZUNoZWNrID09ICd0eXBlMSdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PumXrumimOetiee6p++8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSwxKVwiIDp2YWx1ZT1cImlzc3VlR3JhZGVJbmRleFwiIGNsYXNzPVwicGlja2VyXCJcclxuXHRcdFx0XHRcdDpyYW5nZT1cImlzc3VlR3JhZGVMaXN0XCIgcmFuZ2Uta2V5PVwibmFtZVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmxldmVsPT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+XHJcblx0XHRcdFx0XHRcdHt7Zm9ybS5sZXZlbD09MT8n5LiA57qnJzpmb3JtLmxldmVsPT0yPyfkuoznuqcnOmZvcm0ubGV2ZWw9PTM/J+S4iee6pyc6J+Wbm+e6pyd9fVxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+KjwvdGV4dD7ntKfmgKXnqIvluqbvvJo8L3ZpZXc+XHJcblx0XHRcdFx0PHBpY2tlciBAY2hhbmdlPVwiKGUpPT5iaW5kUGlja2VyQ2hhbmdlKGUsMilcIiA6dmFsdWU9XCJ1cmdlbmN5SW5kZXhcIiBjbGFzcz1cInBpY2tlclwiIDpyYW5nZT1cInVyZ2VuY3lMaXN0XCJcclxuXHRcdFx0XHRcdHJhbmdlLWtleT1cIm5hbWVcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgY2xcIiB2LWlmPVwiZm9ybS51cmdlbnRMZXZlbD09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0XCIgdi1lbHNlPnt7Zm9ybS51cmdlbnRMZXZlbD09MT8n5LiA6IisJzpmb3JtLnVyZ2VudExldmVsPT0yPyfkuKXph40nOifntKfopoEnfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+5qOA5p+l5pe26Ze077yaPC92aWV3PlxyXG5cdFx0XHRcdDxkYXRlVGltZVBpY2NrZXIgOnBsYWNlaG9sZGVyPVwiJ+ivt+mAieaLqSdcIiA6ZGlzYWJsZWQ9XCJ0cnVlXCIgOnN0YXJ0PVwic3RhcnRUaW1lXCIgZmllbGRzPVwic2Vjb25kXCJcclxuXHRcdFx0XHRcdDpkZWZhdWx0LXZhbHVlPVwiZm9ybS5pbnNwZWN0VGltZVwiIEBjaGFuZ2U9XCJiaW5kUGlja2VyQ2hhbmdlKCRldmVudCwnc3RhcnRUaW1lJylcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJkYXRlVGltZVBpY2NrZXJcIj5cclxuXHRcdFx0XHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmluc3BlY3RUaW1lPT09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tcmlnaHRcIiBzcmM9XCIvc3RhdGljL2ljb24tcmlnaHQucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3tmb3JtLmluc3BlY3RUaW1lfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1yaWdodFwiIHNyYz1cIi9zdGF0aWMvaWNvbi1yaWdodC5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0XHQ8L2RhdGVUaW1lUGljY2tlcj5cclxuXHRcdFx0XHQ8IS0tIDxwaWNrZXIgQGNoYW5nZT1cIihlKT0+YmluZFBpY2tlckNoYW5nZShlLDQpXCIgbW9kZT1cImRhdGVcIiA6dmFsdWU9XCJmb3JtLmluc3BlY3RUaW1lXCIgY2xhc3M9XCJwaWNrZXJcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgY2xcIiB2LWlmPVwiZm9ybS5pbnNwZWN0VGltZT09PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e2Zvcm0uaW5zcGVjdFRpbWV9fVxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPiAtLT5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwiQ09NUEFOWSAhPSAnemp3aidcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PuWIhuWMheWNleS9je+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjbGljaz1cImNsaWNrVW5pdFwiIDpkaXNhYmxlZD1cInRydWVcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmVudGVycHJpc2VOYW1lPT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgZmxleDJcIiB2LWVsc2U+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDk4JTtcIiBjbGFzcz1cImVsbGlwc2lzXCI+e3tmb3JtLmVudGVycHJpc2VOYW1lfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgQGNsaWNrPVwiZGVsZXRlc0J0bigxKVwiIHR5cGU9XCJjbGVhclwiIHNpemU9XCIyMlwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+5pW05pS55pe26ZmQ77yaPC92aWV3PlxyXG5cdFx0XHRcdDxkYXRlVGltZVBpY2NrZXIgOnBsYWNlaG9sZGVyPVwiJ+ivt+mAieaLqSdcIiA6c3RhcnQ9XCJzdGFydFRpbWUyXCIgZmllbGRzPVwibWludXRlXCJcclxuXHRcdFx0XHRcdDpkZWZhdWx0LXZhbHVlPVwiZm9ybS5jaGFuZ2VMaW1pdFRpbWVcIiBAY2hhbmdlPVwiYmluZFBpY2tlckNoYW5nZSgkZXZlbnQsJ3N0YXJ0VGltZTInKVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cImRhdGVUaW1lUGljY2tlclwiPlxyXG5cdFx0XHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cImZvcm0uY2hhbmdlTGltaXRUaW1lPT09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tcmlnaHRcIiBzcmM9XCIvc3RhdGljL2ljb24tcmlnaHQucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3tmb3JtLmNoYW5nZUxpbWl0VGltZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tcmlnaHRcIiBzcmM9XCIvc3RhdGljL2ljb24tcmlnaHQucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz4gLS0+XHJcblx0XHRcdFx0PC9kYXRlVGltZVBpY2NrZXI+XHJcblx0XHRcdFx0PCEtLSA8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSw1KVwiIG1vZGU9XCJkYXRlXCIgOnZhbHVlPVwiZm9ybS5jaGFuZ2VMaW1pdFRpbWVcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmNoYW5nZUxpbWl0VGltZT09PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e2Zvcm0uY2hhbmdlTGltaXRUaW1lfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj4gLS0+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwidHlwZUNoZWNrID09ICd0eXBlMSdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PuaVtOaUueS6uu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSw2KVwiIDp2YWx1ZT1cImNoYW5nZVBlb3BsZUluZGV4XCIgY2xhc3M9XCJwaWNrZXJcIlxyXG5cdFx0XHRcdFx0OnJhbmdlPVwicGVyc29uVXBkYXRlTGlzdFwiIHJhbmdlLWtleT1cInJlYWxOYW1lXCIgdi1pZj1cImlzU2hvd1BpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJjaGFuZ2VQZW9wbGVJbmRleD09bnVsbFwiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3twZXJzb25VcGRhdGVMaXN0W2NoYW5nZVBlb3BsZUluZGV4XS5yZWFsTmFtZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwidHlwZUNoZWNrID09ICd0eXBlMSdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PuWkjeafpeS6uu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSw3KVwiIDp2YWx1ZT1cInJldmlld0luZGV4XCIgY2xhc3M9XCJwaWNrZXJcIiA6cmFuZ2U9XCJyZXZpZXdMaXN0XCJcclxuXHRcdFx0XHRcdHJhbmdlLWtleT1cInJlYWxOYW1lXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cInJldmlld0luZGV4PT1udWxsXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e3Jldmlld0xpc3RbcmV2aWV3SW5kZXhdLnJlYWxOYW1lfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+5qC45qOA5Lq677yaPC92aWV3PlxyXG5cdFx0XHRcdDxwaWNrZXIgQGNoYW5nZT1cIihlKT0+YmluZFBpY2tlckNoYW5nZShlLDgpXCIgOnZhbHVlPVwidmVyaWZ5TWFuSW5kZXhcIiBjbGFzcz1cInBpY2tlclwiIDpkaXNhYmxlZD1cInRydWVcIlxyXG5cdFx0XHRcdFx0OnJhbmdlPVwicGVyc29uTGlzdFwiIHJhbmdlLWtleT1cInJlYWxOYW1lXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cInZlcmlmeU1hbkluZGV4PT1udWxsICYmICFkZWZhdWx0QXVkaXRQZXJzb25cIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0XCIgdi1lbHNlPlxyXG5cdFx0XHRcdFx0XHR7e2RlZmF1bHRBdWRpdFBlcnNvbiB8fCBwZXJzb25MaXN0W3ZlcmlmeU1hbkluZGV4XS5yZWFsTmFtZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPumAmuefpeS6uu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjbGljaz1cIiRyZWZzLmluZm9ybVRyZWUuX3Nob3coKVwiIDpkaXNhYmxlZD1cInRydWVcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJub3RpZmllcj09PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktc2VsZWN0IGZsZXgyXCIgdi1lbHNlPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImxpbmUtaGVpZ2h0OjIwcHg7IHdpZHRoOjgwJTsgcGFkZGluZzo2cHggMDtcIj57e25vdGlmaWVyfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHN0eWxlPVwid2lkdGg6MTNweDsgaGVpZ2h0OjEzcHg7XCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+XHJcblx0XHRcdFx0XHRcdDwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz4gLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+546w5Zy65pW05pS577yaPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0PHRleHQgOmNsYXNzPVwiZm9ybS5zdGF0dXM9PTI/J3N0YXR1cyc6JydcIj7mnKrlrozmiJA8L3RleHQ+XHJcblx0XHRcdFx0XHQ8c3dpdGNoIDpjaGVja2VkPVwiZm9ybS5zdGF0dXM9PTVcIiBAY2hhbmdlPVwic3dpdGNoQ2hhbmdlXCJcclxuXHRcdFx0XHRcdFx0c3R5bGU9XCJtYXJnaW46IDAgMTBweDt0cmFuc2Zvcm06IHNjYWxlKDAuNzQsMC43KVwiIC8+XHJcblx0XHRcdFx0XHQ8dGV4dCA6Y2xhc3M9XCJmb3JtLnN0YXR1cz09NT8nc3RhdHVzJzonJ1wiPuW3suWujOaIkDwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4IDE3cHg7XHJcbiAgICBjb2xvcjogZ3JheTtcIj7ms6jvvJrlpoLmnpzlnKjmo4Dmn6XnmoTml7blgJnlt7Lnu4/mlbTmlLks6K+355u05o6l6YCJ5oup5bey5a6M5oiQPC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleDNcIiB2LWlmPVwiQ09NUEFOWSA9PSAnemp3aicmJiB0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuWbvue6uOWumuS9je+8mjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIiBzdHlsZT1cImNvbG9yOiAjMTg3Y2ZmO3dpZHRoOjEwMHB4XCIgQGNsaWNrPVwib3BlbkltZ0RpYWxvZ1wiPuWcqOWbvue6uOS4reWumuS9jTwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwidW5pLWZvcm0taW5wdXQgaW1nQm94X3dyYXBcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1nQm94XCIgdi1zaG93PVwibWFwSW1nTGlzdC5sZW5ndGg+MFwiIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIG1hcEltZ0xpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJ1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsXCIgY2xhc3M9XCJpbWdcIlxyXG5cdFx0XHRcdFx0XHRcdEBjbGljaz1cInByZXZpZXdJbWFnZSh1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsKVwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgQGNsaWNrPVwiZGVsZXRlSW1nKGl0ZW0sMSlcIiBjbGFzcz1cImRlbGV0ZUltZ1wiIHR5cGU9XCJjbGVhclwiIHNpemU9XCIyNFwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJhZGRJbWdCb3hcIiBAY2xpY2s9XCJ1cGxvYWRJbWcoMilcIiB2LWlmPVwibWFwSW1nTGlzdC5sZW5ndGg8NVwiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pY29uLWFkZC5wbmdcIiBjbGFzcz1cImljb24tYWRkXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4M1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuS4iuS8oOWbvueJh++8mjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1mb3JtLWlucHV0IGltZ0JveF93cmFwXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltZ0JveFwiIHYtc2hvdz1cImltZ0ZpbGVMaXN0Lmxlbmd0aD4wXCIgdi1mb3I9XCIoaXRlbSxpbmRleCkgaW4gaW1nRmlsZUxpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJ1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsXCIgY2xhc3M9XCJpbWdcIlxyXG5cdFx0XHRcdFx0XHRcdEBjbGljaz1cInByZXZpZXdJbWFnZSh1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsKVwiPlxyXG5cdFx0XHRcdFx0XHQ8L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBAY2xpY2s9XCJkZWxldGVJbWcoaXRlbSwxKVwiIHN0eWxlPVwibWFyZ2luOiA1cHg7XCIgY2xhc3M9XCJkZWxldGVJbWdcIj7Dlzwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkSW1nQm94XCIgQGNsaWNrPVwidXBsb2FkSW1nKDEpXCIgdi1pZj1cImltZ0ZpbGVMaXN0Lmxlbmd0aDw1XCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ljb24tYWRkLnBuZ1wiIGNsYXNzPVwiaWNvbi1hZGRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIFwiPlxyXG5cdFx0XHRcdDx2aWV3PuinhumikShtcDQp6ZmE5Lu277yaPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IHYtaWY9XCJ2aWRlb0ZpbGVMaXN0Lmxlbmd0aD4wXCIgY2xhc3M9XCJpbWdCb3ggZmxleDJcIiBzdHlsZT1cIndpZHRoOjEwMCU7aGVpZ2h0OjI4cHg7XCJcclxuXHRcdFx0XHRcdHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIHZpZGVvRmlsZUxpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6ICM0MTgxRkU7d2lkdGg6IDI4JTt3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuO3RleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1wiXHJcblx0XHRcdFx0XHRcdEBjbGljaz1cInBsYXlWaWRlbyh1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsLCd2aWRlbycpXCI+XHJcblx0XHRcdFx0XHRcdHt7aXRlbS5uYW1lfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IEBjbGljaz1cImRlbGV0ZUltZyhpdGVtLDIpXCIgc3R5bGU9XCJtYXJnaW46IDVweDtjb2xvcjogZ3JheTtsZWZ0OiA3OHB4O1wiIGNsYXNzPVwiZGVsZXRlSW1nXCI+w5dcclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJhZGRJbWdCb3hcIiBAY2xpY2s9XCJ1cGxvYWRWaWRlb1wiIHYtaWY9XCJ2aWRlb0ZpbGVMaXN0Lmxlbmd0aDw9MFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDg4cHg7XCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pY29uLWFkZC5wbmdcIiBjbGFzcz1cImljb24tYWRkXCI+PC9pbWFnZT5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJhZGRTYXZlQnRuXCIgQGNsaWNrPVwiYWRkU2F2ZUJ0blwiPuaWsOWinuS/neWtmDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5Zu+57q45a6a5L2N5by556qXIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bml0RGlhbG9nXCIgdi1pZj1cImltZ0RpYWxvZ1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRDb250ZW50XCIgc3R5bGU9XCJoZWlnaHQ6IDY1JTt3aWR0aDogODklO1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPuWbvue6uOWumuS9jTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7bWFyZ2luLXRvcDogMjBweDtcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkMlwiIHYtaWY9XCJpbWdEaWFsb2dVcmwhPScnXCIgQGNsaWNrLnN0b3A9XCJwb2ludFRleHQoKVwiPlxyXG5cdFx0XHRcdFx0XHR7e2ltZ0RpYWxvZ1VybFRleHR9fVxyXG5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkMlwiIHYtaWY9XCJpbWdEaWFsb2dVcmwhPScnXCIgQGNsaWNrLnN0b3A9XCJ1cGxvYWRJbWcoMilcIj7mm7TmjaLlm77niYc8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWZvcm0taW5wdXQgaW1nQm94X3dyYXBcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWdCb3hcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCIgdi1zaG93PVwiaW1nRGlhbG9nVXJsLmxlbmd0aD4wXCJcclxuXHRcdFx0XHRcdFx0di1mb3I9XCIoaXRlbSxpbmRleCkgaW4gaW1nRGlhbG9nVXJsXCIgOmtleT1cImluZGV4XCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBkYXRhLWluZGV4PScxMTEnIDpzcmM9XCJ1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsXCIgQGNsaWNrLnN0b3A9XCJwb2ludEltYWdlKCRldmVudClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljLy9tb25pdG9yUG9pbnQucG5nXCIgY2xhc3M9XCJwb2ludFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdDpzdHlsZT1cInt0b3A6IGl0ZW0ueSAtIDIwMCArICdweCcsbGVmdDppdGVtLnggLSA0MCArICdweCd9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0di1mb3I9XCIoaXRlbSxpbmRleCkgaW4gcG9pbnRMaXN0XCIgOmtleT1cImluZGV4XCIgQGNsaWNrLnN0b3A9XCJwb2ludFNob3coaW5kZXgpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyA6c3R5bGU9XCJ7dG9wOiBpdGVtLnkgLSAyMDAgKyAncHgnLGxlZnQ6aXRlbS54IC0gNDAgKyAncHgnfVwiXHJcblx0XHRcdFx0XHRcdFx0XHR2LWZvcj1cIihpdGVtLGluZGV4KSBpbiBwb2ludExpc3RcIiA6a2V5PVwiaW5kZXhcIiB2LWlmPVwiaW1nSW5kZXggPT09IGluZGV4XCIgY2xhc3M9XCJwb2ludFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsYWdDc3NcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx05Z2Q5qCHIO+8mnggOiB7e2l0ZW0ueH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdHkgOiB7e2l0ZW0ueX19XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiY29sb3I6IHJlZDtcIiBAY2xpY2suc3RvcD1cInJlbW92ZVBvaW50KGluZGV4KVwiPuWIoOmZpDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkSW1nQm94XCIgc3R5bGU9XCJ3aWR0aDogMTc4cHg7XHJcbiAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNjNweDttYXJnaW46IDIwJTtcIiBAY2xpY2s9XCJ1cGxvYWRJbWcoMilcIiB2LWlmPVwiaW1nRGlhbG9nVXJsLmxlbmd0aD09MFwiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pY29uLWFkZC5wbmdcIiBjbGFzcz1cImljb24tYWRkXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXRBXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz0nYWRkU2F2ZUJ0bicgc3R5bGU9XCIgbWFyZ2luLWxlZnQ6IDEwNXB4O3dpZHRoOiA0MCU7bWFyZ2luLXRvcDogOCU7XCJcclxuXHRcdFx0XHRcdFx0di1pZj1cImltZ0RpYWxvZ1VybCE9JydcIiBAY2xpY2s9XCJpbWdEaWFsb2dCdG5cIj7kv53lrZg8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9J2FkZFNhdmVCdG4nIHN0eWxlPVwiIG1hcmdpbi1sZWZ0OiAxMDVweDt3aWR0aDogNDAlO21hcmdpbi10b3A6IC01JTtcIiB2LWVsc2VcclxuXHRcdFx0XHRcdFx0QGNsaWNrPVwiaW1nRGlhbG9nID0gZmFsc2VcIj5cclxuXHRcdFx0XHRcdFx05Y+W5raIPC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInRleHRcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICBjb2xvcjogb3JhbmdlO21hcmdpbi10b3A6IC00MHB4O1wiIHYtZWxzZT5cclxuXHRcdFx0XHRcdOaaguaXoOWbvue6uCzor7fkuIrkvKBcclxuXHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0PC92aWV3PlxyXG5cclxuXHRcdDwhLS0g5YiG5YyF5Y2V5L2N5by556qXIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bml0RGlhbG9nXCIgdi1pZj1cInVuaXREaWFsb2dcIiBAY2xpY2s9XCJ1bml0RGlhbG9nPWZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidW5pdENvbnRlbnRcIj5cclxuXHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwidGFicyBmbGV4MlwiPlxyXG4gICAgICAgICAgPHZpZXcgQGNsaWNrLnN0b3A9XCJjaGVja1R5cGVCdG4oMSlcIiA6Y2xhc3M9XCJjaGVja1R5cGU9PTE/J2NoZWNrTmFtZSB0YWJzX25hbWUnOidub0NoZWNrTmFtZSB0YWJzX25hbWUnXCI+XHJcbiAgICAgICAgICAgIOS4k+S4muWIhuWMheWVhjwvdmlldz5cclxuICAgICAgICAgIDx2aWV3IEBjbGljay5zdG9wPVwiY2hlY2tUeXBlQnRuKDYpXCIgOmNsYXNzPVwiY2hlY2tUeXBlPT02PydjaGVja05hbWUgdGFic19uYW1lJzonbm9DaGVja05hbWUgdGFic19uYW1lJ1wiPlxyXG4gICAgICAgICAgICDlirPliqHliIbljIXllYY8L3ZpZXc+XHJcbiAgICAgICAgPC92aWV3PiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRMaXN0XCIgdi1pZj1cInN1YnBhY2thZ2VMc2l0Lmxlbmd0aD4wXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+5YWs5Y+45ZCN56ewPC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0X3ZhbFwiIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIHN1YnBhY2thZ2VMc2l0XCIgQGNsaWNrPVwiY2hlY2tTdWJwYWNrYWdlKGl0ZW0pXCJcclxuXHRcdFx0XHRcdFx0OmNsYXNzPVwiaW5kZXglMj09MD8nYmdfOTk5JzonJ1wiPnt7aXRlbS5lbnRlcnByaXNlTmFtZX19PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBsYWNlaG9sZGVyQm94XCIgdi1pZj1cInN1YnBhY2thZ2VMc2l0Lmxlbmd0aD09MFwiPlxyXG5cdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9zdGF0aWMvbm9EYXRhLnBuZ1wiIG1vZGU9XCJcIiBjbGFzcz1cIm5vRGF0YUltZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHRcIj5cclxuXHRcdFx0XHRcdFx05pqC5peg5pWw5o2uXHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOagh+iusOeCuSAtLT5cclxuXHRcdDwhLS0g5qOA5p+l6YOo5L2NIC0tPlxyXG5cdFx0PHRraS10cmVlIHJlZj1cImxvY2F0aW9uVHJlZVwiIEBjb25maXJtPVwiKHZhbCk9PmNoZWNrUG9pbnRCdG4odmFsLDEpXCIgaWRLZXk9J2lkJyA6cmFuZ2U9XCJjaGVja1BvaW50TGlzdFwiXHJcblx0XHRcdHJhbmdlS2V5PVwicmVnaW9uTmFtZVwiIGNvbmZpcm1Db2xvcj1cIiM0ZThhZjdcIiA6c2VsZWN0UGFyZW50PVwidHJ1ZVwiIC8+XHJcblx0XHQ8IS0tIOmXrumimOWIhuexuyAtLT5cclxuXHRcdDx0a2ktdHJlZSByZWY9XCJpc3N1ZVRyZWVcIiBAY29uZmlybT1cIih2YWwpPT5jaGVja1BvaW50QnRuKHZhbCwyKVwiIGlkS2V5PSdpZCcgOnJhbmdlPVwiaXNzdWVMaXN0XCJcclxuXHRcdFx0cmFuZ2VLZXk9XCJkYW5nZXJOYW1lXCIgY29uZmlybUNvbG9yPVwiIzRlOGFmN1wiIC8+XHJcblx0XHQ8IS0tIOmAmuefpeS6uiAtLT5cclxuXHRcdDx0a2ktdHJlZSByZWY9XCJpbmZvcm1UcmVlXCIgOm11bHRpcGxlPVwidHJ1ZVwiIEBjb25maXJtPVwiKHZhbCk9PmNoZWNrUG9pbnRCdG4odmFsLDMpXCIgaWRLZXk9J2lkJ1xyXG5cdFx0XHQ6cmFuZ2U9XCJwZXJzb25MaXN0XCIgcmFuZ2VLZXk9XCJ3b3JrZXJOYW1lXCIgY29uZmlybUNvbG9yPVwiIzRlOGFmN1wiIC8+XHJcblx0XHQ8Y2FudmVyc0NvbSB2LWlmPVwib3BlbkltZ1wiIEBpbWdVcmw9XCJpbWdVcmxcIiA6aW1nTGlzdD1cImltZ0xpc3RcIj48L2NhbnZlcnNDb20+XHJcblxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHRraVRyZWUgZnJvbSBcIkAvY29tcG9uZW50cy90a2ktdHJlZS90a2ktdHJlZS52dWVcIlxyXG5cdGltcG9ydCBjYW52ZXJzQ29tIGZyb20gXCJAL3BhZ2VzL3ZpZGVvTWFuYWdlL2NvbXBvbmVudC9jYW52ZXJzQ29tLnZ1ZVwiXHJcblx0aW1wb3J0IGRhdGVUaW1lUGljY2tlciBmcm9tICdAL2NvbXBvbmVudHMvZGF0ZVRpbWVQaWNrZXIvaW5kZXgudnVlJ1xyXG5cdGltcG9ydCB7XHJcblx0XHRkYXRlZm9ybWF0XHJcblx0fSBmcm9tIFwiQC91dGlscy90b29sLmpzXCJcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdHRraVRyZWUsXHJcblx0XHRcdGNhbnZlcnNDb20sXHJcblx0XHRcdGRhdGVUaW1lUGljY2tlclxyXG5cclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGlzU2hvd1BpY2tlcjogdHJ1ZSxcclxuXHRcdFx0XHRzdGFydFRpbWU6IHRoaXMuZ2V0RGF0ZSh7XHJcblx0XHRcdFx0XHRmb3JtYXQ6IHRydWUsXHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0c3RhcnRUaW1lMjogdGhpcy5nZXREYXRlKHtcclxuXHRcdFx0XHRcdGZvcm1hdDogdHJ1ZSxcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRjaGVja2VkVGFiOiAndHlwZTEnLFxyXG5cdFx0XHRcdGltZ0xpc3Q6IHt9LFxyXG5cdFx0XHRcdG9wZW5JbWc6IGZhbHNlLFxyXG5cdFx0XHRcdGJhc2U2NEltYWdlOiAnJyxcclxuXHRcdFx0XHRpbWdJbmRleDogLTEsXHJcblx0XHRcdFx0cG9pbnRMaXN0OiBbXSxcclxuXHRcdFx0XHRsb2NhdGlvbjoge1xyXG5cdFx0XHRcdFx0bGVmdDogJzAnLFxyXG5cdFx0XHRcdFx0dG9wOiAnMCdcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0eTogMCxcclxuXHRcdFx0XHRpbWdEaWFsb2dVcmxTdTogZmFsc2UsXHJcblx0XHRcdFx0aW1nRGlhbG9nVXJsVGV4dDogXCLnvJbovpHpmpDmgqPngrlcIixcclxuXHRcdFx0XHRpbWdEaWFsb2c6IGZhbHNlLFxyXG5cdFx0XHRcdGltZ0RpYWxvZ1VybDogW10sXHJcblx0XHRcdFx0cGFnZVRpdGxlOiAn5paw5aKe5qOA5p+lJyxcclxuXHRcdFx0XHRwcm9qZWN0U246ICcnLFxyXG5cdFx0XHRcdGNoZWNrVHlwZTogMSwgLy/liIbljIXllYbnsbvlnosgICAx5LiT5Lia5YiG5YyFICA25Yqz5Yqh5YiG5YyFXHJcblx0XHRcdFx0Zm9ybToge1xyXG5cdFx0XHRcdFx0cmVnaW9uSWQ6IFwiXCIsIC8vIOajgOafpemDqOS9jVxyXG5cdFx0XHRcdFx0cmVnaW9uTmFtZTogXCJcIixcclxuXHRcdFx0XHRcdGRhbmdlckl0ZW1Db250ZW50OiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VySXRlbUlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyVHlwZUlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyRGVzYzogXCJcIixcclxuXHRcdFx0XHRcdHJlbWFyazogXCJcIixcclxuXHRcdFx0XHRcdHJvdXRpbmVJZDogMCxcclxuXHRcdFx0XHRcdGxldmVsOiBcIlwiLFxyXG5cdFx0XHRcdFx0dXJnZW50TGV2ZWw6IFwiXCIsXHJcblx0XHRcdFx0XHRpbnNwZWN0TWFuSWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRpbnNwZWN0VGltZTogZGF0ZWZvcm1hdChuZXcgRGF0ZSgpKSxcclxuXHRcdFx0XHRcdGVudGVycHJpc2VTbjogXCJcIixcclxuXHRcdFx0XHRcdGVudGVycHJpc2VOYW1lOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y2hhbmdlTGltaXRUaW1lOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y2hhbmdlSWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRyZXZpZXdJZDogXCJcIixcclxuXHRcdFx0XHRcdHZlcmlmeU1hbklkOiBcIlwiLFxyXG5cdFx0XHRcdFx0bm90aWZ5UGVyc29uOiBbXSxcclxuXHRcdFx0XHRcdHN0YXR1czogMiwgLy8g546w5Zy65pW05pS554q25oCBICAy5pyq5a6M5oiQICAgNeW3suWujOaIkFxyXG5cdFx0XHRcdFx0bWVhc3VyZVBvaW50czogW10sXHJcblx0XHRcdFx0XHRpbWFnZVVybDogXCJcIixcclxuXHRcdFx0XHRcdGZpbGVVcmw6IFwiXCIsXHJcblx0XHRcdFx0XHRyZWNvcmRUeXBlOiAxLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyTmFtZTogJycsXHJcblx0XHRcdFx0XHRzdWJzZWN0aW9uSWQ6ICcnLCAvL+WIhumDqOW3peeoi1xyXG5cdFx0XHRcdFx0c3ViZW50cnlJZDogJycsIC8v5YiG6aG55bel56iLXHJcblx0XHRcdFx0XHRmbG9vcjogJycsIC8v5beh5qOA5qW85bGCXHJcblx0XHRcdFx0XHRhZGRlZERlc2NyaXB0aW9uOiAnJywgLy/kuovku7bmj4/ov7BcclxuXHRcdFx0XHRcdHRhc2tJZDogJycsIC8v5Lu75YqhSURcclxuXHRcdFx0XHRcdGl0ZW1JZDogJycgLy8g5Lu75Yqh5a2QSURcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGNoZWNrUG9pbnRMaXN0OiBbXSwgLy/ojrflj5bmo4Dmn6Xpg6jkvY3mlbDmja5cclxuXHRcdFx0XHRjaGVja1BvaW50TmFtZTogJycsXHJcblx0XHRcdFx0aXNzdWVMaXN0OiBbXSwgLy/pl67popjliIbnsbsgfHwg6Zeu6aKY5o+P6L+wXHJcblx0XHRcdFx0aXNzdWVOYW1lOiAnJyxcclxuXHRcdFx0XHRpc3N1ZUdyYWRlTGlzdDogW3tcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+S4gOe6pycsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiAxXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAn5LqM57qnJyxcclxuXHRcdFx0XHRcdFx0dmFsdWU6IDJcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICfkuInnuqcnLFxyXG5cdFx0XHRcdFx0XHR2YWx1ZTogM1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+Wbm+e6pycsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiA0XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdF0sIC8v6Zeu6aKY562J57qnXHJcblx0XHRcdFx0aXNzdWVHcmFkZUluZGV4OiAwLFxyXG5cdFx0XHRcdHVyZ2VuY3lMaXN0OiBbe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAn5LiA6IisJyxcclxuXHRcdFx0XHRcdFx0dmFsdWU6IDFcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICfkuKXph40nLFxyXG5cdFx0XHRcdFx0XHR2YWx1ZTogMlxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+e0p+imgScsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiAzXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdF0sIC8v57Sn5oCl56iL5bqmXHJcblx0XHRcdFx0dXJnZW5jeUluZGV4OiAwLFxyXG5cdFx0XHRcdHBlcnNvblVwZGF0ZUxpc3Q6IFtdLCAvLyDkurrlkZjliJfooagt5pW05pS55Lq6XHJcblx0XHRcdFx0cGVyc29uTGlzdDogW10sIC8v5Lq65ZGY5YiX6KGoICAtLSDmo4Dmn6XkurrjgIHmlbTmlLnkurrjgIHlpI3mn6XkurrjgIHmoLjpqozkurrjgIHpgJrnn6XkurpcclxuXHRcdFx0XHRpbnNwZWN0TWFuSW5kZXg6IG51bGwsIC8v5qOA5p+l5Lq6XHJcblx0XHRcdFx0Y2hhbmdlUGVvcGxlSW5kZXg6IG51bGwsIC8v5pW05pS55Lq6XHJcblx0XHRcdFx0dmVyaWZ5TWFuSW5kZXg6IG51bGwsIC8v5qC46aqM5Lq6XHJcblx0XHRcdFx0cmV2aWV3SW5kZXg6IG51bGwsIC8v5aSN5p+l5Lq6XHJcblx0XHRcdFx0bm90aWZpZXI6ICcnLCAvL+mAmuefpeS6ulxyXG5cdFx0XHRcdHVuaXREaWFsb2c6IGZhbHNlLCAvL+WIhuWMheWVhuW8ueeql1xyXG5cdFx0XHRcdHN1YnBhY2thZ2VMc2l0OiBbXSwgLy/liIbljIXllYbmlbDmja7liJfooahcclxuXHRcdFx0XHR2aWRlb0ZpbGVMaXN0OiBbXSxcclxuXHRcdFx0XHRpbWdGaWxlTGlzdDogW10sXHJcblx0XHRcdFx0bWFwSW1nTGlzdDogW10sXHJcblx0XHRcdFx0YmFzaWNJbmZvOiB7fSxcclxuXHRcdFx0XHRzZWxlY3RJbmRleDogbnVsbCxcclxuXHRcdFx0XHR1c2VySW5mbzogJycsXHJcblx0XHRcdFx0dHlwZUNoZWNrOiAndHlwZTEnLCAvLyDnsbvlnosgdHlwZTHkuLrotKjph4/pl67popggIHR5cGUy5Li65o6S5p+l6K6w5b2VXHJcblx0XHRcdFx0bGlzdERhdGE6IFtdLCAvL+WIhumDqOW3peeoi1xyXG5cdFx0XHRcdHN1Ykxpc3REYXRhOiBbXSwgLy/liIbpobnlt6XnqItcclxuXHRcdFx0XHRzdWJzZWN0aW9uSW5kZXg6IC0xLCAvL+WIhumDqOW3peeoi1xyXG5cdFx0XHRcdHN1YmVudHJ5SW5kZXg6IC0xLCAvLy8v5YiG6aG55bel56iLXHJcblx0XHRcdFx0dW5pdEVudGVycHJpc2VJZDogXCJcIixcclxuXHRcdFx0XHR0YXNrSWQ6ICcnLCAvL+S7u+WKoUlEXHJcblx0XHRcdFx0aXRlbUlkOiAnJywgLy8g5Lu75Yqh5a2QSURcclxuXHRcdFx0XHRkZWZhdWx0QXVkaXRQZXJzb246IFwiXCIsXHJcblx0XHRcdFx0cmV2aWV3TGlzdDogW10sXHJcblx0XHRcdFx0YXJlYURhdGE6IHt9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQob3B0aW9uKSB7XHJcblx0XHRcdHRoaXMucGFnZVRpdGxlID0gb3B0aW9uLnR5cGUgPT0gJ2FkZCcgPyAn5paw5aKe5qOA5p+lJyA6ICfnvJbovpHmo4Dmn6UnO1xyXG5cdFx0XHR0aGlzLnByb2plY3RTbiA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKCdwcm9qZWN0RGV0YWlsJykpLnByb2plY3RTbjtcclxuXHRcdFx0dGhpcy51c2VySW5mbyA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpKTtcclxuXHRcdFx0dGhpcy5nZXRDaGVja1BvaW50TGlzdCgpO1xyXG5cdFx0XHR0aGlzLmdldElzc3VlTGlzdCgpO1xyXG5cdFx0XHR0aGlzLmdldFBlcnNvbkxpc3QoKTtcclxuXHRcdFx0Ly8gdGhpcy5nZXRSZXZpZXdQZW9wbGVMaXN0KCk7XHJcblx0XHRcdC8vIHRoaXMuZ2V0UGVyc29uVXBkYXRlTGlzdCgpO1xyXG5cdFx0XHR0aGlzLmdldFByb2dyZXNzTGlzdERhdGEoKVxyXG5cdFx0XHRjb25zb2xlLmxvZygnbGxsJywgb3B0aW9uLnRhc2tJZCwgb3B0aW9uLml0ZW1JZClcclxuXHRcdFx0dGhpcy50YXNrSWQgPSBvcHRpb24udGFza0lkXHJcblx0XHRcdHRoaXMuaXRlbUlkID0gb3B0aW9uLml0ZW1JZFxyXG5cdFx0XHR0aGlzLmZvcm0udGFza0lkID0gb3B0aW9uLnRhc2tJZFxyXG5cdFx0XHR0aGlzLmZvcm0uaXRlbUlkID0gb3B0aW9uLml0ZW1JZFxyXG5cdFx0XHRjb25zb2xlLmxvZyhkYXRlZm9ybWF0KG5ldyBEYXRlKCkpLCA3Nzc4ODgpXHJcblx0XHR9LFxyXG5cclxuXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8v6I635Y+W5aSN5p+l5Lq6XHJcblx0XHRcdGdldFJldmlld1Blb3BsZUxpc3QoKSB7XHJcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3N5c3RlbVVzZXIvZ2V0UHJvamVjdENoaWxkZXJTeXN0ZW1Vc2VyTGlzdCcsXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0JyxcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTbixcclxuXHRcdFx0XHRcdFx0Ly8gZW50ZXJwcmlzZVR5cGVJZDogNyxcclxuXHRcdFx0XHRcdFx0cXVhbGl0eVJlZ2lvbklkOiB0aGlzLmZvcm0ucmVnaW9uSWQsXHJcblx0XHRcdFx0XHRcdHF1YWxpdHlSZWdpb25CaW5kVHlwZTogMixcclxuXHRcdFx0XHRcdFx0aXNTdXBlcnZpc2luZ1JvbGVOYW1lOiAxXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5yZXN1bHQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucmV2aWV3TGlzdCA9IHJlcy5yZXN1bHQ7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yZXZpZXdMaXN0ID0gW107XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXREYXRlKHR5cGUpIHtcclxuXHRcdFx0XHRjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuXHRcdFx0XHRsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHRsZXQgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG5cdFx0XHRcdGxldCBkYXkgPSBkYXRlLmdldERhdGUoKTtcclxuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ3N0YXJ0Jykge1xyXG5cdFx0XHRcdFx0eWVhciA9IHllYXI7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09PSAnZW5kJykge1xyXG5cdFx0XHRcdFx0Ly8geWVhciA9IHllYXIgKyAyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRtb250aCA9IG1vbnRoID4gOSA/IG1vbnRoIDogJzAnICsgbW9udGg7XHJcblx0XHRcdFx0ZGF5ID0gZGF5ID4gOSA/IGRheSA6ICcwJyArIGRheTtcclxuXHRcdFx0XHRyZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1nVXJsKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMub3BlbkltZyA9IGZhbHNlXHJcblx0XHRcdFx0dGhpcy5pbWdVcGxvYWQodmFsKVxyXG5cclxuXHRcdFx0XHR0aGlzLm9wZW5JbWcgPSB0cnVlXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvL+WbvueJh+S4iuS8oOivt+axgueahOaOpeWPo1xyXG5cdFx0XHRpbWdVcGxvYWQoYmFzZUltZykge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfov5vlhaUtLS0tLS0tLS0t5Zu+54mH5LiK5Lyg6K+35rGC55qE5o6l5Y+jJyk7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0bGV0IGN1RGF0ZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cdFx0XHRcdGxldCBhcnIgPSBbXVxyXG5cdFx0XHRcdHRoYXQuYmFzZTY0SW1hZ2UgPSBiYXNlSW1nXHJcblx0XHRcdFx0bGV0IHBhcm1hcnMgPSB7XHJcblx0XHRcdFx0XHRiYXNlNjRJbWFnZTogdGhhdC5iYXNlNjRJbWFnZVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3VwbG9hZC91cGxvYWRCYXNlNjQnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIC8v6Ieq5a6a5LmJ6K+35rGC5aS05L+h5oGvXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZGF0YTogcGFybWFycyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+i9rOaNouWQjueahOWcsOWdgC0tLS0tLS0tLS0nLCByZXMuZGF0YS5pbWFnZVVybCk7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfpmLbmrrXku6PnoIEgIGltZ1VwbG9hZCDogJfml7YyIO+8micgKyAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSBjdURhdGUpKVxyXG5cdFx0XHRcdFx0XHR0aGF0LmltZ0ZpbGVMaXN0W3RoYXQuaW1nRmlsZUxpc3QubGVuZ3RoIC0gMV0udXJsID0gcmVzLmRhdGEuaW1hZ2VVcmxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbWdEaWFsb2dCdG4oKSB7XHJcblx0XHRcdFx0dGhpcy5pbWdEaWFsb2cgPSBmYWxzZVxyXG5cdFx0XHRcdC8vIHRoaXMucG9pbnRMaXN0PVtdXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v54K55Ye754K55L2N5bGV56S655qE5YaF5a65XHJcblx0XHRcdHBvaW50U2hvdyhpbmRleCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi5b2T5YmNaW5kZXggOiBcIiArIGluZGV4ICsgXCItIHRoaXMuaW1nSW5kZXg6IFwiICsgdGhpcy5pbWdJbmRleClcclxuXHRcdFx0XHRpZiAoaW5kZXggPT09IHRoaXMuaW1nSW5kZXgpIHtcclxuXHRcdFx0XHRcdHRoaXMuaW1nSW5kZXggPSAtMVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmltZ0luZGV4ID0gaW5kZXhcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5Yig6Zmk54K55L2NXHJcblx0XHRcdHJlbW92ZVBvaW50KGluZGV4KSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+eCueWHu+eahOWGheWuuScsIGluZGV4KTtcclxuXHRcdFx0XHR0aGlzLnBvaW50TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG5cdFx0XHRcdHRoaXMuaW1nSW5kZXggPSAtMVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+W4g+eCuVxyXG5cdFx0XHRwb2ludEltYWdlKGV2ZW50KSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuaW1nRGlhbG9nVXJsU3UpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5byA5aeL5biD54K5IO+8mlwiLCBldmVudCk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcInjvvJpcIiwgZXZlbnQuZGV0YWlsLngpO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCJ5IO+8mlwiLCBldmVudC5kZXRhaWwueSk7XHJcblx0XHRcdFx0XHRsZXQgb2JqID0ge1xyXG5cdFx0XHRcdFx0XHR4OiBldmVudC5kZXRhaWwueCxcclxuXHRcdFx0XHRcdFx0eTogZXZlbnQuZGV0YWlsLnlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMucG9pbnRMaXN0LnB1c2gob2JqKVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5byA5aeL5biD54K55oiW6ICF57uT5p2f5biD54K5XHJcblx0XHRcdHBvaW50VGV4dCgpIHtcclxuXHRcdFx0XHR0aGlzLmltZ0RpYWxvZ1VybFRleHQgPSB0aGlzLmltZ0RpYWxvZ1VybFN1ID8gXCLnvJbovpHpmpDmgqPngrlcIiA6IFwi5L+d5a2Y6ZqQ5oKj54K5XCJcclxuXHRcdFx0XHR0aGlzLmltZ0RpYWxvZ1VybFN1ID0gIXRoaXMuaW1nRGlhbG9nVXJsU3VcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5omT5byA5Zu+57q45LiK5Lyg5by55qGGXHJcblx0XHRcdG9wZW5JbWdEaWFsb2coKSB7XHJcblx0XHRcdFx0dGhpcy5pbWdEaWFsb2cgPSB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdHRvZ2dsZSgpIHt9LFxyXG5cdFx0XHQvL+WIhumDqOW3peeoi+aUueWKqOS6i+S7tlxyXG5cdFx0XHRjaGVja1N1Ykxpc3REYXRhKGUsIHR5cGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhlLCB0eXBlKVxyXG5cdFx0XHRcdGlmICh0eXBlID09PSAxKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5saXN0RGF0YVtlLmRldGFpbC52YWx1ZV0gPT0gXCLmmoLml6DmlbDmja5cIikgcmV0dXJuO1xyXG5cdFx0XHRcdFx0Ly8g6YCJ5oup5LiA57qn6I+c5Y2VXHJcblx0XHRcdFx0XHR0aGlzLnN1YnNlY3Rpb25JbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnN1YnNlY3Rpb25JZCA9IHRoaXMubGlzdERhdGFbdGhpcy5zdWJzZWN0aW9uSW5kZXhdPy5pZCB8fCAtMTsgLy8g6LWL5YC857uZc3Vic2VjdGlvbklk5a2X5q61XHJcblxyXG5cdFx0XHRcdFx0dGhpcy5zdWJMaXN0RGF0YSA9IHRoaXMubGlzdERhdGFbdGhpcy5zdWJzZWN0aW9uSW5kZXhdLmNoaWxkcmVuIHx8IFtdO1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc3ViTGlzdERhdGEubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3ViZW50cnlJbmRleCA9IDA7IC8vIOWmguaenOWtmOWcqOWtkOe6p+iPnOWNle+8jOWImeWwhuWIhumhuee0ouW8leWIneWni+WMluS4ujBcclxuXHRcdFx0XHRcdFx0dGhpcy5zdWJlbnRyeUlkID0gdGhpcy5zdWJMaXN0RGF0YVswXT8uaWQgfHwgLTE7IC8vIOi1i+WAvOe7mXN1YmVudHJ5SWTlrZfmrrVcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3ViZW50cnlJbmRleCA9IC0xOyAvLyDlpoLmnpzkuI3lrZjlnKjlrZDnuqfoj5zljZXvvIzliJnlsIbliIbpobnntKLlvJXliJ3lp4vljJbkuLotMVxyXG5cdFx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SWQgPSAtMTsgLy8g5Yid5aeL5YyW5Li6LTFcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc3ViTGlzdERhdGFbZS5kZXRhaWwudmFsdWVdID09IFwi5pqC5peg5pWw5o2uXCIpIHJldHVybjtcclxuXHRcdFx0XHRcdC8vIOmAieaLqeS6jOe6p+iPnOWNlVxyXG5cdFx0XHRcdFx0dGhpcy5zdWJlbnRyeUluZGV4ID0gZS5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uc3ViZW50cnlJZCA9IHRoaXMuc3ViTGlzdERhdGFbdGhpcy5zdWJlbnRyeUluZGV4XT8uaWQgfHwgLTE7IC8vIOi1i+WAvOe7mXN1YmVudHJ5SWTlrZfmrrVcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6I635Y+W5YiG6YOo5YiG6aG55bel56iL77yMIOS7peeItuWtkOiKgueCueW9ouW8j+WRiOeOsFxyXG5cdFx0XHRnZXRQcm9ncmVzc0xpc3REYXRhKCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9zdWJkaXZpc2lvblByb2plY3QvZ2V0UGFyZW50Q2hpbGRMaXN0JyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ2dldCcsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U25cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5saXN0RGF0YSA9IHJlcy5yZXN1bHQ7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPluWIhumDqOWIhumhueW3peeoi++8jCDku6XniLblrZDoioLngrnlvaLlvI/lkYjnjrAnLCB0aGlzLmxpc3REYXRhKVxyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmxpc3REYXRhLmxlbmd0aCA+PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmZvcm0uc3Vic2VjdGlvbklkID0gdGhpcy5saXN0RGF0YVswXS5pZFxyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMubGlzdERhdGFbMF0uY2hpbGRyZW4ubGVuZ3RoID49IDEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdWJMaXN0RGF0YSA9IHRoaXMubGlzdERhdGFbMF0uY2hpbGRyZW47XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZm9ybS5zdWJlbnRyeUlkID0gdGhpcy5saXN0RGF0YVswXS5jaGlsZHJlblswXS5pZDtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc3ViTGlzdERhdGEgPSBbJ+aaguaXoOaVsOaNriddXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubGlzdERhdGEgPSBbJ+aaguaXoOaVsOaNriddXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/ojrflj5bmo4Dmn6Xpg6jkvY0g5YiX6KGoXHJcblx0XHRcdGdldENoZWNrUG9pbnRMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9xdWFsaXR5UmVnaW9uL2xpc3QnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXHJcblx0XHRcdFx0XHRcdG5vdFN1cGVydmlzaW5nVW5pdDogMVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmNoZWNrUG9pbnRMaXN0ID0gcmVzLnJlc3VsdDtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnLS0tLS0tLS0tLS0nLCB0aGlzLmNoZWNrUG9pbnRMaXN0KVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0ZGVhbEZhbHNlQ2hlY2soYXJyKXtcclxuXHRcdFx0XHRhcnIubWFwKGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0aWYoaXRlbS5jaGlsZHJlbil7XHJcblx0XHRcdFx0XHRcdGl0ZW0uY2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRpdGVtLm9yQ2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmRlYWxGYWxzZUNoZWNrKGl0ZW0uY2hpbGRyZW4pXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRpdGVtLmNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0aXRlbS5vckNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+ehruWumumAieS4rS0t5Zue5pi+ICBcclxuXHRcdFx0Y2hlY2tQb2ludEJ0bih2YWwsIHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0ubGV2ZWwgPSAnJ1xyXG5cdFx0XHRcdC8vIHR5cGU9PTEg5qOA5p+l6YOo5L2NIO+8myAgMiDpl67popjliIbnsbsgXHQzLOmAmuefpeS6ulx0XHRcdFxyXG5cdFx0XHRcdGlmICh0eXBlID09IDEpIHtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5lbnRlcnByaXNlU24gPSBcIlwiO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VOYW1lID0gXCJcIjtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VJZCA9IFwiXCI7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh2YWwsIHR5cGUpXHJcblx0XHRcdFx0XHR0aGlzLmNoYW5nZVBlb3BsZUluZGV4ID0gbnVsbFxyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2codGhpcy5jaGVja1BvaW50TGlzdCwgdmFsLCB0aGlzLnBlcnNvbkxpc3QpXHJcblx0XHRcdFx0XHR0aGlzLmFyZWFEYXRhID0gdmFsWzBdO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnJlZ2lvbklkID0gdmFsWzBdLmlkO1xyXG5cdFx0XHRcdFx0bGV0IGFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsWzBdLnBhcmVudHMpKTtcclxuXHRcdFx0XHRcdGxldCBvYmogPSB7XHJcblx0XHRcdFx0XHRcdGlkOiB2YWxbMF0uaWQsXHJcblx0XHRcdFx0XHRcdHJlZ2lvbk5hbWU6IHZhbFswXS5yZWdpb25OYW1lXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0YXJyLnB1c2gob2JqKTtcclxuXHRcdFx0XHRcdC8v6I635Y+W6YCJ5Lit55qE5a2X56ym5LiyIOWQjeensFxyXG5cdFx0XHRcdFx0dmFyIHJlZ2lvbk5hbWUgPSBhcnIubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBpdGVtLnJlZ2lvbk5hbWU7XHJcblx0XHRcdFx0XHR9KS5qb2luKFwiL1wiKTtcclxuXHRcdFx0XHRcdHRoaXMuY2hlY2tQb2ludE5hbWUgPSByZWdpb25OYW1lO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnJlZ2lvbk5hbWUgPSByZWdpb25OYW1lO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uY2hhbmdlSWQgPSB2YWxbMF0uZHV0eUlkO1xyXG5cdFx0XHRcdFx0dGhpcy5ub3RpZmllciA9IHZhbFswXS5pbnRlbmRhbmNlTmFtZXM7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0ubm90aWZ5UGVyc29uID0gdmFsWzBdLmludGVuZGFuY2VJZHM7XHJcblx0XHRcdFx0XHQvLyDliIbljIXljZXkvY3mlbDmja7mi7/lj5ZcclxuXHRcdFx0XHRcdHRoaXMuc3VicGFja2FnZUxzaXQgPSB2YWxbMF0uZW50ZXJwcmlzZUluZm9zXHJcblx0XHRcdFx0XHR0aGlzLnBlcnNvblVwZGF0ZUxpc3QgPSBbXVxyXG5cdFx0XHRcdFx0Ly8g5pW05pS55Lq65pWw5o2u5ou/5Y+WXHJcblx0XHRcdFx0XHQvLyB0aGlzLnBlcnNvblVwZGF0ZUxpc3QgPSB2YWxbMF0uc3lzdGVtVXNlcnNcclxuXHRcdFx0XHRcdC8vIHRoaXMucGVyc29uVXBkYXRlTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0Ly8gXHRpZiAoaXRlbS51c2VySWQgPT0gdmFsWzBdLmR1dHlJZCkge1xyXG5cdFx0XHRcdFx0Ly8gXHRcdHRoaXMuY2hhbmdlUGVvcGxlSW5kZXggPSBpbmRleFxyXG5cdFx0XHRcdFx0Ly8gXHR9XHJcblx0XHRcdFx0XHQvLyB9KTtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0UmV2aWV3UGVvcGxlTGlzdCgpXHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfpgInmi6npl67popjmj4/ov7DnmoTmlbDmja4nLCB2YWwpO1xyXG5cdFx0XHRcdFx0Ly/orr7nva7pl67popjmj4/ov7BcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5kYW5nZXJJdGVtQ29udGVudCA9IHZhbFswXS5kYW5nZXJOYW1lO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmRhbmdlckl0ZW1JZCA9IHZhbFswXS5pZDtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5sZXZlbCA9IHZhbFswXS5sZXZlbFxyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnJlbWFyayA9IHZhbFswXS5yZW1hcmsgLy/mlbTmlLnopoHmsYJcclxuXHRcdFx0XHRcdC8v6K6+572u6Zeu6aKY57G75Z6LXHJcblx0XHRcdFx0XHRpZiAodmFsWzBdLnBhcmVudHMubGVuZ3RoID09IDApIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5mb3JtLmRhbmdlclR5cGVJZCA9IHZhbFswXS5pZDtcclxuXHRcdFx0XHRcdFx0dGhpcy5pc3N1ZU5hbWUgPSB2YWxbMF0uZGFuZ2VyTmFtZTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuZm9ybS5kYW5nZXJUeXBlSWQgPSB2YWxbMF0ucGFyZW50c1swXS5pZDtcclxuXHRcdFx0XHRcdFx0dGhpcy5pc3N1ZU5hbWUgPSB2YWxbMF0ucGFyZW50c1swXS5kYW5nZXJOYW1lICsgJy8nICsgdmFsWzBdLnBhcmVudHNbMV0uZGFuZ2VyTmFtZSArICcvJyArIHZhbFswXVxyXG5cdFx0XHRcdFx0XHRcdC5kYW5nZXJOYW1lO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VyTmFtZSA9IHZhbFswXS5kYW5nZXJOYW1lXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDMpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHZhbClcclxuXHRcdFx0XHRcdHRoaXMubm90aWZpZXIgPSB2YWwubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS53b3JrZXJOYW1lXHJcblx0XHRcdFx0XHR9KS5qb2luKCcsJyk7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0ubm90aWZ5UGVyc29uID0gdmFsLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGl0ZW0ud29ya2VyTmFtZVxyXG5cdFx0XHRcdFx0fSkuam9pbignLCcpXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/ojrflj5bpl67popjliIbnsbtcclxuXHRcdFx0Z2V0SXNzdWVMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9kYW5nZXJUeXBlUmVjb3JkL3NlbGVjdERhbmdlclR5cGVBbmRJdGVtTGlzdCcsXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0JyxcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTbixcclxuXHRcdFx0XHRcdFx0cmVjb3JkU3RhdHVzOiAwLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5yZXN1bHQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdHJlcy5yZXN1bHQuZm9yRWFjaChpdGVtID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpdGVtLmNoaWxkcmVuLmZvckVhY2goaXRtID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoaXRtLml0ZW1MaXN0ICYmIGl0bS5pdGVtTGlzdC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpdG0uaXRlbUxpc3QuZm9yRWFjaChpdGVtMiA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGl0ZW0yLmRhbmdlck5hbWUgPSBpdGVtMi5jb250ZW50XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aXRtLmNoaWxkcmVuID0gaXRtLml0ZW1MaXN0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmlzc3VlTGlzdCA9IHJlcy5yZXN1bHRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblxyXG5cclxuXHRcdFx0Ly/ooaXlhYXor7TmmI5cclxuXHRcdFx0c3VwcGxlbWVudFRleHRhcmVhKGUpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VyRGVzYyA9IGUuZGV0YWlsLnZhbHVlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5pW05pS56KaB5rGCXHJcblx0XHRcdGNsYWltVGV4dGFyZWEoZSkge1xyXG5cdFx0XHRcdHRoaXMuZm9ybS5yZW1hcmsgPSBlLmRldGFpbC52YWx1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+S6i+S7tuaPj+i/sFxyXG5cdFx0XHRldmVudERlc2NyaXB0aW9uKGUpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0uYWRkZWREZXNjcmlwdGlvbiA9IGUuZGV0YWlsLnZhbHVlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5beh5qOA5qW85bGCXHJcblx0XHRcdGV2ZW50Zmxvb3IoZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCflt6Hmo4DmpbzlsYItLS0nLCBlKTtcclxuXHRcdFx0XHRsZXQgaW5wdXQgPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZmxvb3IgPSBwYXJzZUludChpbnB1dCk7IC8vIOaIluiAhSB0aGlzLmZvcm0uZmxvb3IgPSBwYXJzZUludChpbnB1dCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6I635Y+W5YiG5YyF5YWs5Y+4XHJcblx0XHRcdGdldFN1YnBhY2thZ2VMc2l0KCkge1xyXG5cdFx0XHRcdGxldCBkYXRhID0ge1xyXG5cdFx0XHRcdFx0Ly8gZW50ZXJwcmlzZVR5cGVJZDogdGhpcy5jaGVja1R5cGUsXHJcblx0XHRcdFx0XHRwYWdlTm86IDEsXHJcblx0XHRcdFx0XHRwYWdlU2l6ZTogOTk5LFxyXG5cdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTbixcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9wcm9qZWN0RW50ZXJwcmlzZS9saXN0JyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ3Bvc3QnLFxyXG5cdFx0XHRcdFx0ZGF0YTogZGF0YSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5yZXN1bHQucmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IHJlcy5yZXN1bHQucmVjb3JkcztcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN1YnBhY2thZ2VMc2l0ID0gW107XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Ly/kuIvmi4npgInmi6nlm57mmL5cclxuXHRcdFx0YmluZFBpY2tlckNoYW5nZShlLCB0eXBlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZSlcclxuXHRcdFx0XHQvL3R5cGUgPT0xIOmXrumimOetiee6pzsy57Sn5oCl5oOF5Ya1OzPmo4Dmn6Xkuro7NCDmo4Dmn6Xml7bpl7Q7NeaVtOaUueaXtumZkDsgNuaVtOaUueS6ujsgN+WkjeafpeS6ujsgOOaguOmqjOS6ujtcclxuXHRcdFx0XHRpZiAodHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHR0aGlzLmlzc3VlR3JhZGVJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmxldmVsID0gdGhpcy5pc3N1ZUdyYWRlTGlzdFtlLmRldGFpbC52YWx1ZV0udmFsdWU7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcclxuXHRcdFx0XHRcdHRoaXMudXJnZW5jeUluZGV4ID0gZS5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0udXJnZW50TGV2ZWwgPSB0aGlzLnVyZ2VuY3lMaXN0W2UuZGV0YWlsLnZhbHVlXS52YWx1ZTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gMykge1xyXG5cdFx0XHRcdFx0dGhpcy5pbnNwZWN0TWFuSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5pbnNwZWN0TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZFxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAnc3RhcnRUaW1lJykge1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmluc3BlY3RUaW1lID0gZS5mMztcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gJ3N0YXJ0VGltZTInKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uY2hhbmdlTGltaXRUaW1lID0gZS5mMztcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gNikge1xyXG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmNoYW5nZUlkID0gdGhpcy5wZXJzb25VcGRhdGVMaXN0W2UuZGV0YWlsLnZhbHVlXS51c2VySWQ7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLmNoYW5nZVBlb3BsZUluZGV4LCB0aGlzLmZvcm0uY2hhbmdlSWQpXHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDcpIHtcclxuXHRcdFx0XHRcdHRoaXMucmV2aWV3SW5kZXggPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5yZXZpZXdJZCA9IHRoaXMucmV2aWV3TGlzdFtlLmRldGFpbC52YWx1ZV0udXNlcklkO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSA4KSB7XHJcblx0XHRcdFx0XHR0aGlzLnZlcmlmeU1hbkluZGV4ID0gZS5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdC8v6I635Y+W5Lq65ZGY5YiX6KGoLS0tIOajgOafpeS6uuOAgeaVtOaUueS6uuOAgeWkjeafpeS6uuOAgeaguOmqjOS6uuOAgemAmuefpeS6ulxyXG5cdFx0XHRnZXRQZXJzb25MaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U25cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMucmVzdWx0KVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnJlc3VsdC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+ajgOafpeS6uuWRmOWIl+ihqCcsIHRoaXMucGVyc29uTGlzdCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wZXJzb25MaXN0ID0gcmVzLnJlc3VsdDtcclxuXHRcdFx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLnBlcnNvbkxpc3QuZmluZEluZGV4KGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGl0ZW0udXNlcklkID09IHRoaXMudXNlckluZm8udXNlcklkO1xyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0aWYgKGluZGV4ICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnZlcmlmeU1hbkluZGV4ID0gaW5kZXg7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbaW5kZXhdLnVzZXJJZDtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5kZWZhdWx0QXVkaXRQZXJzb24gPSB0aGlzLnVzZXJJbmZvLnJlYWxOYW1lO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy51c2VySW5mby51c2VySWQ7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGVyc29uTGlzdCA9IFtdO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8v6I635Y+W5Lq65ZGY5YiX6KGoLS0tIOaVtOaUueS6ulxyXG5cdFx0XHRnZXRQZXJzb25VcGRhdGVMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXHJcblx0XHRcdFx0XHRcdGVudGVycHJpc2VJZDogdGhpcy51bml0RW50ZXJwcmlzZUlkXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5yZXN1bHQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmo4Dmn6XkurrlkZjliJfooagnLCB0aGlzLnBlcnNvbkxpc3QpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGVyc29uVXBkYXRlTGlzdCA9IHJlcy5yZXN1bHQ7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gW107XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblxyXG5cdFx0XHQvL+mAieaLqeeahOWIhuWMheWFrOWPuFxyXG5cdFx0XHRjaGVja1N1YnBhY2thZ2UodmFsKSB7XHJcblx0XHRcdFx0Ly8gaWYgKHRoaXMuY2hlY2tUeXBlID09IDEpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZVNuID0gdmFsLmVudGVycHJpc2VTbjtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSB2YWwuZW50ZXJwcmlzZU5hbWU7XHJcblx0XHRcdFx0dGhpcy51bml0RW50ZXJwcmlzZUlkID0gdmFsLmlkO1xyXG5cdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VJZCA9IFwiXCI7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGw7XHJcblx0XHRcdFx0dGhpcy5pc1Nob3dQaWNrZXIgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmlzU2hvd1BpY2tlciA9IHRydWU7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0bGV0IG5ld0FyciA9IFtdO1xyXG5cdFx0XHRcdGlmICh0aGlzLmFyZWFEYXRhLnN5c3RlbVVzZXJzKSB7XHJcblx0XHRcdFx0XHR0aGlzLmFyZWFEYXRhLnN5c3RlbVVzZXJzLmZpbHRlcigoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoaXRlbS51c2VySWQgJiYgaXRlbS5lbnRlcnByaXNlSWQgPT0gdGhpcy51bml0RW50ZXJwcmlzZUlkKSB7XHJcblx0XHRcdFx0XHRcdFx0bmV3QXJyLnB1c2goaXRlbSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gbmV3QXJyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyB0aGlzLmdldFBlcnNvblVwZGF0ZUxpc3QoKTtcclxuXHRcdFx0XHQvLyB9IGVsc2Uge1xyXG5cdFx0XHRcdC8vIFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9IHZhbC5lbnRlcnByaXNlU247XHJcblx0XHRcdFx0Ly8gXHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSB2YWwuZW50ZXJwcmlzZU5hbWU7XHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdHRoaXMudW5pdERpYWxvZyA9IGZhbHNlO1xyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdC8v5Yig6ZmkLS0t5YWs55SoXHJcblx0XHRcdGRlbGV0ZXNCdG4odHlwZSkge1xyXG5cdFx0XHRcdHdpbmRvdy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHRcdFx0XHQvL3R5cGU9PTEg5YiG5YyF5Y2V5L2NXHJcblx0XHRcdFx0aWYgKHR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9ICcnO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VOYW1lID0gJyc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Ly/njrDlnLrmlbTmlLnmmK/lkKblrozmiJBcclxuXHRcdFx0c3dpdGNoQ2hhbmdlKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5kZXRhaWwudmFsdWUpIHtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5zdGF0dXMgPSA1O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uc3RhdHVzID0gMjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvL+mAieaLqeWIhuWMheWNleS9jVxyXG5cdFx0XHRjbGlja1VuaXQoKSB7XHJcblx0XHRcdFx0dGhpcy51bml0RGlhbG9nID0gdHJ1ZTtcclxuXHRcdFx0XHQvLyB0aGlzLmdldFN1YnBhY2thZ2VMc2l0KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5YiH5o2i5YiG5YyF5ZWGXHJcblx0XHRcdGNoZWNrVHlwZUJ0bih0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5jaGVja1R5cGUgPSB0eXBlO1xyXG5cdFx0XHRcdHRoaXMuZ2V0U3VicGFja2FnZUxzaXQoKTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8v5LiK5Lyg6ZmE5Lu2XHJcblx0XHRcdHVwbG9hZEltZyh0eXBlKSB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKHR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0dW5pLmNob29zZUltYWdlKHtcclxuXHRcdFx0XHRcdFx0Y291bnQ6IDUgLSB0aGF0LmltZ0ZpbGVMaXN0Lmxlbmd0aCxcclxuXHRcdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0ZW1wRmlsZVBhdGhzID0gcmVzLnRlbXBGaWxlUGF0aHM7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiB0aGF0LnVybF9jb25maWcgKyAndXBsb2FkL2ltYWdlJywgLy/ku4XkuLrnpLrkvovvvIzpnZ7nnJ/lrp7nmoTmjqXlj6PlnLDlnYBcclxuXHRcdFx0XHRcdFx0XHRcdGZpbGVQYXRoOiB0ZW1wRmlsZVBhdGhzWzBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcclxuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ICh1cGxvYWRGaWxlUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uaW1hZ2VVcmxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdGaWxlTGlzdC5wdXNoKGRhdGEpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5nZXRJbWFnZUluZm8oe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNyYzogdGVtcEZpbGVQYXRoc1swXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzOiAocmVzSW5mbykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S8oOi/h+WOu+WVpiByZXNJbmZvJywgcmVzSW5mbylcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaW1nTGlzdCA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aW1nVXJsOiB0ZW1wRmlsZVBhdGhzWzBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpbWdXaWR0aDogcmVzSW5mby53aWR0aCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aW1nSGVpZ2h0OiByZXNJbmZvLmhlaWdodCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gdGVhbTon54+t57uE5Lq65ZGYJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gbmFtZTogJ+W8oOS4iSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IGZhbHNlXHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAyKSB7XHJcblx0XHRcdFx0XHR1bmkuY2hvb3NlSW1hZ2Uoe1xyXG5cdFx0XHRcdFx0XHRjb3VudDogMSxcclxuXHRcdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0ZW1wRmlsZVBhdGhzID0gcmVzLnRlbXBGaWxlUGF0aHM7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiB0aGF0LnVybF9jb25maWcgKyAndXBsb2FkL2ltYWdlJywgLy/ku4XkuLrnpLrkvovvvIzpnZ7nnJ/lrp7nmoTmjqXlj6PlnLDlnYBcclxuXHRcdFx0XHRcdFx0XHRcdGZpbGVQYXRoOiB0ZW1wRmlsZVBhdGhzWzBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcclxuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ICh1cGxvYWRGaWxlUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uaW1hZ2VVcmxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW1nRGlhbG9nVXJsLmxlbmd0aCA+PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdEaWFsb2dVcmxbMF0udXJsID0gZGF0YS51cmxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmltZ0RpYWxvZ1VybFswXS5uYW1lID0gZGF0YS5uYW1lXHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaW1nRGlhbG9nVXJsLnB1c2goZGF0YSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuS4iuS8oOWbvueJh+eahOS/oeaBr++8mlwiLCB0aGF0LmltZ0RpYWxvZ1VybClcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dW5pLmNob29zZUltYWdlKHtcclxuXHRcdFx0XHRcdFx0Y291bnQ6IDEgLSB0aGF0Lm1hcEltZ0xpc3QubGVuZ3RoLFxyXG5cdFx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHRlbXBGaWxlUGF0aHMgPSByZXMudGVtcEZpbGVQYXRocztcclxuXHRcdFx0XHRcdFx0XHR1bmkudXBsb2FkRmlsZSh7XHJcblx0XHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQudXJsX2NvbmZpZyArICd1cGxvYWQvaW1hZ2UnLCAvL+S7heS4uuekuuS+i++8jOmdnuecn+WunueahOaOpeWPo+WcsOWdgFxyXG5cdFx0XHRcdFx0XHRcdFx0ZmlsZVBhdGg6IHRlbXBGaWxlUGF0aHNbMF0sXHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxyXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGRhdGEgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uZmlsZW5hbWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1hcEltZ0xpc3QucHVzaChkYXRhKVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/liKDpmaTpmYTku7ZcclxuXHRcdFx0ZGVsZXRlSW1nKHZhbCwgdHlwZSkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHtcclxuXHRcdFx0XHRcdHRpdGxlOiAn5o+Q56S6JyxcclxuXHRcdFx0XHRcdGNvbnRlbnQ6ICfnoa7lrprliKDpmaTor6XpmYTku7blkJc/JyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmlsZUFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhhdC5pbWdGaWxlTGlzdCkpO1xyXG5cdFx0XHRcdFx0XHRcdFx0ZmlsZUFyci5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoaXRlbS51cmwgPT0gdmFsLnVybCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZpbGVBcnIuc3BsaWNlKGluZGV4LCAxKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdGaWxlTGlzdCA9IGZpbGVBcnI7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGxldCBmaWxlQXJyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGF0LnZpZGVvRmlsZUxpc3QpKTtcclxuXHRcdFx0XHRcdFx0XHRcdGZpbGVBcnIuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGl0ZW0udXJsID09IHZhbC51cmwpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWxlQXJyLnNwbGljZShpbmRleCwgMSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudmlkZW9GaWxlTGlzdCA9IGZpbGVBcnI7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChyZXMuY2FuY2VsKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+eUqOaIt+eCueWHu+WPlua2iCcpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+S4iuS8oOinhumikVxyXG5cdFx0XHR1cGxvYWRWaWRlbygpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmNob29zZVZpZGVvKHtcclxuXHRcdFx0XHRcdGNvdW50OiA1IC0gdGhhdC52aWRlb0ZpbGVMaXN0Lmxlbmd0aCxcclxuXHRcdFx0XHRcdHNvdXJjZVR5cGU6IFsnY2FtZXJhJywgJ2FsYnVtJ10sXHJcblx0XHRcdFx0XHRjb21wcmVzc2VkOiBmYWxzZSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRsZXQgdXJsID0gcmVzLnRlbXBGaWxlUGF0aDtcclxuXHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdHVybDogdGhhdC51cmxfY29uZmlnICsgJ3VwbG9hZC9pbWFnZScsIC8v5LuF5Li656S65L6L77yM6Z2e55yf5a6e55qE5o6l5Y+j5Zyw5Z2AXHJcblx0XHRcdFx0XHRcdFx0ZmlsZVBhdGg6IHVybCxcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ICh1cGxvYWRGaWxlUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgb2JqID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5maWxlSW5mb1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5vcmlnaW5hbEZpbGVuYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmltYWdlVXJsXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnZpZGVvRmlsZUxpc3QucHVzaChvYmopO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S4iuS8oOinhumikeWQjueahOaVsOaNricsIHRoYXQudmlkZW9GaWxlTGlzdCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5p+l55yL6KeG6aKRXHJcblx0XHRcdHBsYXlWaWRlbyh1cmwsIHR5cGUpIHtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6ICcuLi9jYXJXYXNoTWFuYWdlL21lZGlhUGxheT91cmw9JyArIHVybCArICcmdHlwZT0nICsgdHlwZVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6aKE6KeI5Zu+54mHXHJcblx0XHRcdHByZXZpZXdJbWFnZSh1cmwpIHtcclxuXHRcdFx0XHR1bmkucHJldmlld0ltYWdlKHtcclxuXHRcdFx0XHRcdHVybHM6IFt1cmxdXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHJcblxyXG5cdFx0XHQvL+aWsOWinuS/neWtmFxyXG5cdFx0XHRhc3luYyBhZGRTYXZlQnRuKCkge1xyXG5cdFx0XHRcdGxldCBhcnIgPSBbXSxcclxuXHRcdFx0XHRcdGFycjIgPSBbXTtcclxuXHJcblxyXG5cdFx0XHRcdHRoaXMudmlkZW9GaWxlTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0YXJyLnB1c2goaXRlbS5uYW1lICsgXCIqXCIgKyB0aGlzLnVybF9jb25maWcgKyAnaW1hZ2UvJyArIGl0ZW0udXJsKVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0dGhpcy5pbWdGaWxlTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0YXJyMi5wdXNoKGl0ZW0ubmFtZSArIFwiKlwiICsgdGhpcy51cmxfY29uZmlnICsgJ2ltYWdlLycgKyBpdGVtLnVybClcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC8vIHRoaXMuZm9ybS5maWxlVXJsID0gdGhpcy52aWRlb0ZpbGVMaXN0Lmxlbmd0aD4wP0pTT04uc3RyaW5naWZ5KHRoaXMudmlkZW9GaWxlTGlzdCk6Jyc7XHJcblx0XHRcdFx0Ly8gdGhpcy5mb3JtLmltYWdlVXJsID0gdGhpcy5pbWdGaWxlTGlzdC5sZW5ndGg+MD9KU09OLnN0cmluZ2lmeSh0aGlzLmltZ0ZpbGVMaXN0KTonJztcclxuXHRcdFx0XHR0aGlzLmZvcm0uZmlsZVVybCA9IGFyci5qb2luKCcsJylcclxuXHRcdFx0XHR0aGlzLmZvcm0uaW1hZ2VVcmwgPSBhcnIyLmpvaW4oJywnKVxyXG5cdFx0XHRcdGxldCBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0pKTtcclxuXHRcdFx0XHRpZiAoIWRhdGEucmVnaW9uSWQpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpemDqOS9jScsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuZGFuZ2VySXRlbUNvbnRlbnQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6npl67popjmj4/ov7AnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCFkYXRhLmRhbmdlckl0ZW1Db250ZW50KSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6nmjpLmn6XliIbnsbsnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKCFkYXRhLmRhbmdlclR5cGVJZCAmJiB0aGlzLnR5cGVDaGVjayA9PSBcInR5cGUxXCIpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqemXrumimOWIhuexuycsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyBpZiAoZGF0YS5pbnNwZWN0TWFuSWQgPT0gJycpIHtcclxuXHRcdFx0XHQvLyBcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdC8vIFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpeS6uicsXHJcblx0XHRcdFx0Ly8gXHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdC8vIFx0fSlcclxuXHRcdFx0XHQvLyBcdHJldHVyblxyXG5cdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuaW5zcGVjdFRpbWUpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpeaXtumXtCcsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuZW50ZXJwcmlzZU5hbWUpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeWIhuWMheWNleS9jScsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuY2hhbmdlTGltaXRUaW1lICYmIHRoaXMudHlwZUNoZWNrID09IFwidHlwZTFcIikge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5pW05pS55pe26ZmQJyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICghZGF0YS5jaGFuZ2VJZCAmJiB0aGlzLnR5cGVDaGVjayA9PSBcInR5cGUxXCIpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeaVtOaUueS6uicsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEucmV2aWV3SWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6nlpI3mn6XkuronLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKCFkYXRhLnZlcmlmeU1hbklkICYmIHRoaXMudHlwZUNoZWNrID09IFwidHlwZTFcIikge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5qC45p+l5Lq6JyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRkYXRhLmxldmVsID0gZGF0YS5sZXZlbCA9PSAwID8gTnVtYmVyKGRhdGEubGV2ZWwpICsgMSA6IGRhdGEubGV2ZWw7XHJcblx0XHRcdFx0ZGF0YS51cmdlbnRMZXZlbCA9IGRhdGEudXJnZW50TGV2ZWwgPT0gMCA/IE51bWJlcihkYXRhLnVyZ2VudExldmVsKSArIDEgOiBkYXRhLnVyZ2VudExldmVsO1xyXG5cdFx0XHRcdGRhdGEucHJvamVjdFNuID0gdGhpcy5wcm9qZWN0U247XHJcblx0XHRcdFx0ZGF0YS5pbnNwZWN0TWFuSWQgPSB0aGlzLnVzZXJJbmZvLnVzZXJJZFxyXG5cdFx0XHRcdGRhdGEuY3JlYXRvcklkID0gdGhpcy51c2VySW5mby51c2VySWRcclxuXHRcdFx0XHRkYXRhLmRhbmdlckl0ZW1Db250ZW50ID0gdGhpcy5pc3N1ZU5hbWVcclxuXHRcdFx0XHRsZXQgcG9pbnRBcnIgPSBbXVxyXG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGxldCBvYmogPVxyXG5cdFx0XHRcdFx0XHR0aGlzLnBvaW50TGlzdFtpXS54ICtcclxuXHRcdFx0XHRcdFx0JyonICtcclxuXHRcdFx0XHRcdFx0dGhpcy5wb2ludExpc3RbaV0ueVxyXG5cdFx0XHRcdFx0cG9pbnRBcnIucHVzaChvYmopXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGRhdGEubWVhc3VyZVBvaW50cyA9IHBvaW50QXJyLmpvaW4oJywnKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdkYXRhLm1lYXN1cmVQb2ludHM9PT09PT09PT09PT09JywgZGF0YS5tZWFzdXJlUG9pbnRzKTtcclxuXHRcdFx0XHRpZiAodGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhKTtcclxuXHRcdFx0XHRcdC8vIOi0qOmHj+mXrumimFxyXG5cdFx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHRcdHVybDogJ3htZ2wvcXVhbGl0eUluc3BlY3Rpb25SZWNvcmQvYWRkJyxcclxuXHRcdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRcdGRhdGE6IGRhdGEsXHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpXHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkZWx0YTogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fSwgMTIwMClcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiByZXMubWVzc2FnZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy50YXNrSWQpO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5pdGVtSWQpO1xyXG5cdFx0XHRcdFx0Ly8g5o6S5p+l6K6w5b2VXHJcblx0XHRcdFx0XHRsZXQgZGF0YTIgPSB7XHJcblx0XHRcdFx0XHRcdGRhbmdlckRlc2M6IGRhdGEuZGFuZ2VyRGVzYyxcclxuXHRcdFx0XHRcdFx0ZGFuZ2VySXRlbUNvbnRlbnQ6IHRoaXMuaXNzdWVOYW1lLFxyXG5cdFx0XHRcdFx0XHRkYW5nZXJJdGVtSWQ6IGRhdGEuZGFuZ2VySXRlbUlkLFxyXG5cdFx0XHRcdFx0XHRkYW5nZXJUeXBlSWQ6IGRhdGEuZGFuZ2VyVHlwZUlkLFxyXG5cdFx0XHRcdFx0XHRlbnRlcnByaXNlTmFtZTogZGF0YS5lbnRlcnByaXNlTmFtZSxcclxuXHRcdFx0XHRcdFx0ZW50ZXJwcmlzZVNuOiBkYXRhLmVudGVycHJpc2VTbixcclxuXHRcdFx0XHRcdFx0ZmlsZVVybDogZGF0YS5maWxlVXJsLFxyXG5cdFx0XHRcdFx0XHRpbWFnZVVybDogZGF0YS5pbWFnZVVybCxcclxuXHRcdFx0XHRcdFx0aW5zcGVjdE1hbklkOiBkYXRhLmluc3BlY3RNYW5JZCxcclxuXHRcdFx0XHRcdFx0aW5zcGVjdFRpbWU6IGRhdGEuaW5zcGVjdFRpbWUsXHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogZGF0YS5wcm9qZWN0U24sXHJcblx0XHRcdFx0XHRcdHJlY29yZFR5cGU6IDIsXHJcblx0XHRcdFx0XHRcdHJlZ2lvbklkOiBkYXRhLnJlZ2lvbklkLFxyXG5cdFx0XHRcdFx0XHRyZWdpb25OYW1lOiBkYXRhLnJlZ2lvbk5hbWUsXHJcblx0XHRcdFx0XHRcdHJvdXRpbmVJbnNwZWN0OiAwLFxyXG5cdFx0XHRcdFx0XHRzdWJzZWN0aW9uSWQ6IGRhdGEuc3Vic2VjdGlvbklkLCAvL+WIhumDqOW3peeoi1xyXG5cdFx0XHRcdFx0XHRzdWJlbnRyeUlkOiBkYXRhLnN1YmVudHJ5SWQsIC8v5YiG6aG55bel56iLXHJcblx0XHRcdFx0XHRcdGZsb29yOiBkYXRhLmZsb29yLCAvL+W3oeajgOalvOWxglxyXG5cdFx0XHRcdFx0XHRhZGRlZERlc2NyaXB0aW9uOiBkYXRhLmFkZGVkRGVzY3JpcHRpb24sIC8v5LqL5Lu25o+P6L+wXHJcblx0XHRcdFx0XHRcdHRhc2tJZDogdGhpcy50YXNrSWQgfHwgbnVsbCwgLy8g5Lu75YqhSURcclxuXHRcdFx0XHRcdFx0aXRlbUlkOiB0aGlzLml0ZW1JZCB8fCBudWxsIC8vIOS7u+WKoeWtkElEXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhLnRhc2tJZCk7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KHtcclxuXHRcdFx0XHRcdFx0dXJsOiAneG1nbC9xdWFsaXR5SW5zcGVjdGlvblJlY29yZC9hZGQnLFxyXG5cdFx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0JyxcclxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YTIsXHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpXHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkZWx0YTogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fSwgMTIwMClcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiByZXMubWVzc2FnZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvLyDliIfmjaJ0YWJcclxuXHRcdFx0cmFkaW9DaGFuZ2UodmFsdWUpIHtcclxuXHJcblx0XHRcdFx0dGhpcy50eXBlQ2hlY2sgPSB2YWx1ZVxyXG5cdFx0XHRcdHRoaXMuY2hlY2tlZFRhYiA9IHZhbHVlXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+WIh+aNonRhYicsIHRoaXMuZm9ybSk7XHJcblx0XHRcdFx0Ly8g6YeN5Yi25YaF5a65XHJcblx0XHRcdFx0dGhpcy5mb3JtID0ge1xyXG5cdFx0XHRcdFx0cmVnaW9uSWQ6IFwiXCIsIC8vIOajgOafpemDqOS9jVxyXG5cdFx0XHRcdFx0cmVnaW9uTmFtZTogXCJcIixcclxuXHRcdFx0XHRcdGRhbmdlckl0ZW1Db250ZW50OiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VySXRlbUlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyVHlwZUlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyRGVzYzogXCJcIixcclxuXHRcdFx0XHRcdHJlbWFyazogXCJcIixcclxuXHRcdFx0XHRcdHJvdXRpbmVJZDogMCxcclxuXHRcdFx0XHRcdGxldmVsOiAwLFxyXG5cdFx0XHRcdFx0dXJnZW50TGV2ZWw6IDAsXHJcblx0XHRcdFx0XHRpbnNwZWN0TWFuSWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRpbnNwZWN0VGltZTogZGF0ZWZvcm1hdChuZXcgRGF0ZSgpKSxcclxuXHRcdFx0XHRcdGVudGVycHJpc2VTbjogXCJcIixcclxuXHRcdFx0XHRcdGVudGVycHJpc2VOYW1lOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y2hhbmdlTGltaXRUaW1lOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y2hhbmdlSWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRyZXZpZXdJZDogXCJcIixcclxuXHRcdFx0XHRcdHZlcmlmeU1hbklkOiBcIlwiLFxyXG5cdFx0XHRcdFx0bm90aWZ5UGVyc29uOiBbXSxcclxuXHRcdFx0XHRcdHN0YXR1czogMiwgLy8g546w5Zy65pW05pS554q25oCBICAy5pyq5a6M5oiQICAgNeW3suWujOaIkFxyXG5cdFx0XHRcdFx0bWVhc3VyZVBvaW50czogW10sXHJcblx0XHRcdFx0XHRpbWFnZVVybDogXCJcIixcclxuXHRcdFx0XHRcdGZpbGVVcmw6IFwiXCIsXHJcblx0XHRcdFx0XHRyZWNvcmRUeXBlOiAxLFxyXG5cdFx0XHRcdFx0Ly8gdGFza0lkOicnLFxyXG5cdFx0XHRcdFx0Ly8gaXRlbUlkOicnXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHR0aGlzLmlzc3VlTmFtZSA9ICcnXHJcblx0XHRcdFx0dGhpcy5jaGVja1BvaW50TmFtZSA9IFwiXCJcclxuXHRcdFx0XHR0aGlzLnZpZGVvRmlsZUxpc3QgPSBbXTtcclxuXHRcdFx0XHR0aGlzLmltZ0ZpbGVMaXN0ID0gW107XHJcblx0XHRcdFx0dGhpcy5zdWJzZWN0aW9uSW5kZXggPSAtMVxyXG5cdFx0XHRcdHRoaXMuc3ViZW50cnlJbmRleCA9IC0xXHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGxcclxuXHRcdFx0XHQvLyDph43nva7mo4Dmn6Xpg6jkvY1cclxuXHRcdFx0XHR0aGlzLmRlYWxGYWxzZUNoZWNrKHRoaXMuY2hlY2tQb2ludExpc3QpO1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMubG9jYXRpb25UcmVlLl9yZVRyZWVMaXN0KCk7XHJcblx0XHRcdFx0Ly8g5YiG5YyF5Y2V5L2N5pWw5o2u5ou/5Y+WXHJcblx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IFtdXHJcblx0XHRcdFx0Ly8g5pW05pS55Lq65pWw5o2u5ou/5Y+WXHJcblx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gW11cclxuXHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLnBlcnNvbkxpc3QuZmluZEluZGV4KGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGl0ZW0udXNlcklkID09IHRoaXMudXNlckluZm8udXNlcklkO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0aWYgKGluZGV4ICE9IC0xKSB7XHJcblx0XHRcdFx0XHR0aGlzLnZlcmlmeU1hbkluZGV4ID0gaW5kZXg7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbaW5kZXhdLnVzZXJJZDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5kZWZhdWx0QXVkaXRQZXJzb24gPSB0aGlzLnVzZXJJbmZvLnJlYWxOYW1lO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy51c2VySW5mby51c2VySWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuXHQudGFiIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA0NXB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Ym94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxOTQsIDE5NCwgMTk0LCAwLjUpO1xyXG5cdH1cclxuXHJcblx0LnRhYlR5cGUge1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGxpbmUtaGVpZ2h0OiA0M3B4O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTk0LCAxOTQsIDE5NCwgMC4yKTtcclxuXHJcblx0fVxyXG5cclxuXHQuY2hlY2tlZFRhYiB7XHJcblx0XHRjb2xvcjogIzQxODFGRTtcclxuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNDE4MUZFO1xyXG5cclxuXHR9XHJcblxyXG5cdC5ub0NoZWNrVGFiIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAycHg7XHJcblx0fVxyXG5cclxuXHQubGFnQ3NzIHtcclxuXHRcdHdpZHRoOiAxODBweDtcclxuXHRcdGhlaWdodDogNjFweDtcclxuXHRcdGJhY2tncm91bmQ6ICNmZmY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDogMjlweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblx0fVxyXG5cclxuXHQuYWRkMiB7XHJcblx0XHR3aWR0aDogMTIwcHg7XHJcblx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHRsaW5lLWhlaWdodDogMzBweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0YmFja2dyb3VuZDogIzQxODFmZTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRtYXJnaW46IDBweCAyMnB4O1xyXG5cdH1cclxuXHJcblx0LnBvaW50IHtcclxuXHRcdGhlaWdodDogMjBweDtcclxuXHRcdHdpZHRoOiAyMHB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdH1cclxuXHJcblx0LmZsZXgge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQuZmxleDIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0fVxyXG5cclxuXHQuZmxleDMge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHR9XHJcblxyXG5cdC5jb250ZW50IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdHBhZGRpbmc6IDIwcHggMzBycHg7XHJcblx0fVxyXG5cclxuXHQudHlwZSB7XHJcblx0XHRmb250LXNpemU6IDMwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA4cHg7XHJcblx0XHQvKiBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxOTQsIDE5NCwgMTk0LCAwLjIpOyAqL1xyXG5cdH1cclxuXHJcblx0LnR5cGUgLm5hbWUge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiA2cHg7XHJcblx0XHR3aWR0aDogMTc2cnB4O1xyXG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0fVxyXG5cclxuXHQucmFkaW8td3JhcCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblx0XHQucmFkaW8ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuYWNjZXNzb3J5IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA3MHB4O1xyXG5cdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHR9XHJcblxyXG5cdC5hY2Nlc3NvcnlJbWcge1xyXG5cdFx0d2lkdGg6IDExMHJweDtcclxuXHRcdGhlaWdodDogNjBweDtcclxuXHRcdG1hcmdpbi1yaWdodDogOHB4O1xyXG5cdH1cclxuXHJcblx0LnBpY2tlciB7XHJcblx0XHR3aWR0aDogNzAlO1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSg0MiwgNDMsIDkxLCAwLjMpO1xyXG5cdFx0cGFkZGluZzogMHB4IDMwcnB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHR9XHJcblxyXG5cdC51bmktaW5wdXQge1xyXG5cdFx0bGluZS1oZWlnaHQ6IDMycHg7XHJcblx0fVxyXG5cclxuXHQudGV4dGFyZWEge1xyXG5cdFx0d2lkdGg6IGNhbGMoNzklIC0gMzJweCk7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQyLCA0MywgOTEsIDAuMyk7XHJcblx0XHRwYWRkaW5nOiA4cHggMTVweDtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRoZWlnaHQ6IDUwcHg7XHJcblx0fVxyXG5cclxuXHQuaW5wdVN0eWxlIHtcclxuXHRcdHdpZHRoOiBjYWxjKDgwJSAtIDM1cHgpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsIDQzLCA5MSwgMC4zKTtcclxuXHRcdHBhZGRpbmc6IDhweCAxNXB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdGhlaWdodDogMzVweDtcclxuXHRcdGNvbG9yOiAjMDAwO1xyXG5cdH1cclxuXHJcblx0LmNsIHtcclxuXHRcdGZvbnQtc2l6ZTogMzBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0fVxyXG5cclxuXHJcblx0LmltZ0JveF93cmFwIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdFx0d2lkdGg6IDc1JTtcclxuXHR9XHJcblxyXG5cdC5pbWdCb3gge1xyXG5cdFx0d2lkdGg6IDYwcHg7XHJcblx0XHRoZWlnaHQ6IDYwcHg7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi1yaWdodDogMTVweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcclxuXHJcblx0XHQuaW1nIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuZGVsZXRlSW1nIHtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRyaWdodDogLTNweDtcclxuXHRcdFx0dG9wOiAtMThweDtcclxuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHQuYWRkSW1nQm94IHtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsIDQzLCA5MSwgMC4xKTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNmY1Zjg7XHJcblx0XHR3aWR0aDogNjBweDtcclxuXHRcdGhlaWdodDogNjBweDtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuXHRcdGZvbnQtc2l6ZTogMTJweDtcclxuXHJcblx0XHQuaWNvbi1hZGQge1xyXG5cdFx0XHR3aWR0aDogMThweDtcclxuXHRcdFx0aGVpZ2h0OiAxOHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnVuaXREaWFsb2cge1xyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0ei1pbmRleDogMTExO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG5cdH1cclxuXHJcblx0LnVuaXRDb250ZW50IHtcclxuXHRcdHdpZHRoOiA4NSU7XHJcblx0XHRoZWlnaHQ6IDcwJTtcclxuXHRcdG1hcmdpbjogMjUlIGF1dG8gMDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cGFkZGluZzogMjBweCAzMHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHRcdGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHR9XHJcblxyXG5cdC50YWJzIHtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuNSk7XHJcblx0fVxyXG5cclxuXHQudGFic19uYW1lIHtcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nOiA1cHggMTBycHg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0Zm9udC1zaXplOiAzMHJweDtcclxuXHR9XHJcblxyXG5cdC5jaGVja05hbWUge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0MTgxRkU7XHJcblx0XHRjb2xvcjogIzQxODFGRTtcclxuXHR9XHJcblxyXG5cdC5ub0NoZWNrTmFtZSB7XHJcblx0XHRwYWRkaW5nLXRvcDogNHB4O1xyXG5cdH1cclxuXHJcblx0LnVuaXRMaXN0IHtcclxuXHRcdG1hcmdpbjogMTBweCAwO1xyXG5cdFx0Zm9udC1zaXplOiAzMHJweDtcclxuXHJcblx0XHQudGl0bGUge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5saXN0X3ZhbCB7XHJcblx0XHRcdHBhZGRpbmc6IDhweCAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJnXzk5OSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMSk7XHJcblx0fVxyXG5cclxuXHQuZWxsaXBzaXMge1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMge1xyXG5cdFx0Y29sb3I6ICMwMDdBRkY7XHJcblx0fVxyXG5cclxuXHQuYWRkU2F2ZUJ0biB7XHJcblx0XHRtYXJnaW46IDMwcHggYXV0bztcclxuXHRcdHdpZHRoOiA2MCU7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDA7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNDE4MUZFO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRmb250LXNpemU6IDM0cnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMzBweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAycHg7XHJcblx0XHRib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoNjUsIDEyOSwgMjU0LCAwLjgpO1xyXG5cdH1cclxuXHJcblx0LmFkZFNhdmVCdG46YWN0aXZlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjUsIDEyOSwgMjU0LCAwLjgpO1xyXG5cdH1cclxuXHJcblx0LnJhZGlvLWJveCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdH1cclxuXHJcblx0LnJhZGlvLWl0ZW0ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdG1hcmdpbi1yaWdodDogMjBycHg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHJcblx0XHQvZGVlcC8gLnVuaS1yYWRpby1pbnB1dCB7XHJcblx0XHRcdHdpZHRoOiAzMnJweDtcclxuXHRcdFx0aGVpZ2h0OiAzMnJweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5yYWRpby10ZXh0IHtcclxuXHRcdGhlaWdodDogNzJycHg7XHJcblx0fVxyXG5cclxuXHQuYnV0QSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0Ly8gcG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiA2MCU7XHJcblxyXG5cdFx0d2lkdGg6IDcwJTtcclxuXHR9XHJcblxyXG5cdC5pY29uLXJpZ2h0IHtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxNnJweDtcclxuXHRcdHdpZHRoOiAxNnJweDtcclxuXHRcdGhlaWdodDogMzJycHg7XHJcblx0fVxyXG5cclxuXHQuZGF0ZVRpbWVQaWNja2VyIHtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHR3aWR0aDogNjclO1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///782\n"); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /***/ }), /* 783 */ @@ -85441,7 +85476,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu /***/ (function(module, exports, __webpack_require__) { "use strict"; +<<<<<<< HEAD eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 161));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 164));\nvar _tkiTree = _interopRequireDefault(__webpack_require__(/*! @/components/tki-tree/tki-tree.vue */ 746));\nvar _canversCom = _interopRequireDefault(__webpack_require__(/*! @/pages/videoManage/component/canversCom.vue */ 191));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/components/dateTimePicker/index.vue */ 394));\nvar _tool = __webpack_require__(/*! @/utils/tool.js */ 85);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n components: {\n tkiTree: _tkiTree.default,\n canversCom: _canversCom.default,\n dateTimePiccker: _index.default\n },\n data: function data() {\n return {\n isShowPicker: true,\n startTime: this.getDate({\n format: true\n }),\n startTime2: this.getDate({\n format: true\n }),\n checkedTab: 'type1',\n imgList: {},\n openImg: false,\n base64Image: '',\n imgIndex: -1,\n pointList: [],\n location: {\n left: '0',\n top: '0'\n },\n x: 0,\n y: 0,\n imgDialogUrlSu: false,\n imgDialogUrlText: \"编辑隐患点\",\n imgDialog: false,\n imgDialogUrl: [],\n pageTitle: '新增检查',\n projectSn: '',\n checkType: 1,\n //分包商类型 1专业分包 6劳务分包\n form: {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: \"\",\n urgentLevel: \"\",\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1,\n dangerName: '',\n subsectionId: '',\n //分部工程\n subentryId: '',\n //分项工程\n floor: '',\n //巡检楼层\n addedDescription: '',\n //事件描述\n taskId: '',\n //任务ID\n itemId: '' // 任务子ID\n },\n\n checkPointList: [],\n //获取检查部位数据\n checkPointName: '',\n issueList: [],\n //问题分类 || 问题描述\n issueName: '',\n issueGradeList: [{\n name: '一级',\n value: 1\n }, {\n name: '二级',\n value: 2\n }, {\n name: '三级',\n value: 3\n }, {\n name: '四级',\n value: 4\n }],\n //问题等级\n issueGradeIndex: 0,\n urgencyList: [{\n name: '一般',\n value: 1\n }, {\n name: '严重',\n value: 2\n }, {\n name: '紧要',\n value: 3\n }],\n //紧急程度\n urgencyIndex: 0,\n personUpdateList: [],\n // 人员列表-整改人\n personList: [],\n //人员列表 -- 检查人、整改人、复查人、核验人、通知人\n inspectManIndex: null,\n //检查人\n changePeopleIndex: null,\n //整改人\n verifyManIndex: null,\n //核验人\n reviewIndex: null,\n //复查人\n notifier: '',\n //通知人\n unitDialog: false,\n //分包商弹窗\n subpackageLsit: [],\n //分包商数据列表\n videoFileList: [],\n imgFileList: [],\n mapImgList: [],\n basicInfo: {},\n selectIndex: null,\n userInfo: '',\n typeCheck: 'type1',\n // 类型 type1为安全问题 type2为排查记录\n listData: [],\n //分部工程\n subListData: [],\n //分项工程\n subsectionIndex: -1,\n //分部工程\n subentryIndex: -1,\n ////分项工程\n unitEnterpriseId: \"\",\n taskId: '',\n //任务ID\n itemId: '',\n // 任务子ID\n defaultAuditPerson: \"\",\n reviewList: [],\n areaData: {},\n engineeringId: '',\n type: ''\n };\n },\n onLoad: function onLoad(option) {\n this.pageTitle = option.type == 'add' ? '新增检查' : '编辑检查';\n this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;\n this.userInfo = JSON.parse(uni.getStorageSync('userInfo'));\n this.getCheckPointList();\n this.getIssueList();\n this.getPersonList();\n // this.getReviewPeopleList();\n // this.getPersonUpdateList();\n this.getProgressListData();\n __f__(\"log\", 'lll', option.taskId, option.itemId, \" at pages/projectEnd/safeSame/addIssue.vue:579\");\n this.taskId = option.taskId;\n this.itemId = option.itemId;\n this.form.taskId = option.taskId;\n this.form.itemId = option.itemId;\n __f__(\"log\", (0, _tool.dateformat)(new Date()), 777888, \" at pages/projectEnd/safeSame/addIssue.vue:584\");\n if (option.engineeringId) this.engineeringId = option.engineeringId;\n if (option.type) this.type = Number(option.type);\n },\n methods: {\n //获取复查人\n getReviewPeopleList: function getReviewPeopleList() {\n var _this = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n // enterpriseTypeId: 7,\n qualityRegionId: this.form.regionId,\n qualityRegionBindType: 2,\n isSupervisingRoleName: 1\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:604\");\n if (res.result.length > 0) {\n _this.reviewList = res.result;\n } else {\n _this.reviewList = [];\n }\n }\n });\n },\n getDate: function getDate(type) {\n var date = new Date();\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n if (type === 'start') {\n year = year;\n } else if (type === 'end') {\n // year = year + 2;\n }\n month = month > 9 ? month : '0' + month;\n day = day > 9 ? day : '0' + day;\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n },\n imgUrl: function imgUrl(val) {\n this.openImg = false;\n this.imgUpload(val);\n this.openImg = true;\n },\n //图片上传请求的接口\n imgUpload: function imgUpload(baseImg) {\n __f__(\"log\", '进入----------图片上传请求的接口', \" at pages/projectEnd/safeSame/addIssue.vue:636\");\n var that = this;\n var cuDate = new Date().getTime();\n var arr = [];\n that.base64Image = baseImg;\n var parmars = {\n base64Image: that.base64Image\n };\n this.sendRequest({\n url: 'xmgl/upload/uploadBase64',\n method: 'post',\n header: {\n 'content-type': 'application/x-www-form-urlencoded' //自定义请求头信息\n },\n\n data: parmars,\n success: function success(res) {\n __f__(\"log\", '转换后的地址----------', res.data.imageUrl, \" at pages/projectEnd/safeSame/addIssue.vue:653\");\n __f__(\"log\", '阶段代码 imgUpload 耗时2 :' + (new Date().getTime() - cuDate), \" at pages/projectEnd/safeSame/addIssue.vue:654\");\n that.imgFileList[that.imgFileList.length - 1].url = res.data.imageUrl;\n }\n });\n },\n imgDialogBtn: function imgDialogBtn() {\n this.imgDialog = false;\n // this.pointList=[]\n },\n //点击点位展示的内容\n pointShow: function pointShow(index) {\n __f__(\"log\", \"当前index : \" + index + \"- this.imgIndex: \" + this.imgIndex, \" at pages/projectEnd/safeSame/addIssue.vue:665\");\n if (index === this.imgIndex) {\n this.imgIndex = -1;\n } else {\n this.imgIndex = index;\n }\n },\n //删除点位\n removePoint: function removePoint(index) {\n __f__(\"log\", '点击的内容', index, \" at pages/projectEnd/safeSame/addIssue.vue:674\");\n this.pointList.splice(index, 1);\n this.imgIndex = -1;\n },\n //布点\n pointImage: function pointImage(event) {\n if (this.imgDialogUrlSu) {\n __f__(\"log\", \"开始布点 :\", event, \" at pages/projectEnd/safeSame/addIssue.vue:681\");\n __f__(\"log\", \"x:\", event.detail.x, \" at pages/projectEnd/safeSame/addIssue.vue:682\");\n __f__(\"log\", \"y :\", event.detail.y, \" at pages/projectEnd/safeSame/addIssue.vue:683\");\n var obj = {\n x: event.detail.x,\n y: event.detail.y\n };\n this.pointList.push(obj);\n }\n },\n //开始布点或者结束布点\n pointText: function pointText() {\n this.imgDialogUrlText = this.imgDialogUrlSu ? \"编辑隐患点\" : \"保存隐患点\";\n this.imgDialogUrlSu = !this.imgDialogUrlSu;\n },\n //打开图纸上传弹框\n openImgDialog: function openImgDialog() {\n this.imgDialog = true;\n },\n toggle: function toggle() {},\n //分部工程改动事件\n checkSubListData: function checkSubListData(e, type) {\n __f__(\"log\", e, type, \" at pages/projectEnd/safeSame/addIssue.vue:705\");\n if (type === 1) {\n var _this$listData$this$s;\n if (this.listData[e.detail.value] == \"暂无数据\") return;\n // 选择一级菜单\n this.subsectionIndex = e.detail.value;\n this.form.subsectionId = ((_this$listData$this$s = this.listData[this.subsectionIndex]) === null || _this$listData$this$s === void 0 ? void 0 : _this$listData$this$s.id) || -1; // 赋值给subsectionId字段\n\n this.subListData = this.listData[this.subsectionIndex].children || [];\n if (this.subListData.length) {\n var _this$subListData$;\n this.subentryIndex = 0; // 如果存在子级菜单,则将分项索引初始化为0\n this.subentryId = ((_this$subListData$ = this.subListData[0]) === null || _this$subListData$ === void 0 ? void 0 : _this$subListData$.id) || -1; // 赋值给subentryId字段\n } else {\n this.subentryIndex = -1; // 如果不存在子级菜单,则将分项索引初始化为-1\n this.subentryId = -1; // 初始化为-1\n }\n } else {\n var _this$subListData$thi;\n if (this.subListData[e.detail.value] == \"暂无数据\") return;\n // 选择二级菜单\n this.subentryIndex = e.detail.value;\n this.form.subentryId = ((_this$subListData$thi = this.subListData[this.subentryIndex]) === null || _this$subListData$thi === void 0 ? void 0 : _this$subListData$thi.id) || -1; // 赋值给subentryId字段\n }\n },\n //获取分部分项工程, 以父子节点形式呈现\n getProgressListData: function getProgressListData() {\n var _this2 = this;\n this.sendRequest({\n url: 'xmgl/subdivisionProject/getParentChildList',\n method: 'get',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n if (res.code == 200) {\n _this2.listData = res.result;\n __f__(\"log\", '获取分部分项工程, 以父子节点形式呈现', _this2.listData, \" at pages/projectEnd/safeSame/addIssue.vue:738\");\n if (_this2.listData.length >= 1) {\n _this2.form.subsectionId = _this2.listData[0].id;\n if (_this2.listData[0].children.length >= 1) {\n _this2.subListData = _this2.listData[0].children;\n _this2.form.subentryId = _this2.listData[0].children[0].id;\n } else {\n _this2.subListData = ['暂无数据'];\n }\n } else {\n _this2.listData = ['暂无数据'];\n }\n }\n }\n });\n },\n //获取检查部位 列表\n getCheckPointList: function getCheckPointList() {\n var _this3 = this;\n this.sendRequest({\n url: 'xmgl/qualityRegion/list',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n notSupervisingUnit: 1\n },\n success: function success(res) {\n if (res.code == 200) {\n _this3.checkPointList = res.result;\n __f__(\"log\", '-----------', _this3.checkPointList, \" at pages/projectEnd/safeSame/addIssue.vue:766\");\n }\n }\n });\n },\n dealFalseCheck: function dealFalseCheck(arr) {\n var _this4 = this;\n arr.map(function (item) {\n if (item.children) {\n item.checked = false;\n item.orChecked = false;\n _this4.dealFalseCheck(item.children);\n } else {\n item.checked = false;\n item.orChecked = false;\n }\n });\n },\n //确定选中--回显 \n checkPointBtn: function checkPointBtn(val, type) {\n this.form.level = '';\n // type==1 检查部位 ; 2 问题分类 \t3,通知人\t\t\t\n if (type == 1) {\n this.form.enterpriseSn = \"\";\n this.form.enterpriseName = \"\";\n this.form.changeId = \"\";\n // console.log(val, type)\n this.changePeopleIndex = null;\n this.areaData = val[0];\n __f__(\"log\", this.checkPointList, val, this.personList, \" at pages/projectEnd/safeSame/addIssue.vue:794\");\n this.form.regionId = val[0].id;\n var arr = JSON.parse(JSON.stringify(val[0].parents));\n var obj = {\n id: val[0].id,\n regionName: val[0].regionName\n };\n arr.push(obj);\n //获取选中的字符串 名称\n var regionName = arr.map(function (item, index) {\n return item.regionName;\n }).join(\"/\");\n this.checkPointName = regionName;\n this.form.regionName = regionName;\n this.form.changeId = val[0].dutyId;\n this.notifier = val[0].intendanceNames;\n this.form.notifyPerson = val[0].intendanceIds;\n // 重置检查部位\n this.dealFalseCheck(this.checkPointList);\n this.$refs.locationTree._reTreeList();\n // 分包单位数据拿取\n this.subpackageLsit = val[0].enterpriseInfos;\n this.personUpdateList = [];\n // 整改人数据拿取\n // this.personUpdateList = val[0].systemUsers\n // this.personUpdateList.forEach((item, index) => {\n // \tif (item.userId == val[0].dutyId) {\n // \t\tthis.changePeopleIndex = index\n // \t}\n // });\n this.reviewList = [];\n this.reviewIndex = null;\n this.getReviewPeopleList();\n } else if (type == 2) {\n __f__(\"log\", '选择问题描述的数据', val, \" at pages/projectEnd/safeSame/addIssue.vue:829\");\n //设置问题描述\n this.form.dangerItemContent = val[0].dangerName;\n this.form.dangerItemId = val[0].id;\n this.form.level = val[0].level;\n this.form.remark = val[0].remark; //整改要求\n //设置问题类型\n if (val[0].parents.length == 0) {\n this.form.dangerTypeId = val[0].id;\n this.issueName = val[0].dangerName;\n } else {\n this.form.dangerTypeId = val[0].parents[0].id;\n this.issueName = val[0].parents[0].dangerName + '/' + val[0].parents[1].dangerName + '/' + val[0].dangerName;\n this.form.dangerName = val[0].dangerName;\n }\n } else if (type == 3) {\n __f__(\"log\", val, \" at pages/projectEnd/safeSame/addIssue.vue:846\");\n this.notifier = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n this.form.notifyPerson = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n }\n },\n //获取问题分类\n getIssueList: function getIssueList() {\n var _this5 = this;\n this.sendRequest({\n url: 'xmgl/xzSecurityDangerTypeRecord/selectDangerTypeAndItemList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n recordStatus: 0\n },\n success: function success(res) {\n if (res.result.length > 0) {\n res.result.forEach(function (item) {\n if (item.children && item.children.length > 0) {\n item.children.forEach(function (itm) {\n if (itm.itemList && itm.itemList.length > 0) {\n itm.itemList.forEach(function (item2) {\n item2.dangerName = item2.content;\n });\n itm.children = itm.itemList;\n }\n });\n }\n });\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:879\");\n _this5.issueList = res.result;\n }\n }\n });\n },\n //补充说明\n supplementTextarea: function supplementTextarea(e) {\n this.form.dangerDesc = e.detail.value;\n },\n //整改要求\n claimTextarea: function claimTextarea(e) {\n this.form.remark = e.detail.value;\n },\n //事件描述\n eventDescription: function eventDescription(e) {\n this.form.addedDescription = e.detail.value;\n },\n //巡检楼层\n eventfloor: function eventfloor(e) {\n __f__(\"log\", '巡检楼层---', e, \" at pages/projectEnd/safeSame/addIssue.vue:901\");\n var input = e.detail.value;\n this.form.floor = parseInt(input); // 或者 this.form.floor = parseInt(input);\n },\n //获取分包公司\n getSubpackageLsit: function getSubpackageLsit() {\n var _this6 = this;\n var data = {\n // enterpriseTypeId: this.checkType,\n pageNo: 1,\n pageSize: 999,\n projectSn: this.projectSn\n };\n this.sendRequest({\n url: 'xmgl/projectEnterprise/list',\n method: 'post',\n data: data,\n success: function success(res) {\n if (res.result.records.length > 0) {\n _this6.subpackageLsit = res.result.records;\n } else {\n _this6.subpackageLsit = [];\n }\n }\n });\n },\n //下拉选择回显\n bindPickerChange: function bindPickerChange(e, type) {\n __f__(\"log\", e, \" at pages/projectEnd/safeSame/addIssue.vue:929\");\n //type ==1 问题等级;2紧急情况;3检查人;4 检查时间;5整改时限; 6整改人; 7复查人; 8核验人;\n if (type == 1) {\n this.issueGradeIndex = e.detail.value;\n this.form.level = this.issueGradeList[e.detail.value].value;\n } else if (type == 2) {\n this.urgencyIndex = e.detail.value;\n this.form.urgentLevel = this.urgencyList[e.detail.value].value;\n } else if (type == 3) {\n this.inspectManIndex = e.detail.value;\n this.form.inspectManId = this.personList[e.detail.value].userId;\n } else if (type == 'startTime') {\n this.form.inspectTime = e.f3;\n } else if (type == 'startTime2') {\n this.form.changeLimitTime = e.f3;\n } else if (type == 6) {\n this.changePeopleIndex = e.detail.value;\n this.form.changeId = this.personUpdateList[e.detail.value].userId;\n __f__(\"log\", this.changePeopleIndex, this.form.changeId, \" at pages/projectEnd/safeSame/addIssue.vue:947\");\n } else if (type == 7) {\n this.reviewIndex = e.detail.value;\n this.form.reviewId = this.reviewList[e.detail.value].userId;\n } else if (type == 8) {\n this.verifyManIndex = e.detail.value;\n this.form.verifyManId = this.personList[e.detail.value].userId;\n }\n },\n //获取人员列表--- 检查人、整改人、复查人、核验人、通知人\n getPersonList: function getPersonList() {\n var _this7 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:968\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this7.personList, \" at pages/projectEnd/safeSame/addIssue.vue:970\");\n _this7.personList = res.result;\n var index = _this7.personList.findIndex(function (item) {\n return item.userId == _this7.userInfo.userId;\n });\n if (index != -1) {\n _this7.verifyManIndex = index;\n _this7.form.verifyManId = _this7.personList[index].userId;\n } else {\n _this7.defaultAuditPerson = _this7.userInfo.realName;\n _this7.form.verifyManId = _this7.userInfo.userId;\n }\n } else {\n _this7.personList = [];\n }\n }\n });\n },\n //获取人员列表--- 整改人\n getPersonUpdateList: function getPersonUpdateList() {\n var _this8 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n enterpriseId: this.unitEnterpriseId\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:999\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this8.personList, \" at pages/projectEnd/safeSame/addIssue.vue:1001\");\n _this8.personUpdateList = res.result;\n } else {\n _this8.personUpdateList = [];\n }\n }\n });\n },\n //选择的分包公司\n checkSubpackage: function checkSubpackage(val) {\n var _this9 = this;\n // if (this.checkType == 1) {\n this.form.enterpriseSn = val.enterpriseSn;\n this.form.enterpriseName = val.enterpriseName;\n this.unitEnterpriseId = val.id;\n this.form.changeId = \"\";\n this.changePeopleIndex = null;\n this.isShowPicker = false;\n this.$nextTick(function () {\n _this9.isShowPicker = true;\n });\n var newArr = [];\n if (this.areaData.systemUsers) {\n this.areaData.systemUsers.filter(function (item) {\n if (item.userId && item.enterpriseId == _this9.unitEnterpriseId) {\n newArr.push(item);\n }\n });\n this.personUpdateList = newArr;\n }\n // this.getPersonUpdateList();\n // } else {\n // \tthis.form.enterpriseSn = val.enterpriseSn;\n // \tthis.form.enterpriseName = val.enterpriseName;\n // }\n this.unitDialog = false;\n },\n //删除---公用\n deletesBtn: function deletesBtn(type) {\n window.event.stopPropagation();\n //type==1 分包单位\n if (type == 1) {\n this.form.enterpriseSn = '';\n this.form.enterpriseName = '';\n }\n },\n //现场整改是否完成\n switchChange: function switchChange(e) {\n if (e.detail.value) {\n this.form.status = 5;\n } else {\n this.form.status = 2;\n }\n },\n //选择分包单位\n clickUnit: function clickUnit() {\n this.unitDialog = true;\n // this.getSubpackageLsit();\n },\n //切换分包商\n checkTypeBtn: function checkTypeBtn(type) {\n this.checkType = type;\n this.getSubpackageLsit();\n },\n //上传附件\n uploadImg: function uploadImg(type) {\n var that = this;\n if (type == 1) {\n uni.chooseImage({\n count: 5 - that.imgFileList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.imgFileList.push(data);\n uni.getImageInfo({\n src: tempFilePaths[0],\n success: function success(resInfo) {\n __f__(\"log\", '传过去啦 resInfo', resInfo, \" at pages/projectEnd/safeSame/addIssue.vue:1093\");\n that.imgList = {\n imgUrl: tempFilePaths[0],\n imgWidth: resInfo.width,\n imgHeight: resInfo.height\n // team:'班组人员',\n // name: '张三'\n };\n\n that.openImg = true;\n }\n });\n that.openImg = false;\n }\n });\n }\n });\n } else if (type == 2) {\n uni.chooseImage({\n count: 1,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n if (that.imgDialogUrl.length >= 1) {\n that.imgDialogUrl[0].url = data.url;\n that.imgDialogUrl[0].name = data.name;\n } else {\n that.imgDialogUrl.push(data);\n }\n __f__(\"log\", \"上传图片的信息:\", that.imgDialogUrl, \" at pages/projectEnd/safeSame/addIssue.vue:1131\");\n }\n });\n }\n });\n } else {\n uni.chooseImage({\n count: 1 - that.mapImgList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.mapImgList.push(data);\n }\n });\n }\n });\n }\n },\n //删除附件\n deleteImg: function deleteImg(val, type) {\n var that = this;\n uni.showModal({\n title: '提示',\n content: '确定删除该附件吗?',\n success: function success(res) {\n if (res.confirm) {\n if (type == 1) {\n var fileArr = JSON.parse(JSON.stringify(that.imgFileList));\n fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n fileArr.splice(index, 1);\n }\n });\n that.imgFileList = fileArr;\n } else if (type == 2) {\n var _fileArr = JSON.parse(JSON.stringify(that.videoFileList));\n _fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n _fileArr.splice(index, 1);\n }\n });\n that.videoFileList = _fileArr;\n }\n } else if (res.cancel) {\n __f__(\"log\", '用户点击取消', \" at pages/projectEnd/safeSame/addIssue.vue:1187\");\n }\n }\n });\n },\n //上传视频\n uploadVideo: function uploadVideo() {\n var that = this;\n uni.chooseVideo({\n count: 5 - that.videoFileList.length,\n sourceType: ['camera', 'album'],\n compressed: false,\n success: function success(res) {\n var url = res.tempFilePath;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: url,\n name: 'files',\n success: function success(uploadFileRes) {\n var obj = {\n name: JSON.parse(uploadFileRes.data).data[0].fileInfo.originalFilename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.videoFileList.push(obj);\n __f__(\"log\", '上传视频后的数据', that.videoFileList, \" at pages/projectEnd/safeSame/addIssue.vue:1213\");\n }\n });\n }\n });\n },\n //查看视频\n playVideo: function playVideo(url, type) {\n uni.navigateTo({\n url: '../carWashManage/mediaPlay?url=' + url + '&type=' + type\n });\n },\n //预览图片\n previewImage: function previewImage(url) {\n uni.previewImage({\n urls: [url]\n });\n },\n //新增保存\n addSaveBtn: function addSaveBtn() {\n var _this10 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var arr, arr2, data, pointArr, i, obj, data2;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n arr = [], arr2 = [];\n _this10.videoFileList.forEach(function (item) {\n arr.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n _this10.imgFileList.forEach(function (item) {\n arr2.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n // this.form.fileUrl = this.videoFileList.length>0?JSON.stringify(this.videoFileList):'';\n // this.form.imageUrl = this.imgFileList.length>0?JSON.stringify(this.imgFileList):'';\n _this10.form.fileUrl = arr.join(',');\n _this10.form.imageUrl = arr2.join(',');\n data = JSON.parse(JSON.stringify(_this10.form));\n if (data.regionId) {\n _context.next = 9;\n break;\n }\n uni.showToast({\n title: '请选择检查部位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 9:\n if (!(!data.dangerItemContent && _this10.typeCheck == \"type1\")) {\n _context.next = 14;\n break;\n }\n uni.showToast({\n title: '请选择问题描述',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 14:\n if (data.dangerItemContent) {\n _context.next = 17;\n break;\n }\n uni.showToast({\n title: '请选择排查分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 17:\n if (!(!data.dangerTypeId && _this10.typeCheck == \"type1\")) {\n _context.next = 20;\n break;\n }\n uni.showToast({\n title: '请选择问题分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 20:\n if (data.inspectTime) {\n _context.next = 23;\n break;\n }\n uni.showToast({\n title: '请选择检查时间',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 23:\n if (data.enterpriseName) {\n _context.next = 26;\n break;\n }\n uni.showToast({\n title: '请选择分包单位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 26:\n if (!(!data.changeLimitTime && _this10.typeCheck == \"type1\")) {\n _context.next = 29;\n break;\n }\n uni.showToast({\n title: '请选择整改时限',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 29:\n if (!(!data.changeId && _this10.typeCheck == \"type1\")) {\n _context.next = 32;\n break;\n }\n uni.showToast({\n title: '请选择整改人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 32:\n if (!(!data.reviewId && _this10.typeCheck == \"type1\")) {\n _context.next = 35;\n break;\n }\n uni.showToast({\n title: '请选择复查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 35:\n if (!(!data.verifyManId && _this10.typeCheck == \"type1\")) {\n _context.next = 38;\n break;\n }\n uni.showToast({\n title: '请选择核查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 38:\n ;\n data.level = data.level == 0 ? Number(data.level) + 1 : data.level;\n data.urgentLevel = data.urgentLevel == 0 ? Number(data.urgentLevel) + 1 : data.urgentLevel;\n data.projectSn = _this10.projectSn;\n data.inspectManId = _this10.userInfo.userId;\n data.creatorId = _this10.userInfo.userId;\n data.dangerItemContent = _this10.issueName;\n if (_this10.engineeringId) data.engineeringId = _this10.engineeringId;\n if (_this10.type) data.type = _this10.type;\n pointArr = [];\n for (i = 0; i < _this10.pointList.length; i++) {\n obj = _this10.pointList[i].x + '*' + _this10.pointList[i].y;\n pointArr.push(obj);\n }\n data.measurePoints = pointArr.join(',');\n __f__(\"log\", 'data.measurePoints=============', data.measurePoints, \" at pages/projectEnd/safeSame/addIssue.vue:1343\");\n if (!(_this10.typeCheck == \"type1\")) {\n _context.next = 56;\n break;\n }\n __f__(\"log\", data, \" at pages/projectEnd/safeSame/addIssue.vue:1345\");\n // 安全问题\n _this10.sendRequest({\n url: 'xmgl/xzSecurityQualityInspectionRecord/add',\n method: 'post',\n data: data,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/safeSame/addIssue.vue:1352\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n _context.next = 64;\n break;\n case 56:\n __f__(\"log\", _this10.taskId, \" at pages/projectEnd/safeSame/addIssue.vue:1371\");\n __f__(\"log\", _this10.itemId, \" at pages/projectEnd/safeSame/addIssue.vue:1372\");\n // 排查记录\n data2 = {\n dangerDesc: data.dangerDesc,\n dangerItemContent: _this10.issueName,\n dangerItemId: data.dangerItemId,\n dangerTypeId: data.dangerTypeId,\n enterpriseName: data.enterpriseName,\n enterpriseSn: data.enterpriseSn,\n fileUrl: data.fileUrl,\n imageUrl: data.imageUrl,\n inspectManId: data.inspectManId,\n inspectTime: data.inspectTime,\n projectSn: data.projectSn,\n recordType: 2,\n regionId: data.regionId,\n regionName: data.regionName,\n routineInspect: 0,\n subsectionId: data.subsectionId,\n //分部工程\n subentryId: data.subentryId,\n //分项工程\n floor: data.floor,\n //巡检楼层\n addedDescription: data.addedDescription,\n //事件描述\n taskId: _this10.taskId || null,\n // 任务ID\n itemId: _this10.itemId || null // 任务子ID\n };\n\n if (_this10.engineeringId) data2.engineeringId = _this10.engineeringId;\n if (_this10.type) data2.type = _this10.type;\n __f__(\"log\", data.taskId, \" at pages/projectEnd/safeSame/addIssue.vue:1400\");\n _context.next = 64;\n return _this10.sendRequest({\n url: 'xmgl/xzSecurityQualityInspectionRecord/add',\n method: 'post',\n data: data2,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/safeSame/addIssue.vue:1406\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n case 64:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 切换tab\n radioChange: function radioChange(value) {\n var _this11 = this;\n this.typeCheck = value;\n this.checkedTab = value;\n __f__(\"log\", '切换tab', this.form, \" at pages/projectEnd/safeSame/addIssue.vue:1432\");\n // 重制内容\n this.form = {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: 0,\n urgentLevel: 0,\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1\n // taskId:'',\n // itemId:''\n };\n\n this.issueName = '';\n this.checkPointName = \"\";\n this.videoFileList = [];\n this.imgFileList = [];\n this.subsectionIndex = -1;\n this.subentryIndex = -1;\n this.changePeopleIndex = null;\n // 分包单位数据拿取\n this.subpackageLsit = [];\n // 整改人数据拿取\n this.personUpdateList = [];\n var index = this.personList.findIndex(function (item) {\n return item.userId == _this11.userInfo.userId;\n });\n if (index != -1) {\n this.verifyManIndex = index;\n this.form.verifyManId = this.personList[index].userId;\n } else {\n this.defaultAuditPerson = this.userInfo.realName;\n this.form.verifyManId = this.userInfo.userId;\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcHJvamVjdEVuZC9zYWZlU2FtZS9hZGRJc3N1ZS52dWUiXSwibmFtZXMiOlsiY29tcG9uZW50cyIsInRraVRyZWUiLCJjYW52ZXJzQ29tIiwiZGF0ZVRpbWVQaWNja2VyIiwiZGF0YSIsImlzU2hvd1BpY2tlciIsInN0YXJ0VGltZSIsImdldERhdGUiLCJmb3JtYXQiLCJzdGFydFRpbWUyIiwiY2hlY2tlZFRhYiIsImltZ0xpc3QiLCJvcGVuSW1nIiwiYmFzZTY0SW1hZ2UiLCJpbWdJbmRleCIsInBvaW50TGlzdCIsImxvY2F0aW9uIiwibGVmdCIsInRvcCIsIngiLCJ5IiwiaW1nRGlhbG9nVXJsU3UiLCJpbWdEaWFsb2dVcmxUZXh0IiwiaW1nRGlhbG9nIiwiaW1nRGlhbG9nVXJsIiwicGFnZVRpdGxlIiwicHJvamVjdFNuIiwiY2hlY2tUeXBlIiwiZm9ybSIsInJlZ2lvbklkIiwicmVnaW9uTmFtZSIsImRhbmdlckl0ZW1Db250ZW50IiwiZGFuZ2VySXRlbUlkIiwiZGFuZ2VyVHlwZUlkIiwiZGFuZ2VyRGVzYyIsInJlbWFyayIsInJvdXRpbmVJZCIsImxldmVsIiwidXJnZW50TGV2ZWwiLCJpbnNwZWN0TWFuSWQiLCJpbnNwZWN0VGltZSIsImRhdGVmb3JtYXQiLCJEYXRlIiwiZW50ZXJwcmlzZVNuIiwiZW50ZXJwcmlzZU5hbWUiLCJjaGFuZ2VMaW1pdFRpbWUiLCJjaGFuZ2VJZCIsInJldmlld0lkIiwidmVyaWZ5TWFuSWQiLCJub3RpZnlQZXJzb24iLCJzdGF0dXMiLCJtZWFzdXJlUG9pbnRzIiwiaW1hZ2VVcmwiLCJmaWxlVXJsIiwicmVjb3JkVHlwZSIsImRhbmdlck5hbWUiLCJzdWJzZWN0aW9uSWQiLCJzdWJlbnRyeUlkIiwiZmxvb3IiLCJhZGRlZERlc2NyaXB0aW9uIiwidGFza0lkIiwiaXRlbUlkIiwiY2hlY2tQb2ludExpc3QiLCJjaGVja1BvaW50TmFtZSIsImlzc3VlTGlzdCIsImlzc3VlTmFtZSIsImlzc3VlR3JhZGVMaXN0IiwibmFtZSIsInZhbHVlIiwiaXNzdWVHcmFkZUluZGV4IiwidXJnZW5jeUxpc3QiLCJ1cmdlbmN5SW5kZXgiLCJwZXJzb25VcGRhdGVMaXN0IiwicGVyc29uTGlzdCIsImluc3BlY3RNYW5JbmRleCIsImNoYW5nZVBlb3BsZUluZGV4IiwidmVyaWZ5TWFuSW5kZXgiLCJyZXZpZXdJbmRleCIsIm5vdGlmaWVyIiwidW5pdERpYWxvZyIsInN1YnBhY2thZ2VMc2l0IiwidmlkZW9GaWxlTGlzdCIsImltZ0ZpbGVMaXN0IiwibWFwSW1nTGlzdCIsImJhc2ljSW5mbyIsInNlbGVjdEluZGV4IiwidXNlckluZm8iLCJ0eXBlQ2hlY2siLCJsaXN0RGF0YSIsInN1Ykxpc3REYXRhIiwic3Vic2VjdGlvbkluZGV4Iiwic3ViZW50cnlJbmRleCIsInVuaXRFbnRlcnByaXNlSWQiLCJkZWZhdWx0QXVkaXRQZXJzb24iLCJyZXZpZXdMaXN0IiwiYXJlYURhdGEiLCJlbmdpbmVlcmluZ0lkIiwidHlwZSIsIm9uTG9hZCIsIm9wdGlvbiIsIkpTT04iLCJwYXJzZSIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiZ2V0Q2hlY2tQb2ludExpc3QiLCJnZXRJc3N1ZUxpc3QiLCJnZXRQZXJzb25MaXN0IiwiZ2V0UHJvZ3Jlc3NMaXN0RGF0YSIsIk51bWJlciIsIm1ldGhvZHMiLCJnZXRSZXZpZXdQZW9wbGVMaXN0Iiwic2VuZFJlcXVlc3QiLCJ1cmwiLCJtZXRob2QiLCJxdWFsaXR5UmVnaW9uSWQiLCJxdWFsaXR5UmVnaW9uQmluZFR5cGUiLCJpc1N1cGVydmlzaW5nUm9sZU5hbWUiLCJzdWNjZXNzIiwicmVzIiwicmVzdWx0IiwibGVuZ3RoIiwiZGF0ZSIsInllYXIiLCJnZXRGdWxsWWVhciIsIm1vbnRoIiwiZ2V0TW9udGgiLCJkYXkiLCJpbWdVcmwiLCJ2YWwiLCJpbWdVcGxvYWQiLCJiYXNlSW1nIiwidGhhdCIsImN1RGF0ZSIsImdldFRpbWUiLCJhcnIiLCJwYXJtYXJzIiwiaGVhZGVyIiwiaW1nRGlhbG9nQnRuIiwicG9pbnRTaG93IiwiaW5kZXgiLCJyZW1vdmVQb2ludCIsInNwbGljZSIsInBvaW50SW1hZ2UiLCJldmVudCIsImRldGFpbCIsIm9iaiIsInB1c2giLCJwb2ludFRleHQiLCJvcGVuSW1nRGlhbG9nIiwidG9nZ2xlIiwiY2hlY2tTdWJMaXN0RGF0YSIsImUiLCJpZCIsImNoaWxkcmVuIiwiY29kZSIsIm5vdFN1cGVydmlzaW5nVW5pdCIsImRlYWxGYWxzZUNoZWNrIiwibWFwIiwiaXRlbSIsImNoZWNrZWQiLCJvckNoZWNrZWQiLCJjaGVja1BvaW50QnRuIiwic3RyaW5naWZ5IiwicGFyZW50cyIsImpvaW4iLCJkdXR5SWQiLCJpbnRlbmRhbmNlTmFtZXMiLCJpbnRlbmRhbmNlSWRzIiwiJHJlZnMiLCJsb2NhdGlvblRyZWUiLCJfcmVUcmVlTGlzdCIsImVudGVycHJpc2VJbmZvcyIsIndvcmtlck5hbWUiLCJyZWNvcmRTdGF0dXMiLCJmb3JFYWNoIiwiaXRtIiwiaXRlbUxpc3QiLCJpdGVtMiIsImNvbnRlbnQiLCJzdXBwbGVtZW50VGV4dGFyZWEiLCJjbGFpbVRleHRhcmVhIiwiZXZlbnREZXNjcmlwdGlvbiIsImV2ZW50Zmxvb3IiLCJpbnB1dCIsInBhcnNlSW50IiwiZ2V0U3VicGFja2FnZUxzaXQiLCJwYWdlTm8iLCJwYWdlU2l6ZSIsInJlY29yZHMiLCJiaW5kUGlja2VyQ2hhbmdlIiwidXNlcklkIiwiZjMiLCJmaW5kSW5kZXgiLCJyZWFsTmFtZSIsImdldFBlcnNvblVwZGF0ZUxpc3QiLCJlbnRlcnByaXNlSWQiLCJjaGVja1N1YnBhY2thZ2UiLCIkbmV4dFRpY2siLCJuZXdBcnIiLCJzeXN0ZW1Vc2VycyIsImZpbHRlciIsImRlbGV0ZXNCdG4iLCJ3aW5kb3ciLCJzdG9wUHJvcGFnYXRpb24iLCJzd2l0Y2hDaGFuZ2UiLCJjbGlja1VuaXQiLCJjaGVja1R5cGVCdG4iLCJ1cGxvYWRJbWciLCJjaG9vc2VJbWFnZSIsImNvdW50IiwidGVtcEZpbGVQYXRocyIsInVwbG9hZEZpbGUiLCJ1cmxfY29uZmlnIiwiZmlsZVBhdGgiLCJ1cGxvYWRGaWxlUmVzIiwiZmlsZW5hbWUiLCJnZXRJbWFnZUluZm8iLCJzcmMiLCJyZXNJbmZvIiwiaW1nV2lkdGgiLCJ3aWR0aCIsImltZ0hlaWdodCIsImhlaWdodCIsImRlbGV0ZUltZyIsInNob3dNb2RhbCIsInRpdGxlIiwiY29uZmlybSIsImZpbGVBcnIiLCJjYW5jZWwiLCJ1cGxvYWRWaWRlbyIsImNob29zZVZpZGVvIiwic291cmNlVHlwZSIsImNvbXByZXNzZWQiLCJ0ZW1wRmlsZVBhdGgiLCJmaWxlSW5mbyIsIm9yaWdpbmFsRmlsZW5hbWUiLCJwbGF5VmlkZW8iLCJuYXZpZ2F0ZVRvIiwicHJldmlld0ltYWdlIiwidXJscyIsImFkZFNhdmVCdG4iLCJhcnIyIiwic2hvd1RvYXN0IiwiaWNvbiIsImNyZWF0b3JJZCIsInBvaW50QXJyIiwiaSIsInNldFRpbWVvdXQiLCJuYXZpZ2F0ZUJhY2siLCJkZWx0YSIsIm1lc3NhZ2UiLCJkYXRhMiIsInJvdXRpbmVJbnNwZWN0IiwicmFkaW9DaGFuZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQTRhQTtBQUNBO0FBQ0E7QUFDQTtBQS9hQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLGVBUWU7RUFDZEEsVUFBVSxFQUFFO0lBQ1hDLE9B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Q04sSUFBSSxDQUFDakcsa0JBQWtCLEdBQUcsSUFBSSxDQUFDUCxRQUFRLENBQUMyRyxRQUFRO1FBQ2hELElBQUksQ0FBQ3JLLElBQUksQ0FBQ29CLFdBQVcsR0FBRyxJQUFJLENBQUNzQyxRQUFRLENBQUN3RyxNQUFNO01BQzdDO0lBQ0Q7RUFDRDtBQUNELENBQUM7QUFBQSwyQiIsImZpbGUiOiI3OTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5pbXBvcnQgdGtpVHJlZSBmcm9tIFwiQC9jb21wb25lbnRzL3RraS10cmVlL3RraS10cmVlLnZ1ZVwiXG5pbXBvcnQgY2FudmVyc0NvbSBmcm9tIFwiQC9wYWdlcy92aWRlb01hbmFnZS9jb21wb25lbnQvY2FudmVyc0NvbS52dWVcIlxuaW1wb3J0IGRhdGVUaW1lUGljY2tlciBmcm9tICdAL2NvbXBvbmVudHMvZGF0ZVRpbWVQaWNrZXIvaW5kZXgudnVlJ1xuaW1wb3J0IHtcblx0ZGF0ZWZvcm1hdFxufSBmcm9tIFwiQC91dGlscy90b29sLmpzXCJcbmV4cG9ydCBkZWZhdWx0IHtcblx0Y29tcG9uZW50czoge1xuXHRcdHRraVRyZWUsXG5cdFx0Y2FudmVyc0NvbSxcblx0XHRkYXRlVGltZVBpY2NrZXJcblxuXHR9LFxuXHRkYXRhKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRpc1Nob3dQaWNrZXI6IHRydWUsXG5cdFx0XHRzdGFydFRpbWU6IHRoaXMuZ2V0RGF0ZSh7XG5cdFx0XHRcdGZvcm1hdDogdHJ1ZSxcblx0XHRcdH0pLFxuXHRcdFx0c3RhcnRUaW1lMjogdGhpcy5nZXREYXRlKHtcblx0XHRcdFx0Zm9ybWF0OiB0cnVlLFxuXHRcdFx0fSksXG5cdFx0XHRjaGVja2VkVGFiOiAndHlwZTEnLFxuXHRcdFx0aW1nTGlzdDoge30sXG5cdFx0XHRvcGVuSW1nOiBmYWxzZSxcblx0XHRcdGJhc2U2NEltYWdlOiAnJyxcblx0XHRcdGltZ0luZGV4OiAtMSxcblx0XHRcdHBvaW50TGlzdDogW10sXG5cdFx0XHRsb2NhdGlvbjoge1xuXHRcdFx0XHRsZWZ0OiAnMCcsXG5cdFx0XHRcdHRvcDogJzAnXG5cdFx0XHR9LFxuXHRcdFx0eDogMCxcblx0XHRcdHk6IDAsXG5cdFx0XHRpbWdEaWFsb2dVcmxTdTogZmFsc2UsXG5cdFx0XHRpbWdEaWFsb2dVcmxUZXh0OiBcIue8lui+kemakOaCo+eCuVwiLFxuXHRcdFx0aW1nRGlhbG9nOiBmYWxzZSxcblx0XHRcdGltZ0RpYWxvZ1VybDogW10sXG5cdFx0XHRwYWdlVGl0bGU6ICfmlrDlop7mo4Dmn6UnLFxuXHRcdFx0cHJvamVjdFNuOiAnJyxcblx0XHRcdGNoZWNrVHlwZTogMSwgLy/liIbljIXllYbnsbvlnosgICAx5LiT5Lia5YiG5YyFICA25Yqz5Yqh5YiG5YyFXG5cdFx0XHRmb3JtOiB7XG5cdFx0XHRcdHJlZ2lvbklkOiBcIlwiLCAvLyDmo4Dmn6Xpg6jkvY1cblx0XHRcdFx0cmVnaW9uTmFtZTogXCJcIixcblx0XHRcdFx0ZGFuZ2VySXRlbUNvbnRlbnQ6IFwiXCIsXG5cdFx0XHRcdGRhbmdlckl0ZW1JZDogXCJcIixcblx0XHRcdFx0ZGFuZ2VyVHlwZUlkOiBcIlwiLFxuXHRcdFx0XHRkYW5nZXJEZXNjOiBcIlwiLFxuXHRcdFx0XHRyZW1hcms6IFwiXCIsXG5cdFx0XHRcdHJvdXRpbmVJZDogMCxcblx0XHRcdFx0bGV2ZWw6IFwiXCIsXG5cdFx0XHRcdHVyZ2VudExldmVsOiBcIlwiLFxuXHRcdFx0XHRpbnNwZWN0TWFuSWQ6IFwiXCIsXG5cdFx0XHRcdGluc3BlY3RUaW1lOiBkYXRlZm9ybWF0KG5ldyBEYXRlKCkpLFxuXHRcdFx0XHRlbnRlcnByaXNlU246IFwiXCIsXG5cdFx0XHRcdGVudGVycHJpc2VOYW1lOiBcIlwiLFxuXHRcdFx0XHRjaGFuZ2VMaW1pdFRpbWU6IFwiXCIsXG5cdFx0XHRcdGNoYW5nZUlkOiBcIlwiLFxuXHRcdFx0XHRyZXZpZXdJZDogXCJcIixcblx0XHRcdFx0dmVyaWZ5TWFuSWQ6IFwiXCIsXG5cdFx0XHRcdG5vdGlmeVBlcnNvbjogW10sXG5cdFx0XHRcdHN0YXR1czogMiwgLy8g546w5Zy65pW05pS554q25oCBICAy5pyq5a6M5oiQICAgNeW3suWujOaIkFxuXHRcdFx0XHRtZWFzdXJlUG9pbnRzOiBbXSxcblx0XHRcdFx0aW1hZ2VVcmw6IFwiXCIsXG5cdFx0XHRcdGZpbGVVcmw6IFwiXCIsXG5cdFx0XHRcdHJlY29yZFR5cGU6IDEsXG5cdFx0XHRcdGRhbmdlck5hbWU6ICcnLFxuXHRcdFx0XHRzdWJzZWN0aW9uSWQ6ICcnLCAvL+WIhumDqOW3peeoi1xuXHRcdFx0XHRzdWJlbnRyeUlkOiAnJywgLy/liIbpobnlt6XnqItcblx0XHRcdFx0Zmxvb3I6ICcnLCAvL+W3oeajgOalvOWxglxuXHRcdFx0XHRhZGRlZERlc2NyaXB0aW9uOiAnJywgLy/kuovku7bmj4/ov7Bcblx0XHRcdFx0dGFza0lkOiAnJywgLy/ku7vliqFJRFxuXHRcdFx0XHRpdGVtSWQ6ICcnIC8vIOS7u+WKoeWtkElEXG5cdFx0XHR9LFxuXHRcdFx0Y2hlY2tQb2ludExpc3Q6IFtdLCAvL+iOt+WPluajgOafpemDqOS9jeaVsOaNrlxuXHRcdFx0Y2hlY2tQb2ludE5hbWU6ICcnLFxuXHRcdFx0aXNzdWVMaXN0OiBbXSwgLy/pl67popjliIbnsbsgfHwg6Zeu6aKY5o+P6L+wXG5cdFx0XHRpc3N1ZU5hbWU6ICcnLFxuXHRcdFx0aXNzdWVHcmFkZUxpc3Q6IFt7XG5cdFx0XHRcdFx0bmFtZTogJ+S4gOe6pycsXG5cdFx0XHRcdFx0dmFsdWU6IDFcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG5hbWU6ICfkuoznuqcnLFxuXHRcdFx0XHRcdHZhbHVlOiAyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRuYW1lOiAn5LiJ57qnJyxcblx0XHRcdFx0XHR2YWx1ZTogM1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bmFtZTogJ+Wbm+e6pycsXG5cdFx0XHRcdFx0dmFsdWU6IDRcblx0XHRcdFx0fSxcblx0XHRcdF0sIC8v6Zeu6aKY562J57qnXG5cdFx0XHRpc3N1ZUdyYWRlSW5kZXg6IDAsXG5cdFx0XHR1cmdlbmN5TGlzdDogW3tcblx0XHRcdFx0XHRuYW1lOiAn5LiA6IisJyxcblx0XHRcdFx0XHR2YWx1ZTogMVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bmFtZTogJ+S4pemHjScsXG5cdFx0XHRcdFx0dmFsdWU6IDJcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG5hbWU6ICfntKfopoEnLFxuXHRcdFx0XHRcdHZhbHVlOiAzXG5cdFx0XHRcdH0sXG5cdFx0XHRdLCAvL+e0p+aApeeoi+W6plxuXHRcdFx0dXJnZW5jeUluZGV4OiAwLFxuXHRcdFx0cGVyc29uVXBkYXRlTGlzdDogW10sIC8vIOS6uuWRmOWIl+ihqC3mlbTmlLnkurpcblx0XHRcdHBlcnNvbkxpc3Q6IFtdLCAvL+S6uuWRmOWIl+ihqCAgLS0g5qOA5p+l5Lq644CB5pW05pS55Lq644CB5aSN5p+l5Lq644CB5qC46aqM5Lq644CB6YCa55+l5Lq6XG5cdFx0XHRpbnNwZWN0TWFuSW5kZXg6IG51bGwsIC8v5qOA5p+l5Lq6XG5cdFx0XHRjaGFuZ2VQZW9wbGVJbmRleDogbnVsbCwgLy/mlbTmlLnkurpcblx0XHRcdHZlcmlmeU1hbkluZGV4OiBudWxsLCAvL+aguOmqjOS6ulxuXHRcdFx0cmV2aWV3SW5kZXg6IG51bGwsIC8v5aSN5p+l5Lq6XG5cdFx0XHRub3RpZmllcjogJycsIC8v6YCa55+l5Lq6XG5cdFx0XHR1bml0RGlhbG9nOiBmYWxzZSwgLy/liIbljIXllYblvLnnqpdcblx0XHRcdHN1YnBhY2thZ2VMc2l0OiBbXSwgLy/liIbljIXllYbmlbDmja7liJfooahcblx0XHRcdHZpZGVvRmlsZUxpc3Q6IFtdLFxuXHRcdFx0aW1nRmlsZUxpc3Q6IFtdLFxuXHRcdFx0bWFwSW1nTGlzdDogW10sXG5cdFx0XHRiYXNpY0luZm86IHt9LFxuXHRcdFx0c2VsZWN0SW5kZXg6IG51bGwsXG5cdFx0XHR1c2VySW5mbzogJycsXG5cdFx0XHR0eXBlQ2hlY2s6ICd0eXBlMScsIC8vIOexu+WeiyB0eXBlMeS4uuWuieWFqOmXrumimCAgdHlwZTLkuLrmjpLmn6XorrDlvZVcblx0XHRcdGxpc3REYXRhOiBbXSwgLy/liIbpg6jlt6XnqItcblx0XHRcdHN1Ykxpc3REYXRhOiBbXSwgLy/liIbpobnlt6XnqItcblx0XHRcdHN1YnNlY3Rpb25JbmRleDogLTEsIC8v5YiG6YOo5bel56iLXG5cdFx0XHRzdWJlbnRyeUluZGV4OiAtMSwgLy8vL+WIhumhueW3peeoi1xuXHRcdFx0dW5pdEVudGVycHJpc2VJZDogXCJcIixcblx0XHRcdHRhc2tJZDogJycsIC8v5Lu75YqhSURcblx0XHRcdGl0ZW1JZDogJycsIC8vIOS7u+WKoeWtkElEXG5cdFx0XHRkZWZhdWx0QXVkaXRQZXJzb246IFwiXCIsXG5cdFx0XHRyZXZpZXdMaXN0OiBbXSxcblx0XHRcdGFyZWFEYXRhOiB7fSxcblx0XHRcdGVuZ2luZWVyaW5nSWQ6ICcnLFxuXHRcdFx0dHlwZTogJycsXG5cdFx0fVxuXHR9LFxuXHRvbkxvYWQob3B0aW9uKSB7XG5cdFx0dGhpcy5wYWdlVGl0bGUgPSBvcHRpb24udHlwZSA9PSAnYWRkJyA/ICfmlrDlop7mo4Dmn6UnIDogJ+e8lui+keajgOafpSc7XG5cdFx0dGhpcy5wcm9qZWN0U24gPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYygncHJvamVjdERldGFpbCcpKS5wcm9qZWN0U247XG5cdFx0dGhpcy51c2VySW5mbyA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpKTtcblx0XHR0aGlzLmdldENoZWNrUG9pbnRMaXN0KCk7XG5cdFx0dGhpcy5nZXRJc3N1ZUxpc3QoKTtcblx0XHR0aGlzLmdldFBlcnNvbkxpc3QoKTtcblx0XHQvLyB0aGlzLmdldFJldmlld1Blb3BsZUxpc3QoKTtcblx0XHQvLyB0aGlzLmdldFBlcnNvblVwZGF0ZUxpc3QoKTtcblx0XHR0aGlzLmdldFByb2dyZXNzTGlzdERhdGEoKVxuXHRcdGNvbnNvbGUubG9nKCdsbGwnLCBvcHRpb24udGFza0lkLCBvcHRpb24uaXRlbUlkKVxuXHRcdHRoaXMudGFza0lkID0gb3B0aW9uLnRhc2tJZFxuXHRcdHRoaXMuaXRlbUlkID0gb3B0aW9uLml0ZW1JZFxuXHRcdHRoaXMuZm9ybS50YXNrSWQgPSBvcHRpb24udGFza0lkXG5cdFx0dGhpcy5mb3JtLml0ZW1JZCA9IG9wdGlvbi5pdGVtSWRcblx0XHRjb25zb2xlLmxvZyhkYXRlZm9ybWF0KG5ldyBEYXRlKCkpLCA3Nzc4ODgpXG5cdFx0aWYob3B0aW9uLmVuZ2luZWVyaW5nSWQpIHRoaXMuZW5naW5lZXJpbmdJZCA9IG9wdGlvbi5lbmdpbmVlcmluZ0lkXG5cdFx0aWYob3B0aW9uLnR5cGUpIHRoaXMudHlwZSA9IE51bWJlcihvcHRpb24udHlwZSlcblx0fSxcblxuXG5cdG1ldGhvZHM6IHtcblx0XHQvL+iOt+WPluWkjeafpeS6ulxuXHRcdGdldFJldmlld1Blb3BsZUxpc3QoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdFx0Ly8gZW50ZXJwcmlzZVR5cGVJZDogNyxcblx0XHRcdFx0XHRxdWFsaXR5UmVnaW9uSWQ6IHRoaXMuZm9ybS5yZWdpb25JZCxcblx0XHRcdFx0XHRxdWFsaXR5UmVnaW9uQmluZFR5cGU6IDIsXG5cdFx0XHRcdFx0aXNTdXBlcnZpc2luZ1JvbGVOYW1lOiAxXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcblx0XHRcdFx0XHRpZiAocmVzLnJlc3VsdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJldmlld0xpc3QgPSByZXMucmVzdWx0O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJldmlld0xpc3QgPSBbXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblx0XHRnZXREYXRlKHR5cGUpIHtcblx0XHRcdGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0bGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRsZXQgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xuXHRcdFx0bGV0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xuXHRcdFx0aWYgKHR5cGUgPT09ICdzdGFydCcpIHtcblx0XHRcdFx0eWVhciA9IHllYXI7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT09ICdlbmQnKSB7XG5cdFx0XHRcdC8vIHllYXIgPSB5ZWFyICsgMjtcblx0XHRcdH1cblx0XHRcdG1vbnRoID0gbW9udGggPiA5ID8gbW9udGggOiAnMCcgKyBtb250aDtcblx0XHRcdGRheSA9IGRheSA+IDkgPyBkYXkgOiAnMCcgKyBkYXk7XG5cdFx0XHRyZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcblx0XHR9LFxuXHRcdGltZ1VybCh2YWwpIHtcblx0XHRcdHRoaXMub3BlbkltZyA9IGZhbHNlXG5cdFx0XHR0aGlzLmltZ1VwbG9hZCh2YWwpXG5cblx0XHRcdHRoaXMub3BlbkltZyA9IHRydWVcblx0XHR9LFxuXG5cdFx0Ly/lm77niYfkuIrkvKDor7fmsYLnmoTmjqXlj6Ncblx0XHRpbWdVcGxvYWQoYmFzZUltZykge1xuXHRcdFx0Y29uc29sZS5sb2coJ+i/m+WFpS0tLS0tLS0tLS3lm77niYfkuIrkvKDor7fmsYLnmoTmjqXlj6MnKTtcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0bGV0IGN1RGF0ZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXHRcdFx0bGV0IGFyciA9IFtdXG5cdFx0XHR0aGF0LmJhc2U2NEltYWdlID0gYmFzZUltZ1xuXHRcdFx0bGV0IHBhcm1hcnMgPSB7XG5cdFx0XHRcdGJhc2U2NEltYWdlOiB0aGF0LmJhc2U2NEltYWdlXG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xuXHRcdFx0XHR1cmw6ICd4bWdsL3VwbG9hZC91cGxvYWRCYXNlNjQnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0aGVhZGVyOiB7XG5cdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIC8v6Ieq5a6a5LmJ6K+35rGC5aS05L+h5oGvXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGRhdGE6IHBhcm1hcnMsXG5cdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6L2s5o2i5ZCO55qE5Zyw5Z2ALS0tLS0tLS0tLScsIHJlcy5kYXRhLmltYWdlVXJsKTtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6Zi25q615Luj56CBICBpbWdVcGxvYWQg6ICX5pe2MiDvvJonICsgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gY3VEYXRlKSlcblx0XHRcdFx0XHR0aGF0LmltZ0ZpbGVMaXN0W3RoYXQuaW1nRmlsZUxpc3QubGVuZ3RoIC0gMV0udXJsID0gcmVzLmRhdGEuaW1hZ2VVcmxcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXHRcdGltZ0RpYWxvZ0J0bigpIHtcblx0XHRcdHRoaXMuaW1nRGlhbG9nID0gZmFsc2Vcblx0XHRcdC8vIHRoaXMucG9pbnRMaXN0PVtdXG5cdFx0fSxcblx0XHQvL+eCueWHu+eCueS9jeWxleekuueahOWGheWuuVxuXHRcdHBvaW50U2hvdyhpbmRleCkge1xuXHRcdFx0Y29uc29sZS5sb2coXCLlvZPliY1pbmRleCA6IFwiICsgaW5kZXggKyBcIi0gdGhpcy5pbWdJbmRleDogXCIgKyB0aGlzLmltZ0luZGV4KVxuXHRcdFx0aWYgKGluZGV4ID09PSB0aGlzLmltZ0luZGV4KSB7XG5cdFx0XHRcdHRoaXMuaW1nSW5kZXggPSAtMVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5pbWdJbmRleCA9IGluZGV4XG5cdFx0XHR9XG5cdFx0fSxcblx0XHQvL+WIoOmZpOeCueS9jVxuXHRcdHJlbW92ZVBvaW50KGluZGV4KSB7XG5cdFx0XHRjb25zb2xlLmxvZygn54K55Ye755qE5YaF5a65JywgaW5kZXgpO1xuXHRcdFx0dGhpcy5wb2ludExpc3Quc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdHRoaXMuaW1nSW5kZXggPSAtMVxuXHRcdH0sXG5cdFx0Ly/luIPngrlcblx0XHRwb2ludEltYWdlKGV2ZW50KSB7XG5cdFx0XHRpZiAodGhpcy5pbWdEaWFsb2dVcmxTdSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcIuW8gOWni+W4g+eCuSDvvJpcIiwgZXZlbnQpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcInjvvJpcIiwgZXZlbnQuZGV0YWlsLngpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcInkg77yaXCIsIGV2ZW50LmRldGFpbC55KTtcblx0XHRcdFx0bGV0IG9iaiA9IHtcblx0XHRcdFx0XHR4OiBldmVudC5kZXRhaWwueCxcblx0XHRcdFx0XHR5OiBldmVudC5kZXRhaWwueVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMucG9pbnRMaXN0LnB1c2gob2JqKVxuXHRcdFx0fVxuXG5cdFx0fSxcblx0XHQvL+W8gOWni+W4g+eCueaIluiAhee7k+adn+W4g+eCuVxuXHRcdHBvaW50VGV4dCgpIHtcblx0XHRcdHRoaXMuaW1nRGlhbG9nVXJsVGV4dCA9IHRoaXMuaW1nRGlhbG9nVXJsU3UgPyBcIue8lui+kemakOaCo+eCuVwiIDogXCLkv53lrZjpmpDmgqPngrlcIlxuXHRcdFx0dGhpcy5pbWdEaWFsb2dVcmxTdSA9ICF0aGlzLmltZ0RpYWxvZ1VybFN1XG5cblx0XHR9LFxuXHRcdC8v5omT5byA5Zu+57q45LiK5Lyg5by55qGGXG5cdFx0b3BlbkltZ0RpYWxvZygpIHtcblx0XHRcdHRoaXMuaW1nRGlhbG9nID0gdHJ1ZVxuXHRcdH0sXG5cdFx0dG9nZ2xlKCkge30sXG5cdFx0Ly/liIbpg6jlt6XnqIvmlLnliqjkuovku7Zcblx0XHRjaGVja1N1Ykxpc3REYXRhKGUsIHR5cGUpIHtcblx0XHRcdGNvbnNvbGUubG9nKGUsIHR5cGUpXG5cdFx0XHRpZiAodHlwZSA9PT0gMSkge1xuXHRcdFx0XHRpZiAodGhpcy5saXN0RGF0YVtlLmRldGFpbC52YWx1ZV0gPT0gXCLmmoLml6DmlbDmja5cIikgcmV0dXJuO1xuXHRcdFx0XHQvLyDpgInmi6nkuIDnuqfoj5zljZVcblx0XHRcdFx0dGhpcy5zdWJzZWN0aW9uSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcblx0XHRcdFx0dGhpcy5mb3JtLnN1YnNlY3Rpb25JZCA9IHRoaXMubGlzdERhdGFbdGhpcy5zdWJzZWN0aW9uSW5kZXhdPy5pZCB8fCAtMTsgLy8g6LWL5YC857uZc3Vic2VjdGlvbklk5a2X5q61XG5cblx0XHRcdFx0dGhpcy5zdWJMaXN0RGF0YSA9IHRoaXMubGlzdERhdGFbdGhpcy5zdWJzZWN0aW9uSW5kZXhdLmNoaWxkcmVuIHx8IFtdO1xuXHRcdFx0XHRpZiAodGhpcy5zdWJMaXN0RGF0YS5sZW5ndGgpIHtcblx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SW5kZXggPSAwOyAvLyDlpoLmnpzlrZjlnKjlrZDnuqfoj5zljZXvvIzliJnlsIbliIbpobnntKLlvJXliJ3lp4vljJbkuLowXG5cdFx0XHRcdFx0dGhpcy5zdWJlbnRyeUlkID0gdGhpcy5zdWJMaXN0RGF0YVswXT8uaWQgfHwgLTE7IC8vIOi1i+WAvOe7mXN1YmVudHJ5SWTlrZfmrrVcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SW5kZXggPSAtMTsgLy8g5aaC5p6c5LiN5a2Y5Zyo5a2Q57qn6I+c5Y2V77yM5YiZ5bCG5YiG6aG557Si5byV5Yid5aeL5YyW5Li6LTFcblx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SWQgPSAtMTsgLy8g5Yid5aeL5YyW5Li6LTFcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKHRoaXMuc3ViTGlzdERhdGFbZS5kZXRhaWwudmFsdWVdID09IFwi5pqC5peg5pWw5o2uXCIpIHJldHVybjtcblx0XHRcdFx0Ly8g6YCJ5oup5LqM57qn6I+c5Y2VXG5cdFx0XHRcdHRoaXMuc3ViZW50cnlJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0uc3ViZW50cnlJZCA9IHRoaXMuc3ViTGlzdERhdGFbdGhpcy5zdWJlbnRyeUluZGV4XT8uaWQgfHwgLTE7IC8vIOi1i+WAvOe7mXN1YmVudHJ5SWTlrZfmrrVcblx0XHRcdH1cblx0XHR9LFxuXHRcdC8v6I635Y+W5YiG6YOo5YiG6aG55bel56iL77yMIOS7peeItuWtkOiKgueCueW9ouW8j+WRiOeOsFxuXHRcdGdldFByb2dyZXNzTGlzdERhdGEoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9zdWJkaXZpc2lvblByb2plY3QvZ2V0UGFyZW50Q2hpbGRMaXN0Jyxcblx0XHRcdFx0bWV0aG9kOiAnZ2V0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U25cblx0XHRcdFx0fSxcblx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmxpc3REYXRhID0gcmVzLnJlc3VsdDtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfojrflj5bliIbpg6jliIbpobnlt6XnqIvvvIwg5Lul54i25a2Q6IqC54K55b2i5byP5ZGI546wJywgdGhpcy5saXN0RGF0YSlcblx0XHRcdFx0XHRcdGlmICh0aGlzLmxpc3REYXRhLmxlbmd0aCA+PSAxKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZm9ybS5zdWJzZWN0aW9uSWQgPSB0aGlzLmxpc3REYXRhWzBdLmlkXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmxpc3REYXRhWzBdLmNoaWxkcmVuLmxlbmd0aCA+PSAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zdWJMaXN0RGF0YSA9IHRoaXMubGlzdERhdGFbMF0uY2hpbGRyZW47XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLnN1YmVudHJ5SWQgPSB0aGlzLmxpc3REYXRhWzBdLmNoaWxkcmVuWzBdLmlkO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3ViTGlzdERhdGEgPSBbJ+aaguaXoOaVsOaNriddXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMubGlzdERhdGEgPSBbJ+aaguaXoOaVsOaNriddXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly/ojrflj5bmo4Dmn6Xpg6jkvY0g5YiX6KGoXG5cdFx0Z2V0Q2hlY2tQb2ludExpc3QoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9xdWFsaXR5UmVnaW9uL2xpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdFx0bm90U3VwZXJ2aXNpbmdVbml0OiAxXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5jaGVja1BvaW50TGlzdCA9IHJlcy5yZXN1bHQ7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnLS0tLS0tLS0tLS0nLCB0aGlzLmNoZWNrUG9pbnRMaXN0KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXHRcdGRlYWxGYWxzZUNoZWNrKGFycikge1xuXHRcdFx0YXJyLm1hcChpdGVtID0+IHtcblx0XHRcdFx0aWYgKGl0ZW0uY2hpbGRyZW4pIHtcblx0XHRcdFx0XHRpdGVtLmNoZWNrZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRpdGVtLm9yQ2hlY2tlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuZGVhbEZhbHNlQ2hlY2soaXRlbS5jaGlsZHJlbilcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpdGVtLmNoZWNrZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRpdGVtLm9yQ2hlY2tlZCA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly/noa7lrprpgInkuK0tLeWbnuaYviAgXG5cdFx0Y2hlY2tQb2ludEJ0bih2YWwsIHR5cGUpIHtcblx0XHRcdHRoaXMuZm9ybS5sZXZlbCA9ICcnXG5cdFx0XHQvLyB0eXBlPT0xIOajgOafpemDqOS9jSDvvJsgIDIg6Zeu6aKY5YiG57G7IFx0MyzpgJrnn6XkurpcdFx0XHRcblx0XHRcdGlmICh0eXBlID09IDEpIHtcblx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9IFwiXCI7XG5cdFx0XHRcdHRoaXMuZm9ybS5lbnRlcnByaXNlTmFtZSA9IFwiXCI7XG5cdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VJZCA9IFwiXCI7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKHZhbCwgdHlwZSlcblx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGxcblx0XHRcdFx0dGhpcy5hcmVhRGF0YSA9IHZhbFswXTtcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5jaGVja1BvaW50TGlzdCwgdmFsLCB0aGlzLnBlcnNvbkxpc3QpXG5cdFx0XHRcdHRoaXMuZm9ybS5yZWdpb25JZCA9IHZhbFswXS5pZDtcblx0XHRcdFx0bGV0IGFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsWzBdLnBhcmVudHMpKTtcblx0XHRcdFx0bGV0IG9iaiA9IHtcblx0XHRcdFx0XHRpZDogdmFsWzBdLmlkLFxuXHRcdFx0XHRcdHJlZ2lvbk5hbWU6IHZhbFswXS5yZWdpb25OYW1lXG5cdFx0XHRcdH07XG5cdFx0XHRcdGFyci5wdXNoKG9iaik7XG5cdFx0XHRcdC8v6I635Y+W6YCJ5Lit55qE5a2X56ym5LiyIOWQjeensFxuXHRcdFx0XHR2YXIgcmVnaW9uTmFtZSA9IGFyci5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcblx0XHRcdFx0XHRyZXR1cm4gaXRlbS5yZWdpb25OYW1lO1xuXHRcdFx0XHR9KS5qb2luKFwiL1wiKTtcblx0XHRcdFx0dGhpcy5jaGVja1BvaW50TmFtZSA9IHJlZ2lvbk5hbWU7XG5cdFx0XHRcdHRoaXMuZm9ybS5yZWdpb25OYW1lID0gcmVnaW9uTmFtZTtcblxuXHRcdFx0XHR0aGlzLmZvcm0uY2hhbmdlSWQgPSB2YWxbMF0uZHV0eUlkO1xuXHRcdFx0XHR0aGlzLm5vdGlmaWVyID0gdmFsWzBdLmludGVuZGFuY2VOYW1lcztcblx0XHRcdFx0dGhpcy5mb3JtLm5vdGlmeVBlcnNvbiA9IHZhbFswXS5pbnRlbmRhbmNlSWRzO1xuXHRcdFx0XHQvLyDph43nva7mo4Dmn6Xpg6jkvY1cblx0XHRcdFx0dGhpcy5kZWFsRmFsc2VDaGVjayh0aGlzLmNoZWNrUG9pbnRMaXN0KTtcblx0XHRcdFx0dGhpcy4kcmVmcy5sb2NhdGlvblRyZWUuX3JlVHJlZUxpc3QoKTtcblx0XHRcdFx0Ly8g5YiG5YyF5Y2V5L2N5pWw5o2u5ou/5Y+WXG5cdFx0XHRcdHRoaXMuc3VicGFja2FnZUxzaXQgPSB2YWxbMF0uZW50ZXJwcmlzZUluZm9zXG5cdFx0XHRcdHRoaXMucGVyc29uVXBkYXRlTGlzdCA9IFtdXG5cdFx0XHRcdC8vIOaVtOaUueS6uuaVsOaNruaLv+WPllxuXHRcdFx0XHQvLyB0aGlzLnBlcnNvblVwZGF0ZUxpc3QgPSB2YWxbMF0uc3lzdGVtVXNlcnNcblx0XHRcdFx0Ly8gdGhpcy5wZXJzb25VcGRhdGVMaXN0LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG5cdFx0XHRcdC8vIFx0aWYgKGl0ZW0udXNlcklkID09IHZhbFswXS5kdXR5SWQpIHtcblx0XHRcdFx0Ly8gXHRcdHRoaXMuY2hhbmdlUGVvcGxlSW5kZXggPSBpbmRleFxuXHRcdFx0XHQvLyBcdH1cblx0XHRcdFx0Ly8gfSk7XG5cdFx0XHRcdHRoaXMucmV2aWV3TGlzdCA9IFtdO1xuXHRcdFx0XHR0aGlzLnJldmlld0luZGV4ID0gbnVsbFxuXHRcdFx0XHR0aGlzLmdldFJldmlld1Blb3BsZUxpc3QoKVxuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coJ+mAieaLqemXrumimOaPj+i/sOeahOaVsOaNricsIHZhbCk7XG5cdFx0XHRcdC8v6K6+572u6Zeu6aKY5o+P6L+wXG5cdFx0XHRcdHRoaXMuZm9ybS5kYW5nZXJJdGVtQ29udGVudCA9IHZhbFswXS5kYW5nZXJOYW1lO1xuXHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VySXRlbUlkID0gdmFsWzBdLmlkO1xuXHRcdFx0XHR0aGlzLmZvcm0ubGV2ZWwgPSB2YWxbMF0ubGV2ZWxcblx0XHRcdFx0dGhpcy5mb3JtLnJlbWFyayA9IHZhbFswXS5yZW1hcmsgLy/mlbTmlLnopoHmsYJcblx0XHRcdFx0Ly/orr7nva7pl67popjnsbvlnotcblx0XHRcdFx0aWYgKHZhbFswXS5wYXJlbnRzLmxlbmd0aCA9PSAwKSB7XG5cdFx0XHRcdFx0dGhpcy5mb3JtLmRhbmdlclR5cGVJZCA9IHZhbFswXS5pZDtcblx0XHRcdFx0XHR0aGlzLmlzc3VlTmFtZSA9IHZhbFswXS5kYW5nZXJOYW1lO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuZm9ybS5kYW5nZXJUeXBlSWQgPSB2YWxbMF0ucGFyZW50c1swXS5pZDtcblx0XHRcdFx0XHR0aGlzLmlzc3VlTmFtZSA9IHZhbFswXS5wYXJlbnRzWzBdLmRhbmdlck5hbWUgKyAnLycgKyB2YWxbMF0ucGFyZW50c1sxXS5kYW5nZXJOYW1lICsgJy8nICsgdmFsWzBdXG5cdFx0XHRcdFx0XHQuZGFuZ2VyTmFtZTtcblx0XHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VyTmFtZSA9IHZhbFswXS5kYW5nZXJOYW1lXG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAzKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKHZhbClcblx0XHRcdFx0dGhpcy5ub3RpZmllciA9IHZhbC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGl0ZW0ud29ya2VyTmFtZVxuXHRcdFx0XHR9KS5qb2luKCcsJyk7XG5cdFx0XHRcdHRoaXMuZm9ybS5ub3RpZnlQZXJzb24gPSB2YWwubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBpdGVtLndvcmtlck5hbWVcblx0XHRcdFx0fSkuam9pbignLCcpXG5cdFx0XHR9XG5cblx0XHR9LFxuXHRcdC8v6I635Y+W6Zeu6aKY5YiG57G7XG5cdFx0Z2V0SXNzdWVMaXN0KCkge1xuXHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XG5cdFx0XHRcdHVybDogJ3htZ2wveHpTZWN1cml0eURhbmdlclR5cGVSZWNvcmQvc2VsZWN0RGFuZ2VyVHlwZUFuZEl0ZW1MaXN0Jyxcblx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXG5cdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuLFxuXHRcdFx0XHRcdHJlY29yZFN0YXR1czogMCxcblx0XHRcdFx0fSxcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMucmVzdWx0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdHJlcy5yZXN1bHQuZm9yRWFjaChpdGVtID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0aXRlbS5jaGlsZHJlbi5mb3JFYWNoKGl0bSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoaXRtLml0ZW1MaXN0ICYmIGl0bS5pdGVtTGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGl0bS5pdGVtTGlzdC5mb3JFYWNoKGl0ZW0yID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpdGVtMi5kYW5nZXJOYW1lID0gaXRlbTIuY29udGVudFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpdG0uY2hpbGRyZW4gPSBpdG0uaXRlbUxpc3Rcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcblx0XHRcdFx0XHRcdHRoaXMuaXNzdWVMaXN0ID0gcmVzLnJlc3VsdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cblx0XHQvL+ihpeWFheivtOaYjlxuXHRcdHN1cHBsZW1lbnRUZXh0YXJlYShlKSB7XG5cdFx0XHR0aGlzLmZvcm0uZGFuZ2VyRGVzYyA9IGUuZGV0YWlsLnZhbHVlXG5cdFx0fSxcblx0XHQvL+aVtOaUueimgeaxglxuXHRcdGNsYWltVGV4dGFyZWEoZSkge1xuXHRcdFx0dGhpcy5mb3JtLnJlbWFyayA9IGUuZGV0YWlsLnZhbHVlXG5cdFx0fSxcblx0XHQvL+S6i+S7tuaPj+i/sFxuXHRcdGV2ZW50RGVzY3JpcHRpb24oZSkge1xuXHRcdFx0dGhpcy5mb3JtLmFkZGVkRGVzY3JpcHRpb24gPSBlLmRldGFpbC52YWx1ZVxuXHRcdH0sXG5cdFx0Ly/lt6Hmo4DmpbzlsYJcblx0XHRldmVudGZsb29yKGUpIHtcblx0XHRcdGNvbnNvbGUubG9nKCflt6Hmo4DmpbzlsYItLS0nLCBlKTtcblx0XHRcdGxldCBpbnB1dCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0dGhpcy5mb3JtLmZsb29yID0gcGFyc2VJbnQoaW5wdXQpOyAvLyDmiJbogIUgdGhpcy5mb3JtLmZsb29yID0gcGFyc2VJbnQoaW5wdXQpO1xuXHRcdH0sXG5cdFx0Ly/ojrflj5bliIbljIXlhazlj7hcblx0XHRnZXRTdWJwYWNrYWdlTHNpdCgpIHtcblx0XHRcdGxldCBkYXRhID0ge1xuXHRcdFx0XHQvLyBlbnRlcnByaXNlVHlwZUlkOiB0aGlzLmNoZWNrVHlwZSxcblx0XHRcdFx0cGFnZU5vOiAxLFxuXHRcdFx0XHRwYWdlU2l6ZTogOTk5LFxuXHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuLFxuXHRcdFx0fTtcblx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xuXHRcdFx0XHR1cmw6ICd4bWdsL3Byb2plY3RFbnRlcnByaXNlL2xpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXMucmVzdWx0LnJlY29yZHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IHJlcy5yZXN1bHQucmVjb3Jkcztcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cdFx0Ly/kuIvmi4npgInmi6nlm57mmL5cblx0XHRiaW5kUGlja2VyQ2hhbmdlKGUsIHR5cGUpIHtcblx0XHRcdGNvbnNvbGUubG9nKGUpXG5cdFx0XHQvL3R5cGUgPT0xIOmXrumimOetiee6pzsy57Sn5oCl5oOF5Ya1OzPmo4Dmn6Xkuro7NCDmo4Dmn6Xml7bpl7Q7NeaVtOaUueaXtumZkDsgNuaVtOaUueS6ujsgN+WkjeafpeS6ujsgOOaguOmqjOS6ujtcblx0XHRcdGlmICh0eXBlID09IDEpIHtcblx0XHRcdFx0dGhpcy5pc3N1ZUdyYWRlSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcblx0XHRcdFx0dGhpcy5mb3JtLmxldmVsID0gdGhpcy5pc3N1ZUdyYWRlTGlzdFtlLmRldGFpbC52YWx1ZV0udmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gMikge1xuXHRcdFx0XHR0aGlzLnVyZ2VuY3lJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0udXJnZW50TGV2ZWwgPSB0aGlzLnVyZ2VuY3lMaXN0W2UuZGV0YWlsLnZhbHVlXS52YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAzKSB7XG5cdFx0XHRcdHRoaXMuaW5zcGVjdE1hbkluZGV4ID0gZS5kZXRhaWwudmFsdWU7XG5cdFx0XHRcdHRoaXMuZm9ybS5pbnNwZWN0TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZFxuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09ICdzdGFydFRpbWUnKSB7XG5cdFx0XHRcdHRoaXMuZm9ybS5pbnNwZWN0VGltZSA9IGUuZjM7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gJ3N0YXJ0VGltZTInKSB7XG5cdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VMaW1pdFRpbWUgPSBlLmYzO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDYpIHtcblx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0uY2hhbmdlSWQgPSB0aGlzLnBlcnNvblVwZGF0ZUxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZDtcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5jaGFuZ2VQZW9wbGVJbmRleCwgdGhpcy5mb3JtLmNoYW5nZUlkKVxuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDcpIHtcblx0XHRcdFx0dGhpcy5yZXZpZXdJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xuXHRcdFx0XHR0aGlzLmZvcm0ucmV2aWV3SWQgPSB0aGlzLnJldmlld0xpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZDtcblx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSA4KSB7XG5cdFx0XHRcdHRoaXMudmVyaWZ5TWFuSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcblx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy5wZXJzb25MaXN0W2UuZGV0YWlsLnZhbHVlXS51c2VySWQ7XG5cdFx0XHR9XG5cblx0XHR9LFxuXG5cblx0XHQvL+iOt+WPluS6uuWRmOWIl+ihqC0tLSDmo4Dmn6XkurrjgIHmlbTmlLnkurrjgIHlpI3mn6XkurrjgIHmoLjpqozkurrjgIHpgJrnn6Xkurpcblx0XHRnZXRQZXJzb25MaXN0KCkge1xuXHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XG5cdFx0XHRcdHVybDogJ3htZ2wvc3lzdGVtVXNlci9nZXRQcm9qZWN0Q2hpbGRlclN5c3RlbVVzZXJMaXN0Jyxcblx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXG5cdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcblx0XHRcdFx0XHRpZiAocmVzLnJlc3VsdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5qOA5p+l5Lq65ZGY5YiX6KGoJywgdGhpcy5wZXJzb25MaXN0KTtcblx0XHRcdFx0XHRcdHRoaXMucGVyc29uTGlzdCA9IHJlcy5yZXN1bHQ7XG5cdFx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLnBlcnNvbkxpc3QuZmluZEluZGV4KGl0ZW0gPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS51c2VySWQgPT0gdGhpcy51c2VySW5mby51c2VySWQ7XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0aWYgKGluZGV4ICE9IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMudmVyaWZ5TWFuSW5kZXggPSBpbmRleDtcblx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy5wZXJzb25MaXN0W2luZGV4XS51c2VySWQ7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRlZmF1bHRBdWRpdFBlcnNvbiA9IHRoaXMudXNlckluZm8ucmVhbE5hbWU7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZm9ybS52ZXJpZnlNYW5JZCA9IHRoaXMudXNlckluZm8udXNlcklkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLnBlcnNvbkxpc3QgPSBbXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblxuXHRcdC8v6I635Y+W5Lq65ZGY5YiX6KGoLS0tIOaVtOaUueS6ulxuXHRcdGdldFBlcnNvblVwZGF0ZUxpc3QoKSB7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxuXHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdFx0ZW50ZXJwcmlzZUlkOiB0aGlzLnVuaXRFbnRlcnByaXNlSWRcblx0XHRcdFx0fSxcblx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMucmVzdWx0KVxuXHRcdFx0XHRcdGlmIChyZXMucmVzdWx0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmo4Dmn6XkurrlkZjliJfooagnLCB0aGlzLnBlcnNvbkxpc3QpO1xuXHRcdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gcmVzLnJlc3VsdDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblxuXG5cdFx0Ly/pgInmi6nnmoTliIbljIXlhazlj7hcblx0XHRjaGVja1N1YnBhY2thZ2UodmFsKSB7XG5cdFx0XHQvLyBpZiAodGhpcy5jaGVja1R5cGUgPT0gMSkge1xuXHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9IHZhbC5lbnRlcnByaXNlU247XG5cdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSB2YWwuZW50ZXJwcmlzZU5hbWU7XG5cdFx0XHR0aGlzLnVuaXRFbnRlcnByaXNlSWQgPSB2YWwuaWQ7XG5cdFx0XHR0aGlzLmZvcm0uY2hhbmdlSWQgPSBcIlwiO1xuXHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGw7XG5cdFx0XHR0aGlzLmlzU2hvd1BpY2tlciA9IGZhbHNlO1xuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmlzU2hvd1BpY2tlciA9IHRydWU7XG5cdFx0XHR9KTtcblx0XHRcdGxldCBuZXdBcnIgPSBbXTtcblx0XHRcdGlmICh0aGlzLmFyZWFEYXRhLnN5c3RlbVVzZXJzKSB7XG5cdFx0XHRcdHRoaXMuYXJlYURhdGEuc3lzdGVtVXNlcnMuZmlsdGVyKChpdGVtKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGl0ZW0udXNlcklkICYmIGl0ZW0uZW50ZXJwcmlzZUlkID09IHRoaXMudW5pdEVudGVycHJpc2VJZCkge1xuXHRcdFx0XHRcdFx0bmV3QXJyLnB1c2goaXRlbSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gbmV3QXJyO1xuXHRcdFx0fVxuXHRcdFx0Ly8gdGhpcy5nZXRQZXJzb25VcGRhdGVMaXN0KCk7XG5cdFx0XHQvLyB9IGVsc2Uge1xuXHRcdFx0Ly8gXHR0aGlzLmZvcm0uZW50ZXJwcmlzZVNuID0gdmFsLmVudGVycHJpc2VTbjtcblx0XHRcdC8vIFx0dGhpcy5mb3JtLmVudGVycHJpc2VOYW1lID0gdmFsLmVudGVycHJpc2VOYW1lO1xuXHRcdFx0Ly8gfVxuXHRcdFx0dGhpcy51bml0RGlhbG9nID0gZmFsc2U7XG5cdFx0fSxcblxuXG5cdFx0Ly/liKDpmaQtLS3lhaznlKhcblx0XHRkZWxldGVzQnRuKHR5cGUpIHtcblx0XHRcdHdpbmRvdy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdC8vdHlwZT09MSDliIbljIXljZXkvY1cblx0XHRcdGlmICh0eXBlID09IDEpIHtcblx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9ICcnO1xuXHRcdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSAnJztcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0Ly/njrDlnLrmlbTmlLnmmK/lkKblrozmiJBcblx0XHRzd2l0Y2hDaGFuZ2UoZSkge1xuXHRcdFx0aWYgKGUuZGV0YWlsLnZhbHVlKSB7XG5cdFx0XHRcdHRoaXMuZm9ybS5zdGF0dXMgPSA1O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5mb3JtLnN0YXR1cyA9IDI7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8v6YCJ5oup5YiG5YyF5Y2V5L2NXG5cdFx0Y2xpY2tVbml0KCkge1xuXHRcdFx0dGhpcy51bml0RGlhbG9nID0gdHJ1ZTtcblx0XHRcdC8vIHRoaXMuZ2V0U3VicGFja2FnZUxzaXQoKTtcblx0XHR9LFxuXHRcdC8v5YiH5o2i5YiG5YyF5ZWGXG5cdFx0Y2hlY2tUeXBlQnRuKHR5cGUpIHtcblx0XHRcdHRoaXMuY2hlY2tUeXBlID0gdHlwZTtcblx0XHRcdHRoaXMuZ2V0U3VicGFja2FnZUxzaXQoKTtcblx0XHR9LFxuXG5cdFx0Ly/kuIrkvKDpmYTku7Zcblx0XHR1cGxvYWRJbWcodHlwZSkge1xuXHRcdFx0dmFyIHRoYXQgPSB0aGlzXG5cdFx0XHRpZiAodHlwZSA9PSAxKSB7XG5cdFx0XHRcdHVuaS5jaG9vc2VJbWFnZSh7XG5cdFx0XHRcdFx0Y291bnQ6IDUgLSB0aGF0LmltZ0ZpbGVMaXN0Lmxlbmd0aCxcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdGVtcEZpbGVQYXRocyA9IHJlcy50ZW1wRmlsZVBhdGhzO1xuXHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQudXJsX2NvbmZpZyArICd1cGxvYWQvaW1hZ2UnLCAvL+S7heS4uuekuuS+i++8jOmdnuecn+WunueahOaOpeWPo+WcsOWdgFxuXHRcdFx0XHRcdFx0XHRmaWxlUGF0aDogdGVtcEZpbGVQYXRoc1swXSxcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZGF0YSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxuXHRcdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdGaWxlTGlzdC5wdXNoKGRhdGEpXG5cdFx0XHRcdFx0XHRcdFx0dW5pLmdldEltYWdlSW5mbyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRzcmM6IHRlbXBGaWxlUGF0aHNbMF0sXG5cdFx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzOiAocmVzSW5mbykgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5Lyg6L+H5Y675ZWmIHJlc0luZm8nLCByZXNJbmZvKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmltZ0xpc3QgPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aW1nVXJsOiB0ZW1wRmlsZVBhdGhzWzBdLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGltZ1dpZHRoOiByZXNJbmZvLndpZHRoLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGltZ0hlaWdodDogcmVzSW5mby5oZWlnaHQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gdGVhbTon54+t57uE5Lq65ZGYJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBuYW1lOiAn5byg5LiJJ1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IHRydWVcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IGZhbHNlXG5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcblx0XHRcdFx0dW5pLmNob29zZUltYWdlKHtcblx0XHRcdFx0XHRjb3VudDogMSxcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdGVtcEZpbGVQYXRocyA9IHJlcy50ZW1wRmlsZVBhdGhzO1xuXHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQudXJsX2NvbmZpZyArICd1cGxvYWQvaW1hZ2UnLCAvL+S7heS4uuekuuS+i++8jOmdnuecn+WunueahOaOpeWPo+WcsOWdgFxuXHRcdFx0XHRcdFx0XHRmaWxlUGF0aDogdGVtcEZpbGVQYXRoc1swXSxcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZGF0YSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxuXHRcdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW1nRGlhbG9nVXJsLmxlbmd0aCA+PSAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmltZ0RpYWxvZ1VybFswXS51cmwgPSBkYXRhLnVybFxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdEaWFsb2dVcmxbMF0ubmFtZSA9IGRhdGEubmFtZVxuXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaW1nRGlhbG9nVXJsLnB1c2goZGF0YSlcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkuIrkvKDlm77niYfnmoTkv6Hmga/vvJpcIiwgdGhhdC5pbWdEaWFsb2dVcmwpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHVuaS5jaG9vc2VJbWFnZSh7XG5cdFx0XHRcdFx0Y291bnQ6IDEgLSB0aGF0Lm1hcEltZ0xpc3QubGVuZ3RoLFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB0ZW1wRmlsZVBhdGhzID0gcmVzLnRlbXBGaWxlUGF0aHM7XG5cdFx0XHRcdFx0XHR1bmkudXBsb2FkRmlsZSh7XG5cdFx0XHRcdFx0XHRcdHVybDogdGhhdC51cmxfY29uZmlnICsgJ3VwbG9hZC9pbWFnZScsIC8v5LuF5Li656S65L6L77yM6Z2e55yf5a6e55qE5o6l5Y+j5Zyw5Z2AXG5cdFx0XHRcdFx0XHRcdGZpbGVQYXRoOiB0ZW1wRmlsZVBhdGhzWzBdLFxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxuXHRcdFx0XHRcdFx0XHRzdWNjZXNzOiAodXBsb2FkRmlsZVJlcykgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uZmlsZW5hbWUsXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmltYWdlVXJsXG5cdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1hcEltZ0xpc3QucHVzaChkYXRhKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cblx0XHRcdH1cblxuXG5cdFx0fSxcblx0XHQvL+WIoOmZpOmZhOS7tlxuXHRcdGRlbGV0ZUltZyh2YWwsIHR5cGUpIHtcblx0XHRcdGxldCB0aGF0ID0gdGhpcztcblx0XHRcdHVuaS5zaG93TW9kYWwoe1xuXHRcdFx0XHR0aXRsZTogJ+aPkOekuicsXG5cdFx0XHRcdGNvbnRlbnQ6ICfnoa7lrprliKDpmaTor6XpmYTku7blkJc/Jyxcblx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb25maXJtKSB7XG5cdFx0XHRcdFx0XHRpZiAodHlwZSA9PSAxKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBmaWxlQXJyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGF0LmltZ0ZpbGVMaXN0KSk7XG5cdFx0XHRcdFx0XHRcdGZpbGVBcnIuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoaXRlbS51cmwgPT0gdmFsLnVybCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZmlsZUFyci5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR0aGF0LmltZ0ZpbGVMaXN0ID0gZmlsZUFycjtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAyKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBmaWxlQXJyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGF0LnZpZGVvRmlsZUxpc3QpKTtcblx0XHRcdFx0XHRcdFx0ZmlsZUFyci5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChpdGVtLnVybCA9PSB2YWwudXJsKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRmaWxlQXJyLnNwbGljZShpbmRleCwgMSlcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdHRoYXQudmlkZW9GaWxlTGlzdCA9IGZpbGVBcnI7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jYW5jZWwpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfnlKjmiLfngrnlh7vlj5bmtognKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0fSxcblx0XHQvL+S4iuS8oOinhumikVxuXHRcdHVwbG9hZFZpZGVvKCkge1xuXHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xuXHRcdFx0dW5pLmNob29zZVZpZGVvKHtcblx0XHRcdFx0Y291bnQ6IDUgLSB0aGF0LnZpZGVvRmlsZUxpc3QubGVuZ3RoLFxuXHRcdFx0XHRzb3VyY2VUeXBlOiBbJ2NhbWVyYScsICdhbGJ1bSddLFxuXHRcdFx0XHRjb21wcmVzc2VkOiBmYWxzZSxcblx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0bGV0IHVybCA9IHJlcy50ZW1wRmlsZVBhdGg7XG5cdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0dXJsOiB0aGF0LnVybF9jb25maWcgKyAndXBsb2FkL2ltYWdlJywgLy/ku4XkuLrnpLrkvovvvIzpnZ7nnJ/lrp7nmoTmjqXlj6PlnLDlnYBcblx0XHRcdFx0XHRcdGZpbGVQYXRoOiB1cmwsXG5cdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxuXHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0bGV0IG9iaiA9IHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5maWxlSW5mb1xuXHRcdFx0XHRcdFx0XHRcdFx0Lm9yaWdpbmFsRmlsZW5hbWUsXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHRoYXQudmlkZW9GaWxlTGlzdC5wdXNoKG9iaik7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfkuIrkvKDop4bpopHlkI7nmoTmlbDmja4nLCB0aGF0LnZpZGVvRmlsZUxpc3QpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblx0XHQvL+afpeeci+inhumikVxuXHRcdHBsYXlWaWRlbyh1cmwsIHR5cGUpIHtcblx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0dXJsOiAnLi4vY2FyV2FzaE1hbmFnZS9tZWRpYVBsYXk/dXJsPScgKyB1cmwgKyAnJnR5cGU9JyArIHR5cGVcblx0XHRcdH0pXG5cdFx0fSxcblx0XHQvL+mihOiniOWbvueJh1xuXHRcdHByZXZpZXdJbWFnZSh1cmwpIHtcblx0XHRcdHVuaS5wcmV2aWV3SW1hZ2Uoe1xuXHRcdFx0XHR1cmxzOiBbdXJsXVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cblx0XHQvL+aWsOWinuS/neWtmFxuXHRcdGFzeW5jIGFkZFNhdmVCdG4oKSB7XG5cdFx0XHRsZXQgYXJyID0gW10sXG5cdFx0XHRcdGFycjIgPSBbXTtcblxuXG5cdFx0XHR0aGlzLnZpZGVvRmlsZUxpc3QuZm9yRWFjaChpdGVtID0+IHtcblx0XHRcdFx0YXJyLnB1c2goaXRlbS5uYW1lICsgXCIqXCIgKyB0aGlzLnVybF9jb25maWcgKyAnaW1hZ2UvJyArIGl0ZW0udXJsKVxuXHRcdFx0fSlcblx0XHRcdHRoaXMuaW1nRmlsZUxpc3QuZm9yRWFjaChpdGVtID0+IHtcblx0XHRcdFx0YXJyMi5wdXNoKGl0ZW0ubmFtZSArIFwiKlwiICsgdGhpcy51cmxfY29uZmlnICsgJ2ltYWdlLycgKyBpdGVtLnVybClcblx0XHRcdH0pXG5cdFx0XHQvLyB0aGlzLmZvcm0uZmlsZVVybCA9IHRoaXMudmlkZW9GaWxlTGlzdC5sZW5ndGg+MD9KU09OLnN0cmluZ2lmeSh0aGlzLnZpZGVvRmlsZUxpc3QpOicnO1xuXHRcdFx0Ly8gdGhpcy5mb3JtLmltYWdlVXJsID0gdGhpcy5pbWdGaWxlTGlzdC5sZW5ndGg+MD9KU09OLnN0cmluZ2lmeSh0aGlzLmltZ0ZpbGVMaXN0KTonJztcblx0XHRcdHRoaXMuZm9ybS5maWxlVXJsID0gYXJyLmpvaW4oJywnKVxuXHRcdFx0dGhpcy5mb3JtLmltYWdlVXJsID0gYXJyMi5qb2luKCcsJylcblx0XHRcdGxldCBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0pKTtcblx0XHRcdGlmICghZGF0YS5yZWdpb25JZCkge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpemDqOS9jScsXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdFx0aWYgKCFkYXRhLmRhbmdlckl0ZW1Db250ZW50ICYmIHRoaXMudHlwZUNoZWNrID09IFwidHlwZTFcIikge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqemXrumimOaPj+i/sCcsXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fSBlbHNlIGlmICghZGF0YS5kYW5nZXJJdGVtQ29udGVudCkge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeaOkuafpeWIhuexuycsXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdFx0aWYgKCFkYXRhLmRhbmdlclR5cGVJZCAmJiB0aGlzLnR5cGVDaGVjayA9PSBcInR5cGUxXCIpIHtcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6npl67popjliIbnsbsnLFxuXHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHR9KVxuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblx0XHRcdC8vIGlmIChkYXRhLmluc3BlY3RNYW5JZCA9PSAnJykge1xuXHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdC8vIFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpeS6uicsXG5cdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHQvLyBcdH0pXG5cdFx0XHQvLyBcdHJldHVyblxuXHRcdFx0Ly8gfVxuXHRcdFx0aWYgKCFkYXRhLmluc3BlY3RUaW1lKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5qOA5p+l5pe26Ze0Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEuZW50ZXJwcmlzZU5hbWUpIHtcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6nliIbljIXljZXkvY0nLFxuXHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHR9KVxuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblx0XHRcdGlmICghZGF0YS5jaGFuZ2VMaW1pdFRpbWUgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5pW05pS55pe26ZmQJyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEuY2hhbmdlSWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5pW05pS55Lq6Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEucmV2aWV3SWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5aSN5p+l5Lq6Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWRhdGEudmVyaWZ5TWFuSWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5qC45p+l5Lq6Jyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9O1xuXHRcdFx0ZGF0YS5sZXZlbCA9IGRhdGEubGV2ZWwgPT0gMCA/IE51bWJlcihkYXRhLmxldmVsKSArIDEgOiBkYXRhLmxldmVsO1xuXHRcdFx0ZGF0YS51cmdlbnRMZXZlbCA9IGRhdGEudXJnZW50TGV2ZWwgPT0gMCA/IE51bWJlcihkYXRhLnVyZ2VudExldmVsKSArIDEgOiBkYXRhLnVyZ2VudExldmVsO1xuXHRcdFx0ZGF0YS5wcm9qZWN0U24gPSB0aGlzLnByb2plY3RTbjtcblx0XHRcdGRhdGEuaW5zcGVjdE1hbklkID0gdGhpcy51c2VySW5mby51c2VySWRcblx0XHRcdGRhdGEuY3JlYXRvcklkID0gdGhpcy51c2VySW5mby51c2VySWRcblx0XHRcdGRhdGEuZGFuZ2VySXRlbUNvbnRlbnQgPSB0aGlzLmlzc3VlTmFtZVxuXHRcdFx0aWYodGhpcy5lbmdpbmVlcmluZ0lkKSBkYXRhLmVuZ2luZWVyaW5nSWQgPSB0aGlzLmVuZ2luZWVyaW5nSWRcblx0XHRcdGlmKHRoaXMudHlwZSkgZGF0YS50eXBlID0gdGhpcy50eXBlXG5cdFx0XHRsZXQgcG9pbnRBcnIgPSBbXVxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBvaW50TGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRsZXQgb2JqID1cblx0XHRcdFx0XHR0aGlzLnBvaW50TGlzdFtpXS54ICtcblx0XHRcdFx0XHQnKicgK1xuXHRcdFx0XHRcdHRoaXMucG9pbnRMaXN0W2ldLnlcblx0XHRcdFx0cG9pbnRBcnIucHVzaChvYmopXG5cdFx0XHR9XG5cdFx0XHRkYXRhLm1lYXN1cmVQb2ludHMgPSBwb2ludEFyci5qb2luKCcsJylcblx0XHRcdGNvbnNvbGUubG9nKCdkYXRhLm1lYXN1cmVQb2ludHM9PT09PT09PT09PT09JywgZGF0YS5tZWFzdXJlUG9pbnRzKTtcblx0XHRcdGlmICh0aGlzLnR5cGVDaGVjayA9PSBcInR5cGUxXCIpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YSk7XG5cdFx0XHRcdC8vIOWuieWFqOmXrumimFxuXHRcdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3h6U2VjdXJpdHlRdWFsaXR5SW5zcGVjdGlvblJlY29yZC9hZGQnLFxuXHRcdFx0XHRcdG1ldGhvZDogJ3Bvc3QnLFxuXHRcdFx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+S/neWtmOaIkOWKnydcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XG5cdFx0XHRcdFx0XHRcdFx0XHRkZWx0YTogMVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0sIDEyMDApXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogcmVzLm1lc3NhZ2UsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy50YXNrSWQpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLml0ZW1JZCk7XG5cdFx0XHRcdC8vIOaOkuafpeiusOW9lVxuXHRcdFx0XHRsZXQgZGF0YTIgPSB7XG5cdFx0XHRcdFx0ZGFuZ2VyRGVzYzogZGF0YS5kYW5nZXJEZXNjLFxuXHRcdFx0XHRcdGRhbmdlckl0ZW1Db250ZW50OiB0aGlzLmlzc3VlTmFtZSxcblx0XHRcdFx0XHRkYW5nZXJJdGVtSWQ6IGRhdGEuZGFuZ2VySXRlbUlkLFxuXHRcdFx0XHRcdGRhbmdlclR5cGVJZDogZGF0YS5kYW5nZXJUeXBlSWQsXG5cdFx0XHRcdFx0ZW50ZXJwcmlzZU5hbWU6IGRhdGEuZW50ZXJwcmlzZU5hbWUsXG5cdFx0XHRcdFx0ZW50ZXJwcmlzZVNuOiBkYXRhLmVudGVycHJpc2VTbixcblx0XHRcdFx0XHRmaWxlVXJsOiBkYXRhLmZpbGVVcmwsXG5cdFx0XHRcdFx0aW1hZ2VVcmw6IGRhdGEuaW1hZ2VVcmwsXG5cdFx0XHRcdFx0aW5zcGVjdE1hbklkOiBkYXRhLmluc3BlY3RNYW5JZCxcblx0XHRcdFx0XHRpbnNwZWN0VGltZTogZGF0YS5pbnNwZWN0VGltZSxcblx0XHRcdFx0XHRwcm9qZWN0U246IGRhdGEucHJvamVjdFNuLFxuXHRcdFx0XHRcdHJlY29yZFR5cGU6IDIsXG5cdFx0XHRcdFx0cmVnaW9uSWQ6IGRhdGEucmVnaW9uSWQsXG5cdFx0XHRcdFx0cmVnaW9uTmFtZTogZGF0YS5yZWdpb25OYW1lLFxuXHRcdFx0XHRcdHJvdXRpbmVJbnNwZWN0OiAwLFxuXHRcdFx0XHRcdHN1YnNlY3Rpb25JZDogZGF0YS5zdWJzZWN0aW9uSWQsIC8v5YiG6YOo5bel56iLXG5cdFx0XHRcdFx0c3ViZW50cnlJZDogZGF0YS5zdWJlbnRyeUlkLCAvL+WIhumhueW3peeoi1xuXHRcdFx0XHRcdGZsb29yOiBkYXRhLmZsb29yLCAvL+W3oeajgOalvOWxglxuXHRcdFx0XHRcdGFkZGVkRGVzY3JpcHRpb246IGRhdGEuYWRkZWREZXNjcmlwdGlvbiwgLy/kuovku7bmj4/ov7Bcblx0XHRcdFx0XHR0YXNrSWQ6IHRoaXMudGFza0lkIHx8IG51bGwsIC8vIOS7u+WKoUlEXG5cdFx0XHRcdFx0aXRlbUlkOiB0aGlzLml0ZW1JZCB8fCBudWxsLCAvLyDku7vliqHlrZBJRFxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRpZih0aGlzLmVuZ2luZWVyaW5nSWQpIGRhdGEyLmVuZ2luZWVyaW5nSWQgPSB0aGlzLmVuZ2luZWVyaW5nSWRcblx0XHRcdFx0aWYodGhpcy50eXBlKSBkYXRhMi50eXBlID0gdGhpcy50eXBlXG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGEudGFza0lkKTtcblx0XHRcdFx0YXdhaXQgdGhpcy5zZW5kUmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiAneG1nbC94elNlY3VyaXR5UXVhbGl0eUluc3BlY3Rpb25SZWNvcmQvYWRkJyxcblx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0Jyxcblx0XHRcdFx0XHRkYXRhOiBkYXRhMixcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcblx0XHRcdFx0XHRcdFx0XHRcdGRlbHRhOiAxXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSwgMTIwMClcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiByZXMubWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8vIOWIh+aNonRhYlxuXHRcdHJhZGlvQ2hhbmdlKHZhbHVlKSB7XG5cblx0XHRcdHRoaXMudHlwZUNoZWNrID0gdmFsdWVcblx0XHRcdHRoaXMuY2hlY2tlZFRhYiA9IHZhbHVlXG5cdFx0XHRjb25zb2xlLmxvZygn5YiH5o2idGFiJywgdGhpcy5mb3JtKTtcblx0XHRcdC8vIOmHjeWItuWGheWuuVxuXHRcdFx0dGhpcy5mb3JtID0ge1xuXHRcdFx0XHRyZWdpb25JZDogXCJcIiwgLy8g5qOA5p+l6YOo5L2NXG5cdFx0XHRcdHJlZ2lvbk5hbWU6IFwiXCIsXG5cdFx0XHRcdGRhbmdlckl0ZW1Db250ZW50OiBcIlwiLFxuXHRcdFx0XHRkYW5nZXJJdGVtSWQ6IFwiXCIsXG5cdFx0XHRcdGRhbmdlclR5cGVJZDogXCJcIixcblx0XHRcdFx0ZGFuZ2VyRGVzYzogXCJcIixcblx0XHRcdFx0cmVtYXJrOiBcIlwiLFxuXHRcdFx0XHRyb3V0aW5lSWQ6IDAsXG5cdFx0XHRcdGxldmVsOiAwLFxuXHRcdFx0XHR1cmdlbnRMZXZlbDogMCxcblx0XHRcdFx0aW5zcGVjdE1hbklkOiBcIlwiLFxuXHRcdFx0XHRpbnNwZWN0VGltZTogZGF0ZWZvcm1hdChuZXcgRGF0ZSgpKSxcblx0XHRcdFx0ZW50ZXJwcmlzZVNuOiBcIlwiLFxuXHRcdFx0XHRlbnRlcnByaXNlTmFtZTogXCJcIixcblx0XHRcdFx0Y2hhbmdlTGltaXRUaW1lOiBcIlwiLFxuXHRcdFx0XHRjaGFuZ2VJZDogXCJcIixcblx0XHRcdFx0cmV2aWV3SWQ6IFwiXCIsXG5cdFx0XHRcdHZlcmlmeU1hbklkOiBcIlwiLFxuXHRcdFx0XHRub3RpZnlQZXJzb246IFtdLFxuXHRcdFx0XHRzdGF0dXM6IDIsIC8vIOeOsOWcuuaVtOaUueeKtuaAgSAgMuacquWujOaIkCAgIDXlt7LlrozmiJBcblx0XHRcdFx0bWVhc3VyZVBvaW50czogW10sXG5cdFx0XHRcdGltYWdlVXJsOiBcIlwiLFxuXHRcdFx0XHRmaWxlVXJsOiBcIlwiLFxuXHRcdFx0XHRyZWNvcmRUeXBlOiAxLFxuXHRcdFx0XHQvLyB0YXNrSWQ6JycsXG5cdFx0XHRcdC8vIGl0ZW1JZDonJ1xuXHRcdFx0fTtcblx0XHRcdHRoaXMuaXNzdWVOYW1lID0gJydcblx0XHRcdHRoaXMuY2hlY2tQb2ludE5hbWUgPSBcIlwiXG5cdFx0XHR0aGlzLnZpZGVvRmlsZUxpc3QgPSBbXTtcblx0XHRcdHRoaXMuaW1nRmlsZUxpc3QgPSBbXTtcblx0XHRcdHRoaXMuc3Vic2VjdGlvbkluZGV4ID0gLTFcblx0XHRcdHRoaXMuc3ViZW50cnlJbmRleCA9IC0xXG5cdFx0XHR0aGlzLmNoYW5nZVBlb3BsZUluZGV4ID0gbnVsbFxuXHRcdFx0Ly8g5YiG5YyF5Y2V5L2N5pWw5o2u5ou/5Y+WXG5cdFx0XHR0aGlzLnN1YnBhY2thZ2VMc2l0ID0gW11cblx0XHRcdC8vIOaVtOaUueS6uuaVsOaNruaLv+WPllxuXHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gW11cblx0XHRcdGxldCBpbmRleCA9IHRoaXMucGVyc29uTGlzdC5maW5kSW5kZXgoaXRlbSA9PiB7XG5cdFx0XHRcdHJldHVybiBpdGVtLnVzZXJJZCA9PSB0aGlzLnVzZXJJbmZvLnVzZXJJZDtcblx0XHRcdH0pXG5cdFx0XHRpZiAoaW5kZXggIT0gLTEpIHtcblx0XHRcdFx0dGhpcy52ZXJpZnlNYW5JbmRleCA9IGluZGV4O1xuXHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbaW5kZXhdLnVzZXJJZDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuZGVmYXVsdEF1ZGl0UGVyc29uID0gdGhpcy51c2VySW5mby5yZWFsTmFtZTtcblx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy51c2VySW5mby51c2VySWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///792\n"); +======= +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 161));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 164));\nvar _tkiTree = _interopRequireDefault(__webpack_require__(/*! @/components/tki-tree/tki-tree.vue */ 746));\nvar _canversCom = _interopRequireDefault(__webpack_require__(/*! @/pages/videoManage/component/canversCom.vue */ 191));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/components/dateTimePicker/index.vue */ 394));\nvar _tool = __webpack_require__(/*! @/utils/tool.js */ 85);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n components: {\n tkiTree: _tkiTree.default,\n canversCom: _canversCom.default,\n dateTimePiccker: _index.default\n },\n data: function data() {\n return {\n isShowPicker: true,\n startTime: this.getDate({\n format: true\n }),\n startTime2: this.getDate({\n format: true\n }),\n checkedTab: 'type1',\n imgList: {},\n openImg: false,\n base64Image: '',\n imgIndex: -1,\n pointList: [],\n location: {\n left: '0',\n top: '0'\n },\n x: 0,\n y: 0,\n imgDialogUrlSu: false,\n imgDialogUrlText: \"编辑隐患点\",\n imgDialog: false,\n imgDialogUrl: [],\n pageTitle: '新增检查',\n projectSn: '',\n checkType: 1,\n //分包商类型 1专业分包 6劳务分包\n form: {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: \"\",\n urgentLevel: \"\",\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1,\n dangerName: '',\n subsectionId: '',\n //分部工程\n subentryId: '',\n //分项工程\n floor: '',\n //巡检楼层\n addedDescription: '',\n //事件描述\n taskId: '',\n //任务ID\n itemId: '' // 任务子ID\n },\n\n checkPointList: [],\n //获取检查部位数据\n checkPointName: '',\n issueList: [],\n //问题分类 || 问题描述\n issueName: '',\n issueGradeList: [{\n name: '一级',\n value: 1\n }, {\n name: '二级',\n value: 2\n }, {\n name: '三级',\n value: 3\n }, {\n name: '四级',\n value: 4\n }],\n //问题等级\n issueGradeIndex: 0,\n urgencyList: [{\n name: '一般',\n value: 1\n }, {\n name: '严重',\n value: 2\n }, {\n name: '紧要',\n value: 3\n }],\n //紧急程度\n urgencyIndex: 0,\n personUpdateList: [],\n // 人员列表-整改人\n personList: [],\n //人员列表 -- 检查人、整改人、复查人、核验人、通知人\n inspectManIndex: null,\n //检查人\n changePeopleIndex: null,\n //整改人\n verifyManIndex: null,\n //核验人\n reviewIndex: null,\n //复查人\n notifier: '',\n //通知人\n unitDialog: false,\n //分包商弹窗\n subpackageLsit: [],\n //分包商数据列表\n videoFileList: [],\n imgFileList: [],\n mapImgList: [],\n basicInfo: {},\n selectIndex: null,\n userInfo: '',\n typeCheck: 'type1',\n // 类型 type1为安全问题 type2为排查记录\n listData: [],\n //分部工程\n subListData: [],\n //分项工程\n subsectionIndex: -1,\n //分部工程\n subentryIndex: -1,\n ////分项工程\n unitEnterpriseId: \"\",\n taskId: '',\n //任务ID\n itemId: '',\n // 任务子ID\n defaultAuditPerson: \"\",\n reviewList: [],\n areaData: {},\n engineeringId: '',\n type: ''\n };\n },\n onLoad: function onLoad(option) {\n this.pageTitle = option.type == 'add' ? '新增检查' : '编辑检查';\n this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;\n this.userInfo = JSON.parse(uni.getStorageSync('userInfo'));\n this.getCheckPointList();\n this.getIssueList();\n this.getPersonList();\n // this.getReviewPeopleList();\n // this.getPersonUpdateList();\n this.getProgressListData();\n __f__(\"log\", 'lll', option.taskId, option.itemId, \" at pages/projectEnd/safeSame/addIssue.vue:579\");\n this.taskId = option.taskId;\n this.itemId = option.itemId;\n this.form.taskId = option.taskId;\n this.form.itemId = option.itemId;\n __f__(\"log\", (0, _tool.dateformat)(new Date()), 777888, \" at pages/projectEnd/safeSame/addIssue.vue:584\");\n if (option.engineeringId) this.engineeringId = option.engineeringId;\n if (option.type) this.type = Number(option.type);\n },\n methods: {\n //获取复查人\n getReviewPeopleList: function getReviewPeopleList() {\n var _this = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n // enterpriseTypeId: 7,\n qualityRegionId: this.form.regionId,\n qualityRegionBindType: 2,\n isSupervisingRoleName: 1\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:604\");\n if (res.result.length > 0) {\n _this.reviewList = res.result;\n } else {\n _this.reviewList = [];\n }\n }\n });\n },\n getDate: function getDate(type) {\n var date = new Date();\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n if (type === 'start') {\n year = year;\n } else if (type === 'end') {\n // year = year + 2;\n }\n month = month > 9 ? month : '0' + month;\n day = day > 9 ? day : '0' + day;\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n },\n imgUrl: function imgUrl(val) {\n this.openImg = false;\n this.imgUpload(val);\n this.openImg = true;\n },\n //图片上传请求的接口\n imgUpload: function imgUpload(baseImg) {\n __f__(\"log\", '进入----------图片上传请求的接口', \" at pages/projectEnd/safeSame/addIssue.vue:636\");\n var that = this;\n var cuDate = new Date().getTime();\n var arr = [];\n that.base64Image = baseImg;\n var parmars = {\n base64Image: that.base64Image\n };\n this.sendRequest({\n url: 'xmgl/upload/uploadBase64',\n method: 'post',\n header: {\n 'content-type': 'application/x-www-form-urlencoded' //自定义请求头信息\n },\n\n data: parmars,\n success: function success(res) {\n __f__(\"log\", '转换后的地址----------', res.data.imageUrl, \" at pages/projectEnd/safeSame/addIssue.vue:653\");\n __f__(\"log\", '阶段代码 imgUpload 耗时2 :' + (new Date().getTime() - cuDate), \" at pages/projectEnd/safeSame/addIssue.vue:654\");\n that.imgFileList[that.imgFileList.length - 1].url = res.data.imageUrl;\n }\n });\n },\n imgDialogBtn: function imgDialogBtn() {\n this.imgDialog = false;\n // this.pointList=[]\n },\n //点击点位展示的内容\n pointShow: function pointShow(index) {\n __f__(\"log\", \"当前index : \" + index + \"- this.imgIndex: \" + this.imgIndex, \" at pages/projectEnd/safeSame/addIssue.vue:665\");\n if (index === this.imgIndex) {\n this.imgIndex = -1;\n } else {\n this.imgIndex = index;\n }\n },\n //删除点位\n removePoint: function removePoint(index) {\n __f__(\"log\", '点击的内容', index, \" at pages/projectEnd/safeSame/addIssue.vue:674\");\n this.pointList.splice(index, 1);\n this.imgIndex = -1;\n },\n //布点\n pointImage: function pointImage(event) {\n if (this.imgDialogUrlSu) {\n __f__(\"log\", \"开始布点 :\", event, \" at pages/projectEnd/safeSame/addIssue.vue:681\");\n __f__(\"log\", \"x:\", event.detail.x, \" at pages/projectEnd/safeSame/addIssue.vue:682\");\n __f__(\"log\", \"y :\", event.detail.y, \" at pages/projectEnd/safeSame/addIssue.vue:683\");\n var obj = {\n x: event.detail.x,\n y: event.detail.y\n };\n this.pointList.push(obj);\n }\n },\n //开始布点或者结束布点\n pointText: function pointText() {\n this.imgDialogUrlText = this.imgDialogUrlSu ? \"编辑隐患点\" : \"保存隐患点\";\n this.imgDialogUrlSu = !this.imgDialogUrlSu;\n },\n //打开图纸上传弹框\n openImgDialog: function openImgDialog() {\n this.imgDialog = true;\n },\n toggle: function toggle() {},\n //分部工程改动事件\n checkSubListData: function checkSubListData(e, type) {\n __f__(\"log\", e, type, \" at pages/projectEnd/safeSame/addIssue.vue:705\");\n if (type === 1) {\n var _this$listData$this$s;\n if (this.listData[e.detail.value] == \"暂无数据\") return;\n // 选择一级菜单\n this.subsectionIndex = e.detail.value;\n this.form.subsectionId = ((_this$listData$this$s = this.listData[this.subsectionIndex]) === null || _this$listData$this$s === void 0 ? void 0 : _this$listData$this$s.id) || -1; // 赋值给subsectionId字段\n\n this.subListData = this.listData[this.subsectionIndex].children || [];\n if (this.subListData.length) {\n var _this$subListData$;\n this.subentryIndex = 0; // 如果存在子级菜单,则将分项索引初始化为0\n this.subentryId = ((_this$subListData$ = this.subListData[0]) === null || _this$subListData$ === void 0 ? void 0 : _this$subListData$.id) || -1; // 赋值给subentryId字段\n } else {\n this.subentryIndex = -1; // 如果不存在子级菜单,则将分项索引初始化为-1\n this.subentryId = -1; // 初始化为-1\n }\n } else {\n var _this$subListData$thi;\n if (this.subListData[e.detail.value] == \"暂无数据\") return;\n // 选择二级菜单\n this.subentryIndex = e.detail.value;\n this.form.subentryId = ((_this$subListData$thi = this.subListData[this.subentryIndex]) === null || _this$subListData$thi === void 0 ? void 0 : _this$subListData$thi.id) || -1; // 赋值给subentryId字段\n }\n },\n //获取分部分项工程, 以父子节点形式呈现\n getProgressListData: function getProgressListData() {\n var _this2 = this;\n this.sendRequest({\n url: 'xmgl/subdivisionProject/getParentChildList',\n method: 'get',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n if (res.code == 200) {\n _this2.listData = res.result;\n __f__(\"log\", '获取分部分项工程, 以父子节点形式呈现', _this2.listData, \" at pages/projectEnd/safeSame/addIssue.vue:738\");\n if (_this2.listData.length >= 1) {\n _this2.form.subsectionId = _this2.listData[0].id;\n if (_this2.listData[0].children.length >= 1) {\n _this2.subListData = _this2.listData[0].children;\n _this2.form.subentryId = _this2.listData[0].children[0].id;\n } else {\n _this2.subListData = ['暂无数据'];\n }\n } else {\n _this2.listData = ['暂无数据'];\n }\n }\n }\n });\n },\n //获取检查部位 列表\n getCheckPointList: function getCheckPointList() {\n var _this3 = this;\n this.sendRequest({\n url: 'xmgl/qualityRegion/list',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n notSupervisingUnit: 1\n },\n success: function success(res) {\n if (res.code == 200) {\n _this3.checkPointList = res.result;\n __f__(\"log\", '-----------', _this3.checkPointList, \" at pages/projectEnd/safeSame/addIssue.vue:766\");\n }\n }\n });\n },\n dealFalseCheck: function dealFalseCheck(arr) {\n var _this4 = this;\n arr.map(function (item) {\n if (item.children) {\n item.checked = false;\n item.orChecked = false;\n _this4.dealFalseCheck(item.children);\n } else {\n item.checked = false;\n item.orChecked = false;\n }\n });\n },\n //确定选中--回显 \n checkPointBtn: function checkPointBtn(val, type) {\n this.form.level = '';\n // type==1 检查部位 ; 2 问题分类 \t3,通知人\t\t\t\n if (type == 1) {\n this.form.enterpriseSn = \"\";\n this.form.enterpriseName = \"\";\n this.form.changeId = \"\";\n // console.log(val, type)\n this.changePeopleIndex = null;\n this.areaData = val[0];\n __f__(\"log\", this.checkPointList, val, this.personList, \" at pages/projectEnd/safeSame/addIssue.vue:794\");\n this.form.regionId = val[0].id;\n var arr = JSON.parse(JSON.stringify(val[0].parents));\n var obj = {\n id: val[0].id,\n regionName: val[0].regionName\n };\n arr.push(obj);\n //获取选中的字符串 名称\n var regionName = arr.map(function (item, index) {\n return item.regionName;\n }).join(\"/\");\n this.checkPointName = regionName;\n this.form.regionName = regionName;\n this.form.changeId = val[0].dutyId;\n this.notifier = val[0].intendanceNames;\n this.form.notifyPerson = val[0].intendanceIds;\n // 重置检查部位\n this.dealFalseCheck(this.checkPointList);\n this.$refs.locationTree._reTreeList();\n // 分包单位数据拿取\n this.subpackageLsit = val[0].enterpriseInfos;\n this.personUpdateList = [];\n // 整改人数据拿取\n // this.personUpdateList = val[0].systemUsers\n // this.personUpdateList.forEach((item, index) => {\n // \tif (item.userId == val[0].dutyId) {\n // \t\tthis.changePeopleIndex = index\n // \t}\n // });\n this.getReviewPeopleList();\n } else if (type == 2) {\n __f__(\"log\", '选择问题描述的数据', val, \" at pages/projectEnd/safeSame/addIssue.vue:827\");\n //设置问题描述\n this.form.dangerItemContent = val[0].dangerName;\n this.form.dangerItemId = val[0].id;\n this.form.level = val[0].level;\n this.form.remark = val[0].remark; //整改要求\n //设置问题类型\n if (val[0].parents.length == 0) {\n this.form.dangerTypeId = val[0].id;\n this.issueName = val[0].dangerName;\n } else {\n this.form.dangerTypeId = val[0].parents[0].id;\n this.issueName = val[0].parents[0].dangerName + '/' + val[0].parents[1].dangerName + '/' + val[0].dangerName;\n this.form.dangerName = val[0].dangerName;\n }\n } else if (type == 3) {\n __f__(\"log\", val, \" at pages/projectEnd/safeSame/addIssue.vue:844\");\n this.notifier = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n this.form.notifyPerson = val.map(function (item, index) {\n return item.workerName;\n }).join(',');\n }\n },\n //获取问题分类\n getIssueList: function getIssueList() {\n var _this5 = this;\n this.sendRequest({\n url: 'xmgl/xzSecurityDangerTypeRecord/selectDangerTypeAndItemList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n recordStatus: 0\n },\n success: function success(res) {\n if (res.result.length > 0) {\n res.result.forEach(function (item) {\n if (item.children && item.children.length > 0) {\n item.children.forEach(function (itm) {\n if (itm.itemList && itm.itemList.length > 0) {\n itm.itemList.forEach(function (item2) {\n item2.dangerName = item2.content;\n });\n itm.children = itm.itemList;\n }\n });\n }\n });\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:877\");\n _this5.issueList = res.result;\n }\n }\n });\n },\n //补充说明\n supplementTextarea: function supplementTextarea(e) {\n this.form.dangerDesc = e.detail.value;\n },\n //整改要求\n claimTextarea: function claimTextarea(e) {\n this.form.remark = e.detail.value;\n },\n //事件描述\n eventDescription: function eventDescription(e) {\n this.form.addedDescription = e.detail.value;\n },\n //巡检楼层\n eventfloor: function eventfloor(e) {\n __f__(\"log\", '巡检楼层---', e, \" at pages/projectEnd/safeSame/addIssue.vue:899\");\n var input = e.detail.value;\n this.form.floor = parseInt(input); // 或者 this.form.floor = parseInt(input);\n },\n //获取分包公司\n getSubpackageLsit: function getSubpackageLsit() {\n var _this6 = this;\n var data = {\n // enterpriseTypeId: this.checkType,\n pageNo: 1,\n pageSize: 999,\n projectSn: this.projectSn\n };\n this.sendRequest({\n url: 'xmgl/projectEnterprise/list',\n method: 'post',\n data: data,\n success: function success(res) {\n if (res.result.records.length > 0) {\n _this6.subpackageLsit = res.result.records;\n } else {\n _this6.subpackageLsit = [];\n }\n }\n });\n },\n //下拉选择回显\n bindPickerChange: function bindPickerChange(e, type) {\n __f__(\"log\", e, \" at pages/projectEnd/safeSame/addIssue.vue:927\");\n //type ==1 问题等级;2紧急情况;3检查人;4 检查时间;5整改时限; 6整改人; 7复查人; 8核验人;\n if (type == 1) {\n this.issueGradeIndex = e.detail.value;\n this.form.level = this.issueGradeList[e.detail.value].value;\n } else if (type == 2) {\n this.urgencyIndex = e.detail.value;\n this.form.urgentLevel = this.urgencyList[e.detail.value].value;\n } else if (type == 3) {\n this.inspectManIndex = e.detail.value;\n this.form.inspectManId = this.personList[e.detail.value].userId;\n } else if (type == 'startTime') {\n this.form.inspectTime = e.f3;\n } else if (type == 'startTime2') {\n this.form.changeLimitTime = e.f3;\n } else if (type == 6) {\n this.changePeopleIndex = e.detail.value;\n this.form.changeId = this.personUpdateList[e.detail.value].userId;\n __f__(\"log\", this.changePeopleIndex, this.form.changeId, \" at pages/projectEnd/safeSame/addIssue.vue:945\");\n } else if (type == 7) {\n this.reviewIndex = e.detail.value;\n this.form.reviewId = this.reviewList[e.detail.value].userId;\n } else if (type == 8) {\n this.verifyManIndex = e.detail.value;\n this.form.verifyManId = this.personList[e.detail.value].userId;\n }\n },\n //获取人员列表--- 检查人、整改人、复查人、核验人、通知人\n getPersonList: function getPersonList() {\n var _this7 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:966\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this7.personList, \" at pages/projectEnd/safeSame/addIssue.vue:968\");\n _this7.personList = res.result;\n var index = _this7.personList.findIndex(function (item) {\n return item.userId == _this7.userInfo.userId;\n });\n if (index != -1) {\n _this7.verifyManIndex = index;\n _this7.form.verifyManId = _this7.personList[index].userId;\n } else {\n _this7.defaultAuditPerson = _this7.userInfo.realName;\n _this7.form.verifyManId = _this7.userInfo.userId;\n }\n } else {\n _this7.personList = [];\n }\n }\n });\n },\n //获取人员列表--- 整改人\n getPersonUpdateList: function getPersonUpdateList() {\n var _this8 = this;\n this.sendRequest({\n url: 'xmgl/systemUser/getProjectChilderSystemUserList',\n method: 'post',\n data: {\n projectSn: this.projectSn,\n enterpriseId: this.unitEnterpriseId\n },\n success: function success(res) {\n __f__(\"log\", res.result, \" at pages/projectEnd/safeSame/addIssue.vue:997\");\n if (res.result.length > 0) {\n __f__(\"log\", '检查人员列表', _this8.personList, \" at pages/projectEnd/safeSame/addIssue.vue:999\");\n _this8.personUpdateList = res.result;\n } else {\n _this8.personUpdateList = [];\n }\n }\n });\n },\n //选择的分包公司\n checkSubpackage: function checkSubpackage(val) {\n var _this9 = this;\n // if (this.checkType == 1) {\n this.form.enterpriseSn = val.enterpriseSn;\n this.form.enterpriseName = val.enterpriseName;\n this.unitEnterpriseId = val.id;\n this.form.changeId = \"\";\n this.changePeopleIndex = null;\n this.isShowPicker = false;\n this.$nextTick(function () {\n _this9.isShowPicker = true;\n });\n var newArr = [];\n if (this.areaData.systemUsers) {\n this.areaData.systemUsers.filter(function (item) {\n if (item.userId && item.enterpriseId == _this9.unitEnterpriseId) {\n newArr.push(item);\n }\n });\n this.personUpdateList = newArr;\n }\n // this.getPersonUpdateList();\n // } else {\n // \tthis.form.enterpriseSn = val.enterpriseSn;\n // \tthis.form.enterpriseName = val.enterpriseName;\n // }\n this.unitDialog = false;\n },\n //删除---公用\n deletesBtn: function deletesBtn(type) {\n window.event.stopPropagation();\n //type==1 分包单位\n if (type == 1) {\n this.form.enterpriseSn = '';\n this.form.enterpriseName = '';\n }\n },\n //现场整改是否完成\n switchChange: function switchChange(e) {\n if (e.detail.value) {\n this.form.status = 5;\n } else {\n this.form.status = 2;\n }\n },\n //选择分包单位\n clickUnit: function clickUnit() {\n this.unitDialog = true;\n // this.getSubpackageLsit();\n },\n //切换分包商\n checkTypeBtn: function checkTypeBtn(type) {\n this.checkType = type;\n this.getSubpackageLsit();\n },\n //上传附件\n uploadImg: function uploadImg(type) {\n var that = this;\n if (type == 1) {\n uni.chooseImage({\n count: 5 - that.imgFileList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.imgFileList.push(data);\n uni.getImageInfo({\n src: tempFilePaths[0],\n success: function success(resInfo) {\n __f__(\"log\", '传过去啦 resInfo', resInfo, \" at pages/projectEnd/safeSame/addIssue.vue:1091\");\n that.imgList = {\n imgUrl: tempFilePaths[0],\n imgWidth: resInfo.width,\n imgHeight: resInfo.height\n // team:'班组人员',\n // name: '张三'\n };\n\n that.openImg = true;\n }\n });\n that.openImg = false;\n }\n });\n }\n });\n } else if (type == 2) {\n uni.chooseImage({\n count: 1,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n if (that.imgDialogUrl.length >= 1) {\n that.imgDialogUrl[0].url = data.url;\n that.imgDialogUrl[0].name = data.name;\n } else {\n that.imgDialogUrl.push(data);\n }\n __f__(\"log\", \"上传图片的信息:\", that.imgDialogUrl, \" at pages/projectEnd/safeSame/addIssue.vue:1129\");\n }\n });\n }\n });\n } else {\n uni.chooseImage({\n count: 1 - that.mapImgList.length,\n success: function success(res) {\n var tempFilePaths = res.tempFilePaths;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: tempFilePaths[0],\n name: 'files',\n success: function success(uploadFileRes) {\n var data = {\n name: JSON.parse(uploadFileRes.data).data[0].filename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.mapImgList.push(data);\n }\n });\n }\n });\n }\n },\n //删除附件\n deleteImg: function deleteImg(val, type) {\n var that = this;\n uni.showModal({\n title: '提示',\n content: '确定删除该附件吗?',\n success: function success(res) {\n if (res.confirm) {\n if (type == 1) {\n var fileArr = JSON.parse(JSON.stringify(that.imgFileList));\n fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n fileArr.splice(index, 1);\n }\n });\n that.imgFileList = fileArr;\n } else if (type == 2) {\n var _fileArr = JSON.parse(JSON.stringify(that.videoFileList));\n _fileArr.forEach(function (item, index) {\n if (item.url == val.url) {\n _fileArr.splice(index, 1);\n }\n });\n that.videoFileList = _fileArr;\n }\n } else if (res.cancel) {\n __f__(\"log\", '用户点击取消', \" at pages/projectEnd/safeSame/addIssue.vue:1185\");\n }\n }\n });\n },\n //上传视频\n uploadVideo: function uploadVideo() {\n var that = this;\n uni.chooseVideo({\n count: 5 - that.videoFileList.length,\n sourceType: ['camera', 'album'],\n compressed: false,\n success: function success(res) {\n var url = res.tempFilePath;\n uni.uploadFile({\n url: that.url_config + 'upload/image',\n //仅为示例,非真实的接口地址\n filePath: url,\n name: 'files',\n success: function success(uploadFileRes) {\n var obj = {\n name: JSON.parse(uploadFileRes.data).data[0].fileInfo.originalFilename,\n url: JSON.parse(uploadFileRes.data).data[0].imageUrl\n };\n that.videoFileList.push(obj);\n __f__(\"log\", '上传视频后的数据', that.videoFileList, \" at pages/projectEnd/safeSame/addIssue.vue:1211\");\n }\n });\n }\n });\n },\n //查看视频\n playVideo: function playVideo(url, type) {\n uni.navigateTo({\n url: '../carWashManage/mediaPlay?url=' + url + '&type=' + type\n });\n },\n //预览图片\n previewImage: function previewImage(url) {\n uni.previewImage({\n urls: [url]\n });\n },\n //新增保存\n addSaveBtn: function addSaveBtn() {\n var _this10 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var arr, arr2, data, pointArr, i, obj, data2;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n arr = [], arr2 = [];\n _this10.videoFileList.forEach(function (item) {\n arr.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n _this10.imgFileList.forEach(function (item) {\n arr2.push(item.name + \"*\" + _this10.url_config + 'image/' + item.url);\n });\n // this.form.fileUrl = this.videoFileList.length>0?JSON.stringify(this.videoFileList):'';\n // this.form.imageUrl = this.imgFileList.length>0?JSON.stringify(this.imgFileList):'';\n _this10.form.fileUrl = arr.join(',');\n _this10.form.imageUrl = arr2.join(',');\n data = JSON.parse(JSON.stringify(_this10.form));\n if (data.regionId) {\n _context.next = 9;\n break;\n }\n uni.showToast({\n title: '请选择检查部位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 9:\n if (!(!data.dangerItemContent && _this10.typeCheck == \"type1\")) {\n _context.next = 14;\n break;\n }\n uni.showToast({\n title: '请选择问题描述',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 14:\n if (data.dangerItemContent) {\n _context.next = 17;\n break;\n }\n uni.showToast({\n title: '请选择排查分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 17:\n if (!(!data.dangerTypeId && _this10.typeCheck == \"type1\")) {\n _context.next = 20;\n break;\n }\n uni.showToast({\n title: '请选择问题分类',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 20:\n if (data.inspectTime) {\n _context.next = 23;\n break;\n }\n uni.showToast({\n title: '请选择检查时间',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 23:\n if (data.enterpriseName) {\n _context.next = 26;\n break;\n }\n uni.showToast({\n title: '请选择分包单位',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 26:\n if (!(!data.changeLimitTime && _this10.typeCheck == \"type1\")) {\n _context.next = 29;\n break;\n }\n uni.showToast({\n title: '请选择整改时限',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 29:\n if (!(!data.changeId && _this10.typeCheck == \"type1\")) {\n _context.next = 32;\n break;\n }\n uni.showToast({\n title: '请选择整改人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 32:\n if (!(!data.reviewId && _this10.typeCheck == \"type1\")) {\n _context.next = 35;\n break;\n }\n uni.showToast({\n title: '请选择复查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 35:\n if (!(!data.verifyManId && _this10.typeCheck == \"type1\")) {\n _context.next = 38;\n break;\n }\n uni.showToast({\n title: '请选择核查人',\n icon: 'none'\n });\n return _context.abrupt(\"return\");\n case 38:\n ;\n data.level = data.level == 0 ? Number(data.level) + 1 : data.level;\n data.urgentLevel = data.urgentLevel == 0 ? Number(data.urgentLevel) + 1 : data.urgentLevel;\n data.projectSn = _this10.projectSn;\n data.inspectManId = _this10.userInfo.userId;\n data.creatorId = _this10.userInfo.userId;\n data.dangerItemContent = _this10.issueName;\n if (_this10.engineeringId) data.engineeringId = _this10.engineeringId;\n if (_this10.type) data.type = _this10.type;\n pointArr = [];\n for (i = 0; i < _this10.pointList.length; i++) {\n obj = _this10.pointList[i].x + '*' + _this10.pointList[i].y;\n pointArr.push(obj);\n }\n data.measurePoints = pointArr.join(',');\n __f__(\"log\", 'data.measurePoints=============', data.measurePoints, \" at pages/projectEnd/safeSame/addIssue.vue:1341\");\n if (!(_this10.typeCheck == \"type1\")) {\n _context.next = 56;\n break;\n }\n __f__(\"log\", data, \" at pages/projectEnd/safeSame/addIssue.vue:1343\");\n // 安全问题\n _this10.sendRequest({\n url: 'xmgl/xzSecurityQualityInspectionRecord/add',\n method: 'post',\n data: data,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/safeSame/addIssue.vue:1350\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n _context.next = 64;\n break;\n case 56:\n __f__(\"log\", _this10.taskId, \" at pages/projectEnd/safeSame/addIssue.vue:1369\");\n __f__(\"log\", _this10.itemId, \" at pages/projectEnd/safeSame/addIssue.vue:1370\");\n // 排查记录\n data2 = {\n dangerDesc: data.dangerDesc,\n dangerItemContent: _this10.issueName,\n dangerItemId: data.dangerItemId,\n dangerTypeId: data.dangerTypeId,\n enterpriseName: data.enterpriseName,\n enterpriseSn: data.enterpriseSn,\n fileUrl: data.fileUrl,\n imageUrl: data.imageUrl,\n inspectManId: data.inspectManId,\n inspectTime: data.inspectTime,\n projectSn: data.projectSn,\n recordType: 2,\n regionId: data.regionId,\n regionName: data.regionName,\n routineInspect: 0,\n subsectionId: data.subsectionId,\n //分部工程\n subentryId: data.subentryId,\n //分项工程\n floor: data.floor,\n //巡检楼层\n addedDescription: data.addedDescription,\n //事件描述\n taskId: _this10.taskId || null,\n // 任务ID\n itemId: _this10.itemId || null // 任务子ID\n };\n\n if (_this10.engineeringId) data2.engineeringId = _this10.engineeringId;\n if (_this10.type) data2.type = _this10.type;\n __f__(\"log\", data.taskId, \" at pages/projectEnd/safeSame/addIssue.vue:1398\");\n _context.next = 64;\n return _this10.sendRequest({\n url: 'xmgl/xzSecurityQualityInspectionRecord/add',\n method: 'post',\n data: data2,\n success: function success(res) {\n __f__(\"log\", res, \" at pages/projectEnd/safeSame/addIssue.vue:1404\");\n if (res.code == 200) {\n uni.showToast({\n title: '保存成功'\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: 1\n });\n }, 1200);\n } else {\n uni.showToast({\n title: res.message,\n icon: 'none'\n });\n }\n }\n });\n case 64:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 切换tab\n radioChange: function radioChange(value) {\n var _this11 = this;\n this.typeCheck = value;\n this.checkedTab = value;\n __f__(\"log\", '切换tab', this.form, \" at pages/projectEnd/safeSame/addIssue.vue:1430\");\n // 重制内容\n this.form = {\n regionId: \"\",\n // 检查部位\n regionName: \"\",\n dangerItemContent: \"\",\n dangerItemId: \"\",\n dangerTypeId: \"\",\n dangerDesc: \"\",\n remark: \"\",\n routineId: 0,\n level: 0,\n urgentLevel: 0,\n inspectManId: \"\",\n inspectTime: (0, _tool.dateformat)(new Date()),\n enterpriseSn: \"\",\n enterpriseName: \"\",\n changeLimitTime: \"\",\n changeId: \"\",\n reviewId: \"\",\n verifyManId: \"\",\n notifyPerson: [],\n status: 2,\n // 现场整改状态 2未完成 5已完成\n measurePoints: [],\n imageUrl: \"\",\n fileUrl: \"\",\n recordType: 1\n // taskId:'',\n // itemId:''\n };\n\n this.issueName = '';\n this.checkPointName = \"\";\n this.videoFileList = [];\n this.imgFileList = [];\n this.subsectionIndex = -1;\n this.subentryIndex = -1;\n this.changePeopleIndex = null;\n // 分包单位数据拿取\n this.subpackageLsit = [];\n // 整改人数据拿取\n this.personUpdateList = [];\n var index = this.personList.findIndex(function (item) {\n return item.userId == _this11.userInfo.userId;\n });\n if (index != -1) {\n this.verifyManIndex = index;\n this.form.verifyManId = this.personList[index].userId;\n } else {\n this.defaultAuditPerson = this.userInfo.realName;\n this.form.verifyManId = this.userInfo.userId;\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcHJvamVjdEVuZC9zYWZlU2FtZS9hZGRJc3N1ZS52dWUiXSwibmFtZXMiOlsiY29tcG9uZW50cyIsInRraVRyZWUiLCJjYW52ZXJzQ29tIiwiZGF0ZVRpbWVQaWNja2VyIiwiZGF0YSIsImlzU2hvd1BpY2tlciIsInN0YXJ0VGltZSIsImZvcm1hdCIsInN0YXJ0VGltZTIiLCJjaGVja2VkVGFiIiwiaW1nTGlzdCIsIm9wZW5JbWciLCJiYXNlNjRJbWFnZSIsImltZ0luZGV4IiwicG9pbnRMaXN0IiwibG9jYXRpb24iLCJsZWZ0IiwidG9wIiwieCIsInkiLCJpbWdEaWFsb2dVcmxTdSIsImltZ0RpYWxvZ1VybFRleHQiLCJpbWdEaWFsb2ciLCJpbWdEaWFsb2dVcmwiLCJwYWdlVGl0bGUiLCJwcm9qZWN0U24iLCJjaGVja1R5cGUiLCJmb3JtIiwicmVnaW9uSWQiLCJyZWdpb25OYW1lIiwiZGFuZ2VySXRlbUNvbnRlbnQiLCJkYW5nZXJJdGVtSWQiLCJkYW5nZXJUeXBlSWQiLCJkYW5nZXJEZXNjIiwicmVtYXJrIiwicm91dGluZUlkIiwibGV2ZWwiLCJ1cmdlbnRMZXZlbCIsImluc3BlY3RNYW5JZCIsImluc3BlY3RUaW1lIiwiZW50ZXJwcmlzZVNuIiwiZW50ZXJwcmlzZU5hbWUiLCJjaGFuZ2VMaW1pdFRpbWUiLCJjaGFuZ2VJZCIsInJldmlld0lkIiwidmVyaWZ5TWFuSWQiLCJub3RpZnlQZXJzb24iLCJzdGF0dXMiLCJtZWFzdXJlUG9pbnRzIiwiaW1hZ2VVcmwiLCJmaWxlVXJsIiwicmVjb3JkVHlwZSIsImRhbmdlck5hbWUiLCJzdWJzZWN0aW9uSWQiLCJzdWJlbnRyeUlkIiwiZmxvb3IiLCJhZGRlZERlc2NyaXB0aW9uIiwidGFza0lkIiwiaXRlbUlkIiwiY2hlY2tQb2ludExpc3QiLCJjaGVja1BvaW50TmFtZSIsImlzc3VlTGlzdCIsImlzc3VlTmFtZSIsImlzc3VlR3JhZGVMaXN0IiwibmFtZSIsInZhbHVlIiwiaXNzdWVHcmFkZUluZGV4IiwidXJnZW5jeUxpc3QiLCJ1cmdlbmN5SW5kZXgiLCJwZXJzb25VcGRhdGVMaXN0IiwicGVyc29uTGlzdCIsImluc3BlY3RNYW5JbmRleCIsImNoYW5nZVBlb3BsZUluZGV4IiwidmVyaWZ5TWFuSW5kZXgiLCJyZXZpZXdJbmRleCIsIm5vdGlmaWVyIiwidW5pdERpYWxvZyIsInN1YnBhY2thZ2VMc2l0IiwidmlkZW9GaWxlTGlzdCIsImltZ0ZpbGVMaXN0IiwibWFwSW1nTGlzdCIsImJhc2ljSW5mbyIsInNlbGVjdEluZGV4IiwidXNlckluZm8iLCJ0eXBlQ2hlY2siLCJsaXN0RGF0YSIsInN1Ykxpc3REYXRhIiwic3Vic2VjdGlvbkluZGV4Iiwic3ViZW50cnlJbmRleCIsInVuaXRFbnRlcnByaXNlSWQiLCJkZWZhdWx0QXVkaXRQZXJzb24iLCJyZXZpZXdMaXN0IiwiYXJlYURhdGEiLCJlbmdpbmVlcmluZ0lkIiwidHlwZSIsIm9uTG9hZCIsIm1ldGhvZHMiLCJnZXRSZXZpZXdQZW9wbGVMaXN0IiwidXJsIiwibWV0aG9kIiwicXVhbGl0eVJlZ2lvbklkIiwicXVhbGl0eVJlZ2lvbkJpbmRUeXBlIiwiaXNTdXBlcnZpc2luZ1JvbGVOYW1lIiwic3VjY2VzcyIsImdldERhdGUiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJpbWdVcmwiLCJpbWdVcGxvYWQiLCJ0aGF0IiwiaGVhZGVyIiwiaW1nRGlhbG9nQnRuIiwicG9pbnRTaG93IiwicmVtb3ZlUG9pbnQiLCJwb2ludEltYWdlIiwicG9pbnRUZXh0Iiwib3BlbkltZ0RpYWxvZyIsInRvZ2dsZSIsImNoZWNrU3ViTGlzdERhdGEiLCJnZXRQcm9ncmVzc0xpc3REYXRhIiwiZ2V0Q2hlY2tQb2ludExpc3QiLCJub3RTdXBlcnZpc2luZ1VuaXQiLCJkZWFsRmFsc2VDaGVjayIsImFyciIsIml0ZW0iLCJjaGVja1BvaW50QnRuIiwiaWQiLCJnZXRJc3N1ZUxpc3QiLCJyZWNvcmRTdGF0dXMiLCJyZXMiLCJpdG0iLCJpdGVtMiIsInN1cHBsZW1lbnRUZXh0YXJlYSIsImNsYWltVGV4dGFyZWEiLCJldmVudERlc2NyaXB0aW9uIiwiZXZlbnRmbG9vciIsImdldFN1YnBhY2thZ2VMc2l0IiwicGFnZU5vIiwicGFnZVNpemUiLCJiaW5kUGlja2VyQ2hhbmdlIiwiZ2V0UGVyc29uTGlzdCIsImdldFBlcnNvblVwZGF0ZUxpc3QiLCJlbnRlcnByaXNlSWQiLCJjaGVja1N1YnBhY2thZ2UiLCJuZXdBcnIiLCJkZWxldGVzQnRuIiwid2luZG93Iiwic3dpdGNoQ2hhbmdlIiwiY2xpY2tVbml0IiwiY2hlY2tUeXBlQnRuIiwidXBsb2FkSW1nIiwidW5pIiwiY291bnQiLCJmaWxlUGF0aCIsInNyYyIsImltZ1dpZHRoIiwiaW1nSGVpZ2h0IiwiZGVsZXRlSW1nIiwidGl0bGUiLCJjb250ZW50IiwiZmlsZUFyciIsInVwbG9hZFZpZGVvIiwic291cmNlVHlwZSIsImNvbXByZXNzZWQiLCJvcmlnaW5hbEZpbGVuYW1lIiwicGxheVZpZGVvIiwicHJldmlld0ltYWdlIiwidXJscyIsImFkZFNhdmVCdG4iLCJhcnIyIiwiaWNvbiIsInBvaW50QXJyIiwib2JqIiwic2V0VGltZW91dCIsImRlbHRhIiwiZGF0YTIiLCJyb3V0aW5lSW5zcGVjdCIsInJhZGlvQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUE0YUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBR0E7RUFDQUE7SUFDQUM7SUFDQUM7SUFDQUM7RUFFQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO1FBQ0FDO01BQ0E7TUFDQUM7UUFDQUQ7TUFDQTtNQUNBRTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQUE7TUFDQUM7UUFDQUM7UUFBQTtRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUFBO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQUE7UUFDQUM7UUFBQTtRQUNBQztRQUFBO1FBQ0FDO1FBQUE7UUFDQUM7UUFBQTtRQUNBQztNQUNBOztNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7UUFDQUM7UUFDQUM7TUFDQSxHQUNBO1FBQ0FEO1FBQ0FDO01BQ0EsR0FDQTtRQUNBRDtRQUNBQztNQUNBLEdBQ0E7UUFDQUQ7UUFDQUM7TUFDQSxFQUNBO01BQUE7TUFDQUM7TUFDQUM7UUFDQUg7UUFDQUM7TUFDQSxHQUNBO1FBQ0FEO1FBQ0FDO01BQ0EsR0FDQTtRQUNBRDtRQUNBQztNQUNBLEVBQ0E7TUFBQTtNQUNBRztNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFDQWhDO01BQUE7TUFDQUM7TUFBQTtNQUNBZ0M7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNBO0VBR0FDO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQ0FDO1FBQ0FDO1FBQ0EvRjtVQUNBcUI7VUFDQTtVQUNBMkU7VUFDQUM7VUFDQUM7UUFDQTtRQUNBQztVQUNBO1VBQ0E7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7TUFDQTtRQUNBO01BQUE7TUFFQUM7TUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUVBO0lBQ0E7SUFFQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0FDO01BQ0E7UUFDQWxHO01BQ0E7TUFFQTtRQUNBc0Y7UUFDQUM7UUFDQVk7VUFDQTtRQUNBOztRQUNBM0c7UUFDQW1HO1VBQ0E7VUFDQTtVQUNBTztRQUNBO01BQ0E7SUFDQTtJQUNBRTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0FqRztVQUNBQztRQUNBO1FBQ0E7TUFDQTtJQUVBO0lBQ0E7SUFDQWlHO01BQ0E7TUFDQTtJQUVBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO1FBQUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBO1VBQUE7VUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUFBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQ0F0QjtRQUNBQztRQUNBL0Y7VUFDQXFCO1FBQ0E7UUFDQThFO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7Y0FDQTtjQUNBO2dCQUNBO2dCQUNBO2NBQ0E7Z0JBQ0E7Y0FDQTtZQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWtCO01BQUE7TUFDQTtRQUNBdkI7UUFDQUM7UUFDQS9GO1VBQ0FxQjtVQUNBaUc7UUFDQTtRQUNBbkI7VUFDQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBb0I7TUFBQTtNQUNBQztRQUNBO1VBQ0FDO1VBQ0FBO1VBQ0E7UUFDQTtVQUNBQTtVQUNBQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFDQUM7VUFDQWxHO1FBQ0E7UUFDQStGO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7UUFDQTtRQUNBO1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0Esa0dBQ0F4RTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0E7VUFDQTtRQUNBO01BQ0E7SUFFQTtJQUNBO0lBQ0E0RTtNQUFBO01BQ0E7UUFDQTlCO1FBQ0FDO1FBQ0EvRjtVQUNBcUI7VUFDQXdHO1FBQ0E7UUFDQTFCO1VBQ0E7WUFDQTJCO2NBQ0E7Z0JBQ0FMO2tCQUNBO29CQUNBTTtzQkFDQUM7b0JBQ0E7b0JBQ0FEO2tCQUNBO2dCQUNBO2NBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUdBO0lBQ0FFO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtRQUNBQztRQUNBQztRQUNBbEg7TUFDQTtNQUNBO1FBQ0F5RTtRQUNBQztRQUNBL0Y7UUFDQW1HO1VBQ0E7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBO0lBQ0FxQztNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFFQTtJQUdBO0lBQ0FDO01BQUE7TUFDQTtRQUNBM0M7UUFDQUM7UUFDQS9GO1VBQ0FxQjtRQUNBO1FBQ0E4RTtVQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7Y0FDQTtZQUNBO1lBQ0E7Y0FDQTtjQUNBO1lBQ0E7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQTtJQUNBdUM7TUFBQTtNQUNBO1FBQ0E1QztRQUNBQztRQUNBL0Y7VUFDQXFCO1VBQ0FzSDtRQUNBO1FBQ0F4QztVQUNBO1VBQ0E7WUFDQTtZQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBSUE7SUFDQXlDO01BQUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQ0FDO1VBQ0E7UUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUdBO0lBQ0FDO01BQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtNQUNBO1FBQ0FDO1VBQ0FDO1VBQ0FsRDtZQUNBO1lBQ0FpRDtjQUNBdEQ7Y0FBQTtjQUNBd0Q7Y0FDQTFGO2NBQ0F1QztnQkFDQTtrQkFDQXZDO2tCQUNBa0M7Z0JBQ0E7Z0JBQ0FZO2dCQUNBMEM7a0JBQ0FHO2tCQUNBcEQ7b0JBQ0E7b0JBQ0FPO3NCQUNBRjtzQkFDQWdEO3NCQUNBQztzQkFDQTtzQkFDQTtvQkFDQTs7b0JBQ0EvQztrQkFDQTtnQkFDQTtnQkFDQUE7Y0FFQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO1FBQ0EwQztVQUNBQztVQUNBbEQ7WUFDQTtZQUNBaUQ7Y0FDQXREO2NBQUE7Y0FDQXdEO2NBQ0ExRjtjQUNBdUM7Z0JBQ0E7a0JBQ0F2QztrQkFDQWtDO2dCQUNBO2dCQUNBO2tCQUNBWTtrQkFDQUE7Z0JBRUE7a0JBQ0FBO2dCQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBMEM7VUFDQUM7VUFDQWxEO1lBQ0E7WUFDQWlEO2NBQ0F0RDtjQUFBO2NBQ0F3RDtjQUNBMUY7Y0FDQXVDO2dCQUNBO2tCQUNBdkM7a0JBQ0FrQztnQkFDQTtnQkFDQVk7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtNQUVBO0lBR0E7SUFDQTtJQUNBZ0Q7TUFDQTtNQUNBTjtRQUNBTztRQUNBQztRQUNBekQ7VUFDQTtZQUNBO2NBQ0E7Y0FDQTBEO2dCQUNBO2tCQUNBQTtnQkFDQTtjQUNBO2NBQ0FuRDtZQUNBO2NBQ0E7Y0FDQW1EO2dCQUNBO2tCQUNBQTtnQkFDQTtjQUNBO2NBQ0FuRDtZQUNBO1VBRUE7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUVBO0lBQ0E7SUFDQW9EO01BQ0E7TUFDQVY7UUFDQUM7UUFDQVU7UUFDQUM7UUFDQTdEO1VBQ0E7VUFDQWlEO1lBQ0F0RDtZQUFBO1lBQ0F3RDtZQUNBMUY7WUFDQXVDO2NBQ0E7Z0JBQ0F2QyxzREFDQXFHO2dCQUNBbkU7Y0FDQTtjQUNBWTtjQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0F3RDtNQUNBZDtRQUNBdEQ7TUFDQTtJQUNBO0lBQ0E7SUFDQXFFO01BQ0FmO1FBQ0FnQjtNQUNBO0lBQ0E7SUFHQTtJQUNBQztNQUFBO01BQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUNBN0MsVUFDQThDO2dCQUdBO2tCQUNBOUM7Z0JBQ0E7Z0JBQ0E7a0JBQ0E4QztnQkFDQTtnQkFDQTtnQkFDQTtnQkFDQTtnQkFDQTtnQkFDQXRLO2dCQUFBLElBQ0FBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBb0o7a0JBQ0FPO2tCQUNBWTtnQkFDQTtnQkFBQTtjQUFBO2dCQUFBLE1BR0E7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0FuQjtrQkFDQU87a0JBQ0FZO2dCQUNBO2dCQUFBO2NBQUE7Z0JBQUEsSUFFQXZLO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBb0o7a0JBQ0FPO2tCQUNBWTtnQkFDQTtnQkFBQTtjQUFBO2dCQUFBLE1BR0E7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0FuQjtrQkFDQU87a0JBQ0FZO2dCQUNBO2dCQUFBO2NBQUE7Z0JBQUEsSUFVQXZLO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBb0o7a0JBQ0FPO2tCQUNBWTtnQkFDQTtnQkFBQTtjQUFBO2dCQUFBLElBR0F2SztrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQW9KO2tCQUNBTztrQkFDQVk7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFBQSxNQUdBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBbkI7a0JBQ0FPO2tCQUNBWTtnQkFDQTtnQkFBQTtjQUFBO2dCQUFBLE1BR0E7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0FuQjtrQkFDQU87a0JBQ0FZO2dCQUNBO2dCQUFBO2NBQUE7Z0JBQUEsTUFHQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQW5CO2tCQUNBTztrQkFDQVk7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFBQSxNQUdBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBbkI7a0JBQ0FPO2tCQUNBWTtnQkFDQTtnQkFBQTtjQUFBO2dCQUVBO2dCQUNBdks7Z0JBQ0FBO2dCQUNBQTtnQkFDQUE7Z0JBQ0FBO2dCQUNBQTtnQkFDQTtnQkFDQTtnQkFDQXdLO2dCQUNBO2tCQUNBQyxNQUNBLHlCQUNBLE1BQ0E7a0JBQ0FEO2dCQUNBO2dCQUNBeEs7Z0JBQ0E7Z0JBQUEsTUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQTtnQkFDQTtnQkFDQTtrQkFDQThGO2tCQUNBQztrQkFDQS9GO2tCQUNBbUc7b0JBQ0E7b0JBQ0E7c0JBQ0FpRDt3QkFDQU87c0JBQ0E7c0JBQ0FlO3dCQUNBdEI7MEJBQ0F1Qjt3QkFDQTtzQkFDQTtvQkFDQTtzQkFDQXZCO3dCQUNBTzt3QkFDQVk7c0JBQ0E7b0JBQ0E7a0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBQUE7Y0FBQTtnQkFFQTtnQkFDQTtnQkFDQTtnQkFDQUs7a0JBQ0EvSTtrQkFDQUg7a0JBQ0FDO2tCQUNBQztrQkFDQVM7a0JBQ0FEO2tCQUNBVTtrQkFDQUQ7a0JBQ0FYO2tCQUNBQztrQkFDQWQ7a0JBQ0EwQjtrQkFDQXZCO2tCQUNBQztrQkFDQW9KO2tCQUNBNUg7a0JBQUE7a0JBQ0FDO2tCQUFBO2tCQUNBQztrQkFBQTtrQkFDQUM7a0JBQUE7a0JBQ0FDO2tCQUFBO2tCQUNBQztnQkFDQTs7Z0JBRUE7Z0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FDQTtrQkFDQXdDO2tCQUNBQztrQkFDQS9GO2tCQUNBbUc7b0JBQ0E7b0JBQ0E7c0JBQ0FpRDt3QkFDQU87c0JBQ0E7c0JBQ0FlO3dCQUNBdEI7MEJBQ0F1Qjt3QkFDQTtzQkFDQTtvQkFDQTtzQkFDQXZCO3dCQUNBTzt3QkFDQVk7c0JBQ0E7b0JBQ0E7a0JBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFFQTtJQUVBO0lBQ0FPO01BQUE7TUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0F0SjtRQUFBO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQUE7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQTtRQUNBO01BQ0E7O01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiNzkyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDwhLS0g5paw5aKe6Zeu6aKYIC0tPlxyXG5cdDx2aWV3IGNsYXNzPVwiYWRkSXNzdWVcIj5cclxuXHRcdDxoZWFkZXJzIDpzaG93QmFjaz1cInRydWVcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkZXJOYW1lXCI+XHJcblx0XHRcdFx0e3twYWdlVGl0bGV9fVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L2hlYWRlcnM+XHJcblx0XHQ8dmlldyBjbGFzcz1cInRhYiBmbGV4MlwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYlR5cGVcIiBAY2xpY2s9XCJyYWRpb0NoYW5nZSgndHlwZTEnKVwiIDpjbGFzcz1cImNoZWNrZWRUYWI9PSd0eXBlMSc/J2NoZWNrZWRUYWInOidub0NoZWNrVGFiJ1wiPlxyXG5cdFx0XHRcdOWuieWFqOmXrumimDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWJUeXBlXCIgQGNsaWNrPVwicmFkaW9DaGFuZ2UoJ3R5cGUyJylcIiA6Y2xhc3M9XCJjaGVja2VkVGFiPT0ndHlwZTInPydjaGVja2VkVGFiJzonbm9DaGVja1RhYidcIj5cclxuXHRcdFx0XHTmjpLmn6XorrDlvZU8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0PCEtLSA8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiICB2LWlmPVwiQ09NUEFOWSAhPSAnemp3aidcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+57G75Z6L77yaPC92aWV3PlxyXG5cdFx0XHQ8dmlldz5cclxuXHRcdFx0XHQ8cmFkaW8tZ3JvdXAgQGNoYW5nZT1cInJhZGlvQ2hhbmdlXCIgY2xhc3M9XCJyYWRpby13cmFwXCI+XHJcblx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJyYWRpb1wiPlxyXG5cdFx0XHRcdFx0XHQ8cmFkaW8gdmFsdWU9XCJ0eXBlMVwiIGNoZWNrZWQ9XCJ0cnVlXCIgLz7lronlhajpl67pophcclxuXHRcdFx0XHRcdDwvbGFiZWw+XHJcblx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJyYWRpb1wiPlxyXG5cdFx0XHRcdFx0XHQ8cmFkaW8gdmFsdWU9XCJ0eXBlMlwiIC8+5o6S5p+l6K6w5b2VXHJcblx0XHRcdFx0XHQ8L2xhYmVsPlxyXG5cdFx0XHRcdDwvcmFkaW8tZ3JvdXA+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz4gLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnRcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PuajgOafpemDqOS9je+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjbGljaz1cIiRyZWZzLmxvY2F0aW9uVHJlZS5fc2hvdygpXCIgOmRpc2FibGVkPVwidHJ1ZVwiIGNsYXNzPVwicGlja2VyXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cImNoZWNrUG9pbnROYW1lPT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgZmxleDJcIiB2LWVsc2U+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDk4JTtcIiBjbGFzcz1cImVsbGlwc2lzXCI+e3tjaGVja1BvaW50TmFtZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cclxuXHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+KjwvdGV4dD7pl67popjmj4/ov7DvvJo8L3ZpZXc+XHJcblx0XHRcdFx0PHBpY2tlciA6ZGlzYWJsZWQ9XCJ0cnVlXCIgQGNsaWNrPVwiJHJlZnMuaXNzdWVUcmVlLl9zaG93KClcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmRhbmdlckl0ZW1Db250ZW50PT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3tmb3JtLmRhbmdlckl0ZW1Db250ZW50fX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWVsc2U+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+KjwvdGV4dD7mjpLmn6XliIbnsbvvvJo8L3ZpZXc+XHJcblx0XHRcdFx0PHBpY2tlciA6ZGlzYWJsZWQ9XCJ0cnVlXCIgQGNsaWNrPVwiJHJlZnMuaXNzdWVUcmVlLl9zaG93KClcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJpc3N1ZU5hbWU9PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e2lzc3VlTmFtZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+KjwvdGV4dD7pl67popjliIbnsbvvvJo8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSA8cGlja2VyIGNsYXNzPVwicGlja2VyXCIgOmRpc2FibGVkPVwidHJ1ZVwiICBAY2xpY2s9XCIkcmVmcy5pc3N1ZVRyZWUuX3Nob3coKVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJpc3N1ZU5hbWU9PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e2lzc3VlTmFtZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+IC0tPlxyXG5cdFx0XHRcdDxwaWNrZXIgY2xhc3M9XCJwaWNrZXJcIiA6ZGlzYWJsZWQ9XCJ0cnVlXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cImlzc3VlTmFtZT09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36L6T5YWlXHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0XCIgdi1lbHNlPnt7aXNzdWVOYW1lfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXgzXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+6KGl5YWF6K+05piO77yaPC92aWV3PlxyXG5cdFx0XHRcdDx0ZXh0YXJlYSBjbGFzcz1cInRleHRhcmVhXCIgbWF4bGVuZ3RoPVwiLTFcIiBwbGFjZWhvbGRlci1jbGFzcz1cImNsXCIgbmFtZT1cImluc3BlY3RDb250ZW50XCJcclxuXHRcdFx0XHRcdEBpbnB1dD0nc3VwcGxlbWVudFRleHRhcmVhJyA6dmFsdWU9XCJmb3JtLmRhbmdlckRlc2NcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpVwiPjwvdGV4dGFyZWE+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4M1wiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuaVtOaUueimgeaxgu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8dGV4dGFyZWEgY2xhc3M9XCJ0ZXh0YXJlYVwiIG1heGxlbmd0aD1cIi0xXCIgcGxhY2Vob2xkZXItY2xhc3M9XCJjbFwiIG5hbWU9XCJpbnNwZWN0Q29udGVudFwiXHJcblx0XHRcdFx0XHRAaW5wdXQ9J2NsYWltVGV4dGFyZWEnIDp2YWx1ZT1cImZvcm0ucmVtYXJrXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIj48L3RleHRhcmVhPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cclxuXHJcblx0XHRcdDwhLS0g5paw5aKe5Zub5Liq5a2X5q61IC0tPlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cIkNPTVBBTlkgIT0gJ3pqd2onXCI+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+PC90ZXh0PuWIhumDqOW3peeoi++8mjwvdmlldz5cclxuICAgICAgICA8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmNoZWNrU3ViTGlzdERhdGEoZSwxKVwiIDp2YWx1ZT1cInN1YnNlY3Rpb25JbmRleFwiIGNsYXNzPVwicGlja2VyXCIgOnJhbmdlPVwibGlzdERhdGFcIlxyXG4gICAgICAgICAgcmFuZ2Uta2V5PVwic3ViZGl2aXNpb25Qcm9qZWN0TmFtZVwiPlxyXG4gICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJzdWJzZWN0aW9uSW5kZXg9PS0xXCI+XHJcbiAgICAgICAgICAgIOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cclxuICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgIDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+XHJcbiAgICAgICAgICAgIHt7bGlzdERhdGFbc3Vic2VjdGlvbkluZGV4XT9saXN0RGF0YVtzdWJzZWN0aW9uSW5kZXhdLnN1YmRpdmlzaW9uUHJvamVjdE5hbWU6Jyd9fVxyXG4gICAgICAgICAgICA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG4gICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgIDwvcGlja2VyPlxyXG4gICAgICA8L3ZpZXc+XHJcblxyXG5cclxuICAgICAgPHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwiQ09NUEFOWSAhPSAnemp3aidcIj5cclxuICAgICAgICA8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj48L3RleHQ+5YiG6aG55bel56iL77yaPC92aWV3PlxyXG4gICAgICAgIDxwaWNrZXIgQGNoYW5nZT1cIihlKT0+Y2hlY2tTdWJMaXN0RGF0YShlLDIpXCIgOnZhbHVlPVwic3ViZW50cnlJbmRleFwiIGNsYXNzPVwicGlja2VyXCIgOnJhbmdlPVwic3ViTGlzdERhdGFcIlxyXG4gICAgICAgICAgcmFuZ2Uta2V5PVwic3ViZGl2aXNpb25Qcm9qZWN0TmFtZVwiPlxyXG4gICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJzdWJlbnRyeUluZGV4PT0tMSB8fCBzdWJMaXN0RGF0YS5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICDor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgIDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+XHJcbiAgICAgICAgICAgIHt7IHN1Ykxpc3REYXRhW3N1YmVudHJ5SW5kZXhdP3N1Ykxpc3REYXRhW3N1YmVudHJ5SW5kZXhdLnN1YmRpdmlzaW9uUHJvamVjdE5hbWUgOiAnJyB9fVxyXG4gICAgICAgICAgICA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG4gICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgIDwvcGlja2VyPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cIkNPTVBBTlkgIT0gJ3pqd2onXCI+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+PC90ZXh0PuW3oeajgOalvOWxgu+8mjwvdmlldz5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyLWNsYXNzPVwiY2xcIiBjbGFzcz1cImlucHVTdHlsZSAgdW5pLXNlbGVjdCBjbFwiIDp2YWx1ZT1cImZvcm0uZmxvb3JcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaVcIiBAaW5wdXQ9J2V2ZW50Zmxvb3InIC8+XHJcbiAgICAgIDwvdmlldz4gLS0+XHJcblxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleDNcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj7kuovku7bmj4/ov7DvvJo8L3ZpZXc+XHJcblx0XHRcdFx0PHRleHRhcmVhIGNsYXNzPVwidGV4dGFyZWFcIiBtYXhsZW5ndGg9XCItMVwiIHBsYWNlaG9sZGVyLWNsYXNzPVwiY2xcIiBuYW1lPVwiaW5zcGVjdENvbnRlbnRcIlxyXG5cdFx0XHRcdFx0QGlucHV0PSdldmVudERlc2NyaXB0aW9uJyA6dmFsdWU9XCJmb3JtLmFkZGVkRGVzY3JpcHRpb25cIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpVwiPjwvdGV4dGFyZWE+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDwhLS0g5paw5aKe5a2X5q615YiG5Ymy57q/LS0tLS0tLS0tLS0tIC0tPlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwidHlwZUNoZWNrID09ICd0eXBlMSdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PumXrumimOetiee6p++8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSwxKVwiIDp2YWx1ZT1cImlzc3VlR3JhZGVJbmRleFwiIGNsYXNzPVwicGlja2VyXCJcclxuXHRcdFx0XHRcdDpyYW5nZT1cImlzc3VlR3JhZGVMaXN0XCIgcmFuZ2Uta2V5PVwibmFtZVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmxldmVsPT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+XHJcblx0XHRcdFx0XHRcdHt7Zm9ybS5sZXZlbD09MT8n5LiA57qnJzpmb3JtLmxldmVsPT0yPyfkuoznuqcnOmZvcm0ubGV2ZWw9PTM/J+S4iee6pyc6J+Wbm+e6pyd9fVxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+PHRleHQgY2xhc3M9XCJzdGFyXCI+KjwvdGV4dD7ntKfmgKXnqIvluqbvvJo8L3ZpZXc+XHJcblx0XHRcdFx0PHBpY2tlciBAY2hhbmdlPVwiKGUpPT5iaW5kUGlja2VyQ2hhbmdlKGUsMilcIiA6dmFsdWU9XCJ1cmdlbmN5SW5kZXhcIiBjbGFzcz1cInBpY2tlclwiIDpyYW5nZT1cInVyZ2VuY3lMaXN0XCJcclxuXHRcdFx0XHRcdHJhbmdlLWtleT1cIm5hbWVcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgY2xcIiB2LWlmPVwiZm9ybS51cmdlbnRMZXZlbD09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0XCIgdi1lbHNlPnt7Zm9ybS51cmdlbnRMZXZlbD09MT8n5LiA6IisJzpmb3JtLnVyZ2VudExldmVsPT0yPyfkuKXph40nOifntKfopoEnfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+5qOA5p+l5pe26Ze077yaPC92aWV3PlxyXG5cdFx0XHRcdDxkYXRlVGltZVBpY2NrZXIgOnBsYWNlaG9sZGVyPVwiJ+ivt+mAieaLqSdcIiA6ZGlzYWJsZWQ9XCJ0cnVlXCIgOnN0YXJ0PVwic3RhcnRUaW1lXCIgZmllbGRzPVwic2Vjb25kXCJcclxuXHRcdFx0XHRcdDpkZWZhdWx0LXZhbHVlPVwiZm9ybS5pbnNwZWN0VGltZVwiIEBjaGFuZ2U9XCJiaW5kUGlja2VyQ2hhbmdlKCRldmVudCwnc3RhcnRUaW1lJylcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJkYXRlVGltZVBpY2NrZXJcIj5cclxuXHRcdFx0XHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmluc3BlY3RUaW1lPT09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tcmlnaHRcIiBzcmM9XCIvc3RhdGljL2ljb24tcmlnaHQucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3tmb3JtLmluc3BlY3RUaW1lfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1yaWdodFwiIHNyYz1cIi9zdGF0aWMvaWNvbi1yaWdodC5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0XHQ8L2RhdGVUaW1lUGljY2tlcj5cclxuXHRcdFx0XHQ8IS0tIDxwaWNrZXIgQGNoYW5nZT1cIihlKT0+YmluZFBpY2tlckNoYW5nZShlLDQpXCIgbW9kZT1cImRhdGVcIiA6dmFsdWU9XCJmb3JtLmluc3BlY3RUaW1lXCIgY2xhc3M9XCJwaWNrZXJcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgY2xcIiB2LWlmPVwiZm9ybS5pbnNwZWN0VGltZT09PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e2Zvcm0uaW5zcGVjdFRpbWV9fVxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPiAtLT5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwiQ09NUEFOWSAhPSAnemp3aidcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PuWIhuWMheWNleS9je+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjbGljaz1cImNsaWNrVW5pdFwiIDpkaXNhYmxlZD1cInRydWVcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmVudGVycHJpc2VOYW1lPT0nJ1wiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3QgZmxleDJcIiB2LWVsc2U+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDk4JTtcIiBjbGFzcz1cImVsbGlwc2lzXCI+e3tmb3JtLmVudGVycHJpc2VOYW1lfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgQGNsaWNrPVwiZGVsZXRlc0J0bigxKVwiIHR5cGU9XCJjbGVhclwiIHNpemU9XCIyMlwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvcGlja2VyPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+5pW05pS55pe26ZmQ77yaPC92aWV3PlxyXG5cdFx0XHRcdDxkYXRlVGltZVBpY2NrZXIgOnBsYWNlaG9sZGVyPVwiJ+ivt+mAieaLqSdcIiA6c3RhcnQ9XCJzdGFydFRpbWUyXCIgZmllbGRzPVwibWludXRlXCJcclxuXHRcdFx0XHRcdDpkZWZhdWx0LXZhbHVlPVwiZm9ybS5jaGFuZ2VMaW1pdFRpbWVcIiBAY2hhbmdlPVwiYmluZFBpY2tlckNoYW5nZSgkZXZlbnQsJ3N0YXJ0VGltZTInKVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cImRhdGVUaW1lUGljY2tlclwiPlxyXG5cdFx0XHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cImZvcm0uY2hhbmdlTGltaXRUaW1lPT09JydcIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tcmlnaHRcIiBzcmM9XCIvc3RhdGljL2ljb24tcmlnaHQucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3tmb3JtLmNoYW5nZUxpbWl0VGltZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tcmlnaHRcIiBzcmM9XCIvc3RhdGljL2ljb24tcmlnaHQucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz4gLS0+XHJcblx0XHRcdFx0PC9kYXRlVGltZVBpY2NrZXI+XHJcblx0XHRcdFx0PCEtLSA8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSw1KVwiIG1vZGU9XCJkYXRlXCIgOnZhbHVlPVwiZm9ybS5jaGFuZ2VMaW1pdFRpbWVcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJmb3JtLmNoYW5nZUxpbWl0VGltZT09PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e2Zvcm0uY2hhbmdlTGltaXRUaW1lfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj4gLS0+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwidHlwZUNoZWNrID09ICd0eXBlMSdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PuaVtOaUueS6uu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSw2KVwiIDp2YWx1ZT1cImNoYW5nZVBlb3BsZUluZGV4XCIgY2xhc3M9XCJwaWNrZXJcIlxyXG5cdFx0XHRcdFx0OnJhbmdlPVwicGVyc29uVXBkYXRlTGlzdFwiIHJhbmdlLWtleT1cInJlYWxOYW1lXCIgdi1pZj1cImlzU2hvd1BpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJjaGFuZ2VQZW9wbGVJbmRleD09bnVsbFwiPlxyXG5cdFx0XHRcdFx0XHTor7fpgInmi6kgPGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWlucHV0IHVuaS1zZWxlY3RcIiB2LWVsc2U+e3twZXJzb25VcGRhdGVMaXN0W2NoYW5nZVBlb3BsZUluZGV4XS5yZWFsTmFtZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIGZsZXhcIiB2LWlmPVwidHlwZUNoZWNrID09ICd0eXBlMSdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj48dGV4dCBjbGFzcz1cInN0YXJcIj4qPC90ZXh0PuWkjeafpeS6uu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjaGFuZ2U9XCIoZSk9PmJpbmRQaWNrZXJDaGFuZ2UoZSw3KVwiIDp2YWx1ZT1cInJldmlld0luZGV4XCIgY2xhc3M9XCJwaWNrZXJcIiA6cmFuZ2U9XCJyZXZpZXdMaXN0XCJcclxuXHRcdFx0XHRcdHJhbmdlLWtleT1cInJlYWxOYW1lXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cInJldmlld0luZGV4PT1udWxsXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdFwiIHYtZWxzZT57e3Jldmlld0xpc3RbcmV2aWV3SW5kZXhdLnJlYWxOYW1lfX1cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiaWNvbi1kb3duXCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3BpY2tlcj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwic3RhclwiPio8L3RleHQ+5qC45qOA5Lq677yaPC92aWV3PlxyXG5cdFx0XHRcdDxwaWNrZXIgQGNoYW5nZT1cIihlKT0+YmluZFBpY2tlckNoYW5nZShlLDgpXCIgOnZhbHVlPVwidmVyaWZ5TWFuSW5kZXhcIiBjbGFzcz1cInBpY2tlclwiIDpkaXNhYmxlZD1cInRydWVcIlxyXG5cdFx0XHRcdFx0OnJhbmdlPVwicGVyc29uTGlzdFwiIHJhbmdlLWtleT1cInJlYWxOYW1lXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0IGNsXCIgdi1pZj1cInZlcmlmeU1hbkluZGV4PT1udWxsICYmICFkZWZhdWx0QXVkaXRQZXJzb25cIj5cclxuXHRcdFx0XHRcdFx06K+36YCJ5oupIDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dCB1bmktc2VsZWN0XCIgdi1lbHNlPlxyXG5cdFx0XHRcdFx0XHR7e2RlZmF1bHRBdWRpdFBlcnNvbiB8fCBwZXJzb25MaXN0W3ZlcmlmeU1hbkluZGV4XS5yZWFsTmFtZX19XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHNyYz1cIi9zdGF0aWMvaWNvbi1kb3duLWJsYWNrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInR5cGUgZmxleFwiIHYtaWY9XCJ0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPumAmuefpeS6uu+8mjwvdmlldz5cclxuXHRcdFx0XHQ8cGlja2VyIEBjbGljaz1cIiRyZWZzLmluZm9ybVRyZWUuX3Nob3coKVwiIDpkaXNhYmxlZD1cInRydWVcIiBjbGFzcz1cInBpY2tlclwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktaW5wdXQgdW5pLXNlbGVjdCBjbFwiIHYtaWY9XCJub3RpZmllcj09PScnXCI+XHJcblx0XHRcdFx0XHRcdOivt+mAieaLqSA8aW1hZ2UgY2xhc3M9XCJpY29uLWRvd25cIiBzcmM9XCIvc3RhdGljL2ljb24tZG93bi1ibGFjay5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktc2VsZWN0IGZsZXgyXCIgdi1lbHNlPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImxpbmUtaGVpZ2h0OjIwcHg7IHdpZHRoOjgwJTsgcGFkZGluZzo2cHggMDtcIj57e25vdGlmaWVyfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImljb24tZG93blwiIHN0eWxlPVwid2lkdGg6MTNweDsgaGVpZ2h0OjEzcHg7XCIgc3JjPVwiL3N0YXRpYy9pY29uLWRvd24tYmxhY2sucG5nXCI+XHJcblx0XHRcdFx0XHRcdDwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdDwvdmlldz4gLS0+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4XCIgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+546w5Zy65pW05pS577yaPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0PHRleHQgOmNsYXNzPVwiZm9ybS5zdGF0dXM9PTI/J3N0YXR1cyc6JydcIj7mnKrlrozmiJA8L3RleHQ+XHJcblx0XHRcdFx0XHQ8c3dpdGNoIDpjaGVja2VkPVwiZm9ybS5zdGF0dXM9PTVcIiBAY2hhbmdlPVwic3dpdGNoQ2hhbmdlXCJcclxuXHRcdFx0XHRcdFx0c3R5bGU9XCJtYXJnaW46IDAgMTBweDt0cmFuc2Zvcm06IHNjYWxlKDAuNzQsMC43KVwiIC8+XHJcblx0XHRcdFx0XHQ8dGV4dCA6Y2xhc3M9XCJmb3JtLnN0YXR1cz09NT8nc3RhdHVzJzonJ1wiPuW3suWujOaIkDwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cInR5cGVDaGVjayA9PSAndHlwZTEnXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XHJcbiAgICBtYXJnaW46IDAgMCAxMHB4IDE3cHg7XHJcbiAgICBjb2xvcjogZ3JheTtcIj7ms6jvvJrlpoLmnpzlnKjmo4Dmn6XnmoTml7blgJnlt7Lnu4/mlbTmlLks6K+355u05o6l6YCJ5oup5bey5a6M5oiQPC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInR5cGUgZmxleDNcIiB2LWlmPVwiQ09NUEFOWSA9PSAnemp3aicmJiB0eXBlQ2hlY2sgPT0gJ3R5cGUxJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuWbvue6uOWumuS9je+8mjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIiBzdHlsZT1cImNvbG9yOiAjMTg3Y2ZmO3dpZHRoOjEwMHB4XCIgQGNsaWNrPVwib3BlbkltZ0RpYWxvZ1wiPuWcqOWbvue6uOS4reWumuS9jTwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwidW5pLWZvcm0taW5wdXQgaW1nQm94X3dyYXBcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1nQm94XCIgdi1zaG93PVwibWFwSW1nTGlzdC5sZW5ndGg+MFwiIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIG1hcEltZ0xpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJ1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsXCIgY2xhc3M9XCJpbWdcIlxyXG5cdFx0XHRcdFx0XHRcdEBjbGljaz1cInByZXZpZXdJbWFnZSh1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsKVwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgQGNsaWNrPVwiZGVsZXRlSW1nKGl0ZW0sMSlcIiBjbGFzcz1cImRlbGV0ZUltZ1wiIHR5cGU9XCJjbGVhclwiIHNpemU9XCIyNFwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJhZGRJbWdCb3hcIiBAY2xpY2s9XCJ1cGxvYWRJbWcoMilcIiB2LWlmPVwibWFwSW1nTGlzdC5sZW5ndGg8NVwiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pY29uLWFkZC5wbmdcIiBjbGFzcz1cImljb24tYWRkXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidHlwZSBmbGV4M1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuS4iuS8oOWbvueJh++8mjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1mb3JtLWlucHV0IGltZ0JveF93cmFwXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltZ0JveFwiIHYtc2hvdz1cImltZ0ZpbGVMaXN0Lmxlbmd0aD4wXCIgdi1mb3I9XCIoaXRlbSxpbmRleCkgaW4gaW1nRmlsZUxpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJ1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsXCIgY2xhc3M9XCJpbWdcIlxyXG5cdFx0XHRcdFx0XHRcdEBjbGljaz1cInByZXZpZXdJbWFnZSh1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsKVwiPlxyXG5cdFx0XHRcdFx0XHQ8L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBAY2xpY2s9XCJkZWxldGVJbWcoaXRlbSwxKVwiIHN0eWxlPVwibWFyZ2luOiA1cHg7XCIgY2xhc3M9XCJkZWxldGVJbWdcIj7Dlzwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkSW1nQm94XCIgQGNsaWNrPVwidXBsb2FkSW1nKDEpXCIgdi1pZj1cImltZ0ZpbGVMaXN0Lmxlbmd0aDw1XCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljL2ljb24tYWRkLnBuZ1wiIGNsYXNzPVwiaWNvbi1hZGRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0eXBlIFwiPlxyXG5cdFx0XHRcdDx2aWV3PuinhumikShtcDQp6ZmE5Lu277yaPC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IHYtaWY9XCJ2aWRlb0ZpbGVMaXN0Lmxlbmd0aD4wXCIgY2xhc3M9XCJpbWdCb3ggZmxleDJcIiBzdHlsZT1cIndpZHRoOjEwMCU7aGVpZ2h0OjI4cHg7XCJcclxuXHRcdFx0XHRcdHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIHZpZGVvRmlsZUxpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6ICM0MTgxRkU7d2lkdGg6IDI4JTt3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuO3RleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1wiXHJcblx0XHRcdFx0XHRcdEBjbGljaz1cInBsYXlWaWRlbyh1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsLCd2aWRlbycpXCI+XHJcblx0XHRcdFx0XHRcdHt7aXRlbS5uYW1lfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IEBjbGljaz1cImRlbGV0ZUltZyhpdGVtLDIpXCIgc3R5bGU9XCJtYXJnaW46IDVweDtjb2xvcjogZ3JheTtsZWZ0OiA3OHB4O1wiIGNsYXNzPVwiZGVsZXRlSW1nXCI+w5dcclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJhZGRJbWdCb3hcIiBAY2xpY2s9XCJ1cGxvYWRWaWRlb1wiIHYtaWY9XCJ2aWRlb0ZpbGVMaXN0Lmxlbmd0aDw9MFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDg4cHg7XCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pY29uLWFkZC5wbmdcIiBjbGFzcz1cImljb24tYWRkXCI+PC9pbWFnZT5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJhZGRTYXZlQnRuXCIgQGNsaWNrPVwiYWRkU2F2ZUJ0blwiPuaWsOWinuS/neWtmDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5Zu+57q45a6a5L2N5by556qXIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bml0RGlhbG9nXCIgdi1pZj1cImltZ0RpYWxvZ1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRDb250ZW50XCIgc3R5bGU9XCJoZWlnaHQ6IDY1JTt3aWR0aDogODklO1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPuWbvue6uOWumuS9jTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7bWFyZ2luLXRvcDogMjBweDtcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkMlwiIHYtaWY9XCJpbWdEaWFsb2dVcmwhPScnXCIgQGNsaWNrLnN0b3A9XCJwb2ludFRleHQoKVwiPlxyXG5cdFx0XHRcdFx0XHR7e2ltZ0RpYWxvZ1VybFRleHR9fVxyXG5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkMlwiIHYtaWY9XCJpbWdEaWFsb2dVcmwhPScnXCIgQGNsaWNrLnN0b3A9XCJ1cGxvYWRJbWcoMilcIj7mm7TmjaLlm77niYc8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWZvcm0taW5wdXQgaW1nQm94X3dyYXBcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWdCb3hcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCIgdi1zaG93PVwiaW1nRGlhbG9nVXJsLmxlbmd0aD4wXCJcclxuXHRcdFx0XHRcdFx0di1mb3I9XCIoaXRlbSxpbmRleCkgaW4gaW1nRGlhbG9nVXJsXCIgOmtleT1cImluZGV4XCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBkYXRhLWluZGV4PScxMTEnIDpzcmM9XCJ1cmxfY29uZmlnKydpbWFnZS8nK2l0ZW0udXJsXCIgQGNsaWNrLnN0b3A9XCJwb2ludEltYWdlKCRldmVudClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvc3RhdGljLy9tb25pdG9yUG9pbnQucG5nXCIgY2xhc3M9XCJwb2ludFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdDpzdHlsZT1cInt0b3A6IGl0ZW0ueSAtIDIwMCArICdweCcsbGVmdDppdGVtLnggLSA0MCArICdweCd9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0di1mb3I9XCIoaXRlbSxpbmRleCkgaW4gcG9pbnRMaXN0XCIgOmtleT1cImluZGV4XCIgQGNsaWNrLnN0b3A9XCJwb2ludFNob3coaW5kZXgpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyA6c3R5bGU9XCJ7dG9wOiBpdGVtLnkgLSAyMDAgKyAncHgnLGxlZnQ6aXRlbS54IC0gNDAgKyAncHgnfVwiXHJcblx0XHRcdFx0XHRcdFx0XHR2LWZvcj1cIihpdGVtLGluZGV4KSBpbiBwb2ludExpc3RcIiA6a2V5PVwiaW5kZXhcIiB2LWlmPVwiaW1nSW5kZXggPT09IGluZGV4XCIgY2xhc3M9XCJwb2ludFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsYWdDc3NcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx05Z2Q5qCHIO+8mnggOiB7e2l0ZW0ueH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdHkgOiB7e2l0ZW0ueX19XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiY29sb3I6IHJlZDtcIiBAY2xpY2suc3RvcD1cInJlbW92ZVBvaW50KGluZGV4KVwiPuWIoOmZpDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWRkSW1nQm94XCIgc3R5bGU9XCJ3aWR0aDogMTc4cHg7XHJcbiAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNjNweDttYXJnaW46IDIwJTtcIiBAY2xpY2s9XCJ1cGxvYWRJbWcoMilcIiB2LWlmPVwiaW1nRGlhbG9nVXJsLmxlbmd0aD09MFwiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3N0YXRpYy9pY29uLWFkZC5wbmdcIiBjbGFzcz1cImljb24tYWRkXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXRBXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz0nYWRkU2F2ZUJ0bicgc3R5bGU9XCIgbWFyZ2luLWxlZnQ6IDEwNXB4O3dpZHRoOiA0MCU7bWFyZ2luLXRvcDogOCU7XCJcclxuXHRcdFx0XHRcdFx0di1pZj1cImltZ0RpYWxvZ1VybCE9JydcIiBAY2xpY2s9XCJpbWdEaWFsb2dCdG5cIj7kv53lrZg8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9J2FkZFNhdmVCdG4nIHN0eWxlPVwiIG1hcmdpbi1sZWZ0OiAxMDVweDt3aWR0aDogNDAlO21hcmdpbi10b3A6IC01JTtcIiB2LWVsc2VcclxuXHRcdFx0XHRcdFx0QGNsaWNrPVwiaW1nRGlhbG9nID0gZmFsc2VcIj5cclxuXHRcdFx0XHRcdFx05Y+W5raIPC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInRleHRcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICBjb2xvcjogb3JhbmdlO21hcmdpbi10b3A6IC00MHB4O1wiIHYtZWxzZT5cclxuXHRcdFx0XHRcdOaaguaXoOWbvue6uCzor7fkuIrkvKBcclxuXHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0PC92aWV3PlxyXG5cclxuXHRcdDwhLS0g5YiG5YyF5Y2V5L2N5by556qXIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bml0RGlhbG9nXCIgdi1pZj1cInVuaXREaWFsb2dcIiBAY2xpY2s9XCJ1bml0RGlhbG9nPWZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidW5pdENvbnRlbnRcIj5cclxuXHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwidGFicyBmbGV4MlwiPlxyXG4gICAgICAgICAgPHZpZXcgQGNsaWNrLnN0b3A9XCJjaGVja1R5cGVCdG4oMSlcIiA6Y2xhc3M9XCJjaGVja1R5cGU9PTE/J2NoZWNrTmFtZSB0YWJzX25hbWUnOidub0NoZWNrTmFtZSB0YWJzX25hbWUnXCI+XHJcbiAgICAgICAgICAgIOS4k+S4muWIhuWMheWVhjwvdmlldz5cclxuICAgICAgICAgIDx2aWV3IEBjbGljay5zdG9wPVwiY2hlY2tUeXBlQnRuKDYpXCIgOmNsYXNzPVwiY2hlY2tUeXBlPT02PydjaGVja05hbWUgdGFic19uYW1lJzonbm9DaGVja05hbWUgdGFic19uYW1lJ1wiPlxyXG4gICAgICAgICAgICDlirPliqHliIbljIXllYY8L3ZpZXc+XHJcbiAgICAgICAgPC92aWV3PiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRMaXN0XCIgdi1pZj1cInN1YnBhY2thZ2VMc2l0Lmxlbmd0aD4wXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+5YWs5Y+45ZCN56ewPC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0X3ZhbFwiIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIHN1YnBhY2thZ2VMc2l0XCIgQGNsaWNrPVwiY2hlY2tTdWJwYWNrYWdlKGl0ZW0pXCJcclxuXHRcdFx0XHRcdFx0OmNsYXNzPVwiaW5kZXglMj09MD8nYmdfOTk5JzonJ1wiPnt7aXRlbS5lbnRlcnByaXNlTmFtZX19PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBsYWNlaG9sZGVyQm94XCIgdi1pZj1cInN1YnBhY2thZ2VMc2l0Lmxlbmd0aD09MFwiPlxyXG5cdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9zdGF0aWMvbm9EYXRhLnBuZ1wiIG1vZGU9XCJcIiBjbGFzcz1cIm5vRGF0YUltZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHRcIj5cclxuXHRcdFx0XHRcdFx05pqC5peg5pWw5o2uXHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOagh+iusOeCuSAtLT5cclxuXHRcdDwhLS0g5qOA5p+l6YOo5L2NIC0tPlxyXG5cdFx0PHRraS10cmVlIHJlZj1cImxvY2F0aW9uVHJlZVwiIEBjb25maXJtPVwiKHZhbCk9PmNoZWNrUG9pbnRCdG4odmFsLDEpXCIgaWRLZXk9J2lkJyA6cmFuZ2U9XCJjaGVja1BvaW50TGlzdFwiXHJcblx0XHRcdHJhbmdlS2V5PVwicmVnaW9uTmFtZVwiIGNvbmZpcm1Db2xvcj1cIiM0ZThhZjdcIiA6c2VsZWN0UGFyZW50PVwidHJ1ZVwiIC8+XHJcblx0XHQ8IS0tIOmXrumimOWIhuexuyAtLT5cclxuXHRcdDx0a2ktdHJlZSByZWY9XCJpc3N1ZVRyZWVcIiBAY29uZmlybT1cIih2YWwpPT5jaGVja1BvaW50QnRuKHZhbCwyKVwiIGlkS2V5PSdpZCcgOnJhbmdlPVwiaXNzdWVMaXN0XCJcclxuXHRcdFx0cmFuZ2VLZXk9XCJkYW5nZXJOYW1lXCIgY29uZmlybUNvbG9yPVwiIzRlOGFmN1wiIC8+XHJcblx0XHQ8IS0tIOmAmuefpeS6uiAtLT5cclxuXHRcdDx0a2ktdHJlZSByZWY9XCJpbmZvcm1UcmVlXCIgOm11bHRpcGxlPVwidHJ1ZVwiIEBjb25maXJtPVwiKHZhbCk9PmNoZWNrUG9pbnRCdG4odmFsLDMpXCIgaWRLZXk9J2lkJ1xyXG5cdFx0XHQ6cmFuZ2U9XCJwZXJzb25MaXN0XCIgcmFuZ2VLZXk9XCJ3b3JrZXJOYW1lXCIgY29uZmlybUNvbG9yPVwiIzRlOGFmN1wiIC8+XHJcblx0XHQ8Y2FudmVyc0NvbSB2LWlmPVwib3BlbkltZ1wiIEBpbWdVcmw9XCJpbWdVcmxcIiA6aW1nTGlzdD1cImltZ0xpc3RcIj48L2NhbnZlcnNDb20+XHJcblxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHRraVRyZWUgZnJvbSBcIkAvY29tcG9uZW50cy90a2ktdHJlZS90a2ktdHJlZS52dWVcIlxyXG5cdGltcG9ydCBjYW52ZXJzQ29tIGZyb20gXCJAL3BhZ2VzL3ZpZGVvTWFuYWdlL2NvbXBvbmVudC9jYW52ZXJzQ29tLnZ1ZVwiXHJcblx0aW1wb3J0IGRhdGVUaW1lUGljY2tlciBmcm9tICdAL2NvbXBvbmVudHMvZGF0ZVRpbWVQaWNrZXIvaW5kZXgudnVlJ1xyXG5cdGltcG9ydCB7XHJcblx0XHRkYXRlZm9ybWF0XHJcblx0fSBmcm9tIFwiQC91dGlscy90b29sLmpzXCJcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdHRraVRyZWUsXHJcblx0XHRcdGNhbnZlcnNDb20sXHJcblx0XHRcdGRhdGVUaW1lUGljY2tlclxyXG5cclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGlzU2hvd1BpY2tlcjogdHJ1ZSxcclxuXHRcdFx0XHRzdGFydFRpbWU6IHRoaXMuZ2V0RGF0ZSh7XHJcblx0XHRcdFx0XHRmb3JtYXQ6IHRydWUsXHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0c3RhcnRUaW1lMjogdGhpcy5nZXREYXRlKHtcclxuXHRcdFx0XHRcdGZvcm1hdDogdHJ1ZSxcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRjaGVja2VkVGFiOiAndHlwZTEnLFxyXG5cdFx0XHRcdGltZ0xpc3Q6IHt9LFxyXG5cdFx0XHRcdG9wZW5JbWc6IGZhbHNlLFxyXG5cdFx0XHRcdGJhc2U2NEltYWdlOiAnJyxcclxuXHRcdFx0XHRpbWdJbmRleDogLTEsXHJcblx0XHRcdFx0cG9pbnRMaXN0OiBbXSxcclxuXHRcdFx0XHRsb2NhdGlvbjoge1xyXG5cdFx0XHRcdFx0bGVmdDogJzAnLFxyXG5cdFx0XHRcdFx0dG9wOiAnMCdcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0eTogMCxcclxuXHRcdFx0XHRpbWdEaWFsb2dVcmxTdTogZmFsc2UsXHJcblx0XHRcdFx0aW1nRGlhbG9nVXJsVGV4dDogXCLnvJbovpHpmpDmgqPngrlcIixcclxuXHRcdFx0XHRpbWdEaWFsb2c6IGZhbHNlLFxyXG5cdFx0XHRcdGltZ0RpYWxvZ1VybDogW10sXHJcblx0XHRcdFx0cGFnZVRpdGxlOiAn5paw5aKe5qOA5p+lJyxcclxuXHRcdFx0XHRwcm9qZWN0U246ICcnLFxyXG5cdFx0XHRcdGNoZWNrVHlwZTogMSwgLy/liIbljIXllYbnsbvlnosgICAx5LiT5Lia5YiG5YyFICA25Yqz5Yqh5YiG5YyFXHJcblx0XHRcdFx0Zm9ybToge1xyXG5cdFx0XHRcdFx0cmVnaW9uSWQ6IFwiXCIsIC8vIOajgOafpemDqOS9jVxyXG5cdFx0XHRcdFx0cmVnaW9uTmFtZTogXCJcIixcclxuXHRcdFx0XHRcdGRhbmdlckl0ZW1Db250ZW50OiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VySXRlbUlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyVHlwZUlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyRGVzYzogXCJcIixcclxuXHRcdFx0XHRcdHJlbWFyazogXCJcIixcclxuXHRcdFx0XHRcdHJvdXRpbmVJZDogMCxcclxuXHRcdFx0XHRcdGxldmVsOiBcIlwiLFxyXG5cdFx0XHRcdFx0dXJnZW50TGV2ZWw6IFwiXCIsXHJcblx0XHRcdFx0XHRpbnNwZWN0TWFuSWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRpbnNwZWN0VGltZTogZGF0ZWZvcm1hdChuZXcgRGF0ZSgpKSxcclxuXHRcdFx0XHRcdGVudGVycHJpc2VTbjogXCJcIixcclxuXHRcdFx0XHRcdGVudGVycHJpc2VOYW1lOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y2hhbmdlTGltaXRUaW1lOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y2hhbmdlSWQ6IFwiXCIsXHJcblx0XHRcdFx0XHRyZXZpZXdJZDogXCJcIixcclxuXHRcdFx0XHRcdHZlcmlmeU1hbklkOiBcIlwiLFxyXG5cdFx0XHRcdFx0bm90aWZ5UGVyc29uOiBbXSxcclxuXHRcdFx0XHRcdHN0YXR1czogMiwgLy8g546w5Zy65pW05pS554q25oCBICAy5pyq5a6M5oiQICAgNeW3suWujOaIkFxyXG5cdFx0XHRcdFx0bWVhc3VyZVBvaW50czogW10sXHJcblx0XHRcdFx0XHRpbWFnZVVybDogXCJcIixcclxuXHRcdFx0XHRcdGZpbGVVcmw6IFwiXCIsXHJcblx0XHRcdFx0XHRyZWNvcmRUeXBlOiAxLFxyXG5cdFx0XHRcdFx0ZGFuZ2VyTmFtZTogJycsXHJcblx0XHRcdFx0XHRzdWJzZWN0aW9uSWQ6ICcnLCAvL+WIhumDqOW3peeoi1xyXG5cdFx0XHRcdFx0c3ViZW50cnlJZDogJycsIC8v5YiG6aG55bel56iLXHJcblx0XHRcdFx0XHRmbG9vcjogJycsIC8v5beh5qOA5qW85bGCXHJcblx0XHRcdFx0XHRhZGRlZERlc2NyaXB0aW9uOiAnJywgLy/kuovku7bmj4/ov7BcclxuXHRcdFx0XHRcdHRhc2tJZDogJycsIC8v5Lu75YqhSURcclxuXHRcdFx0XHRcdGl0ZW1JZDogJycgLy8g5Lu75Yqh5a2QSURcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGNoZWNrUG9pbnRMaXN0OiBbXSwgLy/ojrflj5bmo4Dmn6Xpg6jkvY3mlbDmja5cclxuXHRcdFx0XHRjaGVja1BvaW50TmFtZTogJycsXHJcblx0XHRcdFx0aXNzdWVMaXN0OiBbXSwgLy/pl67popjliIbnsbsgfHwg6Zeu6aKY5o+P6L+wXHJcblx0XHRcdFx0aXNzdWVOYW1lOiAnJyxcclxuXHRcdFx0XHRpc3N1ZUdyYWRlTGlzdDogW3tcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+S4gOe6pycsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiAxXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAn5LqM57qnJyxcclxuXHRcdFx0XHRcdFx0dmFsdWU6IDJcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICfkuInnuqcnLFxyXG5cdFx0XHRcdFx0XHR2YWx1ZTogM1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+Wbm+e6pycsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiA0XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdF0sIC8v6Zeu6aKY562J57qnXHJcblx0XHRcdFx0aXNzdWVHcmFkZUluZGV4OiAwLFxyXG5cdFx0XHRcdHVyZ2VuY3lMaXN0OiBbe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAn5LiA6IisJyxcclxuXHRcdFx0XHRcdFx0dmFsdWU6IDFcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICfkuKXph40nLFxyXG5cdFx0XHRcdFx0XHR2YWx1ZTogMlxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+e0p+imgScsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiAzXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdF0sIC8v57Sn5oCl56iL5bqmXHJcblx0XHRcdFx0dXJnZW5jeUluZGV4OiAwLFxyXG5cdFx0XHRcdHBlcnNvblVwZGF0ZUxpc3Q6IFtdLCAvLyDkurrlkZjliJfooagt5pW05pS55Lq6XHJcblx0XHRcdFx0cGVyc29uTGlzdDogW10sIC8v5Lq65ZGY5YiX6KGoICAtLSDmo4Dmn6XkurrjgIHmlbTmlLnkurrjgIHlpI3mn6XkurrjgIHmoLjpqozkurrjgIHpgJrnn6XkurpcclxuXHRcdFx0XHRpbnNwZWN0TWFuSW5kZXg6IG51bGwsIC8v5qOA5p+l5Lq6XHJcblx0XHRcdFx0Y2hhbmdlUGVvcGxlSW5kZXg6IG51bGwsIC8v5pW05pS55Lq6XHJcblx0XHRcdFx0dmVyaWZ5TWFuSW5kZXg6IG51bGwsIC8v5qC46aqM5Lq6XHJcblx0XHRcdFx0cmV2aWV3SW5kZXg6IG51bGwsIC8v5aSN5p+l5Lq6XHJcblx0XHRcdFx0bm90aWZpZXI6ICcnLCAvL+mAmuefpeS6ulxyXG5cdFx0XHRcdHVuaXREaWFsb2c6IGZhbHNlLCAvL+WIhuWMheWVhuW8ueeql1xyXG5cdFx0XHRcdHN1YnBhY2thZ2VMc2l0OiBbXSwgLy/liIbljIXllYbmlbDmja7liJfooahcclxuXHRcdFx0XHR2aWRlb0ZpbGVMaXN0OiBbXSxcclxuXHRcdFx0XHRpbWdGaWxlTGlzdDogW10sXHJcblx0XHRcdFx0bWFwSW1nTGlzdDogW10sXHJcblx0XHRcdFx0YmFzaWNJbmZvOiB7fSxcclxuXHRcdFx0XHRzZWxlY3RJbmRleDogbnVsbCxcclxuXHRcdFx0XHR1c2VySW5mbzogJycsXHJcblx0XHRcdFx0dHlwZUNoZWNrOiAndHlwZTEnLCAvLyDnsbvlnosgdHlwZTHkuLrlronlhajpl67popggIHR5cGUy5Li65o6S5p+l6K6w5b2VXHJcblx0XHRcdFx0bGlzdERhdGE6IFtdLCAvL+WIhumDqOW3peeoi1xyXG5cdFx0XHRcdHN1Ykxpc3REYXRhOiBbXSwgLy/liIbpobnlt6XnqItcclxuXHRcdFx0XHRzdWJzZWN0aW9uSW5kZXg6IC0xLCAvL+WIhumDqOW3peeoi1xyXG5cdFx0XHRcdHN1YmVudHJ5SW5kZXg6IC0xLCAvLy8v5YiG6aG55bel56iLXHJcblx0XHRcdFx0dW5pdEVudGVycHJpc2VJZDogXCJcIixcclxuXHRcdFx0XHR0YXNrSWQ6ICcnLCAvL+S7u+WKoUlEXHJcblx0XHRcdFx0aXRlbUlkOiAnJywgLy8g5Lu75Yqh5a2QSURcclxuXHRcdFx0XHRkZWZhdWx0QXVkaXRQZXJzb246IFwiXCIsXHJcblx0XHRcdFx0cmV2aWV3TGlzdDogW10sXHJcblx0XHRcdFx0YXJlYURhdGE6IHt9LFxyXG5cdFx0XHRcdGVuZ2luZWVyaW5nSWQ6ICcnLFxyXG5cdFx0XHRcdHR5cGU6ICcnLFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKG9wdGlvbikge1xyXG5cdFx0XHR0aGlzLnBhZ2VUaXRsZSA9IG9wdGlvbi50eXBlID09ICdhZGQnID8gJ+aWsOWinuajgOafpScgOiAn57yW6L6R5qOA5p+lJztcclxuXHRcdFx0dGhpcy5wcm9qZWN0U24gPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYygncHJvamVjdERldGFpbCcpKS5wcm9qZWN0U247XHJcblx0XHRcdHRoaXMudXNlckluZm8gPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYygndXNlckluZm8nKSk7XHJcblx0XHRcdHRoaXMuZ2V0Q2hlY2tQb2ludExpc3QoKTtcclxuXHRcdFx0dGhpcy5nZXRJc3N1ZUxpc3QoKTtcclxuXHRcdFx0dGhpcy5nZXRQZXJzb25MaXN0KCk7XHJcblx0XHRcdC8vIHRoaXMuZ2V0UmV2aWV3UGVvcGxlTGlzdCgpO1xyXG5cdFx0XHQvLyB0aGlzLmdldFBlcnNvblVwZGF0ZUxpc3QoKTtcclxuXHRcdFx0dGhpcy5nZXRQcm9ncmVzc0xpc3REYXRhKClcclxuXHRcdFx0Y29uc29sZS5sb2coJ2xsbCcsIG9wdGlvbi50YXNrSWQsIG9wdGlvbi5pdGVtSWQpXHJcblx0XHRcdHRoaXMudGFza0lkID0gb3B0aW9uLnRhc2tJZFxyXG5cdFx0XHR0aGlzLml0ZW1JZCA9IG9wdGlvbi5pdGVtSWRcclxuXHRcdFx0dGhpcy5mb3JtLnRhc2tJZCA9IG9wdGlvbi50YXNrSWRcclxuXHRcdFx0dGhpcy5mb3JtLml0ZW1JZCA9IG9wdGlvbi5pdGVtSWRcclxuXHRcdFx0Y29uc29sZS5sb2coZGF0ZWZvcm1hdChuZXcgRGF0ZSgpKSwgNzc3ODg4KVxyXG5cdFx0XHRpZihvcHRpb24uZW5naW5lZXJpbmdJZCkgdGhpcy5lbmdpbmVlcmluZ0lkID0gb3B0aW9uLmVuZ2luZWVyaW5nSWRcclxuXHRcdFx0aWYob3B0aW9uLnR5cGUpIHRoaXMudHlwZSA9IE51bWJlcihvcHRpb24udHlwZSlcclxuXHRcdH0sXHJcblxyXG5cclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Ly/ojrflj5blpI3mn6XkurpcclxuXHRcdFx0Z2V0UmV2aWV3UGVvcGxlTGlzdCgpIHtcclxuXHRcdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogJ3htZ2wvc3lzdGVtVXNlci9nZXRQcm9qZWN0Q2hpbGRlclN5c3RlbVVzZXJMaXN0JyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ3Bvc3QnLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuLFxyXG5cdFx0XHRcdFx0XHQvLyBlbnRlcnByaXNlVHlwZUlkOiA3LFxyXG5cdFx0XHRcdFx0XHRxdWFsaXR5UmVnaW9uSWQ6IHRoaXMuZm9ybS5yZWdpb25JZCxcclxuXHRcdFx0XHRcdFx0cXVhbGl0eVJlZ2lvbkJpbmRUeXBlOiAyLFxyXG5cdFx0XHRcdFx0XHRpc1N1cGVydmlzaW5nUm9sZU5hbWU6IDFcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMucmVzdWx0KVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnJlc3VsdC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yZXZpZXdMaXN0ID0gcmVzLnJlc3VsdDtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJldmlld0xpc3QgPSBbXTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldERhdGUodHlwZSkge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cdFx0XHRcdGxldCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cdFx0XHRcdGxldCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcblx0XHRcdFx0bGV0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cdFx0XHRcdGlmICh0eXBlID09PSAnc3RhcnQnKSB7XHJcblx0XHRcdFx0XHR5ZWFyID0geWVhcjtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT09ICdlbmQnKSB7XHJcblx0XHRcdFx0XHQvLyB5ZWFyID0geWVhciArIDI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdG1vbnRoID0gbW9udGggPiA5ID8gbW9udGggOiAnMCcgKyBtb250aDtcclxuXHRcdFx0XHRkYXkgPSBkYXkgPiA5ID8gZGF5IDogJzAnICsgZGF5O1xyXG5cdFx0XHRcdHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbWdVcmwodmFsKSB7XHJcblx0XHRcdFx0dGhpcy5vcGVuSW1nID0gZmFsc2VcclxuXHRcdFx0XHR0aGlzLmltZ1VwbG9hZCh2YWwpXHJcblxyXG5cdFx0XHRcdHRoaXMub3BlbkltZyA9IHRydWVcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8v5Zu+54mH5LiK5Lyg6K+35rGC55qE5o6l5Y+jXHJcblx0XHRcdGltZ1VwbG9hZChiYXNlSW1nKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+i/m+WFpS0tLS0tLS0tLS3lm77niYfkuIrkvKDor7fmsYLnmoTmjqXlj6MnKTtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRsZXQgY3VEYXRlID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcblx0XHRcdFx0bGV0IGFyciA9IFtdXHJcblx0XHRcdFx0dGhhdC5iYXNlNjRJbWFnZSA9IGJhc2VJbWdcclxuXHRcdFx0XHRsZXQgcGFybWFycyA9IHtcclxuXHRcdFx0XHRcdGJhc2U2NEltYWdlOiB0aGF0LmJhc2U2NEltYWdlXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogJ3htZ2wvdXBsb2FkL3VwbG9hZEJhc2U2NCcsXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0JyxcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgLy/oh6rlrprkuYnor7fmsYLlpLTkv6Hmga9cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRkYXRhOiBwYXJtYXJzLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6L2s5o2i5ZCO55qE5Zyw5Z2ALS0tLS0tLS0tLScsIHJlcy5kYXRhLmltYWdlVXJsKTtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+mYtuauteS7o+eggSAgaW1nVXBsb2FkIOiAl+aXtjIg77yaJyArIChuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIGN1RGF0ZSkpXHJcblx0XHRcdFx0XHRcdHRoYXQuaW1nRmlsZUxpc3RbdGhhdC5pbWdGaWxlTGlzdC5sZW5ndGggLSAxXS51cmwgPSByZXMuZGF0YS5pbWFnZVVybFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGltZ0RpYWxvZ0J0bigpIHtcclxuXHRcdFx0XHR0aGlzLmltZ0RpYWxvZyA9IGZhbHNlXHJcblx0XHRcdFx0Ly8gdGhpcy5wb2ludExpc3Q9W11cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/ngrnlh7vngrnkvY3lsZXnpLrnmoTlhoXlrrlcclxuXHRcdFx0cG9pbnRTaG93KGluZGV4KSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLlvZPliY1pbmRleCA6IFwiICsgaW5kZXggKyBcIi0gdGhpcy5pbWdJbmRleDogXCIgKyB0aGlzLmltZ0luZGV4KVxyXG5cdFx0XHRcdGlmIChpbmRleCA9PT0gdGhpcy5pbWdJbmRleCkge1xyXG5cdFx0XHRcdFx0dGhpcy5pbWdJbmRleCA9IC0xXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuaW1nSW5kZXggPSBpbmRleFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/liKDpmaTngrnkvY1cclxuXHRcdFx0cmVtb3ZlUG9pbnQoaW5kZXgpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn54K55Ye755qE5YaF5a65JywgaW5kZXgpO1xyXG5cdFx0XHRcdHRoaXMucG9pbnRMaXN0LnNwbGljZShpbmRleCwgMSk7XHJcblx0XHRcdFx0dGhpcy5pbWdJbmRleCA9IC0xXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5biD54K5XHJcblx0XHRcdHBvaW50SW1hZ2UoZXZlbnQpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5pbWdEaWFsb2dVcmxTdSkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLlvIDlp4vluIPngrkg77yaXCIsIGV2ZW50KTtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwieO+8mlwiLCBldmVudC5kZXRhaWwueCk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcInkg77yaXCIsIGV2ZW50LmRldGFpbC55KTtcclxuXHRcdFx0XHRcdGxldCBvYmogPSB7XHJcblx0XHRcdFx0XHRcdHg6IGV2ZW50LmRldGFpbC54LFxyXG5cdFx0XHRcdFx0XHR5OiBldmVudC5kZXRhaWwueVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhpcy5wb2ludExpc3QucHVzaChvYmopXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/lvIDlp4vluIPngrnmiJbogIXnu5PmnZ/luIPngrlcclxuXHRcdFx0cG9pbnRUZXh0KCkge1xyXG5cdFx0XHRcdHRoaXMuaW1nRGlhbG9nVXJsVGV4dCA9IHRoaXMuaW1nRGlhbG9nVXJsU3UgPyBcIue8lui+kemakOaCo+eCuVwiIDogXCLkv53lrZjpmpDmgqPngrlcIlxyXG5cdFx0XHRcdHRoaXMuaW1nRGlhbG9nVXJsU3UgPSAhdGhpcy5pbWdEaWFsb2dVcmxTdVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/miZPlvIDlm77nurjkuIrkvKDlvLnmoYZcclxuXHRcdFx0b3BlbkltZ0RpYWxvZygpIHtcclxuXHRcdFx0XHR0aGlzLmltZ0RpYWxvZyA9IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9nZ2xlKCkge30sXHJcblx0XHRcdC8v5YiG6YOo5bel56iL5pS55Yqo5LqL5Lu2XHJcblx0XHRcdGNoZWNrU3ViTGlzdERhdGEoZSwgdHlwZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGUsIHR5cGUpXHJcblx0XHRcdFx0aWYgKHR5cGUgPT09IDEpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmxpc3REYXRhW2UuZGV0YWlsLnZhbHVlXSA9PSBcIuaaguaXoOaVsOaNrlwiKSByZXR1cm47XHJcblx0XHRcdFx0XHQvLyDpgInmi6nkuIDnuqfoj5zljZVcclxuXHRcdFx0XHRcdHRoaXMuc3Vic2VjdGlvbkluZGV4ID0gZS5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uc3Vic2VjdGlvbklkID0gdGhpcy5saXN0RGF0YVt0aGlzLnN1YnNlY3Rpb25JbmRleF0/LmlkIHx8IC0xOyAvLyDotYvlgLznu5lzdWJzZWN0aW9uSWTlrZfmrrVcclxuXHJcblx0XHRcdFx0XHR0aGlzLnN1Ykxpc3REYXRhID0gdGhpcy5saXN0RGF0YVt0aGlzLnN1YnNlY3Rpb25JbmRleF0uY2hpbGRyZW4gfHwgW107XHJcblx0XHRcdFx0XHRpZiAodGhpcy5zdWJMaXN0RGF0YS5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdWJlbnRyeUluZGV4ID0gMDsgLy8g5aaC5p6c5a2Y5Zyo5a2Q57qn6I+c5Y2V77yM5YiZ5bCG5YiG6aG557Si5byV5Yid5aeL5YyW5Li6MFxyXG5cdFx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SWQgPSB0aGlzLnN1Ykxpc3REYXRhWzBdPy5pZCB8fCAtMTsgLy8g6LWL5YC857uZc3ViZW50cnlJZOWtl+autVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdWJlbnRyeUluZGV4ID0gLTE7IC8vIOWmguaenOS4jeWtmOWcqOWtkOe6p+iPnOWNle+8jOWImeWwhuWIhumhuee0ouW8leWIneWni+WMluS4ui0xXHJcblx0XHRcdFx0XHRcdHRoaXMuc3ViZW50cnlJZCA9IC0xOyAvLyDliJ3lp4vljJbkuLotMVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5zdWJMaXN0RGF0YVtlLmRldGFpbC52YWx1ZV0gPT0gXCLmmoLml6DmlbDmja5cIikgcmV0dXJuO1xyXG5cdFx0XHRcdFx0Ly8g6YCJ5oup5LqM57qn6I+c5Y2VXHJcblx0XHRcdFx0XHR0aGlzLnN1YmVudHJ5SW5kZXggPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5zdWJlbnRyeUlkID0gdGhpcy5zdWJMaXN0RGF0YVt0aGlzLnN1YmVudHJ5SW5kZXhdPy5pZCB8fCAtMTsgLy8g6LWL5YC857uZc3ViZW50cnlJZOWtl+autVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/ojrflj5bliIbpg6jliIbpobnlt6XnqIvvvIwg5Lul54i25a2Q6IqC54K55b2i5byP5ZGI546wXHJcblx0XHRcdGdldFByb2dyZXNzTGlzdERhdGEoKSB7XHJcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3N1YmRpdmlzaW9uUHJvamVjdC9nZXRQYXJlbnRDaGlsZExpc3QnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnZ2V0JyxcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTblxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3REYXRhID0gcmVzLnJlc3VsdDtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6I635Y+W5YiG6YOo5YiG6aG55bel56iL77yMIOS7peeItuWtkOiKgueCueW9ouW8j+WRiOeOsCcsIHRoaXMubGlzdERhdGEpXHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMubGlzdERhdGEubGVuZ3RoID49IDEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZm9ybS5zdWJzZWN0aW9uSWQgPSB0aGlzLmxpc3REYXRhWzBdLmlkXHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhpcy5saXN0RGF0YVswXS5jaGlsZHJlbi5sZW5ndGggPj0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnN1Ykxpc3REYXRhID0gdGhpcy5saXN0RGF0YVswXS5jaGlsZHJlbjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLnN1YmVudHJ5SWQgPSB0aGlzLmxpc3REYXRhWzBdLmNoaWxkcmVuWzBdLmlkO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdWJMaXN0RGF0YSA9IFsn5pqC5peg5pWw5o2uJ11cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5saXN0RGF0YSA9IFsn5pqC5peg5pWw5o2uJ11cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+iOt+WPluajgOafpemDqOS9jSDliJfooahcclxuXHRcdFx0Z2V0Q2hlY2tQb2ludExpc3QoKSB7XHJcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3F1YWxpdHlSZWdpb24vbGlzdCcsXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0JyxcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTbixcclxuXHRcdFx0XHRcdFx0bm90U3VwZXJ2aXNpbmdVbml0OiAxXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tQb2ludExpc3QgPSByZXMucmVzdWx0O1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCctLS0tLS0tLS0tLScsIHRoaXMuY2hlY2tQb2ludExpc3QpXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRkZWFsRmFsc2VDaGVjayhhcnIpIHtcclxuXHRcdFx0XHRhcnIubWFwKGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0uY2hpbGRyZW4pIHtcclxuXHRcdFx0XHRcdFx0aXRlbS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGl0ZW0ub3JDaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuZGVhbEZhbHNlQ2hlY2soaXRlbS5jaGlsZHJlbilcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGl0ZW0uY2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRpdGVtLm9yQ2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v56Gu5a6a6YCJ5LitLS3lm57mmL4gIFxyXG5cdFx0XHRjaGVja1BvaW50QnRuKHZhbCwgdHlwZSkge1xyXG5cdFx0XHRcdHRoaXMuZm9ybS5sZXZlbCA9ICcnXHJcblx0XHRcdFx0Ly8gdHlwZT09MSDmo4Dmn6Xpg6jkvY0g77ybICAyIOmXrumimOWIhuexuyBcdDMs6YCa55+l5Lq6XHRcdFx0XHJcblx0XHRcdFx0aWYgKHR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9IFwiXCI7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSBcIlwiO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmNoYW5nZUlkID0gXCJcIjtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHZhbCwgdHlwZSlcclxuXHRcdFx0XHRcdHRoaXMuY2hhbmdlUGVvcGxlSW5kZXggPSBudWxsXHJcblx0XHRcdFx0XHR0aGlzLmFyZWFEYXRhID0gdmFsWzBdO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5jaGVja1BvaW50TGlzdCwgdmFsLCB0aGlzLnBlcnNvbkxpc3QpXHJcblx0XHRcdFx0XHR0aGlzLmZvcm0ucmVnaW9uSWQgPSB2YWxbMF0uaWQ7XHJcblx0XHRcdFx0XHRsZXQgYXJyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWxbMF0ucGFyZW50cykpO1xyXG5cdFx0XHRcdFx0bGV0IG9iaiA9IHtcclxuXHRcdFx0XHRcdFx0aWQ6IHZhbFswXS5pZCxcclxuXHRcdFx0XHRcdFx0cmVnaW9uTmFtZTogdmFsWzBdLnJlZ2lvbk5hbWVcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRhcnIucHVzaChvYmopO1xyXG5cdFx0XHRcdFx0Ly/ojrflj5bpgInkuK3nmoTlrZfnrKbkuLIg5ZCN56ewXHJcblx0XHRcdFx0XHR2YXIgcmVnaW9uTmFtZSA9IGFyci5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGl0ZW0ucmVnaW9uTmFtZTtcclxuXHRcdFx0XHRcdH0pLmpvaW4oXCIvXCIpO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGVja1BvaW50TmFtZSA9IHJlZ2lvbk5hbWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0ucmVnaW9uTmFtZSA9IHJlZ2lvbk5hbWU7XHJcblxyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmNoYW5nZUlkID0gdmFsWzBdLmR1dHlJZDtcclxuXHRcdFx0XHRcdHRoaXMubm90aWZpZXIgPSB2YWxbMF0uaW50ZW5kYW5jZU5hbWVzO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLm5vdGlmeVBlcnNvbiA9IHZhbFswXS5pbnRlbmRhbmNlSWRzO1xyXG5cdFx0XHRcdFx0Ly8g6YeN572u5qOA5p+l6YOo5L2NXHJcblx0XHRcdFx0XHR0aGlzLmRlYWxGYWxzZUNoZWNrKHRoaXMuY2hlY2tQb2ludExpc3QpO1xyXG5cdFx0XHRcdFx0dGhpcy4kcmVmcy5sb2NhdGlvblRyZWUuX3JlVHJlZUxpc3QoKTtcclxuXHRcdFx0XHRcdC8vIOWIhuWMheWNleS9jeaVsOaNruaLv+WPllxyXG5cdFx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IHZhbFswXS5lbnRlcnByaXNlSW5mb3NcclxuXHRcdFx0XHRcdHRoaXMucGVyc29uVXBkYXRlTGlzdCA9IFtdXHJcblx0XHRcdFx0XHQvLyDmlbTmlLnkurrmlbDmja7mi7/lj5ZcclxuXHRcdFx0XHRcdC8vIHRoaXMucGVyc29uVXBkYXRlTGlzdCA9IHZhbFswXS5zeXN0ZW1Vc2Vyc1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy5wZXJzb25VcGRhdGVMaXN0LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHQvLyBcdGlmIChpdGVtLnVzZXJJZCA9PSB2YWxbMF0uZHV0eUlkKSB7XHJcblx0XHRcdFx0XHQvLyBcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IGluZGV4XHJcblx0XHRcdFx0XHQvLyBcdH1cclxuXHRcdFx0XHRcdC8vIH0pO1xyXG5cdFx0XHRcdFx0dGhpcy5nZXRSZXZpZXdQZW9wbGVMaXN0KClcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gMikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+mAieaLqemXrumimOaPj+i/sOeahOaVsOaNricsIHZhbCk7XHJcblx0XHRcdFx0XHQvL+iuvue9rumXrumimOaPj+i/sFxyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmRhbmdlckl0ZW1Db250ZW50ID0gdmFsWzBdLmRhbmdlck5hbWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VySXRlbUlkID0gdmFsWzBdLmlkO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmxldmVsID0gdmFsWzBdLmxldmVsXHJcblx0XHRcdFx0XHR0aGlzLmZvcm0ucmVtYXJrID0gdmFsWzBdLnJlbWFyayAvL+aVtOaUueimgeaxglxyXG5cdFx0XHRcdFx0Ly/orr7nva7pl67popjnsbvlnotcclxuXHRcdFx0XHRcdGlmICh2YWxbMF0ucGFyZW50cy5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VyVHlwZUlkID0gdmFsWzBdLmlkO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmlzc3VlTmFtZSA9IHZhbFswXS5kYW5nZXJOYW1lO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5mb3JtLmRhbmdlclR5cGVJZCA9IHZhbFswXS5wYXJlbnRzWzBdLmlkO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmlzc3VlTmFtZSA9IHZhbFswXS5wYXJlbnRzWzBdLmRhbmdlck5hbWUgKyAnLycgKyB2YWxbMF0ucGFyZW50c1sxXS5kYW5nZXJOYW1lICsgJy8nICsgdmFsWzBdXHJcblx0XHRcdFx0XHRcdFx0LmRhbmdlck5hbWU7XHJcblx0XHRcdFx0XHRcdHRoaXMuZm9ybS5kYW5nZXJOYW1lID0gdmFsWzBdLmRhbmdlck5hbWVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gMykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codmFsKVxyXG5cdFx0XHRcdFx0dGhpcy5ub3RpZmllciA9IHZhbC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBpdGVtLndvcmtlck5hbWVcclxuXHRcdFx0XHRcdH0pLmpvaW4oJywnKTtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5ub3RpZnlQZXJzb24gPSB2YWwubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS53b3JrZXJOYW1lXHJcblx0XHRcdFx0XHR9KS5qb2luKCcsJylcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+iOt+WPlumXrumimOWIhuexu1xyXG5cdFx0XHRnZXRJc3N1ZUxpc3QoKSB7XHJcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3h6U2VjdXJpdHlEYW5nZXJUeXBlUmVjb3JkL3NlbGVjdERhbmdlclR5cGVBbmRJdGVtTGlzdCcsXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0JyxcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTbixcclxuXHRcdFx0XHRcdFx0cmVjb3JkU3RhdHVzOiAwLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5yZXN1bHQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdHJlcy5yZXN1bHQuZm9yRWFjaChpdGVtID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpdGVtLmNoaWxkcmVuLmZvckVhY2goaXRtID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoaXRtLml0ZW1MaXN0ICYmIGl0bS5pdGVtTGlzdC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpdG0uaXRlbUxpc3QuZm9yRWFjaChpdGVtMiA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGl0ZW0yLmRhbmdlck5hbWUgPSBpdGVtMi5jb250ZW50XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aXRtLmNoaWxkcmVuID0gaXRtLml0ZW1MaXN0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmlzc3VlTGlzdCA9IHJlcy5yZXN1bHRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblxyXG5cclxuXHRcdFx0Ly/ooaXlhYXor7TmmI5cclxuXHRcdFx0c3VwcGxlbWVudFRleHRhcmVhKGUpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZGFuZ2VyRGVzYyA9IGUuZGV0YWlsLnZhbHVlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5pW05pS56KaB5rGCXHJcblx0XHRcdGNsYWltVGV4dGFyZWEoZSkge1xyXG5cdFx0XHRcdHRoaXMuZm9ybS5yZW1hcmsgPSBlLmRldGFpbC52YWx1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+S6i+S7tuaPj+i/sFxyXG5cdFx0XHRldmVudERlc2NyaXB0aW9uKGUpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0uYWRkZWREZXNjcmlwdGlvbiA9IGUuZGV0YWlsLnZhbHVlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5beh5qOA5qW85bGCXHJcblx0XHRcdGV2ZW50Zmxvb3IoZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCflt6Hmo4DmpbzlsYItLS0nLCBlKTtcclxuXHRcdFx0XHRsZXQgaW5wdXQgPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZmxvb3IgPSBwYXJzZUludChpbnB1dCk7IC8vIOaIluiAhSB0aGlzLmZvcm0uZmxvb3IgPSBwYXJzZUludChpbnB1dCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6I635Y+W5YiG5YyF5YWs5Y+4XHJcblx0XHRcdGdldFN1YnBhY2thZ2VMc2l0KCkge1xyXG5cdFx0XHRcdGxldCBkYXRhID0ge1xyXG5cdFx0XHRcdFx0Ly8gZW50ZXJwcmlzZVR5cGVJZDogdGhpcy5jaGVja1R5cGUsXHJcblx0XHRcdFx0XHRwYWdlTm86IDEsXHJcblx0XHRcdFx0XHRwYWdlU2l6ZTogOTk5LFxyXG5cdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTbixcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9wcm9qZWN0RW50ZXJwcmlzZS9saXN0JyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ3Bvc3QnLFxyXG5cdFx0XHRcdFx0ZGF0YTogZGF0YSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5yZXN1bHQucmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IHJlcy5yZXN1bHQucmVjb3JkcztcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN1YnBhY2thZ2VMc2l0ID0gW107XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Ly/kuIvmi4npgInmi6nlm57mmL5cclxuXHRcdFx0YmluZFBpY2tlckNoYW5nZShlLCB0eXBlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coZSlcclxuXHRcdFx0XHQvL3R5cGUgPT0xIOmXrumimOetiee6pzsy57Sn5oCl5oOF5Ya1OzPmo4Dmn6Xkuro7NCDmo4Dmn6Xml7bpl7Q7NeaVtOaUueaXtumZkDsgNuaVtOaUueS6ujsgN+WkjeafpeS6ujsgOOaguOmqjOS6ujtcclxuXHRcdFx0XHRpZiAodHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHR0aGlzLmlzc3VlR3JhZGVJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmxldmVsID0gdGhpcy5pc3N1ZUdyYWRlTGlzdFtlLmRldGFpbC52YWx1ZV0udmFsdWU7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcclxuXHRcdFx0XHRcdHRoaXMudXJnZW5jeUluZGV4ID0gZS5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0udXJnZW50TGV2ZWwgPSB0aGlzLnVyZ2VuY3lMaXN0W2UuZGV0YWlsLnZhbHVlXS52YWx1ZTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gMykge1xyXG5cdFx0XHRcdFx0dGhpcy5pbnNwZWN0TWFuSW5kZXggPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5pbnNwZWN0TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZFxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAnc3RhcnRUaW1lJykge1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmluc3BlY3RUaW1lID0gZS5mMztcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gJ3N0YXJ0VGltZTInKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uY2hhbmdlTGltaXRUaW1lID0gZS5mMztcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGUgPT0gNikge1xyXG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IGUuZGV0YWlsLnZhbHVlO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmNoYW5nZUlkID0gdGhpcy5wZXJzb25VcGRhdGVMaXN0W2UuZGV0YWlsLnZhbHVlXS51c2VySWQ7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLmNoYW5nZVBlb3BsZUluZGV4LCB0aGlzLmZvcm0uY2hhbmdlSWQpXHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDcpIHtcclxuXHRcdFx0XHRcdHRoaXMucmV2aWV3SW5kZXggPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5yZXZpZXdJZCA9IHRoaXMucmV2aWV3TGlzdFtlLmRldGFpbC52YWx1ZV0udXNlcklkO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSA4KSB7XHJcblx0XHRcdFx0XHR0aGlzLnZlcmlmeU1hbkluZGV4ID0gZS5kZXRhaWwudmFsdWU7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbZS5kZXRhaWwudmFsdWVdLnVzZXJJZDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdC8v6I635Y+W5Lq65ZGY5YiX6KGoLS0tIOajgOafpeS6uuOAgeaVtOaUueS6uuOAgeWkjeafpeS6uuOAgeaguOmqjOS6uuOAgemAmuefpeS6ulxyXG5cdFx0XHRnZXRQZXJzb25MaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U25cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMucmVzdWx0KVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnJlc3VsdC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+ajgOafpeS6uuWRmOWIl+ihqCcsIHRoaXMucGVyc29uTGlzdCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wZXJzb25MaXN0ID0gcmVzLnJlc3VsdDtcclxuXHRcdFx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLnBlcnNvbkxpc3QuZmluZEluZGV4KGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGl0ZW0udXNlcklkID09IHRoaXMudXNlckluZm8udXNlcklkO1xyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0aWYgKGluZGV4ICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnZlcmlmeU1hbkluZGV4ID0gaW5kZXg7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbaW5kZXhdLnVzZXJJZDtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5kZWZhdWx0QXVkaXRQZXJzb24gPSB0aGlzLnVzZXJJbmZvLnJlYWxOYW1lO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy51c2VySW5mby51c2VySWQ7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGVyc29uTGlzdCA9IFtdO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8v6I635Y+W5Lq65ZGY5YiX6KGoLS0tIOaVtOaUueS6ulxyXG5cdFx0XHRnZXRQZXJzb25VcGRhdGVMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiAneG1nbC9zeXN0ZW1Vc2VyL2dldFByb2plY3RDaGlsZGVyU3lzdGVtVXNlckxpc3QnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXHJcblx0XHRcdFx0XHRcdGVudGVycHJpc2VJZDogdGhpcy51bml0RW50ZXJwcmlzZUlkXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5yZXN1bHQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmo4Dmn6XkurrlkZjliJfooagnLCB0aGlzLnBlcnNvbkxpc3QpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGVyc29uVXBkYXRlTGlzdCA9IHJlcy5yZXN1bHQ7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gW107XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblxyXG5cdFx0XHQvL+mAieaLqeeahOWIhuWMheWFrOWPuFxyXG5cdFx0XHRjaGVja1N1YnBhY2thZ2UodmFsKSB7XHJcblx0XHRcdFx0Ly8gaWYgKHRoaXMuY2hlY2tUeXBlID09IDEpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZVNuID0gdmFsLmVudGVycHJpc2VTbjtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSB2YWwuZW50ZXJwcmlzZU5hbWU7XHJcblx0XHRcdFx0dGhpcy51bml0RW50ZXJwcmlzZUlkID0gdmFsLmlkO1xyXG5cdFx0XHRcdHRoaXMuZm9ybS5jaGFuZ2VJZCA9IFwiXCI7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VQZW9wbGVJbmRleCA9IG51bGw7XHJcblx0XHRcdFx0dGhpcy5pc1Nob3dQaWNrZXIgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmlzU2hvd1BpY2tlciA9IHRydWU7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0bGV0IG5ld0FyciA9IFtdO1xyXG5cdFx0XHRcdGlmICh0aGlzLmFyZWFEYXRhLnN5c3RlbVVzZXJzKSB7XHJcblx0XHRcdFx0XHR0aGlzLmFyZWFEYXRhLnN5c3RlbVVzZXJzLmZpbHRlcigoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoaXRlbS51c2VySWQgJiYgaXRlbS5lbnRlcnByaXNlSWQgPT0gdGhpcy51bml0RW50ZXJwcmlzZUlkKSB7XHJcblx0XHRcdFx0XHRcdFx0bmV3QXJyLnB1c2goaXRlbSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gbmV3QXJyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyB0aGlzLmdldFBlcnNvblVwZGF0ZUxpc3QoKTtcclxuXHRcdFx0XHQvLyB9IGVsc2Uge1xyXG5cdFx0XHRcdC8vIFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9IHZhbC5lbnRlcnByaXNlU247XHJcblx0XHRcdFx0Ly8gXHR0aGlzLmZvcm0uZW50ZXJwcmlzZU5hbWUgPSB2YWwuZW50ZXJwcmlzZU5hbWU7XHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdHRoaXMudW5pdERpYWxvZyA9IGZhbHNlO1xyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdC8v5Yig6ZmkLS0t5YWs55SoXHJcblx0XHRcdGRlbGV0ZXNCdG4odHlwZSkge1xyXG5cdFx0XHRcdHdpbmRvdy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHRcdFx0XHQvL3R5cGU9PTEg5YiG5YyF5Y2V5L2NXHJcblx0XHRcdFx0aWYgKHR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VTbiA9ICcnO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLmVudGVycHJpc2VOYW1lID0gJyc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Ly/njrDlnLrmlbTmlLnmmK/lkKblrozmiJBcclxuXHRcdFx0c3dpdGNoQ2hhbmdlKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5kZXRhaWwudmFsdWUpIHtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5zdGF0dXMgPSA1O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uc3RhdHVzID0gMjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvL+mAieaLqeWIhuWMheWNleS9jVxyXG5cdFx0XHRjbGlja1VuaXQoKSB7XHJcblx0XHRcdFx0dGhpcy51bml0RGlhbG9nID0gdHJ1ZTtcclxuXHRcdFx0XHQvLyB0aGlzLmdldFN1YnBhY2thZ2VMc2l0KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5YiH5o2i5YiG5YyF5ZWGXHJcblx0XHRcdGNoZWNrVHlwZUJ0bih0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5jaGVja1R5cGUgPSB0eXBlO1xyXG5cdFx0XHRcdHRoaXMuZ2V0U3VicGFja2FnZUxzaXQoKTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8v5LiK5Lyg6ZmE5Lu2XHJcblx0XHRcdHVwbG9hZEltZyh0eXBlKSB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKHR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0dW5pLmNob29zZUltYWdlKHtcclxuXHRcdFx0XHRcdFx0Y291bnQ6IDUgLSB0aGF0LmltZ0ZpbGVMaXN0Lmxlbmd0aCxcclxuXHRcdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0ZW1wRmlsZVBhdGhzID0gcmVzLnRlbXBGaWxlUGF0aHM7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiB0aGF0LnVybF9jb25maWcgKyAndXBsb2FkL2ltYWdlJywgLy/ku4XkuLrnpLrkvovvvIzpnZ7nnJ/lrp7nmoTmjqXlj6PlnLDlnYBcclxuXHRcdFx0XHRcdFx0XHRcdGZpbGVQYXRoOiB0ZW1wRmlsZVBhdGhzWzBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcclxuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ICh1cGxvYWRGaWxlUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uaW1hZ2VVcmxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdGaWxlTGlzdC5wdXNoKGRhdGEpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5nZXRJbWFnZUluZm8oe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNyYzogdGVtcEZpbGVQYXRoc1swXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzOiAocmVzSW5mbykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S8oOi/h+WOu+WVpiByZXNJbmZvJywgcmVzSW5mbylcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaW1nTGlzdCA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aW1nVXJsOiB0ZW1wRmlsZVBhdGhzWzBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpbWdXaWR0aDogcmVzSW5mby53aWR0aCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aW1nSGVpZ2h0OiByZXNJbmZvLmhlaWdodCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gdGVhbTon54+t57uE5Lq65ZGYJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gbmFtZTogJ+W8oOS4iSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQub3BlbkltZyA9IGZhbHNlXHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PSAyKSB7XHJcblx0XHRcdFx0XHR1bmkuY2hvb3NlSW1hZ2Uoe1xyXG5cdFx0XHRcdFx0XHRjb3VudDogMSxcclxuXHRcdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0ZW1wRmlsZVBhdGhzID0gcmVzLnRlbXBGaWxlUGF0aHM7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiB0aGF0LnVybF9jb25maWcgKyAndXBsb2FkL2ltYWdlJywgLy/ku4XkuLrnpLrkvovvvIzpnZ7nnJ/lrp7nmoTmjqXlj6PlnLDlnYBcclxuXHRcdFx0XHRcdFx0XHRcdGZpbGVQYXRoOiB0ZW1wRmlsZVBhdGhzWzBdLFxyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpbGVzJyxcclxuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ICh1cGxvYWRGaWxlUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmZpbGVuYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uaW1hZ2VVcmxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW1nRGlhbG9nVXJsLmxlbmd0aCA+PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdEaWFsb2dVcmxbMF0udXJsID0gZGF0YS51cmxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmltZ0RpYWxvZ1VybFswXS5uYW1lID0gZGF0YS5uYW1lXHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaW1nRGlhbG9nVXJsLnB1c2goZGF0YSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuS4iuS8oOWbvueJh+eahOS/oeaBr++8mlwiLCB0aGF0LmltZ0RpYWxvZ1VybClcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dW5pLmNob29zZUltYWdlKHtcclxuXHRcdFx0XHRcdFx0Y291bnQ6IDEgLSB0aGF0Lm1hcEltZ0xpc3QubGVuZ3RoLFxyXG5cdFx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHRlbXBGaWxlUGF0aHMgPSByZXMudGVtcEZpbGVQYXRocztcclxuXHRcdFx0XHRcdFx0XHR1bmkudXBsb2FkRmlsZSh7XHJcblx0XHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQudXJsX2NvbmZpZyArICd1cGxvYWQvaW1hZ2UnLCAvL+S7heS4uuekuuS+i++8jOmdnuecn+WunueahOaOpeWPo+WcsOWdgFxyXG5cdFx0XHRcdFx0XHRcdFx0ZmlsZVBhdGg6IHRlbXBGaWxlUGF0aHNbMF0sXHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxyXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2VzczogKHVwbG9hZEZpbGVSZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGRhdGEgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogSlNPTi5wYXJzZSh1cGxvYWRGaWxlUmVzLmRhdGEpLmRhdGFbMF0uZmlsZW5hbWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dXJsOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5pbWFnZVVybFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1hcEltZ0xpc3QucHVzaChkYXRhKVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/liKDpmaTpmYTku7ZcclxuXHRcdFx0ZGVsZXRlSW1nKHZhbCwgdHlwZSkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHtcclxuXHRcdFx0XHRcdHRpdGxlOiAn5o+Q56S6JyxcclxuXHRcdFx0XHRcdGNvbnRlbnQ6ICfnoa7lrprliKDpmaTor6XpmYTku7blkJc/JyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmlsZUFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhhdC5pbWdGaWxlTGlzdCkpO1xyXG5cdFx0XHRcdFx0XHRcdFx0ZmlsZUFyci5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoaXRlbS51cmwgPT0gdmFsLnVybCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZpbGVBcnIuc3BsaWNlKGluZGV4LCAxKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbWdGaWxlTGlzdCA9IGZpbGVBcnI7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0eXBlID09IDIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGxldCBmaWxlQXJyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGF0LnZpZGVvRmlsZUxpc3QpKTtcclxuXHRcdFx0XHRcdFx0XHRcdGZpbGVBcnIuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGl0ZW0udXJsID09IHZhbC51cmwpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWxlQXJyLnNwbGljZShpbmRleCwgMSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudmlkZW9GaWxlTGlzdCA9IGZpbGVBcnI7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChyZXMuY2FuY2VsKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+eUqOaIt+eCueWHu+WPlua2iCcpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+S4iuS8oOinhumikVxyXG5cdFx0XHR1cGxvYWRWaWRlbygpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmNob29zZVZpZGVvKHtcclxuXHRcdFx0XHRcdGNvdW50OiA1IC0gdGhhdC52aWRlb0ZpbGVMaXN0Lmxlbmd0aCxcclxuXHRcdFx0XHRcdHNvdXJjZVR5cGU6IFsnY2FtZXJhJywgJ2FsYnVtJ10sXHJcblx0XHRcdFx0XHRjb21wcmVzc2VkOiBmYWxzZSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRsZXQgdXJsID0gcmVzLnRlbXBGaWxlUGF0aDtcclxuXHRcdFx0XHRcdFx0dW5pLnVwbG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdHVybDogdGhhdC51cmxfY29uZmlnICsgJ3VwbG9hZC9pbWFnZScsIC8v5LuF5Li656S65L6L77yM6Z2e55yf5a6e55qE5o6l5Y+j5Zyw5Z2AXHJcblx0XHRcdFx0XHRcdFx0ZmlsZVBhdGg6IHVybCxcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZmlsZXMnLFxyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ICh1cGxvYWRGaWxlUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgb2JqID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBKU09OLnBhcnNlKHVwbG9hZEZpbGVSZXMuZGF0YSkuZGF0YVswXS5maWxlSW5mb1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5vcmlnaW5hbEZpbGVuYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6IEpTT04ucGFyc2UodXBsb2FkRmlsZVJlcy5kYXRhKS5kYXRhWzBdLmltYWdlVXJsXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnZpZGVvRmlsZUxpc3QucHVzaChvYmopO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S4iuS8oOinhumikeWQjueahOaVsOaNricsIHRoYXQudmlkZW9GaWxlTGlzdCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v5p+l55yL6KeG6aKRXHJcblx0XHRcdHBsYXlWaWRlbyh1cmwsIHR5cGUpIHtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6ICcuLi9jYXJXYXNoTWFuYWdlL21lZGlhUGxheT91cmw9JyArIHVybCArICcmdHlwZT0nICsgdHlwZVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8v6aKE6KeI5Zu+54mHXHJcblx0XHRcdHByZXZpZXdJbWFnZSh1cmwpIHtcclxuXHRcdFx0XHR1bmkucHJldmlld0ltYWdlKHtcclxuXHRcdFx0XHRcdHVybHM6IFt1cmxdXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHJcblxyXG5cdFx0XHQvL+aWsOWinuS/neWtmFxyXG5cdFx0XHRhc3luYyBhZGRTYXZlQnRuKCkge1xyXG5cdFx0XHRcdGxldCBhcnIgPSBbXSxcclxuXHRcdFx0XHRcdGFycjIgPSBbXTtcclxuXHJcblxyXG5cdFx0XHRcdHRoaXMudmlkZW9GaWxlTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0YXJyLnB1c2goaXRlbS5uYW1lICsgXCIqXCIgKyB0aGlzLnVybF9jb25maWcgKyAnaW1hZ2UvJyArIGl0ZW0udXJsKVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0dGhpcy5pbWdGaWxlTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0YXJyMi5wdXNoKGl0ZW0ubmFtZSArIFwiKlwiICsgdGhpcy51cmxfY29uZmlnICsgJ2ltYWdlLycgKyBpdGVtLnVybClcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC8vIHRoaXMuZm9ybS5maWxlVXJsID0gdGhpcy52aWRlb0ZpbGVMaXN0Lmxlbmd0aD4wP0pTT04uc3RyaW5naWZ5KHRoaXMudmlkZW9GaWxlTGlzdCk6Jyc7XHJcblx0XHRcdFx0Ly8gdGhpcy5mb3JtLmltYWdlVXJsID0gdGhpcy5pbWdGaWxlTGlzdC5sZW5ndGg+MD9KU09OLnN0cmluZ2lmeSh0aGlzLmltZ0ZpbGVMaXN0KTonJztcclxuXHRcdFx0XHR0aGlzLmZvcm0uZmlsZVVybCA9IGFyci5qb2luKCcsJylcclxuXHRcdFx0XHR0aGlzLmZvcm0uaW1hZ2VVcmwgPSBhcnIyLmpvaW4oJywnKVxyXG5cdFx0XHRcdGxldCBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0pKTtcclxuXHRcdFx0XHRpZiAoIWRhdGEucmVnaW9uSWQpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpemDqOS9jScsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuZGFuZ2VySXRlbUNvbnRlbnQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6npl67popjmj4/ov7AnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCFkYXRhLmRhbmdlckl0ZW1Db250ZW50KSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6nmjpLmn6XliIbnsbsnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKCFkYXRhLmRhbmdlclR5cGVJZCAmJiB0aGlzLnR5cGVDaGVjayA9PSBcInR5cGUxXCIpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqemXrumimOWIhuexuycsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyBpZiAoZGF0YS5pbnNwZWN0TWFuSWQgPT0gJycpIHtcclxuXHRcdFx0XHQvLyBcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdC8vIFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpeS6uicsXHJcblx0XHRcdFx0Ly8gXHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdC8vIFx0fSlcclxuXHRcdFx0XHQvLyBcdHJldHVyblxyXG5cdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuaW5zcGVjdFRpbWUpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeajgOafpeaXtumXtCcsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuZW50ZXJwcmlzZU5hbWUpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeWIhuWMheWNleS9jScsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEuY2hhbmdlTGltaXRUaW1lICYmIHRoaXMudHlwZUNoZWNrID09IFwidHlwZTFcIikge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5pW05pS55pe26ZmQJyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICghZGF0YS5jaGFuZ2VJZCAmJiB0aGlzLnR5cGVDaGVjayA9PSBcInR5cGUxXCIpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+mAieaLqeaVtOaUueS6uicsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIWRhdGEucmV2aWV3SWQgJiYgdGhpcy50eXBlQ2hlY2sgPT0gXCJ0eXBlMVwiKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICfor7fpgInmi6nlpI3mn6XkuronLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKCFkYXRhLnZlcmlmeU1hbklkICYmIHRoaXMudHlwZUNoZWNrID09IFwidHlwZTFcIikge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6K+36YCJ5oup5qC45p+l5Lq6JyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRkYXRhLmxldmVsID0gZGF0YS5sZXZlbCA9PSAwID8gTnVtYmVyKGRhdGEubGV2ZWwpICsgMSA6IGRhdGEubGV2ZWw7XHJcblx0XHRcdFx0ZGF0YS51cmdlbnRMZXZlbCA9IGRhdGEudXJnZW50TGV2ZWwgPT0gMCA/IE51bWJlcihkYXRhLnVyZ2VudExldmVsKSArIDEgOiBkYXRhLnVyZ2VudExldmVsO1xyXG5cdFx0XHRcdGRhdGEucHJvamVjdFNuID0gdGhpcy5wcm9qZWN0U247XHJcblx0XHRcdFx0ZGF0YS5pbnNwZWN0TWFuSWQgPSB0aGlzLnVzZXJJbmZvLnVzZXJJZFxyXG5cdFx0XHRcdGRhdGEuY3JlYXRvcklkID0gdGhpcy51c2VySW5mby51c2VySWRcclxuXHRcdFx0XHRkYXRhLmRhbmdlckl0ZW1Db250ZW50ID0gdGhpcy5pc3N1ZU5hbWVcclxuXHRcdFx0XHRpZih0aGlzLmVuZ2luZWVyaW5nSWQpIGRhdGEuZW5naW5lZXJpbmdJZCA9IHRoaXMuZW5naW5lZXJpbmdJZFxyXG5cdFx0XHRcdGlmKHRoaXMudHlwZSkgZGF0YS50eXBlID0gdGhpcy50eXBlXHJcblx0XHRcdFx0bGV0IHBvaW50QXJyID0gW11cclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucG9pbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRsZXQgb2JqID1cclxuXHRcdFx0XHRcdFx0dGhpcy5wb2ludExpc3RbaV0ueCArXHJcblx0XHRcdFx0XHRcdCcqJyArXHJcblx0XHRcdFx0XHRcdHRoaXMucG9pbnRMaXN0W2ldLnlcclxuXHRcdFx0XHRcdHBvaW50QXJyLnB1c2gob2JqKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkYXRhLm1lYXN1cmVQb2ludHMgPSBwb2ludEFyci5qb2luKCcsJylcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnZGF0YS5tZWFzdXJlUG9pbnRzPT09PT09PT09PT09PScsIGRhdGEubWVhc3VyZVBvaW50cyk7XHJcblx0XHRcdFx0aWYgKHRoaXMudHlwZUNoZWNrID09IFwidHlwZTFcIikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YSk7XHJcblx0XHRcdFx0XHQvLyDlronlhajpl67pophcclxuXHRcdFx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0XHR1cmw6ICd4bWdsL3h6U2VjdXJpdHlRdWFsaXR5SW5zcGVjdGlvblJlY29yZC9hZGQnLFxyXG5cdFx0XHRcdFx0XHRtZXRob2Q6ICdwb3N0JyxcclxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YSxcclxuXHRcdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcylcclxuXHRcdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfkv53lrZjmiJDlip8nXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRlbHRhOiAxXHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHR9LCAxMjAwKVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5tZXNzYWdlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLnRhc2tJZCk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLml0ZW1JZCk7XHJcblx0XHRcdFx0XHQvLyDmjpLmn6XorrDlvZVcclxuXHRcdFx0XHRcdGxldCBkYXRhMiA9IHtcclxuXHRcdFx0XHRcdFx0ZGFuZ2VyRGVzYzogZGF0YS5kYW5nZXJEZXNjLFxyXG5cdFx0XHRcdFx0XHRkYW5nZXJJdGVtQ29udGVudDogdGhpcy5pc3N1ZU5hbWUsXHJcblx0XHRcdFx0XHRcdGRhbmdlckl0ZW1JZDogZGF0YS5kYW5nZXJJdGVtSWQsXHJcblx0XHRcdFx0XHRcdGRhbmdlclR5cGVJZDogZGF0YS5kYW5nZXJUeXBlSWQsXHJcblx0XHRcdFx0XHRcdGVudGVycHJpc2VOYW1lOiBkYXRhLmVudGVycHJpc2VOYW1lLFxyXG5cdFx0XHRcdFx0XHRlbnRlcnByaXNlU246IGRhdGEuZW50ZXJwcmlzZVNuLFxyXG5cdFx0XHRcdFx0XHRmaWxlVXJsOiBkYXRhLmZpbGVVcmwsXHJcblx0XHRcdFx0XHRcdGltYWdlVXJsOiBkYXRhLmltYWdlVXJsLFxyXG5cdFx0XHRcdFx0XHRpbnNwZWN0TWFuSWQ6IGRhdGEuaW5zcGVjdE1hbklkLFxyXG5cdFx0XHRcdFx0XHRpbnNwZWN0VGltZTogZGF0YS5pbnNwZWN0VGltZSxcclxuXHRcdFx0XHRcdFx0cHJvamVjdFNuOiBkYXRhLnByb2plY3RTbixcclxuXHRcdFx0XHRcdFx0cmVjb3JkVHlwZTogMixcclxuXHRcdFx0XHRcdFx0cmVnaW9uSWQ6IGRhdGEucmVnaW9uSWQsXHJcblx0XHRcdFx0XHRcdHJlZ2lvbk5hbWU6IGRhdGEucmVnaW9uTmFtZSxcclxuXHRcdFx0XHRcdFx0cm91dGluZUluc3BlY3Q6IDAsXHJcblx0XHRcdFx0XHRcdHN1YnNlY3Rpb25JZDogZGF0YS5zdWJzZWN0aW9uSWQsIC8v5YiG6YOo5bel56iLXHJcblx0XHRcdFx0XHRcdHN1YmVudHJ5SWQ6IGRhdGEuc3ViZW50cnlJZCwgLy/liIbpobnlt6XnqItcclxuXHRcdFx0XHRcdFx0Zmxvb3I6IGRhdGEuZmxvb3IsIC8v5beh5qOA5qW85bGCXHJcblx0XHRcdFx0XHRcdGFkZGVkRGVzY3JpcHRpb246IGRhdGEuYWRkZWREZXNjcmlwdGlvbiwgLy/kuovku7bmj4/ov7BcclxuXHRcdFx0XHRcdFx0dGFza0lkOiB0aGlzLnRhc2tJZCB8fCBudWxsLCAvLyDku7vliqFJRFxyXG5cdFx0XHRcdFx0XHRpdGVtSWQ6IHRoaXMuaXRlbUlkIHx8IG51bGwsIC8vIOS7u+WKoeWtkElEXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGlmKHRoaXMuZW5naW5lZXJpbmdJZCkgZGF0YTIuZW5naW5lZXJpbmdJZCA9IHRoaXMuZW5naW5lZXJpbmdJZFxyXG5cdFx0XHRcdFx0aWYodGhpcy50eXBlKSBkYXRhMi50eXBlID0gdGhpcy50eXBlXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhLnRhc2tJZCk7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KHtcclxuXHRcdFx0XHRcdFx0dXJsOiAneG1nbC94elNlY3VyaXR5UXVhbGl0eUluc3BlY3Rpb25SZWNvcmQvYWRkJyxcclxuXHRcdFx0XHRcdFx0bWV0aG9kOiAncG9zdCcsXHJcblx0XHRcdFx0XHRcdGRhdGE6IGRhdGEyLFxyXG5cdFx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKVxyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+S/neWtmOaIkOWKnydcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVsdGE6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdH0sIDEyMDApXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogcmVzLm1lc3NhZ2UsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Ly8g5YiH5o2idGFiXHJcblx0XHRcdHJhZGlvQ2hhbmdlKHZhbHVlKSB7XHJcblxyXG5cdFx0XHRcdHRoaXMudHlwZUNoZWNrID0gdmFsdWVcclxuXHRcdFx0XHR0aGlzLmNoZWNrZWRUYWIgPSB2YWx1ZVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfliIfmjaJ0YWInLCB0aGlzLmZvcm0pO1xyXG5cdFx0XHRcdC8vIOmHjeWItuWGheWuuVxyXG5cdFx0XHRcdHRoaXMuZm9ybSA9IHtcclxuXHRcdFx0XHRcdHJlZ2lvbklkOiBcIlwiLCAvLyDmo4Dmn6Xpg6jkvY1cclxuXHRcdFx0XHRcdHJlZ2lvbk5hbWU6IFwiXCIsXHJcblx0XHRcdFx0XHRkYW5nZXJJdGVtQ29udGVudDogXCJcIixcclxuXHRcdFx0XHRcdGRhbmdlckl0ZW1JZDogXCJcIixcclxuXHRcdFx0XHRcdGRhbmdlclR5cGVJZDogXCJcIixcclxuXHRcdFx0XHRcdGRhbmdlckRlc2M6IFwiXCIsXHJcblx0XHRcdFx0XHRyZW1hcms6IFwiXCIsXHJcblx0XHRcdFx0XHRyb3V0aW5lSWQ6IDAsXHJcblx0XHRcdFx0XHRsZXZlbDogMCxcclxuXHRcdFx0XHRcdHVyZ2VudExldmVsOiAwLFxyXG5cdFx0XHRcdFx0aW5zcGVjdE1hbklkOiBcIlwiLFxyXG5cdFx0XHRcdFx0aW5zcGVjdFRpbWU6IGRhdGVmb3JtYXQobmV3IERhdGUoKSksXHJcblx0XHRcdFx0XHRlbnRlcnByaXNlU246IFwiXCIsXHJcblx0XHRcdFx0XHRlbnRlcnByaXNlTmFtZTogXCJcIixcclxuXHRcdFx0XHRcdGNoYW5nZUxpbWl0VGltZTogXCJcIixcclxuXHRcdFx0XHRcdGNoYW5nZUlkOiBcIlwiLFxyXG5cdFx0XHRcdFx0cmV2aWV3SWQ6IFwiXCIsXHJcblx0XHRcdFx0XHR2ZXJpZnlNYW5JZDogXCJcIixcclxuXHRcdFx0XHRcdG5vdGlmeVBlcnNvbjogW10sXHJcblx0XHRcdFx0XHRzdGF0dXM6IDIsIC8vIOeOsOWcuuaVtOaUueeKtuaAgSAgMuacquWujOaIkCAgIDXlt7LlrozmiJBcclxuXHRcdFx0XHRcdG1lYXN1cmVQb2ludHM6IFtdLFxyXG5cdFx0XHRcdFx0aW1hZ2VVcmw6IFwiXCIsXHJcblx0XHRcdFx0XHRmaWxlVXJsOiBcIlwiLFxyXG5cdFx0XHRcdFx0cmVjb3JkVHlwZTogMSxcclxuXHRcdFx0XHRcdC8vIHRhc2tJZDonJyxcclxuXHRcdFx0XHRcdC8vIGl0ZW1JZDonJ1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0dGhpcy5pc3N1ZU5hbWUgPSAnJ1xyXG5cdFx0XHRcdHRoaXMuY2hlY2tQb2ludE5hbWUgPSBcIlwiXHJcblx0XHRcdFx0dGhpcy52aWRlb0ZpbGVMaXN0ID0gW107XHJcblx0XHRcdFx0dGhpcy5pbWdGaWxlTGlzdCA9IFtdO1xyXG5cdFx0XHRcdHRoaXMuc3Vic2VjdGlvbkluZGV4ID0gLTFcclxuXHRcdFx0XHR0aGlzLnN1YmVudHJ5SW5kZXggPSAtMVxyXG5cdFx0XHRcdHRoaXMuY2hhbmdlUGVvcGxlSW5kZXggPSBudWxsXHJcblx0XHRcdFx0Ly8g5YiG5YyF5Y2V5L2N5pWw5o2u5ou/5Y+WXHJcblx0XHRcdFx0dGhpcy5zdWJwYWNrYWdlTHNpdCA9IFtdXHJcblx0XHRcdFx0Ly8g5pW05pS55Lq65pWw5o2u5ou/5Y+WXHJcblx0XHRcdFx0dGhpcy5wZXJzb25VcGRhdGVMaXN0ID0gW11cclxuXHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLnBlcnNvbkxpc3QuZmluZEluZGV4KGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGl0ZW0udXNlcklkID09IHRoaXMudXNlckluZm8udXNlcklkO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0aWYgKGluZGV4ICE9IC0xKSB7XHJcblx0XHRcdFx0XHR0aGlzLnZlcmlmeU1hbkluZGV4ID0gaW5kZXg7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0udmVyaWZ5TWFuSWQgPSB0aGlzLnBlcnNvbkxpc3RbaW5kZXhdLnVzZXJJZDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5kZWZhdWx0QXVkaXRQZXJzb24gPSB0aGlzLnVzZXJJbmZvLnJlYWxOYW1lO1xyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnZlcmlmeU1hbklkID0gdGhpcy51c2VySW5mby51c2VySWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuXHQudGFiIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA0NXB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Ym94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxOTQsIDE5NCwgMTk0LCAwLjUpO1xyXG5cdH1cclxuXHJcblx0LnRhYlR5cGUge1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGxpbmUtaGVpZ2h0OiA0M3B4O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTk0LCAxOTQsIDE5NCwgMC4yKTtcclxuXHJcblx0fVxyXG5cclxuXHQuY2hlY2tlZFRhYiB7XHJcblx0XHRjb2xvcjogIzQxODFGRTtcclxuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNDE4MUZFO1xyXG5cclxuXHR9XHJcblxyXG5cdC5ub0NoZWNrVGFiIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAycHg7XHJcblx0fVxyXG5cclxuXHQubGFnQ3NzIHtcclxuXHRcdHdpZHRoOiAxODBweDtcclxuXHRcdGhlaWdodDogNjFweDtcclxuXHRcdGJhY2tncm91bmQ6ICNmZmY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDogMjlweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblx0fVxyXG5cclxuXHQuYWRkMiB7XHJcblx0XHR3aWR0aDogMTIwcHg7XHJcblx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHRsaW5lLWhlaWdodDogMzBweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0YmFja2dyb3VuZDogIzQxODFmZTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRtYXJnaW46IDBweCAyMnB4O1xyXG5cdH1cclxuXHJcblx0LnBvaW50IHtcclxuXHRcdGhlaWdodDogMjBweDtcclxuXHRcdHdpZHRoOiAyMHB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdH1cclxuXHJcblx0LmZsZXgge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQuZmxleDIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0fVxyXG5cclxuXHQuZmxleDMge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHR9XHJcblxyXG5cdC5jb250ZW50IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdHBhZGRpbmc6IDIwcHggMzBycHg7XHJcblx0fVxyXG5cclxuXHQudHlwZSB7XHJcblx0XHRmb250LXNpemU6IDMwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA4cHg7XHJcblx0XHQvKiBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxOTQsIDE5NCwgMTk0LCAwLjIpOyAqL1xyXG5cdH1cclxuXHJcblx0LnR5cGUgLm5hbWUge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiA2cHg7XHJcblx0XHR3aWR0aDogMTc2cnB4O1xyXG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0fVxyXG5cclxuXHQucmFkaW8td3JhcCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblx0XHQucmFkaW8ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuYWNjZXNzb3J5IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA3MHB4O1xyXG5cdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHR9XHJcblxyXG5cdC5hY2Nlc3NvcnlJbWcge1xyXG5cdFx0d2lkdGg6IDExMHJweDtcclxuXHRcdGhlaWdodDogNjBweDtcclxuXHRcdG1hcmdpbi1yaWdodDogOHB4O1xyXG5cdH1cclxuXHJcblx0LnBpY2tlciB7XHJcblx0XHR3aWR0aDogNzAlO1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSg0MiwgNDMsIDkxLCAwLjMpO1xyXG5cdFx0cGFkZGluZzogMHB4IDMwcnB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHR9XHJcblxyXG5cdC51bmktaW5wdXQge1xyXG5cdFx0bGluZS1oZWlnaHQ6IDMycHg7XHJcblx0fVxyXG5cclxuXHQudGV4dGFyZWEge1xyXG5cdFx0d2lkdGg6IGNhbGMoNzklIC0gMzJweCk7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQyLCA0MywgOTEsIDAuMyk7XHJcblx0XHRwYWRkaW5nOiA4cHggMTVweDtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRoZWlnaHQ6IDUwcHg7XHJcblx0fVxyXG5cclxuXHQuaW5wdVN0eWxlIHtcclxuXHRcdHdpZHRoOiBjYWxjKDgwJSAtIDM1cHgpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsIDQzLCA5MSwgMC4zKTtcclxuXHRcdHBhZGRpbmc6IDhweCAxNXB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdGhlaWdodDogMzVweDtcclxuXHRcdGNvbG9yOiAjMDAwO1xyXG5cdH1cclxuXHJcblx0LmNsIHtcclxuXHRcdGZvbnQtc2l6ZTogMzBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0fVxyXG5cclxuXHJcblx0LmltZ0JveF93cmFwIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdFx0d2lkdGg6IDc1JTtcclxuXHR9XHJcblxyXG5cdC5pbWdCb3gge1xyXG5cdFx0d2lkdGg6IDYwcHg7XHJcblx0XHRoZWlnaHQ6IDYwcHg7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi1yaWdodDogMTVweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcclxuXHJcblx0XHQuaW1nIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuZGVsZXRlSW1nIHtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRyaWdodDogLTNweDtcclxuXHRcdFx0dG9wOiAtMThweDtcclxuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHQuYWRkSW1nQm94IHtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsIDQzLCA5MSwgMC4xKTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNmY1Zjg7XHJcblx0XHR3aWR0aDogNjBweDtcclxuXHRcdGhlaWdodDogNjBweDtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuXHRcdGZvbnQtc2l6ZTogMTJweDtcclxuXHJcblx0XHQuaWNvbi1hZGQge1xyXG5cdFx0XHR3aWR0aDogMThweDtcclxuXHRcdFx0aGVpZ2h0OiAxOHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnVuaXREaWFsb2cge1xyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0ei1pbmRleDogMTExO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG5cdH1cclxuXHJcblx0LnVuaXRDb250ZW50IHtcclxuXHRcdHdpZHRoOiA4NSU7XHJcblx0XHRoZWlnaHQ6IDcwJTtcclxuXHRcdG1hcmdpbjogMjUlIGF1dG8gMDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0cGFkZGluZzogMjBweCAzMHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHRcdGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcclxuXHR9XHJcblxyXG5cdC50YWJzIHtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuNSk7XHJcblx0fVxyXG5cclxuXHQudGFic19uYW1lIHtcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nOiA1cHggMTBycHg7XHJcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0Zm9udC1zaXplOiAzMHJweDtcclxuXHR9XHJcblxyXG5cdC5jaGVja05hbWUge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0MTgxRkU7XHJcblx0XHRjb2xvcjogIzQxODFGRTtcclxuXHR9XHJcblxyXG5cdC5ub0NoZWNrTmFtZSB7XHJcblx0XHRwYWRkaW5nLXRvcDogNHB4O1xyXG5cdH1cclxuXHJcblx0LnVuaXRMaXN0IHtcclxuXHRcdG1hcmdpbjogMTBweCAwO1xyXG5cdFx0Zm9udC1zaXplOiAzMHJweDtcclxuXHJcblx0XHQudGl0bGUge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5saXN0X3ZhbCB7XHJcblx0XHRcdHBhZGRpbmc6IDhweCAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJnXzk5OSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1MywgMTUzLCAxNTMsIDAuMSk7XHJcblx0fVxyXG5cclxuXHQuZWxsaXBzaXMge1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMge1xyXG5cdFx0Y29sb3I6ICMwMDdBRkY7XHJcblx0fVxyXG5cclxuXHQuYWRkU2F2ZUJ0biB7XHJcblx0XHRtYXJnaW46IDMwcHggYXV0bztcclxuXHRcdHdpZHRoOiA2MCU7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDA7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNDE4MUZFO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRmb250LXNpemU6IDM0cnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMzBweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAycHg7XHJcblx0XHRib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoNjUsIDEyOSwgMjU0LCAwLjgpO1xyXG5cdH1cclxuXHJcblx0LmFkZFNhdmVCdG46YWN0aXZlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjUsIDEyOSwgMjU0LCAwLjgpO1xyXG5cdH1cclxuXHJcblx0LnJhZGlvLWJveCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdH1cclxuXHJcblx0LnJhZGlvLWl0ZW0ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdG1hcmdpbi1yaWdodDogMjBycHg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAyOHJweDtcclxuXHJcblx0XHQvZGVlcC8gLnVuaS1yYWRpby1pbnB1dCB7XHJcblx0XHRcdHdpZHRoOiAzMnJweDtcclxuXHRcdFx0aGVpZ2h0OiAzMnJweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5yYWRpby10ZXh0IHtcclxuXHRcdGhlaWdodDogNzJycHg7XHJcblx0fVxyXG5cclxuXHQuYnV0QSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0Ly8gcG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiA2MCU7XHJcblxyXG5cdFx0d2lkdGg6IDcwJTtcclxuXHR9XHJcblxyXG5cdC5pY29uLXJpZ2h0IHtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxNnJweDtcclxuXHRcdHdpZHRoOiAxNnJweDtcclxuXHRcdGhlaWdodDogMzJycHg7XHJcblx0fVxyXG5cclxuXHQuZGF0ZVRpbWVQaWNja2VyIHtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHR3aWR0aDogNjclO1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///792\n"); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /***/ }), /* 793 */ @@ -136581,7 +136620,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu /***/ (function(module, exports, __webpack_require__) { "use strict"; +<<<<<<< HEAD eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n list: [{\n name: '苹果'\n }, {\n name: '香蕉'\n }, {\n name: '橙子'\n }, {\n name: '葡萄'\n }\n // ... 更多选项\n ],\n\n selectedItem: {},\n isDis: 'dis',\n workerId: '',\n desc: '',\n deductScore: '',\n workerList: [],\n workerInfoList: [],\n handleResult: '',\n alarmItem: {}\n };\n },\n onLoad: function onLoad(option) {\n this.alarmItem = JSON.parse(decodeURIComponent(option.item));\n __f__(\"log\", 'alarmItem', this.alarmItem, \" at pages/alarmPage/disposition/disposition.vue:111\");\n this.deductScore = this.alarmItem.aiDeductRule.deductScore;\n },\n mounted: function mounted() {\n this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;\n this.getWorkerList();\n },\n methods: {\n onChange: function onChange(e) {\n var index = e.detail.value;\n this.selectedItem = this.workerList[index];\n this.workerId = this.selectedItem.id;\n __f__(\"log\", \"change!!!!!!!!!\", \" at pages/alarmPage/disposition/disposition.vue:123\");\n },\n confirm: function confirm() {\n __f__(\"log\", \">>>>>>>>>>>>>>>>>>>>>>>\", \" at pages/alarmPage/disposition/disposition.vue:127\");\n __f__(\"log\", this.selectedItem, \" at pages/alarmPage/disposition/disposition.vue:128\");\n __f__(\"log\", this.alarmItem, \" at pages/alarmPage/disposition/disposition.vue:129\");\n var requestData = {};\n if (this.isDis == 'dis') {\n requestData = _objectSpread(_objectSpread({}, this.alarmItem), {}, {\n handleResult: 1,\n handleDone: true,\n projectSn: this.projectSn,\n workerInfoList: [{\n id: this.workerId\n }]\n });\n if (this.workerId === '' || this.workerId === null || this.workerId === undefined) {\n uni.showToast({\n title: '请选择违章人员',\n icon: \"none\"\n });\n return;\n }\n if (!this.deductScore) {\n uni.showToast({\n title: '请输入分数',\n icon: \"none\"\n });\n return;\n }\n } else {\n requestData = _objectSpread(_objectSpread({}, this.alarmItem), {}, {\n handleResult: 2,\n projectSn: this.projectSn\n });\n }\n // if(this.isDis === 'dis') {\n // \tif(this.workerId === '' || this.workerId === null || this.workerId === undefined){\n // \t\tuni.showToast({\n // \t\t title: '请选择违章人员',\n // \t\t icon: \"none\"\n // \t\t})\n // \t\treturn\n // \t}\n // \tif(!this.deductScore){\n // \t\tuni.showToast({\n // \t\t title: '请输入分数',\n // \t\t icon: \"none\"\n // \t\t})\n // \t\treturn\n // \t}\n // \tif(this.deductScore <= 0 || this.deductScore > 100){\n // \t\tuni.showToast({\n // \t\t title: '请输入1-100内的分数',\n // \t\t icon: \"none\"\n // \t\t})\n // \t\treturn\n // \t}\n\n // \tthis.handleResult = 1\n // \tthis.alarmItem.desc = this.desc\n // \tthis.alarmItem.workerInfoList = [{id: this.workerId}]\n // \tthis.alarmItem.deductScore = this.deductScore\n // \tthis.alarmItem.handleResult = this.handleResult\n // }\n // if(this.isDis === 'ign'){\n // \tthis.handleResult = 2\n // \tthis.alarmItem.handleResult = this.handleResult\n // }\n // this.handleResult = 1\n\n this.sendRequest({\n // url: 'xmgl/aiAnalyseHardWareAlarmRecord/edit',\n url: 'xmgl/aiAnalyseHardWareAlarmRecord/setFalsePositive',\n method: \"post\",\n data: requestData,\n success: function success(res) {\n if (res.code == 200) {\n __f__(\"log\", 'res', res, \" at pages/alarmPage/disposition/disposition.vue:202\");\n uni.navigateBack({\n delta: 2\n });\n }\n }\n });\n },\n getWorkerList: function getWorkerList() {\n var _this = this;\n this.sendRequest({\n url: 'xmgl/workerInfo/selectWorkerInfoList',\n method: \"post\",\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n if (res.code == 200) {\n __f__(\"log\", 'workerListRes', res, \" at pages/alarmPage/disposition/disposition.vue:217\");\n _this.workerList = res.result.records;\n }\n }\n });\n },\n isShowContent: function isShowContent(e) {\n this.isDis = e.detail.value;\n if (this.isDis === 'ign') {\n this.cleanForm();\n }\n },\n cleanForm: function cleanForm() {\n this.workerId = '';\n // this.desc = ''\n // this.deductScore = ''\n },\n bindTextAreaBlur: function bindTextAreaBlur(e) {\n this.desc = e.detail.value;\n __f__(\"log\", e.detail.value, \" at pages/alarmPage/disposition/disposition.vue:236\");\n },\n change: function change(e) {\n __f__(\"log\", \"e:\", e, \" at pages/alarmPage/disposition/disposition.vue:239\");\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvYWxhcm1QYWdlL2Rpc3Bvc2l0aW9uL2Rpc3Bvc2l0aW9uLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibGlzdCIsIm5hbWUiLCJzZWxlY3RlZEl0ZW0iLCJpc0RpcyIsIndvcmtlcklkIiwiZGVzYyIsImRlZHVjdFNjb3JlIiwid29ya2VyTGlzdCIsIndvcmtlckluZm9MaXN0IiwiaGFuZGxlUmVzdWx0IiwiYWxhcm1JdGVtIiwib25Mb2FkIiwib3B0aW9uIiwiSlNPTiIsInBhcnNlIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiaXRlbSIsImFpRGVkdWN0UnVsZSIsIm1vdW50ZWQiLCJwcm9qZWN0U24iLCJ1bmkiLCJnZXRTdG9yYWdlU3luYyIsImdldFdvcmtlckxpc3QiLCJtZXRob2RzIiwib25DaGFuZ2UiLCJlIiwiaW5kZXgiLCJkZXRhaWwiLCJ2YWx1ZSIsImlkIiwiY29uZmlybSIsInJlcXVlc3REYXRhIiwiaGFuZGxlRG9uZSIsInVuZGVmaW5lZCIsInNob3dUb2FzdCIsInRpdGxlIiwiaWNvbiIsInNlbmRSZXF1ZXN0IiwidXJsIiwibWV0aG9kIiwic3VjY2VzcyIsInJlcyIsImNvZGUiLCJuYXZpZ2F0ZUJhY2siLCJkZWx0YSIsInJlc3VsdCIsInJlY29yZHMiLCJpc1Nob3dDb250ZW50IiwiY2xlYW5Gb3JtIiwiYmluZFRleHRBcmVhQmx1ciIsImNoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QWUsRUFBRUQsR0FBRztZQUNoQyxLQUFJLENBQUNsQyxVQUFVLEdBQUdrQyxHQUFHLENBQUNJLE1BQU0sQ0FBQ0MsT0FBTztVQUNyQztRQUNEO01BQ0QsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUNEQyxhQUFhLHlCQUFDdEIsQ0FBQyxFQUFDO01BQ2YsSUFBSSxDQUFDdEIsS0FBSyxHQUFHc0IsQ0FBQyxDQUFDRSxNQUFNLENBQUNDLEtBQUs7TUFDM0IsSUFBRyxJQUFJLENBQUN6QixLQUFLLEtBQUssS0FBSyxFQUFDO1FBQ3ZCLElBQUksQ0FBQzZDLFNBQVMsRUFBRTtNQUNqQjtJQUNELENBQUM7SUFDREEsU0FBUyx1QkFBRTtNQUNWLElBQUksQ0FBQzVDLFFBQVEsR0FBRyxFQUFFO01BQ2xCO01BQ0E7SUFDRCxDQUFDO0lBQ0Q2QyxnQkFBZ0IsNEJBQUN4QixDQUFDLEVBQUU7TUFDbkIsSUFBSSxDQUFDcEIsSUFBSSxHQUFHb0IsQ0FBQyxDQUFDRSxNQUFNLENBQUNDLEtBQUs7TUFDMUIsYUFBWUgsQ0FBQyxDQUFDRSxNQUFNLENBQUNDLEtBQUs7SUFDM0IsQ0FBQztJQUNEc0IsTUFBTSxrQkFBQ3pCLENBQUMsRUFBRTtNQUNULGFBQVksSUFBSSxFQUFFQSxDQUFDO0lBQ3BCO0VBQ0Q7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiMTMxNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGRhdGEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGxpc3Q6IFtcblx0XHRcdCAgICB7IG5hbWU6ICfoi7nmnpwnIH0sXG5cdFx0XHQgICAgeyBuYW1lOiAn6aaZ6JWJJyB9LFxuXHRcdFx0ICAgIHsgbmFtZTogJ+apmeWtkCcgfSxcblx0XHRcdCAgICB7IG5hbWU6ICfokaHokIQnIH0sXG5cdFx0XHQgICAgICAgIC8vIC4uLiDmm7TlpJrpgInpoblcblx0XHRcdF0sXG5cdFx0XHRzZWxlY3RlZEl0ZW06IHt9LFxuXHRcdFx0XG5cdFx0XHRcblx0XHRcdFxuXHRcdFx0aXNEaXM6ICdkaXMnLFxuXHRcdFx0d29ya2VySWQ6ICcnLFxuXHRcdFx0ZGVzYzogJycsXG5cdFx0XHRkZWR1Y3RTY29yZTogJycsXG5cdFx0XHR3b3JrZXJMaXN0OiBbXSxcblx0XHRcdHdvcmtlckluZm9MaXN0OiBbXSxcblx0XHRcdGhhbmRsZVJlc3VsdDogJycsXG5cdFx0XHRhbGFybUl0ZW06IHt9LFxuXHRcdH1cblx0fSxcblx0b25Mb2FkKG9wdGlvbikge1xuXHRcdHRoaXMuYWxhcm1JdGVtID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQob3B0aW9uLml0ZW0pKTtcblx0XHRjb25zb2xlLmxvZygnYWxhcm1JdGVtJyx0aGlzLmFsYXJtSXRlbSlcblx0XHR0aGlzLmRlZHVjdFNjb3JlID0gdGhpcy5hbGFybUl0ZW0uYWlEZWR1Y3RSdWxlLmRlZHVjdFNjb3JlXG5cdH0sXG5cdG1vdW50ZWQoKSB7XG5cdFx0dGhpcy5wcm9qZWN0U24gPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYygncHJvamVjdERldGFpbCcpKS5wcm9qZWN0U247XG5cdFx0dGhpcy5nZXRXb3JrZXJMaXN0KClcblx0fSxcblx0bWV0aG9kczoge1xuXHRcdG9uQ2hhbmdlKGUpIHtcblx0XHRcdGNvbnN0IGluZGV4ID0gZS5kZXRhaWwudmFsdWU7XG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMud29ya2VyTGlzdFtpbmRleF07XG5cdFx0XHR0aGlzLndvcmtlcklkID0gdGhpcy5zZWxlY3RlZEl0ZW0uaWRcblx0XHRcdGNvbnNvbGUubG9nKFwiY2hhbmdlISEhISEhISEhXCIpXG5cdFx0fSxcblx0XHRcblx0XHRjb25maXJtKCl7XG5cdFx0XHRjb25zb2xlLmxvZyhcIj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+XCIpO1xuXHRcdFx0Y29uc29sZS5sb2codGhpcy5zZWxlY3RlZEl0ZW0pO1xuXHRcdFx0Y29uc29sZS5sb2codGhpcy5hbGFybUl0ZW0pO1xuXHRcdFx0bGV0IHJlcXVlc3REYXRhID0ge31cblx0XHRcdGlmKHRoaXMuaXNEaXMgPT0gJ2Rpcycpe1xuXHRcdFx0XHRyZXF1ZXN0RGF0YSA9IHtcblx0XHRcdFx0XHQuLi50aGlzLmFsYXJtSXRlbSxcblx0XHRcdFx0XHRoYW5kbGVSZXN1bHQ6IDEsXG5cdFx0XHRcdFx0aGFuZGxlRG9uZTogdHJ1ZSxcblx0XHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuLFxuXHRcdFx0XHRcdHdvcmtlckluZm9MaXN0OiBbe2lkOiB0aGlzLndvcmtlcklkfV1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZih0aGlzLndvcmtlcklkID09PSAnJyB8fCB0aGlzLndvcmtlcklkID09PSBudWxsIHx8IHRoaXMud29ya2VySWQgPT09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0ICB0aXRsZTogJ+ivt+mAieaLqei/neeroOS6uuWRmCcsXG5cdFx0XHRcdFx0ICBpY29uOiBcIm5vbmVcIlxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYoIXRoaXMuZGVkdWN0U2NvcmUpe1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdCAgdGl0bGU6ICfor7fovpPlhaXliIbmlbAnLFxuXHRcdFx0XHRcdCAgaWNvbjogXCJub25lXCJcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHR9ZWxzZXtcblx0XHRcdFx0cmVxdWVzdERhdGEgPSB7XG5cdFx0XHRcdFx0Li4udGhpcy5hbGFybUl0ZW0sXG5cdFx0XHRcdFx0aGFuZGxlUmVzdWx0OiAyLFxuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIGlmKHRoaXMuaXNEaXMgPT09ICdkaXMnKSB7XG5cdFx0XHQvLyBcdGlmKHRoaXMud29ya2VySWQgPT09ICcnIHx8IHRoaXMud29ya2VySWQgPT09IG51bGwgfHwgdGhpcy53b3JrZXJJZCA9PT0gdW5kZWZpbmVkKXtcblx0XHRcdC8vIFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdC8vIFx0XHQgIHRpdGxlOiAn6K+36YCJ5oup6L+d56ug5Lq65ZGYJyxcblx0XHRcdC8vIFx0XHQgIGljb246IFwibm9uZVwiXG5cdFx0XHQvLyBcdFx0fSlcblx0XHRcdC8vIFx0XHRyZXR1cm5cblx0XHRcdC8vIFx0fVxuXHRcdFx0Ly8gXHRpZighdGhpcy5kZWR1Y3RTY29yZSl7XG5cdFx0XHQvLyBcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHQvLyBcdFx0ICB0aXRsZTogJ+ivt+i+k+WFpeWIhuaVsCcsXG5cdFx0XHQvLyBcdFx0ICBpY29uOiBcIm5vbmVcIlxuXHRcdFx0Ly8gXHRcdH0pXG5cdFx0XHQvLyBcdFx0cmV0dXJuXG5cdFx0XHQvLyBcdH1cblx0XHRcdC8vIFx0aWYodGhpcy5kZWR1Y3RTY29yZSA8PSAwIHx8IHRoaXMuZGVkdWN0U2NvcmUgPiAxMDApe1xuXHRcdFx0Ly8gXHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0Ly8gXHRcdCAgdGl0bGU6ICfor7fovpPlhaUxLTEwMOWGheeahOWIhuaVsCcsXG5cdFx0XHQvLyBcdFx0ICBpY29uOiBcIm5vbmVcIlxuXHRcdFx0Ly8gXHRcdH0pXG5cdFx0XHQvLyBcdFx0cmV0dXJuXG5cdFx0XHQvLyBcdH1cblx0XHRcdFx0XHRcblx0XHRcdC8vIFx0dGhpcy5oYW5kbGVSZXN1bHQgPSAxXG5cdFx0XHQvLyBcdHRoaXMuYWxhcm1JdGVtLmRlc2MgPSB0aGlzLmRlc2Ncblx0XHRcdC8vIFx0dGhpcy5hbGFybUl0ZW0ud29ya2VySW5mb0xpc3QgPSBbe2lkOiB0aGlzLndvcmtlcklkfV1cblx0XHRcdC8vIFx0dGhpcy5hbGFybUl0ZW0uZGVkdWN0U2NvcmUgPSB0aGlzLmRlZHVjdFNjb3JlXG5cdFx0XHQvLyBcdHRoaXMuYWxhcm1JdGVtLmhhbmRsZVJlc3VsdCA9IHRoaXMuaGFuZGxlUmVzdWx0XG5cdFx0XHQvLyB9XG5cdFx0XHQvLyBpZih0aGlzLmlzRGlzID09PSAnaWduJyl7XG5cdFx0XHQvLyBcdHRoaXMuaGFuZGxlUmVzdWx0ID0gMlxuXHRcdFx0Ly8gXHR0aGlzLmFsYXJtSXRlbS5oYW5kbGVSZXN1bHQgPSB0aGlzLmhhbmRsZVJlc3VsdFxuXHRcdFx0Ly8gfVxuXHRcdFx0Ly8gdGhpcy5oYW5kbGVSZXN1bHQgPSAxXG5cdFx0XHRcblx0XHRcdHRoaXMuc2VuZFJlcXVlc3Qoe1xuXHRcdFx0XHQvLyB1cmw6ICd4bWdsL2FpQW5hbHlzZUhhcmRXYXJlQWxhcm1SZWNvcmQvZWRpdCcsXG5cdFx0XHRcdHVybDogJ3htZ2wvYWlBbmFseXNlSGFyZFdhcmVBbGFybVJlY29yZC9zZXRGYWxzZVBvc2l0aXZlJyxcblx0XHRcdFx0bWV0aG9kOiBcInBvc3RcIixcblx0XHRcdFx0ZGF0YTogcmVxdWVzdERhdGEsXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3JlcycsIHJlcylcblx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soe2RlbHRhOiAyfSlcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblx0XHRnZXRXb3JrZXJMaXN0KCl7XG5cdFx0XHR0aGlzLnNlbmRSZXF1ZXN0KHtcblx0XHRcdFx0dXJsOiAneG1nbC93b3JrZXJJbmZvL3NlbGVjdFdvcmtlckluZm9MaXN0Jyxcblx0XHRcdFx0bWV0aG9kOiBcInBvc3RcIixcblx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3dvcmtlckxpc3RSZXMnLCByZXMpXG5cdFx0XHRcdFx0XHR0aGlzLndvcmtlckxpc3QgPSByZXMucmVzdWx0LnJlY29yZHNcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblx0XHRpc1Nob3dDb250ZW50KGUpe1xuXHRcdFx0dGhpcy5pc0RpcyA9IGUuZGV0YWlsLnZhbHVlXG5cdFx0XHRpZih0aGlzLmlzRGlzID09PSAnaWduJyl7XG5cdFx0XHRcdHRoaXMuY2xlYW5Gb3JtKClcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNsZWFuRm9ybSgpe1xuXHRcdFx0dGhpcy53b3JrZXJJZCA9ICcnXG5cdFx0XHQvLyB0aGlzLmRlc2MgPSAnJ1xuXHRcdFx0Ly8gdGhpcy5kZWR1Y3RTY29yZSA9ICcnXG5cdFx0fSxcblx0XHRiaW5kVGV4dEFyZWFCbHVyKGUpIHtcblx0XHRcdHRoaXMuZGVzYyA9IGUuZGV0YWlsLnZhbHVlXG5cdFx0XHRjb25zb2xlLmxvZyhlLmRldGFpbC52YWx1ZSlcblx0XHR9LFxuXHRcdGNoYW5nZShlKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcImU6XCIsIGUpO1xuXHRcdH0sXG5cdH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1317\n"); +======= +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n list: [{\n name: '苹果'\n }, {\n name: '香蕉'\n }, {\n name: '橙子'\n }, {\n name: '葡萄'\n }\n // ... 更多选项\n ],\n\n selectedItem: {},\n isDis: 'dis',\n workerId: '',\n desc: '',\n deductScore: '',\n workerList: [],\n workerInfoList: [],\n handleResult: '',\n alarmItem: {}\n };\n },\n onLoad: function onLoad(option) {\n this.alarmItem = JSON.parse(decodeURIComponent(option.item));\n __f__(\"log\", 'alarmItem', this.alarmItem, \" at pages/alarmPage/disposition/disposition.vue:111\");\n this.deductScore = this.alarmItem.aiDeductRule.deductScore;\n },\n mounted: function mounted() {\n this.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;\n this.getWorkerList();\n },\n methods: {\n onChange: function onChange(e) {\n var index = e.detail.value;\n this.selectedItem = this.workerList[index];\n this.workerId = this.selectedItem.id;\n __f__(\"log\", \"change!!!!!!!!!\", \" at pages/alarmPage/disposition/disposition.vue:123\");\n },\n confirm: function confirm() {\n __f__(\"log\", \">>>>>>>>>>>>>>>>>>>>>>>\", \" at pages/alarmPage/disposition/disposition.vue:127\");\n __f__(\"log\", this.selectedItem, \" at pages/alarmPage/disposition/disposition.vue:128\");\n __f__(\"log\", this.alarmItem, \" at pages/alarmPage/disposition/disposition.vue:129\");\n var requestData = {};\n if (this.isDis == 'dis') {\n requestData = _objectSpread(_objectSpread({}, this.alarmItem), {}, {\n handleResult: 1,\n handleDone: true,\n projectSn: this.projectSn,\n workerInfoList: [{\n id: this.workerId\n }]\n });\n if (this.workerId === '' || this.workerId === null || this.workerId === undefined) {\n uni.showToast({\n title: '请选择违章人员',\n icon: \"none\"\n });\n return;\n }\n if (!this.deductScore) {\n uni.showToast({\n title: '请输入分数',\n icon: \"none\"\n });\n return;\n }\n } else {\n requestData = _objectSpread(_objectSpread({}, this.alarmItem), {}, {\n handleResult: 2,\n projectSn: this.projectSn\n });\n }\n // if(this.isDis === 'dis') {\n // \tif(this.workerId === '' || this.workerId === null || this.workerId === undefined){\n // \t\tuni.showToast({\n // \t\t title: '请选择违章人员',\n // \t\t icon: \"none\"\n // \t\t})\n // \t\treturn\n // \t}\n // \tif(!this.deductScore){\n // \t\tuni.showToast({\n // \t\t title: '请输入分数',\n // \t\t icon: \"none\"\n // \t\t})\n // \t\treturn\n // \t}\n // \tif(this.deductScore <= 0 || this.deductScore > 100){\n // \t\tuni.showToast({\n // \t\t title: '请输入1-100内的分数',\n // \t\t icon: \"none\"\n // \t\t})\n // \t\treturn\n // \t}\n\n // \tthis.handleResult = 1\n // \tthis.alarmItem.desc = this.desc\n // \tthis.alarmItem.workerInfoList = [{id: this.workerId}]\n // \tthis.alarmItem.deductScore = this.deductScore\n // \tthis.alarmItem.handleResult = this.handleResult\n // }\n // if(this.isDis === 'ign'){\n // \tthis.handleResult = 2\n // \tthis.alarmItem.handleResult = this.handleResult\n // }\n // this.handleResult = 1\n\n this.sendRequest({\n // url: 'xmgl/aiAnalyseHardWareAlarmRecord/edit',\n url: 'xmgl/aiAnalyseHardWareAlarmRecord/setFalsePositive',\n method: \"post\",\n data: requestData,\n success: function success(res) {\n if (res.code == 200) {\n __f__(\"log\", 'res', res, \" at pages/alarmPage/disposition/disposition.vue:202\");\n uni.navigateBack({\n delta: 2\n });\n }\n }\n });\n },\n getWorkerList: function getWorkerList() {\n var _this = this;\n this.sendRequest({\n url: 'xmgl/workerInfo/selectWorkerInfoList',\n method: \"post\",\n data: {\n projectSn: this.projectSn\n },\n success: function success(res) {\n if (res.code == 200) {\n __f__(\"log\", 'workerListRes', res, \" at pages/alarmPage/disposition/disposition.vue:217\");\n _this.workerList = res.result.records;\n }\n }\n });\n },\n isShowContent: function isShowContent(e) {\n this.isDis = e.detail.value;\n if (this.isDis === 'ign') {\n this.cleanForm();\n }\n },\n cleanForm: function cleanForm() {\n this.workerId = '';\n // this.desc = ''\n // this.deductScore = ''\n },\n bindTextAreaBlur: function bindTextAreaBlur(e) {\n this.desc = e.detail.value;\n __f__(\"log\", e.detail.value, \" at pages/alarmPage/disposition/disposition.vue:236\");\n },\n change: function change(e) {\n __f__(\"log\", \"e:\", e, \" at pages/alarmPage/disposition/disposition.vue:239\");\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvYWxhcm1QYWdlL2Rpc3Bvc2l0aW9uL2Rpc3Bvc2l0aW9uLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibGlzdCIsIm5hbWUiLCJzZWxlY3RlZEl0ZW0iLCJpc0RpcyIsIndvcmtlcklkIiwiZGVzYyIsImRlZHVjdFNjb3JlIiwid29ya2VyTGlzdCIsIndvcmtlckluZm9MaXN0IiwiaGFuZGxlUmVzdWx0IiwiYWxhcm1JdGVtIiwib25Mb2FkIiwibW91bnRlZCIsIm1ldGhvZHMiLCJvbkNoYW5nZSIsImNvbmZpcm0iLCJyZXF1ZXN0RGF0YSIsImhhbmRsZURvbmUiLCJwcm9qZWN0U24iLCJpZCIsInVuaSIsInRpdGxlIiwiaWNvbiIsInVybCIsIm1ldGhvZCIsInN1Y2Nlc3MiLCJkZWx0YSIsImdldFdvcmtlckxpc3QiLCJpc1Nob3dDb250ZW50IiwiY2xlYW5Gb3JtIiwiYmluZFRleHRBcmVhQmx1ciIsImNoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBb0ZBO0VBQ0FBO0lBQ0E7TUFDQUMsT0FDQTtRQUFBQztNQUFBLEdBQ0E7UUFBQUE7TUFBQSxHQUNBO1FBQUFBO01BQUEsR0FDQTtRQUFBQTtNQUFBO01BQ0E7TUFBQSxDQUNBOztNQUNBQztNQUlBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDLDhDQUNBO1VBQ0FQO1VBQ0FRO1VBQ0FDO1VBQ0FWO1lBQUFXO1VBQUE7UUFBQSxFQUNBO1FBQ0E7VUFDQUM7WUFDQUM7WUFDQUM7VUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBRjtZQUNBQztZQUNBQztVQUNBO1VBQ0E7UUFDQTtNQUNBO1FBQ0FOLDhDQUNBO1VBQ0FQO1VBQ0FTO1FBQUEsRUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTs7TUFFQTtRQUNBO1FBQ0FLO1FBQ0FDO1FBQ0F6QjtRQUNBMEI7VUFDQTtZQUNBO1lBQ0FMO2NBQUFNO1lBQUE7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQUo7UUFDQUM7UUFDQXpCO1VBQ0FtQjtRQUNBO1FBQ0FPO1VBQ0E7WUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUc7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjEzMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJhckJveFwiPlxyXG5cdFx0XHQ8aGVhZGVycyA6dGhlbWVUeXBlPVwiJ3doaXRlJ1wiIDpzaG93QmFjaz1cInRydWVcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJhY2tCdG5cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8c3BhbiBjbGFzcz1cImJhY2tcIiBAY2xpY2s9XCJnb0JhY2soKVwiPui/lOWbnjwvc3Bhbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0aXBcIj7ov53nq6DlpITnva48L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvaGVhZGVycz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY29udGVudFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInJvdy1saW5lXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctbGFiZWxcIj5cclxuXHRcdFx0XHRcdDx0ZXh0IHN0eWxlPVwiY29sb3I6IGZpcmVicmljaztcIj4qPC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQ+5aSE572u57uT5p6cPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInJvdy1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8cmFkaW8tZ3JvdXAgQGNoYW5nZT1cImlzU2hvd0NvbnRlbnRcIiB2LW1vZGVsPVwiaXNEaXNcIj5cclxuXHRcdFx0XHRcdFx0PHJhZGlvIHZhbHVlPVwiZGlzXCIgY2hlY2tlZD1cInRydWVcIj7lt7LlpITnva48L3JhZGlvPlxyXG5cdFx0XHRcdFx0XHQ8cmFkaW8gdmFsdWU9XCJpZ25cIj7or6/miqXlv73nlaU8L3JhZGlvPlxyXG5cdFx0XHRcdFx0PC9yYWRpby1ncm91cD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInJvdy1saW5lXCIgdi1zaG93PVwiaXNEaXMgPT09ICdkaXMnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctbGFiZWxcIj5cclxuXHRcdFx0XHRcdDx0ZXh0PuaPj+i/sDwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PHRleHRhcmVhIDp2YWx1ZT1cImRlc2NcIiBAYmx1cj1cImJpbmRUZXh0QXJlYUJsdXJcIiAvPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctbGluZVwiIHYtc2hvdz1cImlzRGlzID09PSAnZGlzJ1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicm93LWxhYmVsXCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBzdHlsZT1cImNvbG9yOiBmaXJlYnJpY2s7XCI+KjwvdGV4dD5cclxuXHRcdFx0XHRcdDx0ZXh0PumAieaLqei/neeroOS6uuWRmDwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PCEtLSA8c2VsZWN0IHYtbW9kZWw9XCJ3b3JrZXJJZFwiIGNsYXNzPVwicm93LXNlbGVjdFwiPlxyXG5cdFx0XHRcdFx0XHQ8b3B0aW9uIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEzcHg7XCIgdi1mb3I9XCIoaXRlbSxpKSBpbiB3b3JrZXJMaXN0XCIgOmtleT1cImlcIiA6dmFsdWU9XCJpdGVtLmlkXCI+XHJcblx0XHRcdFx0XHRcdFx0e3tpdGVtLndvcmtlck5hbWV9fVxyXG5cdFx0XHRcdFx0XHQ8L29wdGlvbj5cclxuXHRcdFx0XHRcdDwvc2VsZWN0PiAtLT5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicm93LWlucHV0XCI+XHJcblx0XHRcdFx0XHRcdDxwaWNrZXIgbW9kZT1cInNlbGVjdG9yXCIgOnJhbmdlPVwid29ya2VyTGlzdFwiIHJhbmdlLWtleT1cIndvcmtlck5hbWVcIiBAY2hhbmdlPVwib25DaGFuZ2VcIiBmaWx0ZXJhYmxlPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicGlja2VyXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTJweDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJjb2xvcjogI2UxZTFlMTtcIiB2LWlmPVwiIXNlbGVjdGVkSXRlbS53b3JrZXJOYW1lXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdOivt+mAieaLqei/neeroOS6uuWRmFxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiB2LWVsc2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdHt7c2VsZWN0ZWRJdGVtLndvcmtlck5hbWV9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwicm93LWxpbmVcIiB2LXNob3c9XCJpc0RpcyA9PT0gJ2RpcydcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInJvdy1sYWJlbFwiPlxyXG5cdFx0XHRcdFx0PHRleHQgc3R5bGU9XCJjb2xvcjogZmlyZWJyaWNrO1wiPio8L3RleHQ+XHJcblx0XHRcdFx0XHQ8dGV4dD7miaM8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicm93LWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicm93LWlucHV0XCI+XHJcblx0XHRcdFx0XHRcdDwhLS0gPGlucHV0IHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEzcHg7XCIgOmRpc2FibGVkPVwidHJ1ZVwiIHYtbW9kZWw9XCJkZWR1Y3RTY29yZVwiIGNsYXNzPVwidW5pLWlucHV0XCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiXCIgLz4gLS0+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicm93LWlucHV0XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZTFlMWUxO3dpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gPGlucHV0IGRpc2FibGVkPVwidHJ1ZVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEzcHg7XCIgdi1tb2RlbD1cImFsYXJtSXRlbS5kZWR1Y3RTY29yZVwiIGNsYXNzPVwidW5pLWlucHV0XCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiXCIvPiAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxM3B4O1wiPnt7ZGVkdWN0U2NvcmV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHRleHQgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O2FsaWduLWl0ZW1zOiBjZW50ZXI7bWFyZ2luLWxlZnQ6IDEwcHg7XCI+5YiGPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjb25maXJtLWJ0blwiIEBjbGljaz1cImNvbmZpcm1cIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpbm5lci1idG5cIj7noa7orqQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGxpc3Q6IFtcclxuXHRcdFx0XHQgICAgeyBuYW1lOiAn6Iu55p6cJyB9LFxyXG5cdFx0XHRcdCAgICB7IG5hbWU6ICfpppnolYknIH0sXHJcblx0XHRcdFx0ICAgIHsgbmFtZTogJ+apmeWtkCcgfSxcclxuXHRcdFx0XHQgICAgeyBuYW1lOiAn6JGh6JCEJyB9LFxyXG5cdFx0XHRcdCAgICAgICAgLy8gLi4uIOabtOWkmumAiemhuVxyXG5cdFx0XHRcdF0sXHJcblx0XHRcdFx0c2VsZWN0ZWRJdGVtOiB7fSxcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpc0RpczogJ2RpcycsXHJcblx0XHRcdFx0d29ya2VySWQ6ICcnLFxyXG5cdFx0XHRcdGRlc2M6ICcnLFxyXG5cdFx0XHRcdGRlZHVjdFNjb3JlOiAnJyxcclxuXHRcdFx0XHR3b3JrZXJMaXN0OiBbXSxcclxuXHRcdFx0XHR3b3JrZXJJbmZvTGlzdDogW10sXHJcblx0XHRcdFx0aGFuZGxlUmVzdWx0OiAnJyxcclxuXHRcdFx0XHRhbGFybUl0ZW06IHt9LFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKG9wdGlvbikge1xyXG5cdFx0XHR0aGlzLmFsYXJtSXRlbSA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KG9wdGlvbi5pdGVtKSk7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdhbGFybUl0ZW0nLHRoaXMuYWxhcm1JdGVtKVxyXG5cdFx0XHR0aGlzLmRlZHVjdFNjb3JlID0gdGhpcy5hbGFybUl0ZW0uYWlEZWR1Y3RSdWxlLmRlZHVjdFNjb3JlXHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0dGhpcy5wcm9qZWN0U24gPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYygncHJvamVjdERldGFpbCcpKS5wcm9qZWN0U247XHJcblx0XHRcdHRoaXMuZ2V0V29ya2VyTGlzdCgpXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRvbkNoYW5nZShlKSB7XHJcblx0XHRcdFx0Y29uc3QgaW5kZXggPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMud29ya2VyTGlzdFtpbmRleF07XHJcblx0XHRcdFx0dGhpcy53b3JrZXJJZCA9IHRoaXMuc2VsZWN0ZWRJdGVtLmlkXHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCJjaGFuZ2UhISEhISEhISFcIilcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdGNvbmZpcm0oKXtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+XCIpO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLmFsYXJtSXRlbSk7XHJcblx0XHRcdFx0bGV0IHJlcXVlc3REYXRhID0ge31cclxuXHRcdFx0XHRpZih0aGlzLmlzRGlzID09ICdkaXMnKXtcclxuXHRcdFx0XHRcdHJlcXVlc3REYXRhID0ge1xyXG5cdFx0XHRcdFx0XHQuLi50aGlzLmFsYXJtSXRlbSxcclxuXHRcdFx0XHRcdFx0aGFuZGxlUmVzdWx0OiAxLFxyXG5cdFx0XHRcdFx0XHRoYW5kbGVEb25lOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRwcm9qZWN0U246IHRoaXMucHJvamVjdFNuLFxyXG5cdFx0XHRcdFx0XHR3b3JrZXJJbmZvTGlzdDogW3tpZDogdGhpcy53b3JrZXJJZH1dXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZih0aGlzLndvcmtlcklkID09PSAnJyB8fCB0aGlzLndvcmtlcklkID09PSBudWxsIHx8IHRoaXMud29ya2VySWQgPT09IHVuZGVmaW5lZCl7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHQgIHRpdGxlOiAn6K+36YCJ5oup6L+d56ug5Lq65ZGYJyxcclxuXHRcdFx0XHRcdFx0ICBpY29uOiBcIm5vbmVcIlxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmKCF0aGlzLmRlZHVjdFNjb3JlKXtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdCAgdGl0bGU6ICfor7fovpPlhaXliIbmlbAnLFxyXG5cdFx0XHRcdFx0XHQgIGljb246IFwibm9uZVwiXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0cmVxdWVzdERhdGEgPSB7XHJcblx0XHRcdFx0XHRcdC4uLnRoaXMuYWxhcm1JdGVtLFxyXG5cdFx0XHRcdFx0XHRoYW5kbGVSZXN1bHQ6IDIsXHJcblx0XHRcdFx0XHRcdHByb2plY3RTbjogdGhpcy5wcm9qZWN0U24sXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC8vIGlmKHRoaXMuaXNEaXMgPT09ICdkaXMnKSB7XHJcblx0XHRcdFx0Ly8gXHRpZih0aGlzLndvcmtlcklkID09PSAnJyB8fCB0aGlzLndvcmtlcklkID09PSBudWxsIHx8IHRoaXMud29ya2VySWQgPT09IHVuZGVmaW5lZCl7XHJcblx0XHRcdFx0Ly8gXHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdC8vIFx0XHQgIHRpdGxlOiAn6K+36YCJ5oup6L+d56ug5Lq65ZGYJyxcclxuXHRcdFx0XHQvLyBcdFx0ICBpY29uOiBcIm5vbmVcIlxyXG5cdFx0XHRcdC8vIFx0XHR9KVxyXG5cdFx0XHRcdC8vIFx0XHRyZXR1cm5cclxuXHRcdFx0XHQvLyBcdH1cclxuXHRcdFx0XHQvLyBcdGlmKCF0aGlzLmRlZHVjdFNjb3JlKXtcclxuXHRcdFx0XHQvLyBcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0Ly8gXHRcdCAgdGl0bGU6ICfor7fovpPlhaXliIbmlbAnLFxyXG5cdFx0XHRcdC8vIFx0XHQgIGljb246IFwibm9uZVwiXHJcblx0XHRcdFx0Ly8gXHRcdH0pXHJcblx0XHRcdFx0Ly8gXHRcdHJldHVyblxyXG5cdFx0XHRcdC8vIFx0fVxyXG5cdFx0XHRcdC8vIFx0aWYodGhpcy5kZWR1Y3RTY29yZSA8PSAwIHx8IHRoaXMuZGVkdWN0U2NvcmUgPiAxMDApe1xyXG5cdFx0XHRcdC8vIFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHQvLyBcdFx0ICB0aXRsZTogJ+ivt+i+k+WFpTEtMTAw5YaF55qE5YiG5pWwJyxcclxuXHRcdFx0XHQvLyBcdFx0ICBpY29uOiBcIm5vbmVcIlxyXG5cdFx0XHRcdC8vIFx0XHR9KVxyXG5cdFx0XHRcdC8vIFx0XHRyZXR1cm5cclxuXHRcdFx0XHQvLyBcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gXHR0aGlzLmhhbmRsZVJlc3VsdCA9IDFcclxuXHRcdFx0XHQvLyBcdHRoaXMuYWxhcm1JdGVtLmRlc2MgPSB0aGlzLmRlc2NcclxuXHRcdFx0XHQvLyBcdHRoaXMuYWxhcm1JdGVtLndvcmtlckluZm9MaXN0ID0gW3tpZDogdGhpcy53b3JrZXJJZH1dXHJcblx0XHRcdFx0Ly8gXHR0aGlzLmFsYXJtSXRlbS5kZWR1Y3RTY29yZSA9IHRoaXMuZGVkdWN0U2NvcmVcclxuXHRcdFx0XHQvLyBcdHRoaXMuYWxhcm1JdGVtLmhhbmRsZVJlc3VsdCA9IHRoaXMuaGFuZGxlUmVzdWx0XHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdC8vIGlmKHRoaXMuaXNEaXMgPT09ICdpZ24nKXtcclxuXHRcdFx0XHQvLyBcdHRoaXMuaGFuZGxlUmVzdWx0ID0gMlxyXG5cdFx0XHRcdC8vIFx0dGhpcy5hbGFybUl0ZW0uaGFuZGxlUmVzdWx0ID0gdGhpcy5oYW5kbGVSZXN1bHRcclxuXHRcdFx0XHQvLyB9XHJcblx0XHRcdFx0Ly8gdGhpcy5oYW5kbGVSZXN1bHQgPSAxXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHQvLyB1cmw6ICd4bWdsL2FpQW5hbHlzZUhhcmRXYXJlQWxhcm1SZWNvcmQvZWRpdCcsXHJcblx0XHRcdFx0XHR1cmw6ICd4bWdsL2FpQW5hbHlzZUhhcmRXYXJlQWxhcm1SZWNvcmQvc2V0RmFsc2VQb3NpdGl2ZScsXHJcblx0XHRcdFx0XHRtZXRob2Q6IFwicG9zdFwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogcmVxdWVzdERhdGEsXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3JlcycsIHJlcylcclxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtkZWx0YTogMn0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRXb3JrZXJMaXN0KCl7XHJcblx0XHRcdFx0dGhpcy5zZW5kUmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6ICd4bWdsL3dvcmtlckluZm8vc2VsZWN0V29ya2VySW5mb0xpc3QnLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiBcInBvc3RcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cHJvamVjdFNuOiB0aGlzLnByb2plY3RTbixcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3dvcmtlckxpc3RSZXMnLCByZXMpXHJcblx0XHRcdFx0XHRcdFx0dGhpcy53b3JrZXJMaXN0ID0gcmVzLnJlc3VsdC5yZWNvcmRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpc1Nob3dDb250ZW50KGUpe1xyXG5cdFx0XHRcdHRoaXMuaXNEaXMgPSBlLmRldGFpbC52YWx1ZVxyXG5cdFx0XHRcdGlmKHRoaXMuaXNEaXMgPT09ICdpZ24nKXtcclxuXHRcdFx0XHRcdHRoaXMuY2xlYW5Gb3JtKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNsZWFuRm9ybSgpe1xyXG5cdFx0XHRcdHRoaXMud29ya2VySWQgPSAnJ1xyXG5cdFx0XHRcdC8vIHRoaXMuZGVzYyA9ICcnXHJcblx0XHRcdFx0Ly8gdGhpcy5kZWR1Y3RTY29yZSA9ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGJpbmRUZXh0QXJlYUJsdXIoZSkge1xyXG5cdFx0XHRcdHRoaXMuZGVzYyA9IGUuZGV0YWlsLnZhbHVlXHJcblx0XHRcdFx0Y29uc29sZS5sb2coZS5kZXRhaWwudmFsdWUpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNoYW5nZShlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCJlOlwiLCBlKTtcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdC5jb25maXJtLWJ0bntcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA0NXB4O1xyXG5cdFx0Ly8gYmFja2dyb3VuZC1jb2xvcjogZGFya3JlZDtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogNSU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHQuaW5uZXItYnRue1xyXG5cdFx0XHR3aWR0aDogNjUlO1xyXG5cdFx0XHRoZWlnaHQ6IDQ1cHg7XHJcblx0XHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTE4MWY2O1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQuY29udGVudHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0LnJvdy1saW5le1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0LnJvdy1sYWJlbHtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcblx0XHRcdFx0d2lkdGg6IDMwJTtcclxuXHRcdFx0fVxyXG5cdFx0XHQucm93LWNvbnRlbnR7XHJcblx0XHRcdFx0d2lkdGg6IDcwJTtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMjBweDtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdHJhZGlve1xyXG5cdFx0XHRcdFx0Ly8gZm9udC1zaXplOiAxOHB4O1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xyXG5cdFx0XHRcdFx0Ly8gdHJhbnNmb3JtOnNjYWxlKDAuNyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC9kZWVwL3VuaS10ZXh0YXJlYSB7XHJcblx0XHRcdFx0XHR3aWR0aDogNzAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAyMDBycHg7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAyNnJweCAyOHJweDtcclxuXHRcdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xyXG5cdFx0XHRcdFx0Ly8gYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcclxuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0XHRcdFx0XHQudW5pLXRleHRhcmVhLWNvbXB1dGUge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdFx0XHRvdmVyZmxvdzogYXV0bztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0LnJvdy1zZWxlY3R7XHJcblx0XHRcdFx0XHR3aWR0aDogNzAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiA2OHJweDtcclxuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5yb3ctaW5wdXR7XHJcblx0XHRcdFx0XHR3aWR0aDogNzAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiA3OHJweDtcclxuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0LnNlbGVjdC1jb250YWluZXJ7XHJcblx0XHRcdFx0XHQvLyBoZWlnaHQ6IDgwcHg7XHJcblx0XHRcdFx0XHQvLyBvdmVyZmxvdzogYXV0bztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmJhckJveCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTE4MUY2O1xyXG5cdH1cclxuXHJcblx0LnRpdGxlIHtcclxuXHRcdGhlaWdodDogNDRweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA0NHB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0d2lkdGg6IDc1MHJweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICM1MTgxRjY7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG5cclxuXHQuYmFja0J0biB7XHJcblx0XHQvLyBkaXNwbGF5OiBmbGV4O1xyXG5cdFx0Ly8ganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bGVmdDogMjAlO1xyXG5cdH1cclxuXHJcblx0LmJhY2sge1xyXG5cdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdH1cclxuXHJcblx0LnRpcCB7XHJcblx0XHRtYXJnaW4tbGVmdDogNXJlbTtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1317\n"); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /***/ }), /* 1318 */ @@ -147853,7 +147896,11 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he /***/ (function(module, exports, __webpack_require__) { "use strict"; +<<<<<<< HEAD eval("/* WEBPACK VAR INJECTION */(function(process, __f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 5));\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/* eslint no-console:0 */\nvar formatRegExp = /%[sdj%]/g;\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\nif (typeof process !== 'undefined' && Object({\"NODE_ENV\":\"development\",\"VUE_APP_DARK_MODE\":\"false\",\"VUE_APP_NAME\":\"智慧安全\",\"VUE_APP_PLATFORM\":\"app-plus\",\"BASE_URL\":\"/\"}) && \"development\" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n __f__(\"warn\", type, errors, \" at uview-ui/libs/util/async-validator.js:30\");\n }\n }\n };\n}\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var i = 1;\n var f = args[0];\n var len = args.length;\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n if (typeof f === 'string') {\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n for (var arg = args[i]; i < len; arg = args[++i]) {\n str += \" \" + arg;\n }\n return str;\n }\n return f;\n}\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';\n}\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n arr.forEach(function (a) {\n func(a, count);\n });\n}\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n var original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n next([]);\n}\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\nfunction asyncMap(objArr, option, func, callback) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject({\n errors: errors,\n fields: convertFieldsError(errors)\n }) : resolve();\n };\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n _pending[\"catch\"](function (e) {\n return e;\n });\n return _pending;\n }\n var firstFields = option.firstFields || [];\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject({\n errors: results,\n fields: convertFieldsError(results)\n }) : resolve();\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve();\n }\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending[\"catch\"](function (e) {\n return e;\n });\n return pending;\n}\nfunction complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField\n };\n };\n}\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n if ((0, _typeof2.default)(value) === 'object' && (0, _typeof2.default)(target[s]) === 'object') {\n target[s] = _extends({}, target[s], {}, value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n\n/**\r\n * Rule for validating required fields.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n}\n\n/**\r\n * Rule for validating whitespace.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n}\n\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp(\"^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$\", 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n\n // 修改源码,将字符串数值先转为数值\n return typeof +value === 'number';\n },\n object: function object(value) {\n return (0, _typeof2.default)(value) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n/**\r\n * Rule for validating the type of a value.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n } // straight typeof check\n } else if (ruleType && (0, _typeof2.default)(value) !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n}\n\n/**\r\n * Rule for validating minimum and maximum allowed values.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n } // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".length !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\nvar ENUM = 'enum';\n/**\r\n * Rule for validating a value exists in an enumerable list.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n\n/**\r\n * Rule for validating a regular expression pattern.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction pattern$1(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\nvar rules = {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n \"enum\": enumerable,\n pattern: pattern$1\n};\n\n/**\r\n * Performs validation for string types.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a function.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a number.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a boolean.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction _boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates the regular expression type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a number is an integer.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a number is a floating point number.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates an array.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'array') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (!isEmptyValue(value, 'array')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates an object.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\nvar ENUM$1 = 'enum';\n/**\r\n * Validates an enumerable list.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction enumerable$1(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM$1](rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a regular expression pattern.\r\n *\r\n * Performs validation when a rule only contains\r\n * a pattern property but is not declared as a string type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction pattern$2(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\nfunction date(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n var dateObject;\n if (typeof value === 'number') {\n dateObject = new Date(value);\n } else {\n dateObject = value;\n }\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n}\nfunction required$1(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : (0, _typeof2.default)(value);\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n}\nfunction type$1(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Performs validation for any type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n}\nvar validators = {\n string: string,\n method: method,\n number: number,\n \"boolean\": _boolean,\n regexp: regexp,\n integer: integer,\n \"float\": floatFn,\n array: array,\n object: object,\n \"enum\": enumerable$1,\n pattern: pattern$2,\n date: date,\n url: type$1,\n hex: type$1,\n email: type$1,\n required: required$1,\n any: any\n};\nfunction newMessages() {\n return {\n \"default\": 'Validation error on field %s',\n required: '%s is required',\n \"enum\": '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n \"boolean\": '%s is not a %s',\n integer: '%s is not an %s',\n \"float\": '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nvar messages = newMessages();\n\n/**\r\n * Encapsulates a validation schema.\r\n *\r\n * @param descriptor An object declaring validation rules\r\n * for this schema.\r\n */\n\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n}\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if ((0, _typeof2.default)(rules) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n var z;\n var item;\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_, o, oc) {\n var _this = this;\n if (o === void 0) {\n o = {};\n }\n if (oc === void 0) {\n oc = function oc() {};\n }\n var source = source_;\n var options = o;\n var callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n return Promise.resolve();\n }\n function complete(results) {\n var i;\n var errors = [];\n var fields = {};\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n callback(errors, fields);\n }\n if (options.messages) {\n var messages$1 = this.messages();\n if (messages$1 === messages) {\n messages$1 = newMessages();\n }\n deepMerge(messages$1, options.messages);\n options.messages = messages$1;\n } else {\n options.messages = this.messages();\n }\n var arr;\n var value;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n }\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n if (!rule.validator) {\n return;\n }\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && ((0, _typeof2.default)(rule.fields) === 'object' || (0, _typeof2.default)(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n function addFullfield(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + \".\" + key\n });\n }\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n var errors = e;\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n if (errors.length && rule.message) {\n errors = [].concat(rule.message);\n }\n errors = errors.map(complementError(rule));\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n if (!deep) {\n doIt(errors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message) {\n errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [options.error(rule, format(options.messages.required, rule.field))];\n } else {\n errors = [];\n }\n return doIt(errors);\n }\n var fieldsSchema = {};\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n fieldsSchema = _extends({}, fieldsSchema, {}, data.rule.fields);\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n var schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n if (errors && errors.length) {\n finalErrors.push.apply(finalErrors, errors);\n }\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n var res;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n res = rule.validator(rule, data.value, cb, data.source, options);\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || rule.field + \" fails\");\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || false;\n }\n};\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n validators[type] = validator;\n};\nSchema.warning = warning;\nSchema.messages = messages;\nvar _default = Schema;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/node-libs-browser/mock/process.js */ 1438), __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXZpZXctdWkvbGlicy91dGlsL2FzeW5jLXZhbGlkYXRvci5qcyJdLCJuYW1lcyI6WyJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhcHBseSIsImZvcm1hdFJlZ0V4cCIsIndhcm5pbmciLCJwcm9jZXNzIiwid2luZG93IiwiZG9jdW1lbnQiLCJ0eXBlIiwiZXJyb3JzIiwiY29uc29sZSIsIndhcm4iLCJldmVyeSIsImUiLCJjb252ZXJ0RmllbGRzRXJyb3IiLCJmaWVsZHMiLCJmb3JFYWNoIiwiZXJyb3IiLCJmaWVsZCIsInB1c2giLCJmb3JtYXQiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImYiLCJsZW4iLCJzbGljZSIsInN0ciIsIlN0cmluZyIsInJlcGxhY2UiLCJ4IiwiTnVtYmVyIiwiSlNPTiIsInN0cmluZ2lmeSIsIl8iLCJhcmciLCJpc05hdGl2ZVN0cmluZ1R5cGUiLCJpc0VtcHR5VmFsdWUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImlzQXJyYXkiLCJhc3luY1BhcmFsbGVsQXJyYXkiLCJhcnIiLCJmdW5jIiwiY2FsbGJhY2siLCJyZXN1bHRzIiwidG90YWwiLCJhcnJMZW5ndGgiLCJjb3VudCIsImEiLCJhc3luY1NlcmlhbEFycmF5IiwiaW5kZXgiLCJuZXh0Iiwib3JpZ2luYWwiLCJmbGF0dGVuT2JqQXJyIiwib2JqQXJyIiwicmV0Iiwia2V5cyIsImsiLCJhc3luY01hcCIsIm9wdGlvbiIsImZpcnN0IiwiX3BlbmRpbmciLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZsYXR0ZW5BcnIiLCJmaXJzdEZpZWxkcyIsIm9iakFycktleXMiLCJvYmpBcnJMZW5ndGgiLCJwZW5kaW5nIiwiaW5kZXhPZiIsImNvbXBsZW1lbnRFcnJvciIsInJ1bGUiLCJvZSIsIm1lc3NhZ2UiLCJmdWxsRmllbGQiLCJkZWVwTWVyZ2UiLCJzIiwicmVxdWlyZWQiLCJvcHRpb25zIiwibWVzc2FnZXMiLCJ3aGl0ZXNwYWNlIiwidGVzdCIsInBhdHRlcm4iLCJlbWFpbCIsInVybCIsIlJlZ0V4cCIsImhleCIsInR5cGVzIiwiaW50ZWdlciIsIm51bWJlciIsInBhcnNlSW50IiwiZmxvYXQiLCJhcnJheSIsInJlZ2V4cCIsImRhdGUiLCJnZXRUaW1lIiwiZ2V0TW9udGgiLCJnZXRZZWFyIiwiaXNOYU4iLCJvYmplY3QiLCJtZXRob2QiLCJtYXRjaCIsImN1c3RvbSIsInJ1bGVUeXBlIiwicmFuZ2UiLCJtaW4iLCJtYXgiLCJzcFJlZ2V4cCIsInZhbCIsIm51bSIsIkVOVU0iLCJlbnVtZXJhYmxlIiwiam9pbiIsInBhdHRlcm4kMSIsImxhc3RJbmRleCIsIm1pc21hdGNoIiwiX3BhdHRlcm4iLCJydWxlcyIsInN0cmluZyIsInZhbGlkYXRlIiwiX2Jvb2xlYW4iLCJmbG9hdEZuIiwiRU5VTSQxIiwiZW51bWVyYWJsZSQxIiwicGF0dGVybiQyIiwiZGF0ZU9iamVjdCIsIkRhdGUiLCJyZXF1aXJlZCQxIiwidHlwZSQxIiwiYW55IiwidmFsaWRhdG9ycyIsIm5ld01lc3NhZ2VzIiwicGFyc2UiLCJpbnZhbGlkIiwiY2xvbmUiLCJjbG9uZWQiLCJTY2hlbWEiLCJkZXNjcmlwdG9yIiwiX21lc3NhZ2VzIiwiZGVmaW5lIiwiRXJyb3IiLCJ6IiwiaXRlbSIsInNvdXJjZV8iLCJvIiwib2MiLCJfdGhpcyIsImNvbXBsZXRlIiwiYWRkIiwiX2Vycm9ycyIsImNvbmNhdCIsIm1lc3NhZ2VzJDEiLCJzZXJpZXMiLCJyIiwidHJhbnNmb3JtIiwidmFsaWRhdG9yIiwiZ2V0VmFsaWRhdGlvbk1ldGhvZCIsImdldFR5cGUiLCJlcnJvckZpZWxkcyIsImRhdGEiLCJkb0l0IiwiZGVlcCIsImRlZmF1bHRGaWVsZCIsImFkZEZ1bGxmaWVsZCIsInNjaGVtYSIsImNiIiwic3VwcHJlc3NXYXJuaW5nIiwibWFwIiwiZmllbGRzU2NoZW1hIiwiZmllbGRTY2hlbWEiLCJiaW5kIiwiZXJycyIsImZpbmFsRXJyb3JzIiwicmVzIiwiYXN5bmNWYWxpZGF0b3IiLCJ0aGVuIiwibWVzc2FnZUluZGV4Iiwic3BsaWNlIiwicmVnaXN0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsU0FBU0EsUUFBUSxHQUFHO0VBQ25CQSxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxJQUFJLFVBQVNDLE1BQU0sRUFBRTtJQUM1QyxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0MsU0FBUyxDQUFDQyxNQUFNLEVBQUVGLENBQUMsRUFBRSxFQUFFO01BQzFDLElBQUlHLE1BQU0sR0FBR0YsU0FBUyxDQUFDRCxDQUFDLENBQUM7TUFFekIsS0FBSyxJQUFJSSxHQUFHLElBQUlELE1BQU0sRUFBRTtRQUN2QixJQUFJTixNQUFNLENBQUNRLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLE1BQU0sRUFBRUMsR0FBRyxDQUFDLEVBQUU7VUFDdERMLE1BQU0sQ0FBQ0ssR0FBRyxDQUFDLEdBQUdELE1BQU0sQ0FBQ0MsR0FBRyxDQUFDO1FBQzFCO01BQ0Q7SUFDRDtJQUVBLE9BQU9MLE1BQU07RUFDZCxDQUFDO0VBRUQsT0FBT0gsUUFBUSxDQUFDWSxLQUFLLENBQUMsSUFBSSxFQUFFUCxTQUFTLENBQUM7QUFDdkM7O0FBRUE7QUFDQSxJQUFJUSxZQUFZLEdBQUcsVUFBVTtBQUM3QixJQUFJQyxPQUFPLEdBQUcsU0FBU0EsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRXJDLElBQUksT0FBT0MsT0FBTyxLQUFLLFdBQVcsSUFBSUEsaUlBQVcsSUFBSUEsYUFBb0IsS0FBSyxZQUFZLElBQUksT0FBT0MsTUFBTSxLQUMxRyxXQUFXLElBQUksT0FBT0MsUUFBUSxLQUFLLFdBQVcsRUFBRTtFQUNoREgsT0FBTyxHQUFHLFNBQVNBLE9BQU8sQ0FBQ0ksSUFBSSxFQUFFQyxNQUFN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QUFDRCxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzdCO0lBRUEsSUFBSXpILElBQUksQ0FBQzlELE1BQU0sS0FBSyxDQUFDLElBQUk4RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxFQUFFO01BQ2hELE9BQU8yRSxVQUFVLENBQUNyRCxRQUFRO0lBQzNCO0lBRUEsT0FBT3FELFVBQVUsQ0FBQyxJQUFJLENBQUMyQixPQUFPLENBQUN0RixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUs7RUFDL0M7QUFDRCxDQUFDO0FBRURpRSxNQUFNLENBQUMwQyxRQUFRLEdBQUcsU0FBU0EsUUFBUSxDQUFDN0ssSUFBSSxFQUFFc0osU0FBUyxFQUFFO0VBQ3BELElBQUksT0FBT0EsU0FBUyxLQUFLLFVBQVUsRUFBRTtJQUNwQyxNQUFNLElBQUlmLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQztFQUNwRjtFQUVBVixVQUFVLENBQUM3SCxJQUFJLENBQUMsR0FBR3NKLFNBQVM7QUFDN0IsQ0FBQztBQUVEbkIsTUFBTSxDQUFDdkksT0FBTyxHQUFHQSxPQUFPO0FBQ3hCdUksTUFBTSxDQUFDekQsUUFBUSxHQUFHQSxRQUFRO0FBQUMsZUFFWnlELE1BQU07QUFBQSwyQiIsImZpbGUiOiIxNDM3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2V4dGVuZHMoKSB7XHJcblx0X2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHRhcmdldCkge1xyXG5cdFx0Zm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcclxuXHJcblx0XHRcdGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcclxuXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xyXG5cdFx0XHRcdFx0dGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGFyZ2V0O1xyXG5cdH07XHJcblxyXG5cdHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG59XHJcblxyXG4vKiBlc2xpbnQgbm8tY29uc29sZTowICovXHJcbnZhciBmb3JtYXRSZWdFeHAgPSAvJVtzZGolXS9nO1xyXG52YXIgd2FybmluZyA9IGZ1bmN0aW9uIHdhcm5pbmcoKSB7fTsgLy8gZG9uJ3QgcHJpbnQgd2FybmluZyBtZXNzYWdlIHdoZW4gaW4gcHJvZHVjdGlvbiBlbnYgb3Igbm9kZSBydW50aW1lXHJcblxyXG5pZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIHdpbmRvdyAhPT1cclxuXHQndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcblx0d2FybmluZyA9IGZ1bmN0aW9uIHdhcm5pbmcodHlwZSwgZXJyb3JzKSB7XHJcblx0XHRpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2Fybikge1xyXG5cdFx0XHRpZiAoZXJyb3JzLmV2ZXJ5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdHJldHVybiB0eXBlb2YgZSA9PT0gJ3N0cmluZyc7XHJcblx0XHRcdFx0fSkpIHtcclxuXHRcdFx0XHRjb25zb2xlLndhcm4odHlwZSwgZXJyb3JzKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbnZlcnRGaWVsZHNFcnJvcihlcnJvcnMpIHtcclxuXHRpZiAoIWVycm9ycyB8fCAhZXJyb3JzLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblx0dmFyIGZpZWxkcyA9IHt9O1xyXG5cdGVycm9ycy5mb3JFYWNoKGZ1bmN0aW9uKGVycm9yKSB7XHJcblx0XHR2YXIgZmllbGQgPSBlcnJvci5maWVsZDtcclxuXHRcdGZpZWxkc1tmaWVsZF0gPSBmaWVsZHNbZmllbGRdIHx8IFtdO1xyXG5cdFx0ZmllbGRzW2ZpZWxkXS5wdXNoKGVycm9yKTtcclxuXHR9KTtcclxuXHRyZXR1cm4gZmllbGRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtYXQoKSB7XHJcblx0Zm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XHJcblx0XHRhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xyXG5cdH1cclxuXHJcblx0dmFyIGkgPSAxO1xyXG5cdHZhciBmID0gYXJnc1swXTtcclxuXHR2YXIgbGVuID0gYXJncy5sZW5ndGg7XHJcblxyXG5cdGlmICh0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncy5zbGljZSgxKSk7XHJcblx0fVxyXG5cclxuXHRpZiAodHlwZW9mIGYgPT09ICdzdHJpbmcnKSB7XHJcblx0XHR2YXIgc3RyID0gU3RyaW5nKGYpLnJlcGxhY2UoZm9ybWF0UmVnRXhwLCBmdW5jdGlvbih4KSB7XHJcblx0XHRcdGlmICh4ID09PSAnJSUnKSB7XHJcblx0XHRcdFx0cmV0dXJuICclJztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKGkgPj0gbGVuKSB7XHJcblx0XHRcdFx0cmV0dXJuIHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHN3aXRjaCAoeCkge1xyXG5cdFx0XHRcdGNhc2UgJyVzJzpcclxuXHRcdFx0XHRcdHJldHVybiBTdHJpbmcoYXJnc1tpKytdKTtcclxuXHJcblx0XHRcdFx0Y2FzZSAnJWQnOlxyXG5cdFx0XHRcdFx0cmV0dXJuIE51bWJlcihhcmdzW2krK10pO1xyXG5cclxuXHRcdFx0XHRjYXNlICclaic6XHJcblx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnc1tpKytdKTtcclxuXHRcdFx0XHRcdH0gY2F0Y2ggKF8pIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuICdbQ2lyY3VsYXJdJztcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdHJldHVybiB4O1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRmb3IgKHZhciBhcmcgPSBhcmdzW2ldOyBpIDwgbGVuOyBhcmcgPSBhcmdzWysraV0pIHtcclxuXHRcdFx0c3RyICs9IFwiIFwiICsgYXJnO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBzdHI7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gZjtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNOYXRpdmVTdHJpbmdUeXBlKHR5cGUpIHtcclxuXHRyZXR1cm4gdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZSA9PT0gJ3VybCcgfHwgdHlwZSA9PT0gJ2hleCcgfHwgdHlwZSA9PT0gJ2VtYWlsJyB8fCB0eXBlID09PSAncGF0dGVybic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRW1wdHlWYWx1ZSh2YWx1ZSwgdHlwZSkge1xyXG5cdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGlmICh0eXBlID09PSAnYXJyYXknICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmICF2YWx1ZS5sZW5ndGgpIHtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0aWYgKGlzTmF0aXZlU3RyaW5nVHlwZSh0eXBlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFzeW5jUGFyYWxsZWxBcnJheShhcnIsIGZ1bmMsIGNhbGxiYWNrKSB7XHJcblx0dmFyIHJlc3VsdHMgPSBbXTtcclxuXHR2YXIgdG90YWwgPSAwO1xyXG5cdHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoO1xyXG5cclxuXHRmdW5jdGlvbiBjb3VudChlcnJvcnMpIHtcclxuXHRcdHJlc3VsdHMucHVzaC5hcHBseShyZXN1bHRzLCBlcnJvcnMpO1xyXG5cdFx0dG90YWwrKztcclxuXHJcblx0XHRpZiAodG90YWwgPT09IGFyckxlbmd0aCkge1xyXG5cdFx0XHRjYWxsYmFjayhyZXN1bHRzKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFyci5mb3JFYWNoKGZ1bmN0aW9uKGEpIHtcclxuXHRcdGZ1bmMoYSwgY291bnQpO1xyXG5cdH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBhc3luY1NlcmlhbEFycmF5KGFyciwgZnVuYywgY2FsbGJhY2spIHtcclxuXHR2YXIgaW5kZXggPSAwO1xyXG5cdHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoO1xyXG5cclxuXHRmdW5jdGlvbiBuZXh0KGVycm9ycykge1xyXG5cdFx0aWYgKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKSB7XHJcblx0XHRcdGNhbGxiYWNrKGVycm9ycyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR2YXIgb3JpZ2luYWwgPSBpbmRleDtcclxuXHRcdGluZGV4ID0gaW5kZXggKyAxO1xyXG5cclxuXHRcdGlmIChvcmlnaW5hbCA8IGFyckxlbmd0aCkge1xyXG5cdFx0XHRmdW5jKGFycltvcmlnaW5hbF0sIG5leHQpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y2FsbGJhY2soW10pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmV4dChbXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZsYXR0ZW5PYmpBcnIob2JqQXJyKSB7XHJcblx0dmFyIHJldCA9IFtdO1xyXG5cdE9iamVjdC5rZXlzKG9iakFycikuZm9yRWFjaChmdW5jdGlvbihrKSB7XHJcblx0XHRyZXQucHVzaC5hcHBseShyZXQsIG9iakFycltrXSk7XHJcblx0fSk7XHJcblx0cmV0dXJuIHJldDtcclxufVxyXG5cclxuZnVuY3Rpb24gYXN5bmNNYXAob2JqQXJyLCBvcHRpb24sIGZ1bmMsIGNhbGxiYWNrKSB7XHJcblx0aWYgKG9wdGlvbi5maXJzdCkge1xyXG5cdFx0dmFyIF9wZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XHJcblx0XHRcdHZhciBuZXh0ID0gZnVuY3Rpb24gbmV4dChlcnJvcnMpIHtcclxuXHRcdFx0XHRjYWxsYmFjayhlcnJvcnMpO1xyXG5cdFx0XHRcdHJldHVybiBlcnJvcnMubGVuZ3RoID8gcmVqZWN0KHtcclxuXHRcdFx0XHRcdGVycm9yczogZXJyb3JzLFxyXG5cdFx0XHRcdFx0ZmllbGRzOiBjb252ZXJ0RmllbGRzRXJyb3IoZXJyb3JzKVxyXG5cdFx0XHRcdH0pIDogcmVzb2x2ZSgpO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0dmFyIGZsYXR0ZW5BcnIgPSBmbGF0dGVuT2JqQXJyKG9iakFycik7XHJcblx0XHRcdGFzeW5jU2VyaWFsQXJyYXkoZmxhdHRlbkFyciwgZnVuYywgbmV4dCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRfcGVuZGluZ1tcImNhdGNoXCJdKGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0cmV0dXJuIGU7XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gX3BlbmRpbmc7XHJcblx0fVxyXG5cclxuXHR2YXIgZmlyc3RGaWVsZHMgPSBvcHRpb24uZmlyc3RGaWVsZHMgfHwgW107XHJcblxyXG5cdGlmIChmaXJzdEZpZWxkcyA9PT0gdHJ1ZSkge1xyXG5cdFx0Zmlyc3RGaWVsZHMgPSBPYmplY3Qua2V5cyhvYmpBcnIpO1xyXG5cdH1cclxuXHJcblx0dmFyIG9iakFycktleXMgPSBPYmplY3Qua2V5cyhvYmpBcnIpO1xyXG5cdHZhciBvYmpBcnJMZW5ndGggPSBvYmpBcnJLZXlzLmxlbmd0aDtcclxuXHR2YXIgdG90YWwgPSAwO1xyXG5cdHZhciByZXN1bHRzID0gW107XHJcblx0dmFyIHBlbmRpbmcgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcclxuXHRcdHZhciBuZXh0ID0gZnVuY3Rpb24gbmV4dChlcnJvcnMpIHtcclxuXHRcdFx0cmVzdWx0cy5wdXNoLmFwcGx5KHJlc3VsdHMsIGVycm9ycyk7XHJcblx0XHRcdHRvdGFsKys7XHJcblxyXG5cdFx0XHRpZiAodG90YWwgPT09IG9iakFyckxlbmd0aCkge1xyXG5cdFx0XHRcdGNhbGxiYWNrKHJlc3VsdHMpO1xyXG5cdFx0XHRcdHJldHVybiByZXN1bHRzLmxlbmd0aCA/IHJlamVjdCh7XHJcblx0XHRcdFx0XHRlcnJvcnM6IHJlc3VsdHMsXHJcblx0XHRcdFx0XHRmaWVsZHM6IGNvbnZlcnRGaWVsZHNFcnJvcihyZXN1bHRzKVxyXG5cdFx0XHRcdH0pIDogcmVzb2x2ZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdGlmICghb2JqQXJyS2V5cy5sZW5ndGgpIHtcclxuXHRcdFx0Y2FsbGJhY2socmVzdWx0cyk7XHJcblx0XHRcdHJlc29sdmUoKTtcclxuXHRcdH1cclxuXHJcblx0XHRvYmpBcnJLZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XHJcblx0XHRcdHZhciBhcnIgPSBvYmpBcnJba2V5XTtcclxuXHJcblx0XHRcdGlmIChmaXJzdEZpZWxkcy5pbmRleE9mKGtleSkgIT09IC0xKSB7XHJcblx0XHRcdFx0YXN5bmNTZXJpYWxBcnJheShhcnIsIGZ1bmMsIG5leHQpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGFzeW5jUGFyYWxsZWxBcnJheShhcnIsIGZ1bmMsIG5leHQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9KTtcclxuXHRwZW5kaW5nW1wiY2F0Y2hcIl0oZnVuY3Rpb24oZSkge1xyXG5cdFx0cmV0dXJuIGU7XHJcblx0fSk7XHJcblx0cmV0dXJuIHBlbmRpbmc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbXBsZW1lbnRFcnJvcihydWxlKSB7XHJcblx0cmV0dXJuIGZ1bmN0aW9uKG9lKSB7XHJcblx0XHRpZiAob2UgJiYgb2UubWVzc2FnZSkge1xyXG5cdFx0XHRvZS5maWVsZCA9IG9lLmZpZWxkIHx8IHJ1bGUuZnVsbEZpZWxkO1xyXG5cdFx0XHRyZXR1cm4gb2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0bWVzc2FnZTogdHlwZW9mIG9lID09PSAnZnVuY3Rpb24nID8gb2UoKSA6IG9lLFxyXG5cdFx0XHRmaWVsZDogb2UuZmllbGQgfHwgcnVsZS5mdWxsRmllbGRcclxuXHRcdH07XHJcblx0fTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVlcE1lcmdlKHRhcmdldCwgc291cmNlKSB7XHJcblx0aWYgKHNvdXJjZSkge1xyXG5cdFx0Zm9yICh2YXIgcyBpbiBzb3VyY2UpIHtcclxuXHRcdFx0aWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShzKSkge1xyXG5cdFx0XHRcdHZhciB2YWx1ZSA9IHNvdXJjZVtzXTtcclxuXHJcblx0XHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHRhcmdldFtzXSA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRcdHRhcmdldFtzXSA9IF9leHRlbmRzKHt9LCB0YXJnZXRbc10sIHt9LCB2YWx1ZSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRhcmdldFtzXSA9IHZhbHVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRhcmdldDtcclxufVxyXG5cclxuLyoqXHJcbiAqICBSdWxlIGZvciB2YWxpZGF0aW5nIHJlcXVpcmVkIGZpZWxkcy5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxyXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gcmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCB0eXBlKSB7XHJcblx0aWYgKHJ1bGUucmVxdWlyZWQgJiYgKCFzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCkgfHwgaXNFbXB0eVZhbHVlKHZhbHVlLCB0eXBlIHx8IHJ1bGUudHlwZSkpKSB7XHJcblx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5yZXF1aXJlZCwgcnVsZS5mdWxsRmllbGQpKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgUnVsZSBmb3IgdmFsaWRhdGluZyB3aGl0ZXNwYWNlLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gZXJyb3JzIEFuIGFycmF5IG9mIGVycm9ycyB0aGF0IHRoaXMgcnVsZSBtYXkgYWRkXHJcbiAqICB2YWxpZGF0aW9uIGVycm9ycyB0by5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiB3aGl0ZXNwYWNlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdGlmICgvXlxccyskLy50ZXN0KHZhbHVlKSB8fCB2YWx1ZSA9PT0gJycpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzLndoaXRlc3BhY2UsIHJ1bGUuZnVsbEZpZWxkKSk7XHJcblx0fVxyXG59XHJcblxyXG4vKiBlc2xpbnQgbWF4LWxlbjowICovXHJcblxyXG52YXIgcGF0dGVybiA9IHtcclxuXHQvLyBodHRwOi8vZW1haWxyZWdleC5jb20vXHJcblx0ZW1haWw6IC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvLFxyXG5cdHVybDogbmV3IFJlZ0V4cChcclxuXHRcdFwiXig/IW1haWx0bzopKD86KD86aHR0cHxodHRwc3xmdHApOi8vfC8vKSg/OlxcXFxTKyg/OjpcXFxcUyopP0ApPyg/Oig/Oig/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMDFdXFxcXGR8MjJbMC0zXSkoPzpcXFxcLig/OjE/XFxcXGR7MSwyfXwyWzAtNF1cXFxcZHwyNVswLTVdKSl7Mn0oPzpcXFxcLig/OlswLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMC00XVxcXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKig/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmZdezIsfSkpKXxsb2NhbGhvc3QpKD86OlxcXFxkezIsNX0pPyg/OigvfFxcXFw/fCMpW15cXFxcc10qKT8kXCIsXHJcblx0XHQnaScpLFxyXG5cdGhleDogL14jPyhbYS1mMC05XXs2fXxbYS1mMC05XXszfSkkL2lcclxufTtcclxudmFyIHR5cGVzID0ge1xyXG5cdGludGVnZXI6IGZ1bmN0aW9uIGludGVnZXIodmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlcy5udW1iZXIodmFsdWUpICYmIHBhcnNlSW50KHZhbHVlLCAxMCkgPT09IHZhbHVlO1xyXG5cdH0sXHJcblx0XCJmbG9hdFwiOiBmdW5jdGlvbiBmbG9hdCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVzLm51bWJlcih2YWx1ZSkgJiYgIXR5cGVzLmludGVnZXIodmFsdWUpO1xyXG5cdH0sXHJcblx0YXJyYXk6IGZ1bmN0aW9uIGFycmF5KHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XHJcblx0fSxcclxuXHRyZWdleHA6IGZ1bmN0aW9uIHJlZ2V4cCh2YWx1ZSkge1xyXG5cdFx0aWYgKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiAhIW5ldyBSZWdFeHAodmFsdWUpO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fSxcclxuXHRkYXRlOiBmdW5jdGlvbiBkYXRlKHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlLmdldFRpbWUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlLmdldE1vbnRoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWx1ZS5nZXRZZWFyID09PVxyXG5cdFx0XHQnZnVuY3Rpb24nO1xyXG5cdH0sXHJcblx0bnVtYmVyOiBmdW5jdGlvbiBudW1iZXIodmFsdWUpIHtcclxuXHRcdGlmIChpc05hTih2YWx1ZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIOS/ruaUuea6kOegge+8jOWwhuWtl+espuS4suaVsOWAvOWFiOi9rOS4uuaVsOWAvFxyXG5cdFx0cmV0dXJuIHR5cGVvZiArdmFsdWUgPT09ICdudW1iZXInO1xyXG5cdH0sXHJcblx0b2JqZWN0OiBmdW5jdGlvbiBvYmplY3QodmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICF0eXBlcy5hcnJheSh2YWx1ZSk7XHJcblx0fSxcclxuXHRtZXRob2Q6IGZ1bmN0aW9uIG1ldGhvZCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcclxuXHR9LFxyXG5cdGVtYWlsOiBmdW5jdGlvbiBlbWFpbCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLmVtYWlsKSAmJiB2YWx1ZS5sZW5ndGggPCAyNTU7XHJcblx0fSxcclxuXHR1cmw6IGZ1bmN0aW9uIHVybCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLnVybCk7XHJcblx0fSxcclxuXHRoZXg6IGZ1bmN0aW9uIGhleCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLmhleCk7XHJcblx0fVxyXG59O1xyXG4vKipcclxuICogIFJ1bGUgZm9yIHZhbGlkYXRpbmcgdGhlIHR5cGUgb2YgYSB2YWx1ZS5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxyXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gdHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpIHtcclxuXHRpZiAocnVsZS5yZXF1aXJlZCAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRyZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0dmFyIGN1c3RvbSA9IFsnaW50ZWdlcicsICdmbG9hdCcsICdhcnJheScsICdyZWdleHAnLCAnb2JqZWN0JywgJ21ldGhvZCcsICdlbWFpbCcsICdudW1iZXInLCAnZGF0ZScsICd1cmwnLCAnaGV4J107XHJcblx0dmFyIHJ1bGVUeXBlID0gcnVsZS50eXBlO1xyXG5cclxuXHRpZiAoY3VzdG9tLmluZGV4T2YocnVsZVR5cGUpID4gLTEpIHtcclxuXHRcdGlmICghdHlwZXNbcnVsZVR5cGVdKHZhbHVlKSkge1xyXG5cdFx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy50eXBlc1tydWxlVHlwZV0sIHJ1bGUuZnVsbEZpZWxkLCBydWxlLnR5cGUpKTtcclxuXHRcdH0gLy8gc3RyYWlnaHQgdHlwZW9mIGNoZWNrXHJcblxyXG5cdH0gZWxzZSBpZiAocnVsZVR5cGUgJiYgdHlwZW9mIHZhbHVlICE9PSBydWxlLnR5cGUpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzLnR5cGVzW3J1bGVUeXBlXSwgcnVsZS5mdWxsRmllbGQsIHJ1bGUudHlwZSkpO1xyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqICBSdWxlIGZvciB2YWxpZGF0aW5nIG1pbmltdW0gYW5kIG1heGltdW0gYWxsb3dlZCB2YWx1ZXMuXHJcbiAqXHJcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxyXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBlcnJvcnMgQW4gYXJyYXkgb2YgZXJyb3JzIHRoYXQgdGhpcyBydWxlIG1heSBhZGRcclxuICogIHZhbGlkYXRpb24gZXJyb3JzIHRvLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIHJhbmdlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdHZhciBsZW4gPSB0eXBlb2YgcnVsZS5sZW4gPT09ICdudW1iZXInO1xyXG5cdHZhciBtaW4gPSB0eXBlb2YgcnVsZS5taW4gPT09ICdudW1iZXInO1xyXG5cdHZhciBtYXggPSB0eXBlb2YgcnVsZS5tYXggPT09ICdudW1iZXInOyAvLyDmraPliJnljLnphY3noIHngrnojIPlm7Tku45VKzAxMDAwMOS4gOebtOWIsFUrMTBGRkZG55qE5paH5a2X77yI6KGl5YWF5bmz6Z2iU3VwcGxlbWVudGFyeSBQbGFuZe+8iVxyXG5cclxuXHR2YXIgc3BSZWdleHAgPSAvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nO1xyXG5cdHZhciB2YWwgPSB2YWx1ZTtcclxuXHR2YXIga2V5ID0gbnVsbDtcclxuXHR2YXIgbnVtID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcclxuXHR2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcclxuXHR2YXIgYXJyID0gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XHJcblxyXG5cdGlmIChudW0pIHtcclxuXHRcdGtleSA9ICdudW1iZXInO1xyXG5cdH0gZWxzZSBpZiAoc3RyKSB7XHJcblx0XHRrZXkgPSAnc3RyaW5nJztcclxuXHR9IGVsc2UgaWYgKGFycikge1xyXG5cdFx0a2V5ID0gJ2FycmF5JztcclxuXHR9IC8vIGlmIHRoZSB2YWx1ZSBpcyBub3Qgb2YgYSBzdXBwb3J0ZWQgdHlwZSBmb3IgcmFuZ2UgdmFsaWRhdGlvblxyXG5cdC8vIHRoZSB2YWxpZGF0aW9uIHJ1bGUgcnVsZSBzaG91bGQgdXNlIHRoZVxyXG5cdC8vIHR5cGUgcHJvcGVydHkgdG8gYWxzbyB0ZXN0IGZvciBhIHBhcnRpY3VsYXIgdHlwZVxyXG5cclxuXHJcblx0aWYgKCFrZXkpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGlmIChhcnIpIHtcclxuXHRcdHZhbCA9IHZhbHVlLmxlbmd0aDtcclxuXHR9XHJcblxyXG5cdGlmIChzdHIpIHtcclxuXHRcdC8vIOWkhOeQhueggeeCueWkp+S6jlUrMDEwMDAw55qE5paH5a2XbGVuZ3Ro5bGe5oCn5LiN5YeG56Gu55qEYnVn77yM5aaCXCLwoK638KCut/CgrrdcIi5sZW5ndGggIT09IDNcclxuXHRcdHZhbCA9IHZhbHVlLnJlcGxhY2Uoc3BSZWdleHAsICdfJykubGVuZ3RoO1xyXG5cdH1cclxuXHJcblx0aWYgKGxlbikge1xyXG5cdFx0aWYgKHZhbCAhPT0gcnVsZS5sZW4pIHtcclxuXHRcdFx0ZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXNba2V5XS5sZW4sIHJ1bGUuZnVsbEZpZWxkLCBydWxlLmxlbikpO1xyXG5cdFx0fVxyXG5cdH0gZWxzZSBpZiAobWluICYmICFtYXggJiYgdmFsIDwgcnVsZS5taW4pIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ubWluLCBydWxlLmZ1bGxGaWVsZCwgcnVsZS5taW4pKTtcclxuXHR9IGVsc2UgaWYgKG1heCAmJiAhbWluICYmIHZhbCA+IHJ1bGUubWF4KSB7XHJcblx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1trZXldLm1heCwgcnVsZS5mdWxsRmllbGQsIHJ1bGUubWF4KSk7XHJcblx0fSBlbHNlIGlmIChtaW4gJiYgbWF4ICYmICh2YWwgPCBydWxlLm1pbiB8fCB2YWwgPiBydWxlLm1heCkpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ucmFuZ2UsIHJ1bGUuZnVsbEZpZWxkLCBydWxlLm1pbiwgcnVsZS5tYXgpKTtcclxuXHR9XHJcbn1cclxuXHJcbnZhciBFTlVNID0gJ2VudW0nO1xyXG4vKipcclxuICogIFJ1bGUgZm9yIHZhbGlkYXRpbmcgYSB2YWx1ZSBleGlzdHMgaW4gYW4gZW51bWVyYWJsZSBsaXN0LlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gZXJyb3JzIEFuIGFycmF5IG9mIGVycm9ycyB0aGF0IHRoaXMgcnVsZSBtYXkgYWRkXHJcbiAqICB2YWxpZGF0aW9uIGVycm9ycyB0by5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBlbnVtZXJhYmxlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdHJ1bGVbRU5VTV0gPSBBcnJheS5pc0FycmF5KHJ1bGVbRU5VTV0pID8gcnVsZVtFTlVNXSA6IFtdO1xyXG5cclxuXHRpZiAocnVsZVtFTlVNXS5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW0VOVU1dLCBydWxlLmZ1bGxGaWVsZCwgcnVsZVtFTlVNXS5qb2luKCcsICcpKSk7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogIFJ1bGUgZm9yIHZhbGlkYXRpbmcgYSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybi5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxyXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gcGF0dGVybiQxKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdGlmIChydWxlLnBhdHRlcm4pIHtcclxuXHRcdGlmIChydWxlLnBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuXHRcdFx0Ly8gaWYgYSBSZWdFeHAgaW5zdGFuY2UgaXMgcGFzc2VkLCByZXNldCBgbGFzdEluZGV4YCBpbiBjYXNlIGl0cyBgZ2xvYmFsYFxyXG5cdFx0XHQvLyBmbGFnIGlzIGFjY2lkZW50YWxseSBzZXQgdG8gYHRydWVgLCB3aGljaCBpbiBhIHZhbGlkYXRpb24gc2NlbmFyaW9cclxuXHRcdFx0Ly8gaXMgbm90IG5lY2Vzc2FyeSBhbmQgdGhlIHJlc3VsdCBtaWdodCBiZSBtaXNsZWFkaW5nXHJcblx0XHRcdHJ1bGUucGF0dGVybi5sYXN0SW5kZXggPSAwO1xyXG5cclxuXHRcdFx0aWYgKCFydWxlLnBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcclxuXHRcdFx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLCBydWxlLmZ1bGxGaWVsZCwgdmFsdWUsIHJ1bGUucGF0dGVybikpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBydWxlLnBhdHRlcm4gPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHZhciBfcGF0dGVybiA9IG5ldyBSZWdFeHAocnVsZS5wYXR0ZXJuKTtcclxuXHJcblx0XHRcdGlmICghX3BhdHRlcm4udGVzdCh2YWx1ZSkpIHtcclxuXHRcdFx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLCBydWxlLmZ1bGxGaWVsZCwgdmFsdWUsIHJ1bGUucGF0dGVybikpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG52YXIgcnVsZXMgPSB7XHJcblx0cmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG5cdHdoaXRlc3BhY2U6IHdoaXRlc3BhY2UsXHJcblx0dHlwZTogdHlwZSxcclxuXHRyYW5nZTogcmFuZ2UsXHJcblx0XCJlbnVtXCI6IGVudW1lcmFibGUsXHJcblx0cGF0dGVybjogcGF0dGVybiQxXHJcbn07XHJcblxyXG4vKipcclxuICogIFBlcmZvcm1zIHZhbGlkYXRpb24gZm9yIHN0cmluZyB0eXBlcy5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBzdHJpbmcocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ3N0cmluZycpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucywgJ3N0cmluZycpO1xyXG5cclxuXHRcdGlmICghaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5wYXR0ZXJuKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0XHRpZiAocnVsZS53aGl0ZXNwYWNlID09PSB0cnVlKSB7XHJcblx0XHRcdFx0cnVsZXMud2hpdGVzcGFjZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIGZ1bmN0aW9uLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG1ldGhvZChydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cclxuXHRcdGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgVmFsaWRhdGVzIGEgbnVtYmVyLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG51bWJlcihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAodmFsdWUgPT09ICcnKSB7XHJcblx0XHRcdHZhbHVlID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgYSBib29sZWFuLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIF9ib29sZWFuKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0eXBlLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIHJlZ2V4cChydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cclxuXHRcdGlmICghaXNFbXB0eVZhbHVlKHZhbHVlKSkge1xyXG5cdFx0XHRydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIG51bWJlciBpcyBhbiBpbnRlZ2VyLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIGludGVnZXIocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHJcblx0XHRpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHRcdHJ1bGVzLnJhbmdlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIG51bWJlciBpcyBhIGZsb2F0aW5nIHBvaW50IG51bWJlci5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBmbG9hdEZuKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgYW4gYXJyYXkuXHJcbiAqXHJcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxyXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXHJcbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gYXJyYXkocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ2FycmF5JykgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCAnYXJyYXknKTtcclxuXHJcblx0XHRpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ2FycmF5JykpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgYW4gb2JqZWN0LlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG9iamVjdChydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cclxuXHRcdGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbnZhciBFTlVNJDEgPSAnZW51bSc7XHJcbi8qKlxyXG4gKiAgVmFsaWRhdGVzIGFuIGVudW1lcmFibGUgbGlzdC5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBlbnVtZXJhYmxlJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHJcblx0XHRpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRydWxlc1tFTlVNJDFdKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuLlxyXG4gKlxyXG4gKiAgUGVyZm9ybXMgdmFsaWRhdGlvbiB3aGVuIGEgcnVsZSBvbmx5IGNvbnRhaW5zXHJcbiAqICBhIHBhdHRlcm4gcHJvcGVydHkgYnV0IGlzIG5vdCBkZWNsYXJlZCBhcyBhIHN0cmluZyB0eXBlLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIHBhdHRlcm4kMihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHJcblx0XHRpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ3N0cmluZycpKSB7XHJcblx0XHRcdHJ1bGVzLnBhdHRlcm4ocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGUocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7IFxyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKCFpc0VtcHR5VmFsdWUodmFsdWUpKSB7XHJcblx0XHRcdHZhciBkYXRlT2JqZWN0O1xyXG5cclxuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuXHRcdFx0XHRkYXRlT2JqZWN0ID0gbmV3IERhdGUodmFsdWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGRhdGVPYmplY3QgPSB2YWx1ZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCBkYXRlT2JqZWN0LCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0XHRpZiAoZGF0ZU9iamVjdCkge1xyXG5cdFx0XHRcdHJ1bGVzLnJhbmdlKHJ1bGUsIGRhdGVPYmplY3QuZ2V0VGltZSgpLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlcXVpcmVkJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHR5cGUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/ICdhcnJheScgOiB0eXBlb2YgdmFsdWU7XHJcblx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCB0eXBlKTtcclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0eXBlJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgcnVsZVR5cGUgPSBydWxlLnR5cGU7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUsIHJ1bGVUeXBlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMsIHJ1bGVUeXBlKTtcclxuXHJcblx0XHRpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgcnVsZVR5cGUpKSB7XHJcblx0XHRcdHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgUGVyZm9ybXMgdmFsaWRhdGlvbiBmb3IgYW55IHR5cGUuXHJcbiAqXHJcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxyXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXHJcbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gYW55KHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG52YXIgdmFsaWRhdG9ycyA9IHtcclxuXHRzdHJpbmc6IHN0cmluZyxcclxuXHRtZXRob2Q6IG1ldGhvZCxcclxuXHRudW1iZXI6IG51bWJlcixcclxuXHRcImJvb2xlYW5cIjogX2Jvb2xlYW4sXHJcblx0cmVnZXhwOiByZWdleHAsXHJcblx0aW50ZWdlcjogaW50ZWdlcixcclxuXHRcImZsb2F0XCI6IGZsb2F0Rm4sXHJcblx0YXJyYXk6IGFycmF5LFxyXG5cdG9iamVjdDogb2JqZWN0LFxyXG5cdFwiZW51bVwiOiBlbnVtZXJhYmxlJDEsXHJcblx0cGF0dGVybjogcGF0dGVybiQyLFxyXG5cdGRhdGU6IGRhdGUsXHJcblx0dXJsOiB0eXBlJDEsXHJcblx0aGV4OiB0eXBlJDEsXHJcblx0ZW1haWw6IHR5cGUkMSxcclxuXHRyZXF1aXJlZDogcmVxdWlyZWQkMSxcclxuXHRhbnk6IGFueVxyXG59O1xyXG5cclxuZnVuY3Rpb24gbmV3TWVzc2FnZXMoKSB7XHJcblx0cmV0dXJuIHtcclxuXHRcdFwiZGVmYXVsdFwiOiAnVmFsaWRhdGlvbiBlcnJvciBvbiBmaWVsZCAlcycsXHJcblx0XHRyZXF1aXJlZDogJyVzIGlzIHJlcXVpcmVkJyxcclxuXHRcdFwiZW51bVwiOiAnJXMgbXVzdCBiZSBvbmUgb2YgJXMnLFxyXG5cdFx0d2hpdGVzcGFjZTogJyVzIGNhbm5vdCBiZSBlbXB0eScsXHJcblx0XHRkYXRlOiB7XHJcblx0XHRcdGZvcm1hdDogJyVzIGRhdGUgJXMgaXMgaW52YWxpZCBmb3IgZm9ybWF0ICVzJyxcclxuXHRcdFx0cGFyc2U6ICclcyBkYXRlIGNvdWxkIG5vdCBiZSBwYXJzZWQsICVzIGlzIGludmFsaWQgJyxcclxuXHRcdFx0aW52YWxpZDogJyVzIGRhdGUgJXMgaXMgaW52YWxpZCdcclxuXHRcdH0sXHJcblx0XHR0eXBlczoge1xyXG5cdFx0XHRzdHJpbmc6ICclcyBpcyBub3QgYSAlcycsXHJcblx0XHRcdG1ldGhvZDogJyVzIGlzIG5vdCBhICVzIChmdW5jdGlvbiknLFxyXG5cdFx0XHRhcnJheTogJyVzIGlzIG5vdCBhbiAlcycsXHJcblx0XHRcdG9iamVjdDogJyVzIGlzIG5vdCBhbiAlcycsXHJcblx0XHRcdG51bWJlcjogJyVzIGlzIG5vdCBhICVzJyxcclxuXHRcdFx0ZGF0ZTogJyVzIGlzIG5vdCBhICVzJyxcclxuXHRcdFx0XCJib29sZWFuXCI6ICclcyBpcyBub3QgYSAlcycsXHJcblx0XHRcdGludGVnZXI6ICclcyBpcyBub3QgYW4gJXMnLFxyXG5cdFx0XHRcImZsb2F0XCI6ICclcyBpcyBub3QgYSAlcycsXHJcblx0XHRcdHJlZ2V4cDogJyVzIGlzIG5vdCBhIHZhbGlkICVzJyxcclxuXHRcdFx0ZW1haWw6ICclcyBpcyBub3QgYSB2YWxpZCAlcycsXHJcblx0XHRcdHVybDogJyVzIGlzIG5vdCBhIHZhbGlkICVzJyxcclxuXHRcdFx0aGV4OiAnJXMgaXMgbm90IGEgdmFsaWQgJXMnXHJcblx0XHR9LFxyXG5cdFx0c3RyaW5nOiB7XHJcblx0XHRcdGxlbjogJyVzIG11c3QgYmUgZXhhY3RseSAlcyBjaGFyYWN0ZXJzJyxcclxuXHRcdFx0bWluOiAnJXMgbXVzdCBiZSBhdCBsZWFzdCAlcyBjaGFyYWN0ZXJzJyxcclxuXHRcdFx0bWF4OiAnJXMgY2Fubm90IGJlIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnLFxyXG5cdFx0XHRyYW5nZTogJyVzIG11c3QgYmUgYmV0d2VlbiAlcyBhbmQgJXMgY2hhcmFjdGVycydcclxuXHRcdH0sXHJcblx0XHRudW1iZXI6IHtcclxuXHRcdFx0bGVuOiAnJXMgbXVzdCBlcXVhbCAlcycsXHJcblx0XHRcdG1pbjogJyVzIGNhbm5vdCBiZSBsZXNzIHRoYW4gJXMnLFxyXG5cdFx0XHRtYXg6ICclcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVzJyxcclxuXHRcdFx0cmFuZ2U6ICclcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzJ1xyXG5cdFx0fSxcclxuXHRcdGFycmF5OiB7XHJcblx0XHRcdGxlbjogJyVzIG11c3QgYmUgZXhhY3RseSAlcyBpbiBsZW5ndGgnLFxyXG5cdFx0XHRtaW46ICclcyBjYW5ub3QgYmUgbGVzcyB0aGFuICVzIGluIGxlbmd0aCcsXHJcblx0XHRcdG1heDogJyVzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJXMgaW4gbGVuZ3RoJyxcclxuXHRcdFx0cmFuZ2U6ICclcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzIGluIGxlbmd0aCdcclxuXHRcdH0sXHJcblx0XHRwYXR0ZXJuOiB7XHJcblx0XHRcdG1pc21hdGNoOiAnJXMgdmFsdWUgJXMgZG9lcyBub3QgbWF0Y2ggcGF0dGVybiAlcydcclxuXHRcdH0sXHJcblx0XHRjbG9uZTogZnVuY3Rpb24gY2xvbmUoKSB7XHJcblx0XHRcdHZhciBjbG9uZWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMpKTtcclxuXHRcdFx0Y2xvbmVkLmNsb25lID0gdGhpcy5jbG9uZTtcclxuXHRcdFx0cmV0dXJuIGNsb25lZDtcclxuXHRcdH1cclxuXHR9O1xyXG59XHJcbnZhciBtZXNzYWdlcyA9IG5ld01lc3NhZ2VzKCk7XHJcblxyXG4vKipcclxuICogIEVuY2Fwc3VsYXRlcyBhIHZhbGlkYXRpb24gc2NoZW1hLlxyXG4gKlxyXG4gKiAgQHBhcmFtIGRlc2NyaXB0b3IgQW4gb2JqZWN0IGRlY2xhcmluZyB2YWxpZGF0aW9uIHJ1bGVzXHJcbiAqICBmb3IgdGhpcyBzY2hlbWEuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gU2NoZW1hKGRlc2NyaXB0b3IpIHtcclxuXHR0aGlzLnJ1bGVzID0gbnVsbDtcclxuXHR0aGlzLl9tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG5cdHRoaXMuZGVmaW5lKGRlc2NyaXB0b3IpO1xyXG59XHJcblxyXG5TY2hlbWEucHJvdG90eXBlID0ge1xyXG5cdG1lc3NhZ2VzOiBmdW5jdGlvbiBtZXNzYWdlcyhfbWVzc2FnZXMpIHtcclxuXHRcdGlmIChfbWVzc2FnZXMpIHtcclxuXHRcdFx0dGhpcy5fbWVzc2FnZXMgPSBkZWVwTWVyZ2UobmV3TWVzc2FnZXMoKSwgX21lc3NhZ2VzKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5fbWVzc2FnZXM7XHJcblx0fSxcclxuXHRkZWZpbmU6IGZ1bmN0aW9uIGRlZmluZShydWxlcykge1xyXG5cdFx0aWYgKCFydWxlcykge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb25maWd1cmUgYSBzY2hlbWEgd2l0aCBubyBydWxlcycpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0eXBlb2YgcnVsZXMgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkocnVsZXMpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignUnVsZXMgbXVzdCBiZSBhbiBvYmplY3QnKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnJ1bGVzID0ge307XHJcblx0XHR2YXIgejtcclxuXHRcdHZhciBpdGVtO1xyXG5cclxuXHRcdGZvciAoeiBpbiBydWxlcykge1xyXG5cdFx0XHRpZiAocnVsZXMuaGFzT3duUHJvcGVydHkoeikpIHtcclxuXHRcdFx0XHRpdGVtID0gcnVsZXNbel07XHJcblx0XHRcdFx0dGhpcy5ydWxlc1t6XSA9IEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtIDogW2l0ZW1dO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHR2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoc291cmNlXywgbywgb2MpIHtcclxuXHRcdHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG5cdFx0aWYgKG8gPT09IHZvaWQgMCkge1xyXG5cdFx0XHRvID0ge307XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKG9jID09PSB2b2lkIDApIHtcclxuXHRcdFx0b2MgPSBmdW5jdGlvbiBvYygpIHt9O1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBzb3VyY2UgPSBzb3VyY2VfO1xyXG5cdFx0dmFyIG9wdGlvbnMgPSBvO1xyXG5cdFx0dmFyIGNhbGxiYWNrID0gb2M7XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGNhbGxiYWNrID0gb3B0aW9ucztcclxuXHRcdFx0b3B0aW9ucyA9IHt9O1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghdGhpcy5ydWxlcyB8fCBPYmplY3Qua2V5cyh0aGlzLnJ1bGVzKS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0aWYgKGNhbGxiYWNrKSB7XHJcblx0XHRcdFx0Y2FsbGJhY2soKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZ1bmN0aW9uIGNvbXBsZXRlKHJlc3VsdHMpIHtcclxuXHRcdFx0dmFyIGk7XHJcblx0XHRcdHZhciBlcnJvcnMgPSBbXTtcclxuXHRcdFx0dmFyIGZpZWxkcyA9IHt9O1xyXG5cclxuXHRcdFx0ZnVuY3Rpb24gYWRkKGUpIHtcclxuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShlKSkge1xyXG5cdFx0XHRcdFx0dmFyIF9lcnJvcnM7XHJcblxyXG5cdFx0XHRcdFx0ZXJyb3JzID0gKF9lcnJvcnMgPSBlcnJvcnMpLmNvbmNhdC5hcHBseShfZXJyb3JzLCBlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0ZXJyb3JzLnB1c2goZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGFkZChyZXN1bHRzW2ldKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCFlcnJvcnMubGVuZ3RoKSB7XHJcblx0XHRcdFx0ZXJyb3JzID0gbnVsbDtcclxuXHRcdFx0XHRmaWVsZHMgPSBudWxsO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGZpZWxkcyA9IGNvbnZlcnRGaWVsZHNFcnJvcihlcnJvcnMpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjYWxsYmFjayhlcnJvcnMsIGZpZWxkcyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKG9wdGlvbnMubWVzc2FnZXMpIHtcclxuXHRcdFx0dmFyIG1lc3NhZ2VzJDEgPSB0aGlzLm1lc3NhZ2VzKCk7XHJcblxyXG5cdFx0XHRpZiAobWVzc2FnZXMkMSA9PT0gbWVzc2FnZXMpIHtcclxuXHRcdFx0XHRtZXNzYWdlcyQxID0gbmV3TWVzc2FnZXMoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0ZGVlcE1lcmdlKG1lc3NhZ2VzJDEsIG9wdGlvbnMubWVzc2FnZXMpO1xyXG5cdFx0XHRvcHRpb25zLm1lc3NhZ2VzID0gbWVzc2FnZXMkMTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdG9wdGlvbnMubWVzc2FnZXMgPSB0aGlzLm1lc3NhZ2VzKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIGFycjtcclxuXHRcdHZhciB2YWx1ZTtcclxuXHRcdHZhciBzZXJpZXMgPSB7fTtcclxuXHRcdHZhciBrZXlzID0gb3B0aW9ucy5rZXlzIHx8IE9iamVjdC5rZXlzKHRoaXMucnVsZXMpO1xyXG5cdFx0a2V5cy5mb3JFYWNoKGZ1bmN0aW9uKHopIHtcclxuXHRcdFx0YXJyID0gX3RoaXMucnVsZXNbel07XHJcblx0XHRcdHZhbHVlID0gc291cmNlW3pdO1xyXG5cdFx0XHRhcnIuZm9yRWFjaChmdW5jdGlvbihyKSB7XHJcblx0XHRcdFx0dmFyIHJ1bGUgPSByO1xyXG5cclxuXHRcdFx0XHRpZiAodHlwZW9mIHJ1bGUudHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRpZiAoc291cmNlID09PSBzb3VyY2VfKSB7XHJcblx0XHRcdFx0XHRcdHNvdXJjZSA9IF9leHRlbmRzKHt9LCBzb3VyY2UpO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHZhbHVlID0gc291cmNlW3pdID0gcnVsZS50cmFuc2Zvcm0odmFsdWUpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHR5cGVvZiBydWxlID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRydWxlID0ge1xyXG5cdFx0XHRcdFx0XHR2YWxpZGF0b3I6IHJ1bGVcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHJ1bGUgPSBfZXh0ZW5kcyh7fSwgcnVsZSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRydWxlLnZhbGlkYXRvciA9IF90aGlzLmdldFZhbGlkYXRpb25NZXRob2QocnVsZSk7XHJcblx0XHRcdFx0cnVsZS5maWVsZCA9IHo7XHJcblx0XHRcdFx0cnVsZS5mdWxsRmllbGQgPSBydWxlLmZ1bGxGaWVsZCB8fCB6O1xyXG5cdFx0XHRcdHJ1bGUudHlwZSA9IF90aGlzLmdldFR5cGUocnVsZSk7XHJcblxyXG5cdFx0XHRcdGlmICghcnVsZS52YWxpZGF0b3IpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHNlcmllc1t6XSA9IHNlcmllc1t6XSB8fCBbXTtcclxuXHRcdFx0XHRzZXJpZXNbel0ucHVzaCh7XHJcblx0XHRcdFx0XHRydWxlOiBydWxlLFxyXG5cdFx0XHRcdFx0dmFsdWU6IHZhbHVlLFxyXG5cdFx0XHRcdFx0c291cmNlOiBzb3VyY2UsXHJcblx0XHRcdFx0XHRmaWVsZDogelxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdFx0dmFyIGVycm9yRmllbGRzID0ge307XHJcblx0XHRyZXR1cm4gYXN5bmNNYXAoc2VyaWVzLCBvcHRpb25zLCBmdW5jdGlvbihkYXRhLCBkb0l0KSB7XHJcblx0XHRcdHZhciBydWxlID0gZGF0YS5ydWxlO1xyXG5cdFx0XHR2YXIgZGVlcCA9IChydWxlLnR5cGUgPT09ICdvYmplY3QnIHx8IHJ1bGUudHlwZSA9PT0gJ2FycmF5JykgJiYgKHR5cGVvZiBydWxlLmZpZWxkcyA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHJ1bGUuZGVmYXVsdEZpZWxkID09PVxyXG5cdFx0XHRcdCdvYmplY3QnKTtcclxuXHRcdFx0ZGVlcCA9IGRlZXAgJiYgKHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgZGF0YS52YWx1ZSk7XHJcblx0XHRcdHJ1bGUuZmllbGQgPSBkYXRhLmZpZWxkO1xyXG5cclxuXHRcdFx0ZnVuY3Rpb24gYWRkRnVsbGZpZWxkKGtleSwgc2NoZW1hKSB7XHJcblx0XHRcdFx0cmV0dXJuIF9leHRlbmRzKHt9LCBzY2hlbWEsIHtcclxuXHRcdFx0XHRcdGZ1bGxGaWVsZDogcnVsZS5mdWxsRmllbGQgKyBcIi5cIiArIGtleVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRmdW5jdGlvbiBjYihlKSB7XHJcblx0XHRcdFx0aWYgKGUgPT09IHZvaWQgMCkge1xyXG5cdFx0XHRcdFx0ZSA9IFtdO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dmFyIGVycm9ycyA9IGU7XHJcblxyXG5cdFx0XHRcdGlmICghQXJyYXkuaXNBcnJheShlcnJvcnMpKSB7XHJcblx0XHRcdFx0XHRlcnJvcnMgPSBbZXJyb3JzXTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICghb3B0aW9ucy5zdXBwcmVzc1dhcm5pbmcgJiYgZXJyb3JzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0U2NoZW1hLndhcm5pbmcoJ2FzeW5jLXZhbGlkYXRvcjonLCBlcnJvcnMpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKGVycm9ycy5sZW5ndGggJiYgcnVsZS5tZXNzYWdlKSB7XHJcblx0XHRcdFx0XHRlcnJvcnMgPSBbXS5jb25jYXQocnVsZS5tZXNzYWdlKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGVycm9ycyA9IGVycm9ycy5tYXAoY29tcGxlbWVudEVycm9yKHJ1bGUpKTtcclxuXHJcblx0XHRcdFx0aWYgKG9wdGlvbnMuZmlyc3QgJiYgZXJyb3JzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0ZXJyb3JGaWVsZHNbcnVsZS5maWVsZF0gPSAxO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGRvSXQoZXJyb3JzKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICghZGVlcCkge1xyXG5cdFx0XHRcdFx0ZG9JdChlcnJvcnMpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyBpZiBydWxlIGlzIHJlcXVpcmVkIGJ1dCB0aGUgdGFyZ2V0IG9iamVjdFxyXG5cdFx0XHRcdFx0Ly8gZG9lcyBub3QgZXhpc3QgZmFpbCBhdCB0aGUgcnVsZSBsZXZlbCBhbmQgZG9uJ3RcclxuXHRcdFx0XHRcdC8vIGdvIGRlZXBlclxyXG5cdFx0XHRcdFx0aWYgKHJ1bGUucmVxdWlyZWQgJiYgIWRhdGEudmFsdWUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHJ1bGUubWVzc2FnZSkge1xyXG5cdFx0XHRcdFx0XHRcdGVycm9ycyA9IFtdLmNvbmNhdChydWxlLm1lc3NhZ2UpLm1hcChjb21wbGVtZW50RXJyb3IocnVsZSkpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9wdGlvbnMuZXJyb3IpIHtcclxuXHRcdFx0XHRcdFx0XHRlcnJvcnMgPSBbb3B0aW9ucy5lcnJvcihydWxlLCBmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5yZXF1aXJlZCwgcnVsZS5maWVsZCkpXTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRlcnJvcnMgPSBbXTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0cmV0dXJuIGRvSXQoZXJyb3JzKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR2YXIgZmllbGRzU2NoZW1hID0ge307XHJcblxyXG5cdFx0XHRcdFx0aWYgKHJ1bGUuZGVmYXVsdEZpZWxkKSB7XHJcblx0XHRcdFx0XHRcdGZvciAodmFyIGsgaW4gZGF0YS52YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChkYXRhLnZhbHVlLmhhc093blByb3BlcnR5KGspKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmaWVsZHNTY2hlbWFba10gPSBydWxlLmRlZmF1bHRGaWVsZDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRmaWVsZHNTY2hlbWEgPSBfZXh0ZW5kcyh7fSwgZmllbGRzU2NoZW1hLCB7fSwgZGF0YS5ydWxlLmZpZWxkcyk7XHJcblxyXG5cdFx0XHRcdFx0Zm9yICh2YXIgZiBpbiBmaWVsZHNTY2hlbWEpIHtcclxuXHRcdFx0XHRcdFx0aWYgKGZpZWxkc1NjaGVtYS5oYXNPd25Qcm9wZXJ0eShmKSkge1xyXG5cdFx0XHRcdFx0XHRcdHZhciBmaWVsZFNjaGVtYSA9IEFycmF5LmlzQXJyYXkoZmllbGRzU2NoZW1hW2ZdKSA/IGZpZWxkc1NjaGVtYVtmXSA6IFtmaWVsZHNTY2hlbWFbZl1dO1xyXG5cdFx0XHRcdFx0XHRcdGZpZWxkc1NjaGVtYVtmXSA9IGZpZWxkU2NoZW1hLm1hcChhZGRGdWxsZmllbGQuYmluZChudWxsLCBmKSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR2YXIgc2NoZW1hID0gbmV3IFNjaGVtYShmaWVsZHNTY2hlbWEpO1xyXG5cdFx0XHRcdFx0c2NoZW1hLm1lc3NhZ2VzKG9wdGlvbnMubWVzc2FnZXMpO1xyXG5cclxuXHRcdFx0XHRcdGlmIChkYXRhLnJ1bGUub3B0aW9ucykge1xyXG5cdFx0XHRcdFx0XHRkYXRhLnJ1bGUub3B0aW9ucy5tZXNzYWdlcyA9IG9wdGlvbnMubWVzc2FnZXM7XHJcblx0XHRcdFx0XHRcdGRhdGEucnVsZS5vcHRpb25zLmVycm9yID0gb3B0aW9ucy5lcnJvcjtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRzY2hlbWEudmFsaWRhdGUoZGF0YS52YWx1ZSwgZGF0YS5ydWxlLm9wdGlvbnMgfHwgb3B0aW9ucywgZnVuY3Rpb24oZXJycykge1xyXG5cdFx0XHRcdFx0XHR2YXIgZmluYWxFcnJvcnMgPSBbXTtcclxuXHJcblx0XHRcdFx0XHRcdGlmIChlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHRcdGZpbmFsRXJyb3JzLnB1c2guYXBwbHkoZmluYWxFcnJvcnMsIGVycm9ycyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmIChlcnJzICYmIGVycnMubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdFx0ZmluYWxFcnJvcnMucHVzaC5hcHBseShmaW5hbEVycm9ycywgZXJycyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGRvSXQoZmluYWxFcnJvcnMubGVuZ3RoID8gZmluYWxFcnJvcnMgOiBudWxsKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dmFyIHJlcztcclxuXHJcblx0XHRcdGlmIChydWxlLmFzeW5jVmFsaWRhdG9yKSB7XHJcblx0XHRcdFx0cmVzID0gcnVsZS5hc3luY1ZhbGlkYXRvcihydWxlLCBkYXRhLnZhbHVlLCBjYiwgZGF0YS5zb3VyY2UsIG9wdGlvbnMpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHJ1bGUudmFsaWRhdG9yKSB7XHJcblx0XHRcdFx0cmVzID0gcnVsZS52YWxpZGF0b3IocnVsZSwgZGF0YS52YWx1ZSwgY2IsIGRhdGEuc291cmNlLCBvcHRpb25zKTtcclxuXHJcblx0XHRcdFx0aWYgKHJlcyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0Y2IoKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRcdGNiKHJ1bGUubWVzc2FnZSB8fCBydWxlLmZpZWxkICsgXCIgZmFpbHNcIik7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChyZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG5cdFx0XHRcdFx0Y2IocmVzKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yKSB7XHJcblx0XHRcdFx0XHRjYihyZXMubWVzc2FnZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAocmVzICYmIHJlcy50aGVuKSB7XHJcblx0XHRcdFx0cmVzLnRoZW4oZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gY2IoKTtcclxuXHRcdFx0XHR9LCBmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gY2IoZSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0sIGZ1bmN0aW9uKHJlc3VsdHMpIHtcclxuXHRcdFx0Y29tcGxldGUocmVzdWx0cyk7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cdGdldFR5cGU6IGZ1bmN0aW9uIGdldFR5cGUocnVsZSkge1xyXG5cdFx0aWYgKHJ1bGUudHlwZSA9PT0gdW5kZWZpbmVkICYmIHJ1bGUucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG5cdFx0XHRydWxlLnR5cGUgPSAncGF0dGVybic7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBydWxlLnZhbGlkYXRvciAhPT0gJ2Z1bmN0aW9uJyAmJiBydWxlLnR5cGUgJiYgIXZhbGlkYXRvcnMuaGFzT3duUHJvcGVydHkocnVsZS50eXBlKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoZm9ybWF0KCdVbmtub3duIHJ1bGUgdHlwZSAlcycsIHJ1bGUudHlwZSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBydWxlLnR5cGUgfHwgJ3N0cmluZyc7XHJcblx0fSxcclxuXHRnZXRWYWxpZGF0aW9uTWV0aG9kOiBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uTWV0aG9kKHJ1bGUpIHtcclxuXHRcdGlmICh0eXBlb2YgcnVsZS52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0cmV0dXJuIHJ1bGUudmFsaWRhdG9yO1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBrZXlzID0gT2JqZWN0LmtleXMocnVsZSk7XHJcblx0XHR2YXIgbWVzc2FnZUluZGV4ID0ga2V5cy5pbmRleE9mKCdtZXNzYWdlJyk7XHJcblxyXG5cdFx0aWYgKG1lc3NhZ2VJbmRleCAhPT0gLTEpIHtcclxuXHRcdFx0a2V5cy5zcGxpY2UobWVzc2FnZUluZGV4LCAxKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoa2V5cy5sZW5ndGggPT09IDEgJiYga2V5c1swXSA9PT0gJ3JlcXVpcmVkJykge1xyXG5cdFx0XHRyZXR1cm4gdmFsaWRhdG9ycy5yZXF1aXJlZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdmFsaWRhdG9yc1t0aGlzLmdldFR5cGUocnVsZSldIHx8IGZhbHNlO1xyXG5cdH1cclxufTtcclxuXHJcblNjaGVtYS5yZWdpc3RlciA9IGZ1bmN0aW9uIHJlZ2lzdGVyKHR5cGUsIHZhbGlkYXRvcikge1xyXG5cdGlmICh0eXBlb2YgdmFsaWRhdG9yICE9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZWdpc3RlciBhIHZhbGlkYXRvciBieSB0eXBlLCB2YWxpZGF0b3IgaXMgbm90IGEgZnVuY3Rpb24nKTtcclxuXHR9XHJcblxyXG5cdHZhbGlkYXRvcnNbdHlwZV0gPSB2YWxpZGF0b3I7XHJcbn07XHJcblxyXG5TY2hlbWEud2FybmluZyA9IHdhcm5pbmc7XHJcblNjaGVtYS5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2NoZW1hO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXBcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1437\n"); +======= +eval("/* WEBPACK VAR INJECTION */(function(process, __f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 5));\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/* eslint no-console:0 */\nvar formatRegExp = /%[sdj%]/g;\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\nif (typeof process !== 'undefined' && Object({\"NODE_ENV\":\"development\",\"VUE_APP_DARK_MODE\":\"false\",\"VUE_APP_NAME\":\"智慧安全\",\"VUE_APP_PLATFORM\":\"app-plus\",\"BASE_URL\":\"/\"}) && \"development\" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n __f__(\"warn\", type, errors, \" at uview-ui/libs/util/async-validator.js:30\");\n }\n }\n };\n}\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var i = 1;\n var f = args[0];\n var len = args.length;\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n if (typeof f === 'string') {\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n for (var arg = args[i]; i < len; arg = args[++i]) {\n str += \" \" + arg;\n }\n return str;\n }\n return f;\n}\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';\n}\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n arr.forEach(function (a) {\n func(a, count);\n });\n}\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n var original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n next([]);\n}\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\nfunction asyncMap(objArr, option, func, callback) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject({\n errors: errors,\n fields: convertFieldsError(errors)\n }) : resolve();\n };\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n _pending[\"catch\"](function (e) {\n return e;\n });\n return _pending;\n }\n var firstFields = option.firstFields || [];\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject({\n errors: results,\n fields: convertFieldsError(results)\n }) : resolve();\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve();\n }\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending[\"catch\"](function (e) {\n return e;\n });\n return pending;\n}\nfunction complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField\n };\n };\n}\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n if ((0, _typeof2.default)(value) === 'object' && (0, _typeof2.default)(target[s]) === 'object') {\n target[s] = _extends({}, target[s], {}, value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n\n/**\r\n * Rule for validating required fields.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n}\n\n/**\r\n * Rule for validating whitespace.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n}\n\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp(\"^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$\", 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n\n // 修改源码,将字符串数值先转为数值\n return typeof +value === 'number';\n },\n object: function object(value) {\n return (0, _typeof2.default)(value) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n/**\r\n * Rule for validating the type of a value.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n } // straight typeof check\n } else if (ruleType && (0, _typeof2.default)(value) !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n}\n\n/**\r\n * Rule for validating minimum and maximum allowed values.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n } // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".length !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\nvar ENUM = 'enum';\n/**\r\n * Rule for validating a value exists in an enumerable list.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n\n/**\r\n * Rule for validating a regular expression pattern.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction pattern$1(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\nvar rules = {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n \"enum\": enumerable,\n pattern: pattern$1\n};\n\n/**\r\n * Performs validation for string types.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a function.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a number.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a boolean.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction _boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates the regular expression type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a number is an integer.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a number is a floating point number.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates an array.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'array') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (!isEmptyValue(value, 'array')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates an object.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\nvar ENUM$1 = 'enum';\n/**\r\n * Validates an enumerable list.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction enumerable$1(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM$1](rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Validates a regular expression pattern.\r\n *\r\n * Performs validation when a rule only contains\r\n * a pattern property but is not declared as a string type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction pattern$2(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\nfunction date(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n var dateObject;\n if (typeof value === 'number') {\n dateObject = new Date(value);\n } else {\n dateObject = value;\n }\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n}\nfunction required$1(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : (0, _typeof2.default)(value);\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n}\nfunction type$1(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/**\r\n * Performs validation for any type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\n\nfunction any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n}\nvar validators = {\n string: string,\n method: method,\n number: number,\n \"boolean\": _boolean,\n regexp: regexp,\n integer: integer,\n \"float\": floatFn,\n array: array,\n object: object,\n \"enum\": enumerable$1,\n pattern: pattern$2,\n date: date,\n url: type$1,\n hex: type$1,\n email: type$1,\n required: required$1,\n any: any\n};\nfunction newMessages() {\n return {\n \"default\": 'Validation error on field %s',\n required: '%s is required',\n \"enum\": '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n \"boolean\": '%s is not a %s',\n integer: '%s is not an %s',\n \"float\": '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nvar messages = newMessages();\n\n/**\r\n * Encapsulates a validation schema.\r\n *\r\n * @param descriptor An object declaring validation rules\r\n * for this schema.\r\n */\n\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n}\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if ((0, _typeof2.default)(rules) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n var z;\n var item;\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_, o, oc) {\n var _this = this;\n if (o === void 0) {\n o = {};\n }\n if (oc === void 0) {\n oc = function oc() {};\n }\n var source = source_;\n var options = o;\n var callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n return Promise.resolve();\n }\n function complete(results) {\n var i;\n var errors = [];\n var fields = {};\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n callback(errors, fields);\n }\n if (options.messages) {\n var messages$1 = this.messages();\n if (messages$1 === messages) {\n messages$1 = newMessages();\n }\n deepMerge(messages$1, options.messages);\n options.messages = messages$1;\n } else {\n options.messages = this.messages();\n }\n var arr;\n var value;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n }\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n if (!rule.validator) {\n return;\n }\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && ((0, _typeof2.default)(rule.fields) === 'object' || (0, _typeof2.default)(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n function addFullfield(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + \".\" + key\n });\n }\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n var errors = e;\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n if (errors.length && rule.message) {\n errors = [].concat(rule.message);\n }\n errors = errors.map(complementError(rule));\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n if (!deep) {\n doIt(errors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message) {\n errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [options.error(rule, format(options.messages.required, rule.field))];\n } else {\n errors = [];\n }\n return doIt(errors);\n }\n var fieldsSchema = {};\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n fieldsSchema = _extends({}, fieldsSchema, {}, data.rule.fields);\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n var schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n if (errors && errors.length) {\n finalErrors.push.apply(finalErrors, errors);\n }\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n var res;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n res = rule.validator(rule, data.value, cb, data.source, options);\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || rule.field + \" fails\");\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || false;\n }\n};\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n validators[type] = validator;\n};\nSchema.warning = warning;\nSchema.messages = messages;\nvar _default = Schema;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/node-libs-browser/mock/process.js */ 1438), __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXZpZXctdWkvbGlicy91dGlsL2FzeW5jLXZhbGlkYXRvci5qcyJdLCJuYW1lcyI6WyJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhcHBseSIsImZvcm1hdFJlZ0V4cCIsIndhcm5pbmciLCJwcm9jZXNzIiwid2luZG93IiwiZG9jdW1lbnQiLCJ0eXBlIiwiZXJyb3JzIiwiY29uc29sZSIsIndhcm4iLCJldmVyeSIsImUiLCJjb252ZXJ0RmllbGRzRXJyb3IiLCJmaWVsZHMiLCJmb3JFYWNoIiwiZXJyb3IiLCJmaWVsZCIsInB1c2giLCJmb3JtYXQiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImYiLCJsZW4iLCJzbGljZSIsInN0ciIsIlN0cmluZyIsInJlcGxhY2UiLCJ4IiwiTnVtYmVyIiwiSlNPTiIsInN0cmluZ2lmeSIsIl8iLCJhcmciLCJpc05hdGl2ZVN0cmluZ1R5cGUiLCJpc0VtcHR5VmFsdWUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImlzQXJyYXkiLCJhc3luY1BhcmFsbGVsQXJyYXkiLCJhcnIiLCJmdW5jIiwiY2FsbGJhY2siLCJyZXN1bHRzIiwidG90YWwiLCJhcnJMZW5ndGgiLCJjb3VudCIsImEiLCJhc3luY1NlcmlhbEFycmF5IiwiaW5kZXgiLCJuZXh0Iiwib3JpZ2luYWwiLCJmbGF0dGVuT2JqQXJyIiwib2JqQXJyIiwicmV0Iiwia2V5cyIsImsiLCJhc3luY01hcCIsIm9wdGlvbiIsImZpcnN0IiwiX3BlbmRpbmciLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZsYXR0ZW5BcnIiLCJmaXJzdEZpZWxkcyIsIm9iakFycktleXMiLCJvYmpBcnJMZW5ndGgiLCJwZW5kaW5nIiwiaW5kZXhPZiIsImNvbXBsZW1lbnRFcnJvciIsInJ1bGUiLCJvZSIsIm1lc3NhZ2UiLCJmdWxsRmllbGQiLCJkZWVwTWVyZ2UiLCJzIiwicmVxdWlyZWQiLCJvcHRpb25zIiwibWVzc2FnZXMiLCJ3aGl0ZXNwYWNlIiwidGVzdCIsInBhdHRlcm4iLCJlbWFpbCIsInVybCIsIlJlZ0V4cCIsImhleCIsInR5cGVzIiwiaW50ZWdlciIsIm51bWJlciIsInBhcnNlSW50IiwiZmxvYXQiLCJhcnJheSIsInJlZ2V4cCIsImRhdGUiLCJnZXRUaW1lIiwiZ2V0TW9udGgiLCJnZXRZZWFyIiwiaXNOYU4iLCJvYmplY3QiLCJtZXRob2QiLCJtYXRjaCIsImN1c3RvbSIsInJ1bGVUeXBlIiwicmFuZ2UiLCJtaW4iLCJtYXgiLCJzcFJlZ2V4cCIsInZhbCIsIm51bSIsIkVOVU0iLCJlbnVtZXJhYmxlIiwiam9pbiIsInBhdHRlcm4kMSIsImxhc3RJbmRleCIsIm1pc21hdGNoIiwiX3BhdHRlcm4iLCJydWxlcyIsInN0cmluZyIsInZhbGlkYXRlIiwiX2Jvb2xlYW4iLCJmbG9hdEZuIiwiRU5VTSQxIiwiZW51bWVyYWJsZSQxIiwicGF0dGVybiQyIiwiZGF0ZU9iamVjdCIsIkRhdGUiLCJyZXF1aXJlZCQxIiwidHlwZSQxIiwiYW55IiwidmFsaWRhdG9ycyIsIm5ld01lc3NhZ2VzIiwicGFyc2UiLCJpbnZhbGlkIiwiY2xvbmUiLCJjbG9uZWQiLCJTY2hlbWEiLCJkZXNjcmlwdG9yIiwiX21lc3NhZ2VzIiwiZGVmaW5lIiwiRXJyb3IiLCJ6IiwiaXRlbSIsInNvdXJjZV8iLCJvIiwib2MiLCJfdGhpcyIsImNvbXBsZXRlIiwiYWRkIiwiX2Vycm9ycyIsImNvbmNhdCIsIm1lc3NhZ2VzJDEiLCJzZXJpZXMiLCJyIiwidHJhbnNmb3JtIiwidmFsaWRhdG9yIiwiZ2V0VmFsaWRhdGlvbk1ldGhvZCIsImdldFR5cGUiLCJlcnJvckZpZWxkcyIsImRhdGEiLCJkb0l0IiwiZGVlcCIsImRlZmF1bHRGaWVsZCIsImFkZEZ1bGxmaWVsZCIsInNjaGVtYSIsImNiIiwic3VwcHJlc3NXYXJuaW5nIiwibWFwIiwiZmllbGRzU2NoZW1hIiwiZmllbGRTY2hlbWEiLCJiaW5kIiwiZXJycyIsImZpbmFsRXJyb3JzIiwicmVzIiwiYXN5bmNWYWxpZGF0b3IiLCJ0aGVuIiwibWVzc2FnZUluZGV4Iiwic3BsaWNlIiwicmVnaXN0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsU0FBU0EsUUFBUSxHQUFHO0VBQ25CQSxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxJQUFJLFVBQVNDLE1BQU0sRUFBRTtJQUM1QyxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0MsU0FBUyxDQUFDQyxNQUFNLEVBQUVGLENBQUMsRUFBRSxFQUFFO01BQzFDLElBQUlHLE1BQU0sR0FBR0YsU0FBUyxDQUFDRCxDQUFDLENBQUM7TUFFekIsS0FBSyxJQUFJSSxHQUFHLElBQUlELE1BQU0sRUFBRTtRQUN2QixJQUFJTixNQUFNLENBQUNRLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLE1BQU0sRUFBRUMsR0FBRyxDQUFDLEVBQUU7VUFDdERMLE1BQU0sQ0FBQ0ssR0FBRyxDQUFDLEdBQUdELE1BQU0sQ0FBQ0MsR0FBRyxDQUFDO1FBQzFCO01BQ0Q7SUFDRDtJQUVBLE9BQU9MLE1BQU07RUFDZCxDQUFDO0VBRUQsT0FBT0gsUUFBUSxDQUFDWSxLQUFLLENBQUMsSUFBSSxFQUFFUCxTQUFTLENBQUM7QUFDdkM7O0FBRUE7QUFDQSxJQUFJUSxZQUFZLEdBQUcsVUFBVTtBQUM3QixJQUFJQyxPQUFPLEdBQUcsU0FBU0EsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRXJDLElBQUksT0FBT0MsT0FBTyxLQUFLLFdBQVcsSUFBSUEsaUlBQVcsSUFBSUEsYUFBb0IsS0FBSyxZQUFZLElBQUksT0FBT0MsTUFBTSxLQUMxRyxXQUFXLElBQUksT0FBT0MsUUFBUSxLQUFLLFdBQVcsRUFBRTtFQUNoREgsT0FBTyxHQUFHLFNBQVNBLE9BQU8sQ0FBQ0ksSUFBSSxFQUFFQyxNQUFN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QUFDRCxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzdCO0lBRUEsSUFBSXpILElBQUksQ0FBQzlELE1BQU0sS0FBSyxDQUFDLElBQUk4RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxFQUFFO01BQ2hELE9BQU8yRSxVQUFVLENBQUNyRCxRQUFRO0lBQzNCO0lBRUEsT0FBT3FELFVBQVUsQ0FBQyxJQUFJLENBQUMyQixPQUFPLENBQUN0RixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUs7RUFDL0M7QUFDRCxDQUFDO0FBRURpRSxNQUFNLENBQUMwQyxRQUFRLEdBQUcsU0FBU0EsUUFBUSxDQUFDN0ssSUFBSSxFQUFFc0osU0FBUyxFQUFFO0VBQ3BELElBQUksT0FBT0EsU0FBUyxLQUFLLFVBQVUsRUFBRTtJQUNwQyxNQUFNLElBQUlmLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQztFQUNwRjtFQUVBVixVQUFVLENBQUM3SCxJQUFJLENBQUMsR0FBR3NKLFNBQVM7QUFDN0IsQ0FBQztBQUVEbkIsTUFBTSxDQUFDdkksT0FBTyxHQUFHQSxPQUFPO0FBQ3hCdUksTUFBTSxDQUFDekQsUUFBUSxHQUFHQSxRQUFRO0FBQUMsZUFFWnlELE1BQU07QUFBQSwyQiIsImZpbGUiOiIxNDM3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2V4dGVuZHMoKSB7XHJcblx0X2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHRhcmdldCkge1xyXG5cdFx0Zm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcclxuXHJcblx0XHRcdGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcclxuXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xyXG5cdFx0XHRcdFx0dGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGFyZ2V0O1xyXG5cdH07XHJcblxyXG5cdHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG59XHJcblxyXG4vKiBlc2xpbnQgbm8tY29uc29sZTowICovXHJcbnZhciBmb3JtYXRSZWdFeHAgPSAvJVtzZGolXS9nO1xyXG52YXIgd2FybmluZyA9IGZ1bmN0aW9uIHdhcm5pbmcoKSB7fTsgLy8gZG9uJ3QgcHJpbnQgd2FybmluZyBtZXNzYWdlIHdoZW4gaW4gcHJvZHVjdGlvbiBlbnYgb3Igbm9kZSBydW50aW1lXHJcblxyXG5pZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIHdpbmRvdyAhPT1cclxuXHQndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcblx0d2FybmluZyA9IGZ1bmN0aW9uIHdhcm5pbmcodHlwZSwgZXJyb3JzKSB7XHJcblx0XHRpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2Fybikge1xyXG5cdFx0XHRpZiAoZXJyb3JzLmV2ZXJ5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdHJldHVybiB0eXBlb2YgZSA9PT0gJ3N0cmluZyc7XHJcblx0XHRcdFx0fSkpIHtcclxuXHRcdFx0XHRjb25zb2xlLndhcm4odHlwZSwgZXJyb3JzKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbnZlcnRGaWVsZHNFcnJvcihlcnJvcnMpIHtcclxuXHRpZiAoIWVycm9ycyB8fCAhZXJyb3JzLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblx0dmFyIGZpZWxkcyA9IHt9O1xyXG5cdGVycm9ycy5mb3JFYWNoKGZ1bmN0aW9uKGVycm9yKSB7XHJcblx0XHR2YXIgZmllbGQgPSBlcnJvci5maWVsZDtcclxuXHRcdGZpZWxkc1tmaWVsZF0gPSBmaWVsZHNbZmllbGRdIHx8IFtdO1xyXG5cdFx0ZmllbGRzW2ZpZWxkXS5wdXNoKGVycm9yKTtcclxuXHR9KTtcclxuXHRyZXR1cm4gZmllbGRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtYXQoKSB7XHJcblx0Zm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XHJcblx0XHRhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xyXG5cdH1cclxuXHJcblx0dmFyIGkgPSAxO1xyXG5cdHZhciBmID0gYXJnc1swXTtcclxuXHR2YXIgbGVuID0gYXJncy5sZW5ndGg7XHJcblxyXG5cdGlmICh0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncy5zbGljZSgxKSk7XHJcblx0fVxyXG5cclxuXHRpZiAodHlwZW9mIGYgPT09ICdzdHJpbmcnKSB7XHJcblx0XHR2YXIgc3RyID0gU3RyaW5nKGYpLnJlcGxhY2UoZm9ybWF0UmVnRXhwLCBmdW5jdGlvbih4KSB7XHJcblx0XHRcdGlmICh4ID09PSAnJSUnKSB7XHJcblx0XHRcdFx0cmV0dXJuICclJztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKGkgPj0gbGVuKSB7XHJcblx0XHRcdFx0cmV0dXJuIHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHN3aXRjaCAoeCkge1xyXG5cdFx0XHRcdGNhc2UgJyVzJzpcclxuXHRcdFx0XHRcdHJldHVybiBTdHJpbmcoYXJnc1tpKytdKTtcclxuXHJcblx0XHRcdFx0Y2FzZSAnJWQnOlxyXG5cdFx0XHRcdFx0cmV0dXJuIE51bWJlcihhcmdzW2krK10pO1xyXG5cclxuXHRcdFx0XHRjYXNlICclaic6XHJcblx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnc1tpKytdKTtcclxuXHRcdFx0XHRcdH0gY2F0Y2ggKF8pIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuICdbQ2lyY3VsYXJdJztcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdHJldHVybiB4O1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRmb3IgKHZhciBhcmcgPSBhcmdzW2ldOyBpIDwgbGVuOyBhcmcgPSBhcmdzWysraV0pIHtcclxuXHRcdFx0c3RyICs9IFwiIFwiICsgYXJnO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBzdHI7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gZjtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNOYXRpdmVTdHJpbmdUeXBlKHR5cGUpIHtcclxuXHRyZXR1cm4gdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZSA9PT0gJ3VybCcgfHwgdHlwZSA9PT0gJ2hleCcgfHwgdHlwZSA9PT0gJ2VtYWlsJyB8fCB0eXBlID09PSAncGF0dGVybic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRW1wdHlWYWx1ZSh2YWx1ZSwgdHlwZSkge1xyXG5cdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGlmICh0eXBlID09PSAnYXJyYXknICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmICF2YWx1ZS5sZW5ndGgpIHtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0aWYgKGlzTmF0aXZlU3RyaW5nVHlwZSh0eXBlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFzeW5jUGFyYWxsZWxBcnJheShhcnIsIGZ1bmMsIGNhbGxiYWNrKSB7XHJcblx0dmFyIHJlc3VsdHMgPSBbXTtcclxuXHR2YXIgdG90YWwgPSAwO1xyXG5cdHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoO1xyXG5cclxuXHRmdW5jdGlvbiBjb3VudChlcnJvcnMpIHtcclxuXHRcdHJlc3VsdHMucHVzaC5hcHBseShyZXN1bHRzLCBlcnJvcnMpO1xyXG5cdFx0dG90YWwrKztcclxuXHJcblx0XHRpZiAodG90YWwgPT09IGFyckxlbmd0aCkge1xyXG5cdFx0XHRjYWxsYmFjayhyZXN1bHRzKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFyci5mb3JFYWNoKGZ1bmN0aW9uKGEpIHtcclxuXHRcdGZ1bmMoYSwgY291bnQpO1xyXG5cdH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBhc3luY1NlcmlhbEFycmF5KGFyciwgZnVuYywgY2FsbGJhY2spIHtcclxuXHR2YXIgaW5kZXggPSAwO1xyXG5cdHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoO1xyXG5cclxuXHRmdW5jdGlvbiBuZXh0KGVycm9ycykge1xyXG5cdFx0aWYgKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKSB7XHJcblx0XHRcdGNhbGxiYWNrKGVycm9ycyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR2YXIgb3JpZ2luYWwgPSBpbmRleDtcclxuXHRcdGluZGV4ID0gaW5kZXggKyAxO1xyXG5cclxuXHRcdGlmIChvcmlnaW5hbCA8IGFyckxlbmd0aCkge1xyXG5cdFx0XHRmdW5jKGFycltvcmlnaW5hbF0sIG5leHQpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y2FsbGJhY2soW10pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmV4dChbXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZsYXR0ZW5PYmpBcnIob2JqQXJyKSB7XHJcblx0dmFyIHJldCA9IFtdO1xyXG5cdE9iamVjdC5rZXlzKG9iakFycikuZm9yRWFjaChmdW5jdGlvbihrKSB7XHJcblx0XHRyZXQucHVzaC5hcHBseShyZXQsIG9iakFycltrXSk7XHJcblx0fSk7XHJcblx0cmV0dXJuIHJldDtcclxufVxyXG5cclxuZnVuY3Rpb24gYXN5bmNNYXAob2JqQXJyLCBvcHRpb24sIGZ1bmMsIGNhbGxiYWNrKSB7XHJcblx0aWYgKG9wdGlvbi5maXJzdCkge1xyXG5cdFx0dmFyIF9wZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XHJcblx0XHRcdHZhciBuZXh0ID0gZnVuY3Rpb24gbmV4dChlcnJvcnMpIHtcclxuXHRcdFx0XHRjYWxsYmFjayhlcnJvcnMpO1xyXG5cdFx0XHRcdHJldHVybiBlcnJvcnMubGVuZ3RoID8gcmVqZWN0KHtcclxuXHRcdFx0XHRcdGVycm9yczogZXJyb3JzLFxyXG5cdFx0XHRcdFx0ZmllbGRzOiBjb252ZXJ0RmllbGRzRXJyb3IoZXJyb3JzKVxyXG5cdFx0XHRcdH0pIDogcmVzb2x2ZSgpO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0dmFyIGZsYXR0ZW5BcnIgPSBmbGF0dGVuT2JqQXJyKG9iakFycik7XHJcblx0XHRcdGFzeW5jU2VyaWFsQXJyYXkoZmxhdHRlbkFyciwgZnVuYywgbmV4dCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRfcGVuZGluZ1tcImNhdGNoXCJdKGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0cmV0dXJuIGU7XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gX3BlbmRpbmc7XHJcblx0fVxyXG5cclxuXHR2YXIgZmlyc3RGaWVsZHMgPSBvcHRpb24uZmlyc3RGaWVsZHMgfHwgW107XHJcblxyXG5cdGlmIChmaXJzdEZpZWxkcyA9PT0gdHJ1ZSkge1xyXG5cdFx0Zmlyc3RGaWVsZHMgPSBPYmplY3Qua2V5cyhvYmpBcnIpO1xyXG5cdH1cclxuXHJcblx0dmFyIG9iakFycktleXMgPSBPYmplY3Qua2V5cyhvYmpBcnIpO1xyXG5cdHZhciBvYmpBcnJMZW5ndGggPSBvYmpBcnJLZXlzLmxlbmd0aDtcclxuXHR2YXIgdG90YWwgPSAwO1xyXG5cdHZhciByZXN1bHRzID0gW107XHJcblx0dmFyIHBlbmRpbmcgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcclxuXHRcdHZhciBuZXh0ID0gZnVuY3Rpb24gbmV4dChlcnJvcnMpIHtcclxuXHRcdFx0cmVzdWx0cy5wdXNoLmFwcGx5KHJlc3VsdHMsIGVycm9ycyk7XHJcblx0XHRcdHRvdGFsKys7XHJcblxyXG5cdFx0XHRpZiAodG90YWwgPT09IG9iakFyckxlbmd0aCkge1xyXG5cdFx0XHRcdGNhbGxiYWNrKHJlc3VsdHMpO1xyXG5cdFx0XHRcdHJldHVybiByZXN1bHRzLmxlbmd0aCA/IHJlamVjdCh7XHJcblx0XHRcdFx0XHRlcnJvcnM6IHJlc3VsdHMsXHJcblx0XHRcdFx0XHRmaWVsZHM6IGNvbnZlcnRGaWVsZHNFcnJvcihyZXN1bHRzKVxyXG5cdFx0XHRcdH0pIDogcmVzb2x2ZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdGlmICghb2JqQXJyS2V5cy5sZW5ndGgpIHtcclxuXHRcdFx0Y2FsbGJhY2socmVzdWx0cyk7XHJcblx0XHRcdHJlc29sdmUoKTtcclxuXHRcdH1cclxuXHJcblx0XHRvYmpBcnJLZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XHJcblx0XHRcdHZhciBhcnIgPSBvYmpBcnJba2V5XTtcclxuXHJcblx0XHRcdGlmIChmaXJzdEZpZWxkcy5pbmRleE9mKGtleSkgIT09IC0xKSB7XHJcblx0XHRcdFx0YXN5bmNTZXJpYWxBcnJheShhcnIsIGZ1bmMsIG5leHQpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGFzeW5jUGFyYWxsZWxBcnJheShhcnIsIGZ1bmMsIG5leHQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9KTtcclxuXHRwZW5kaW5nW1wiY2F0Y2hcIl0oZnVuY3Rpb24oZSkge1xyXG5cdFx0cmV0dXJuIGU7XHJcblx0fSk7XHJcblx0cmV0dXJuIHBlbmRpbmc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbXBsZW1lbnRFcnJvcihydWxlKSB7XHJcblx0cmV0dXJuIGZ1bmN0aW9uKG9lKSB7XHJcblx0XHRpZiAob2UgJiYgb2UubWVzc2FnZSkge1xyXG5cdFx0XHRvZS5maWVsZCA9IG9lLmZpZWxkIHx8IHJ1bGUuZnVsbEZpZWxkO1xyXG5cdFx0XHRyZXR1cm4gb2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0bWVzc2FnZTogdHlwZW9mIG9lID09PSAnZnVuY3Rpb24nID8gb2UoKSA6IG9lLFxyXG5cdFx0XHRmaWVsZDogb2UuZmllbGQgfHwgcnVsZS5mdWxsRmllbGRcclxuXHRcdH07XHJcblx0fTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVlcE1lcmdlKHRhcmdldCwgc291cmNlKSB7XHJcblx0aWYgKHNvdXJjZSkge1xyXG5cdFx0Zm9yICh2YXIgcyBpbiBzb3VyY2UpIHtcclxuXHRcdFx0aWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShzKSkge1xyXG5cdFx0XHRcdHZhciB2YWx1ZSA9IHNvdXJjZVtzXTtcclxuXHJcblx0XHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHRhcmdldFtzXSA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRcdHRhcmdldFtzXSA9IF9leHRlbmRzKHt9LCB0YXJnZXRbc10sIHt9LCB2YWx1ZSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRhcmdldFtzXSA9IHZhbHVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRhcmdldDtcclxufVxyXG5cclxuLyoqXHJcbiAqICBSdWxlIGZvciB2YWxpZGF0aW5nIHJlcXVpcmVkIGZpZWxkcy5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxyXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gcmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCB0eXBlKSB7XHJcblx0aWYgKHJ1bGUucmVxdWlyZWQgJiYgKCFzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCkgfHwgaXNFbXB0eVZhbHVlKHZhbHVlLCB0eXBlIHx8IHJ1bGUudHlwZSkpKSB7XHJcblx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5yZXF1aXJlZCwgcnVsZS5mdWxsRmllbGQpKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgUnVsZSBmb3IgdmFsaWRhdGluZyB3aGl0ZXNwYWNlLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gZXJyb3JzIEFuIGFycmF5IG9mIGVycm9ycyB0aGF0IHRoaXMgcnVsZSBtYXkgYWRkXHJcbiAqICB2YWxpZGF0aW9uIGVycm9ycyB0by5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiB3aGl0ZXNwYWNlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdGlmICgvXlxccyskLy50ZXN0KHZhbHVlKSB8fCB2YWx1ZSA9PT0gJycpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzLndoaXRlc3BhY2UsIHJ1bGUuZnVsbEZpZWxkKSk7XHJcblx0fVxyXG59XHJcblxyXG4vKiBlc2xpbnQgbWF4LWxlbjowICovXHJcblxyXG52YXIgcGF0dGVybiA9IHtcclxuXHQvLyBodHRwOi8vZW1haWxyZWdleC5jb20vXHJcblx0ZW1haWw6IC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvLFxyXG5cdHVybDogbmV3IFJlZ0V4cChcclxuXHRcdFwiXig/IW1haWx0bzopKD86KD86aHR0cHxodHRwc3xmdHApOi8vfC8vKSg/OlxcXFxTKyg/OjpcXFxcUyopP0ApPyg/Oig/Oig/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMDFdXFxcXGR8MjJbMC0zXSkoPzpcXFxcLig/OjE/XFxcXGR7MSwyfXwyWzAtNF1cXFxcZHwyNVswLTVdKSl7Mn0oPzpcXFxcLig/OlswLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMC00XVxcXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKig/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmZdezIsfSkpKXxsb2NhbGhvc3QpKD86OlxcXFxkezIsNX0pPyg/OigvfFxcXFw/fCMpW15cXFxcc10qKT8kXCIsXHJcblx0XHQnaScpLFxyXG5cdGhleDogL14jPyhbYS1mMC05XXs2fXxbYS1mMC05XXszfSkkL2lcclxufTtcclxudmFyIHR5cGVzID0ge1xyXG5cdGludGVnZXI6IGZ1bmN0aW9uIGludGVnZXIodmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlcy5udW1iZXIodmFsdWUpICYmIHBhcnNlSW50KHZhbHVlLCAxMCkgPT09IHZhbHVlO1xyXG5cdH0sXHJcblx0XCJmbG9hdFwiOiBmdW5jdGlvbiBmbG9hdCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVzLm51bWJlcih2YWx1ZSkgJiYgIXR5cGVzLmludGVnZXIodmFsdWUpO1xyXG5cdH0sXHJcblx0YXJyYXk6IGZ1bmN0aW9uIGFycmF5KHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XHJcblx0fSxcclxuXHRyZWdleHA6IGZ1bmN0aW9uIHJlZ2V4cCh2YWx1ZSkge1xyXG5cdFx0aWYgKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiAhIW5ldyBSZWdFeHAodmFsdWUpO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fSxcclxuXHRkYXRlOiBmdW5jdGlvbiBkYXRlKHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlLmdldFRpbWUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlLmdldE1vbnRoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWx1ZS5nZXRZZWFyID09PVxyXG5cdFx0XHQnZnVuY3Rpb24nO1xyXG5cdH0sXHJcblx0bnVtYmVyOiBmdW5jdGlvbiBudW1iZXIodmFsdWUpIHtcclxuXHRcdGlmIChpc05hTih2YWx1ZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIOS/ruaUuea6kOegge+8jOWwhuWtl+espuS4suaVsOWAvOWFiOi9rOS4uuaVsOWAvFxyXG5cdFx0cmV0dXJuIHR5cGVvZiArdmFsdWUgPT09ICdudW1iZXInO1xyXG5cdH0sXHJcblx0b2JqZWN0OiBmdW5jdGlvbiBvYmplY3QodmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICF0eXBlcy5hcnJheSh2YWx1ZSk7XHJcblx0fSxcclxuXHRtZXRob2Q6IGZ1bmN0aW9uIG1ldGhvZCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcclxuXHR9LFxyXG5cdGVtYWlsOiBmdW5jdGlvbiBlbWFpbCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLmVtYWlsKSAmJiB2YWx1ZS5sZW5ndGggPCAyNTU7XHJcblx0fSxcclxuXHR1cmw6IGZ1bmN0aW9uIHVybCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLnVybCk7XHJcblx0fSxcclxuXHRoZXg6IGZ1bmN0aW9uIGhleCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLmhleCk7XHJcblx0fVxyXG59O1xyXG4vKipcclxuICogIFJ1bGUgZm9yIHZhbGlkYXRpbmcgdGhlIHR5cGUgb2YgYSB2YWx1ZS5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxyXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gdHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpIHtcclxuXHRpZiAocnVsZS5yZXF1aXJlZCAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRyZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0dmFyIGN1c3RvbSA9IFsnaW50ZWdlcicsICdmbG9hdCcsICdhcnJheScsICdyZWdleHAnLCAnb2JqZWN0JywgJ21ldGhvZCcsICdlbWFpbCcsICdudW1iZXInLCAnZGF0ZScsICd1cmwnLCAnaGV4J107XHJcblx0dmFyIHJ1bGVUeXBlID0gcnVsZS50eXBlO1xyXG5cclxuXHRpZiAoY3VzdG9tLmluZGV4T2YocnVsZVR5cGUpID4gLTEpIHtcclxuXHRcdGlmICghdHlwZXNbcnVsZVR5cGVdKHZhbHVlKSkge1xyXG5cdFx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy50eXBlc1tydWxlVHlwZV0sIHJ1bGUuZnVsbEZpZWxkLCBydWxlLnR5cGUpKTtcclxuXHRcdH0gLy8gc3RyYWlnaHQgdHlwZW9mIGNoZWNrXHJcblxyXG5cdH0gZWxzZSBpZiAocnVsZVR5cGUgJiYgdHlwZW9mIHZhbHVlICE9PSBydWxlLnR5cGUpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzLnR5cGVzW3J1bGVUeXBlXSwgcnVsZS5mdWxsRmllbGQsIHJ1bGUudHlwZSkpO1xyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqICBSdWxlIGZvciB2YWxpZGF0aW5nIG1pbmltdW0gYW5kIG1heGltdW0gYWxsb3dlZCB2YWx1ZXMuXHJcbiAqXHJcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxyXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBlcnJvcnMgQW4gYXJyYXkgb2YgZXJyb3JzIHRoYXQgdGhpcyBydWxlIG1heSBhZGRcclxuICogIHZhbGlkYXRpb24gZXJyb3JzIHRvLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIHJhbmdlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdHZhciBsZW4gPSB0eXBlb2YgcnVsZS5sZW4gPT09ICdudW1iZXInO1xyXG5cdHZhciBtaW4gPSB0eXBlb2YgcnVsZS5taW4gPT09ICdudW1iZXInO1xyXG5cdHZhciBtYXggPSB0eXBlb2YgcnVsZS5tYXggPT09ICdudW1iZXInOyAvLyDmraPliJnljLnphY3noIHngrnojIPlm7Tku45VKzAxMDAwMOS4gOebtOWIsFUrMTBGRkZG55qE5paH5a2X77yI6KGl5YWF5bmz6Z2iU3VwcGxlbWVudGFyeSBQbGFuZe+8iVxyXG5cclxuXHR2YXIgc3BSZWdleHAgPSAvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nO1xyXG5cdHZhciB2YWwgPSB2YWx1ZTtcclxuXHR2YXIga2V5ID0gbnVsbDtcclxuXHR2YXIgbnVtID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcclxuXHR2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcclxuXHR2YXIgYXJyID0gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XHJcblxyXG5cdGlmIChudW0pIHtcclxuXHRcdGtleSA9ICdudW1iZXInO1xyXG5cdH0gZWxzZSBpZiAoc3RyKSB7XHJcblx0XHRrZXkgPSAnc3RyaW5nJztcclxuXHR9IGVsc2UgaWYgKGFycikge1xyXG5cdFx0a2V5ID0gJ2FycmF5JztcclxuXHR9IC8vIGlmIHRoZSB2YWx1ZSBpcyBub3Qgb2YgYSBzdXBwb3J0ZWQgdHlwZSBmb3IgcmFuZ2UgdmFsaWRhdGlvblxyXG5cdC8vIHRoZSB2YWxpZGF0aW9uIHJ1bGUgcnVsZSBzaG91bGQgdXNlIHRoZVxyXG5cdC8vIHR5cGUgcHJvcGVydHkgdG8gYWxzbyB0ZXN0IGZvciBhIHBhcnRpY3VsYXIgdHlwZVxyXG5cclxuXHJcblx0aWYgKCFrZXkpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGlmIChhcnIpIHtcclxuXHRcdHZhbCA9IHZhbHVlLmxlbmd0aDtcclxuXHR9XHJcblxyXG5cdGlmIChzdHIpIHtcclxuXHRcdC8vIOWkhOeQhueggeeCueWkp+S6jlUrMDEwMDAw55qE5paH5a2XbGVuZ3Ro5bGe5oCn5LiN5YeG56Gu55qEYnVn77yM5aaCXCLwoK638KCut/CgrrdcIi5sZW5ndGggIT09IDNcclxuXHRcdHZhbCA9IHZhbHVlLnJlcGxhY2Uoc3BSZWdleHAsICdfJykubGVuZ3RoO1xyXG5cdH1cclxuXHJcblx0aWYgKGxlbikge1xyXG5cdFx0aWYgKHZhbCAhPT0gcnVsZS5sZW4pIHtcclxuXHRcdFx0ZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXNba2V5XS5sZW4sIHJ1bGUuZnVsbEZpZWxkLCBydWxlLmxlbikpO1xyXG5cdFx0fVxyXG5cdH0gZWxzZSBpZiAobWluICYmICFtYXggJiYgdmFsIDwgcnVsZS5taW4pIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ubWluLCBydWxlLmZ1bGxGaWVsZCwgcnVsZS5taW4pKTtcclxuXHR9IGVsc2UgaWYgKG1heCAmJiAhbWluICYmIHZhbCA+IHJ1bGUubWF4KSB7XHJcblx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1trZXldLm1heCwgcnVsZS5mdWxsRmllbGQsIHJ1bGUubWF4KSk7XHJcblx0fSBlbHNlIGlmIChtaW4gJiYgbWF4ICYmICh2YWwgPCBydWxlLm1pbiB8fCB2YWwgPiBydWxlLm1heCkpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ucmFuZ2UsIHJ1bGUuZnVsbEZpZWxkLCBydWxlLm1pbiwgcnVsZS5tYXgpKTtcclxuXHR9XHJcbn1cclxuXHJcbnZhciBFTlVNID0gJ2VudW0nO1xyXG4vKipcclxuICogIFJ1bGUgZm9yIHZhbGlkYXRpbmcgYSB2YWx1ZSBleGlzdHMgaW4gYW4gZW51bWVyYWJsZSBsaXN0LlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gZXJyb3JzIEFuIGFycmF5IG9mIGVycm9ycyB0aGF0IHRoaXMgcnVsZSBtYXkgYWRkXHJcbiAqICB2YWxpZGF0aW9uIGVycm9ycyB0by5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBlbnVtZXJhYmxlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdHJ1bGVbRU5VTV0gPSBBcnJheS5pc0FycmF5KHJ1bGVbRU5VTV0pID8gcnVsZVtFTlVNXSA6IFtdO1xyXG5cclxuXHRpZiAocnVsZVtFTlVNXS5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcclxuXHRcdGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW0VOVU1dLCBydWxlLmZ1bGxGaWVsZCwgcnVsZVtFTlVNXS5qb2luKCcsICcpKSk7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogIFJ1bGUgZm9yIHZhbGlkYXRpbmcgYSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybi5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxyXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gcGF0dGVybiQxKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xyXG5cdGlmIChydWxlLnBhdHRlcm4pIHtcclxuXHRcdGlmIChydWxlLnBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuXHRcdFx0Ly8gaWYgYSBSZWdFeHAgaW5zdGFuY2UgaXMgcGFzc2VkLCByZXNldCBgbGFzdEluZGV4YCBpbiBjYXNlIGl0cyBgZ2xvYmFsYFxyXG5cdFx0XHQvLyBmbGFnIGlzIGFjY2lkZW50YWxseSBzZXQgdG8gYHRydWVgLCB3aGljaCBpbiBhIHZhbGlkYXRpb24gc2NlbmFyaW9cclxuXHRcdFx0Ly8gaXMgbm90IG5lY2Vzc2FyeSBhbmQgdGhlIHJlc3VsdCBtaWdodCBiZSBtaXNsZWFkaW5nXHJcblx0XHRcdHJ1bGUucGF0dGVybi5sYXN0SW5kZXggPSAwO1xyXG5cclxuXHRcdFx0aWYgKCFydWxlLnBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcclxuXHRcdFx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLCBydWxlLmZ1bGxGaWVsZCwgdmFsdWUsIHJ1bGUucGF0dGVybikpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBydWxlLnBhdHRlcm4gPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHZhciBfcGF0dGVybiA9IG5ldyBSZWdFeHAocnVsZS5wYXR0ZXJuKTtcclxuXHJcblx0XHRcdGlmICghX3BhdHRlcm4udGVzdCh2YWx1ZSkpIHtcclxuXHRcdFx0XHRlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLCBydWxlLmZ1bGxGaWVsZCwgdmFsdWUsIHJ1bGUucGF0dGVybikpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG52YXIgcnVsZXMgPSB7XHJcblx0cmVxdWlyZWQ6IHJlcXVpcmVkLFxyXG5cdHdoaXRlc3BhY2U6IHdoaXRlc3BhY2UsXHJcblx0dHlwZTogdHlwZSxcclxuXHRyYW5nZTogcmFuZ2UsXHJcblx0XCJlbnVtXCI6IGVudW1lcmFibGUsXHJcblx0cGF0dGVybjogcGF0dGVybiQxXHJcbn07XHJcblxyXG4vKipcclxuICogIFBlcmZvcm1zIHZhbGlkYXRpb24gZm9yIHN0cmluZyB0eXBlcy5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBzdHJpbmcocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ3N0cmluZycpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucywgJ3N0cmluZycpO1xyXG5cclxuXHRcdGlmICghaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5wYXR0ZXJuKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0XHRpZiAocnVsZS53aGl0ZXNwYWNlID09PSB0cnVlKSB7XHJcblx0XHRcdFx0cnVsZXMud2hpdGVzcGFjZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIGZ1bmN0aW9uLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG1ldGhvZChydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cclxuXHRcdGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgVmFsaWRhdGVzIGEgbnVtYmVyLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG51bWJlcihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAodmFsdWUgPT09ICcnKSB7XHJcblx0XHRcdHZhbHVlID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgYSBib29sZWFuLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIF9ib29sZWFuKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0eXBlLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIHJlZ2V4cChydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cclxuXHRcdGlmICghaXNFbXB0eVZhbHVlKHZhbHVlKSkge1xyXG5cdFx0XHRydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIG51bWJlciBpcyBhbiBpbnRlZ2VyLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIGludGVnZXIocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHJcblx0XHRpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHRcdHJ1bGVzLnJhbmdlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIG51bWJlciBpcyBhIGZsb2F0aW5nIHBvaW50IG51bWJlci5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBmbG9hdEZuKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgYW4gYXJyYXkuXHJcbiAqXHJcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxyXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXHJcbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gYXJyYXkocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ2FycmF5JykgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCAnYXJyYXknKTtcclxuXHJcblx0XHRpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ2FycmF5JykpIHtcclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0XHRydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FsbGJhY2soZXJyb3JzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBWYWxpZGF0ZXMgYW4gb2JqZWN0LlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG9iamVjdChydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xyXG5cclxuXHRcdGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbnZhciBFTlVNJDEgPSAnZW51bSc7XHJcbi8qKlxyXG4gKiAgVmFsaWRhdGVzIGFuIGVudW1lcmFibGUgbGlzdC5cclxuICpcclxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXHJcbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cclxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cclxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXHJcbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICovXHJcblxyXG5mdW5jdGlvbiBlbnVtZXJhYmxlJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XHJcblxyXG5cdGlmICh2YWxpZGF0ZSkge1xyXG5cdFx0aWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHJcblx0XHRpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRydWxlc1tFTlVNJDFdKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG4vKipcclxuICogIFZhbGlkYXRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuLlxyXG4gKlxyXG4gKiAgUGVyZm9ybXMgdmFsaWRhdGlvbiB3aGVuIGEgcnVsZSBvbmx5IGNvbnRhaW5zXHJcbiAqICBhIHBhdHRlcm4gcHJvcGVydHkgYnV0IGlzIG5vdCBkZWNsYXJlZCBhcyBhIHN0cmluZyB0eXBlLlxyXG4gKlxyXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxyXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cclxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIHBhdHRlcm4kMihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xyXG5cdHZhciBlcnJvcnMgPSBbXTtcclxuXHR2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcclxuXHJcblx0aWYgKHZhbGlkYXRlKSB7XHJcblx0XHRpZiAoaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykgJiYgIXJ1bGUucmVxdWlyZWQpIHtcclxuXHRcdFx0cmV0dXJuIGNhbGxiYWNrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHJcblx0XHRpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ3N0cmluZycpKSB7XHJcblx0XHRcdHJ1bGVzLnBhdHRlcm4ocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGUocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7IFxyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKCFpc0VtcHR5VmFsdWUodmFsdWUpKSB7XHJcblx0XHRcdHZhciBkYXRlT2JqZWN0O1xyXG5cclxuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuXHRcdFx0XHRkYXRlT2JqZWN0ID0gbmV3IERhdGUodmFsdWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGRhdGVPYmplY3QgPSB2YWx1ZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cnVsZXMudHlwZShydWxlLCBkYXRlT2JqZWN0LCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblxyXG5cdFx0XHRpZiAoZGF0ZU9iamVjdCkge1xyXG5cdFx0XHRcdHJ1bGVzLnJhbmdlKHJ1bGUsIGRhdGVPYmplY3QuZ2V0VGltZSgpLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlcXVpcmVkJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgZXJyb3JzID0gW107XHJcblx0dmFyIHR5cGUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/ICdhcnJheScgOiB0eXBlb2YgdmFsdWU7XHJcblx0cnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCB0eXBlKTtcclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0eXBlJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcclxuXHR2YXIgcnVsZVR5cGUgPSBydWxlLnR5cGU7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUsIHJ1bGVUeXBlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xyXG5cdFx0XHRyZXR1cm4gY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHJcblx0XHRydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMsIHJ1bGVUeXBlKTtcclxuXHJcblx0XHRpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgcnVsZVR5cGUpKSB7XHJcblx0XHRcdHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGxiYWNrKGVycm9ycyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAgUGVyZm9ybXMgdmFsaWRhdGlvbiBmb3IgYW55IHR5cGUuXHJcbiAqXHJcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxyXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXHJcbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXHJcbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxyXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gYW55KHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XHJcblx0dmFyIGVycm9ycyA9IFtdO1xyXG5cdHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xyXG5cclxuXHRpZiAodmFsaWRhdGUpIHtcclxuXHRcdGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XHJcblx0fVxyXG5cclxuXHRjYWxsYmFjayhlcnJvcnMpO1xyXG59XHJcblxyXG52YXIgdmFsaWRhdG9ycyA9IHtcclxuXHRzdHJpbmc6IHN0cmluZyxcclxuXHRtZXRob2Q6IG1ldGhvZCxcclxuXHRudW1iZXI6IG51bWJlcixcclxuXHRcImJvb2xlYW5cIjogX2Jvb2xlYW4sXHJcblx0cmVnZXhwOiByZWdleHAsXHJcblx0aW50ZWdlcjogaW50ZWdlcixcclxuXHRcImZsb2F0XCI6IGZsb2F0Rm4sXHJcblx0YXJyYXk6IGFycmF5LFxyXG5cdG9iamVjdDogb2JqZWN0LFxyXG5cdFwiZW51bVwiOiBlbnVtZXJhYmxlJDEsXHJcblx0cGF0dGVybjogcGF0dGVybiQyLFxyXG5cdGRhdGU6IGRhdGUsXHJcblx0dXJsOiB0eXBlJDEsXHJcblx0aGV4OiB0eXBlJDEsXHJcblx0ZW1haWw6IHR5cGUkMSxcclxuXHRyZXF1aXJlZDogcmVxdWlyZWQkMSxcclxuXHRhbnk6IGFueVxyXG59O1xyXG5cclxuZnVuY3Rpb24gbmV3TWVzc2FnZXMoKSB7XHJcblx0cmV0dXJuIHtcclxuXHRcdFwiZGVmYXVsdFwiOiAnVmFsaWRhdGlvbiBlcnJvciBvbiBmaWVsZCAlcycsXHJcblx0XHRyZXF1aXJlZDogJyVzIGlzIHJlcXVpcmVkJyxcclxuXHRcdFwiZW51bVwiOiAnJXMgbXVzdCBiZSBvbmUgb2YgJXMnLFxyXG5cdFx0d2hpdGVzcGFjZTogJyVzIGNhbm5vdCBiZSBlbXB0eScsXHJcblx0XHRkYXRlOiB7XHJcblx0XHRcdGZvcm1hdDogJyVzIGRhdGUgJXMgaXMgaW52YWxpZCBmb3IgZm9ybWF0ICVzJyxcclxuXHRcdFx0cGFyc2U6ICclcyBkYXRlIGNvdWxkIG5vdCBiZSBwYXJzZWQsICVzIGlzIGludmFsaWQgJyxcclxuXHRcdFx0aW52YWxpZDogJyVzIGRhdGUgJXMgaXMgaW52YWxpZCdcclxuXHRcdH0sXHJcblx0XHR0eXBlczoge1xyXG5cdFx0XHRzdHJpbmc6ICclcyBpcyBub3QgYSAlcycsXHJcblx0XHRcdG1ldGhvZDogJyVzIGlzIG5vdCBhICVzIChmdW5jdGlvbiknLFxyXG5cdFx0XHRhcnJheTogJyVzIGlzIG5vdCBhbiAlcycsXHJcblx0XHRcdG9iamVjdDogJyVzIGlzIG5vdCBhbiAlcycsXHJcblx0XHRcdG51bWJlcjogJyVzIGlzIG5vdCBhICVzJyxcclxuXHRcdFx0ZGF0ZTogJyVzIGlzIG5vdCBhICVzJyxcclxuXHRcdFx0XCJib29sZWFuXCI6ICclcyBpcyBub3QgYSAlcycsXHJcblx0XHRcdGludGVnZXI6ICclcyBpcyBub3QgYW4gJXMnLFxyXG5cdFx0XHRcImZsb2F0XCI6ICclcyBpcyBub3QgYSAlcycsXHJcblx0XHRcdHJlZ2V4cDogJyVzIGlzIG5vdCBhIHZhbGlkICVzJyxcclxuXHRcdFx0ZW1haWw6ICclcyBpcyBub3QgYSB2YWxpZCAlcycsXHJcblx0XHRcdHVybDogJyVzIGlzIG5vdCBhIHZhbGlkICVzJyxcclxuXHRcdFx0aGV4OiAnJXMgaXMgbm90IGEgdmFsaWQgJXMnXHJcblx0XHR9LFxyXG5cdFx0c3RyaW5nOiB7XHJcblx0XHRcdGxlbjogJyVzIG11c3QgYmUgZXhhY3RseSAlcyBjaGFyYWN0ZXJzJyxcclxuXHRcdFx0bWluOiAnJXMgbXVzdCBiZSBhdCBsZWFzdCAlcyBjaGFyYWN0ZXJzJyxcclxuXHRcdFx0bWF4OiAnJXMgY2Fubm90IGJlIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnLFxyXG5cdFx0XHRyYW5nZTogJyVzIG11c3QgYmUgYmV0d2VlbiAlcyBhbmQgJXMgY2hhcmFjdGVycydcclxuXHRcdH0sXHJcblx0XHRudW1iZXI6IHtcclxuXHRcdFx0bGVuOiAnJXMgbXVzdCBlcXVhbCAlcycsXHJcblx0XHRcdG1pbjogJyVzIGNhbm5vdCBiZSBsZXNzIHRoYW4gJXMnLFxyXG5cdFx0XHRtYXg6ICclcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVzJyxcclxuXHRcdFx0cmFuZ2U6ICclcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzJ1xyXG5cdFx0fSxcclxuXHRcdGFycmF5OiB7XHJcblx0XHRcdGxlbjogJyVzIG11c3QgYmUgZXhhY3RseSAlcyBpbiBsZW5ndGgnLFxyXG5cdFx0XHRtaW46ICclcyBjYW5ub3QgYmUgbGVzcyB0aGFuICVzIGluIGxlbmd0aCcsXHJcblx0XHRcdG1heDogJyVzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJXMgaW4gbGVuZ3RoJyxcclxuXHRcdFx0cmFuZ2U6ICclcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzIGluIGxlbmd0aCdcclxuXHRcdH0sXHJcblx0XHRwYXR0ZXJuOiB7XHJcblx0XHRcdG1pc21hdGNoOiAnJXMgdmFsdWUgJXMgZG9lcyBub3QgbWF0Y2ggcGF0dGVybiAlcydcclxuXHRcdH0sXHJcblx0XHRjbG9uZTogZnVuY3Rpb24gY2xvbmUoKSB7XHJcblx0XHRcdHZhciBjbG9uZWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMpKTtcclxuXHRcdFx0Y2xvbmVkLmNsb25lID0gdGhpcy5jbG9uZTtcclxuXHRcdFx0cmV0dXJuIGNsb25lZDtcclxuXHRcdH1cclxuXHR9O1xyXG59XHJcbnZhciBtZXNzYWdlcyA9IG5ld01lc3NhZ2VzKCk7XHJcblxyXG4vKipcclxuICogIEVuY2Fwc3VsYXRlcyBhIHZhbGlkYXRpb24gc2NoZW1hLlxyXG4gKlxyXG4gKiAgQHBhcmFtIGRlc2NyaXB0b3IgQW4gb2JqZWN0IGRlY2xhcmluZyB2YWxpZGF0aW9uIHJ1bGVzXHJcbiAqICBmb3IgdGhpcyBzY2hlbWEuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gU2NoZW1hKGRlc2NyaXB0b3IpIHtcclxuXHR0aGlzLnJ1bGVzID0gbnVsbDtcclxuXHR0aGlzLl9tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG5cdHRoaXMuZGVmaW5lKGRlc2NyaXB0b3IpO1xyXG59XHJcblxyXG5TY2hlbWEucHJvdG90eXBlID0ge1xyXG5cdG1lc3NhZ2VzOiBmdW5jdGlvbiBtZXNzYWdlcyhfbWVzc2FnZXMpIHtcclxuXHRcdGlmIChfbWVzc2FnZXMpIHtcclxuXHRcdFx0dGhpcy5fbWVzc2FnZXMgPSBkZWVwTWVyZ2UobmV3TWVzc2FnZXMoKSwgX21lc3NhZ2VzKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5fbWVzc2FnZXM7XHJcblx0fSxcclxuXHRkZWZpbmU6IGZ1bmN0aW9uIGRlZmluZShydWxlcykge1xyXG5cdFx0aWYgKCFydWxlcykge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb25maWd1cmUgYSBzY2hlbWEgd2l0aCBubyBydWxlcycpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0eXBlb2YgcnVsZXMgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkocnVsZXMpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignUnVsZXMgbXVzdCBiZSBhbiBvYmplY3QnKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnJ1bGVzID0ge307XHJcblx0XHR2YXIgejtcclxuXHRcdHZhciBpdGVtO1xyXG5cclxuXHRcdGZvciAoeiBpbiBydWxlcykge1xyXG5cdFx0XHRpZiAocnVsZXMuaGFzT3duUHJvcGVydHkoeikpIHtcclxuXHRcdFx0XHRpdGVtID0gcnVsZXNbel07XHJcblx0XHRcdFx0dGhpcy5ydWxlc1t6XSA9IEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtIDogW2l0ZW1dO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHR2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoc291cmNlXywgbywgb2MpIHtcclxuXHRcdHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG5cdFx0aWYgKG8gPT09IHZvaWQgMCkge1xyXG5cdFx0XHRvID0ge307XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKG9jID09PSB2b2lkIDApIHtcclxuXHRcdFx0b2MgPSBmdW5jdGlvbiBvYygpIHt9O1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBzb3VyY2UgPSBzb3VyY2VfO1xyXG5cdFx0dmFyIG9wdGlvbnMgPSBvO1xyXG5cdFx0dmFyIGNhbGxiYWNrID0gb2M7XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGNhbGxiYWNrID0gb3B0aW9ucztcclxuXHRcdFx0b3B0aW9ucyA9IHt9O1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghdGhpcy5ydWxlcyB8fCBPYmplY3Qua2V5cyh0aGlzLnJ1bGVzKS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0aWYgKGNhbGxiYWNrKSB7XHJcblx0XHRcdFx0Y2FsbGJhY2soKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZ1bmN0aW9uIGNvbXBsZXRlKHJlc3VsdHMpIHtcclxuXHRcdFx0dmFyIGk7XHJcblx0XHRcdHZhciBlcnJvcnMgPSBbXTtcclxuXHRcdFx0dmFyIGZpZWxkcyA9IHt9O1xyXG5cclxuXHRcdFx0ZnVuY3Rpb24gYWRkKGUpIHtcclxuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShlKSkge1xyXG5cdFx0XHRcdFx0dmFyIF9lcnJvcnM7XHJcblxyXG5cdFx0XHRcdFx0ZXJyb3JzID0gKF9lcnJvcnMgPSBlcnJvcnMpLmNvbmNhdC5hcHBseShfZXJyb3JzLCBlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0ZXJyb3JzLnB1c2goZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGFkZChyZXN1bHRzW2ldKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCFlcnJvcnMubGVuZ3RoKSB7XHJcblx0XHRcdFx0ZXJyb3JzID0gbnVsbDtcclxuXHRcdFx0XHRmaWVsZHMgPSBudWxsO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGZpZWxkcyA9IGNvbnZlcnRGaWVsZHNFcnJvcihlcnJvcnMpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjYWxsYmFjayhlcnJvcnMsIGZpZWxkcyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKG9wdGlvbnMubWVzc2FnZXMpIHtcclxuXHRcdFx0dmFyIG1lc3NhZ2VzJDEgPSB0aGlzLm1lc3NhZ2VzKCk7XHJcblxyXG5cdFx0XHRpZiAobWVzc2FnZXMkMSA9PT0gbWVzc2FnZXMpIHtcclxuXHRcdFx0XHRtZXNzYWdlcyQxID0gbmV3TWVzc2FnZXMoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0ZGVlcE1lcmdlKG1lc3NhZ2VzJDEsIG9wdGlvbnMubWVzc2FnZXMpO1xyXG5cdFx0XHRvcHRpb25zLm1lc3NhZ2VzID0gbWVzc2FnZXMkMTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdG9wdGlvbnMubWVzc2FnZXMgPSB0aGlzLm1lc3NhZ2VzKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIGFycjtcclxuXHRcdHZhciB2YWx1ZTtcclxuXHRcdHZhciBzZXJpZXMgPSB7fTtcclxuXHRcdHZhciBrZXlzID0gb3B0aW9ucy5rZXlzIHx8IE9iamVjdC5rZXlzKHRoaXMucnVsZXMpO1xyXG5cdFx0a2V5cy5mb3JFYWNoKGZ1bmN0aW9uKHopIHtcclxuXHRcdFx0YXJyID0gX3RoaXMucnVsZXNbel07XHJcblx0XHRcdHZhbHVlID0gc291cmNlW3pdO1xyXG5cdFx0XHRhcnIuZm9yRWFjaChmdW5jdGlvbihyKSB7XHJcblx0XHRcdFx0dmFyIHJ1bGUgPSByO1xyXG5cclxuXHRcdFx0XHRpZiAodHlwZW9mIHJ1bGUudHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRpZiAoc291cmNlID09PSBzb3VyY2VfKSB7XHJcblx0XHRcdFx0XHRcdHNvdXJjZSA9IF9leHRlbmRzKHt9LCBzb3VyY2UpO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHZhbHVlID0gc291cmNlW3pdID0gcnVsZS50cmFuc2Zvcm0odmFsdWUpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHR5cGVvZiBydWxlID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRydWxlID0ge1xyXG5cdFx0XHRcdFx0XHR2YWxpZGF0b3I6IHJ1bGVcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHJ1bGUgPSBfZXh0ZW5kcyh7fSwgcnVsZSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRydWxlLnZhbGlkYXRvciA9IF90aGlzLmdldFZhbGlkYXRpb25NZXRob2QocnVsZSk7XHJcblx0XHRcdFx0cnVsZS5maWVsZCA9IHo7XHJcblx0XHRcdFx0cnVsZS5mdWxsRmllbGQgPSBydWxlLmZ1bGxGaWVsZCB8fCB6O1xyXG5cdFx0XHRcdHJ1bGUudHlwZSA9IF90aGlzLmdldFR5cGUocnVsZSk7XHJcblxyXG5cdFx0XHRcdGlmICghcnVsZS52YWxpZGF0b3IpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHNlcmllc1t6XSA9IHNlcmllc1t6XSB8fCBbXTtcclxuXHRcdFx0XHRzZXJpZXNbel0ucHVzaCh7XHJcblx0XHRcdFx0XHRydWxlOiBydWxlLFxyXG5cdFx0XHRcdFx0dmFsdWU6IHZhbHVlLFxyXG5cdFx0XHRcdFx0c291cmNlOiBzb3VyY2UsXHJcblx0XHRcdFx0XHRmaWVsZDogelxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdFx0dmFyIGVycm9yRmllbGRzID0ge307XHJcblx0XHRyZXR1cm4gYXN5bmNNYXAoc2VyaWVzLCBvcHRpb25zLCBmdW5jdGlvbihkYXRhLCBkb0l0KSB7XHJcblx0XHRcdHZhciBydWxlID0gZGF0YS5ydWxlO1xyXG5cdFx0XHR2YXIgZGVlcCA9IChydWxlLnR5cGUgPT09ICdvYmplY3QnIHx8IHJ1bGUudHlwZSA9PT0gJ2FycmF5JykgJiYgKHR5cGVvZiBydWxlLmZpZWxkcyA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHJ1bGUuZGVmYXVsdEZpZWxkID09PVxyXG5cdFx0XHRcdCdvYmplY3QnKTtcclxuXHRcdFx0ZGVlcCA9IGRlZXAgJiYgKHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgZGF0YS52YWx1ZSk7XHJcblx0XHRcdHJ1bGUuZmllbGQgPSBkYXRhLmZpZWxkO1xyXG5cclxuXHRcdFx0ZnVuY3Rpb24gYWRkRnVsbGZpZWxkKGtleSwgc2NoZW1hKSB7XHJcblx0XHRcdFx0cmV0dXJuIF9leHRlbmRzKHt9LCBzY2hlbWEsIHtcclxuXHRcdFx0XHRcdGZ1bGxGaWVsZDogcnVsZS5mdWxsRmllbGQgKyBcIi5cIiArIGtleVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRmdW5jdGlvbiBjYihlKSB7XHJcblx0XHRcdFx0aWYgKGUgPT09IHZvaWQgMCkge1xyXG5cdFx0XHRcdFx0ZSA9IFtdO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dmFyIGVycm9ycyA9IGU7XHJcblxyXG5cdFx0XHRcdGlmICghQXJyYXkuaXNBcnJheShlcnJvcnMpKSB7XHJcblx0XHRcdFx0XHRlcnJvcnMgPSBbZXJyb3JzXTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICghb3B0aW9ucy5zdXBwcmVzc1dhcm5pbmcgJiYgZXJyb3JzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0U2NoZW1hLndhcm5pbmcoJ2FzeW5jLXZhbGlkYXRvcjonLCBlcnJvcnMpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKGVycm9ycy5sZW5ndGggJiYgcnVsZS5tZXNzYWdlKSB7XHJcblx0XHRcdFx0XHRlcnJvcnMgPSBbXS5jb25jYXQocnVsZS5tZXNzYWdlKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGVycm9ycyA9IGVycm9ycy5tYXAoY29tcGxlbWVudEVycm9yKHJ1bGUpKTtcclxuXHJcblx0XHRcdFx0aWYgKG9wdGlvbnMuZmlyc3QgJiYgZXJyb3JzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0ZXJyb3JGaWVsZHNbcnVsZS5maWVsZF0gPSAxO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGRvSXQoZXJyb3JzKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICghZGVlcCkge1xyXG5cdFx0XHRcdFx0ZG9JdChlcnJvcnMpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyBpZiBydWxlIGlzIHJlcXVpcmVkIGJ1dCB0aGUgdGFyZ2V0IG9iamVjdFxyXG5cdFx0XHRcdFx0Ly8gZG9lcyBub3QgZXhpc3QgZmFpbCBhdCB0aGUgcnVsZSBsZXZlbCBhbmQgZG9uJ3RcclxuXHRcdFx0XHRcdC8vIGdvIGRlZXBlclxyXG5cdFx0XHRcdFx0aWYgKHJ1bGUucmVxdWlyZWQgJiYgIWRhdGEudmFsdWUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHJ1bGUubWVzc2FnZSkge1xyXG5cdFx0XHRcdFx0XHRcdGVycm9ycyA9IFtdLmNvbmNhdChydWxlLm1lc3NhZ2UpLm1hcChjb21wbGVtZW50RXJyb3IocnVsZSkpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9wdGlvbnMuZXJyb3IpIHtcclxuXHRcdFx0XHRcdFx0XHRlcnJvcnMgPSBbb3B0aW9ucy5lcnJvcihydWxlLCBmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5yZXF1aXJlZCwgcnVsZS5maWVsZCkpXTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRlcnJvcnMgPSBbXTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0cmV0dXJuIGRvSXQoZXJyb3JzKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR2YXIgZmllbGRzU2NoZW1hID0ge307XHJcblxyXG5cdFx0XHRcdFx0aWYgKHJ1bGUuZGVmYXVsdEZpZWxkKSB7XHJcblx0XHRcdFx0XHRcdGZvciAodmFyIGsgaW4gZGF0YS52YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChkYXRhLnZhbHVlLmhhc093blByb3BlcnR5KGspKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmaWVsZHNTY2hlbWFba10gPSBydWxlLmRlZmF1bHRGaWVsZDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRmaWVsZHNTY2hlbWEgPSBfZXh0ZW5kcyh7fSwgZmllbGRzU2NoZW1hLCB7fSwgZGF0YS5ydWxlLmZpZWxkcyk7XHJcblxyXG5cdFx0XHRcdFx0Zm9yICh2YXIgZiBpbiBmaWVsZHNTY2hlbWEpIHtcclxuXHRcdFx0XHRcdFx0aWYgKGZpZWxkc1NjaGVtYS5oYXNPd25Qcm9wZXJ0eShmKSkge1xyXG5cdFx0XHRcdFx0XHRcdHZhciBmaWVsZFNjaGVtYSA9IEFycmF5LmlzQXJyYXkoZmllbGRzU2NoZW1hW2ZdKSA/IGZpZWxkc1NjaGVtYVtmXSA6IFtmaWVsZHNTY2hlbWFbZl1dO1xyXG5cdFx0XHRcdFx0XHRcdGZpZWxkc1NjaGVtYVtmXSA9IGZpZWxkU2NoZW1hLm1hcChhZGRGdWxsZmllbGQuYmluZChudWxsLCBmKSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR2YXIgc2NoZW1hID0gbmV3IFNjaGVtYShmaWVsZHNTY2hlbWEpO1xyXG5cdFx0XHRcdFx0c2NoZW1hLm1lc3NhZ2VzKG9wdGlvbnMubWVzc2FnZXMpO1xyXG5cclxuXHRcdFx0XHRcdGlmIChkYXRhLnJ1bGUub3B0aW9ucykge1xyXG5cdFx0XHRcdFx0XHRkYXRhLnJ1bGUub3B0aW9ucy5tZXNzYWdlcyA9IG9wdGlvbnMubWVzc2FnZXM7XHJcblx0XHRcdFx0XHRcdGRhdGEucnVsZS5vcHRpb25zLmVycm9yID0gb3B0aW9ucy5lcnJvcjtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRzY2hlbWEudmFsaWRhdGUoZGF0YS52YWx1ZSwgZGF0YS5ydWxlLm9wdGlvbnMgfHwgb3B0aW9ucywgZnVuY3Rpb24oZXJycykge1xyXG5cdFx0XHRcdFx0XHR2YXIgZmluYWxFcnJvcnMgPSBbXTtcclxuXHJcblx0XHRcdFx0XHRcdGlmIChlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHRcdGZpbmFsRXJyb3JzLnB1c2guYXBwbHkoZmluYWxFcnJvcnMsIGVycm9ycyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmIChlcnJzICYmIGVycnMubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdFx0ZmluYWxFcnJvcnMucHVzaC5hcHBseShmaW5hbEVycm9ycywgZXJycyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGRvSXQoZmluYWxFcnJvcnMubGVuZ3RoID8gZmluYWxFcnJvcnMgOiBudWxsKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dmFyIHJlcztcclxuXHJcblx0XHRcdGlmIChydWxlLmFzeW5jVmFsaWRhdG9yKSB7XHJcblx0XHRcdFx0cmVzID0gcnVsZS5hc3luY1ZhbGlkYXRvcihydWxlLCBkYXRhLnZhbHVlLCBjYiwgZGF0YS5zb3VyY2UsIG9wdGlvbnMpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHJ1bGUudmFsaWRhdG9yKSB7XHJcblx0XHRcdFx0cmVzID0gcnVsZS52YWxpZGF0b3IocnVsZSwgZGF0YS52YWx1ZSwgY2IsIGRhdGEuc291cmNlLCBvcHRpb25zKTtcclxuXHJcblx0XHRcdFx0aWYgKHJlcyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0Y2IoKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRcdGNiKHJ1bGUubWVzc2FnZSB8fCBydWxlLmZpZWxkICsgXCIgZmFpbHNcIik7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChyZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG5cdFx0XHRcdFx0Y2IocmVzKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yKSB7XHJcblx0XHRcdFx0XHRjYihyZXMubWVzc2FnZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAocmVzICYmIHJlcy50aGVuKSB7XHJcblx0XHRcdFx0cmVzLnRoZW4oZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gY2IoKTtcclxuXHRcdFx0XHR9LCBmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gY2IoZSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0sIGZ1bmN0aW9uKHJlc3VsdHMpIHtcclxuXHRcdFx0Y29tcGxldGUocmVzdWx0cyk7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cdGdldFR5cGU6IGZ1bmN0aW9uIGdldFR5cGUocnVsZSkge1xyXG5cdFx0aWYgKHJ1bGUudHlwZSA9PT0gdW5kZWZpbmVkICYmIHJ1bGUucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG5cdFx0XHRydWxlLnR5cGUgPSAncGF0dGVybic7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBydWxlLnZhbGlkYXRvciAhPT0gJ2Z1bmN0aW9uJyAmJiBydWxlLnR5cGUgJiYgIXZhbGlkYXRvcnMuaGFzT3duUHJvcGVydHkocnVsZS50eXBlKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoZm9ybWF0KCdVbmtub3duIHJ1bGUgdHlwZSAlcycsIHJ1bGUudHlwZSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBydWxlLnR5cGUgfHwgJ3N0cmluZyc7XHJcblx0fSxcclxuXHRnZXRWYWxpZGF0aW9uTWV0aG9kOiBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uTWV0aG9kKHJ1bGUpIHtcclxuXHRcdGlmICh0eXBlb2YgcnVsZS52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0cmV0dXJuIHJ1bGUudmFsaWRhdG9yO1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBrZXlzID0gT2JqZWN0LmtleXMocnVsZSk7XHJcblx0XHR2YXIgbWVzc2FnZUluZGV4ID0ga2V5cy5pbmRleE9mKCdtZXNzYWdlJyk7XHJcblxyXG5cdFx0aWYgKG1lc3NhZ2VJbmRleCAhPT0gLTEpIHtcclxuXHRcdFx0a2V5cy5zcGxpY2UobWVzc2FnZUluZGV4LCAxKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoa2V5cy5sZW5ndGggPT09IDEgJiYga2V5c1swXSA9PT0gJ3JlcXVpcmVkJykge1xyXG5cdFx0XHRyZXR1cm4gdmFsaWRhdG9ycy5yZXF1aXJlZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdmFsaWRhdG9yc1t0aGlzLmdldFR5cGUocnVsZSldIHx8IGZhbHNlO1xyXG5cdH1cclxufTtcclxuXHJcblNjaGVtYS5yZWdpc3RlciA9IGZ1bmN0aW9uIHJlZ2lzdGVyKHR5cGUsIHZhbGlkYXRvcikge1xyXG5cdGlmICh0eXBlb2YgdmFsaWRhdG9yICE9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZWdpc3RlciBhIHZhbGlkYXRvciBieSB0eXBlLCB2YWxpZGF0b3IgaXMgbm90IGEgZnVuY3Rpb24nKTtcclxuXHR9XHJcblxyXG5cdHZhbGlkYXRvcnNbdHlwZV0gPSB2YWxpZGF0b3I7XHJcbn07XHJcblxyXG5TY2hlbWEud2FybmluZyA9IHdhcm5pbmc7XHJcblNjaGVtYS5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2NoZW1hO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXBcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1437\n"); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /***/ }), /* 1438 */ diff --git a/unpackage/dist/dev/app-plus/app-view.js b/unpackage/dist/dev/app-plus/app-view.js index c5f479f7..5adc9349 100644 --- a/unpackage/dist/dev/app-plus/app-view.js +++ b/unpackage/dist/dev/app-plus/app-view.js @@ -32732,7 +32732,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./personDetail.vue?vue&type=script&lang=js&mpType=page */ 569); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _personDetail_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./personDetail.vue?vue&type=style&index=0&id=92670d5c&scoped=true&lang=scss&mpType=page */ 571); +<<<<<<< HEAD /* harmony import */ var _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 11); +======= +/* harmony import */ var _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 11); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 var renderjs @@ -32760,14 +32764,21 @@ component.options.__file = "pages/projectEnd/laborManage/searchTeam/personDetail /***/ }), /* 559 */ +<<<<<<< HEAD /*!****************************************************************************************************************************************!*\ !*** D:/jxj/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! \****************************************************************************************************************************************/ +======= +/*!***********************************************************************************************************************************************!*\ + !*** D:/jxj/uniapp/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! + \***********************************************************************************************************************************************/ +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); +<<<<<<< HEAD /* harmony import */ var _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page */ 560); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); @@ -32776,14 +32787,30 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); +======= +/* harmony import */ var _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page */ 560); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_template_id_92670d5c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /***/ }), /* 560 */ +<<<<<<< HEAD /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/jxj/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +======= +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/jxj/uniapp/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=template&id=92670d5c&scoped=true&mpType=page ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -34374,14 +34401,21 @@ exports.default = _default; /***/ }), /* 571 */ +<<<<<<< HEAD /*!*******************************************************************************************************************************************************!*\ !*** D:/jxj/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=style&index=0&id=92670d5c&scoped=true&lang=scss&mpType=page ***! \*******************************************************************************************************************************************************/ +======= +/*!**************************************************************************************************************************************************************!*\ + !*** D:/jxj/uniapp/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=style&index=0&id=92670d5c&scoped=true&lang=scss&mpType=page ***! + \**************************************************************************************************************************************************************/ +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); +<<<<<<< HEAD /* harmony import */ var _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--8-oneOf-1-3!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../HBuider软件/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./personDetail.vue?vue&type=style&index=0&id=92670d5c&scoped=true&lang=scss&mpType=page */ 572); /* harmony import */ var _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuider_HBuilderX_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); @@ -34392,27 +34426,54 @@ __webpack_require__.r(__webpack_exports__); /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/jxj/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=style&index=0&id=92670d5c&scoped=true&lang=scss&mpType=page ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +======= +/* harmony import */ var _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--8-oneOf-1-3!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../GPT浏览器下载/HBuilderX.4.14.2024043013/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./personDetail.vue?vue&type=style&index=0&id=92670d5c&scoped=true&lang=scss&mpType=page */ 572); +/* harmony import */ var _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_8_oneOf_1_0_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_GPT_HBuilderX_4_14_2024043013_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_personDetail_vue_vue_type_style_index_0_id_92670d5c_scoped_true_lang_scss_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), +/* 572 */ +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/jxj/uniapp/zhgdyunapp/pages/projectEnd/laborManage/searchTeam/personDetail.vue?vue&type=style&index=0&id=92670d5c&scoped=true&lang=scss&mpType=page ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +>>>>>>> bdbb4a868d492149b89d34b623952cde0f35cbe5 /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a