nsc-react-component 4.2.5 → 4.2.7
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/chart/index.js +1 -2
- package/lib/base/chart/index.js.map +1 -1
- package/lib/base/importData/index.js +4 -3
- package/lib/base/importData/index.js.map +1 -1
- package/lib/page/BasePage/index.js +4 -4
- package/lib/page/BasePage/index.js.map +1 -1
- package/lib/page/FormPage/index.js +13 -17
- package/lib/page/FormPage/index.js.map +1 -1
- package/lib/page/SettingTable/index.js +4 -6
- package/lib/page/SettingTable/index.js.map +1 -1
- package/package.json +1 -1
package/lib/base/chart/index.js
CHANGED
|
@@ -204,7 +204,6 @@ class NscChart extends PureComponent {
|
|
|
204
204
|
} else if (isObject(newDatas)) {
|
|
205
205
|
dataMap = newDatas;
|
|
206
206
|
}
|
|
207
|
-
console.log('newDatas---', newDatas);
|
|
208
207
|
newOption.xAxis = this.objectConversion(newOption.xAxis, newDatas, dataMap);
|
|
209
208
|
newOption.yAxis = this.objectConversion(newOption.yAxis, newDatas, dataMap);
|
|
210
209
|
newOption.series = this.objectConversion(newOption.series, newDatas, dataMap);
|
|
@@ -244,4 +243,4 @@ class NscChart extends PureComponent {
|
|
|
244
243
|
}
|
|
245
244
|
}
|
|
246
245
|
export default NscChart;
|
|
247
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImRhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9uIiwib3B0aW9ucyIsImF1dG9Mb2FkIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJpc0ZpcnN0IiwiaW5pdCIsImRhdGFDaGFuZ2VkIiwiY29tcG9uZW50RGlkTW91bnQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZVNldENoYXJ0IiwiaXNTdHJpbmciLCJ2IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2hhcnRSZXNpemUiLCJiaW5kIiwiaXNSZXBsYWNlIiwidGVzdCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJkYXRhQ29udmVyc2lvbiIsImRhdGFzIiwiZGF0YU1hcCIsInJlc3VsdCIsIm1hcCIsIml0ZW0iLCJ2YWx1ZSIsInRlbXBPYmoiLCJrZXkiLCJwdXNoIiwib2JqZWN0Q29udmVyc2lvbiIsIm9iaiIsIl9teUNoYXJ0JGdldFpyIiwiX215Q2hhcnQkZ2V0WnIyIiwiT25DbGljayIsIk9uWnJDbGljayIsInN0YXRlIiwibmV3RGF0YXMiLCJuZXdPcHRpb24iLCJjb25zb2xlIiwibG9nIiwieEF4aXMiLCJ5QXhpcyIsInNlcmllcyIsIm15Q2hhcnQiLCJjaGFydFJlZiIsImN1cnJlbnQiLCJjbGVhciIsIm9mZiIsImdldFpyIiwic2V0T3B0aW9uIiwib24iLCJwYXJhbXMiLCJyZXNpemUiLCJhZGRFdmVudExpc3RlbmVyIiwicmVuZGVyIiwid2lkdGgiLCJoZWlnaHQiLCJib3hTdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInJlZiIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9jaGFydC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgZWNoYXJ0cyBmcm9tIFwiZWNoYXJ0c1wiO1xyXG5pbXBvcnQgeyBFQ2hhcnRzIH0gZnJvbSBcImVjaGFydHMvbGliL2VjaGFydHNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7IHB4MnZ3IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmludGVyZmFjZSBDaGFydFByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgb3B0aW9uOiBhbnk7XHJcbiAgZGF0YT86IEFycmF5PE9iamVjdD4gfCBPYmplY3Q7XHJcbiAgd2lkdGg6IG51bWJlciB8IHN0cmluZzsgLy/lm77ooajlrr3luqZcclxuICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZzsgLy/lm77ooajplb/luqZcclxuICBhdXRvTG9hZD86IGJvb2xlYW47IC8v5pWw5o2u5pS55Y+Y77yM6Ieq5Yqo5Yi35paw5Zu+6KGoLOm7mOiupHRydWVcclxuICBPbkNsaWNrPzogKHBhcmFtczogYW55LCBlPzogYW55KSA9PiB2b2lkOyAvL+WbvuihqOeCueWHu+S6i+S7tlxyXG4gIE9uWnJDbGljaz86IChwYXJhbXM6IGFueSwgZT86IGFueSkgPT4gdm9pZDsgLy/lm77ooajngrnlh7vkuovku7ZcclxuICBbcHJvTmFtZXM6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLy9kYXRh56S65L6LXHJcbi8qKlxyXG4g5pWw57uE77yaXHJcbiBkYXRhPVt7bmFtZTonMeaciCcsdmFsdWU6MjB9LHtuYW1lOicy5pyIJyx2YWx1ZToxMH0se25hbWU6JzPmnIgnLHZhbHVlOjI1fV1cclxuIOWvueixoVxyXG4gZGF0YT17bmFtZTpbJzHmnIgnLCcy5pyIJywnM+aciCddLHZhbHVlOlsyMCwzMCw0MF19XHJcbiAqL1xyXG5jbGFzcyBOc2NDaGFydCBleHRlbmRzIFB1cmVDb21wb25lbnQ8Q2hhcnRQcm9wcz4ge1xyXG4gIGNoYXJ0UmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xyXG4gIG15Q2hhcnQ6IEVDaGFydHMgfCBudWxsID0gbnVsbDtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBudWxsLFxyXG4gIH07XHJcbiAgaXNGaXJzdCA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIG9wdGlvbjogb3B0aW9ucyxcclxuICAgICAgYXV0b0xvYWQgPSB0cnVlLFxyXG4gICAgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgeyB1cmwsIGxpc3RlbmVyczogbGlzdGVuZXJzUG9wcyA9IHt9LCAuLi5zdG9yZXMgfSA9IHN0b3JlO1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgWRhdGHjgIFvcHRpb27kuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoX3RoaXMuaXNGaXJzdCAmJiBhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaXNGaXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYXV0b0xvYWQpIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmluaXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh1cmwgJiYgZGF0YSA9PSBudWxsKSB7XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGF1dG9Mb2FkID0gdHJ1ZSwgc3RvcmUsIG9wdGlvbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChkYXRhICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSBlbHNlIGlmICghZGF0YSAmJiAhc3RvcmU/LnVybCAmJiBvcHRpb24pIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PENoYXJ0UHJvcHM+LFxyXG4gICAgcHJldlN0YXRlOiBSZWFkb25seTx7fT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBhdXRvTG9hZCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoYXV0b0xvYWQpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHByZXZQcm9wcy5kYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5kYXRhKSkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZXZQcm9wcy5vcHRpb24pICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLm9wdGlvbilcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlU2V0Q2hhcnQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgaXNTdHJpbmcodikge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiO1xyXG4gIH1cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuaGFuZGxlQ2hhcnRSZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBpc1JlcGxhY2Uodikge1xyXG4gICAgcmV0dXJuIC9eey4qfSQvZ2kudGVzdCh2KTtcclxuICB9XHJcbiAgcmVwbGFjZSh2KSB7XHJcbiAgICByZXR1cm4gdi5zdWJzdHJpbmcoMSwgdi5sZW5ndGggLSAxKTtcclxuICB9XHJcblxyXG4gIGRhdGFDb252ZXJzaW9uKGRhdGEsIGRhdGFzLCBkYXRhTWFwKSB7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgaWYgKHRoaXMuaXNTdHJpbmcoZGF0YSkgJiYgdGhpcy5pc1JlcGxhY2UoZGF0YSkpIHtcclxuICAgICAgICByZXN1bHQgPSBkYXRhTWFwW3RoaXMucmVwbGFjZShkYXRhKV07XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdiA9IGl0ZW0/LnZhbHVlIHx8IG51bGw7XHJcbiAgICAgICAgICBpZiAodiAmJiB0aGlzLmlzUmVwbGFjZSh2KSkge1xyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gdGhpcy5kYXRhQ29udmVyc2lvbih2LCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmVzdWx0ID0gZGF0YTtcclxuICAgICAgfSBlbHNlIGlmIChpc09iamVjdChkYXRhKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIGlmIChpc0FycmF5KGRhdGFzKSkge1xyXG4gICAgICAgICAgZGF0YXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciB0ZW1wT2JqID0ge307XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBpdGVtKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHYgPSBpdGVtW2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaXNSZXBsYWNlKHYpKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wT2JqW2tleV0gPSBpdGVtW3RoaXMucmVwbGFjZSh2KV07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRlbXBPYmpba2V5XSA9IHY7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRlbXBPYmopO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICBvYmplY3RDb252ZXJzaW9uKG9iaiwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCB0ZW1wT2JqOiBhbnk7XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIGlmIChpc0FycmF5KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gWy4uLm9ial07XHJcbiAgICAgICAgdGVtcE9iai5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGlmIChpdGVtLmRhdGEpIHtcclxuICAgICAgICAgICAgaXRlbS5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbihpdGVtLmRhdGEsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU3RyaW5nKG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gb2JqO1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iaiwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0geyAuLi5vYmogfTtcclxuICAgICAgICB0ZW1wT2JqLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHRlbXBPYmouZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVtcE9iajtcclxuICB9XHJcbiAgaW5pdCgpIHtcclxuICAgIGNvbnN0IHsgb3B0aW9uLCBkYXRhLCBPbkNsaWNrLCBPblpyQ2xpY2sgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgZGF0YU1hcDogYW55ID0ge307XHJcbiAgICBjb25zdCBuZXdEYXRhcyA9IGRhdGEgfHwgZGF0YVNvdXJjZTtcclxuICAgXHJcbiAgICBsZXQgbmV3T3B0aW9uOiBhbnkgPSB7IC4uLm9wdGlvbiB9O1xyXG4gICAgaWYgKGlzQXJyYXkobmV3RGF0YXMpKSB7XHJcbiAgICAgIG5ld0RhdGFzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBpdGVtKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YU1hcFtrZXldID09IG51bGwpIHtcclxuICAgICAgICAgICAgZGF0YU1hcFtrZXldID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhTWFwW2tleV0ucHVzaChpdGVtW2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG5ld0RhdGFzKSkge1xyXG4gICAgICBkYXRhTWFwID0gbmV3RGF0YXM7XHJcbiAgICB9XHJcbiAgICAgY29uc29sZS5sb2coJ25ld0RhdGFzLS0tJyxuZXdEYXRhcylcclxuICAgIG5ld09wdGlvbi54QXhpcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihuZXdPcHRpb24ueEF4aXMsIG5ld0RhdGFzLCBkYXRhTWFwKTtcclxuICAgIG5ld09wdGlvbi55QXhpcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihuZXdPcHRpb24ueUF4aXMsIG5ld0RhdGFzLCBkYXRhTWFwKTtcclxuICAgIG5ld09wdGlvbi5zZXJpZXMgPSB0aGlzLm9iamVjdENvbnZlcnNpb24oXHJcbiAgICAgIG5ld09wdGlvbi5zZXJpZXMsXHJcbiAgICAgIG5ld0RhdGFzLFxyXG4gICAgICBkYXRhTWFwXHJcbiAgICApO1xyXG4gICAgY29uc3QgbXlDaGFydCA9ICh0aGlzLm15Q2hhcnQgPSBlY2hhcnRzLmluaXQoXHJcbiAgICAgIHRoaXMuY2hhcnRSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudFxyXG4gICAgKSk7IC8v5Yid5aeL5YyWZWNoYXJ0c++8jOmAmui/h3JlZuWxnuaAp+iOt+WPlmRvbVxyXG4gICAgbXlDaGFydC5jbGVhcigpO1xyXG4gICAgbXlDaGFydC5vZmYoXCJjbGlja1wiKTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydC5zZXRPcHRpb24obmV3T3B0aW9uKTtcclxuICAgIG15Q2hhcnQub24oXCJjbGlja1wiLCBmdW5jdGlvbiAocGFyYW1zKSB7XHJcbiAgICAgIE9uQ2xpY2sgJiYgT25DbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBteUNoYXJ0Py5nZXRacigpPy5vbihcImNsaWNrXCIsIChwYXJhbXMpID0+IHtcclxuICAgICAgT25ackNsaWNrICYmIE9uWnJDbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBteUNoYXJ0LnJlc2l6ZSgpO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYXJ0UmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQucmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBib3hTdHlsZSA9IHtcclxuICAgICAgd2lkdGg6IHR5cGVvZiB3aWR0aCA9PSBcIm51bWJlclwiID8gcHgydncod2lkdGgpIDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogdHlwZW9mIGhlaWdodCA9PSBcIm51bWJlclwiID8gcHgydncoaGVpZ2h0KSA6IGhlaWdodCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gPGRpdiBzdHlsZT17Ym94U3R5bGV9IHJlZj17dGhpcy5jaGFydFJlZn0gaWQ9XCJuc2NfY2hhcnRzXCI+PC9kaXY+O1xyXG4gIH1cclxufVxy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
|
|
246
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImRhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9uIiwib3B0aW9ucyIsImF1dG9Mb2FkIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJpc0ZpcnN0IiwiaW5pdCIsImRhdGFDaGFuZ2VkIiwiY29tcG9uZW50RGlkTW91bnQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZVNldENoYXJ0IiwiaXNTdHJpbmciLCJ2IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2hhcnRSZXNpemUiLCJiaW5kIiwiaXNSZXBsYWNlIiwidGVzdCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJkYXRhQ29udmVyc2lvbiIsImRhdGFzIiwiZGF0YU1hcCIsInJlc3VsdCIsIm1hcCIsIml0ZW0iLCJ2YWx1ZSIsInRlbXBPYmoiLCJrZXkiLCJwdXNoIiwib2JqZWN0Q29udmVyc2lvbiIsIm9iaiIsIl9teUNoYXJ0JGdldFpyIiwiX215Q2hhcnQkZ2V0WnIyIiwiT25DbGljayIsIk9uWnJDbGljayIsInN0YXRlIiwibmV3RGF0YXMiLCJuZXdPcHRpb24iLCJ4QXhpcyIsInlBeGlzIiwic2VyaWVzIiwibXlDaGFydCIsImNoYXJ0UmVmIiwiY3VycmVudCIsImNsZWFyIiwib2ZmIiwiZ2V0WnIiLCJzZXRPcHRpb24iLCJvbiIsInBhcmFtcyIsInJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW5kZXIiLCJ3aWR0aCIsImhlaWdodCIsImJveFN0eWxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwicmVmIiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL2NoYXJ0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gXCJlY2hhcnRzXCI7XHJcbmltcG9ydCB7IEVDaGFydHMgfSBmcm9tIFwiZWNoYXJ0cy9saWIvZWNoYXJ0c1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHsgcHgydncgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNPYmplY3QgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW50ZXJmYWNlIENoYXJ0UHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBvcHRpb246IGFueTtcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PiB8IE9iamVjdDtcclxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOWuveW6plxyXG4gIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOmVv+W6plxyXG4gIGF1dG9Mb2FkPzogYm9vbGVhbjsgLy/mlbDmja7mlLnlj5jvvIzoh6rliqjliLfmlrDlm77ooags6buY6K6kdHJ1ZVxyXG4gIE9uQ2xpY2s/OiAocGFyYW1zOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7IC8v5Zu+6KGo54K55Ye75LqL5Lu2XHJcbiAgT25ackNsaWNrPzogKHBhcmFtczogYW55LCBlPzogYW55KSA9PiB2b2lkOyAvL+WbvuihqOeCueWHu+S6i+S7tlxyXG4gIFtwcm9OYW1lczogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vL2RhdGHnpLrkvotcclxuLyoqXHJcbiDmlbDnu4TvvJpcclxuIGRhdGE9W3tuYW1lOicx5pyIJyx2YWx1ZToyMH0se25hbWU6JzLmnIgnLHZhbHVlOjEwfSx7bmFtZTonM+aciCcsdmFsdWU6MjV9XVxyXG4g5a+56LGhXHJcbiBkYXRhPXtuYW1lOlsnMeaciCcsJzLmnIgnLCcz5pyIJ10sdmFsdWU6WzIwLDMwLDQwXX1cclxuICovXHJcbmNsYXNzIE5zY0NoYXJ0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxDaGFydFByb3BzPiB7XHJcbiAgY2hhcnRSZWYgPSBSZWFjdC5jcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcbiAgbXlDaGFydDogRUNoYXJ0cyB8IG51bGwgPSBudWxsO1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IG51bGwsXHJcbiAgfTtcclxuICBpc0ZpcnN0ID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9uOiBvcHRpb25zLFxyXG4gICAgICBhdXRvTG9hZCA9IHRydWUsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7IHVybCwgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sIC4uLnN0b3JlcyB9ID0gc3RvcmU7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBZGF0YeOAgW9wdGlvbuS4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChfdGhpcy5pc0ZpcnN0ICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pc0ZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHVybCAmJiBkYXRhID09IG51bGwpIHtcclxuICAgICAgICBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBhdXRvTG9hZDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgYXV0b0xvYWQgPSB0cnVlLCBzdG9yZSwgb3B0aW9uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKGRhdGEgJiYgYXV0b0xvYWQpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9IGVsc2UgaWYgKCFkYXRhICYmICFzdG9yZT8udXJsICYmIG9wdGlvbikge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8Q2hhcnRQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PHt9PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGF1dG9Mb2FkID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLmRhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLm9wdGlvbikgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMub3B0aW9uKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVTZXRDaGFydCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBpc1N0cmluZyh2KSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCI7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGlzUmVwbGFjZSh2KSB7XHJcbiAgICByZXR1cm4gL157Lip9JC9naS50ZXN0KHYpO1xyXG4gIH1cclxuICByZXBsYWNlKHYpIHtcclxuICAgIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0YUNvbnZlcnNpb24oZGF0YSwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pc1N0cmluZyhkYXRhKSAmJiB0aGlzLmlzUmVwbGFjZShkYXRhKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGFNYXBbdGhpcy5yZXBsYWNlKGRhdGEpXTtcclxuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbT8udmFsdWUgfHwgbnVsbDtcclxuICAgICAgICAgIGlmICh2ICYmIHRoaXMuaXNSZXBsYWNlKHYpKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHYsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQgPSBkYXRhO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gW107XHJcbiAgICAgICAgaWYgKGlzQXJyYXkoZGF0YXMpKSB7XHJcbiAgICAgICAgICBkYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgdmFyIHRlbXBPYmogPSB7fTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIGl0ZW0pIHtcclxuICAgICAgICAgICAgICBsZXQgdiA9IGl0ZW1ba2V5XTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlcGxhY2UodikpIHtcclxuICAgICAgICAgICAgICAgIHRlbXBPYmpba2V5XSA9IGl0ZW1bdGhpcy5yZXBsYWNlKHYpXTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gdjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzdWx0LnB1c2godGVtcE9iaik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gIG9iamVjdENvbnZlcnNpb24ob2JqLCBkYXRhcywgZGF0YU1hcCkge1xyXG4gICAgbGV0IHRlbXBPYmo6IGFueTtcclxuICAgIGlmIChvYmopIHtcclxuICAgICAgaWYgKGlzQXJyYXkob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBbLi4ub2JqXTtcclxuICAgICAgICB0ZW1wT2JqLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uZGF0YSkge1xyXG4gICAgICAgICAgICBpdGVtLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKGl0ZW0uZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdHJpbmcob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBvYmo7XHJcbiAgICAgICAgdGVtcE9iai5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbih0ZW1wT2JqLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSB7IC4uLm9iaiB9O1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iai5kYXRhLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0ZW1wT2JqO1xyXG4gIH1cclxuICBpbml0KCkge1xyXG4gICAgY29uc3QgeyBvcHRpb24sIGRhdGEsIE9uQ2xpY2ssIE9uWnJDbGljayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBkYXRhTWFwOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IG5ld0RhdGFzID0gZGF0YSB8fCBkYXRhU291cmNlO1xyXG4gICBcclxuICAgIGxldCBuZXdPcHRpb246IGFueSA9IHsgLi4ub3B0aW9uIH07XHJcbiAgICBpZiAoaXNBcnJheShuZXdEYXRhcykpIHtcclxuICAgICAgbmV3RGF0YXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQga2V5IGluIGl0ZW0pIHtcclxuICAgICAgICAgIGlmIChkYXRhTWFwW2tleV0gPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBkYXRhTWFwW2tleV0gPSBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRhdGFNYXBba2V5XS5wdXNoKGl0ZW1ba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QobmV3RGF0YXMpKSB7XHJcbiAgICAgIGRhdGFNYXAgPSBuZXdEYXRhcztcclxuICAgIH1cclxuICAgIG5ld09wdGlvbi54QXhpcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihuZXdPcHRpb24ueEF4aXMsIG5ld0RhdGFzLCBkYXRhTWFwKTtcclxuICAgIG5ld09wdGlvbi55QXhpcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihuZXdPcHRpb24ueUF4aXMsIG5ld0RhdGFzLCBkYXRhTWFwKTtcclxuICAgIG5ld09wdGlvbi5zZXJpZXMgPSB0aGlzLm9iamVjdENvbnZlcnNpb24oXHJcbiAgICAgIG5ld09wdGlvbi5zZXJpZXMsXHJcbiAgICAgIG5ld0RhdGFzLFxyXG4gICAgICBkYXRhTWFwXHJcbiAgICApO1xyXG4gICAgY29uc3QgbXlDaGFydCA9ICh0aGlzLm15Q2hhcnQgPSBlY2hhcnRzLmluaXQoXHJcbiAgICAgIHRoaXMuY2hhcnRSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudFxyXG4gICAgKSk7IC8v5Yid5aeL5YyWZWNoYXJ0c++8jOmAmui/h3JlZuWxnuaAp+iOt+WPlmRvbVxyXG4gICAgbXlDaGFydC5jbGVhcigpO1xyXG4gICAgbXlDaGFydC5vZmYoXCJjbGlja1wiKTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydC5zZXRPcHRpb24obmV3T3B0aW9uKTtcclxuICAgIG15Q2hhcnQub24oXCJjbGlja1wiLCBmdW5jdGlvbiAocGFyYW1zKSB7XHJcbiAgICAgIE9uQ2xpY2sgJiYgT25DbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBteUNoYXJ0Py5nZXRacigpPy5vbihcImNsaWNrXCIsIChwYXJhbXMpID0+IHtcclxuICAgICAgT25ackNsaWNrICYmIE9uWnJDbGljayhwYXJhbXMsIG15Q2hhcnQpO1xyXG4gICAgfSk7XHJcbiAgICBteUNoYXJ0LnJlc2l6ZSgpO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYXJ0UmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQucmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBib3hTdHlsZSA9IHtcclxuICAgICAgd2lkdGg6IHR5cGVvZiB3aWR0aCA9PSBcIm51bWJlclwiID8gcHgydncod2lkdGgpIDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogdHlwZW9mIGhlaWdodCA9PSBcIm51bWJlclwiID8gcHgydncoaGVpZ2h0KSA6IGhlaWdodCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gPGRpdiBzdHlsZT17Ym94U3R5bGV9IHJlZj17dGhpcy5jaGFydFJlZn0gaWQ9XCJuc2NfY2hhcnRzXCI+PC9kaXY+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTnNjQ2hhcnQ7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PureComponent","echarts","Store","utils","px2vw","isArray","isObject","NscChart","constructor","props","_defineProperty","createRef","dataSource","data","store","children","option","options","autoLoad","url","listeners","listenersPops","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","modelData","setState","isFirst","init","dataChanged","componentDidMount","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","componentWillUnmount","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","push","objectConversion","obj","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","newOption","console","log","xAxis","yAxis","series","myChart","chartRef","current","clear","off","getZr","setOption","on","params","resize","addEventListener","render","width","height","boxStyle","createElement","style","ref","id"],"sources":["../../../src/components/base/chart/index.tsx"],"sourcesContent":["import React, { PureComponent } from \"react\";\r\nimport * as echarts from \"echarts\";\r\nimport { ECharts } from \"echarts/lib/echarts\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport { px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\ninterface ChartProps {\r\n store?: StoreProps;\r\n option: any;\r\n data?: Array<Object> | Object;\r\n width: number | string; //图表宽度\r\n height: number | string; //图表长度\r\n autoLoad?: boolean; //数据改变,自动刷新图表,默认true\r\n OnClick?: (params: any, e?: any) => void; //图表点击事件\r\n OnZrClick?: (params: any, e?: any) => void; //图表点击事件\r\n [proNames: string]: any;\r\n}\r\n\r\n//data示例\r\n/**\r\n 数组:\r\n data=[{name:'1月',value:20},{name:'2月',value:10},{name:'3月',value:25}]\r\n 对象\r\n data={name:['1月','2月','3月'],value:[20,30,40]}\r\n */\r\nclass NscChart extends PureComponent<ChartProps> {\r\n chartRef = React.createRef<HTMLDivElement>();\r\n myChart: ECharts | null = null;\r\n store = {} as StoreProps;\r\n state = {\r\n dataSource: null,\r\n };\r\n isFirst = true;\r\n constructor(props) {\r\n super(props);\r\n const {\r\n data,\r\n store = {},\r\n children,\r\n option: options,\r\n autoLoad = true,\r\n } = props;\r\n const { url, listeners: listenersPops = {}, ...stores } = store;\r\n if (!children) {\r\n if (!(data || url || options)) {\r\n throw new Error(\"url、data、option不能都为空!\");\r\n }\r\n let _this = this;\r\n let storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: function (store, options) {\r\n utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);\r\n },\r\n load: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (_this.isFirst && autoLoad) {\r\n _this.init();\r\n _this.isFirst = false;\r\n }\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (autoLoad) {\r\n _this.init();\r\n }\r\n });\r\n utils.callback(listenersPops.dataChanged, _this, [\r\n data,\r\n modelData,\r\n store,\r\n ]);\r\n },\r\n },\r\n ...stores,\r\n };\r\n if (url && data == null) {\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { data, autoLoad = true, store, option } = this.props;\r\n if (data && autoLoad) {\r\n this.init();\r\n } else if (!data && !store?.url && option) {\r\n this.init();\r\n }\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<ChartProps>,\r\n prevState: Readonly<{}>,\r\n snapshot?: any\r\n ): void {\r\n const { autoLoad = true } = this.props;\r\n if (autoLoad) {\r\n if (JSON.stringify(prevProps.data) !== JSON.stringify(this.props.data)) {\r\n this.init();\r\n } else if (\r\n JSON.stringify(prevProps.option) !== JSON.stringify(this.props.option)\r\n ) {\r\n this.init();\r\n }\r\n }\r\n }\r\n\r\n reSetChart() {\r\n this.init();\r\n }\r\n isString(v) {\r\n return typeof v === \"string\";\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n isReplace(v) {\r\n return /^{.*}$/gi.test(v);\r\n }\r\n replace(v) {\r\n return v.substring(1, v.length - 1);\r\n }\r\n\r\n dataConversion(data, datas, dataMap) {\r\n let result;\r\n if (data) {\r\n if (this.isString(data) && this.isReplace(data)) {\r\n result = dataMap[this.replace(data)];\r\n } else if (isArray(data)) {\r\n data.map((item) => {\r\n let v = item?.value || null;\r\n if (v && this.isReplace(v)) {\r\n item.value = this.dataConversion(v, datas, dataMap);\r\n }\r\n });\r\n result = data;\r\n } else if (isObject(data)) {\r\n result = [];\r\n if (isArray(datas)) {\r\n datas.map((item) => {\r\n var tempObj = {};\r\n for (let key in item) {\r\n let v = item[key];\r\n if (this.isReplace(v)) {\r\n tempObj[key] = item[this.replace(v)];\r\n } else {\r\n tempObj[key] = v;\r\n }\r\n }\r\n result.push(tempObj);\r\n });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n objectConversion(obj, datas, dataMap) {\r\n let tempObj: any;\r\n if (obj) {\r\n if (isArray(obj)) {\r\n tempObj = [...obj];\r\n tempObj.map((item) => {\r\n if (item.data) {\r\n item.data = this.dataConversion(item.data, datas, dataMap);\r\n }\r\n });\r\n } else if (this.isString(obj)) {\r\n tempObj = obj;\r\n tempObj.data = this.dataConversion(tempObj, datas, dataMap);\r\n } else if (isObject(obj)) {\r\n tempObj = { ...obj };\r\n tempObj.data = this.dataConversion(tempObj.data, datas, dataMap);\r\n }\r\n }\r\n return tempObj;\r\n }\r\n init() {\r\n const { option, data, OnClick, OnZrClick } = this.props;\r\n const { dataSource } = this.state;\r\n let dataMap: any = {};\r\n const newDatas = data || dataSource;\r\n \r\n let newOption: any = { ...option };\r\n if (isArray(newDatas)) {\r\n newDatas.map((item) => {\r\n for (let key in item) {\r\n if (dataMap[key] == null) {\r\n dataMap[key] = [];\r\n }\r\n dataMap[key].push(item[key]);\r\n }\r\n });\r\n } else if (isObject(newDatas)) {\r\n dataMap = newDatas;\r\n }\r\n console.log('newDatas---',newDatas)\r\n newOption.xAxis = this.objectConversion(newOption.xAxis, newDatas, dataMap);\r\n newOption.yAxis = this.objectConversion(newOption.yAxis, newDatas, dataMap);\r\n newOption.series = this.objectConversion(\r\n newOption.series,\r\n newDatas,\r\n dataMap\r\n );\r\n const myChart = (this.myChart = echarts.init(\r\n this.chartRef.current as HTMLDivElement\r\n )); //初始化echarts,通过ref属性获取dom\r\n myChart.clear();\r\n myChart.off(\"click\");\r\n myChart?.getZr()?.off(\"click\");\r\n myChart.setOption(newOption);\r\n myChart.on(\"click\", function (params) {\r\n OnClick && OnClick(params, myChart);\r\n });\r\n myChart?.getZr()?.on(\"click\", (params) => {\r\n OnZrClick && OnZrClick(params, myChart);\r\n });\r\n myChart.resize();\r\n window.addEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n handleChartResize() {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }\r\n\r\n render() {\r\n const { width, height } = this.props;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n };\r\n return <div style={boxStyle} ref={this.chartRef} id=\"nsc_charts\"></div>;\r\n }\r\n}\r\n\r\nexport default NscChart;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PureComponent","echarts","Store","utils","px2vw","isArray","isObject","NscChart","constructor","props","_defineProperty","createRef","dataSource","data","store","children","option","options","autoLoad","url","listeners","listenersPops","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","modelData","setState","isFirst","init","dataChanged","componentDidMount","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","componentWillUnmount","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","push","objectConversion","obj","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","newOption","xAxis","yAxis","series","myChart","chartRef","current","clear","off","getZr","setOption","on","params","resize","addEventListener","render","width","height","boxStyle","createElement","style","ref","id"],"sources":["../../../src/components/base/chart/index.tsx"],"sourcesContent":["import React, { PureComponent } from \"react\";\r\nimport * as echarts from \"echarts\";\r\nimport { ECharts } from \"echarts/lib/echarts\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport { px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\ninterface ChartProps {\r\n store?: StoreProps;\r\n option: any;\r\n data?: Array<Object> | Object;\r\n width: number | string; //图表宽度\r\n height: number | string; //图表长度\r\n autoLoad?: boolean; //数据改变,自动刷新图表,默认true\r\n OnClick?: (params: any, e?: any) => void; //图表点击事件\r\n OnZrClick?: (params: any, e?: any) => void; //图表点击事件\r\n [proNames: string]: any;\r\n}\r\n\r\n//data示例\r\n/**\r\n 数组:\r\n data=[{name:'1月',value:20},{name:'2月',value:10},{name:'3月',value:25}]\r\n 对象\r\n data={name:['1月','2月','3月'],value:[20,30,40]}\r\n */\r\nclass NscChart extends PureComponent<ChartProps> {\r\n chartRef = React.createRef<HTMLDivElement>();\r\n myChart: ECharts | null = null;\r\n store = {} as StoreProps;\r\n state = {\r\n dataSource: null,\r\n };\r\n isFirst = true;\r\n constructor(props) {\r\n super(props);\r\n const {\r\n data,\r\n store = {},\r\n children,\r\n option: options,\r\n autoLoad = true,\r\n } = props;\r\n const { url, listeners: listenersPops = {}, ...stores } = store;\r\n if (!children) {\r\n if (!(data || url || options)) {\r\n throw new Error(\"url、data、option不能都为空!\");\r\n }\r\n let _this = this;\r\n let storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: function (store, options) {\r\n utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);\r\n },\r\n load: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (_this.isFirst && autoLoad) {\r\n _this.init();\r\n _this.isFirst = false;\r\n }\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n _this.setState({ dataSource: modelData }, () => {\r\n if (autoLoad) {\r\n _this.init();\r\n }\r\n });\r\n utils.callback(listenersPops.dataChanged, _this, [\r\n data,\r\n modelData,\r\n store,\r\n ]);\r\n },\r\n },\r\n ...stores,\r\n };\r\n if (url && data == null) {\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { data, autoLoad = true, store, option } = this.props;\r\n if (data && autoLoad) {\r\n this.init();\r\n } else if (!data && !store?.url && option) {\r\n this.init();\r\n }\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<ChartProps>,\r\n prevState: Readonly<{}>,\r\n snapshot?: any\r\n ): void {\r\n const { autoLoad = true } = this.props;\r\n if (autoLoad) {\r\n if (JSON.stringify(prevProps.data) !== JSON.stringify(this.props.data)) {\r\n this.init();\r\n } else if (\r\n JSON.stringify(prevProps.option) !== JSON.stringify(this.props.option)\r\n ) {\r\n this.init();\r\n }\r\n }\r\n }\r\n\r\n reSetChart() {\r\n this.init();\r\n }\r\n isString(v) {\r\n return typeof v === \"string\";\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n isReplace(v) {\r\n return /^{.*}$/gi.test(v);\r\n }\r\n replace(v) {\r\n return v.substring(1, v.length - 1);\r\n }\r\n\r\n dataConversion(data, datas, dataMap) {\r\n let result;\r\n if (data) {\r\n if (this.isString(data) && this.isReplace(data)) {\r\n result = dataMap[this.replace(data)];\r\n } else if (isArray(data)) {\r\n data.map((item) => {\r\n let v = item?.value || null;\r\n if (v && this.isReplace(v)) {\r\n item.value = this.dataConversion(v, datas, dataMap);\r\n }\r\n });\r\n result = data;\r\n } else if (isObject(data)) {\r\n result = [];\r\n if (isArray(datas)) {\r\n datas.map((item) => {\r\n var tempObj = {};\r\n for (let key in item) {\r\n let v = item[key];\r\n if (this.isReplace(v)) {\r\n tempObj[key] = item[this.replace(v)];\r\n } else {\r\n tempObj[key] = v;\r\n }\r\n }\r\n result.push(tempObj);\r\n });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n objectConversion(obj, datas, dataMap) {\r\n let tempObj: any;\r\n if (obj) {\r\n if (isArray(obj)) {\r\n tempObj = [...obj];\r\n tempObj.map((item) => {\r\n if (item.data) {\r\n item.data = this.dataConversion(item.data, datas, dataMap);\r\n }\r\n });\r\n } else if (this.isString(obj)) {\r\n tempObj = obj;\r\n tempObj.data = this.dataConversion(tempObj, datas, dataMap);\r\n } else if (isObject(obj)) {\r\n tempObj = { ...obj };\r\n tempObj.data = this.dataConversion(tempObj.data, datas, dataMap);\r\n }\r\n }\r\n return tempObj;\r\n }\r\n init() {\r\n const { option, data, OnClick, OnZrClick } = this.props;\r\n const { dataSource } = this.state;\r\n let dataMap: any = {};\r\n const newDatas = data || dataSource;\r\n \r\n let newOption: any = { ...option };\r\n if (isArray(newDatas)) {\r\n newDatas.map((item) => {\r\n for (let key in item) {\r\n if (dataMap[key] == null) {\r\n dataMap[key] = [];\r\n }\r\n dataMap[key].push(item[key]);\r\n }\r\n });\r\n } else if (isObject(newDatas)) {\r\n dataMap = newDatas;\r\n }\r\n newOption.xAxis = this.objectConversion(newOption.xAxis, newDatas, dataMap);\r\n newOption.yAxis = this.objectConversion(newOption.yAxis, newDatas, dataMap);\r\n newOption.series = this.objectConversion(\r\n newOption.series,\r\n newDatas,\r\n dataMap\r\n );\r\n const myChart = (this.myChart = echarts.init(\r\n this.chartRef.current as HTMLDivElement\r\n )); //初始化echarts,通过ref属性获取dom\r\n myChart.clear();\r\n myChart.off(\"click\");\r\n myChart?.getZr()?.off(\"click\");\r\n myChart.setOption(newOption);\r\n myChart.on(\"click\", function (params) {\r\n OnClick && OnClick(params, myChart);\r\n });\r\n myChart?.getZr()?.on(\"click\", (params) => {\r\n OnZrClick && OnZrClick(params, myChart);\r\n });\r\n myChart.resize();\r\n window.addEventListener(\"resize\", this.handleChartResize.bind(this));\r\n }\r\n\r\n handleChartResize() {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }\r\n\r\n render() {\r\n const { width, height } = this.props;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n };\r\n return <div style={boxStyle} ref={this.chartRef} id=\"nsc_charts\"></div>;\r\n }\r\n}\r\n\r\nexport default NscChart;\r\n"],"mappings":"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"}
|
|
@@ -72,17 +72,18 @@ class NscImportData extends React.PureComponent {
|
|
|
72
72
|
buttonLoading: false
|
|
73
73
|
});
|
|
74
74
|
if (res.code == 200) {
|
|
75
|
+
var _res$data, _res$data2;
|
|
75
76
|
// message.success("导入成功!");
|
|
76
77
|
this.setState({
|
|
77
78
|
requestStatus: "success"
|
|
78
79
|
});
|
|
79
|
-
if (res.data.warnings.length > 0) {
|
|
80
|
+
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) {
|
|
80
81
|
this.setState({
|
|
81
82
|
requestStatus: "warning",
|
|
82
83
|
warnList: res.data.warnings
|
|
83
84
|
});
|
|
84
85
|
}
|
|
85
|
-
if (res.data.errors.length > 0) {
|
|
86
|
+
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) {
|
|
86
87
|
_message.success("导入失败!");
|
|
87
88
|
this.setState({
|
|
88
89
|
requestStatus: "error",
|
|
@@ -334,4 +335,4 @@ class NscImportData extends React.PureComponent {
|
|
|
334
335
|
}
|
|
335
336
|
}
|
|
336
337
|
export default NscImportData;
|
|
337
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiYnV0dG9uTG9hZGluZyIsImNyZWF0ZVJlZiIsImZpbGVTaXplS2IiLCJudW1iZXIiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0b0ZpeGVkIiwic2hvdyIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbiIsIm1vZGFsUmVmIiwiY3VycmVudCIsImhpZGUiLCJfdGhpcyRtb2RhbFJlZiRjdXJyZW4yIiwicmVzZXREYXRhIiwiaW1wb3J0RGF0YSIsImlzT3ZlcndyaXRlIiwicmVxdWVzdENvbmZpZyIsImltcG9ydFVybCIsIm9uQ2FsbEJhY2tzIiwicHJvcHMiLCJkYXRhIiwiY29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic2V0U3RhdGUiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwid2FybmluZ3MiLCJlcnJvcnMiLCJfbWVzc2FnZSIsInN1Y2Nlc3MiLCJpbXBvcnRDYWxsQmFjayIsInJlbmRlckVycm9yQ29udGVudCIsImxpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzdGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJyb3dOdW0iLCJlcnJvck1zZyIsInJlbmRlclJlc3VsdCIsImFsZXJ0X21zZ19tYXAiLCJlcnJvciIsIndhcm5pbmciLCJfYWxlcnRfbXNnX21hcCRyZXF1ZXMiLCJzdHlsZSIsIm1hcmdpblRvcCIsIm1lc3NhZ2UiLCJ0eXBlIiwic2hvd0ljb24iLCJleHBhbmRJY29uUG9zaXRpb24iLCJjbGFzc05hbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJkZWZhdWx0QWN0aXZlS2V5IiwiUGFuZWwiLCJoZWFkZXIiLCJjb2xvciIsImV4dHJhIiwiYmFja2dyb3VuZCIsInJlbmRlciIsImRvd25Mb2FkVGVtcGxldCIsImRvd25UZW1wbGV0VXJsIiwiY2hlY2tEYXRhIiwiY2hlY2tVcmwiLCJmb290ZXIiLCJvbkNsaWNrIiwiZXJyb3JDb3VudCIsImR1cGxpY2F0ZUNvdW50IiwiZHVwbGljYXRlTGlzdCIsImRpc2FibGVkIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJjaGlsZHJlbiIsIkZyYWdtZW50Iiwic2hvd0J1dHRvbiIsInRpdGxlIiwid2lkdGgiLCJ3cmFwQ2xhc3NOYW1lIiwicmVmIiwib25DYW5jZWwiLCJkaXNwbGF5IiwiYmVmb3JlVXBsb2FkIiwiYWxsb3dGaWxlU3VmZml4IiwiYWNjZXB0Iiwic2hvd1VwbG9hZExpc3QiLCJuYW1lIiwic2l6ZSIsIml0ZW1zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9pbXBvcnREYXRhL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgTnNjVXBsb2FkIGZyb20gXCIuLi91cGxvYWRcIjtcclxuaW1wb3J0IE5TQ0J1dHRvbiBmcm9tIFwiLi4vYnV0dG9uXCI7XHJcbmltcG9ydCBOc2NEb3duTG9hZCBmcm9tIFwiLi4vZG93bmxvYWRcIjtcclxuaW1wb3J0IE5zY01vZGFsIGZyb20gXCIuLi9tb2RhbFwiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIFVwbG9hZE91dGxpbmVkLFxyXG4gIEZvbGRlck91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFN0ZXBzIGZyb20gXCIuLi9zdGVwc1wiO1xyXG5pbXBvcnQgbnNjRmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBBbGVydCBmcm9tIFwiLi4vYWxlcnRcIjtcclxuaW1wb3J0IENvbGxhcHNlIGZyb20gXCIuLi9jb2xsYXBzZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ljb25cIjtcclxuXHJcbmludGVyZmFjZSBJbXBvcnRQcm9wb3Mge1xyXG4gIGNoZWNrRGF0YT86IGJvb2xlYW47IC8v5piv5ZCm6L+b6KGM5pWw5o2u5qCh6aqM77yM6buY6K6kZmFsc2VcclxuICBjaGVja1VybD86IHN0cmluZzsgLy/mlbDmja7moKHpqozmjqXlj6PlnLDlnYBcclxuICBpbXBvcnRVcmw6IHN0cmluZzsgLy/mlbDmja7lr7zlhaXlnLDlnYBcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIGRvd25Mb2FkVGVtcGxldD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65LiL6L295qih5p2/5oyJ6ZKuXHJcbiAgZG93blRlbXBsZXRVcmw/OiBzdHJpbmc7IC8v5LiL6L295qih5p2/5Zyw5Z2AXHJcbiAgb25DYWxsQmFja3M/OiB7XHJcbiAgICBjaGVja0NhbGxCYWNrPzogYW55OyAvL+aVsOaNruagoemqjOWbnuiwg1xyXG4gICAgaW1wb3J0Q2FsbEJhY2s/OiBhbnk7IC8v5pWw5o2u5a+85YWl5Zue6LCDXHJcbiAgICBjbG9zZUNhbGxCYWNrPzogYW55O1xyXG4gIH07XHJcbiAgc2hvd0J1dHRvbj86IGJvb2xlYW47XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmNsYXNzIE5zY0ltcG9ydERhdGEgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PEltcG9ydFByb3BvcywgYW55PiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBzdGF0dXM6IDEsXHJcbiAgICBmaWxlOiBudWxsLFxyXG4gICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICByZXF1ZXN0U3RhdHVzOiBcIlwiLFxyXG4gICAgZXJyb3JMaXN0OiBbXSxcclxuICAgIHdhcm5MaXN0OiBbXSxcclxuICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gIH07XHJcbiAgbW9kYWxSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGZpbGVTaXplS2IobnVtYmVyID0gMCkge1xyXG4gICAgcmV0dXJuIChudW1iZXIgLyAxMDI0KS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuICBzaG93KCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50Py5zaG93KCk7XHJcbiAgfVxyXG4gIGhpZGUoKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmLmN1cnJlbnQ/LmhpZGUoKTtcclxuICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgfVxyXG4gIGltcG9ydERhdGEoZmlsZSwgaXNPdmVyd3JpdGUpIHtcclxuICAgIGNvbnN0IHsgcmVxdWVzdENvbmZpZyA9IHt9LCBpbXBvcnRVcmwsIG9uQ2FsbEJhY2tzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBkYXRhID0ge30sIC4uLmNvbmZpZyB9ID0gcmVxdWVzdENvbmZpZztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBidXR0b25Mb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICAvLyBsZXQgZm9ybURhdGEgPSB7Li4uZGF0YX1cclxuXHJcbiAgICBuc2NGaWxlXHJcbiAgICAgIC5pbXBvcnRGaWxlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVybDogaW1wb3J0VXJsLFxyXG4gICAgICAgICAgZGF0YTogeyAuLi5kYXRhLCBpc092ZXJ3cml0ZTogaXNPdmVyd3JpdGUgfSxcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKVxyXG4gICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIC8vIG1lc3NhZ2Uuc3VjY2VzcyhcIuWvvOWFpeaIkOWKn++8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhLndhcm5pbmdzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICAgICAgd2Fybkxpc3Q6IHJlcy5kYXRhLndhcm5pbmdzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXMuZGF0YS5lcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZXJyb3JzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2sgJiYgb25DYWxsQmFja3M/LmltcG9ydENhbGxCYWNrKHJlcyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlckVycm9yQ29udGVudChsaXN0KSB7XHJcbiAgICByZXR1cm4gbGlzdC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXRlLnJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gXCJzdHJpbmdcIiA/IChcclxuICAgICAgICAgIDxkaXY+e2l0ZW19PC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e1wi56ysXCIgKyBpdGVtLnJvd051bSArIFwi6KGM5pWw5o2u6YeN5aSN77ybXCJ9PC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gXCJzdHJpbmdcIiA/IChcclxuICAgICAgICAgIDxkaXY+e2l0ZW19PC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e2l0ZW0uZXJyb3JNc2d9PC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlclJlc3VsdCgpIHtcclxuICAgIGNvbnN0IHsgcmVxdWVzdFN0YXR1cywgZXJyb3JMaXN0LCB3YXJuTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGFsZXJ0X21zZ19tYXAgPSB7XHJcbiAgICAgIHN1Y2Nlc3M6IFwi5a+85YWl5oiQ5YqfXCIsXHJcbiAgICAgIGVycm9yOiBcIuWvvOWFpeWksei0pVwiLFxyXG4gICAgICB3YXJuaW5nOiBcIuWRiuitpuaPkOekulwiLFxyXG4gICAgfTtcclxuICAgIGlmIChyZXF1ZXN0U3RhdHVzKSB7XHJcbiAgICAgIGlmIChyZXF1ZXN0U3RhdHVzID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxBbGVydFxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiOHB4XCIgfX1cclxuICAgICAgICAgICAgbWVzc2FnZT17YWxlcnRfbXNnX21hcFtyZXF1ZXN0U3RhdHVzXSA/PyBcIuaPkOekulwifVxyXG4gICAgICAgICAgICB0eXBlPXtcInN1Y2Nlc3NcIn1cclxuICAgICAgICAgICAgc2hvd0ljb25cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPENvbGxhcHNlXHJcbiAgICAgICAgICAgIGV4cGFuZEljb25Qb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCJjb250ZW50LXdhcm5pbmdcIiA6IFwiY29udGVudC1lcnJvclwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkNFMUFCXCIgOiBcIiNmZmYyZjBcIixcclxuICAgICAgICAgICAgICBib3JkZXI6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgID8gXCIxcHggc29saWQgI0ZDRTFBQlwiXHJcbiAgICAgICAgICAgICAgICAgIDogXCIxcHggc29saWQgI0ZGQ0NDN1wiLFxyXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIycHhcIixcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGVmYXVsdEFjdGl2ZUtleT17W1wiMVwiXX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPENvbGxhcHNlLlBhbmVsXHJcbiAgICAgICAgICAgICAga2V5PVwiMVwiXHJcbiAgICAgICAgICAgICAgaGVhZGVyPXtcclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge2FsZXJ0X21zZ19tYXBbcmVxdWVzdFN0YXR1c119XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBleHRyYT17XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIuafpeeci1wiIDogXCLmn6XnnIvplJnor69cIn1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIiNGRkZERjZcIiA6IFwiI2ZmZjlmOVwiLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbnRlbnQtZXJyb3JfX21zZ1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRXJyb3JDb250ZW50KFxyXG4gICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gd2Fybkxpc3QgOiBlcnJvckxpc3RcclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvQ29sbGFwc2UuUGFuZWw+XHJcbiAgICAgICAgICA8L0NvbGxhcHNlPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHN0YXR1czogMSxcclxuICAgICAgZmlsZTogbnVsbCxcclxuICAgICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICAgIHJlcXVlc3RTdGF0dXM6IFwiXCIsXHJcbiAgICAgIGVycm9yTGlzdDogW10sXHJcbiAgICAgIHdhcm5MaXN0OiBbXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZpbGUsIHN0YXR1cywgY3VycmVudFN0ZXAsIHJlcXVlc3RTdGF0dXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRvd25Mb2FkVGVtcGxldCxcclxuICAgICAgZG93blRlbXBsZXRVcmwsXHJcbiAgICAgIGNoZWNrRGF0YSxcclxuICAgICAgY2hlY2tVcmwsXHJcbiAgICAgIHJlcXVlc3RDb25maWcsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJcIj5cclxuICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDlj5bmtohcclxuICAgICAgICA8L05TQ0J1dHRvbj5cclxuXHJcbiAgICAgICAge3N0YXR1cyA9PSAxICYmIHRoaXMuc3RhdGUuZmlsZSAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogMixcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChjaGVja0RhdGEpIHtcclxuICAgICAgICAgICAgICAgIG5zY0ZpbGVcclxuICAgICAgICAgICAgICAgICAgLmltcG9ydEZpbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogY2hlY2tVcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiByZXF1ZXN0Q29uZmlnPy5kYXRhIHx8IHt9LFxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmVycm9yQ291bnQgPT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kdXBsaWNhdGVDb3VudCA9PSAwXHJcbiAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXA6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZXJyb3JDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTGlzdDogcmVzLmRhdGEuZXJyb3JMaXN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmR1cGxpY2F0ZUNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZHVwbGljYXRlTGlzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpbGUgPyBmYWxzZSA6IHRydWV9XHJcbiAgICAgICAgICAgIGljb249ezxVcGxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5byA5aeL5LiK5LygXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiICYmIHN0YXR1cyA9PSAyICYmIChcclxuICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKHRoaXMuc3RhdGUuZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5idXR0b25Mb2FkaW5nfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDkuI3opobnm5bmlbDmja5cclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgJiYgc3RhdHVzID09IDIgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEodGhpcy5zdGF0ZS5maWxlLCB0cnVlKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuYnV0dG9uTG9hZGluZ31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg6KaG55uW5pWw5o2uXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdj5cclxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbiA/IChcclxuICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMuc2hvd0J1dHRvbiAmJiAoXHJcbiAgICAgICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5pWw5o2u5a+85YWlXHJcbiAgICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICA8TnNjTW9kYWxcclxuICAgICAgICAgIHRpdGxlPVwi5pWw5o2u5a+85YWlXCJcclxuICAgICAgICAgIHdpZHRoPXs4MDB9XHJcbiAgICAgICAgICB3cmFwQ2xhc3NOYW1lPXtcImltcG9ydC1tb2RhbFwifVxyXG4gICAgICAgICAgcmVmPXt0aGlzLm1vZGFsUmVmfVxyXG4gICAgICAgICAgZm9vdGVyPXtmb290ZXJ9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgIHtzdGF0dXMgPT0gMSA/IChcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgPE5zY1VwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17KGZpbGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBhbGxvd0ZpbGVTdWZmaXg9e1tcInhsc1wiLCBcInhsc3hcIl19XHJcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtcIi54bHMsLnhsc3hcIn1cclxuICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtmaWxlID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEZvbGRlck91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L05zY1VwbG9hZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgIHtkb3duTG9hZFRlbXBsZXQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxOc2NEb3duTG9hZCB1cmw9e2Rvd25UZW1wbGV0VXJsfT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxOU0NCdXR0b24gdHlwZT1cInByaW1hcnlcIiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5qih5p2/5LiL6L29XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L05zY0Rvd25Mb2FkPlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC10aXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgMeOAgeaUr+aMgUV4Y2VsIDIwMDflj4rku6XkuIrniYjmnKzvvIzkuJTmr4/mrKHlj6rog73kuIrkvKDkuIDkuKrmlofku7bvvJtcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PjLjgIHlr7zlhaXliY3lhYjkuIvovb3mqKHmnb/vvIzlubbmoLnmja7mqKHmnb/loavlhpnmlbDmja7vvJs8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB7ZmlsZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLWZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHR5cGU9XCJleGNlbFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS10aXRsZVwiPntmaWxlLm5hbWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtZGVzY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpKflsI/vvJp7dGhpcy5maWxlU2l6ZUtiKGZpbGUuc2l6ZSkgKyBcIktCXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxTdGVwc1xyXG4gICAgICAgICAgICAgICAgICBjdXJyZW50PXtjdXJyZW50U3RlcH1cclxuICAgICAgICAgICAgICAgICAgaXRlbXM9e1tcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCLmlbDmja7liIbmnpBcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaVsOaNruaPkuWFpVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicmVzdWx0LWNvbnRlbnRcIn0+e3RoaXMucmVuZGVyUmVzdWx0KCl9PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L05zY01vZGFsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IE5zY0ltcG9ydERhdGE7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFdBQVcsTUFBTSxhQUFhO0FBQ3JDLE9BQU9DLFFBQVEsTUFBTSxVQUFVO0FBQy9CLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMseUJBQXlCLFFBQ3BCLG1CQUFtQjtBQUMxQixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUU5QixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQWtCbEMsTUFBTUMsYUFBYSxTQUFTZCxLQUFLLENBQUNlLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDekQ7TUFDTkMsTUFBTSxFQUFFLENBQUM7TUFDVEMsSUFBSSxFQUFFLElBQUk7TUFDVkMsV0FBVyxFQUFFLENBQUM7TUFDZEMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRSxFQUFFO01BQ2JDLFFBQVEsRUFBRSxFQUFFO01BQ1pDLGFBQWEsRUFBRTtJQUNqQixDQUFDO0lBQUFQLGVBQUEsZ0NBQ1VsQixLQUFLLENBQUMwQixTQUFTLENBQU0sQ0FBQztFQUFBO0VB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
|
|
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+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgTnNjSW1wb3J0RGF0YTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPLGNBQWM7QUFDckIsT0FBT0MsU0FBUyxNQUFNLFdBQVc7QUFDakMsT0FBT0MsU0FBUyxNQUFNLFdBQVc7QUFDakMsT0FBT0MsV0FBVyxNQUFNLGFBQWE7QUFDckMsT0FBT0MsUUFBUSxNQUFNLFVBQVU7QUFDL0IsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtBQUN6QyxTQUNFQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsbUJBQW1CLEVBQ25CQyx5QkFBeUIsUUFDcEIsbUJBQW1CO0FBQzFCLE9BQU9DLEtBQUssTUFBTSxVQUFVO0FBQzVCLE9BQU9DLE9BQU8sTUFBTSxVQUFVO0FBRTlCLE9BQU9DLEtBQUssTUFBTSxVQUFVO0FBQzVCLE9BQU9DLFFBQVEsTUFBTSxhQUFhO0FBa0JsQyxNQUFNQyxhQUFhLFNBQVNkLEtBQUssQ0FBQ2UsYUFBYSxDQUFvQjtFQUFBQyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGdCQUN6RDtNQUNOQyxNQUFNLEVBQUUsQ0FBQztNQUNUQyxJQUFJLEVBQUUsSUFBSTtNQUNWQyxXQUFXLEVBQUUsQ0FBQztNQUNkQyxhQUFhLEVBQUUsRUFBRTtNQUNqQkMsU0FBUyxFQUFFLEVBQUU7TUFDYkMsUUFBUSxFQUFFLEVBQUU7TUFDWkMsYUFBYSxFQUFFO0lBQ2pCLENBQUM7SUFBQVAsZUFBQSxnQ0FDVWxCLEtBQUssQ0FBQzBCLFNBQVMsQ0FBTSxDQUFDO0VBQUE7RUFDakNDLFVBQVVBLENBQUEsRUFBYTtJQUFBLElBQVpDLE1BQU0sR0FBQVgsU0FBQSxDQUFBWSxNQUFBLFFBQUFaLFNBQUEsUUFBQWEsU0FBQSxHQUFBYixTQUFBLE1BQUcsQ0FBQztJQUNuQixPQUFPLENBQUNXLE1BQU0sR0FBRyxJQUFJLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUM7RUFDbkM7RUFDQUMsSUFBSUEsQ0FBQSxFQUFHO0lBQUEsSUFBQUMscUJBQUE7SUFDTCxDQUFBQSxxQkFBQSxPQUFJLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxjQUFBRixxQkFBQSxlQUFyQkEscUJBQUEsQ0FBdUJELElBQUksQ0FBQyxDQUFDO0VBQy9CO0VBQ0FJLElBQUlBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ0wsQ0FBQUEsc0JBQUEsT0FBSSxDQUFDSCxRQUFRLENBQUNDLE9BQU8sY0FBQUUsc0JBQUEsZUFBckJBLHNCQUFBLENBQXVCRCxJQUFJLENBQUMsQ0FBQztJQUM3QixJQUFJLENBQUNFLFNBQVMsQ0FBQyxDQUFDO0VBQ2xCO0VBQ0FDLFVBQVVBLENBQUNuQixJQUFJLEVBQUVvQixXQUFXLEVBQUU7SUFDNUIsTUFBTTtNQUFFQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO01BQUVDLFNBQVM7TUFBRUMsV0FBVyxHQUFHLENBQUM7SUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDQyxLQUFLO0lBQ3RFLElBQUk7UUFBRUMsSUFBSSxHQUFHLENBQUM7TUFBYSxDQUFDLEdBQUdKLGFBQWE7TUFBeEJLLE1BQU0sR0FBQUMsd0JBQUEsQ0FBS04sYUFBYSxFQUFBTyxTQUFBO0lBQzVDLElBQUksQ0FBQ0MsUUFBUSxDQUFDO01BQ1p4QixhQUFhLEVBQUU7SUFDakIsQ0FBQyxDQUFDO0lBQ0Y7O0lBRUFkLE9BQU8sQ0FDSnVDLFVBQVUsQ0FDVDtNQUNFQyxHQUFHLEVBQUVULFNBQVM7TUFDZEcsSUFBSSxFQUFBTyxhQUFBLENBQUFBLGFBQUEsS0FBT1AsSUFBSTtRQUFFTCxXQUFXLEVBQUVBO01BQVcsRUFBRTtNQUMzQ3BCLElBQUksRUFBRUE7SUFDUixDQUFDLEVBQ0QwQixNQUNGLENBQUMsQ0FDQU8sSUFBSSxDQUFFQyxHQUFRLElBQUs7TUFDbEIsSUFBSSxDQUFDTCxRQUFRLENBQUM7UUFDWnhCLGFBQWEsRUFBRTtNQUNqQixDQUFDLENBQUM7TUFDRixJQUFJNkIsR0FBRyxDQUFDQyxJQUFJLElBQUksR0FBRyxFQUFFO1FBQUEsSUFBQUMsU0FBQSxFQUFBQyxVQUFBO1FBQ25CO1FBQ0EsSUFBSSxDQUFDUixRQUFRLENBQUM7VUFDWjNCLGFBQWEsRUFBRTtRQUNqQixDQUFDLENBQUM7UUFDRixJQUFJLEVBQUFrQyxTQUFBLEdBQUFGLEdBQUcsQ0FBQ1QsSUFBSSxjQUFBVyxTQUFBLGdCQUFBQSxTQUFBLEdBQVJBLFNBQUEsQ0FBVUUsUUFBUSxjQUFBRixTQUFBLHVCQUFsQkEsU0FBQSxDQUFvQjNCLE1BQU0sSUFBRyxDQUFDLEVBQUU7VUFDbEMsSUFBSSxDQUFDb0IsUUFBUSxDQUFDO1lBQ1ozQixhQUFhLEVBQUUsU0FBUztZQUN4QkUsUUFBUSxFQUFFOEIsR0FBRyxDQUFDVCxJQUFJLENBQUNhO1VBQ3JCLENBQUMsQ0FBQztRQUNKO1FBQ0EsSUFBSSxFQUFBRCxVQUFBLEdBQUFILEdBQUcsQ0FBQ1QsSUFBSSxjQUFBWSxVQUFBLGdCQUFBQSxVQUFBLEdBQVJBLFVBQUEsQ0FBVUUsTUFBTSxjQUFBRixVQUFBLHVCQUFoQkEsVUFBQSxDQUFrQjVCLE1BQU0sSUFBRyxDQUFDLEVBQUU7VUFDaEMrQixRQUFBLENBQVFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7VUFDeEIsSUFBSSxDQUFDWixRQUFRLENBQUM7WUFDWjNCLGFBQWEsRUFBRSxPQUFPO1lBQ3RCRSxRQUFRLEVBQUU4QixHQUFHLENBQUNULElBQUksQ0FBQ2M7VUFDckIsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxNQUFJO1VBQ0hDLFFBQUEsQ0FBUUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMxQjtRQUNBLENBQUFsQixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRW1CLGNBQWMsTUFBSW5CLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFbUIsY0FBYyxDQUFDUixHQUFHLENBQUM7UUFDL0Q7TUFDRixDQUFDLE1BQU07UUFDTE0sUUFBQSxDQUFRQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQ1osUUFBUSxDQUFDO1VBQ1ozQixhQUFhLEVBQUU7UUFDakIsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDTjtFQUNBeUMsa0JBQWtCQSxDQUFDQyxJQUFJLEVBQUU7SUFDdkIsT0FBT0EsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxFQUFFQyxLQUFLLEtBQUs7TUFDL0IsSUFBSSxJQUFJLENBQUNDLEtBQUssQ0FBQzlDLGFBQWEsSUFBSSxTQUFTLEVBQUU7UUFDekMsT0FBTyxPQUFPNEMsSUFBSSxJQUFJLFFBQVEsZ0JBQzVCbEUsS0FBQSxDQUFBcUUsYUFBQSxjQUFNSCxJQUFVLENBQUMsZ0JBRWpCbEUsS0FBQSxDQUFBcUUsYUFBQTtVQUFLQyxHQUFHLEVBQUVIO1FBQU0sR0FBRSxHQUFHLEdBQUdELElBQUksQ0FBQ0ssTUFBTSxHQUFHLFFBQWMsQ0FDckQ7TUFDSCxDQUFDLE1BQU07UUFDTCxPQUFPLE9BQU9MLElBQUksSUFBSSxRQUFRLGdCQUM1QmxFLEtBQUEsQ0FBQXFFLGFBQUEsY0FBTUgsSUFBVSxDQUFDLGdCQUVqQmxFLEtBQUEsQ0FBQXFFLGFBQUE7VUFBS0MsR0FBRyxFQUFFSDtRQUFNLEdBQUVELElBQUksQ0FBQ00sUUFBYyxDQUN0QztNQUNIO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7RUFDQUMsWUFBWUEsQ0FBQSxFQUFHO0lBQ2IsTUFBTTtNQUFFbkQsYUFBYTtNQUFFQyxTQUFTO01BQUVDO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzRDLEtBQUs7SUFDekQsTUFBTU0sYUFBYSxHQUFHO01BQ3BCYixPQUFPLEVBQUUsTUFBTTtNQUNmYyxLQUFLLEVBQUUsTUFBTTtNQUNiQyxPQUFPLEVBQUU7SUFDWCxDQUFDO0lBQ0QsSUFBSXRELGFBQWEsRUFBRTtNQUNqQixJQUFJQSxhQUFhLElBQUksU0FBUyxFQUFFO1FBQUEsSUFBQXVELHFCQUFBO1FBQzlCLG9CQUNFN0UsS0FBQSxDQUFBcUUsYUFBQSxDQUFDekQsS0FBSztVQUNKa0UsS0FBSyxFQUFFO1lBQUVDLFNBQVMsRUFBRTtVQUFNLENBQUU7VUFDNUJDLE9BQU8sR0FBQUgscUJBQUEsR0FBRUgsYUFBYSxDQUFDcEQsYUFBYSxDQUFDLGNBQUF1RCxxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLElBQUs7VUFDOUNJLElBQUksRUFBRSxTQUFVO1VBQ2hCQyxRQUFRO1FBQUEsQ0FDVCxDQUFDO01BRU4sQ0FBQyxNQUFNO1FBQ0wsb0JBQ0VsRixLQUFBLENBQUFxRSxhQUFBLENBQUN4RCxRQUFRO1VBQ1BzRSxrQkFBa0IsRUFBQyxPQUFPO1VBQzFCQyxTQUFTLEVBQ1A5RCxhQUFhLElBQUksU0FBUyxHQUFHLGlCQUFpQixHQUFHLGVBQ2xEO1VBQ0R3RCxLQUFLLEVBQUU7WUFDTE8sZUFBZSxFQUNiL0QsYUFBYSxJQUFJLFNBQVMsR0FBRyxTQUFTLEdBQUcsU0FBUztZQUNwRGdFLE1BQU0sRUFDSmhFLGFBQWEsSUFBSSxTQUFTLEdBQ3RCLG1CQUFtQixHQUNuQixtQkFBbUI7WUFDekJpRSxZQUFZLEVBQUU7VUFDaEIsQ0FBRTtVQUNGQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUc7UUFBRSxnQkFFeEJ4RixLQUFBLENBQUFxRSxhQUFBLENBQUN4RCxRQUFRLENBQUM0RSxLQUFLO1VBQ2JuQixHQUFHLEVBQUMsR0FBRztVQUNQb0IsTUFBTSxlQUNKMUYsS0FBQSxDQUFBcUUsYUFBQSwyQkFDRXJFLEtBQUEsQ0FBQXFFLGFBQUE7WUFDRVMsS0FBSyxFQUFFO2NBQ0xhLEtBQUssRUFBRXJFLGFBQWEsSUFBSSxTQUFTLEdBQUcsU0FBUyxHQUFHO1lBQ2xEO1VBQUUsR0FFREEsYUFBYSxJQUFJLFNBQVMsZ0JBQ3pCdEIsS0FBQSxDQUFBcUUsYUFBQSxDQUFDNUQseUJBQXlCLE1BQUUsQ0FBQyxnQkFFN0JULEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQzdELG1CQUFtQixNQUFFLENBQ3ZCLEVBQ0FrRSxhQUFhLENBQUNwRCxhQUFhLENBQ3hCLENBQ0gsQ0FDTjtVQUNEc0UsS0FBSyxlQUNINUYsS0FBQSxDQUFBcUUsYUFBQTtZQUNFUyxLQUFLLEVBQUU7Y0FDTGEsS0FBSyxFQUFFckUsYUFBYSxJQUFJLFNBQVMsR0FBRyxTQUFTLEdBQUc7WUFDbEQ7VUFBRSxHQUVEQSxhQUFhLElBQUksU0FBUyxHQUFHLElBQUksR0FBRyxNQUNqQztRQUNQLGdCQUVEdEIsS0FBQSxDQUFBcUUsYUFBQTtVQUNFUyxLQUFLLEVBQUU7WUFDTGUsVUFBVSxFQUNSdkUsYUFBYSxJQUFJLFNBQVMsR0FBRyxTQUFTLEdBQUc7VUFDN0MsQ0FBRTtVQUNGOEQsU0FBUyxFQUFDO1FBQW9CLEdBRTdCLElBQUksQ0FBQ3JCLGtCQUFrQixDQUN0QnpDLGFBQWEsSUFBSSxTQUFTLEdBQUdFLFFBQVEsR0FBR0QsU0FDMUMsQ0FDRyxDQUNTLENBQ1IsQ0FBQztNQUVmO0lBQ0Y7RUFDRjtFQUNBZSxTQUFTQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNXLFFBQVEsQ0FBQztNQUNaOUIsTUFBTSxFQUFFLENBQUM7TUFDVEMsSUFBSSxFQUFFLElBQUk7TUFDVkMsV0FBVyxFQUFFLENBQUM7TUFDZEMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRSxFQUFFO01BQ2JDLFFBQVEsRUFBRTtJQUNaLENBQUMsQ0FBQztFQUNKO0VBQ0FzRSxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUUxRSxJQUFJO01BQUVELE1BQU07TUFBRUUsV0FBVztNQUFFQztJQUFjLENBQUMsR0FBRyxJQUFJLENBQUM4QyxLQUFLO0lBQy9ELE1BQU07TUFDSjJCLGVBQWU7TUFDZkMsY0FBYztNQUNkQyxTQUFTO01BQ1RDLFFBQVE7TUFDUnpEO0lBQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQ0csS0FBSztJQUNkLE1BQU11RCxNQUFNLGdCQUNWbkcsS0FBQSxDQUFBcUUsYUFBQTtNQUFLZSxTQUFTLEVBQUM7SUFBUSxnQkFDckJwRixLQUFBLENBQUFxRSxhQUFBLENBQUNuRSxTQUFTO01BQ1JrRyxPQUFPLEVBQUVBLENBQUEsS0FBTTtRQUNiLElBQUksQ0FBQ2hFLElBQUksQ0FBQyxDQUFDO01BQ2I7SUFBRSxHQUNILGNBRVUsQ0FBQyxFQUVYakIsTUFBTSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUNpRCxLQUFLLENBQUNoRCxJQUFJLGlCQUM3QnBCLEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQ25FLFNBQVM7TUFDUmtHLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO1FBQ2IsSUFBSSxDQUFDbkQsUUFBUSxDQUFDO1VBQ1o5QixNQUFNLEVBQUUsQ0FBQztVQUNURSxXQUFXLEVBQUU7UUFDZixDQUFDLENBQUM7UUFDRixJQUFJNEUsU0FBUyxFQUFFO1VBQ2J0RixPQUFPLENBQ0p1QyxVQUFVLENBQUM7WUFDVkMsR0FBRyxFQUFFK0MsUUFBUTtZQUNiOUUsSUFBSSxFQUFFQSxJQUFJO1lBQ1Z5QixJQUFJLEVBQUUsQ0FBQUosYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVJLElBQUksS0FBSSxDQUFDO1VBQ2hDLENBQUMsQ0FBQyxDQUNEUSxJQUFJLENBQUVDLEdBQVEsSUFBSztZQUNsQixJQUFJQSxHQUFHLENBQUNDLElBQUksSUFBSSxHQUFHLEVBQUU7Y0FDbkIsSUFDRUQsR0FBRyxDQUFDVCxJQUFJLENBQUN3RCxVQUFVLElBQUksQ0FBQyxJQUN4Qi9DLEdBQUcsQ0FBQ1QsSUFBSSxDQUFDeUQsY0FBYyxJQUFJLENBQUMsRUFDNUI7Z0JBQ0EsSUFBSSxDQUFDckQsUUFBUSxDQUFDO2tCQUNaNUIsV0FBVyxFQUFFLENBQUM7a0JBQ2RDLGFBQWEsRUFBRTtnQkFDakIsQ0FBQyxDQUFDO2dCQUNGLElBQUksQ0FBQ2lCLFVBQVUsQ0FBQ25CLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQzVCO2NBQ0Y7Y0FDQSxJQUFJa0MsR0FBRyxDQUFDVCxJQUFJLENBQUN3RCxVQUFVLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQixJQUFJLENBQUNwRCxRQUFRLENBQUM7a0JBQ1ozQixhQUFhLEVBQUUsT0FBTztrQkFDdEJDLFNBQVMsRUFBRStCLEdBQUcsQ0FBQ1QsSUFBSSxDQUFDdEI7Z0JBQ3RCLENBQUMsQ0FBQztnQkFDRjtjQUNGO2NBQ0EsSUFBSStCLEdBQUcsQ0FBQ1QsSUFBSSxDQUFDeUQsY0FBYyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDckQsUUFBUSxDQUFDO2tCQUNaM0IsYUFBYSxFQUFFLFNBQVM7a0JBQ3hCRSxRQUFRLEVBQUU4QixHQUFHLENBQUNULElBQUksQ0FBQzBEO2dCQUNyQixDQUFDLENBQUM7Z0JBQ0Y7Y0FDRjtZQUNGO1VBQ0YsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxNQUFNO1VBQ0wsSUFBSSxDQUFDaEUsVUFBVSxDQUFDbkIsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUM5QjtNQUNGLENBQUU7TUFDRm9GLFFBQVEsRUFBRXBGLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSztNQUM5QnFGLElBQUksZUFBRXpHLEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQy9ELGNBQWMsTUFBRSxDQUFFO01BQ3pCd0UsS0FBSyxFQUFFO1FBQUU0QixVQUFVLEVBQUU7TUFBRztJQUFFLEdBQzNCLDBCQUVVLENBQ1osRUFDQXBGLGFBQWEsSUFBSSxTQUFTLElBQUlILE1BQU0sSUFBSSxDQUFDLGlCQUN4Q25CLEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQ25FLFNBQVM7TUFDUitFLElBQUksRUFBQyxTQUFTO01BQ2RILEtBQUssRUFBRTtRQUFFNEIsVUFBVSxFQUFFO01BQUcsQ0FBRTtNQUMxQk4sT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDYixJQUFJLENBQUM3RCxVQUFVLENBQUMsSUFBSSxDQUFDNkIsS0FBSyxDQUFDaEQsSUFBSSxFQUFFLEtBQUssQ0FBQztNQUN6QyxDQUFFO01BQ0ZvRixRQUFRLEVBQUUsSUFBSSxDQUFDcEMsS0FBSyxDQUFDM0M7SUFBYyxHQUNwQyxnQ0FFVSxDQUNaLEVBQ0FILGFBQWEsSUFBSSxTQUFTLElBQUlILE1BQU0sSUFBSSxDQUFDLGlCQUN4Q25CLEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQ25FLFNBQVM7TUFDUitFLElBQUksRUFBQyxTQUFTO01BQ2RILEtBQUssRUFBRTtRQUFFNEIsVUFBVSxFQUFFO01BQUcsQ0FBRTtNQUMxQk4sT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDYixJQUFJLENBQUM3RCxVQUFVLENBQUMsSUFBSSxDQUFDNkIsS0FBSyxDQUFDaEQsSUFBSSxFQUFFLElBQUksQ0FBQztNQUN4QyxDQUFFO01BQ0ZvRixRQUFRLEVBQUUsSUFBSSxDQUFDcEMsS0FBSyxDQUFDM0M7SUFBYyxHQUNwQywwQkFFVSxDQUVWLENBQ047SUFFRCxvQkFDRXpCLEtBQUEsQ0FBQXFFLGFBQUEsY0FDRyxJQUFJLENBQUN6QixLQUFLLENBQUMrRCxRQUFRLEdBQ2xCLElBQUksQ0FBQy9ELEtBQUssQ0FBQytELFFBQVEsZ0JBRW5CM0csS0FBQSxDQUFBcUUsYUFBQSxDQUFBckUsS0FBQSxDQUFBNEcsUUFBQSxRQUNHLElBQUksQ0FBQ2hFLEtBQUssQ0FBQ2lFLFVBQVUsaUJBQ3BCN0csS0FBQSxDQUFBcUUsYUFBQSxDQUFDbkUsU0FBUztNQUNSK0UsSUFBSSxFQUFDLFNBQVM7TUFDZG1CLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO1FBQ2IsSUFBSSxDQUFDcEUsSUFBSSxDQUFDLENBQUM7TUFDYjtJQUFFLEdBQ0gsMEJBRVUsQ0FFYixDQUNILGVBRURoQyxLQUFBLENBQUFxRSxhQUFBLENBQUNqRSxRQUFRO01BQ1AwRyxLQUFLLEVBQUMsMEJBQU07TUFDWkMsS0FBSyxFQUFFLEdBQUk7TUFDWEMsYUFBYSxFQUFFLGNBQWU7TUFDOUJDLEdBQUcsRUFBRSxJQUFJLENBQUMvRSxRQUFTO01BQ25CaUUsTUFBTSxFQUFFQSxNQUFPO01BQ2ZlLFFBQVEsRUFBRUEsQ0FBQSxLQUFNO1FBQ2QsSUFBSSxDQUFDOUUsSUFBSSxDQUFDLENBQUM7TUFDYjtJQUFFLGdCQUVGcEMsS0FBQSxDQUFBcUUsYUFBQTtNQUFLZSxTQUFTLEVBQUM7SUFBUyxHQUNyQmpFLE1BQU0sSUFBSSxDQUFDLGdCQUNWbkIsS0FBQSxDQUFBcUUsYUFBQSwyQkFDRXJFLEtBQUEsQ0FBQXFFLGFBQUE7TUFBS1MsS0FBSyxFQUFFO1FBQUVxQyxPQUFPLEVBQUU7TUFBTztJQUFFLGdCQUM5Qm5ILEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQ3BFLFNBQVM7TUFDUm1ILFlBQVksRUFBR2hHLElBQUksSUFBSztRQUN0QixJQUFJLENBQUM2QixRQUFRLENBQUM7VUFDWjdCO1FBQ0YsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxLQUFLO01BQ2QsQ0FBRTtNQUNGaUcsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBRTtNQUNqQ0MsTUFBTSxFQUFFLFlBQWE7TUFDckJDLGNBQWMsRUFBRTtJQUFNLGdCQUV0QnZILEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQ25FLFNBQVM7TUFDUitFLElBQUksRUFBRSxTQUFVO01BQ2hCdUIsUUFBUSxFQUFFcEYsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFNO01BQzlCcUYsSUFBSSxlQUFFekcsS0FBQSxDQUFBcUUsYUFBQSxDQUFDOUQsY0FBYyxNQUFFO0lBQUUsR0FDMUIsMEJBRVUsQ0FDRixDQUFDLEVBRVh3RixlQUFlLGlCQUNkL0YsS0FBQSxDQUFBcUUsYUFBQSxDQUFDbEUsV0FBVztNQUFDZ0QsR0FBRyxFQUFFNkM7SUFBZSxnQkFDL0JoRyxLQUFBLENBQUFxRSxhQUFBLENBQUNuRSxTQUFTO01BQUMrRSxJQUFJLEVBQUMsU0FBUztNQUFDSCxLQUFLLEVBQUU7UUFBRTRCLFVBQVUsRUFBRTtNQUFHO0lBQUUsR0FBQywwQkFFMUMsQ0FDQSxDQUVaLENBQUMsZUFDTjFHLEtBQUEsQ0FBQXFFLGFBQUE7TUFBS2UsU0FBUyxFQUFDO0lBQVksZ0JBQ3pCcEYsS0FBQSxDQUFBcUUsYUFBQTtNQUFLZSxTQUFTLEVBQUM7SUFBaUIsZ0JBQzlCcEYsS0FBQSxDQUFBcUUsYUFBQSxDQUFDNUQseUJBQXlCLE1BQUUsQ0FDekIsQ0FBQyxlQUNOVCxLQUFBLENBQUFxRSxhQUFBO01BQUtlLFNBQVMsRUFBQztJQUFvQixnQkFDakNwRixLQUFBLENBQUFxRSxhQUFBLGNBQUssMklBRUEsQ0FBQyxlQUNOckUsS0FBQSxDQUFBcUUsYUFBQSxjQUFLLDJIQUEwQixDQUM1QixDQUNGLENBQUMsRUFFTGpELElBQUksaUJBQ0hwQixLQUFBLENBQUFxRSxhQUFBO01BQUtlLFNBQVMsRUFBQztJQUFhLGdCQUMxQnBGLEtBQUEsQ0FBQXFFLGFBQUE7TUFBS2UsU0FBUyxFQUFDO0lBQVcsZ0JBQ3hCcEYsS0FBQSxDQUFBcUUsYUFBQSxDQUFDaEUsUUFBUTtNQUFDNEUsSUFBSSxFQUFDO0lBQU8sQ0FBRSxDQUNyQixDQUFDLGVBQ05qRixLQUFBLENBQUFxRSxhQUFBO01BQUtlLFNBQVMsRUFBQztJQUFjLGdCQUMzQnBGLEtBQUEsQ0FBQXFFLGFBQUE7TUFBS2UsU0FBUyxFQUFDO0lBQVksR0FBRWhFLElBQUksQ0FBQ29HLElBQVUsQ0FBQyxlQUM3Q3hILEtBQUEsQ0FBQXFFLGFBQUE7TUFBS2UsU0FBUyxFQUFDO0lBQVcsZ0JBQ3hCcEYsS0FBQSxDQUFBcUUsYUFBQSxlQUFNLGdDQUNDLEVBQUMsSUFBSSxDQUFDMUMsVUFBVSxDQUFDUCxJQUFJLENBQUNxRyxJQUFJLENBQUMsR0FBRyxJQUMvQixDQUNILENBQ0YsQ0FDRixDQUVKLENBQUMsZ0JBRU56SCxLQUFBLENBQUFxRSxhQUFBLDJCQUNFckUsS0FBQSxDQUFBcUUsYUFBQSxDQUFDM0QsS0FBSztNQUNKeUIsT0FBTyxFQUFFZCxXQUFZO01BQ3JCcUcsS0FBSyxFQUFFLENBQ0w7UUFDRVosS0FBSyxFQUFFO01BQ1QsQ0FBQyxFQUNEO1FBQ0VBLEtBQUssRUFBRTtNQUNULENBQUM7SUFDRCxDQUNILENBQUMsZUFDRjlHLEtBQUEsQ0FBQXFFLGFBQUE7TUFBS2UsU0FBUyxFQUFFO0lBQWlCLEdBQUUsSUFBSSxDQUFDWCxZQUFZLENBQUMsQ0FBTyxDQUN6RCxDQUVKLENBQ0csQ0FDUCxDQUFDO0VBRVY7QUFDRjtBQUNBLGVBQWUzRCxhQUFhIn0=
|
|
@@ -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","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","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":";;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAO,cAAc;AACrB,OAAOC,SAAS,MAAM,WAAW;AACjC,OAAOC,SAAS,MAAM,WAAW;AACjC,OAAOC,WAAW,MAAM,aAAa;AACrC,OAAOC,QAAQ,MAAM,UAAU;AAC/B,OAAOC,QAAQ,MAAM,oBAAoB;AACzC,SACEC,cAAc,EACdC,cAAc,EACdC,mBAAmB,EACnBC,yBAAyB,QACpB,mBAAmB;AAC1B,OAAOC,KAAK,MAAM,UAAU;AAC5B,OAAOC,OAAO,MAAM,UAAU;AAE9B,OAAOC,KAAK,MAAM,UAAU;AAC5B,OAAOC,QAAQ,MAAM,aAAa;AAkBlC,MAAMC,aAAa,SAASd,KAAK,CAACe,aAAa,CAAoB;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,gBACzD;MACNC,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,IAAI;MACVC,WAAW,EAAE,CAAC;MACdC,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,EAAE;MACbC,QAAQ,EAAE,EAAE;MACZC,aAAa,EAAE;IACjB,CAAC;IAAAP,eAAA,gCACUlB,KAAK,CAAC0B,SAAS,CAAM,CAAC;EAAA;EACjCC,UAAUA,CAAA,EAAa;IAAA,IAAZC,MAAM,GAAAX,SAAA,CAAAY,MAAA,QAAAZ,SAAA,QAAAa,SAAA,GAAAb,SAAA,MAAG,CAAC;IACnB,OAAO,CAACW,MAAM,GAAG,IAAI,EAAEG,OAAO,CAAC,CAAC,CAAC;EACnC;EACAC,IAAIA,CAAA,EAAG;IAAA,IAAAC,qBAAA;IACL,CAAAA,qBAAA,OAAI,CAACC,QAAQ,CAACC,OAAO,cAAAF,qBAAA,eAArBA,qBAAA,CAAuBD,IAAI,CAAC,CAAC;EAC/B;EACAI,IAAIA,CAAA,EAAG;IAAA,IAAAC,sBAAA;IACL,CAAAA,sBAAA,OAAI,CAACH,QAAQ,CAACC,OAAO,cAAAE,sBAAA,eAArBA,sBAAA,CAAuBD,IAAI,CAAC,CAAC;IAC7B,IAAI,CAACE,SAAS,CAAC,CAAC;EAClB;EACAC,UAAUA,CAACnB,IAAI,EAAEoB,WAAW,EAAE;IAC5B,MAAM;MAAEC,aAAa,GAAG,CAAC,CAAC;MAAEC,SAAS;MAAEC,WAAW,GAAG,CAAC;IAAE,CAAC,GAAG,IAAI,CAACC,KAAK;IACtE,IAAI;QAAEC,IAAI,GAAG,CAAC;MAAa,CAAC,GAAGJ,aAAa;MAAxBK,MAAM,GAAAC,wBAAA,CAAKN,aAAa,EAAAO,SAAA;IAC5C,IAAI,CAACC,QAAQ,CAAC;MACZxB,aAAa,EAAE;IACjB,CAAC,CAAC;IACF;;IAEAd,OAAO,CACJuC,UAAU,CACT;MACEC,GAAG,EAAET,SAAS;MACdG,IAAI,EAAAO,aAAA,CAAAA,aAAA,KAAOP,IAAI;QAAEL,WAAW,EAAEA;MAAW,EAAE;MAC3CpB,IAAI,EAAEA;IACR,CAAC,EACD0B,MACF,CAAC,CACAO,IAAI,CAAEC,GAAQ,IAAK;MAClB,IAAI,CAACL,QAAQ,CAAC;QACZxB,aAAa,EAAE;MACjB,CAAC,CAAC;MACF,IAAI6B,GAAG,CAACC,IAAI,IAAI,GAAG,EAAE;QAAA,IAAAC,SAAA,EAAAC,UAAA;QACnB;QACA,IAAI,CAACR,QAAQ,CAAC;UACZ3B,aAAa,EAAE;QACjB,CAAC,CAAC;QACF,IAAI,EAAAkC,SAAA,GAAAF,GAAG,CAACT,IAAI,cAAAW,SAAA,gBAAAA,SAAA,GAARA,SAAA,CAAUE,QAAQ,cAAAF,SAAA,uBAAlBA,SAAA,CAAoB3B,MAAM,IAAG,CAAC,EAAE;UAClC,IAAI,CAACoB,QAAQ,CAAC;YACZ3B,aAAa,EAAE,SAAS;YACxBE,QAAQ,EAAE8B,GAAG,CAACT,IAAI,CAACa;UACrB,CAAC,CAAC;QACJ;QACA,IAAI,EAAAD,UAAA,GAAAH,GAAG,CAACT,IAAI,cAAAY,UAAA,gBAAAA,UAAA,GAARA,UAAA,CAAUE,MAAM,cAAAF,UAAA,uBAAhBA,UAAA,CAAkB5B,MAAM,IAAG,CAAC,EAAE;UAChC+B,QAAA,CAAQC,OAAO,CAAC,OAAO,CAAC;UACxB,IAAI,CAACZ,QAAQ,CAAC;YACZ3B,aAAa,EAAE,OAAO;YACtBE,QAAQ,EAAE8B,GAAG,CAACT,IAAI,CAACc;UACrB,CAAC,CAAC;QACJ,CAAC,MAAI;UACHC,QAAA,CAAQC,OAAO,CAAC,OAAO,CAAC;QAC1B;QACA,CAAAlB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmB,cAAc,MAAInB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmB,cAAc,CAACR,GAAG,CAAC;QAC/D;MACF,CAAC,MAAM;QACLM,QAAA,CAAQC,OAAO,CAAC,OAAO,CAAC;QACxB,IAAI,CAACZ,QAAQ,CAAC;UACZ3B,aAAa,EAAE;QACjB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACN;EACAyC,kBAAkBA,CAACC,IAAI,EAAE;IACvB,OAAOA,IAAI,CAACC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MAC/B,IAAI,IAAI,CAACC,KAAK,CAAC9C,aAAa,IAAI,SAAS,EAAE;QACzC,OAAO,OAAO4C,IAAI,IAAI,QAAQ,gBAC5BlE,KAAA,CAAAqE,aAAA,cAAMH,IAAU,CAAC,gBAEjBlE,KAAA,CAAAqE,aAAA;UAAKC,GAAG,EAAEH;QAAM,GAAE,GAAG,GAAGD,IAAI,CAACK,MAAM,GAAG,QAAc,CACrD;MACH,CAAC,MAAM;QACL,OAAO,OAAOL,IAAI,IAAI,QAAQ,gBAC5BlE,KAAA,CAAAqE,aAAA,cAAMH,IAAU,CAAC,gBAEjBlE,KAAA,CAAAqE,aAAA;UAAKC,GAAG,EAAEH;QAAM,GAAED,IAAI,CAACM,QAAc,CACtC;MACH;IACF,CAAC,CAAC;EACJ;EACAC,YAAYA,CAAA,EAAG;IACb,MAAM;MAAEnD,aAAa;MAAEC,SAAS;MAAEC;IAAS,CAAC,GAAG,IAAI,CAAC4C,KAAK;IACzD,MAAMM,aAAa,GAAG;MACpBb,OAAO,EAAE,MAAM;MACfc,KAAK,EAAE,MAAM;MACbC,OAAO,EAAE;IACX,CAAC;IACD,IAAItD,aAAa,EAAE;MACjB,IAAIA,aAAa,IAAI,SAAS,EAAE;QAAA,IAAAuD,qBAAA;QAC9B,oBACE7E,KAAA,CAAAqE,aAAA,CAACzD,KAAK;UACJkE,KAAK,EAAE;YAAEC,SAAS,EAAE;UAAM,CAAE;UAC5BC,OAAO,GAAAH,qBAAA,GAAEH,aAAa,CAACpD,aAAa,CAAC,cAAAuD,qBAAA,cAAAA,qBAAA,GAAI,IAAK;UAC9CI,IAAI,EAAE,SAAU;UAChBC,QAAQ;QAAA,CACT,CAAC;MAEN,CAAC,MAAM;QACL,oBACElF,KAAA,CAAAqE,aAAA,CAACxD,QAAQ;UACPsE,kBAAkB,EAAC,OAAO;UAC1BC,SAAS,EACP9D,aAAa,IAAI,SAAS,GAAG,iBAAiB,GAAG,eAClD;UACDwD,KAAK,EAAE;YACLO,eAAe,EACb/D,aAAa,IAAI,SAAS,GAAG,SAAS,GAAG,SAAS;YACpDgE,MAAM,EACJhE,aAAa,IAAI,SAAS,GACtB,mBAAmB,GACnB,mBAAmB;YACzBiE,YAAY,EAAE;UAChB,CAAE;UACFC,gBAAgB,EAAE,CAAC,GAAG;QAAE,gBAExBxF,KAAA,CAAAqE,aAAA,CAACxD,QAAQ,CAAC4E,KAAK;UACbnB,GAAG,EAAC,GAAG;UACPoB,MAAM,eACJ1F,KAAA,CAAAqE,aAAA,2BACErE,KAAA,CAAAqE,aAAA;YACES,KAAK,EAAE;cACLa,KAAK,EAAErE,aAAa,IAAI,SAAS,GAAG,SAAS,GAAG;YAClD;UAAE,GAEDA,aAAa,IAAI,SAAS,gBACzBtB,KAAA,CAAAqE,aAAA,CAAC5D,yBAAyB,MAAE,CAAC,gBAE7BT,KAAA,CAAAqE,aAAA,CAAC7D,mBAAmB,MAAE,CACvB,EACAkE,aAAa,CAACpD,aAAa,CACxB,CACH,CACN;UACDsE,KAAK,eACH5F,KAAA,CAAAqE,aAAA;YACES,KAAK,EAAE;cACLa,KAAK,EAAErE,aAAa,IAAI,SAAS,GAAG,SAAS,GAAG;YAClD;UAAE,GAEDA,aAAa,IAAI,SAAS,GAAG,IAAI,GAAG,MACjC;QACP,gBAEDtB,KAAA,CAAAqE,aAAA;UACES,KAAK,EAAE;YACLe,UAAU,EACRvE,aAAa,IAAI,SAAS,GAAG,SAAS,GAAG;UAC7C,CAAE;UACF8D,SAAS,EAAC;QAAoB,GAE7B,IAAI,CAACrB,kBAAkB,CACtBzC,aAAa,IAAI,SAAS,GAAGE,QAAQ,GAAGD,SAC1C,CACG,CACS,CACR,CAAC;MAEf;IACF;EACF;EACAe,SAASA,CAAA,EAAG;IACV,IAAI,CAACW,QAAQ,CAAC;MACZ9B,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,IAAI;MACVC,WAAW,EAAE,CAAC;MACdC,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,EAAE;MACbC,QAAQ,EAAE;IACZ,CAAC,CAAC;EACJ;EACAsE,MAAMA,CAAA,EAAG;IACP,MAAM;MAAE1E,IAAI;MAAED,MAAM;MAAEE,WAAW;MAAEC;IAAc,CAAC,GAAG,IAAI,CAAC8C,KAAK;IAC/D,MAAM;MACJ2B,eAAe;MACfC,cAAc;MACdC,SAAS;MACTC,QAAQ;MACRzD;IACF,CAAC,GAAG,IAAI,CAACG,KAAK;IACd,MAAMuD,MAAM,gBACVnG,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAQ,gBACrBpF,KAAA,CAAAqE,aAAA,CAACnE,SAAS;MACRkG,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAChE,IAAI,CAAC,CAAC;MACb;IAAE,GACH,cAEU,CAAC,EAEXjB,MAAM,IAAI,CAAC,IAAI,IAAI,CAACiD,KAAK,CAAChD,IAAI,iBAC7BpB,KAAA,CAAAqE,aAAA,CAACnE,SAAS;MACRkG,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACnD,QAAQ,CAAC;UACZ9B,MAAM,EAAE,CAAC;UACTE,WAAW,EAAE;QACf,CAAC,CAAC;QACF,IAAI4E,SAAS,EAAE;UACbtF,OAAO,CACJuC,UAAU,CAAC;YACVC,GAAG,EAAE+C,QAAQ;YACb9E,IAAI,EAAEA,IAAI;YACVyB,IAAI,EAAE,CAAAJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,IAAI,KAAI,CAAC;UAChC,CAAC,CAAC,CACDQ,IAAI,CAAEC,GAAQ,IAAK;YAClB,IAAIA,GAAG,CAACC,IAAI,IAAI,GAAG,EAAE;cACnB,IACED,GAAG,CAACT,IAAI,CAACwD,UAAU,IAAI,CAAC,IACxB/C,GAAG,CAACT,IAAI,CAACyD,cAAc,IAAI,CAAC,EAC5B;gBACA,IAAI,CAACrD,QAAQ,CAAC;kBACZ5B,WAAW,EAAE,CAAC;kBACdC,aAAa,EAAE;gBACjB,CAAC,CAAC;gBACF,IAAI,CAACiB,UAAU,CAACnB,IAAI,EAAE,KAAK,CAAC;gBAC5B;cACF;cACA,IAAIkC,GAAG,CAACT,IAAI,CAACwD,UAAU,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAACpD,QAAQ,CAAC;kBACZ3B,aAAa,EAAE,OAAO;kBACtBC,SAAS,EAAE+B,GAAG,CAACT,IAAI,CAACtB;gBACtB,CAAC,CAAC;gBACF;cACF;cACA,IAAI+B,GAAG,CAACT,IAAI,CAACyD,cAAc,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAACrD,QAAQ,CAAC;kBACZ3B,aAAa,EAAE,SAAS;kBACxBE,QAAQ,EAAE8B,GAAG,CAACT,IAAI,CAAC0D;gBACrB,CAAC,CAAC;gBACF;cACF;YACF;UACF,CAAC,CAAC;QACN,CAAC,MAAM;UACL,IAAI,CAAChE,UAAU,CAACnB,IAAI,EAAE,KAAK,CAAC;QAC9B;MACF,CAAE;MACFoF,QAAQ,EAAEpF,IAAI,GAAG,KAAK,GAAG,IAAK;MAC9BqF,IAAI,eAAEzG,KAAA,CAAAqE,aAAA,CAAC/D,cAAc,MAAE,CAAE;MACzBwE,KAAK,EAAE;QAAE4B,UAAU,EAAE;MAAG;IAAE,GAC3B,0BAEU,CACZ,EACApF,aAAa,IAAI,SAAS,IAAIH,MAAM,IAAI,CAAC,iBACxCnB,KAAA,CAAAqE,aAAA,CAACnE,SAAS;MACR+E,IAAI,EAAC,SAAS;MACdH,KAAK,EAAE;QAAE4B,UAAU,EAAE;MAAG,CAAE;MAC1BN,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAC7D,UAAU,CAAC,IAAI,CAAC6B,KAAK,CAAChD,IAAI,EAAE,KAAK,CAAC;MACzC,CAAE;MACFoF,QAAQ,EAAE,IAAI,CAACpC,KAAK,CAAC3C;IAAc,GACpC,gCAEU,CACZ,EACAH,aAAa,IAAI,SAAS,IAAIH,MAAM,IAAI,CAAC,iBACxCnB,KAAA,CAAAqE,aAAA,CAACnE,SAAS;MACR+E,IAAI,EAAC,SAAS;MACdH,KAAK,EAAE;QAAE4B,UAAU,EAAE;MAAG,CAAE;MAC1BN,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAC7D,UAAU,CAAC,IAAI,CAAC6B,KAAK,CAAChD,IAAI,EAAE,IAAI,CAAC;MACxC,CAAE;MACFoF,QAAQ,EAAE,IAAI,CAACpC,KAAK,CAAC3C;IAAc,GACpC,0BAEU,CAEV,CACN;IAED,oBACEzB,KAAA,CAAAqE,aAAA,cACG,IAAI,CAACzB,KAAK,CAAC+D,QAAQ,GAClB,IAAI,CAAC/D,KAAK,CAAC+D,QAAQ,gBAEnB3G,KAAA,CAAAqE,aAAA,CAAArE,KAAA,CAAA4G,QAAA,QACG,IAAI,CAAChE,KAAK,CAACiE,UAAU,iBACpB7G,KAAA,CAAAqE,aAAA,CAACnE,SAAS;MACR+E,IAAI,EAAC,SAAS;MACdmB,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACpE,IAAI,CAAC,CAAC;MACb;IAAE,GACH,0BAEU,CAEb,CACH,eAEDhC,KAAA,CAAAqE,aAAA,CAACjE,QAAQ;MACP0G,KAAK,EAAC,0BAAM;MACZC,KAAK,EAAE,GAAI;MACXC,aAAa,EAAE,cAAe;MAC9BC,GAAG,EAAE,IAAI,CAAC/E,QAAS;MACnBiE,MAAM,EAAEA,MAAO;MACfe,QAAQ,EAAEA,CAAA,KAAM;QACd,IAAI,CAAC9E,IAAI,CAAC,CAAC;MACb;IAAE,gBAEFpC,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAS,GACrBjE,MAAM,IAAI,CAAC,gBACVnB,KAAA,CAAAqE,aAAA,2BACErE,KAAA,CAAAqE,aAAA;MAAKS,KAAK,EAAE;QAAEqC,OAAO,EAAE;MAAO;IAAE,gBAC9BnH,KAAA,CAAAqE,aAAA,CAACpE,SAAS;MACRmH,YAAY,EAAGhG,IAAI,IAAK;QACtB,IAAI,CAAC6B,QAAQ,CAAC;UACZ7B;QACF,CAAC,CAAC;QACF,OAAO,KAAK;MACd,CAAE;MACFiG,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,CAAE;MACjCC,MAAM,EAAE,YAAa;MACrBC,cAAc,EAAE;IAAM,gBAEtBvH,KAAA,CAAAqE,aAAA,CAACnE,SAAS;MACR+E,IAAI,EAAE,SAAU;MAChBuB,QAAQ,EAAEpF,IAAI,GAAG,IAAI,GAAG,KAAM;MAC9BqF,IAAI,eAAEzG,KAAA,CAAAqE,aAAA,CAAC9D,cAAc,MAAE;IAAE,GAC1B,0BAEU,CACF,CAAC,EAEXwF,eAAe,iBACd/F,KAAA,CAAAqE,aAAA,CAAClE,WAAW;MAACgD,GAAG,EAAE6C;IAAe,gBAC/BhG,KAAA,CAAAqE,aAAA,CAACnE,SAAS;MAAC+E,IAAI,EAAC,SAAS;MAACH,KAAK,EAAE;QAAE4B,UAAU,EAAE;MAAG;IAAE,GAAC,0BAE1C,CACA,CAEZ,CAAC,eACN1G,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAY,gBACzBpF,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAiB,gBAC9BpF,KAAA,CAAAqE,aAAA,CAAC5D,yBAAyB,MAAE,CACzB,CAAC,eACNT,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAoB,gBACjCpF,KAAA,CAAAqE,aAAA,cAAK,2IAEA,CAAC,eACNrE,KAAA,CAAAqE,aAAA,cAAK,2HAA0B,CAC5B,CACF,CAAC,EAELjD,IAAI,iBACHpB,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAa,gBAC1BpF,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAW,gBACxBpF,KAAA,CAAAqE,aAAA,CAAChE,QAAQ;MAAC4E,IAAI,EAAC;IAAO,CAAE,CACrB,CAAC,eACNjF,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAc,gBAC3BpF,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAY,GAAEhE,IAAI,CAACoG,IAAU,CAAC,eAC7CxH,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAC;IAAW,gBACxBpF,KAAA,CAAAqE,aAAA,eAAM,gCACC,EAAC,IAAI,CAAC1C,UAAU,CAACP,IAAI,CAACqG,IAAI,CAAC,GAAG,IAC/B,CACH,CACF,CACF,CAEJ,CAAC,gBAENzH,KAAA,CAAAqE,aAAA,2BACErE,KAAA,CAAAqE,aAAA,CAAC3D,KAAK;MACJyB,OAAO,EAAEd,WAAY;MACrBqG,KAAK,EAAE,CACL;QACEZ,KAAK,EAAE;MACT,CAAC,EACD;QACEA,KAAK,EAAE;MACT,CAAC;IACD,CACH,CAAC,eACF9G,KAAA,CAAAqE,aAAA;MAAKe,SAAS,EAAE;IAAiB,GAAE,IAAI,CAACX,YAAY,CAAC,CAAO,CACzD,CAEJ,CACG,CACP,CAAC;EAEV;AACF;AACA,eAAe3D,aAAa"}
|