nsc-react-component 4.2.9 → 4.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/base/importData/index.js +8 -7
- package/lib/base/importData/index.js.map +1 -1
- package/lib/base/modal/index.js +1 -1
- package/lib/base/modal/index.js.map +1 -1
- package/lib/base/tree/index.d.ts +4 -0
- package/lib/base/tree/index.js +11 -4
- package/lib/base/tree/index.js.map +1 -1
- package/lib/page/BasePage/index.js +20 -13
- package/lib/page/BasePage/index.js.map +1 -1
- package/lib/page/BasePage/utils.js +1 -58
- package/lib/page/BasePage/utils.js.map +1 -1
- package/lib/page/FormPage/index.d.ts +4 -1
- package/lib/page/FormPage/index.js +30 -14
- package/lib/page/FormPage/index.js.map +1 -1
- package/lib/page/SettingForm/index.d.ts +4 -3
- package/lib/page/SettingForm/index.js +85 -119
- package/lib/page/SettingForm/index.js.map +1 -1
- package/lib/page/SettingTable/index.d.ts +1 -0
- package/lib/page/SettingTable/index.js +20 -135
- package/lib/page/SettingTable/index.js.map +1 -1
- package/lib/page/{SettingForm → SettingUtil}/com.js +1 -1
- package/lib/page/{SettingForm → SettingUtil}/com.js.map +1 -1
- package/lib/page/SettingUtil/utils.d.ts +35 -0
- package/lib/page/SettingUtil/utils.js +227 -0
- package/lib/page/SettingUtil/utils.js.map +1 -0
- package/package.json +1 -1
- package/lib/page/SettingTable/com.d.ts +0 -81
- package/lib/page/SettingTable/com.js +0 -81
- package/lib/page/SettingTable/com.js.map +0 -1
- /package/lib/page/{SettingForm → SettingUtil}/com.d.ts +0 -0
|
@@ -74,9 +74,7 @@ class NscImportData extends React.PureComponent {
|
|
|
74
74
|
if (res.code == 200) {
|
|
75
75
|
var _res$data, _res$data2;
|
|
76
76
|
// message.success("导入成功!");
|
|
77
|
-
|
|
78
|
-
requestStatus: "success"
|
|
79
|
-
});
|
|
77
|
+
|
|
80
78
|
if (((_res$data = res.data) === null || _res$data === void 0 || (_res$data = _res$data.warnings) === null || _res$data === void 0 ? void 0 : _res$data.length) > 0) {
|
|
81
79
|
this.setState({
|
|
82
80
|
requestStatus: "warning",
|
|
@@ -84,18 +82,21 @@ class NscImportData extends React.PureComponent {
|
|
|
84
82
|
});
|
|
85
83
|
}
|
|
86
84
|
if (((_res$data2 = res.data) === null || _res$data2 === void 0 || (_res$data2 = _res$data2.errors) === null || _res$data2 === void 0 ? void 0 : _res$data2.length) > 0) {
|
|
87
|
-
|
|
85
|
+
// message.success("导入失败!");
|
|
88
86
|
this.setState({
|
|
89
87
|
requestStatus: "error",
|
|
90
|
-
|
|
88
|
+
errorList: res.data.errors
|
|
91
89
|
});
|
|
92
90
|
} else {
|
|
93
91
|
_message.success("导入成功!");
|
|
92
|
+
this.setState({
|
|
93
|
+
requestStatus: "success"
|
|
94
|
+
});
|
|
94
95
|
}
|
|
95
96
|
(onCallBacks === null || onCallBacks === void 0 ? void 0 : onCallBacks.importCallBack) && (onCallBacks === null || onCallBacks === void 0 ? void 0 : onCallBacks.importCallBack(res));
|
|
96
97
|
// this.hide();
|
|
97
98
|
} else {
|
|
98
|
-
_message.
|
|
99
|
+
_message.error("导入失败!");
|
|
99
100
|
this.setState({
|
|
100
101
|
requestStatus: "error"
|
|
101
102
|
});
|
|
@@ -335,4 +336,4 @@ class NscImportData extends React.PureComponent {
|
|
|
335
336
|
}
|
|
336
337
|
}
|
|
337
338
|
export default NscImportData;
|
|
338
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiYnV0dG9uTG9hZGluZyIsImNyZWF0ZVJlZiIsImZpbGVTaXplS2IiLCJudW1iZXIiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0b0ZpeGVkIiwic2hvdyIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbiIsIm1vZGFsUmVmIiwiY3VycmVudCIsImhpZGUiLCJfdGhpcyRtb2RhbFJlZiRjdXJyZW4yIiwicmVzZXREYXRhIiwiaW1wb3J0RGF0YSIsImlzT3ZlcndyaXRlIiwicmVxdWVzdENvbmZpZyIsImltcG9ydFVybCIsIm9uQ2FsbEJhY2tzIiwicHJvcHMiLCJkYXRhIiwiY29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic2V0U3RhdGUiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwiX3JlcyRkYXRhIiwiX3JlcyRkYXRhMiIsIndhcm5pbmdzIiwiZXJyb3JzIiwiX21lc3NhZ2UiLCJzdWNjZXNzIiwiaW1wb3J0Q2FsbEJhY2siLCJyZW5kZXJFcnJvckNvbnRlbnQiLCJsaXN0IiwibWFwIiwiaXRlbSIsImluZGV4Iiwic3RhdGUiLCJjcmVhdGVFbGVtZW50Iiwia2V5Iiwicm93TnVtIiwiZXJyb3JNc2ciLCJyZW5kZXJSZXN1bHQiLCJhbGVydF9tc2dfbWFwIiwiZXJyb3IiLCJ3YXJuaW5nIiwiX2FsZXJ0X21zZ19tYXAkcmVxdWVzIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJtZXNzYWdlIiwidHlwZSIsInNob3dJY29uIiwiZXhwYW5kSWNvblBvc2l0aW9uIiwiY2xhc3NOYW1lIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiZGVmYXVsdEFjdGl2ZUtleSIsIlBhbmVsIiwiaGVhZGVyIiwiY29sb3IiLCJleHRyYSIsImJhY2tncm91bmQiLCJyZW5kZXIiLCJkb3duTG9hZFRlbXBsZXQiLCJkb3duVGVtcGxldFVybCIsImNoZWNrRGF0YSIsImNoZWNrVXJsIiwiZm9vdGVyIiwib25DbGljayIsImVycm9yQ291bnQiLCJkdXBsaWNhdGVDb3VudCIsImR1cGxpY2F0ZUxpc3QiLCJkaXNhYmxlZCIsImljb24iLCJtYXJnaW5MZWZ0IiwiY2hpbGRyZW4iLCJGcmFnbWVudCIsInNob3dCdXR0b24iLCJ0aXRsZSIsIndpZHRoIiwid3JhcENsYXNzTmFtZSIsInJlZiIsIm9uQ2FuY2VsIiwiZGlzcGxheSIsImJlZm9yZVVwbG9hZCIsImFsbG93RmlsZVN1ZmZpeCIsImFjY2VwdCIsInNob3dVcGxvYWRMaXN0IiwibmFtZSIsInNpemUiLCJpdGVtcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1wb3J0RGF0YS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IE5zY1VwbG9hZCBmcm9tIFwiLi4vdXBsb2FkXCI7XHJcbmltcG9ydCBOU0NCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgTnNjRG93bkxvYWQgZnJvbSBcIi4uL2Rvd25sb2FkXCI7XHJcbmltcG9ydCBOc2NNb2RhbCBmcm9tIFwiLi4vbW9kYWxcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBVcGxvYWRPdXRsaW5lZCxcclxuICBGb2xkZXJPdXRsaW5lZCxcclxuICBDbG9zZUNpcmNsZU91dGxpbmVkLFxyXG4gIEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBTdGVwcyBmcm9tIFwiLi4vc3RlcHNcIjtcclxuaW1wb3J0IG5zY0ZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgQWxlcnQgZnJvbSBcIi4uL2FsZXJ0XCI7XHJcbmltcG9ydCBDb2xsYXBzZSBmcm9tIFwiLi4vY29sbGFwc2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uL2NvbW1vbi9JY29uXCI7XHJcblxyXG5pbnRlcmZhY2UgSW1wb3J0UHJvcG9zIHtcclxuICBjaGVja0RhdGE/OiBib29sZWFuOyAvL+aYr+WQpui/m+ihjOaVsOaNruagoemqjO+8jOm7mOiupGZhbHNlXHJcbiAgY2hlY2tVcmw/OiBzdHJpbmc7IC8v5pWw5o2u5qCh6aqM5o6l5Y+j5Zyw5Z2AXHJcbiAgaW1wb3J0VXJsOiBzdHJpbmc7IC8v5pWw5o2u5a+85YWl5Zyw5Z2AXHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBkb3duTG9hZFRlbXBsZXQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuS4i+i9veaooeadv+aMiemSrlxyXG4gIGRvd25UZW1wbGV0VXJsPzogc3RyaW5nOyAvL+S4i+i9veaooeadv+WcsOWdgFxyXG4gIG9uQ2FsbEJhY2tzPzoge1xyXG4gICAgY2hlY2tDYWxsQmFjaz86IGFueTsgLy/mlbDmja7moKHpqozlm57osINcclxuICAgIGltcG9ydENhbGxCYWNrPzogYW55OyAvL+aVsOaNruWvvOWFpeWbnuiwg1xyXG4gICAgY2xvc2VDYWxsQmFjaz86IGFueTtcclxuICB9O1xyXG4gIHNob3dCdXR0b24/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBOc2NJbXBvcnREYXRhIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJbXBvcnRQcm9wb3MsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgc3RhdHVzOiAxLFxyXG4gICAgZmlsZTogbnVsbCxcclxuICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgcmVxdWVzdFN0YXR1czogXCJcIixcclxuICAgIGVycm9yTGlzdDogW10sXHJcbiAgICB3YXJuTGlzdDogW10sXHJcbiAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICB9O1xyXG4gIG1vZGFsUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBmaWxlU2l6ZUtiKG51bWJlciA9IDApIHtcclxuICAgIHJldHVybiAobnVtYmVyIC8gMTAyNCkudG9GaXhlZCgyKTtcclxuICB9XHJcbiAgc2hvdygpIHtcclxuICAgIHRoaXMubW9kYWxSZWYuY3VycmVudD8uc2hvdygpO1xyXG4gIH1cclxuICBoaWRlKCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50Py5oaWRlKCk7XHJcbiAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gIH1cclxuICBpbXBvcnREYXRhKGZpbGUsIGlzT3ZlcndyaXRlKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RDb25maWcgPSB7fSwgaW1wb3J0VXJsLCBvbkNhbGxCYWNrcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZGF0YSA9IHt9LCAuLi5jb25maWcgfSA9IHJlcXVlc3RDb25maWc7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgYnV0dG9uTG9hZGluZzogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy8gbGV0IGZvcm1EYXRhID0gey4uLmRhdGF9XHJcblxyXG4gICAgbnNjRmlsZVxyXG4gICAgICAuaW1wb3J0RmlsZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICB1cmw6IGltcG9ydFVybCxcclxuICAgICAgICAgIGRhdGE6IHsgLi4uZGF0YSwgaXNPdmVyd3JpdGU6IGlzT3ZlcndyaXRlIH0sXHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAvLyBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChyZXMuZGF0YT8ud2FybmluZ3M/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICAgICAgd2Fybkxpc3Q6IHJlcy5kYXRhLndhcm5pbmdzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXMuZGF0YT8uZXJyb3JzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWvvOWFpeWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgIHdhcm5MaXN0OiByZXMuZGF0YS5lcnJvcnMsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWvvOWFpeaIkOWKn++8gVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9uQ2FsbEJhY2tzPy5pbXBvcnRDYWxsQmFjayAmJiBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2socmVzKTtcclxuICAgICAgICAgIC8vIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyRXJyb3JDb250ZW50KGxpc3QpIHtcclxuICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuc3RhdGUucmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIikge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PSBcInN0cmluZ1wiID8gKFxyXG4gICAgICAgICAgPGRpdj57aXRlbX08L2Rpdj5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPGRpdiBrZXk9e2luZGV4fT57XCLnrKxcIiArIGl0ZW0ucm93TnVtICsgXCLooYzmlbDmja7ph43lpI3vvJtcIn08L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PSBcInN0cmluZ1wiID8gKFxyXG4gICAgICAgICAgPGRpdj57aXRlbX08L2Rpdj5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPGRpdiBrZXk9e2luZGV4fT57aXRlbS5lcnJvck1zZ308L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyUmVzdWx0KCkge1xyXG4gICAgY29uc3QgeyByZXF1ZXN0U3RhdHVzLCBlcnJvckxpc3QsIHdhcm5MaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgYWxlcnRfbXNnX21hcCA9IHtcclxuICAgICAgc3VjY2VzczogXCLlr7zlhaXmiJDlip9cIixcclxuICAgICAgZXJyb3I6IFwi5a+85YWl5aSx6LSlXCIsXHJcbiAgICAgIHdhcm5pbmc6IFwi5ZGK6K2m5o+Q56S6XCIsXHJcbiAgICB9O1xyXG4gICAgaWYgKHJlcXVlc3RTdGF0dXMpIHtcclxuICAgICAgaWYgKHJlcXVlc3RTdGF0dXMgPT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPEFsZXJ0XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogXCI4cHhcIiB9fVxyXG4gICAgICAgICAgICBtZXNzYWdlPXthbGVydF9tc2dfbWFwW3JlcXVlc3RTdGF0dXNdID8/IFwi5o+Q56S6XCJ9XHJcbiAgICAgICAgICAgIHR5cGU9e1wic3VjY2Vzc1wifVxyXG4gICAgICAgICAgICBzaG93SWNvblxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8Q29sbGFwc2VcclxuICAgICAgICAgICAgZXhwYW5kSWNvblBvc2l0aW9uPVwicmlnaHRcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e1xyXG4gICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcImNvbnRlbnQtd2FybmluZ1wiIDogXCJjb250ZW50LWVycm9yXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjpcclxuICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIiNGQ0UxQUJcIiA6IFwiI2ZmZjJmMFwiLFxyXG4gICAgICAgICAgICAgIGJvcmRlcjpcclxuICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCJcclxuICAgICAgICAgICAgICAgICAgPyBcIjFweCBzb2xpZCAjRkNFMUFCXCJcclxuICAgICAgICAgICAgICAgICAgOiBcIjFweCBzb2xpZCAjRkZDQ0M3XCIsXHJcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjJweFwiLFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBkZWZhdWx0QWN0aXZlS2V5PXtbXCIxXCJdfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8Q29sbGFwc2UuUGFuZWxcclxuICAgICAgICAgICAgICBrZXk9XCIxXCJcclxuICAgICAgICAgICAgICBoZWFkZXI9e1xyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIiNGQUFEMTRcIiA6IFwiI2Y2MFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7cmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgIDxFeGNsYW1hdGlvbkNpcmNsZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgIDxDbG9zZUNpcmNsZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICB7YWxlcnRfbXNnX21hcFtyZXF1ZXN0U3RhdHVzXX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGV4dHJhPXtcclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIiNGQUFEMTRcIiA6IFwiI2Y2MFwiLFxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7cmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwi5p+l55yLXCIgOiBcIuafpeeci+mUmeivr1wifVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZGRkRGNlwiIDogXCIjZmZmOWY5XCIsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29udGVudC1lcnJvcl9fbXNnXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJFcnJvckNvbnRlbnQoXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyB3YXJuTGlzdCA6IGVycm9yTGlzdFxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9Db2xsYXBzZS5QYW5lbD5cclxuICAgICAgICAgIDwvQ29sbGFwc2U+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXNldERhdGEoKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc3RhdHVzOiAxLFxyXG4gICAgICBmaWxlOiBudWxsLFxyXG4gICAgICBjdXJyZW50U3RlcDogMSxcclxuICAgICAgcmVxdWVzdFN0YXR1czogXCJcIixcclxuICAgICAgZXJyb3JMaXN0OiBbXSxcclxuICAgICAgd2Fybkxpc3Q6IFtdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgZmlsZSwgc3RhdHVzLCBjdXJyZW50U3RlcCwgcmVxdWVzdFN0YXR1cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZG93bkxvYWRUZW1wbGV0LFxyXG4gICAgICBkb3duVGVtcGxldFVybCxcclxuICAgICAgY2hlY2tEYXRhLFxyXG4gICAgICBjaGVja1VybCxcclxuICAgICAgcmVxdWVzdENvbmZpZyxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZm9vdGVyID0gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3RlclwiPlxyXG4gICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOWPlua2iFxyXG4gICAgICAgIDwvTlNDQnV0dG9uPlxyXG5cclxuICAgICAgICB7c3RhdHVzID09IDEgJiYgdGhpcy5zdGF0ZS5maWxlICYmIChcclxuICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAyLFxyXG4gICAgICAgICAgICAgICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgaWYgKGNoZWNrRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgbnNjRmlsZVxyXG4gICAgICAgICAgICAgICAgICAuaW1wb3J0RmlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBjaGVja1VybCxcclxuICAgICAgICAgICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHJlcXVlc3RDb25maWc/LmRhdGEgfHwge30sXHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIC50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEuZXJyb3JDb3VudCA9PSAwICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmR1cGxpY2F0ZUNvdW50ID09IDBcclxuICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcDogMixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1wb3J0RGF0YShmaWxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5lcnJvckNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JMaXN0OiByZXMuZGF0YS5lcnJvckxpc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZHVwbGljYXRlQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5MaXN0OiByZXMuZGF0YS5kdXBsaWNhdGVMaXN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW1wb3J0RGF0YShmaWxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBkaXNhYmxlZD17ZmlsZSA/IGZhbHNlIDogdHJ1ZX1cclxuICAgICAgICAgICAgaWNvbj17PFVwbG9hZE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDlvIDlp4vkuIrkvKBcclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgJiYgc3RhdHVzID09IDIgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEodGhpcy5zdGF0ZS5maWxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGRpc2FibGVkPXt0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmd9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOS4jeimhuebluaVsOaNrlxyXG4gICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgKX1cclxuICAgICAgICB7cmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiAmJiBzdGF0dXMgPT0gMiAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW1wb3J0RGF0YSh0aGlzLnN0YXRlLmZpbGUsIHRydWUpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5idXR0b25Mb2FkaW5nfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDopobnm5bmlbDmja5cclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVuID8gKFxyXG4gICAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8PlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5zaG93QnV0dG9uICYmIChcclxuICAgICAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDmlbDmja7lr7zlhaVcclxuICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgICl9XHJcblxyXG4gICAgICAgIDxOc2NNb2RhbFxyXG4gICAgICAgICAgdGl0bGU9XCLmlbDmja7lr7zlhaVcIlxyXG4gICAgICAgICAgd2lkdGg9ezgwMH1cclxuICAgICAgICAgIHdyYXBDbGFzc05hbWU9e1wiaW1wb3J0LW1vZGFsXCJ9XHJcbiAgICAgICAgICByZWY9e3RoaXMubW9kYWxSZWZ9XHJcbiAgICAgICAgICBmb290ZXI9e2Zvb3Rlcn1cclxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAge3N0YXR1cyA9PSAxID8gKFxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxyXG4gICAgICAgICAgICAgICAgICA8TnNjVXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgYmVmb3JlVXBsb2FkPXsoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93RmlsZVN1ZmZpeD17W1wieGxzXCIsIFwieGxzeFwiXX1cclxuICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9e1wiLnhscywueGxzeFwifVxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0PXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpbGUgPyB0cnVlIDogZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8Rm9sZGVyT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu2XHJcbiAgICAgICAgICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvTnNjVXBsb2FkPlxyXG5cclxuICAgICAgICAgICAgICAgICAge2Rvd25Mb2FkVGVtcGxldCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPE5zY0Rvd25Mb2FkIHVybD17ZG93blRlbXBsZXRVcmx9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPE5TQ0J1dHRvbiB0eXBlPVwicHJpbWFyeVwiIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDmqKHmnb/kuIvovb1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTnNjRG93bkxvYWQ+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLXRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC10aXAtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxFeGNsYW1hdGlvbkNpcmNsZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC10aXAtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAx44CB5pSv5oyBRXhjZWwgMjAwN+WPiuS7peS4iueJiOacrO+8jOS4lOavj+asoeWPquiDveS4iuS8oOS4gOS4quaWh+S7tu+8m1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+MuOAgeWvvOWFpeWJjeWFiOS4i+i9veaooeadv++8jOW5tuagueaNruaooeadv+Whq+WGmeaVsOaNru+8mzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIHtmaWxlICYmIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8RmlsZUljb24gdHlwZT1cImV4Y2VsXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLXRpdGxlXCI+e2ZpbGUubmFtZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS1kZXNjXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkp+Wwj++8mnt0aGlzLmZpbGVTaXplS2IoZmlsZS5zaXplKSArIFwiS0JcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPFN0ZXBzXHJcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQ9e2N1cnJlbnRTdGVwfVxyXG4gICAgICAgICAgICAgICAgICBpdGVtcz17W1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaVsOaNruWIhuaekFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5pWw5o2u5o+S5YWlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgXX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJyZXN1bHQtY29udGVudFwifT57dGhpcy5yZW5kZXJSZXN1bHQoKX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvTnNjTW9kYWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgTnNjSW1wb3J0RGF0YTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPLGNBQWM7QUFDckIsT0FBT0MsU0FBUyxNQUFNLFdBQVc7QUFDakMsT0FBT0MsU0FBUyxNQUFNLFdBQVc7QUFDakMsT0FBT0MsV0FBVyxNQUFNLGFBQWE7QUFDckMsT0FBT0MsUUFBUSxNQUFNLFVBQVU7QUFDL0IsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtBQUN6QyxTQUNFQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsbUJBQW1CLEVBQ25CQyx5QkFBeUIsUUFDcEIsbUJBQW1CO0FBQzFCLE9BQU9DLEtBQUssTUFBTSxVQUFVO0FBQzVCLE9BQU9DLE9BQU8sTUFBTSxVQUFVO0FBRTlCLE9BQU9DLEtBQUssTUFBTSxVQUFVO0FBQzVCLE9BQU9DLFFBQVEsTUFBTSxhQUFhO0FBa0JsQyxNQUFNQyxhQUFhLFNBQVNkLEtBQUssQ0FBQ2UsYUFBYSxDQUFvQjtFQUFBQyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGdCQUN6RDtNQUNOQyxNQUFNLEVBQUUsQ0FBQztNQUNUQyxJQUFJLEVBQUUsSUFBSTtNQUNWQyxXQUFXLEVBQUUsQ0FBQztNQUNkQyxhQUFhLEVBQUUsRUFBRTtNQUNqQkMsU0FBUyxFQUFFLEVBQUU7TUFDYkMsUUFBUSxFQUFFLEVBQUU7TUFDWkMsYUFBYSxFQUFFO0lBQ2pCLENBQUM7SUFBQVAsZUFBQSxnQ0FDVWxCLEtBQUss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
|
|
339
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiYnV0dG9uTG9hZGluZyIsImNyZWF0ZVJlZiIsImZpbGVTaXplS2IiLCJudW1iZXIiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0b0ZpeGVkIiwic2hvdyIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbiIsIm1vZGFsUmVmIiwiY3VycmVudCIsImhpZGUiLCJfdGhpcyRtb2RhbFJlZiRjdXJyZW4yIiwicmVzZXREYXRhIiwiaW1wb3J0RGF0YSIsImlzT3ZlcndyaXRlIiwicmVxdWVzdENvbmZpZyIsImltcG9ydFVybCIsIm9uQ2FsbEJhY2tzIiwicHJvcHMiLCJkYXRhIiwiY29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic2V0U3RhdGUiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwiX3JlcyRkYXRhIiwiX3JlcyRkYXRhMiIsIndhcm5pbmdzIiwiZXJyb3JzIiwiX21lc3NhZ2UiLCJzdWNjZXNzIiwiaW1wb3J0Q2FsbEJhY2siLCJlcnJvciIsInJlbmRlckVycm9yQ29udGVudCIsImxpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzdGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJyb3dOdW0iLCJlcnJvck1zZyIsInJlbmRlclJlc3VsdCIsImFsZXJ0X21zZ19tYXAiLCJ3YXJuaW5nIiwiX2FsZXJ0X21zZ19tYXAkcmVxdWVzIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJtZXNzYWdlIiwidHlwZSIsInNob3dJY29uIiwiZXhwYW5kSWNvblBvc2l0aW9uIiwiY2xhc3NOYW1lIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiZGVmYXVsdEFjdGl2ZUtleSIsIlBhbmVsIiwiaGVhZGVyIiwiY29sb3IiLCJleHRyYSIsImJhY2tncm91bmQiLCJyZW5kZXIiLCJkb3duTG9hZFRlbXBsZXQiLCJkb3duVGVtcGxldFVybCIsImNoZWNrRGF0YSIsImNoZWNrVXJsIiwiZm9vdGVyIiwib25DbGljayIsImVycm9yQ291bnQiLCJkdXBsaWNhdGVDb3VudCIsImR1cGxpY2F0ZUxpc3QiLCJkaXNhYmxlZCIsImljb24iLCJtYXJnaW5MZWZ0IiwiY2hpbGRyZW4iLCJGcmFnbWVudCIsInNob3dCdXR0b24iLCJ0aXRsZSIsIndpZHRoIiwid3JhcENsYXNzTmFtZSIsInJlZiIsIm9uQ2FuY2VsIiwiZGlzcGxheSIsImJlZm9yZVVwbG9hZCIsImFsbG93RmlsZVN1ZmZpeCIsImFjY2VwdCIsInNob3dVcGxvYWRMaXN0IiwibmFtZSIsInNpemUiLCJpdGVtcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1wb3J0RGF0YS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IE5zY1VwbG9hZCBmcm9tIFwiLi4vdXBsb2FkXCI7XHJcbmltcG9ydCBOU0NCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgTnNjRG93bkxvYWQgZnJvbSBcIi4uL2Rvd25sb2FkXCI7XHJcbmltcG9ydCBOc2NNb2RhbCBmcm9tIFwiLi4vbW9kYWxcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBVcGxvYWRPdXRsaW5lZCxcclxuICBGb2xkZXJPdXRsaW5lZCxcclxuICBDbG9zZUNpcmNsZU91dGxpbmVkLFxyXG4gIEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBTdGVwcyBmcm9tIFwiLi4vc3RlcHNcIjtcclxuaW1wb3J0IG5zY0ZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgQWxlcnQgZnJvbSBcIi4uL2FsZXJ0XCI7XHJcbmltcG9ydCBDb2xsYXBzZSBmcm9tIFwiLi4vY29sbGFwc2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uL2NvbW1vbi9JY29uXCI7XHJcblxyXG5pbnRlcmZhY2UgSW1wb3J0UHJvcG9zIHtcclxuICBjaGVja0RhdGE/OiBib29sZWFuOyAvL+aYr+WQpui/m+ihjOaVsOaNruagoemqjO+8jOm7mOiupGZhbHNlXHJcbiAgY2hlY2tVcmw/OiBzdHJpbmc7IC8v5pWw5o2u5qCh6aqM5o6l5Y+j5Zyw5Z2AXHJcbiAgaW1wb3J0VXJsOiBzdHJpbmc7IC8v5pWw5o2u5a+85YWl5Zyw5Z2AXHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBkb3duTG9hZFRlbXBsZXQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuS4i+i9veaooeadv+aMiemSrlxyXG4gIGRvd25UZW1wbGV0VXJsPzogc3RyaW5nOyAvL+S4i+i9veaooeadv+WcsOWdgFxyXG4gIG9uQ2FsbEJhY2tzPzoge1xyXG4gICAgY2hlY2tDYWxsQmFjaz86IGFueTsgLy/mlbDmja7moKHpqozlm57osINcclxuICAgIGltcG9ydENhbGxCYWNrPzogYW55OyAvL+aVsOaNruWvvOWFpeWbnuiwg1xyXG4gICAgY2xvc2VDYWxsQmFjaz86IGFueTtcclxuICB9O1xyXG4gIHNob3dCdXR0b24/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBOc2NJbXBvcnREYXRhIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJbXBvcnRQcm9wb3MsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgc3RhdHVzOiAxLFxyXG4gICAgZmlsZTogbnVsbCxcclxuICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgcmVxdWVzdFN0YXR1czogXCJcIixcclxuICAgIGVycm9yTGlzdDogW10sXHJcbiAgICB3YXJuTGlzdDogW10sXHJcbiAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICB9O1xyXG4gIG1vZGFsUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBmaWxlU2l6ZUtiKG51bWJlciA9IDApIHtcclxuICAgIHJldHVybiAobnVtYmVyIC8gMTAyNCkudG9GaXhlZCgyKTtcclxuICB9XHJcbiAgc2hvdygpIHtcclxuICAgIHRoaXMubW9kYWxSZWYuY3VycmVudD8uc2hvdygpO1xyXG4gIH1cclxuICBoaWRlKCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50Py5oaWRlKCk7XHJcbiAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gIH1cclxuICBpbXBvcnREYXRhKGZpbGUsIGlzT3ZlcndyaXRlKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RDb25maWcgPSB7fSwgaW1wb3J0VXJsLCBvbkNhbGxCYWNrcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZGF0YSA9IHt9LCAuLi5jb25maWcgfSA9IHJlcXVlc3RDb25maWc7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgYnV0dG9uTG9hZGluZzogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy8gbGV0IGZvcm1EYXRhID0gey4uLmRhdGF9XHJcblxyXG4gICAgbnNjRmlsZVxyXG4gICAgICAuaW1wb3J0RmlsZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICB1cmw6IGltcG9ydFVybCxcclxuICAgICAgICAgIGRhdGE6IHsgLi4uZGF0YSwgaXNPdmVyd3JpdGU6IGlzT3ZlcndyaXRlIH0sXHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAvLyBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXmiJDlip/vvIFcIik7XHJcblxyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhPy53YXJuaW5ncz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEud2FybmluZ3MsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhPy5lcnJvcnM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy8gbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgZXJyb3JMaXN0OiByZXMuZGF0YS5lcnJvcnMsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2sgJiYgb25DYWxsQmFja3M/LmltcG9ydENhbGxCYWNrKHJlcyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWvvOWFpeWksei0pe+8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJFcnJvckNvbnRlbnQobGlzdCkge1xyXG4gICAgcmV0dXJuIGxpc3QubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zdGF0ZS5yZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIgPyAoXHJcbiAgICAgICAgICA8ZGl2PntpdGVtfTwvZGl2PlxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9PntcIuesrFwiICsgaXRlbS5yb3dOdW0gKyBcIuihjOaVsOaNrumHjeWkje+8m1wifTwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIgPyAoXHJcbiAgICAgICAgICA8ZGl2PntpdGVtfTwvZGl2PlxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9PntpdGVtLmVycm9yTXNnfTwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJSZXN1bHQoKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RTdGF0dXMsIGVycm9yTGlzdCwgd2Fybkxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBhbGVydF9tc2dfbWFwID0ge1xyXG4gICAgICBzdWNjZXNzOiBcIuWvvOWFpeaIkOWKn1wiLFxyXG4gICAgICBlcnJvcjogXCLlr7zlhaXlpLHotKVcIixcclxuICAgICAgd2FybmluZzogXCLlkYrorabmj5DnpLpcIixcclxuICAgIH07XHJcbiAgICBpZiAocmVxdWVzdFN0YXR1cykge1xyXG4gICAgICBpZiAocmVxdWVzdFN0YXR1cyA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8QWxlcnRcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiBcIjhweFwiIH19XHJcbiAgICAgICAgICAgIG1lc3NhZ2U9e2FsZXJ0X21zZ19tYXBbcmVxdWVzdFN0YXR1c10gPz8gXCLmj5DnpLpcIn1cclxuICAgICAgICAgICAgdHlwZT17XCJzdWNjZXNzXCJ9XHJcbiAgICAgICAgICAgIHNob3dJY29uXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxDb2xsYXBzZVxyXG4gICAgICAgICAgICBleHBhbmRJY29uUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiY29udGVudC13YXJuaW5nXCIgOiBcImNvbnRlbnQtZXJyb3JcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOlxyXG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZDRTFBQlwiIDogXCIjZmZmMmYwXCIsXHJcbiAgICAgICAgICAgICAgYm9yZGVyOlxyXG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIlxyXG4gICAgICAgICAgICAgICAgICA/IFwiMXB4IHNvbGlkICNGQ0UxQUJcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiMXB4IHNvbGlkICNGRkNDQzdcIixcclxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiMnB4XCIsXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGRlZmF1bHRBY3RpdmVLZXk9e1tcIjFcIl19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxDb2xsYXBzZS5QYW5lbFxyXG4gICAgICAgICAgICAgIGtleT1cIjFcIlxyXG4gICAgICAgICAgICAgIGhlYWRlcj17XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZBQUQxNFwiIDogXCIjZjYwXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPENsb3NlQ2lyY2xlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHthbGVydF9tc2dfbWFwW3JlcXVlc3RTdGF0dXNdfVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZXh0cmE9e1xyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZBQUQxNFwiIDogXCIjZjYwXCIsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCLmn6XnnItcIiA6IFwi5p+l55yL6ZSZ6K+vXCJ9XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkZGREY2XCIgOiBcIiNmZmY5ZjlcIixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb250ZW50LWVycm9yX19tc2dcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckVycm9yQ29udGVudChcclxuICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IHdhcm5MaXN0IDogZXJyb3JMaXN0XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L0NvbGxhcHNlLlBhbmVsPlxyXG4gICAgICAgICAgPC9Db2xsYXBzZT5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0RGF0YSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzdGF0dXM6IDEsXHJcbiAgICAgIGZpbGU6IG51bGwsXHJcbiAgICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgICByZXF1ZXN0U3RhdHVzOiBcIlwiLFxyXG4gICAgICBlcnJvckxpc3Q6IFtdLFxyXG4gICAgICB3YXJuTGlzdDogW10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBmaWxlLCBzdGF0dXMsIGN1cnJlbnRTdGVwLCByZXF1ZXN0U3RhdHVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkb3duTG9hZFRlbXBsZXQsXHJcbiAgICAgIGRvd25UZW1wbGV0VXJsLFxyXG4gICAgICBjaGVja0RhdGEsXHJcbiAgICAgIGNoZWNrVXJsLFxyXG4gICAgICByZXF1ZXN0Q29uZmlnLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmb290ZXIgPSAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgPC9OU0NCdXR0b24+XHJcblxyXG4gICAgICAgIHtzdGF0dXMgPT0gMSAmJiB0aGlzLnN0YXRlLmZpbGUgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6IDIsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50U3RlcDogMSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBpZiAoY2hlY2tEYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBuc2NGaWxlXHJcbiAgICAgICAgICAgICAgICAgIC5pbXBvcnRGaWxlKHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IGNoZWNrVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogcmVxdWVzdENvbmZpZz8uZGF0YSB8fCB7fSxcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5lcnJvckNvdW50ID09IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEuZHVwbGljYXRlQ291bnQgPT0gMFxyXG4gICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKGZpbGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmVycm9yQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckxpc3Q6IHJlcy5kYXRhLmVycm9yTGlzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5kdXBsaWNhdGVDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2Fybkxpc3Q6IHJlcy5kYXRhLmR1cGxpY2F0ZUxpc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKGZpbGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGRpc2FibGVkPXtmaWxlID8gZmFsc2UgOiB0cnVlfVxyXG4gICAgICAgICAgICBpY29uPXs8VXBsb2FkT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOW8gOWni+S4iuS8oFxyXG4gICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgKX1cclxuICAgICAgICB7cmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiAmJiBzdGF0dXMgPT0gMiAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW1wb3J0RGF0YSh0aGlzLnN0YXRlLmZpbGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuYnV0dG9uTG9hZGluZ31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5LiN6KaG55uW5pWw5o2uXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiICYmIHN0YXR1cyA9PSAyICYmIChcclxuICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKHRoaXMuc3RhdGUuZmlsZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGRpc2FibGVkPXt0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmd9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOimhuebluaVsOaNrlxyXG4gICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW4gPyAoXHJcbiAgICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dCdXR0b24gJiYgKFxyXG4gICAgICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOaVsOaNruWvvOWFpVxyXG4gICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC8+XHJcbiAgICAgICAgKX1cclxuXHJcbiAgICAgICAgPE5zY01vZGFsXHJcbiAgICAgICAgICB0aXRsZT1cIuaVsOaNruWvvOWFpVwiXHJcbiAgICAgICAgICB3aWR0aD17ODAwfVxyXG4gICAgICAgICAgd3JhcENsYXNzTmFtZT17XCJpbXBvcnQtbW9kYWxcIn1cclxuICAgICAgICAgIHJlZj17dGhpcy5tb2RhbFJlZn1cclxuICAgICAgICAgIGZvb3Rlcj17Zm9vdGVyfVxyXG4gICAgICAgICAgb25DYW5jZWw9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICB7c3RhdHVzID09IDEgPyAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgIDxOc2NVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICBiZWZvcmVVcGxvYWQ9eyhmaWxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dGaWxlU3VmZml4PXtbXCJ4bHNcIiwgXCJ4bHN4XCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdD17XCIueGxzLC54bHN4XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZmlsZSA/IHRydWUgOiBmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxGb2xkZXJPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDpgInmi6nmlofku7ZcclxuICAgICAgICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9Oc2NVcGxvYWQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICB7ZG93bkxvYWRUZW1wbGV0ICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8TnNjRG93bkxvYWQgdXJsPXtkb3duVGVtcGxldFVybH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8TlNDQnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIOaooeadv+S4i+i9vVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Oc2NEb3duTG9hZD5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLXRpcC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLXRpcC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDHjgIHmlK/mjIFFeGNlbCAyMDA35Y+K5Lul5LiK54mI5pys77yM5LiU5q+P5qyh5Y+q6IO95LiK5Lyg5LiA5Liq5paH5Lu277ybXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj4y44CB5a+85YWl5YmN5YWI5LiL6L295qih5p2/77yM5bm25qC55o2u5qih5p2/5aGr5YaZ5pWw5o2u77ybPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAge2ZpbGUgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC1maWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiB0eXBlPVwiZXhjZWxcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtdGl0bGVcIj57ZmlsZS5uYW1lfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWRlc2NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aSn5bCP77yae3RoaXMuZmlsZVNpemVLYihmaWxlLnNpemUpICsgXCJLQlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8U3RlcHNcclxuICAgICAgICAgICAgICAgICAgY3VycmVudD17Y3VycmVudFN0ZXB9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW1zPXtbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5pWw5o2u5YiG5p6QXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCLmlbDmja7mj5LlhaVcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBdfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcInJlc3VsdC1jb250ZW50XCJ9Pnt0aGlzLnJlbmRlclJlc3VsdCgpfTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Oc2NNb2RhbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBOc2NJbXBvcnREYXRhO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8sY0FBYztBQUNyQixPQUFPQyxTQUFTLE1BQU0sV0FBVztBQUNqQyxPQUFPQyxTQUFTLE1BQU0sV0FBVztBQUNqQyxPQUFPQyxXQUFXLE1BQU0sYUFBYTtBQUNyQyxPQUFPQyxRQUFRLE1BQU0sVUFBVTtBQUMvQixPQUFPQyxRQUFRLE1BQU0sb0JBQW9CO0FBQ3pDLFNBQ0VDLGNBQWMsRUFDZEMsY0FBYyxFQUNkQyxtQkFBbUIsRUFDbkJDLHlCQUF5QixRQUNwQixtQkFBbUI7QUFDMUIsT0FBT0MsS0FBSyxNQUFNLFVBQVU7QUFDNUIsT0FBT0MsT0FBTyxNQUFNLFVBQVU7QUFFOUIsT0FBT0MsS0FBSyxNQUFNLFVBQVU7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLGFBQWE7QUFrQmxDLE1BQU1DLGFBQWEsU0FBU2QsS0FBSyxDQUFDZSxhQUFhLENBQW9CO0VBQUFDLFlBQUE7SUFBQSxTQUFBQyxTQUFBO0lBQUFDLGVBQUEsZ0JBQ3pEO01BQ05DLE1BQU0sRUFBRSxDQUFDO01BQ1RDLElBQUksRUFBRSxJQUFJO01BQ1ZDLFdBQVcsRUFBRSxDQUFDO01BQ2RDLGFBQWEsRUFBRSxFQUFFO01BQ2pCQyxTQUFTLEVBQUUsRUFBRTtNQUNiQyxRQUFRLEVBQUUsRUFBRTtNQUNaQyxhQUFhLEVBQUU7SUFDakIsQ0FBQztJQUFBUCxlQUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","NscUpload","NSCButton","NscDownLoad","NscModal","FileIcon","UploadOutlined","FolderOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Steps","nscFile","Alert","Collapse","NscImportData","PureComponent","constructor","arguments","_defineProperty","status","file","currentStep","requestStatus","errorList","warnList","buttonLoading","createRef","fileSizeKb","number","length","undefined","toFixed","show","_this$modalRef$curren","modalRef","current","hide","_this$modalRef$curren2","resetData","importData","isOverwrite","requestConfig","importUrl","onCallBacks","props","data","config","_objectWithoutProperties","_excluded","setState","importFile","url","_objectSpread","then","res","code","_res$data","_res$data2","warnings","errors","_message","success","importCallBack","renderErrorContent","list","map","item","index","state","createElement","key","rowNum","errorMsg","renderResult","alert_msg_map","error","warning","_alert_msg_map$reques","style","marginTop","message","type","showIcon","expandIconPosition","className","backgroundColor","border","borderRadius","defaultActiveKey","Panel","header","color","extra","background","render","downLoadTemplet","downTempletUrl","checkData","checkUrl","footer","onClick","errorCount","duplicateCount","duplicateList","disabled","icon","marginLeft","children","Fragment","showButton","title","width","wrapClassName","ref","onCancel","display","beforeUpload","allowFileSuffix","accept","showUploadList","name","size","items"],"sources":["../../../src/components/base/importData/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport \"./index.less\";\r\nimport NscUpload from \"../upload\";\r\nimport NSCButton from \"../button\";\r\nimport NscDownLoad from \"../download\";\r\nimport NscModal from \"../modal\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n UploadOutlined,\r\n FolderOutlined,\r\n CloseCircleOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport Steps from \"../steps\";\r\nimport nscFile from \"nsc-file\";\r\nimport { message } from \"antd\";\r\nimport Alert from \"../alert\";\r\nimport Collapse from \"../collapse\";\r\nimport Icon from \"../common/Icon\";\r\n\r\ninterface ImportPropos {\r\n checkData?: boolean; //是否进行数据校验,默认false\r\n checkUrl?: string; //数据校验接口地址\r\n importUrl: string; //数据导入地址\r\n requestConfig?: any;\r\n downLoadTemplet?: boolean; //是否显示下载模板按钮\r\n downTempletUrl?: string; //下载模板地址\r\n onCallBacks?: {\r\n checkCallBack?: any; //数据校验回调\r\n importCallBack?: any; //数据导入回调\r\n closeCallBack?: any;\r\n };\r\n showButton?: boolean;\r\n [propsName: string]: any;\r\n}\r\nclass NscImportData extends React.PureComponent<ImportPropos, any> {\r\n state = {\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n buttonLoading: false,\r\n };\r\n modalRef = React.createRef<any>();\r\n fileSizeKb(number = 0) {\r\n return (number / 1024).toFixed(2);\r\n }\r\n show() {\r\n this.modalRef.current?.show();\r\n }\r\n hide() {\r\n this.modalRef.current?.hide();\r\n this.resetData();\r\n }\r\n importData(file, isOverwrite) {\r\n const { requestConfig = {}, importUrl, onCallBacks = {} } = this.props;\r\n let { data = {}, ...config } = requestConfig;\r\n this.setState({\r\n buttonLoading: true,\r\n });\r\n // let formData = {...data}\r\n\r\n nscFile\r\n .importFile(\r\n {\r\n url: importUrl,\r\n data: { ...data, isOverwrite: isOverwrite },\r\n file: file,\r\n },\r\n config\r\n )\r\n .then((res: any) => {\r\n this.setState({\r\n buttonLoading: false,\r\n });\r\n if (res.code == 200) {\r\n // message.success(\"导入成功!\");\r\n this.setState({\r\n requestStatus: \"success\",\r\n });\r\n if (res.data?.warnings?.length > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.warnings,\r\n });\r\n }\r\n if (res.data?.errors?.length > 0) {\r\n message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n warnList: res.data.errors,\r\n });\r\n }else{\r\n message.success(\"导入成功!\");\r\n }\r\n onCallBacks?.importCallBack && onCallBacks?.importCallBack(res);\r\n // this.hide();\r\n } else {\r\n message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n renderErrorContent(list) {\r\n return list.map((item, index) => {\r\n if (this.state.requestStatus == \"warning\") {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{\"第\" + item.rowNum + \"行数据重复;\"}</div>\r\n );\r\n } else {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{item.errorMsg}</div>\r\n );\r\n }\r\n });\r\n }\r\n renderResult() {\r\n const { requestStatus, errorList, warnList } = this.state;\r\n const alert_msg_map = {\r\n success: \"导入成功\",\r\n error: \"导入失败\",\r\n warning: \"告警提示\",\r\n };\r\n if (requestStatus) {\r\n if (requestStatus == \"success\") {\r\n return (\r\n <Alert\r\n style={{ marginTop: \"8px\" }}\r\n message={alert_msg_map[requestStatus] ?? \"提示\"}\r\n type={\"success\"}\r\n showIcon\r\n />\r\n );\r\n } else {\r\n return (\r\n <Collapse\r\n expandIconPosition=\"right\"\r\n className={\r\n requestStatus == \"warning\" ? \"content-warning\" : \"content-error\"\r\n }\r\n style={{\r\n backgroundColor:\r\n requestStatus == \"warning\" ? \"#FCE1AB\" : \"#fff2f0\",\r\n border:\r\n requestStatus == \"warning\"\r\n ? \"1px solid #FCE1AB\"\r\n : \"1px solid #FFCCC7\",\r\n borderRadius: \"2px\",\r\n }}\r\n defaultActiveKey={[\"1\"]}\r\n >\r\n <Collapse.Panel\r\n key=\"1\"\r\n header={\r\n <div>\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? (\r\n <ExclamationCircleOutlined />\r\n ) : (\r\n <CloseCircleOutlined />\r\n )}\r\n {alert_msg_map[requestStatus]}\r\n </span>\r\n </div>\r\n }\r\n extra={\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? \"查看\" : \"查看错误\"}\r\n </span>\r\n }\r\n >\r\n <div\r\n style={{\r\n background:\r\n requestStatus == \"warning\" ? \"#FFFDF6\" : \"#fff9f9\",\r\n }}\r\n className=\"content-error__msg\"\r\n >\r\n {this.renderErrorContent(\r\n requestStatus == \"warning\" ? warnList : errorList\r\n )}\r\n </div>\r\n </Collapse.Panel>\r\n </Collapse>\r\n );\r\n }\r\n }\r\n }\r\n resetData() {\r\n this.setState({\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n });\r\n }\r\n render() {\r\n const { file, status, currentStep, requestStatus } = this.state;\r\n const {\r\n downLoadTemplet,\r\n downTempletUrl,\r\n checkData,\r\n checkUrl,\r\n requestConfig,\r\n } = this.props;\r\n const footer = (\r\n <div className=\"footer\">\r\n <NSCButton\r\n onClick={() => {\r\n this.hide();\r\n }}\r\n >\r\n 取消\r\n </NSCButton>\r\n\r\n {status == 1 && this.state.file && (\r\n <NSCButton\r\n onClick={() => {\r\n this.setState({\r\n status: 2,\r\n currentStep: 1,\r\n });\r\n if (checkData) {\r\n nscFile\r\n .importFile({\r\n url: checkUrl,\r\n file: file,\r\n data: requestConfig?.data || {},\r\n })\r\n .then((res: any) => {\r\n if (res.code == 200) {\r\n if (\r\n res.data.errorCount == 0 &&\r\n res.data.duplicateCount == 0\r\n ) {\r\n this.setState({\r\n currentStep: 2,\r\n requestStatus: \"success\",\r\n });\r\n this.importData(file, false);\r\n return;\r\n }\r\n if (res.data.errorCount > 0) {\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errorList,\r\n });\r\n return;\r\n }\r\n if (res.data.duplicateCount > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.duplicateList,\r\n });\r\n return;\r\n }\r\n }\r\n });\r\n } else {\r\n this.importData(file, false);\r\n }\r\n }}\r\n disabled={file ? false : true}\r\n icon={<UploadOutlined />}\r\n style={{ marginLeft: 20 }}\r\n >\r\n 开始上传\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, false);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 不覆盖数据\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, true);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 覆盖数据\r\n </NSCButton>\r\n )}\r\n </div>\r\n );\r\n\r\n return (\r\n <div>\r\n {this.props.children ? (\r\n this.props.children\r\n ) : (\r\n <>\r\n {this.props.showButton && (\r\n <NSCButton\r\n type=\"primary\"\r\n onClick={() => {\r\n this.show();\r\n }}\r\n >\r\n 数据导入\r\n </NSCButton>\r\n )}\r\n </>\r\n )}\r\n\r\n <NscModal\r\n title=\"数据导入\"\r\n width={800}\r\n wrapClassName={\"import-modal\"}\r\n ref={this.modalRef}\r\n footer={footer}\r\n onCancel={() => {\r\n this.hide();\r\n }}\r\n >\r\n <div className=\"content\">\r\n {status == 1 ? (\r\n <div>\r\n <div style={{ display: \"flex\" }}>\r\n <NscUpload\r\n beforeUpload={(file) => {\r\n this.setState({\r\n file,\r\n });\r\n return false;\r\n }}\r\n allowFileSuffix={[\"xls\", \"xlsx\"]}\r\n accept={\".xls,.xlsx\"}\r\n showUploadList={false}\r\n >\r\n <NSCButton\r\n type={\"primary\"}\r\n disabled={file ? true : false}\r\n icon={<FolderOutlined />}\r\n >\r\n 选择文件\r\n </NSCButton>\r\n </NscUpload>\r\n\r\n {downLoadTemplet && (\r\n <NscDownLoad url={downTempletUrl}>\r\n <NSCButton type=\"primary\" style={{ marginLeft: 20 }}>\r\n 模板下载\r\n </NSCButton>\r\n </NscDownLoad>\r\n )}\r\n </div>\r\n <div className=\"upload-tip\">\r\n <div className=\"upload-tip-left\">\r\n <ExclamationCircleOutlined />\r\n </div>\r\n <div className=\"upload-tip-content\">\r\n <div>\r\n 1、支持Excel 2007及以上版本,且每次只能上传一个文件;\r\n </div>\r\n <div>2、导入前先下载模板,并根据模板填写数据;</div>\r\n </div>\r\n </div>\r\n\r\n {file && (\r\n <div className=\"upload-file\">\r\n <div className=\"file-icon\">\r\n <FileIcon type=\"excel\" />\r\n </div>\r\n <div className=\"file-content\">\r\n <div className=\"file-title\">{file.name}</div>\r\n <div className=\"file-desc\">\r\n <span>\r\n 文件大小:{this.fileSizeKb(file.size) + \"KB\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div>\r\n <Steps\r\n current={currentStep}\r\n items={[\r\n {\r\n title: \"数据分析\",\r\n },\r\n {\r\n title: \"数据插入\",\r\n },\r\n ]}\r\n />\r\n <div className={\"result-content\"}>{this.renderResult()}</div>\r\n </div>\r\n )}\r\n </div>\r\n </NscModal>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default NscImportData;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","NscUpload","NSCButton","NscDownLoad","NscModal","FileIcon","UploadOutlined","FolderOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Steps","nscFile","Alert","Collapse","NscImportData","PureComponent","constructor","arguments","_defineProperty","status","file","currentStep","requestStatus","errorList","warnList","buttonLoading","createRef","fileSizeKb","number","length","undefined","toFixed","show","_this$modalRef$curren","modalRef","current","hide","_this$modalRef$curren2","resetData","importData","isOverwrite","requestConfig","importUrl","onCallBacks","props","data","config","_objectWithoutProperties","_excluded","setState","importFile","url","_objectSpread","then","res","code","_res$data","_res$data2","warnings","errors","_message","success","importCallBack","error","renderErrorContent","list","map","item","index","state","createElement","key","rowNum","errorMsg","renderResult","alert_msg_map","warning","_alert_msg_map$reques","style","marginTop","message","type","showIcon","expandIconPosition","className","backgroundColor","border","borderRadius","defaultActiveKey","Panel","header","color","extra","background","render","downLoadTemplet","downTempletUrl","checkData","checkUrl","footer","onClick","errorCount","duplicateCount","duplicateList","disabled","icon","marginLeft","children","Fragment","showButton","title","width","wrapClassName","ref","onCancel","display","beforeUpload","allowFileSuffix","accept","showUploadList","name","size","items"],"sources":["../../../src/components/base/importData/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport \"./index.less\";\r\nimport NscUpload from \"../upload\";\r\nimport NSCButton from \"../button\";\r\nimport NscDownLoad from \"../download\";\r\nimport NscModal from \"../modal\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n UploadOutlined,\r\n FolderOutlined,\r\n CloseCircleOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport Steps from \"../steps\";\r\nimport nscFile from \"nsc-file\";\r\nimport { message } from \"antd\";\r\nimport Alert from \"../alert\";\r\nimport Collapse from \"../collapse\";\r\nimport Icon from \"../common/Icon\";\r\n\r\ninterface ImportPropos {\r\n checkData?: boolean; //是否进行数据校验,默认false\r\n checkUrl?: string; //数据校验接口地址\r\n importUrl: string; //数据导入地址\r\n requestConfig?: any;\r\n downLoadTemplet?: boolean; //是否显示下载模板按钮\r\n downTempletUrl?: string; //下载模板地址\r\n onCallBacks?: {\r\n checkCallBack?: any; //数据校验回调\r\n importCallBack?: any; //数据导入回调\r\n closeCallBack?: any;\r\n };\r\n showButton?: boolean;\r\n [propsName: string]: any;\r\n}\r\nclass NscImportData extends React.PureComponent<ImportPropos, any> {\r\n state = {\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n buttonLoading: false,\r\n };\r\n modalRef = React.createRef<any>();\r\n fileSizeKb(number = 0) {\r\n return (number / 1024).toFixed(2);\r\n }\r\n show() {\r\n this.modalRef.current?.show();\r\n }\r\n hide() {\r\n this.modalRef.current?.hide();\r\n this.resetData();\r\n }\r\n importData(file, isOverwrite) {\r\n const { requestConfig = {}, importUrl, onCallBacks = {} } = this.props;\r\n let { data = {}, ...config } = requestConfig;\r\n this.setState({\r\n buttonLoading: true,\r\n });\r\n // let formData = {...data}\r\n\r\n nscFile\r\n .importFile(\r\n {\r\n url: importUrl,\r\n data: { ...data, isOverwrite: isOverwrite },\r\n file: file,\r\n },\r\n config\r\n )\r\n .then((res: any) => {\r\n this.setState({\r\n buttonLoading: false,\r\n });\r\n if (res.code == 200) {\r\n // message.success(\"导入成功!\");\r\n\r\n if (res.data?.warnings?.length > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.warnings,\r\n });\r\n }\r\n if (res.data?.errors?.length > 0) {\r\n // message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errors,\r\n });\r\n } else {\r\n message.success(\"导入成功!\");\r\n this.setState({\r\n requestStatus: \"success\",\r\n });\r\n }\r\n onCallBacks?.importCallBack && onCallBacks?.importCallBack(res);\r\n // this.hide();\r\n } else {\r\n message.error(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n renderErrorContent(list) {\r\n return list.map((item, index) => {\r\n if (this.state.requestStatus == \"warning\") {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{\"第\" + item.rowNum + \"行数据重复;\"}</div>\r\n );\r\n } else {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{item.errorMsg}</div>\r\n );\r\n }\r\n });\r\n }\r\n renderResult() {\r\n const { requestStatus, errorList, warnList } = this.state;\r\n const alert_msg_map = {\r\n success: \"导入成功\",\r\n error: \"导入失败\",\r\n warning: \"告警提示\",\r\n };\r\n if (requestStatus) {\r\n if (requestStatus == \"success\") {\r\n return (\r\n <Alert\r\n style={{ marginTop: \"8px\" }}\r\n message={alert_msg_map[requestStatus] ?? \"提示\"}\r\n type={\"success\"}\r\n showIcon\r\n />\r\n );\r\n } else {\r\n return (\r\n <Collapse\r\n expandIconPosition=\"right\"\r\n className={\r\n requestStatus == \"warning\" ? \"content-warning\" : \"content-error\"\r\n }\r\n style={{\r\n backgroundColor:\r\n requestStatus == \"warning\" ? \"#FCE1AB\" : \"#fff2f0\",\r\n border:\r\n requestStatus == \"warning\"\r\n ? \"1px solid #FCE1AB\"\r\n : \"1px solid #FFCCC7\",\r\n borderRadius: \"2px\",\r\n }}\r\n defaultActiveKey={[\"1\"]}\r\n >\r\n <Collapse.Panel\r\n key=\"1\"\r\n header={\r\n <div>\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? (\r\n <ExclamationCircleOutlined />\r\n ) : (\r\n <CloseCircleOutlined />\r\n )}\r\n {alert_msg_map[requestStatus]}\r\n </span>\r\n </div>\r\n }\r\n extra={\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? \"查看\" : \"查看错误\"}\r\n </span>\r\n }\r\n >\r\n <div\r\n style={{\r\n background:\r\n requestStatus == \"warning\" ? \"#FFFDF6\" : \"#fff9f9\",\r\n }}\r\n className=\"content-error__msg\"\r\n >\r\n {this.renderErrorContent(\r\n requestStatus == \"warning\" ? warnList : errorList\r\n )}\r\n </div>\r\n </Collapse.Panel>\r\n </Collapse>\r\n );\r\n }\r\n }\r\n }\r\n resetData() {\r\n this.setState({\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n });\r\n }\r\n render() {\r\n const { file, status, currentStep, requestStatus } = this.state;\r\n const {\r\n downLoadTemplet,\r\n downTempletUrl,\r\n checkData,\r\n checkUrl,\r\n requestConfig,\r\n } = this.props;\r\n const footer = (\r\n <div className=\"footer\">\r\n <NSCButton\r\n onClick={() => {\r\n this.hide();\r\n }}\r\n >\r\n 取消\r\n </NSCButton>\r\n\r\n {status == 1 && this.state.file && (\r\n <NSCButton\r\n onClick={() => {\r\n this.setState({\r\n status: 2,\r\n currentStep: 1,\r\n });\r\n if (checkData) {\r\n nscFile\r\n .importFile({\r\n url: checkUrl,\r\n file: file,\r\n data: requestConfig?.data || {},\r\n })\r\n .then((res: any) => {\r\n if (res.code == 200) {\r\n if (\r\n res.data.errorCount == 0 &&\r\n res.data.duplicateCount == 0\r\n ) {\r\n this.setState({\r\n currentStep: 2,\r\n requestStatus: \"success\",\r\n });\r\n this.importData(file, false);\r\n return;\r\n }\r\n if (res.data.errorCount > 0) {\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errorList,\r\n });\r\n return;\r\n }\r\n if (res.data.duplicateCount > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.duplicateList,\r\n });\r\n return;\r\n }\r\n }\r\n });\r\n } else {\r\n this.importData(file, false);\r\n }\r\n }}\r\n disabled={file ? false : true}\r\n icon={<UploadOutlined />}\r\n style={{ marginLeft: 20 }}\r\n >\r\n 开始上传\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, false);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 不覆盖数据\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, true);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 覆盖数据\r\n </NSCButton>\r\n )}\r\n </div>\r\n );\r\n\r\n return (\r\n <div>\r\n {this.props.children ? (\r\n this.props.children\r\n ) : (\r\n <>\r\n {this.props.showButton && (\r\n <NSCButton\r\n type=\"primary\"\r\n onClick={() => {\r\n this.show();\r\n }}\r\n >\r\n 数据导入\r\n </NSCButton>\r\n )}\r\n </>\r\n )}\r\n\r\n <NscModal\r\n title=\"数据导入\"\r\n width={800}\r\n wrapClassName={\"import-modal\"}\r\n ref={this.modalRef}\r\n footer={footer}\r\n onCancel={() => {\r\n this.hide();\r\n }}\r\n >\r\n <div className=\"content\">\r\n {status == 1 ? (\r\n <div>\r\n <div style={{ display: \"flex\" }}>\r\n <NscUpload\r\n beforeUpload={(file) => {\r\n this.setState({\r\n file,\r\n });\r\n return false;\r\n }}\r\n allowFileSuffix={[\"xls\", \"xlsx\"]}\r\n accept={\".xls,.xlsx\"}\r\n showUploadList={false}\r\n >\r\n <NSCButton\r\n type={\"primary\"}\r\n disabled={file ? true : false}\r\n icon={<FolderOutlined />}\r\n >\r\n 选择文件\r\n </NSCButton>\r\n </NscUpload>\r\n\r\n {downLoadTemplet && (\r\n <NscDownLoad url={downTempletUrl}>\r\n <NSCButton type=\"primary\" style={{ marginLeft: 20 }}>\r\n 模板下载\r\n </NSCButton>\r\n </NscDownLoad>\r\n )}\r\n </div>\r\n <div className=\"upload-tip\">\r\n <div className=\"upload-tip-left\">\r\n <ExclamationCircleOutlined />\r\n </div>\r\n <div className=\"upload-tip-content\">\r\n <div>\r\n 1、支持Excel 2007及以上版本,且每次只能上传一个文件;\r\n </div>\r\n <div>2、导入前先下载模板,并根据模板填写数据;</div>\r\n </div>\r\n </div>\r\n\r\n {file && (\r\n <div className=\"upload-file\">\r\n <div className=\"file-icon\">\r\n <FileIcon type=\"excel\" />\r\n </div>\r\n <div className=\"file-content\">\r\n <div className=\"file-title\">{file.name}</div>\r\n <div className=\"file-desc\">\r\n <span>\r\n 文件大小:{this.fileSizeKb(file.size) + \"KB\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div>\r\n <Steps\r\n current={currentStep}\r\n items={[\r\n {\r\n title: \"数据分析\",\r\n },\r\n {\r\n title: \"数据插入\",\r\n },\r\n ]}\r\n />\r\n <div className={\"result-content\"}>{this.renderResult()}</div>\r\n </div>\r\n )}\r\n </div>\r\n </NscModal>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default NscImportData;\r\n"],"mappings":"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"}
|
package/lib/base/modal/index.js
CHANGED
|
@@ -365,4 +365,4 @@ _defineProperty(NscModal, "success", _Modal.success);
|
|
|
365
365
|
_defineProperty(NscModal, "error", _Modal.error);
|
|
366
366
|
_defineProperty(NscModal, "warning", _Modal.warning);
|
|
367
367
|
_defineProperty(NscModal, "destroyAll", _Modal.destroyAll);
|
|
368
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldFN0b3JhZ2UiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJlIiwiY29uc29sZSIsImxvZyIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsInR5cGUiLCJzZXRTdGF0ZSIsIm1vZGFsVHlwZSIsIm1vZGFsIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNvbnRlbnQiLCJzdGF0ZSIsInZpc2libGUiLCJleHBhbmQiLCJib3VuZHMiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJkcmFnZ2VyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuTWVzc2FnZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNob3ciLCJvcHRpb24iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiaGlkZSIsImdldFJldHVyblZhbHVlIiwicmV0dXJuVmFsdWUiLCJjbG9zZSIsInJlc3VsdCIsImJ1dHRvbkNsb3NlIiwiZm9ybUV4cGFuZCIsIm9uQ2FuY2VsIiwib25CdXR0b25DYW5jZWwiLCJvbkNsb3NlIiwidmFsaWQiLCJjaGFuZ2UiLCJvbk9rIiwiZ2V0UGFyYW1zIiwia2V5Iiwib25TdGFydCIsIl9ldmVudCIsInVpRGF0YSIsIl90aGlzJGRyYWdnbGVSZWYkY3VyciIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJ0YXJnZXRSZWN0IiwiZHJhZ2dsZVJlZiIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ4IiwieSIsInJlbmRlciIsIl90aGlzJHByb3BzIiwiY2xvc2FibGUiLCJva0J1dHRvblByb3BzIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJkcmFnYWJsZSIsImZvb3RlckJ1dHRvbiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1vdW50RWxlbWVudElkIiwiZ2V0Q29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJtb2RhbFJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJkaXNhYmxlZCIsImV2ZW50IiwicmVmIiwidGl0bGUiLCJjbGFzc05hbWUiLCJvbk1vdXNlT3ZlciIsIm9uTW91c2VPdXQiLCJvbkNsaWNrIiwic3R5bGUiLCJtYXJnaW5SaWdodCIsIm1vZGFsQnV0dG9uIiwiZm9vdGVyIiwiX2V4dGVuZHMiLCJiaW5kIiwiaWNvbiIsImNhbmNsZUJ1dHRvblByb3BzIiwiY2FuY2VsVGV4dCIsIm9rVGV4dCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIm1heFdpZHRoIiwid2lkdGgiLCJvbGRQcm9wcyIsIm5ld0RyYXdlclByb3BzIiwiX0RyYXdlciIsIm9wZW4iLCJfTW9kYWwiLCJjZW50ZXJlZCIsImFmdGVyQ2xvc2UiLCJpbmZvIiwic3VjY2VzcyIsImVycm9yIiwid2FybmluZyIsImRlc3Ryb3lBbGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL21vZGFsL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlUmVmLCBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7XHJcbiAgUGx1c0NpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VPdXRsaW5lZCxcclxuICBFeHBhbmRPdXRsaW5lZCxcclxuICBDb21wcmVzc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgQ29uZmlybSBmcm9tIFwiLi9Db25maXJtXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlRGF0YSwgRHJhZ2dhYmxlRXZlbnQgfSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcblxyXG5pbnRlcmZhY2UgZm9ybUV4cGFuZCB7XHJcbiAgY2hhbmdlPzogYm9vbGVhbjtcclxuICB2YWxpZD86IGJvb2xlYW47XHJcbiAgZXhwYW5kPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOc2NNb2RhbFBvcnBzIGV4dGVuZHMgTW9kYWxQcm9wcyB7XHJcbiAgdHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBmb3JtRXhwYW5kPzogZm9ybUV4cGFuZDtcclxuICBvbkJ1dHRvbkNhbmNlbD86IGFueTsgLy/lupXpg6jlj5bmtojmjInpkq7lm57osINcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8v5by55qGG5piv5ZCm55yL5ouW5YqoXHJcbiAgZm9vdGVyQnV0dG9uPzogQXJyYXk8YW55PjsgLy9mb290ZXIg5YW25LuW6Ieq5a6a5LmJ5oyJ6ZKuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxcclxuICBOc2NNb2RhbFBvcnBzICYgRHJhd2VyUHJvcHMsXHJcbiAgYW55XHJcbj4ge1xyXG4gIHN0YXRpYyBjb25maXJtID0gQ29uZmlybTtcclxuICAvLyBzdGF0aWMgY29uZmlybSA9IE1vZGFsLmNvbmZpcm07XHJcbiAgc3RhdGljIGluZm8gPSBNb2RhbC5pbmZvO1xyXG4gIHN0YXRpYyBzdWNjZXNzID0gTW9kYWwuc3VjY2VzcztcclxuICBzdGF0aWMgZXJyb3IgPSBNb2RhbC5lcnJvcjtcclxuICBzdGF0aWMgd2FybmluZyA9IE1vZGFsLndhcm5pbmc7XHJcbiAgc3RhdGljIGRlc3Ryb3lBbGwgPSBNb2RhbC5kZXN0cm95QWxsO1xyXG4gIC8v6L+U5Zue5YC8XHJcbiAgcmV0dXJuVmFsdWUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IG1vZGFsID0gcHJvcHMudHlwZSB8fCBcImF1dG9cIjtcclxuICAgIGxldCBzdG9yZVByZWZpeCA9IGdldFN0b3JhZ2UoXCJzdG9yZS1wcmUta2V5XCIpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZS5jb250ZW50IDogbnVsbDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBtb2RhbFR5cGU6IG1vZGFsID09IFwiYXV0b1wiID8gYXV0b1R5cGUgOiBtb2RhbCxcclxuICAgICAgYm91bmRzOiB7IGxlZnQ6IDAsIHRvcDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9LFxyXG4gICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZHJhZ2dsZVJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgb3B0aW9uOiBhbnkgPSB7XHJcbiAgICAvL+Wbnuiwg+S9nOeUqOWfn1xyXG4gICAgc2NvcGU6IHRoaXMsXHJcbiAgICAvL29wZW7kvKDpgJLov4fmnaXnmoTpobXpnaLlj4LmlbBcclxuICAgIHBhcmFtczoge30sXHJcbiAgICAvL+aYvuekuuS5i+WJjeWbnuiwg1xyXG4gICAgYmVmb3JlUmVuZGVyOiBudWxsLFxyXG4gICAgLy/lhbPpl63kuYvliY3lm57osIPvvIzlpoLmnpxyZXR1cm4gZmFsc2XvvIzkuJTnqpflj6PkuI3lhbPpl61cclxuICAgIGNhbGxiYWNrQmVmb3JlQ2xvc2U6IG51bGwsXHJcbiAgICAvL+WFs+mXreWQjuWbnuiwg++8jOW8guatpeaTjeS9nFxyXG4gICAgY2FsbGJhY2s6IG51bGwsXHJcbiAgICAvL+aYvuekuuS5i+WQjuWbnuiwg1xyXG4gICAgYWZ0ZXJSZW5kZXI6IG51bGwsXHJcbiAgfTtcclxuICAvKipcclxuICAgKiDmuLLmn5PlrozmiJBcclxuICAgKiBAcGFyYW0geyp9IG9wdGlvbiAg5pW05pS55Lyg6YCS5a+56LGhXHJcbiAgICovXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGxldCBkYXRhID0ge30gYXMgYW55O1xyXG4gICAgaWYgKHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZXYuZGF0YSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZUZvcm1UeXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC50eXBlID09IFwibW9kYWxcIiB8fCBwYXlsb2FkLnR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgbW9kYWxUeXBlOiBwYXlsb2FkLnR5cGUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIC8v5pi+56S6XHJcbiAgc2hvdyhvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICBjb25zdCB7IHNjb3BlIH0gPSB0aGlzLm9wdGlvbjtcclxuICAgIGNvbnN0IHsgYmVmb3JlUmVuZGVyLCBhZnRlclJlbmRlciB9ID0gb3B0aW9uO1xyXG4gICAgdGhpcy5vcHRpb24gPSB7IC4uLnRoaXMub3B0aW9uLCAuLi5vcHRpb24gfTtcclxuICAgIHV0aWxzLmNhbGxiYWNrKGJlZm9yZVJlbmRlciwgc2NvcGUpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IHRydWUgfSwgKCkgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgc2NvcGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL+makOiXj1xyXG4gIGhpZGUob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPlumcgOimgei/lOWbnueahOWAvFxyXG4gIGdldFJldHVyblZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmV0dXJuVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlhbPpl63luKblm57osINcclxuICAgKi9cclxuICBjbG9zZShyZXN1bHQ/OiBhbnksIGJ1dHRvbkNsb3NlID0gZmFsc2UpIHtcclxuICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAvLyBjb25zdCB7IGNhbGxiYWNrLCBzY29wZSwgY2FsbGJhY2tCZWZvcmVDbG9zZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGZvcm1FeHBhbmQgPSB7fSwgb25DYW5jZWwsIG9uQnV0dG9uQ2FuY2VsLCBvbkNsb3NlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgLy8gY29uc3QgciA9IHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrQmVmb3JlQ2xvc2UsIHNjb3BlLCBbdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gICAgLy8gaWYgKHIgIT09IGZhbHNlKSB7XHJcbiAgICBjb25zdCB7IGV4cGFuZCA9IGZhbHNlIH0gPSBmb3JtRXhwYW5kO1xyXG4gICAgaWYgKGV4cGFuZCAmJiBmb3JtRXhwYW5kLnZhbGlkICYmIGZvcm1FeHBhbmQuY2hhbmdlKSB7XHJcbiAgICAgIENvbmZpcm0oe1xyXG4gICAgICAgIGNvbnRlbnQ6IFwi5b2T5YmN6K6w5b2V5bey5L+u5pS55bCa5pyq5L+d5a2Y77yM56Gu5a6a6KaB5pS+5byD5L+u5pS55ZCX77yfXCIsXHJcbiAgICAgICAgb25PaygpIHtcclxuICAgICAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgICAgIG9uQnV0dG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgICAgICBvbkNsb3NlICYmIG9uQ2xvc2UocmVzdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgaWYgKGJ1dHRvbkNsb3NlICYmIG9uQnV0dG9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvbkNhbmNlbCAmJiBvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrLCBzY29wZSwgW190aGlzLnJldHVyblZhbHVlXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blj4LmlbDvvIzlpoLmnpxrZXnkuI3kvKDpgJLvvIzkuJTojrflj5blhajpg6hcclxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5XHJcbiAgICovXHJcbiAgZ2V0UGFyYW1zKGtleSkge1xyXG4gICAgaWYgKGtleSkgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtc1trZXldO1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtcztcclxuICB9XHJcbiAgb25TdGFydChfZXZlbnQ6IERyYWdnYWJsZUV2ZW50LCB1aURhdGE6IERyYWdnYWJsZURhdGEpIHtcclxuICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0aGlzLmRyYWdnbGVSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBpZiAoIXRhcmdldFJlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGJvdW5kczoge1xyXG4gICAgICAgIGxlZnQ6IC10YXJnZXRSZWN0LmxlZnQgKyB1aURhdGEueCxcclxuICAgICAgICByaWdodDogY2xpZW50V2lkdGggLSAodGFyZ2V0UmVjdC5yaWdodCAtIHVpRGF0YS54KSxcclxuICAgICAgICB0b3A6IC10YXJnZXRSZWN0LnRvcCArIHVpRGF0YS55LFxyXG4gICAgICAgIGJvdHRvbTogY2xpZW50SGVpZ2h0IC0gKHRhcmdldFJlY3QuYm90dG9tIC0gdWlEYXRhLnkpLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHR5cGUgPSBcIm1vZGFsXCIsXHJcbiAgICAgIGNsb3NhYmxlLFxyXG4gICAgICAvLyB0aXRsZTogb3JndGl0bGUsXHJcbiAgICAgIG9rQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgY2FuY2VsQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybUV4cGFuZCA9IHt9LFxyXG4gICAgICBkcmFnYWJsZSA9IHRydWUsXHJcbiAgICAgIGZvb3RlckJ1dHRvbiA9IFtdLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGxldCBwcm9wczogYW55ID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGxldCB7IG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChkcmFnYWJsZSAmJiB0eXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGVcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtZHJhZ2dlclwiKV06XHJcbiAgICAgICAgICAgIGRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvbnNcIil9PlxyXG4gICAgICAgICAgeyF0aGlzLnN0YXRlLmV4cGFuZCAmJiBmb3JtRXhwYW5kLmV4cGFuZCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXhwYW5kOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeHBhbmRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblJpZ2h0OiAwIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q2xvc2VPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1jb250ZW50XCIpfT5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCB7IG1vZGFsQnV0dG9uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2UuYmluZCh0aGlzLCB7fSwgdHJ1ZSl9XHJcbiAgICAgICAgICBpY29uPXs8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5jYW5jbGVCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLmNhbmNlbFRleHQgPyB0aGlzLnByb3BzLmNhbmNlbFRleHQgOiBcIuWPlua2iFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgey4uLm1vZGFsQnV0dG9uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4ub2tCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5va1RleHQgPyB0aGlzLnByb3BzLm9rVGV4dCA6IFwi5L+d5a2YXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAge2Zvb3RlckJ1dHRvbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyLWJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtpdGVtfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGlmIChmb3JtRXhwYW5kLmV4cGFuZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHN0eWxlOiB7IG1heFdpZHRoOiBcIjEwMHZ3XCIgfSxcclxuICAgICAgICB3aWR0aDogdGhpcy5zdGF0ZS5leHBhbmQgPyBcIjEwMHZ3XCIgOiBwcm9wcy53aWR0aCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RhbFR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICBsZXQgb2xkUHJvcHMgPSB7IC4uLnByb3BzIH07XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQob2xkUHJvcHMsIFtcIm9uT2tcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8RHJhd2VyXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB7Li4ubmV3RHJhd2VyUHJvcHN9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1vZGFsXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb25Paz17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb2tUZXh0PXtcIuehruWumlwifVxyXG4gICAgICAgICAgY2FuY2VsVGV4dD17XCLlj5bmtohcIn1cclxuICAgICAgICAgIGNlbnRlcmVkPXt0cnVlfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5leHBhbmRcclxuICAgICAgICAgICAgICA/IGdldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1hbGxzcmVlblwiKVxyXG4gICAgICAgICAgICAgIDogZ2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNBQVMsRUFBRUMsYUFBYSxRQUFtQixPQUFPO0FBRWxFLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FDRUMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxnQkFBZ0IsUUFDWCxtQkFBbUI7QUFDMUIsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sV0FBVztBQUMvQixPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUUxQixPQUFPQyxTQUFTLE1BQU0saUJBQWlCO0FBQ3ZDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBZ0I1QixlQUFlLE1BQU1DLFFBQVEsU0FBU2hCLGFBQWEsQ0FHakQ7RUFXQWlCLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUNqQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUpkO0lBQUFDLGVBQUEsc0JBQ2MsSUFBSTtJQUFBQSxlQUFBLGtDQWtCTHBCLFNBQVMsQ0FBaUIsQ0FBQztJQUFBb0IsZUFBQSxpQkFFMUI7TUFDWjtNQUNBQyxLQUFLLEVBQUUsSUFBSTtNQUNYO01BQ0FDLE1BQU0sRUFBRSxDQUFDLENBQUM7TUFDVjtNQUNBQyxZQUFZLEVBQUUsSUFBSTtNQUNsQjtNQUNBQyxt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
|
|
368
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldFN0b3JhZ2UiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJlIiwiY29uc29sZSIsImxvZyIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsInR5cGUiLCJzZXRTdGF0ZSIsIm1vZGFsVHlwZSIsIm1vZGFsIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNvbnRlbnQiLCJzdGF0ZSIsInZpc2libGUiLCJleHBhbmQiLCJib3VuZHMiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJkcmFnZ2VyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuTWVzc2FnZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNob3ciLCJvcHRpb24iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiaGlkZSIsImdldFJldHVyblZhbHVlIiwicmV0dXJuVmFsdWUiLCJjbG9zZSIsInJlc3VsdCIsImJ1dHRvbkNsb3NlIiwiZm9ybUV4cGFuZCIsIm9uQ2FuY2VsIiwib25CdXR0b25DYW5jZWwiLCJvbkNsb3NlIiwidmFsaWQiLCJjaGFuZ2UiLCJvbk9rIiwiZ2V0UGFyYW1zIiwia2V5Iiwib25TdGFydCIsIl9ldmVudCIsInVpRGF0YSIsIl90aGlzJGRyYWdnbGVSZWYkY3VyciIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJ0YXJnZXRSZWN0IiwiZHJhZ2dsZVJlZiIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ4IiwieSIsInJlbmRlciIsIl90aGlzJHByb3BzIiwiY2xvc2FibGUiLCJva0J1dHRvblByb3BzIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJkcmFnYWJsZSIsImZvb3RlckJ1dHRvbiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1vdW50RWxlbWVudElkIiwiZ2V0Q29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJtb2RhbFJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJkaXNhYmxlZCIsImV2ZW50IiwicmVmIiwidGl0bGUiLCJjbGFzc05hbWUiLCJvbk1vdXNlT3ZlciIsIm9uTW91c2VPdXQiLCJvbkNsaWNrIiwic3R5bGUiLCJtYXJnaW5SaWdodCIsIm1vZGFsQnV0dG9uIiwiZm9vdGVyIiwiX2V4dGVuZHMiLCJiaW5kIiwiaWNvbiIsImNhbmNsZUJ1dHRvblByb3BzIiwiY2FuY2VsVGV4dCIsIm9rVGV4dCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIm1heFdpZHRoIiwid2lkdGgiLCJvbGRQcm9wcyIsIm5ld0RyYXdlclByb3BzIiwiX0RyYXdlciIsIm9wZW4iLCJfTW9kYWwiLCJjZW50ZXJlZCIsImFmdGVyQ2xvc2UiLCJpbmZvIiwic3VjY2VzcyIsImVycm9yIiwid2FybmluZyIsImRlc3Ryb3lBbGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL21vZGFsL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlUmVmLCBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7XHJcbiAgUGx1c0NpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VPdXRsaW5lZCxcclxuICBFeHBhbmRPdXRsaW5lZCxcclxuICBDb21wcmVzc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgQ29uZmlybSBmcm9tIFwiLi9Db25maXJtXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlRGF0YSwgRHJhZ2dhYmxlRXZlbnQgfSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcblxyXG5pbnRlcmZhY2UgZm9ybUV4cGFuZCB7XHJcbiAgY2hhbmdlPzogYm9vbGVhbjtcclxuICB2YWxpZD86IGJvb2xlYW47XHJcbiAgZXhwYW5kPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOc2NNb2RhbFBvcnBzIGV4dGVuZHMgTW9kYWxQcm9wcyB7XHJcbiAgdHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBmb3JtRXhwYW5kPzogZm9ybUV4cGFuZDtcclxuICBvbkJ1dHRvbkNhbmNlbD86IGFueTsgLy/lupXpg6jlj5bmtojmjInpkq7lm57osINcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8v5by55qGG5piv5ZCm55yL5ouW5YqoXHJcbiAgZm9vdGVyQnV0dG9uPzogQXJyYXk8YW55PjsgLy9mb290ZXIg5YW25LuW6Ieq5a6a5LmJ5oyJ6ZKuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxcclxuICBOc2NNb2RhbFBvcnBzICYgRHJhd2VyUHJvcHMsXHJcbiAgYW55XHJcbj4ge1xyXG4gIHN0YXRpYyBjb25maXJtID0gQ29uZmlybTtcclxuICAvLyBzdGF0aWMgY29uZmlybSA9IE1vZGFsLmNvbmZpcm07XHJcbiAgc3RhdGljIGluZm8gPSBNb2RhbC5pbmZvO1xyXG4gIHN0YXRpYyBzdWNjZXNzID0gTW9kYWwuc3VjY2VzcztcclxuICBzdGF0aWMgZXJyb3IgPSBNb2RhbC5lcnJvcjtcclxuICBzdGF0aWMgd2FybmluZyA9IE1vZGFsLndhcm5pbmc7XHJcbiAgc3RhdGljIGRlc3Ryb3lBbGwgPSBNb2RhbC5kZXN0cm95QWxsO1xyXG4gIC8v6L+U5Zue5YC8XHJcbiAgcmV0dXJuVmFsdWUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IG1vZGFsID0gcHJvcHMudHlwZSB8fCBcImF1dG9cIjtcclxuICAgIGxldCBzdG9yZVByZWZpeCA9IGdldFN0b3JhZ2UoXCJzdG9yZS1wcmUta2V5XCIpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZS5jb250ZW50IDogbnVsbDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBtb2RhbFR5cGU6IG1vZGFsID09IFwiYXV0b1wiID8gYXV0b1R5cGUgOiBtb2RhbCxcclxuICAgICAgYm91bmRzOiB7IGxlZnQ6IDAsIHRvcDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9LFxyXG4gICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZHJhZ2dsZVJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgb3B0aW9uOiBhbnkgPSB7XHJcbiAgICAvL+Wbnuiwg+S9nOeUqOWfn1xyXG4gICAgc2NvcGU6IHRoaXMsXHJcbiAgICAvL29wZW7kvKDpgJLov4fmnaXnmoTpobXpnaLlj4LmlbBcclxuICAgIHBhcmFtczoge30sXHJcbiAgICAvL+aYvuekuuS5i+WJjeWbnuiwg1xyXG4gICAgYmVmb3JlUmVuZGVyOiBudWxsLFxyXG4gICAgLy/lhbPpl63kuYvliY3lm57osIPvvIzlpoLmnpxyZXR1cm4gZmFsc2XvvIzkuJTnqpflj6PkuI3lhbPpl61cclxuICAgIGNhbGxiYWNrQmVmb3JlQ2xvc2U6IG51bGwsXHJcbiAgICAvL+WFs+mXreWQjuWbnuiwg++8jOW8guatpeaTjeS9nFxyXG4gICAgY2FsbGJhY2s6IG51bGwsXHJcbiAgICAvL+aYvuekuuS5i+WQjuWbnuiwg1xyXG4gICAgYWZ0ZXJSZW5kZXI6IG51bGwsXHJcbiAgfTtcclxuICAvKipcclxuICAgKiDmuLLmn5PlrozmiJBcclxuICAgKiBAcGFyYW0geyp9IG9wdGlvbiAg5pW05pS55Lyg6YCS5a+56LGhXHJcbiAgICovXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGxldCBkYXRhID0ge30gYXMgYW55O1xyXG4gICAgaWYgKHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZXYuZGF0YSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZUZvcm1UeXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC50eXBlID09IFwibW9kYWxcIiB8fCBwYXlsb2FkLnR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgbW9kYWxUeXBlOiBwYXlsb2FkLnR5cGUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIC8v5pi+56S6XHJcbiAgc2hvdyhvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICBjb25zdCB7IHNjb3BlIH0gPSB0aGlzLm9wdGlvbjtcclxuICAgIGNvbnN0IHsgYmVmb3JlUmVuZGVyLCBhZnRlclJlbmRlciB9ID0gb3B0aW9uO1xyXG4gICAgdGhpcy5vcHRpb24gPSB7IC4uLnRoaXMub3B0aW9uLCAuLi5vcHRpb24gfTtcclxuICAgIHV0aWxzLmNhbGxiYWNrKGJlZm9yZVJlbmRlciwgc2NvcGUpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IHRydWUgfSwgKCkgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgc2NvcGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL+makOiXj1xyXG4gIGhpZGUob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPlumcgOimgei/lOWbnueahOWAvFxyXG4gIGdldFJldHVyblZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmV0dXJuVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlhbPpl63luKblm57osINcclxuICAgKi9cclxuICBjbG9zZShyZXN1bHQ/OiBhbnksIGJ1dHRvbkNsb3NlID0gZmFsc2UpIHtcclxuICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAvLyBjb25zdCB7IGNhbGxiYWNrLCBzY29wZSwgY2FsbGJhY2tCZWZvcmVDbG9zZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGZvcm1FeHBhbmQgPSB7fSwgb25DYW5jZWwsIG9uQnV0dG9uQ2FuY2VsLCBvbkNsb3NlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgLy8gY29uc3QgciA9IHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrQmVmb3JlQ2xvc2UsIHNjb3BlLCBbdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gICAgLy8gaWYgKHIgIT09IGZhbHNlKSB7XHJcbiAgICBjb25zdCB7IGV4cGFuZCA9IGZhbHNlIH0gPSBmb3JtRXhwYW5kO1xyXG4gICAgaWYgKGV4cGFuZCAmJiBmb3JtRXhwYW5kLnZhbGlkICYmIGZvcm1FeHBhbmQuY2hhbmdlKSB7XHJcbiAgICAgIENvbmZpcm0oe1xyXG4gICAgICAgIGNvbnRlbnQ6IFwi5b2T5YmN6K6w5b2V5bey5L+u5pS55bCa5pyq5L+d5a2Y77yM56Gu5a6a6KaB5pS+5byD5L+u5pS55ZCX77yfXCIsXHJcbiAgICAgICAgb25PaygpIHtcclxuICAgICAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgICAgIG9uQnV0dG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgICAgICBvbkNsb3NlICYmIG9uQ2xvc2UocmVzdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgaWYgKGJ1dHRvbkNsb3NlICYmIG9uQnV0dG9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvbkNhbmNlbCAmJiBvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrLCBzY29wZSwgW190aGlzLnJldHVyblZhbHVlXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blj4LmlbDvvIzlpoLmnpxrZXnkuI3kvKDpgJLvvIzkuJTojrflj5blhajpg6hcclxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5XHJcbiAgICovXHJcbiAgZ2V0UGFyYW1zKGtleSkge1xyXG4gICAgaWYgKGtleSkgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtc1trZXldO1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtcztcclxuICB9XHJcbiAgb25TdGFydChfZXZlbnQ6IERyYWdnYWJsZUV2ZW50LCB1aURhdGE6IERyYWdnYWJsZURhdGEpIHtcclxuICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0aGlzLmRyYWdnbGVSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBpZiAoIXRhcmdldFJlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGJvdW5kczoge1xyXG4gICAgICAgIGxlZnQ6IC10YXJnZXRSZWN0LmxlZnQgKyB1aURhdGEueCxcclxuICAgICAgICByaWdodDogY2xpZW50V2lkdGggLSAodGFyZ2V0UmVjdC5yaWdodCAtIHVpRGF0YS54KSxcclxuICAgICAgICB0b3A6IC10YXJnZXRSZWN0LnRvcCArIHVpRGF0YS55LFxyXG4gICAgICAgIGJvdHRvbTogY2xpZW50SGVpZ2h0IC0gKHRhcmdldFJlY3QuYm90dG9tIC0gdWlEYXRhLnkpLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHR5cGUgPSBcIm1vZGFsXCIsXHJcbiAgICAgIGNsb3NhYmxlLFxyXG4gICAgICAvLyB0aXRsZTogb3JndGl0bGUsXHJcbiAgICAgIG9rQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgY2FuY2VsQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybUV4cGFuZCA9IHt9LFxyXG4gICAgICBkcmFnYWJsZSA9IHRydWUsXHJcbiAgICAgIGZvb3RlckJ1dHRvbiA9IFtdLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzOiBhbnkgPSB7IC4uLnBhcmFtcyB9O1xyXG4gICAgbGV0IHsgbW91bnRFbGVtZW50SWQgfSA9IGNvbmZpZygpO1xyXG4gICAgaWYgKG1vdW50RWxlbWVudElkKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGdldENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIG1vZGFsUmVuZGVyOiAobW9kYWwpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxEcmFnZ2FibGVcclxuICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5kcmFnZ2VyfVxyXG4gICAgICAgICAgICAgIGJvdW5kcz17dGhpcy5zdGF0ZS5ib3VuZHN9XHJcbiAgICAgICAgICAgICAgb25TdGFydD17KGV2ZW50LCB1aURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdGFydChldmVudCwgdWlEYXRhKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiByZWY9e3RoaXMuZHJhZ2dsZVJlZn0+e21vZGFsfTwvZGl2PlxyXG4gICAgICAgICAgICA8L0RyYWdnYWJsZT5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0aXRsZSA9IChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZVwiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1kcmFnZ2VyXCIpXTpcclxuICAgICAgICAgICAgZHJhZ2FibGUgJiYgdHlwZSA9PSBcIm1vZGFsXCIsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmRyYWdnZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZHJhZ2dlcjogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH19XHJcbiAgICAgICAgb25Nb3VzZU91dD17KCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRyYWdnZXI6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uc1wiKX0+XHJcbiAgICAgICAgICB7IXRoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEV4cGFuZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCAmJiBmb3JtRXhwYW5kLmV4cGFuZCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXhwYW5kOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLXRpdGxlLWljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q29tcHJlc3NPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7Y2xvc2FibGUgIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLXRpdGxlLWljb25cIil9XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxDbG9zZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLXRpdGxlLWNvbnRlbnRcIil9PlxyXG4gICAgICAgICAge3RoaXMucHJvcHMudGl0bGV9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGNvbnN0IHsgbW9kYWxCdXR0b24gfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgZm9vdGVyID0gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3RlclwiKX0+XHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgb25DbGljaz17dGhpcy5jbG9zZS5iaW5kKHRoaXMsIHt9LCB0cnVlKX1cclxuICAgICAgICAgIGljb249ezxDbG9zZUNpcmNsZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgey4uLm1vZGFsQnV0dG9uLmNhbmNsZUJ1dHRvblByb3BzfVxyXG4gICAgICAgICAgey4uLmNhbmNlbEJ1dHRvblByb3BzfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyLWJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMuY2FuY2VsVGV4dCA/IHRoaXMucHJvcHMuY2FuY2VsVGV4dCA6IFwi5Y+W5raIXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBwcm9wcy5vbk9rICYmIHByb3BzLm9uT2soKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c0NpcmNsZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyLWJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICB7Li4ubW9kYWxCdXR0b24ub2tCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5va0J1dHRvblByb3BzfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLm9rVGV4dCA/IHRoaXMucHJvcHMub2tUZXh0IDogXCLkv53lrZhcIn1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICB7Zm9vdGVyQnV0dG9uLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXItYnV0dG9uLW1hcmdpblwiKX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgaWYgKGZvcm1FeHBhbmQuZXhwYW5kKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgICAgc3R5bGU6IHsgbWF4V2lkdGg6IFwiMTAwdndcIiB9LFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLnN0YXRlLmV4cGFuZCA/IFwiMTAwdndcIiA6IHByb3BzLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZm9vdGVyOiBmb290ZXIsXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN0YXRlLm1vZGFsVHlwZSA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGxldCBvbGRQcm9wcyA9IHsgLi4ucHJvcHMgfTtcclxuICAgICAgbGV0IG5ld0RyYXdlclByb3BzID0gb21pdChvbGRQcm9wcywgW1wib25Pa1wiLCBcIm9rQnV0dG9uUHJvcHNcIl0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEcmF3ZXJcclxuICAgICAgICAgIG9wZW49e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHsuLi5uZXdEcmF3ZXJQcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWxcclxuICAgICAgICAgIG9wZW49e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBvbk9rPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBva1RleHQ9e1wi56Gu5a6aXCJ9XHJcbiAgICAgICAgICBjYW5jZWxUZXh0PXtcIuWPlua2iFwifVxyXG4gICAgICAgICAgY2VudGVyZWQ9e3RydWV9XHJcbiAgICAgICAgICBjbGFzc05hbWU9e1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLmV4cGFuZFxyXG4gICAgICAgICAgICAgID8gZ2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWFsbHNyZWVuXCIpXHJcbiAgICAgICAgICAgICAgOiBnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWxcIilcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIHRpdGxlPXtmb3JtRXhwYW5kID8gdGl0bGUgOiB0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgYWZ0ZXJDbG9zZT17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxhQUFhLFFBQW1CLE9BQU87QUFFbEUsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxTQUNFQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGdCQUFnQixRQUNYLG1CQUFtQjtBQUMxQixPQUFPQyxNQUFNLE1BQU0sV0FBVztBQUM5QixTQUFTQyxPQUFPLFFBQVEsYUFBYTtBQUNyQyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLE9BQU9DLE9BQU8sTUFBTSxXQUFXO0FBQy9CLE9BQU9DLElBQUksTUFBTSxTQUFTO0FBRTFCLE9BQU9DLFNBQVMsTUFBTSxpQkFBaUI7QUFDdkMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFnQjVCLGVBQWUsTUFBTUMsUUFBUSxTQUFTaEIsYUFBYSxDQUdqRDtFQVdBaUIsV0FBV0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQ2pCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBSmQ7SUFBQUMsZUFBQSxzQkFDYyxJQUFJO0lBQUFBLGVBQUEsa0NBa0JMcEIsU0FBUyxDQUFpQixDQUFDO0lBQUFvQixlQUFBLGlCQUUxQjtNQUNaO01BQ0FDLEtBQUssRUFBRSxJQUFJO01BQ1g7TUFDQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztNQUNWO01BQ0FDLFlBQVksRUFBRSxJQUFJO01BQ2xCO01BQ0FDLG1CQUFt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
|