nsc-react-component 4.4.4 → 4.4.6

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.
@@ -26,7 +26,7 @@ class NscChart extends PureComponent {
26
26
  _defineProperty(this, "chartRef", /*#__PURE__*/React.createRef());
27
27
  _defineProperty(this, "myChart", null);
28
28
  _defineProperty(this, "store", {});
29
- _defineProperty(this, "defaultColors", ["#5B96F7", "#3C6CFE", "#818FFF", "#73C8FF", "#97DCFB", "#EF6F5B", "#F8BF70", "#57C39E"]);
29
+ _defineProperty(this, "defaultColors", ["#5B96F7", "#73C8FF", "#3C6CFE", "#818FFF", "#97DCFB", "#EF6F5B", "#F8BF70", "#57C39E"]);
30
30
  _defineProperty(this, "state", {
31
31
  dataSource: null,
32
32
  legendData: [],
@@ -390,9 +390,9 @@ class NscChart extends PureComponent {
390
390
  newOption.series = this.objectConversion(newOption.series, newDatas, dataMap);
391
391
  const chartColors = this.generateColors(seriesCount);
392
392
  newOption = this.getNewOption(_objectSpread({}, newOption));
393
- newOption = _objectSpread({
394
- color: chartColors
395
- }, newOption);
393
+ newOption = _objectSpread(_objectSpread({}, newOption), {}, {
394
+ color: newOption.color || chartColors
395
+ });
396
396
  if (this.myChart) {
397
397
  this.myChart.dispose();
398
398
  }
@@ -473,4 +473,4 @@ class NscChart extends PureComponent {
473
473
  }
474
474
  }
475
475
  export default NscChart;
476
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImxlZ2VuZERhdGEiLCJjb2xvcnMiLCJkYXRhIiwic3RvcmUiLCJjaGlsZHJlbiIsIm9wdGlvbiIsIm9wdGlvbnMiLCJhdXRvTG9hZCIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJzdG9yZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIl9vYmplY3RTcHJlYWQiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiaXNGaXJzdCIsImluaXQiLCJkYXRhQ2hhbmdlZCIsImNvbXBvbmVudERpZE1vdW50IiwibXlDaGFydCIsImNoYXJ0UmVmIiwiY3VycmVudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90IiwiSlNPTiIsInN0cmluZ2lmeSIsInJlU2V0Q2hhcnQiLCJpc1N0cmluZyIsInYiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRpc3Bvc2UiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2hhcnRSZXNpemUiLCJiaW5kIiwiaXNSZXBsYWNlIiwidGVzdCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJnZXRSYW5kb21Db2xvciIsImNvbG9yIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwidG9TdHJpbmciLCJwYWRTdGFydCIsImdlbmVyYXRlQ29sb3JzIiwiY291bnQiLCJkZWZhdWx0Q29sb3JzIiwic2xpY2UiLCJuZWVkZWQiLCJpIiwicHVzaCIsImRhdGFDb252ZXJzaW9uIiwiZGF0YXMiLCJkYXRhTWFwIiwicmVzdWx0IiwibWFwIiwiaXRlbSIsInZhbHVlIiwidGVtcE9iaiIsImtleSIsIm9iamVjdENvbnZlcnNpb24iLCJvYmoiLCJ0eXBlIiwibGVnZW5kIiwiYWxsRGF0YSIsImNhbGN1bGF0ZVBlcmNlbnRhZ2VzIiwidG90YWwiLCJyZWR1Y2UiLCJzdW0iLCJuYW1lIiwicGVyY2VudCIsImluZGV4IiwiY29uY2F0IiwidG9GaXhlZCIsIm90aGVyc1RvdGFsIiwicGFyc2VGbG9hdCIsImxhc3RQZXJjZW50IiwiZ2V0TmV3T3B0aW9uIiwibmV3T3B0aW9uIiwic2VyaWVzIiwiQXJyYXkiLCJ0b29sdGlwIiwidHJpZ2dlciIsInNlcmllc0l0ZW0iLCJiYXJXaWR0aCIsIml0ZW1TdHlsZSIsImJvcmRlclJhZGl1cyIsInBpZURhdGFDb3VudCIsInBpZUNvbG9ycyIsInJhZGl1cyIsImxhYmVsIiwic2hvdyIsImJvcmRlckNvbG9yIiwiYm9yZGVyV2lkdGgiLCJfbXlDaGFydCRnZXRaciIsIl9teUNoYXJ0JGdldFpyMiIsIk9uQ2xpY2siLCJPblpyQ2xpY2siLCJzdGF0ZSIsIm5ld0RhdGFzIiwic2VyaWVzQ291bnQiLCJkZWZhdWx0T3B0aW9uIiwieEF4aXMiLCJ5QXhpcyIsImNoYXJ0Q29sb3JzIiwiY2xlYXIiLCJvZmYiLCJnZXRaciIsInNldE9wdGlvbiIsIm9uIiwicGFyYW1zIiwic2V0VGltZW91dCIsInJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW5kZXIiLCJ3aWR0aCIsImhlaWdodCIsImJveFN0eWxlIiwiZGlzcGxheSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInJlZiIsImZsZXgiLCJjbGFzc05hbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJpZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvY2hhcnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSBcImVjaGFydHNcIjtcclxuaW1wb3J0IHsgRUNoYXJ0cyB9IGZyb20gXCJlY2hhcnRzL2xpYi9lY2hhcnRzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UsIHB4MnZ3IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbnRlcmZhY2UgQ2hhcnRQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIG9wdGlvbjogYW55O1xyXG4gIGRhdGE/OiBBcnJheTxPYmplY3Q+IHwgT2JqZWN0O1xyXG4gIHdpZHRoOiBudW1iZXIgfCBzdHJpbmc7IC8v5Zu+6KGo5a695bqmXHJcbiAgaGVpZ2h0OiBudW1iZXIgfCBzdHJpbmc7IC8v5Zu+6KGo6ZW/5bqmXHJcbiAgYXV0b0xvYWQ/OiBib29sZWFuOyAvL+aVsOaNruaUueWPmO+8jOiHquWKqOWIt+aWsOWbvuihqCzpu5jorqR0cnVlXHJcbiAgT25DbGljaz86IChwYXJhbXM6IGFueSwgZT86IGFueSkgPT4gdm9pZDsgLy/lm77ooajngrnlh7vkuovku7ZcclxuICBPblpyQ2xpY2s/OiAocGFyYW1zOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7IC8v5Zu+6KGo54K55Ye75LqL5Lu2XHJcbiAgbGVnZW5kPzogYm9vbGVhbjsgLy/oh6rlrprkuYnlm77kvovmmK/lkKbmmL7npLog77yM55So5LqO6aW85Zu+XHJcbiAgW3Byb05hbWVzOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8vZGF0YeekuuS+i1xyXG4vKipcclxuIOaVsOe7hO+8mlxyXG4gZGF0YT1be25hbWU6JzHmnIgnLHZhbHVlOjIwfSx7bmFtZTonMuaciCcsdmFsdWU6MTB9LHtuYW1lOicz5pyIJyx2YWx1ZToyNX1dXHJcbiDlr7nosaFcclxuIGRhdGE9e25hbWU6Wycx5pyIJywnMuaciCcsJzPmnIgnXSx2YWx1ZTpbMjAsMzAsNDBdfVxyXG4gKi9cclxuY2xhc3MgTnNjQ2hhcnQgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PENoYXJ0UHJvcHM+IHtcclxuICBjaGFydFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICBteUNoYXJ0OiBFQ2hhcnRzIHwgbnVsbCA9IG51bGw7XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGRlZmF1bHRDb2xvcnMgPSBbXHJcbiAgICBcIiM1Qjk2RjdcIixcclxuICAgIFwiIzNDNkNGRVwiLFxyXG4gICAgXCIjODE4RkZGXCIsXHJcbiAgICBcIiM3M0M4RkZcIixcclxuICAgIFwiIzk3RENGQlwiLFxyXG4gICAgXCIjRUY2RjVCXCIsXHJcbiAgICBcIiNGOEJGNzBcIixcclxuICAgIFwiIzU3QzM5RVwiLFxyXG4gIF0gYXMgc3RyaW5nW107XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBudWxsLFxyXG4gICAgbGVnZW5kRGF0YTogW10sXHJcbiAgICBjb2xvcnM6IFtdLFxyXG4gIH07XHJcbiAgaXNGaXJzdCA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIG9wdGlvbjogb3B0aW9ucyxcclxuICAgICAgYXV0b0xvYWQgPSB0cnVlLFxyXG4gICAgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgeyB1cmwsIGxpc3RlbmVyczogbGlzdGVuZXJzUG9wcyA9IHt9LCAuLi5zdG9yZXMgfSA9IHN0b3JlO1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgWRhdGHjgIFvcHRpb27kuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoX3RoaXMuaXNGaXJzdCAmJiBhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaXNGaXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbW9kZWxEYXRhIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYXV0b0xvYWQpIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmluaXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh1cmwgJiYgZGF0YSA9PSBudWxsKSB7XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGF1dG9Mb2FkID0gdHJ1ZSwgc3RvcmUsIG9wdGlvbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIOa3u+WKoOajgOafpemBv+WFjemHjeWkjeWIneWni+WMllxyXG4gICAgaWYgKHRoaXMubXlDaGFydCB8fCAhdGhpcy5jaGFydFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChkYXRhICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSBlbHNlIGlmICghZGF0YSAmJiAhc3RvcmU/LnVybCAmJiBvcHRpb24pIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PENoYXJ0UHJvcHM+LFxyXG4gICAgcHJldlN0YXRlOiBSZWFkb25seTx7fT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBhdXRvTG9hZCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoYXV0b0xvYWQpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHByZXZQcm9wcy5kYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5kYXRhKSkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZXZQcm9wcy5vcHRpb24pICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLm9wdGlvbilcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlU2V0Q2hhcnQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgaXNTdHJpbmcodikge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiO1xyXG4gIH1cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIC8vIOa4heeQhiBlY2hhcnRzIOWunuS+i1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQuZGlzcG9zZSgpO1xyXG4gICAgICB0aGlzLm15Q2hhcnQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOenu+mZpOS6i+S7tuebkeWQrOWZqFxyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGlzUmVwbGFjZSh2KSB7XHJcbiAgICByZXR1cm4gL157Lip9JC9naS50ZXN0KHYpO1xyXG4gIH1cclxuICByZXBsYWNlKHYpIHtcclxuICAgIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZG9tQ29sb3IoKSB7XHJcbiAgICBsZXQgY29sb3I7XHJcbiAgICBkbyB7XHJcbiAgICAgIGNvbG9yID1cclxuICAgICAgICBcIiNcIiArXHJcbiAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMHhmZmZmZmYpXHJcbiAgICAgICAgICAudG9TdHJpbmcoMTYpXHJcbiAgICAgICAgICAucGFkU3RhcnQoNiwgXCIwXCIpO1xyXG4gICAgfSB3aGlsZSAoY29sb3IgPT09IFwiI0ZGRkZGRlwiIHx8IGNvbG9yID09PSBcIiMwMDAwMDBcIik7XHJcbiAgICByZXR1cm4gY29sb3I7XHJcbiAgfVxyXG4gIGdlbmVyYXRlQ29sb3JzKGNvdW50OiBudW1iZXIpOiBzdHJpbmdbXSB7XHJcbiAgICAvLyDlpoLmnpzpnIDopoHnmoTpopzoibLmlbDph4/lsJHkuo7miJbnrYnkuo7pu5jorqTpopzoibLmlbDph4/vvIznm7TmjqXov5Tlm57lr7nlupTmlbDph4/nmoTpu5jorqTpopzoibJcclxuICAgIGlmIChjb3VudCA8PSB0aGlzLmRlZmF1bHRDb2xvcnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRDb2xvcnMuc2xpY2UoMCwgY291bnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWQpuWIme+8jOWFiOWkjeWItuaJgOaciem7mOiupOminOiJslxyXG4gICAgY29uc3QgY29sb3JzID0gWy4uLnRoaXMuZGVmYXVsdENvbG9yc107XHJcblxyXG4gICAgLy8g55Sf5oiQ6aKd5aSW55qE6ZqP5py66aKc6ImyXHJcbiAgICBjb25zdCBuZWVkZWQgPSBjb3VudCAtIHRoaXMuZGVmYXVsdENvbG9ycy5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5lZWRlZDsgaSsrKSB7XHJcbiAgICAgIGNvbG9ycy5wdXNoKHRoaXMuZ2V0UmFuZG9tQ29sb3IoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgY29sb3JzIH0pO1xyXG4gICAgcmV0dXJuIGNvbG9ycztcclxuICB9XHJcbiAgZGF0YUNvbnZlcnNpb24oZGF0YSwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pc1N0cmluZyhkYXRhKSAmJiB0aGlzLmlzUmVwbGFjZShkYXRhKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGFNYXBbdGhpcy5yZXBsYWNlKGRhdGEpXTtcclxuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbT8udmFsdWUgfHwgbnVsbDtcclxuICAgICAgICAgIGlmICh2ICYmIHRoaXMuaXNSZXBsYWNlKHYpKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHYsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQgPSBkYXRhO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gW107XHJcbiAgICAgICAgaWYgKGlzQXJyYXkoZGF0YXMpKSB7XHJcbiAgICAgICAgICBkYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgdmFyIHRlbXBPYmogPSB7fTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIGl0ZW0pIHtcclxuICAgICAgICAgICAgICBsZXQgdiA9IGl0ZW1ba2V5XTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlcGxhY2UodikpIHtcclxuICAgICAgICAgICAgICAgIHRlbXBPYmpba2V5XSA9IGl0ZW1bdGhpcy5yZXBsYWNlKHYpXTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gdjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzdWx0LnB1c2godGVtcE9iaik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBvYmplY3RDb252ZXJzaW9uKG9iaiwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCB0ZW1wT2JqOiBhbnk7XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIGlmIChpc0FycmF5KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gWy4uLm9ial07XHJcbiAgICAgICAgdGVtcE9iai5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGlmIChpdGVtLmRhdGEpIHtcclxuICAgICAgICAgICAgaXRlbS5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbihpdGVtLmRhdGEsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU3RyaW5nKG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0gb2JqO1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iaiwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iaikpIHtcclxuICAgICAgICB0ZW1wT2JqID0geyAuLi5vYmogfTtcclxuICAgICAgICB0ZW1wT2JqLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHRlbXBPYmouZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgIGlmICh0ZW1wT2JqLnR5cGUgPT09IFwicGllXCIgJiYgdGhpcy5wcm9wcy5sZWdlbmQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgbGV0IGFsbERhdGEgPSB0ZW1wT2JqLmRhdGE7XHJcbiAgICAgICAgICBjb25zdCBsZWdlbmREYXRhID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlcyhhbGxEYXRhKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBsZWdlbmREYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVtcE9iajtcclxuICB9XHJcbiAgY2FsY3VsYXRlUGVyY2VudGFnZXMoXHJcbiAgICBhbGxEYXRhOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9PlxyXG4gICk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyOyBwZXJjZW50OiBzdHJpbmcgfT4ge1xyXG4gICAgaWYgKCFhbGxEYXRhIHx8IGFsbERhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvdGFsID0gYWxsRGF0YS5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4gc3VtICsgKGl0ZW0udmFsdWUgfHwgMCksIDApO1xyXG4gICAgaWYgKHRvdGFsID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBhbGxEYXRhLm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXHJcbiAgICAgICAgcGVyY2VudDogXCIwJVwiLFxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2FsY3VsYXRlIHBlcmNlbnRhZ2VzIGZvciBhbGwgYnV0IHRoZSBsYXN0IGl0ZW1cclxuICAgIGNvbnN0IHJlc3VsdCA9IGFsbERhdGEubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoaW5kZXggPT09IGFsbERhdGEubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIC8vIEZvciB0aGUgbGFzdCBpdGVtLCB3ZSdsbCBjYWxjdWxhdGUgYmFzZWQgb24gcmVtYWluaW5nIHBlcmNlbnRhZ2VcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXHJcbiAgICAgICAgICBwZXJjZW50OiBcIlwiLCAvLyBQbGFjZWhvbGRlciwgd2lsbCBiZSBjYWxjdWxhdGVkIGJlbG93XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgcGVyY2VudCA9IChpdGVtLnZhbHVlIC8gdG90YWwpICogMTAwO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBwZXJjZW50OiBgJHtwZXJjZW50LnRvRml4ZWQoMil9JWAsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBDYWxjdWxhdGUgdGhlIGxhc3QgaXRlbSdzIHBlcmNlbnRhZ2UgdG8gZW5zdXJlIHRvdGFsIGlzIDEwMCVcclxuICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBvdGhlcnNUb3RhbCA9IHJlc3VsdC5zbGljZSgwLCAtMSkucmVkdWNlKChzdW0sIGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gc3VtICsgcGFyc2VGbG9hdChpdGVtLnBlcmNlbnQpO1xyXG4gICAgICB9LCAwKTtcclxuXHJcbiAgICAgIGNvbnN0IGxhc3RQZXJjZW50ID0gMTAwIC0gb3RoZXJzVG90YWw7XHJcbiAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0ucGVyY2VudCA9IGAke2xhc3RQZXJjZW50LnRvRml4ZWQoMil9JWA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbiAgZ2V0TmV3T3B0aW9uKG5ld09wdGlvbikge1xyXG4gICAgbGV0IGNvbG9ycyA9IG5ld09wdGlvbi5jb2xvcjtcclxuICAgIGlmIChuZXdPcHRpb24uc2VyaWVzKSB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld09wdGlvbi5zZXJpZXMpKSB7XHJcbiAgICAgICAgbmV3T3B0aW9uLnRvb2x0aXAgPSBuZXdPcHRpb24udG9vbHRpcCB8fCB7IHRyaWdnZXI6IFwiYXhpc1wiIH07XHJcbiAgICAgICAgbmV3T3B0aW9uLnNlcmllcyA9IG5ld09wdGlvbi5zZXJpZXMubWFwKChzZXJpZXNJdGVtKSA9PiB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzmmK/mn7Hnirblm77kuJTmsqHmnInorr7nva4gYmFyV2lkdGjvvIzliJnorr7nva7pu5jorqTlgLzkuLoyMFxyXG4gICAgICAgICAgaWYgKHNlcmllc0l0ZW0udHlwZSA9PT0gXCJiYXJcIikge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGJhcldpZHRoOiAyMCxcclxuICAgICAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogWzUsIDUsIDAsIDBdLFxyXG4gICAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbS5pdGVtU3R5bGUsIC8vIOS/neeVmeeUqOaIt+iHquWumuS5ieeahCBpdGVtU3R5bGVcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIC4uLnNlcmllc0l0ZW0sXHJcbiAgICAgICAgICAgICAgLy8g5q2j56Gu6K6+572uIGJvcmRlclJhZGl1c++8jOmcgOimgeaUvuWcqCBpdGVtU3R5bGUg5LitXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlcmllc0l0ZW0udHlwZSA9PT0gXCJwaWVcIikge1xyXG4gICAgICAgICAgICBuZXdPcHRpb24udG9vbHRpcCA9IG5ld09wdGlvbi50b29sdGlwIHx8IHsgdHJpZ2dlcjogXCJpdGVtXCIgfTtcclxuICAgICAgICAgICAgbGV0IHBpZURhdGFDb3VudCA9IDE7XHJcbiAgICAgICAgICAgIGlmIChzZXJpZXNJdGVtLmRhdGEgJiYgQXJyYXkuaXNBcnJheShzZXJpZXNJdGVtLmRhdGEpKSB7XHJcbiAgICAgICAgICAgICAgcGllRGF0YUNvdW50ID0gc2VyaWVzSXRlbS5kYXRhLmxlbmd0aDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g5Li66aW85Zu+55Sf5oiQ6YCC5b2T5pWw6YeP55qE6aKc6ImyXHJcbiAgICAgICAgICAgIGNvbnN0IHBpZUNvbG9ycyA9IHRoaXMuZ2VuZXJhdGVDb2xvcnMocGllRGF0YUNvdW50KTtcclxuICAgICAgICAgICAgY29sb3JzID0gY29sb3JzIHx8IHBpZUNvbG9ycztcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICByYWRpdXM6IFtcIjQwJVwiLCBcIjcwJVwiXSxcclxuICAgICAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXHJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogXCIjZmZmXCIsXHJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMixcclxuICAgICAgICAgICAgICAgIC4uLnNlcmllc0l0ZW0uaXRlbVN0eWxlLCAvLyDkv53nlZnnlKjmiLfoh6rlrprkuYnnmoQgaXRlbVN0eWxlXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAvLyBjb2xvcjogc2VyaWVzSXRlbS5jb2xvciB8fCBwaWVDb2xvcnMsXHJcbiAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBzZXJpZXNJdGVtO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKG5ld09wdGlvbi5zZXJpZXMudHlwZSA9PT0gXCJiYXJcIikge1xyXG4gICAgICAgIC8vIOWkhOeQhuWNleS4qiBzZXJpZXMg5a+56LGh55qE5oOF5Ya1XHJcbiAgICAgICAgbmV3T3B0aW9uLnNlcmllcyA9IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAyMCxcclxuICAgICAgICAgIC4uLm5ld09wdGlvbi5zZXJpZXMsXHJcbiAgICAgICAgICAvLyDmraPnoa7orr7nva4gYm9yZGVyUmFkaXVz77yM6ZyA6KaB5pS+5ZyoIGl0ZW1TdHlsZSDkuK1cclxuICAgICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IFs1LCA1LCAwLCAwXSxcclxuICAgICAgICAgICAgLi4ubmV3T3B0aW9uLnNlcmllcy5pdGVtU3R5bGUsIC8vIOS/neeVmeeUqOaIt+iHquWumuS5ieeahCBpdGVtU3R5bGVcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIGlmIChuZXdPcHRpb24uc2VyaWVzLnR5cGUgPT09IFwicGllXCIpIHtcclxuICAgICAgICAvLyDlpITnkIbljZXkuKogc2VyaWVzIOWvueixoeeahOaDheWGte+8iOmlvOWbvu+8iVxyXG4gICAgICAgIG5ld09wdGlvbi50b29sdGlwID0gbmV3T3B0aW9uLnRvb2x0aXAgfHwgeyB0cmlnZ2VyOiBcIml0ZW1cIiB9O1xyXG4gICAgICAgIGxldCBwaWVEYXRhQ291bnQgPSAxO1xyXG4gICAgICAgIGlmIChuZXdPcHRpb24uc2VyaWVzLmRhdGEgJiYgQXJyYXkuaXNBcnJheShuZXdPcHRpb24uc2VyaWVzLmRhdGEpKSB7XHJcbiAgICAgICAgICBwaWVEYXRhQ291bnQgPSBuZXdPcHRpb24uc2VyaWVzLmRhdGEubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDkuLrppbzlm77nlJ/miJDpgILlvZPmlbDph4/nmoTpopzoibJcclxuICAgICAgICBjb25zdCBwaWVDb2xvcnMgPSB0aGlzLmdlbmVyYXRlQ29sb3JzKHBpZURhdGFDb3VudCk7XHJcbiAgICAgICAgY29sb3JzID0gY29sb3JzIHx8IHBpZUNvbG9ycztcclxuICAgICAgICBuZXdPcHRpb24uc2VyaWVzID0ge1xyXG4gICAgICAgICAgcmFkaXVzOiBbXCI0MCVcIiwgXCI3MCVcIl0sXHJcbiAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5uZXdPcHRpb24uc2VyaWVzLFxyXG4gICAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBcIiNmZmZcIixcclxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICAgICAgICAgIC4uLm5ld09wdGlvbi5zZXJpZXMuaXRlbVN0eWxlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC8vIGNvbG9yOiBuZXdPcHRpb24uc2VyaWVzLmNvbG9yIHx8IHBpZUNvbG9ycyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBuZXdPcHRpb24uY29sb3IgPSBjb2xvcnM7XHJcbiAgICByZXR1cm4gbmV3T3B0aW9uO1xyXG4gIH1cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmNoYXJ0UmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBvcHRpb24sIGRhdGEsIE9uQ2xpY2ssIE9uWnJDbGljayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBkYXRhTWFwOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IG5ld0RhdGFzID0gZGF0YSB8fCBkYXRhU291cmNlO1xyXG4gICAgbGV0IHNlcmllc0NvdW50ID0gMTsgLy8g6buY6K6k6Iez5bCR5LiA5Liq57O75YiXXHJcbiAgICBpZiAob3B0aW9uPy5zZXJpZXMpIHtcclxuICAgICAgc2VyaWVzQ291bnQgPSBBcnJheS5pc0FycmF5KG9wdGlvbi5zZXJpZXMpID8gb3B0aW9uLnNlcmllcy5sZW5ndGggOiAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeUn+aIkOmAguW9k+aVsOmHj+eahOminOiJsu+8iOWmguaenOeUqOaIt+ayoeacieaPkOS+m+minOiJsu+8iVxyXG4gICAgbGV0IGRlZmF1bHRPcHRpb24gPSB7fTtcclxuXHJcbiAgICBsZXQgbmV3T3B0aW9uOiBhbnkgPSB7IC4uLmRlZmF1bHRPcHRpb24sIC4uLm9wdGlvbiB9O1xyXG5cclxuICAgIGlmIChpc0FycmF5KG5ld0RhdGFzKSkge1xyXG4gICAgICBuZXdEYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gaXRlbSkge1xyXG4gICAgICAgICAgaWYgKGRhdGFNYXBba2V5XSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRhdGFNYXBba2V5XSA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGF0YU1hcFtrZXldLnB1c2goaXRlbVtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChpc09iamVjdChuZXdEYXRhcykpIHtcclxuICAgICAgZGF0YU1hcCA9IG5ld0RhdGFzO1xyXG4gICAgfVxyXG4gICAgbmV3T3B0aW9uLnhBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi54QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnlBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi55QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnNlcmllcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihcclxuICAgICAgbmV3T3B0aW9uLnNlcmllcyxcclxuICAgICAgbmV3RGF0YXMsXHJcbiAgICAgIGRhdGFNYXBcclxuICAgICk7XHJcbiAgICBjb25zdCBjaGFydENvbG9ycyA9IHRoaXMuZ2VuZXJhdGVDb2xvcnMoc2VyaWVzQ291bnQpO1xyXG4gICAgbmV3T3B0aW9uID0gdGhpcy5nZXROZXdPcHRpb24oeyAuLi5uZXdPcHRpb24gfSk7XHJcbiAgICBuZXdPcHRpb24gPSB7IGNvbG9yOiBjaGFydENvbG9ycywgLi4ubmV3T3B0aW9uIH07XHJcbiAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgIHRoaXMubXlDaGFydC5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBteUNoYXJ0ID0gKHRoaXMubXlDaGFydCA9IGVjaGFydHMuaW5pdChcclxuICAgICAgdGhpcy5jaGFydFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50XHJcbiAgICApKTsgLy/liJ3lp4vljJZlY2hhcnRz77yM6YCa6L+HcmVm5bGe5oCn6I635Y+WZG9tXHJcbiAgICBteUNoYXJ0LmNsZWFyKCk7XHJcbiAgICBteUNoYXJ0Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydD8uZ2V0WnIoKT8ub2ZmKFwiY2xpY2tcIik7XHJcbiAgICBteUNoYXJ0LnNldE9wdGlvbihuZXdPcHRpb24pO1xyXG4gICAgbXlDaGFydC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcclxuICAgICAgT25DbGljayAmJiBPbkNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9uKFwiY2xpY2tcIiwgKHBhcmFtcykgPT4ge1xyXG4gICAgICBPblpyQ2xpY2sgJiYgT25ackNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgICAgdGhpcy5teUNoYXJ0LnJlc2l6ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2xvcnM6IG5ld09wdGlvbi5jb2xvcixcclxuICAgIH0pO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYXJ0UmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMubXlDaGFydCkge1xyXG4gICAgICB0aGlzLm15Q2hhcnQucmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGxlZ2VuZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGVnZW5kRGF0YSA9IFtdLCBjb2xvcnMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBib3hTdHlsZSA9IHtcclxuICAgICAgd2lkdGg6IHR5cGVvZiB3aWR0aCA9PSBcIm51bWJlclwiID8gcHgydncod2lkdGgpIDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogdHlwZW9mIGhlaWdodCA9PSBcIm51bWJlclwiID8gcHgydncoaGVpZ2h0KSA6IGhlaWdodCxcclxuICAgIH0gYXMgYW55O1xyXG4gICAgaWYgKGxlZ2VuZCA9PSB0cnVlKSB7XHJcbiAgICAgIGJveFN0eWxlLmRpc3BsYXkgPSBcImZsZXhcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBsZWdlbmQgPT0gdHJ1ZSA/IChcclxuICAgICAgPGRpdiBzdHlsZT17Ym94U3R5bGV9PlxyXG4gICAgICAgIDxkaXYgcmVmPXt0aGlzLmNoYXJ0UmVmfSBzdHlsZT17eyBmbGV4OiAxLCBoZWlnaHQ6IFwiMTAwJVwiIH19PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWNoYXJ0LWxlZ2VuZEJveFwiPlxyXG4gICAgICAgICAge2xlZ2VuZERhdGEubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWNoYXJ0LWxlZ2VuZEl0ZW1cIiBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibnNjLWNoYXJ0LWxlZ2VuZEl0ZW0taWNvblwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogY29sb3JzW2luZGV4XSB9fVxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbS1uYW1lXCI+e2l0ZW0ubmFtZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWNoYXJ0LWxlZ2VuZEl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAge2l0ZW0udmFsdWUgfHwgMH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbS1wZXJjZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLnBlcmNlbnR9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICkgOiAoXHJcbiAgICAgIDxkaXYgc3R5bGU9e2JveFN0eWxlfSByZWY9e3RoaXMuY2hhcnRSZWZ9IGlkPVwibnNjX2NoYXJ0c1wiPjwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5zY0NoYXJ0O1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQVEsT0FBTztBQUM1QyxPQUFPLEtBQUtDLE9BQU8sTUFBTSxTQUFTO0FBRWxDLE9BQU9DLEtBQUssTUFBc0IsYUFBYTtBQUMvQyxTQUFTQyxLQUFLLFFBQVEsdUJBQXVCO0FBQzdDLFNBQW9CQyxLQUFLLFFBQVEsYUFBYTtBQUM5QyxTQUFTQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxtQkFBbUI7QUFDckQsT0FBTyxjQUFjO0FBY3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsUUFBUSxTQUFTUCxhQUFhLENBQWE7RUFvQi9DUSxXQUFXQSxDQUFDQyxLQUFLLEVBQUU7SUFDakIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFBQ0MsZUFBQSxnQ0FwQkpYLEtBQUssQ0FBQ1ksU0FBUyxDQUFpQixDQUFDO0lBQUFELGVBQUEsa0JBQ2xCLElBQUk7SUFBQUEsZUFBQSxnQkFDdEIsQ0FBQyxDQUFDO0lBQUFBLGVBQUEsd0JBQ00sQ0FDZCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxDQUNWO0lBQUFBLGVBQUEsZ0JBQ087TUFDTkUsVUFBVSxFQUFFLElBQUk7TUFDaEJDLFVBQVUsRUFBRSxFQUFFO01BQ2RDLE1BQU0sRUFBRTtJQUNWLENBQUM7SUFBQUosZUFBQSxrQkFDUyxJQUFJO0lBR1osTUFBTTtNQUNKSyxJQUFJO01BQ0pDLEtBQUssR0FBRyxDQUFDLENBQUM7TUFDVkMsUUFBUTtNQUNSQyxNQUFNLEVBQUVDLE9BQU87TUFDZkMsUUFBUSxHQUFHO0lBQ2IsQ0FBQyxHQUFHWCxLQUFLO0lBQ1QsTUFBTTtRQUFFWSxHQUFHO1FBQUVDLFNBQVMsRUFBRUMsYUFBYSxHQUFHLENBQUM7TUFBYSxDQUFDLEdBQUdQLEtBQUs7TUFBaEJRLE1BQU0sR0FBQUMsd0JBQUEsQ0FBS1QsS0FBSyxFQUFBVSxTQUFBO0lBQy9ELElBQUksQ0FBQ1QsUUFBUSxFQUFFO01BQ2IsSUFBSSxFQUFFRixJQUFJLElBQUlNLEdBQUcsSUFBSUYsT0FBTyxDQUFDLEVBQUU7UUFDN0IsTUFBTSxJQUFJUSxLQUFLLENBQUMsdUJBQXVCLENBQUM7TUFDMUM7TUFDQSxJQUFJQyxLQUFLLEdBQUcsSUFBSTtNQUNoQixJQUFJQyxVQUFVLEdBQUFDLGFBQUE7UUFDWkMsS0FBSyxFQUFFLE9BQU87UUFDZEMsU0FBUyxFQUFFLElBQUk7UUFDZlYsU0FBUyxFQUFFO1VBQ1RXLFlBQVksRUFBRSxTQUFBQSxDQUFVakIsS0FBSyxFQUFFRyxPQUFPLEVBQUU7WUFDdENoQixLQUFLLENBQUMrQixRQUFRLENBQUNYLGFBQWEsQ0FBQ1UsWUFBWSxFQUFFTCxLQUFLLEVBQUUsQ0FBQ1osS0FBSyxFQUFFRyxPQUFPLENBQUMsQ0FBQztVQUNyRSxDQUFDO1VBQ0RnQixJQUFJLEVBQUUsU0FBQUEsQ0FBVXBCLElBQUksRUFBRXFCLFNBQVMsRUFBRXBCLEtBQUssRUFBRTtZQUN0Q1ksS0FBSyxDQUFDUyxRQUFRLENBQUM7Y0FBRXpCLFVBQVUsRUFBRXdCO1lBQVUsQ0FBQyxFQUFFLE1BQU07Y0FDOUMsSUFBSVIsS0FBSyxDQUFDVSxPQUFPLElBQUlsQixRQUFRLEVBQUU7Z0JBQzdCUSxLQUFLLENBQUNXLElBQUksQ0FBQyxDQUFDO2dCQUNaWCxLQUFLLENBQUNVLE9BQU8sR0FBRyxLQUFLO2NBQ3ZCO1lBQ0YsQ0FBQyxDQUFDO1lBQ0ZuQyxLQUFLLENBQUMrQixRQUFRLENBQUNYLGFBQWEsQ0FBQ1ksSUFBSSxFQUFFUCxLQUFLLEVBQUUsQ0FBQ2IsSUFBSSxFQUFFcUIsU0FBUyxFQUFFcEIsS0FBSyxDQUFDLENBQUM7VUFDckUsQ0FBQztVQUNEd0IsV0FBVyxFQUFFLFNBQUFBLENBQVV6QixJQUFJLEVBQUVxQixTQUFTLEVBQUVwQixLQUFLLEVBQUU7WUFDN0NZLEtBQUssQ0FBQ1MsUUFBUSxDQUFDO2NBQUV6QixVQUFVLEVBQUV3QjtZQUFVLENBQUMsRUFBRSxNQUFNO2NBQzlDLElBQUloQixRQUFRLEVBQUU7Z0JBQ1pRLEtBQUssQ0FBQ1csSUFBSSxDQUFDLENBQUM7Y0FDZDtZQUNGLENBQUMsQ0FBQztZQUNGcEMsS0FBSyxDQUFDK0IsUUFBUSxDQUFDWCxhQUFhLENBQUNpQixXQUFXLEVBQUVaLEtBQUssRUFBRSxDQUMvQ2IsSUFBSSxFQUNKcUIsU0FBUyxFQUNUcEIsS0FBSyxDQUNOLENBQUM7VUFDSjtRQUNGO01BQUMsR0FDRVEsTUFBTSxDQUNWO01BQ0QsSUFBSUgsR0FBRyxJQUFJTixJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3ZCYyxVQUFVLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNMO1VBQ0RWLFFBQVEsRUFBRSxJQUFJO1VBQ2RDLEdBQUcsRUFBRUE7UUFDUCxDQUFDLEdBQ0VRLFVBQVUsQ0FDZDtNQUNIO01BQ0EsSUFBSSxDQUFDYixLQUFLLEdBQUcsSUFBSWQsS0FBSyxDQUFDMkIsVUFBVSxDQUFDO0lBQ3BDO0VBQ0Y7RUFFQVksaUJBQWlCQSxDQUFBLEVBQUc7SUFDbEIsTUFBTTtNQUFFMUIsSUFBSTtNQUFFSyxRQUFRLEdBQUcsSUFBSTtNQUFFSixLQUFLO01BQUVFO0lBQU8sQ0FBQyxHQUFHLElBQUksQ0FBQ1QsS0FBSztJQUMzRDtJQUNBLElBQUksSUFBSSxDQUFDaUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDQyxRQUFRLENBQUNDLE9BQU8sRUFBRTtNQUMxQztJQUNGO0lBQ0EsSUFBSTdCLElBQUksSUFBSUssUUFBUSxFQUFFO01BQ3BCLElBQUksQ0FBQ21CLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxNQUFNLElBQUksQ0FBQ3hCLElBQUksSUFBSSxFQUFDQyxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFSyxHQUFHLEtBQUlILE1BQU0sRUFBRTtNQUN6QyxJQUFJLENBQUNxQixJQUFJLENBQUMsQ0FBQztJQUNiO0VBQ0Y7RUFFQU0sa0JBQWtCQSxDQUNoQkMsU0FBK0IsRUFDL0JDLFNBQXVCLEVBQ3ZCQyxRQUFjLEVBQ1I7SUFDTixNQUFNO01BQUU1QixRQUFRLEdBQUc7SUFBSyxDQUFDLEdBQUcsSUFBSSxDQUFDWCxLQUFLO0lBQ3RDLElBQUlXLFFBQVEsRUFBRTtNQUNaLElBQUk2QixJQUFJLENBQUNDLFNBQVMsQ0FBQ0osU0FBUyxDQUFDL0IsSUFBSSxDQUFDLEtBQUtrQyxJQUFJLENBQUNDLFNBQVMsQ0FBQyxJQUFJLENBQUN6QyxLQUFLLENBQUNNLElBQUksQ0FBQyxFQUFFO1FBQ3RFLElBQUksQ0FBQ3dCLElBQUksQ0FBQyxDQUFDO01BQ2IsQ0FBQyxNQUFNLElBQ0xVLElBQUksQ0FBQ0MsU0FBUyxDQUFDSixTQUFTLENBQUM1QixNQUFNLENBQUMsS0FBSytCLElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ3pDLEtBQUssQ0FBQ1MsTUFBTSxDQUFDLEVBQ3RFO1FBQ0EsSUFBSSxDQUFDcUIsSUFBSSxDQUFDLENBQUM7TUFDYjtJQUNGO0VBQ0Y7RUFFQVksVUFBVUEsQ0FBQSxFQUFHO0lBQ1gsSUFBSSxDQUFDWixJQUFJLENBQUMsQ0FBQztFQUNiO0VBQ0FhLFFBQVFBLENBQUNDLENBQUMsRUFBRTtJQUNWLE9BQU8sT0FBT0EsQ0FBQyxLQUFLLFFBQVE7RUFDOUI7RUFDQUMsb0JBQW9CQSxDQUFBLEVBQUc7SUFDckI7SUFDQSxJQUFJLElBQUksQ0FBQ1osT0FBTyxFQUFFO01BQ2hCLElBQUksQ0FBQ0EsT0FBTyxDQUFDYSxPQUFPLENBQUMsQ0FBQztNQUN0QixJQUFJLENBQUNiLE9BQU8sR0FBRyxJQUFJO0lBQ3JCOztJQUVBO0lBQ0FjLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQ0MsaUJBQWlCLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztFQUN6RTtFQUVBQyxTQUFTQSxDQUFDUCxDQUFDLEVBQUU7SUFDWCxPQUFPLFVBQVUsQ0FBQ1EsSUFBSSxDQUFDUixDQUFDLENBQUM7RUFDM0I7RUFDQVMsT0FBT0EsQ0FBQ1QsQ0FBQyxFQUFFO0lBQ1QsT0FBT0EsQ0FBQyxDQUFDVSxTQUFTLENBQUMsQ0FBQyxFQUFFVixDQUFDLENBQUNXLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDckM7RUFFQUMsY0FBY0EsQ0FBQSxFQUFHO0lBQ2YsSUFBSUMsS0FBSztJQUNULEdBQUc7TUFDREEsS0FBSyxHQUNILEdBQUcsR0FDSEMsSUFBSSxDQUFDQyxLQUFLLENBQUNELElBQUksQ0FBQ0UsTUFBTSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FDakNDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FDWkMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDdkIsQ0FBQyxRQUFRTCxLQUFLLEtBQUssU0FBUyxJQUFJQSxLQUFLLEtBQUssU0FBUztJQUNuRCxPQUFPQSxLQUFLO0VBQ2Q7RUFDQU0sY0FBY0EsQ0FBQ0MsS0FBYSxFQUFZO0lBQ3RDO0lBQ0EsSUFBSUEsS0FBSyxJQUFJLElBQUksQ0FBQ0MsYUFBYSxDQUFDVixNQUFNLEVBQUU7TUFDdEMsT0FBTyxJQUFJLENBQUNVLGFBQWEsQ0FBQ0MsS0FBSyxDQUFDLENBQUMsRUFBRUYsS0FBSyxDQUFDO0lBQzNDOztJQUVBO0lBQ0EsTUFBTTNELE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDNEQsYUFBYSxDQUFDOztJQUV0QztJQUNBLE1BQU1FLE1BQU0sR0FBR0gsS0FBSyxHQUFHLElBQUksQ0FBQ0MsYUFBYSxDQUFDVixNQUFNO0lBQ2hELEtBQUssSUFBSWEsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRCxNQUFNLEVBQUVDLENBQUMsRUFBRSxFQUFFO01BQy9CL0QsTUFBTSxDQUFDZ0UsSUFBSSxDQUFDLElBQUksQ0FBQ2IsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNwQztJQUNBLElBQUksQ0FBQzVCLFFBQVEsQ0FBQztNQUFFdkI7SUFBTyxDQUFDLENBQUM7SUFDekIsT0FBT0EsTUFBTTtFQUNmO0VBQ0FpRSxjQUFjQSxDQUFDaEUsSUFBSSxFQUFFaUUsS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDbkMsSUFBSUMsTUFBTTtJQUNWLElBQUluRSxJQUFJLEVBQUU7TUFDUixJQUFJLElBQUksQ0FBQ3FDLFFBQVEsQ0FBQ3JDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQzZDLFNBQVMsQ0FBQzdDLElBQUksQ0FBQyxFQUFFO1FBQy9DbUUsTUFBTSxHQUFHRCxPQUFPLENBQUMsSUFBSSxDQUFDbkIsT0FBTyxDQUFDL0MsSUFBSSxDQUFDLENBQUM7TUFDdEMsQ0FBQyxNQUFNLElBQUlWLE9BQU8sQ0FBQ1UsSUFBSSxDQUFDLEVBQUU7UUFDeEJBLElBQUksQ0FBQ29FLEdBQUcsQ0FBRUMsSUFBSSxJQUFLO1VBQ2pCLElBQUkvQixDQUFDLEdBQUcsQ0FBQStCLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFQyxLQUFLLEtBQUksSUFBSTtVQUMzQixJQUFJaEMsQ0FBQyxJQUFJLElBQUksQ0FBQ08sU0FBUyxDQUFDUCxDQUFDLENBQUMsRUFBRTtZQUMxQitCLElBQUksQ0FBQ0MsS0FBSyxHQUFHLElBQUksQ0FBQ04sY0FBYyxDQUFDMUIsQ0FBQyxFQUFFMkIsS0FBSyxFQUFFQyxPQUFPLENBQUM7VUFDckQ7UUFDRixDQUFDLENBQUM7UUFDRkMsTUFBTSxHQUFHbkUsSUFBSTtNQUNmLENBQUMsTUFBTSxJQUFJVCxRQUFRLENBQUNTLElBQUksQ0FBQyxFQUFFO1FBQ3pCbUUsTUFBTSxHQUFHLEVBQUU7UUFDWCxJQUFJN0UsT0FBTyxDQUFDMkUsS0FBSyxDQUFDLEVBQUU7VUFDbEJBLEtBQUssQ0FBQ0csR0FBRyxDQUFFQyxJQUFJLElBQUs7WUFDbEIsSUFBSUUsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFLLElBQUlDLEdBQUcsSUFBSUgsSUFBSSxFQUFFO2NBQ3BCLElBQUkvQixDQUFDLEdBQUcrQixJQUFJLENBQUNHLEdBQUcsQ0FBQztjQUNqQixJQUFJLElBQUksQ0FBQzNCLFNBQVMsQ0FBQ1AsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JCaUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsR0FBR0gsSUFBSSxDQUFDLElBQUksQ0FBQ3RCLE9BQU8sQ0FBQ1QsQ0FBQyxDQUFDLENBQUM7Y0FDdEMsQ0FBQyxNQUFNO2dCQUNMaUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsR0FBR2xDLENBQUM7Y0FDbEI7WUFDRjtZQUNBNkIsTUFBTSxDQUFDSixJQUFJLENBQUNRLE9BQU8sQ0FBQztVQUN0QixDQUFDLENBQUM7UUFDSjtNQUNGO0lBQ0Y7SUFDQSxPQUFPSixNQUFNO0VBQ2Y7RUFFQU0sZ0JBQWdCQSxDQUFDQyxHQUFHLEVBQUVULEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ3BDLElBQUlLLE9BQVk7SUFDaEIsSUFBSUcsR0FBRyxFQUFFO01BQ1AsSUFBSXBGLE9BQU8sQ0FBQ29GLEdBQUcsQ0FBQyxFQUFFO1FBQ2hCSCxPQUFPLEdBQUcsQ0FBQyxHQUFHRyxHQUFHLENBQUM7UUFDbEJILE9BQU8sQ0FBQ0gsR0FBRyxDQUFFQyxJQUFJLElBQUs7VUFDcEIsSUFBSUEsSUFBSSxDQUFDckUsSUFBSSxFQUFFO1lBQ2JxRSxJQUFJLENBQUNyRSxJQUFJLEdBQUcsSUFBSSxDQUFDZ0UsY0FBYyxDQUFDSyxJQUFJLENBQUNyRSxJQUFJLEVBQUVpRSxLQUFLLEVBQUVDLE9BQU8sQ0FBQztVQUM1RDtRQUNGLENBQUMsQ0FBQztNQUNKLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQzdCLFFBQVEsQ0FBQ3FDLEdBQUcsQ0FBQyxFQUFFO1FBQzdCSCxPQUFPLEdBQUdHLEdBQUc7UUFDYkgsT0FBTyxDQUFDdkUsSUFBSSxHQUFHLElBQUksQ0FBQ2dFLGNBQWMsQ0FBQ08sT0FBTyxFQUFFTixLQUFLLEVBQUVDLE9BQU8sQ0FBQztNQUM3RCxDQUFDLE1BQU0sSUFBSTNFLFFBQVEsQ0FBQ21GLEdBQUcsQ0FBQyxFQUFFO1FBQ3hCSCxPQUFPLEdBQUF4RCxhQUFBLEtBQVEyRCxHQUFHLENBQUU7UUFDcEJILE9BQU8sQ0FBQ3ZFLElBQUksR0FBRyxJQUFJLENBQUNnRSxjQUFjLENBQUNPLE9BQU8sQ0FBQ3ZFLElBQUksRUFBRWlFLEtBQUssRUFBRUMsT0FBTyxDQUFDO1FBQ2hFLElBQUlLLE9BQU8sQ0FBQ0ksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUNqRixLQUFLLENBQUNrRixNQUFNLElBQUksSUFBSSxFQUFFO1VBQ3ZELElBQUlDLE9BQU8sR0FBR04sT0FBTyxDQUFDdkUsSUFBSTtVQUMxQixNQUFNRixVQUFVLEdBQUcsSUFBSSxDQUFDZ0Ysb0JBQW9CLENBQUNELE9BQU8sQ0FBQztVQUNyRCxJQUFJLENBQUN2RCxRQUFRLENBQUM7WUFDWnhCO1VBQ0YsQ0FBQyxDQUFDO1FBQ0o7TUFDRjtJQUNGO0lBQ0EsT0FBT3lFLE9BQU87RUFDaEI7RUFDQU8sb0JBQW9CQSxDQUNsQkQsT0FBK0MsRUFDVTtJQUN6RCxJQUFJLENBQUNBLE9BQU8sSUFBSUEsT0FBTyxDQUFDNUIsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUNwQyxPQUFPLEVBQUU7SUFDWDtJQUNBLE1BQU04QixLQUFLLEdBQUdGLE9BQU8sQ0FBQ0csTUFBTSxDQUFDLENBQUNDLEdBQUcsRUFBRVosSUFBSSxLQUFLWSxHQUFHLElBQUlaLElBQUksQ0FBQ0MsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxJQUFJUyxLQUFLLEtBQUssQ0FBQyxFQUFFO01BQ2YsT0FBT0YsT0FBTyxDQUFDVCxHQUFHLENBQUVDLElBQUksS0FBTTtRQUM1QmEsSUFBSSxFQUFFYixJQUFJLENBQUNhLElBQUk7UUFDZlosS0FBSyxFQUFFRCxJQUFJLENBQUNDLEtBQUs7UUFDakJhLE9BQU8sRUFBRTtNQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ0w7O0lBRUE7SUFDQSxNQUFNaEIsTUFBTSxHQUFHVSxPQUFPLENBQUNULEdBQUcsQ0FBQyxDQUFDQyxJQUFJLEVBQUVlLEtBQUssS0FBSztNQUMxQyxJQUFJQSxLQUFLLEtBQUtQLE9BQU8sQ0FBQzVCLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDaEM7UUFDQSxPQUFPO1VBQ0xpQyxJQUFJLEVBQUViLElBQUksQ0FBQ2EsSUFBSTtVQUNmWixLQUFLLEVBQUVELElBQUksQ0FBQ0MsS0FBSztVQUNqQmEsT0FBTyxFQUFFLEVBQUUsQ0FBRTtRQUNmLENBQUM7TUFDSDtNQUVBLE1BQU1BLE9BQU8sR0FBSWQsSUFBSSxDQUFDQyxLQUFLLEdBQUdTLEtBQUssR0FBSSxHQUFHO01BQzFDLE9BQU87UUFDTEcsSUFBSSxFQUFFYixJQUFJLENBQUNhLElBQUk7UUFDZlosS0FBSyxFQUFFRCxJQUFJLENBQUNDLEtBQUs7UUFDakJhLE9BQU8sS0FBQUUsTUFBQSxDQUFLRixPQUFPLENBQUNHLE9BQU8sQ0FBQyxDQUFDLENBQUM7TUFDaEMsQ0FBQztJQUNILENBQUMsQ0FBQzs7SUFFRjtJQUNBLElBQUluQixNQUFNLENBQUNsQixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3JCLE1BQU1zQyxXQUFXLEdBQUdwQixNQUFNLENBQUNQLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQ29CLE1BQU0sQ0FBQyxDQUFDQyxHQUFHLEVBQUVaLElBQUksS0FBSztRQUM1RCxPQUFPWSxHQUFHLEdBQUdPLFVBQVUsQ0FBQ25CLElBQUksQ0FBQ2MsT0FBTyxDQUFDO01BQ3ZDLENBQUMsRUFBRSxDQUFDLENBQUM7TUFFTCxNQUFNTSxXQUFXLEdBQUcsR0FBRyxHQUFHRixXQUFXO01BQ3JDcEIsTUFBTSxDQUFDQSxNQUFNLENBQUNsQixNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUNrQyxPQUFPLE1BQUFFLE1BQUEsQ0FBTUksV0FBVyxDQUFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQUc7SUFDbEU7SUFFQSxPQUFPbkIsTUFBTTtFQUNmO0VBQ0F1QixZQUFZQSxDQUFDQyxTQUFTLEVBQUU7SUFDdEIsSUFBSTVGLE1BQU0sR0FBRzRGLFNBQVMsQ0FBQ3hDLEtBQUs7SUFDNUIsSUFBSXdDLFNBQVMsQ0FBQ0MsTUFBTSxFQUFFO01BQ3BCLElBQUlDLEtBQUssQ0FBQ3ZHLE9BQU8sQ0FBQ3FHLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDLEVBQUU7UUFDbkNELFNBQVMsQ0FBQ0csT0FBTyxHQUFHSCxTQUFTLENBQUNHLE9BQU8sSUFBSTtVQUFFQyxPQUFPLEVBQUU7UUFBTyxDQUFDO1FBQzVESixTQUFTLENBQUNDLE1BQU0sR0FBR0QsU0FBUyxDQUFDQyxNQUFNLENBQUN4QixHQUFHLENBQUU0QixVQUFVLElBQUs7VUFDdEQ7VUFDQSxJQUFJQSxVQUFVLENBQUNyQixJQUFJLEtBQUssS0FBSyxFQUFFO1lBQzdCLE9BQUE1RCxhQUFBO2NBQ0VrRixRQUFRLEVBQUUsRUFBRTtjQUNaQyxTQUFTLEVBQUFuRixhQUFBO2dCQUNQb0YsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztjQUFDLEdBQ3ZCSCxVQUFVLENBQUNFLFNBQVM7WUFDeEIsR0FDRUYsVUFBVTtVQUdqQixDQUFDLE1BQU0sSUFBSUEsVUFBVSxDQUFDckIsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNwQ2dCLFNBQVMsQ0FBQ0csT0FBTyxHQUFHSCxTQUFTLENBQUNHLE9BQU8sSUFBSTtjQUFFQyxPQUFPLEVBQUU7WUFBTyxDQUFDO1lBQzVELElBQUlLLFlBQVksR0FBRyxDQUFDO1lBQ3BCLElBQUlKLFVBQVUsQ0FBQ2hHLElBQUksSUFBSTZGLEtBQUssQ0FBQ3ZHLE9BQU8sQ0FBQzBHLFVBQVUsQ0FBQ2hHLElBQUksQ0FBQyxFQUFFO2NBQ3JEb0csWUFBWSxHQUFHSixVQUFVLENBQUNoRyxJQUFJLENBQUNpRCxNQUFNO1lBQ3ZDOztZQUVBO1lBQ0EsTUFBTW9ELFNBQVMsR0FBRyxJQUFJLENBQUM1QyxjQUFjLENBQUMyQyxZQUFZLENBQUM7WUFDbkRyRyxNQUFNLEdBQUdBLE1BQU0sSUFBSXNHLFNBQVM7WUFDNUIsT0FBQXRGLGFBQUE7Y0FDRXVGLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7Y0FDdEJDLEtBQUssRUFBRTtnQkFDTEMsSUFBSSxFQUFFO2NBQ1IsQ0FBQztjQUNETixTQUFTLEVBQUFuRixhQUFBO2dCQUNQb0YsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCTSxXQUFXLEVBQUUsTUFBTTtnQkFDbkJDLFdBQVcsRUFBRTtjQUFDLEdBQ1hWLFVBQVUsQ0FBQ0UsU0FBUztZQUN4QixHQUVFRixVQUFVO1VBRWpCO1VBQ0EsT0FBT0EsVUFBVTtRQUNuQixDQUFDLENBQUM7TUFDSixDQUFDLE1BQU0sSUFBSUwsU0FBUyxDQUFDQyxNQUFNLENBQUNqQixJQUFJLEtBQUssS0FBSyxFQUFFO1FBQzFDO1FBQ0FnQixTQUFTLENBQUNDLE1BQU0sR0FBQTdFLGFBQUEsQ0FBQUEsYUFBQTtVQUNka0YsUUFBUSxFQUFFO1FBQUUsR0FDVE4sU0FBUyxDQUFDQyxNQUFNO1VBQ25CO1VBQ0FNLFNBQVMsRUFBQW5GLGFBQUE7WUFDUG9GLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7VUFBQyxHQUN2QlIsU0FBUyxDQUFDQyxNQUFNLENBQUNNLFNBQVM7UUFDOUIsRUFDRjtNQUNILENBQUMsTUFBTSxJQUFJUCxTQUFTLENBQUNDLE1BQU0sQ0FBQ2pCLElBQUksS0FBSyxLQUFLLEVBQUU7UUFDMUM7UUFDQWdCLFNBQVMsQ0FBQ0csT0FBTyxHQUFHSCxTQUFTLENBQUNHLE9BQU8sSUFBSTtVQUFFQyxPQUFPLEVBQUU7UUFBTyxDQUFDO1FBQzVELElBQUlLLFlBQVksR0FBRyxDQUFDO1FBQ3BCLElBQUlULFNBQVMsQ0FBQ0MsTUFBTSxDQUFDNUYsSUFBSSxJQUFJNkYsS0FBSyxDQUFDdkcsT0FBTyxDQUFDcUcsU0FBUyxDQUFDQyxNQUFNLENBQUM1RixJQUFJLENBQUMsRUFBRTtVQUNqRW9HLFlBQVksR0FBR1QsU0FBUyxDQUFDQyxNQUFNLENBQUM1RixJQUFJLENBQUNpRCxNQUFNO1FBQzdDO1FBQ0E7UUFDQSxNQUFNb0QsU0FBUyxHQUFHLElBQUksQ0FBQzVDLGNBQWMsQ0FBQzJDLFlBQVksQ0FBQztRQUNuRHJHLE1BQU0sR0FBR0EsTUFBTSxJQUFJc0csU0FBUztRQUM1QlYsU0FBUyxDQUFDQyxNQUFNLEdBQUE3RSxhQUFBLENBQUFBLGFBQUE7VUFDZHVGLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7VUFDdEJDLEtBQUssRUFBRTtZQUNMQyxJQUFJLEVBQUU7VUFDUjtRQUFDLEdBQ0ViLFNBQVMsQ0FBQ0MsTUFBTTtVQUNuQk0sU0FBUyxFQUFBbkYsYUFBQTtZQUNQb0YsWUFBWSxFQUFFLEVBQUU7WUFDaEJNLFdBQVcsRUFBRSxNQUFNO1lBQ25CQyxXQUFXLEVBQUU7VUFBQyxHQUNYZixTQUFTLENBQUNDLE1BQU0sQ0FBQ00sU0FBUztVQUUvQjtRQUFBLEVBQ0Q7TUFDSDtJQUNGO0lBQ0FQLFNBQVMsQ0FBQ3hDLEtBQUssR0FBR3BELE1BQU07SUFDeEIsT0FBTzRGLFNBQVM7RUFDbEI7RUFDQW5FLElBQUlBLENBQUEsRUFBRztJQUFBLElBQUFtRixjQUFBLEVBQUFDLGVBQUE7SUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDaEYsUUFBUSxDQUFDQyxPQUFPLEVBQUU7TUFDMUI7SUFDRjtJQUNBLE1BQU07TUFBRTFCLE1BQU07TUFBRUgsSUFBSTtNQUFFNkcsT0FBTztNQUFFQztJQUFVLENBQUMsR0FBRyxJQUFJLENBQUNwSCxLQUFLO0lBQ3ZELE1BQU07TUFBRUc7SUFBVyxDQUFDLEdBQUcsSUFBSSxDQUFDa0gsS0FBSztJQUNqQyxJQUFJN0MsT0FBWSxHQUFHLENBQUMsQ0FBQztJQUNyQixNQUFNOEMsUUFBUSxHQUFHaEgsSUFBSSxJQUFJSCxVQUFVO0lBQ25DLElBQUlvSCxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckIsSUFBSTlHLE1BQU0sYUFBTkEsTUFBTSxlQUFOQSxNQUFNLENBQUV5RixNQUFNLEVBQUU7TUFDbEJxQixXQUFXLEdBQUdwQixLQUFLLENBQUN2RyxPQUFPLENBQUNhLE1BQU0sQ0FBQ3lGLE1BQU0sQ0FBQyxHQUFHekYsTUFBTSxDQUFDeUYsTUFBTSxDQUFDM0MsTUFBTSxHQUFHLENBQUM7SUFDdkU7O0lBRUE7SUFDQSxJQUFJaUUsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUV0QixJQUFJdkIsU0FBYyxHQUFBNUUsYUFBQSxDQUFBQSxhQUFBLEtBQVFtRyxhQUFhLEdBQUsvRyxNQUFNLENBQUU7SUFFcEQsSUFBSWIsT0FBTyxDQUFDMEgsUUFBUSxDQUFDLEVBQUU7TUFDckJBLFFBQVEsQ0FBQzVDLEdBQUcsQ0FBRUMsSUFBSSxJQUFLO1FBQ3JCLEtBQUssSUFBSUcsR0FBRyxJQUFJSCxJQUFJLEVBQUU7VUFDcEIsSUFBSUgsT0FBTyxDQUFDTSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDeEJOLE9BQU8sQ0FBQ00sR0FBRyxDQUFDLEdBQUcsRUFBRTtVQUNuQjtVQUNBTixPQUFPLENBQUNNLEdBQUcsQ0FBQyxDQUFDVCxJQUFJLENBQUNNLElBQUksQ0FBQ0csR0FBRyxDQUFDLENBQUM7UUFDOUI7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDLE1BQU0sSUFBSWpGLFFBQVEsQ0FBQ3lILFFBQVEsQ0FBQyxFQUFFO01BQzdCOUMsT0FBTyxHQUFHOEMsUUFBUTtJQUNwQjtJQUNBckIsU0FBUyxDQUFDd0IsS0FBSyxHQUFHLElBQUksQ0FBQzFDLGdCQUFnQixDQUFDa0IsU0FBUyxDQUFDd0IsS0FBSyxFQUFFSCxRQUFRLEVBQUU5QyxPQUFPLENBQUM7SUFDM0V5QixTQUFTLENBQUN5QixLQUFLLEdBQUcsSUFBSSxDQUFDM0MsZ0JBQWdCLENBQUNrQixTQUFTLENBQUN5QixLQUFLLEVBQUVKLFFBQVEsRUFBRTlDLE9BQU8sQ0FBQztJQUMzRXlCLFNBQVMsQ0FBQ0MsTUFBTSxHQUFHLElBQUksQ0FBQ25CLGdCQUFnQixDQUN0Q2tCLFNBQVMsQ0FBQ0MsTUFBTSxFQUNoQm9CLFFBQVEsRUFDUjlDLE9BQ0YsQ0FBQztJQUNELE1BQU1tRCxXQUFXLEdBQUcsSUFBSSxDQUFDNUQsY0FBYyxDQUFDd0QsV0FBVyxDQUFDO0lBQ3BEdEIsU0FBUyxHQUFHLElBQUksQ0FBQ0QsWUFBWSxDQUFBM0UsYUFBQSxLQUFNNEUsU0FBUyxDQUFFLENBQUM7SUFDL0NBLFNBQVMsR0FBQTVFLGFBQUE7TUFBS29DLEtBQUssRUFBRWtFO0lBQVcsR0FBSzFCLFNBQVMsQ0FBRTtJQUNoRCxJQUFJLElBQUksQ0FBQ2hFLE9BQU8sRUFBRTtNQUNoQixJQUFJLENBQUNBLE9BQU8sQ0FBQ2EsT0FBTyxDQUFDLENBQUM7SUFDeEI7SUFDQSxNQUFNYixPQUFPLEdBQUksSUFBSSxDQUFDQSxPQUFPLEdBQUd6QyxPQUFPLENBQUNzQyxJQUFJLENBQzFDLElBQUksQ0FBQ0ksUUFBUSxDQUFDQyxPQUNoQixDQUFFLENBQUMsQ0FBQztJQUNKRixPQUFPLENBQUMyRixLQUFLLENBQUMsQ0FBQztJQUNmM0YsT0FBTyxDQUFDNEYsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNwQjVGLE9BQU8sYUFBUEEsT0FBTyxnQkFBQWdGLGNBQUEsR0FBUGhGLE9BQU8sQ0FBRTZGLEtBQUssQ0FBQyxDQUFDLGNBQUFiLGNBQUEsZUFBaEJBLGNBQUEsQ0FBa0JZLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDOUI1RixPQUFPLENBQUM4RixTQUFTLENBQUM5QixTQUFTLENBQUM7SUFDNUJoRSxPQUFPLENBQUMrRixFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVVDLE1BQU0sRUFBRTtNQUNwQ2QsT0FBTyxJQUFJQSxPQUFPLENBQUNjLE1BQU0sRUFBRWhHLE9BQU8sQ0FBQztJQUNyQyxDQUFDLENBQUM7SUFDRkEsT0FBTyxhQUFQQSxPQUFPLGdCQUFBaUYsZUFBQSxHQUFQakYsT0FBTyxDQUFFNkYsS0FBSyxDQUFDLENBQUMsY0FBQVosZUFBQSxlQUFoQkEsZUFBQSxDQUFrQmMsRUFBRSxDQUFDLE9BQU8sRUFBR0MsTUFBTSxJQUFLO01BQ3hDYixTQUFTLElBQUlBLFNBQVMsQ0FBQ2EsTUFBTSxFQUFFaEcsT0FBTyxDQUFDO0lBQ3pDLENBQUMsQ0FBQztJQUNGaUcsVUFBVSxDQUFDLE1BQU07TUFDZixJQUFJLElBQUksQ0FBQ2pHLE9BQU8sRUFBRTtRQUNoQixJQUFJLENBQUNBLE9BQU8sQ0FBQ2tHLE1BQU0sQ0FBQyxDQUFDO01BQ3ZCO0lBQ0YsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNMLElBQUksQ0FBQ3ZHLFFBQVEsQ0FBQztNQUNadkIsTUFBTSxFQUFFNEYsU0FBUyxDQUFDeEM7SUFDcEIsQ0FBQyxDQUFDO0lBQ0ZWLE1BQU0sQ0FBQ3FGLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUNuRixpQkFBaUIsQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQ3RFO0VBRUFELGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ2xCLElBQUksSUFBSSxDQUFDaEIsT0FBTyxFQUFFO01BQ2hCLElBQUksQ0FBQ0EsT0FBTyxDQUFDa0csTUFBTSxDQUFDLENBQUM7SUFDdkI7RUFDRjtFQUVBRSxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUVDLEtBQUs7TUFBRUMsTUFBTTtNQUFFckQ7SUFBTyxDQUFDLEdBQUcsSUFBSSxDQUFDbEYsS0FBSztJQUM1QyxNQUFNO01BQUVJLFVBQVUsR0FBRyxFQUFFO01BQUVDO0lBQU8sQ0FBQyxHQUFHLElBQUksQ0FBQ2dILEtBQUs7SUFDOUMsTUFBTW1CLFFBQVEsR0FBRztNQUNmRixLQUFLLEVBQUUsT0FBT0EsS0FBSyxJQUFJLFFBQVEsR0FBRzNJLEtBQUssQ0FBQzJJLEtBQUssQ0FBQyxHQUFHQSxLQUFLO01BQ3REQyxNQUFNLEVBQUUsT0FBT0EsTUFBTSxJQUFJLFFBQVEsR0FBRzVJLEtBQUssQ0FBQzRJLE1BQU0sQ0FBQyxHQUFHQTtJQUN0RCxDQUFRO0lBQ1IsSUFBSXJELE1BQU0sSUFBSSxJQUFJLEVBQUU7TUFDbEJzRCxRQUFRLENBQUNDLE9BQU8sR0FBRyxNQUFNO0lBQzNCO0lBQ0EsT0FBT3ZELE1BQU0sSUFBSSxJQUFJLGdCQUNuQjVGLEtBQUEsQ0FBQW9KLGFBQUE7TUFBS0MsS0FBSyxFQUFFSDtJQUFTLGdCQUNuQmxKLEtBQUEsQ0FBQW9KLGFBQUE7TUFBS0UsR0FBRyxFQUFFLElBQUksQ0FBQzFHLFFBQVM7TUFBQ3lHLEtBQUssRUFBRTtRQUFFRSxJQUFJLEVBQUUsQ0FBQztRQUFFTixNQUFNLEVBQUU7TUFBTztJQUFFLENBQU0sQ0FBQyxlQUNuRWpKLEtBQUEsQ0FBQW9KLGFBQUE7TUFBS0ksU0FBUyxFQUFDO0lBQXFCLEdBQ2pDMUksVUFBVSxDQUFDc0UsR0FBRyxDQUFDLENBQUNDLElBQUksRUFBRWUsS0FBSyxLQUFLO01BQy9CLG9CQUNFcEcsS0FBQSxDQUFBb0osYUFBQTtRQUFLSSxTQUFTLEVBQUMsc0JBQXNCO1FBQUNoRSxHQUFHLEVBQUVZO01BQU0sZ0JBQy9DcEcsS0FBQSxDQUFBb0osYUFBQTtRQUNFSSxTQUFTLEVBQUMsMkJBQTJCO1FBQ3JDSCxLQUFLLEVBQUU7VUFBRUksZUFBZSxFQUFFMUksTUFBTSxDQUFDcUYsS0FBSztRQUFFO01BQUUsQ0FDdEMsQ0FBQyxlQUNQcEcsS0FBQSxDQUFBb0osYUFBQTtRQUFLSSxTQUFTLEVBQUM7TUFBMkIsR0FBRW5FLElBQUksQ0FBQ2EsSUFBVSxDQUFDLGVBQzVEbEcsS0FBQSxDQUFBb0osYUFBQTtRQUFLSSxTQUFTLEVBQUM7TUFBNEIsR0FDeENuRSxJQUFJLENBQUNDLEtBQUssSUFBSSxDQUNaLENBQUMsZUFDTnRGLEtBQUEsQ0FBQW9KLGFBQUE7UUFBS0ksU0FBUyxFQUFDO01BQThCLEdBQzFDbkUsSUFBSSxDQUFDYyxPQUNILENBQ0YsQ0FBQztJQUVWLENBQUMsQ0FDRSxDQUNGLENBQUMsZ0JBRU5uRyxLQUFBLENBQUFvSixhQUFBO01BQUtDLEtBQUssRUFBRUgsUUFBUztNQUFDSSxHQUFHLEVBQUUsSUFBSSxDQUFDMUcsUUFBUztNQUFDOEcsRUFBRSxFQUFDO0lBQVksQ0FBTSxDQUNoRTtFQUNIO0FBQ0Y7QUFFQSxlQUFlbEosUUFBUSJ9
476
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJlY2hhcnRzIiwiU3RvcmUiLCJ1dGlscyIsInB4MnZ3IiwiaXNBcnJheSIsImlzT2JqZWN0IiwiTnNjQ2hhcnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImxlZ2VuZERhdGEiLCJjb2xvcnMiLCJkYXRhIiwic3RvcmUiLCJjaGlsZHJlbiIsIm9wdGlvbiIsIm9wdGlvbnMiLCJhdXRvTG9hZCIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJzdG9yZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIl9vYmplY3RTcHJlYWQiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiaXNGaXJzdCIsImluaXQiLCJkYXRhQ2hhbmdlZCIsImNvbXBvbmVudERpZE1vdW50IiwibXlDaGFydCIsImNoYXJ0UmVmIiwiY3VycmVudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90IiwiSlNPTiIsInN0cmluZ2lmeSIsInJlU2V0Q2hhcnQiLCJpc1N0cmluZyIsInYiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRpc3Bvc2UiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2hhcnRSZXNpemUiLCJiaW5kIiwiaXNSZXBsYWNlIiwidGVzdCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJnZXRSYW5kb21Db2xvciIsImNvbG9yIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwidG9TdHJpbmciLCJwYWRTdGFydCIsImdlbmVyYXRlQ29sb3JzIiwiY291bnQiLCJkZWZhdWx0Q29sb3JzIiwic2xpY2UiLCJuZWVkZWQiLCJpIiwicHVzaCIsImRhdGFDb252ZXJzaW9uIiwiZGF0YXMiLCJkYXRhTWFwIiwicmVzdWx0IiwibWFwIiwiaXRlbSIsInZhbHVlIiwidGVtcE9iaiIsImtleSIsIm9iamVjdENvbnZlcnNpb24iLCJvYmoiLCJ0eXBlIiwibGVnZW5kIiwiYWxsRGF0YSIsImNhbGN1bGF0ZVBlcmNlbnRhZ2VzIiwidG90YWwiLCJyZWR1Y2UiLCJzdW0iLCJuYW1lIiwicGVyY2VudCIsImluZGV4IiwiY29uY2F0IiwidG9GaXhlZCIsIm90aGVyc1RvdGFsIiwicGFyc2VGbG9hdCIsImxhc3RQZXJjZW50IiwiZ2V0TmV3T3B0aW9uIiwibmV3T3B0aW9uIiwic2VyaWVzIiwiQXJyYXkiLCJ0b29sdGlwIiwidHJpZ2dlciIsInNlcmllc0l0ZW0iLCJiYXJXaWR0aCIsIml0ZW1TdHlsZSIsImJvcmRlclJhZGl1cyIsInBpZURhdGFDb3VudCIsInBpZUNvbG9ycyIsInJhZGl1cyIsImxhYmVsIiwic2hvdyIsImJvcmRlckNvbG9yIiwiYm9yZGVyV2lkdGgiLCJfbXlDaGFydCRnZXRaciIsIl9teUNoYXJ0JGdldFpyMiIsIk9uQ2xpY2siLCJPblpyQ2xpY2siLCJzdGF0ZSIsIm5ld0RhdGFzIiwic2VyaWVzQ291bnQiLCJkZWZhdWx0T3B0aW9uIiwieEF4aXMiLCJ5QXhpcyIsImNoYXJ0Q29sb3JzIiwiY2xlYXIiLCJvZmYiLCJnZXRaciIsInNldE9wdGlvbiIsIm9uIiwicGFyYW1zIiwic2V0VGltZW91dCIsInJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW5kZXIiLCJ3aWR0aCIsImhlaWdodCIsImJveFN0eWxlIiwiZGlzcGxheSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInJlZiIsImZsZXgiLCJjbGFzc05hbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJpZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvY2hhcnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSBcImVjaGFydHNcIjtcclxuaW1wb3J0IHsgRUNoYXJ0cyB9IGZyb20gXCJlY2hhcnRzL2xpYi9lY2hhcnRzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UsIHB4MnZ3IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbnRlcmZhY2UgQ2hhcnRQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIG9wdGlvbjogYW55O1xyXG4gIGRhdGE/OiBBcnJheTxPYmplY3Q+IHwgT2JqZWN0O1xyXG4gIHdpZHRoOiBudW1iZXIgfCBzdHJpbmc7IC8v5Zu+6KGo5a695bqmXHJcbiAgaGVpZ2h0OiBudW1iZXIgfCBzdHJpbmc7IC8v5Zu+6KGo6ZW/5bqmXHJcbiAgYXV0b0xvYWQ/OiBib29sZWFuOyAvL+aVsOaNruaUueWPmO+8jOiHquWKqOWIt+aWsOWbvuihqCzpu5jorqR0cnVlXHJcbiAgT25DbGljaz86IChwYXJhbXM6IGFueSwgZT86IGFueSkgPT4gdm9pZDsgLy/lm77ooajngrnlh7vkuovku7ZcclxuICBPblpyQ2xpY2s/OiAocGFyYW1zOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7IC8v5Zu+6KGo54K55Ye75LqL5Lu2XHJcbiAgbGVnZW5kPzogYm9vbGVhbjsgLy/oh6rlrprkuYnlm77kvovmmK/lkKbmmL7npLog77yM55So5LqO6aW85Zu+XHJcbiAgW3Byb05hbWVzOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8vZGF0YeekuuS+i1xyXG4vKipcclxuIOaVsOe7hO+8mlxyXG4gZGF0YT1be25hbWU6JzHmnIgnLHZhbHVlOjIwfSx7bmFtZTonMuaciCcsdmFsdWU6MTB9LHtuYW1lOicz5pyIJyx2YWx1ZToyNX1dXHJcbiDlr7nosaFcclxuIGRhdGE9e25hbWU6Wycx5pyIJywnMuaciCcsJzPmnIgnXSx2YWx1ZTpbMjAsMzAsNDBdfVxyXG4gKi9cclxuY2xhc3MgTnNjQ2hhcnQgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PENoYXJ0UHJvcHM+IHtcclxuICBjaGFydFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICBteUNoYXJ0OiBFQ2hhcnRzIHwgbnVsbCA9IG51bGw7XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGRlZmF1bHRDb2xvcnMgPSBbXHJcbiAgICBcIiM1Qjk2RjdcIixcclxuICAgIFwiIzczQzhGRlwiLFxyXG4gICAgXCIjM0M2Q0ZFXCIsXHJcbiAgICBcIiM4MThGRkZcIixcclxuICAgIFxyXG4gICAgXCIjOTdEQ0ZCXCIsXHJcbiAgICBcIiNFRjZGNUJcIixcclxuICAgIFwiI0Y4QkY3MFwiLFxyXG4gICAgXCIjNTdDMzlFXCIsXHJcbiAgXSBhcyBzdHJpbmdbXTtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IG51bGwsXHJcbiAgICBsZWdlbmREYXRhOiBbXSxcclxuICAgIGNvbG9yczogW10sXHJcbiAgfTtcclxuICBpc0ZpcnN0ID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9uOiBvcHRpb25zLFxyXG4gICAgICBhdXRvTG9hZCA9IHRydWUsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7IHVybCwgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sIC4uLnN0b3JlcyB9ID0gc3RvcmU7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBZGF0YeOAgW9wdGlvbuS4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChfdGhpcy5pc0ZpcnN0ICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pc0ZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHVybCAmJiBkYXRhID09IG51bGwpIHtcclxuICAgICAgICBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBhdXRvTG9hZDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgYXV0b0xvYWQgPSB0cnVlLCBzdG9yZSwgb3B0aW9uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgLy8g5re75Yqg5qOA5p+l6YG/5YWN6YeN5aSN5Yid5aeL5YyWXHJcbiAgICBpZiAodGhpcy5teUNoYXJ0IHx8ICF0aGlzLmNoYXJ0UmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGRhdGEgJiYgYXV0b0xvYWQpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9IGVsc2UgaWYgKCFkYXRhICYmICFzdG9yZT8udXJsICYmIG9wdGlvbikge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8Q2hhcnRQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PHt9PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGF1dG9Mb2FkID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLmRhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLm9wdGlvbikgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMub3B0aW9uKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVTZXRDaGFydCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBpc1N0cmluZyh2KSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCI7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgLy8g5riF55CGIGVjaGFydHMg5a6e5L6LXHJcbiAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgIHRoaXMubXlDaGFydC5kaXNwb3NlKCk7XHJcbiAgICAgIHRoaXMubXlDaGFydCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g56e76Zmk5LqL5Lu255uR5ZCs5ZmoXHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLmhhbmRsZUNoYXJ0UmVzaXplLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgaXNSZXBsYWNlKHYpIHtcclxuICAgIHJldHVybiAvXnsuKn0kL2dpLnRlc3Qodik7XHJcbiAgfVxyXG4gIHJlcGxhY2Uodikge1xyXG4gICAgcmV0dXJuIHYuc3Vic3RyaW5nKDEsIHYubGVuZ3RoIC0gMSk7XHJcbiAgfVxyXG5cclxuICBnZXRSYW5kb21Db2xvcigpIHtcclxuICAgIGxldCBjb2xvcjtcclxuICAgIGRvIHtcclxuICAgICAgY29sb3IgPVxyXG4gICAgICAgIFwiI1wiICtcclxuICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAweGZmZmZmZilcclxuICAgICAgICAgIC50b1N0cmluZygxNilcclxuICAgICAgICAgIC5wYWRTdGFydCg2LCBcIjBcIik7XHJcbiAgICB9IHdoaWxlIChjb2xvciA9PT0gXCIjRkZGRkZGXCIgfHwgY29sb3IgPT09IFwiIzAwMDAwMFwiKTtcclxuICAgIHJldHVybiBjb2xvcjtcclxuICB9XHJcbiAgZ2VuZXJhdGVDb2xvcnMoY291bnQ6IG51bWJlcik6IHN0cmluZ1tdIHtcclxuICAgIC8vIOWmguaenOmcgOimgeeahOminOiJsuaVsOmHj+WwkeS6juaIluetieS6jum7mOiupOminOiJsuaVsOmHj++8jOebtOaOpei/lOWbnuWvueW6lOaVsOmHj+eahOm7mOiupOminOiJslxyXG4gICAgaWYgKGNvdW50IDw9IHRoaXMuZGVmYXVsdENvbG9ycy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbG9ycy5zbGljZSgwLCBjb3VudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5ZCm5YiZ77yM5YWI5aSN5Yi25omA5pyJ6buY6K6k6aKc6ImyXHJcbiAgICBjb25zdCBjb2xvcnMgPSBbLi4udGhpcy5kZWZhdWx0Q29sb3JzXTtcclxuXHJcbiAgICAvLyDnlJ/miJDpop3lpJbnmoTpmo/mnLrpopzoibJcclxuICAgIGNvbnN0IG5lZWRlZCA9IGNvdW50IC0gdGhpcy5kZWZhdWx0Q29sb3JzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmVlZGVkOyBpKyspIHtcclxuICAgICAgY29sb3JzLnB1c2godGhpcy5nZXRSYW5kb21Db2xvcigpKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBjb2xvcnMgfSk7XHJcbiAgICByZXR1cm4gY29sb3JzO1xyXG4gIH1cclxuICBkYXRhQ29udmVyc2lvbihkYXRhLCBkYXRhcywgZGF0YU1hcCkge1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzU3RyaW5nKGRhdGEpICYmIHRoaXMuaXNSZXBsYWNlKGRhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gZGF0YU1hcFt0aGlzLnJlcGxhY2UoZGF0YSldO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHYgPSBpdGVtPy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICAgICAgaWYgKHYgJiYgdGhpcy5pc1JlcGxhY2UodikpIHtcclxuICAgICAgICAgICAgaXRlbS52YWx1ZSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odiwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGE7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGF0YSkpIHtcclxuICAgICAgICByZXN1bHQgPSBbXTtcclxuICAgICAgICBpZiAoaXNBcnJheShkYXRhcykpIHtcclxuICAgICAgICAgIGRhdGFzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdGVtcE9iaiA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gaXRlbSkge1xyXG4gICAgICAgICAgICAgIGxldCB2ID0gaXRlbVtrZXldO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmlzUmVwbGFjZSh2KSkge1xyXG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gaXRlbVt0aGlzLnJlcGxhY2UodildO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wT2JqW2tleV0gPSB2O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXN1bHQucHVzaCh0ZW1wT2JqKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIG9iamVjdENvbnZlcnNpb24ob2JqLCBkYXRhcywgZGF0YU1hcCkge1xyXG4gICAgbGV0IHRlbXBPYmo6IGFueTtcclxuICAgIGlmIChvYmopIHtcclxuICAgICAgaWYgKGlzQXJyYXkob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBbLi4ub2JqXTtcclxuICAgICAgICB0ZW1wT2JqLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uZGF0YSkge1xyXG4gICAgICAgICAgICBpdGVtLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKGl0ZW0uZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdHJpbmcob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBvYmo7XHJcbiAgICAgICAgdGVtcE9iai5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbih0ZW1wT2JqLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSB7IC4uLm9iaiB9O1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iai5kYXRhLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgICAgaWYgKHRlbXBPYmoudHlwZSA9PT0gXCJwaWVcIiAmJiB0aGlzLnByb3BzLmxlZ2VuZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBsZXQgYWxsRGF0YSA9IHRlbXBPYmouZGF0YTtcclxuICAgICAgICAgIGNvbnN0IGxlZ2VuZERhdGEgPSB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2VzKGFsbERhdGEpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGxlZ2VuZERhdGEsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0ZW1wT2JqO1xyXG4gIH1cclxuICBjYWxjdWxhdGVQZXJjZW50YWdlcyhcclxuICAgIGFsbERhdGE6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH0+XHJcbiAgKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBudW1iZXI7IHBlcmNlbnQ6IHN0cmluZyB9PiB7XHJcbiAgICBpZiAoIWFsbERhdGEgfHwgYWxsRGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdG90YWwgPSBhbGxEYXRhLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyAoaXRlbS52YWx1ZSB8fCAwKSwgMCk7XHJcbiAgICBpZiAodG90YWwgPT09IDApIHtcclxuICAgICAgcmV0dXJuIGFsbERhdGEubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBwZXJjZW50OiBcIjAlXCIsXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDYWxjdWxhdGUgcGVyY2VudGFnZXMgZm9yIGFsbCBidXQgdGhlIGxhc3QgaXRlbVxyXG4gICAgY29uc3QgcmVzdWx0ID0gYWxsRGF0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gYWxsRGF0YS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgLy8gRm9yIHRoZSBsYXN0IGl0ZW0sIHdlJ2xsIGNhbGN1bGF0ZSBiYXNlZCBvbiByZW1haW5pbmcgcGVyY2VudGFnZVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICAgIHBlcmNlbnQ6IFwiXCIsIC8vIFBsYWNlaG9sZGVyLCB3aWxsIGJlIGNhbGN1bGF0ZWQgYmVsb3dcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwZXJjZW50ID0gKGl0ZW0udmFsdWUgLyB0b3RhbCkgKiAxMDA7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxyXG4gICAgICAgIHBlcmNlbnQ6IGAke3BlcmNlbnQudG9GaXhlZCgyKX0lYCxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIENhbGN1bGF0ZSB0aGUgbGFzdCBpdGVtJ3MgcGVyY2VudGFnZSB0byBlbnN1cmUgdG90YWwgaXMgMTAwJVxyXG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IG90aGVyc1RvdGFsID0gcmVzdWx0LnNsaWNlKDAsIC0xKS5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBzdW0gKyBwYXJzZUZsb2F0KGl0ZW0ucGVyY2VudCk7XHJcbiAgICAgIH0sIDApO1xyXG5cclxuICAgICAgY29uc3QgbGFzdFBlcmNlbnQgPSAxMDAgLSBvdGhlcnNUb3RhbDtcclxuICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXS5wZXJjZW50ID0gYCR7bGFzdFBlcmNlbnQudG9GaXhlZCgyKX0lYDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICBnZXROZXdPcHRpb24obmV3T3B0aW9uKSB7XHJcbiAgICBsZXQgY29sb3JzID0gbmV3T3B0aW9uLmNvbG9yO1xyXG4gICAgaWYgKG5ld09wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3T3B0aW9uLnNlcmllcykpIHtcclxuICAgICAgICBuZXdPcHRpb24udG9vbHRpcCA9IG5ld09wdGlvbi50b29sdGlwIHx8IHsgdHJpZ2dlcjogXCJheGlzXCIgfTtcclxuICAgICAgICBuZXdPcHRpb24uc2VyaWVzID0gbmV3T3B0aW9uLnNlcmllcy5tYXAoKHNlcmllc0l0ZW0pID0+IHtcclxuICAgICAgICAgIC8vIOWmguaenOaYr+afseeKtuWbvuS4lOayoeacieiuvue9riBiYXJXaWR0aO+8jOWImeiuvue9rum7mOiupOWAvOS4ujIwXHJcbiAgICAgICAgICBpZiAoc2VyaWVzSXRlbS50eXBlID09PSBcImJhclwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgYmFyV2lkdGg6IDIwLFxyXG4gICAgICAgICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBbNSwgNSwgMCwgMF0sXHJcbiAgICAgICAgICAgICAgICAuLi5zZXJpZXNJdGVtLml0ZW1TdHlsZSwgLy8g5L+d55WZ55So5oi36Ieq5a6a5LmJ55qEIGl0ZW1TdHlsZVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbSxcclxuICAgICAgICAgICAgICAvLyDmraPnoa7orr7nva4gYm9yZGVyUmFkaXVz77yM6ZyA6KaB5pS+5ZyoIGl0ZW1TdHlsZSDkuK1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoc2VyaWVzSXRlbS50eXBlID09PSBcInBpZVwiKSB7XHJcbiAgICAgICAgICAgIG5ld09wdGlvbi50b29sdGlwID0gbmV3T3B0aW9uLnRvb2x0aXAgfHwgeyB0cmlnZ2VyOiBcIml0ZW1cIiB9O1xyXG4gICAgICAgICAgICBsZXQgcGllRGF0YUNvdW50ID0gMTtcclxuICAgICAgICAgICAgaWYgKHNlcmllc0l0ZW0uZGF0YSAmJiBBcnJheS5pc0FycmF5KHNlcmllc0l0ZW0uZGF0YSkpIHtcclxuICAgICAgICAgICAgICBwaWVEYXRhQ291bnQgPSBzZXJpZXNJdGVtLmRhdGEubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyDkuLrppbzlm77nlJ/miJDpgILlvZPmlbDph4/nmoTpopzoibJcclxuICAgICAgICAgICAgY29uc3QgcGllQ29sb3JzID0gdGhpcy5nZW5lcmF0ZUNvbG9ycyhwaWVEYXRhQ291bnQpO1xyXG4gICAgICAgICAgICBjb2xvcnMgPSBjb2xvcnMgfHwgcGllQ29sb3JzO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIHJhZGl1czogW1wiNDAlXCIsIFwiNzAlXCJdLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAxMCxcclxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBcIiNmZmZcIixcclxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgICAgICAgICAgICAgLi4uc2VyaWVzSXRlbS5pdGVtU3R5bGUsIC8vIOS/neeVmeeUqOaIt+iHquWumuS5ieeahCBpdGVtU3R5bGVcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIC8vIGNvbG9yOiBzZXJpZXNJdGVtLmNvbG9yIHx8IHBpZUNvbG9ycyxcclxuICAgICAgICAgICAgICAuLi5zZXJpZXNJdGVtLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHNlcmllc0l0ZW07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAobmV3T3B0aW9uLnNlcmllcy50eXBlID09PSBcImJhclwiKSB7XHJcbiAgICAgICAgLy8g5aSE55CG5Y2V5LiqIHNlcmllcyDlr7nosaHnmoTmg4XlhrVcclxuICAgICAgICBuZXdPcHRpb24uc2VyaWVzID0ge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDIwLFxyXG4gICAgICAgICAgLi4ubmV3T3B0aW9uLnNlcmllcyxcclxuICAgICAgICAgIC8vIOato+ehruiuvue9riBib3JkZXJSYWRpdXPvvIzpnIDopoHmlL7lnKggaXRlbVN0eWxlIOS4rVxyXG4gICAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogWzUsIDUsIDAsIDBdLFxyXG4gICAgICAgICAgICAuLi5uZXdPcHRpb24uc2VyaWVzLml0ZW1TdHlsZSwgLy8g5L+d55WZ55So5oi36Ieq5a6a5LmJ55qEIGl0ZW1TdHlsZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2UgaWYgKG5ld09wdGlvbi5zZXJpZXMudHlwZSA9PT0gXCJwaWVcIikge1xyXG4gICAgICAgIC8vIOWkhOeQhuWNleS4qiBzZXJpZXMg5a+56LGh55qE5oOF5Ya177yI6aW85Zu+77yJXHJcbiAgICAgICAgbmV3T3B0aW9uLnRvb2x0aXAgPSBuZXdPcHRpb24udG9vbHRpcCB8fCB7IHRyaWdnZXI6IFwiaXRlbVwiIH07XHJcbiAgICAgICAgbGV0IHBpZURhdGFDb3VudCA9IDE7XHJcbiAgICAgICAgaWYgKG5ld09wdGlvbi5zZXJpZXMuZGF0YSAmJiBBcnJheS5pc0FycmF5KG5ld09wdGlvbi5zZXJpZXMuZGF0YSkpIHtcclxuICAgICAgICAgIHBpZURhdGFDb3VudCA9IG5ld09wdGlvbi5zZXJpZXMuZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOS4uumlvOWbvueUn+aIkOmAguW9k+aVsOmHj+eahOminOiJslxyXG4gICAgICAgIGNvbnN0IHBpZUNvbG9ycyA9IHRoaXMuZ2VuZXJhdGVDb2xvcnMocGllRGF0YUNvdW50KTtcclxuICAgICAgICBjb2xvcnMgPSBjb2xvcnMgfHwgcGllQ29sb3JzO1xyXG4gICAgICAgIG5ld09wdGlvbi5zZXJpZXMgPSB7XHJcbiAgICAgICAgICByYWRpdXM6IFtcIjQwJVwiLCBcIjcwJVwiXSxcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLm5ld09wdGlvbi5zZXJpZXMsXHJcbiAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAxMCxcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IFwiI2ZmZlwiLFxyXG4gICAgICAgICAgICBib3JkZXJXaWR0aDogMixcclxuICAgICAgICAgICAgLi4ubmV3T3B0aW9uLnNlcmllcy5pdGVtU3R5bGUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLy8gY29sb3I6IG5ld09wdGlvbi5zZXJpZXMuY29sb3IgfHwgcGllQ29sb3JzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG5ld09wdGlvbi5jb2xvciA9IGNvbG9ycztcclxuICAgIHJldHVybiBuZXdPcHRpb247XHJcbiAgfVxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hhcnRSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IG9wdGlvbiwgZGF0YSwgT25DbGljaywgT25ackNsaWNrIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBkYXRhU291cmNlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IGRhdGFNYXA6IGFueSA9IHt9O1xyXG4gICAgY29uc3QgbmV3RGF0YXMgPSBkYXRhIHx8IGRhdGFTb3VyY2U7XHJcbiAgICBsZXQgc2VyaWVzQ291bnQgPSAxOyAvLyDpu5jorqToh7PlsJHkuIDkuKrns7vliJdcclxuICAgIGlmIChvcHRpb24/LnNlcmllcykge1xyXG4gICAgICBzZXJpZXNDb3VudCA9IEFycmF5LmlzQXJyYXkob3B0aW9uLnNlcmllcykgPyBvcHRpb24uc2VyaWVzLmxlbmd0aCA6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g55Sf5oiQ6YCC5b2T5pWw6YeP55qE6aKc6Imy77yI5aaC5p6c55So5oi35rKh5pyJ5o+Q5L6b6aKc6Imy77yJXHJcbiAgICBsZXQgZGVmYXVsdE9wdGlvbiA9IHt9O1xyXG5cclxuICAgIGxldCBuZXdPcHRpb246IGFueSA9IHsgLi4uZGVmYXVsdE9wdGlvbiwgLi4ub3B0aW9uIH07XHJcblxyXG4gICAgaWYgKGlzQXJyYXkobmV3RGF0YXMpKSB7XHJcbiAgICAgIG5ld0RhdGFzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBpdGVtKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YU1hcFtrZXldID09IG51bGwpIHtcclxuICAgICAgICAgICAgZGF0YU1hcFtrZXldID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhTWFwW2tleV0ucHVzaChpdGVtW2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG5ld0RhdGFzKSkge1xyXG4gICAgICBkYXRhTWFwID0gbmV3RGF0YXM7XHJcbiAgICB9XHJcbiAgICBuZXdPcHRpb24ueEF4aXMgPSB0aGlzLm9iamVjdENvbnZlcnNpb24obmV3T3B0aW9uLnhBeGlzLCBuZXdEYXRhcywgZGF0YU1hcCk7XHJcbiAgICBuZXdPcHRpb24ueUF4aXMgPSB0aGlzLm9iamVjdENvbnZlcnNpb24obmV3T3B0aW9uLnlBeGlzLCBuZXdEYXRhcywgZGF0YU1hcCk7XHJcbiAgICBuZXdPcHRpb24uc2VyaWVzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKFxyXG4gICAgICBuZXdPcHRpb24uc2VyaWVzLFxyXG4gICAgICBuZXdEYXRhcyxcclxuICAgICAgZGF0YU1hcFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNoYXJ0Q29sb3JzID0gdGhpcy5nZW5lcmF0ZUNvbG9ycyhzZXJpZXNDb3VudCk7XHJcbiAgICBuZXdPcHRpb24gPSB0aGlzLmdldE5ld09wdGlvbih7IC4uLm5ld09wdGlvbiB9KTtcclxuICAgIG5ld09wdGlvbiA9IHsgLi4ubmV3T3B0aW9uICxjb2xvcjogbmV3T3B0aW9uLmNvbG9yIHx8IGNoYXJ0Q29sb3JzfTtcclxuICAgIGlmICh0aGlzLm15Q2hhcnQpIHtcclxuICAgICAgdGhpcy5teUNoYXJ0LmRpc3Bvc2UoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG15Q2hhcnQgPSAodGhpcy5teUNoYXJ0ID0gZWNoYXJ0cy5pbml0KFxyXG4gICAgICB0aGlzLmNoYXJ0UmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnRcclxuICAgICkpOyAvL+WIneWni+WMlmVjaGFydHPvvIzpgJrov4dyZWblsZ7mgKfojrflj5Zkb21cclxuICAgIG15Q2hhcnQuY2xlYXIoKTtcclxuICAgIG15Q2hhcnQub2ZmKFwiY2xpY2tcIik7XHJcbiAgICBteUNoYXJ0Py5nZXRacigpPy5vZmYoXCJjbGlja1wiKTtcclxuICAgIG15Q2hhcnQuc2V0T3B0aW9uKG5ld09wdGlvbik7XHJcbiAgICBteUNoYXJ0Lm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKHBhcmFtcykge1xyXG4gICAgICBPbkNsaWNrICYmIE9uQ2xpY2socGFyYW1zLCBteUNoYXJ0KTtcclxuICAgIH0pO1xyXG4gICAgbXlDaGFydD8uZ2V0WnIoKT8ub24oXCJjbGlja1wiLCAocGFyYW1zKSA9PiB7XHJcbiAgICAgIE9uWnJDbGljayAmJiBPblpyQ2xpY2socGFyYW1zLCBteUNoYXJ0KTtcclxuICAgIH0pO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm15Q2hhcnQpIHtcclxuICAgICAgICB0aGlzLm15Q2hhcnQucmVzaXplKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGNvbG9yczogbmV3T3B0aW9uLmNvbG9yLFxyXG4gICAgfSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLmhhbmRsZUNoYXJ0UmVzaXplLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhcnRSZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgIHRoaXMubXlDaGFydC5yZXNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgbGVnZW5kIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsZWdlbmREYXRhID0gW10sIGNvbG9ycyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGJveFN0eWxlID0ge1xyXG4gICAgICB3aWR0aDogdHlwZW9mIHdpZHRoID09IFwibnVtYmVyXCIgPyBweDJ2dyh3aWR0aCkgOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0eXBlb2YgaGVpZ2h0ID09IFwibnVtYmVyXCIgPyBweDJ2dyhoZWlnaHQpIDogaGVpZ2h0LFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBpZiAobGVnZW5kID09IHRydWUpIHtcclxuICAgICAgYm94U3R5bGUuZGlzcGxheSA9IFwiZmxleFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxlZ2VuZCA9PSB0cnVlID8gKFxyXG4gICAgICA8ZGl2IHN0eWxlPXtib3hTdHlsZX0+XHJcbiAgICAgICAgPGRpdiByZWY9e3RoaXMuY2hhcnRSZWZ9IHN0eWxlPXt7IGZsZXg6IDEsIGhlaWdodDogXCIxMDAlXCIgfX0+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kQm94XCI+XHJcbiAgICAgICAgICB7bGVnZW5kRGF0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbVwiIGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbS1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvcnNbaW5kZXhdIH19XHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1jaGFydC1sZWdlbmRJdGVtLW5hbWVcIj57aXRlbS5uYW1lfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtY2hhcnQtbGVnZW5kSXRlbS12YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS52YWx1ZSB8fCAwfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1jaGFydC1sZWdlbmRJdGVtLXBlcmNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAge2l0ZW0ucGVyY2VudH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKSA6IChcclxuICAgICAgPGRpdiBzdHlsZT17Ym94U3R5bGV9IHJlZj17dGhpcy5jaGFydFJlZn0gaWQ9XCJuc2NfY2hhcnRzXCI+PC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTnNjQ2hhcnQ7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBUSxPQUFPO0FBQzVDLE9BQU8sS0FBS0MsT0FBTyxNQUFNLFNBQVM7QUFFbEMsT0FBT0MsS0FBSyxNQUFzQixhQUFhO0FBQy9DLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsU0FBb0JDLEtBQUssUUFBUSxhQUFhO0FBQzlDLFNBQVNDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLG1CQUFtQjtBQUNyRCxPQUFPLGNBQWM7QUFjckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQyxRQUFRLFNBQVNQLGFBQWEsQ0FBYTtFQXFCL0NRLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUNqQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUFDQyxlQUFBLGdDQXJCSlgsS0FBSyxDQUFDWSxTQUFTLENBQWlCLENBQUM7SUFBQUQsZUFBQSxrQkFDbEIsSUFBSTtJQUFBQSxlQUFBLGdCQUN0QixDQUFDLENBQUM7SUFBQUEsZUFBQSx3QkFDTSxDQUNkLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFFVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLENBQ1Y7SUFBQUEsZUFBQSxnQkFDTztNQUNORSxVQUFVLEVBQUUsSUFBSTtNQUNoQkMsVUFBVSxFQUFFLEVBQUU7TUFDZEMsTUFBTSxFQUFFO0lBQ1YsQ0FBQztJQUFBSixlQUFBLGtCQUNTLElBQUk7SUFHWixNQUFNO01BQ0pLLElBQUk7TUFDSkMsS0FBSyxHQUFHLENBQUMsQ0FBQztNQUNWQyxRQUFRO01BQ1JDLE1BQU0s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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","legendData","colors","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","myChart","chartRef","current","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","componentWillUnmount","dispose","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","getRandomColor","color","Math","floor","random","toString","padStart","generateColors","count","defaultColors","slice","needed","i","push","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","objectConversion","obj","type","legend","allData","calculatePercentages","total","reduce","sum","name","percent","index","concat","toFixed","othersTotal","parseFloat","lastPercent","getNewOption","newOption","series","Array","tooltip","trigger","seriesItem","barWidth","itemStyle","borderRadius","pieDataCount","pieColors","radius","label","show","borderColor","borderWidth","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","seriesCount","defaultOption","xAxis","yAxis","chartColors","clear","off","getZr","setOption","on","params","setTimeout","resize","addEventListener","render","width","height","boxStyle","display","createElement","style","ref","flex","className","backgroundColor","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 { deepMerge, px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\nimport \"./index.less\";\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 legend?: boolean; //自定义图例是否显示 ,用于饼图\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 defaultColors = [\r\n \"#5B96F7\",\r\n \"#3C6CFE\",\r\n \"#818FFF\",\r\n \"#73C8FF\",\r\n \"#97DCFB\",\r\n \"#EF6F5B\",\r\n \"#F8BF70\",\r\n \"#57C39E\",\r\n ] as string[];\r\n state = {\r\n dataSource: null,\r\n legendData: [],\r\n colors: [],\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 // 添加检查避免重复初始化\r\n if (this.myChart || !this.chartRef.current) {\r\n return;\r\n }\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 // 清理 echarts 实例\r\n if (this.myChart) {\r\n this.myChart.dispose();\r\n this.myChart = null;\r\n }\r\n\r\n // 移除事件监听器\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 getRandomColor() {\r\n let color;\r\n do {\r\n color =\r\n \"#\" +\r\n Math.floor(Math.random() * 0xffffff)\r\n .toString(16)\r\n .padStart(6, \"0\");\r\n } while (color === \"#FFFFFF\" || color === \"#000000\");\r\n return color;\r\n }\r\n generateColors(count: number): string[] {\r\n // 如果需要的颜色数量少于或等于默认颜色数量,直接返回对应数量的默认颜色\r\n if (count <= this.defaultColors.length) {\r\n return this.defaultColors.slice(0, count);\r\n }\r\n\r\n // 否则,先复制所有默认颜色\r\n const colors = [...this.defaultColors];\r\n\r\n // 生成额外的随机颜色\r\n const needed = count - this.defaultColors.length;\r\n for (let i = 0; i < needed; i++) {\r\n colors.push(this.getRandomColor());\r\n }\r\n this.setState({ colors });\r\n return colors;\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\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 if (tempObj.type === \"pie\" && this.props.legend == true) {\r\n let allData = tempObj.data;\r\n const legendData = this.calculatePercentages(allData);\r\n this.setState({\r\n legendData,\r\n });\r\n }\r\n }\r\n }\r\n return tempObj;\r\n }\r\n calculatePercentages(\r\n allData: Array<{ name: string; value: number }>\r\n ): Array<{ name: string; value: number; percent: string }> {\r\n if (!allData || allData.length === 0) {\r\n return [];\r\n }\r\n const total = allData.reduce((sum, item) => sum + (item.value || 0), 0);\r\n if (total === 0) {\r\n return allData.map((item) => ({\r\n name: item.name,\r\n value: item.value,\r\n percent: \"0%\",\r\n }));\r\n }\r\n\r\n // Calculate percentages for all but the last item\r\n const result = allData.map((item, index) => {\r\n if (index === allData.length - 1) {\r\n // For the last item, we'll calculate based on remaining percentage\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: \"\", // Placeholder, will be calculated below\r\n };\r\n }\r\n\r\n const percent = (item.value / total) * 100;\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: `${percent.toFixed(2)}%`,\r\n };\r\n });\r\n\r\n // Calculate the last item's percentage to ensure total is 100%\r\n if (result.length > 0) {\r\n const othersTotal = result.slice(0, -1).reduce((sum, item) => {\r\n return sum + parseFloat(item.percent);\r\n }, 0);\r\n\r\n const lastPercent = 100 - othersTotal;\r\n result[result.length - 1].percent = `${lastPercent.toFixed(2)}%`;\r\n }\r\n\r\n return result;\r\n }\r\n getNewOption(newOption) {\r\n let colors = newOption.color;\r\n if (newOption.series) {\r\n if (Array.isArray(newOption.series)) {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"axis\" };\r\n newOption.series = newOption.series.map((seriesItem) => {\r\n // 如果是柱状图且没有设置 barWidth,则设置默认值为20\r\n if (seriesItem.type === \"bar\") {\r\n return {\r\n barWidth: 20,\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n ...seriesItem,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n };\r\n } else if (seriesItem.type === \"pie\") {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (seriesItem.data && Array.isArray(seriesItem.data)) {\r\n pieDataCount = seriesItem.data.length;\r\n }\r\n\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n return {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n // color: seriesItem.color || pieColors,\r\n ...seriesItem,\r\n };\r\n }\r\n return seriesItem;\r\n });\r\n } else if (newOption.series.type === \"bar\") {\r\n // 处理单个 series 对象的情况\r\n newOption.series = {\r\n barWidth: 20,\r\n ...newOption.series,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...newOption.series.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n };\r\n } else if (newOption.series.type === \"pie\") {\r\n // 处理单个 series 对象的情况(饼图)\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (newOption.series.data && Array.isArray(newOption.series.data)) {\r\n pieDataCount = newOption.series.data.length;\r\n }\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n newOption.series = {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n ...newOption.series,\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...newOption.series.itemStyle,\r\n },\r\n // color: newOption.series.color || pieColors,\r\n };\r\n }\r\n }\r\n newOption.color = colors;\r\n return newOption;\r\n }\r\n init() {\r\n if (!this.chartRef.current) {\r\n return;\r\n }\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 let seriesCount = 1; // 默认至少一个系列\r\n if (option?.series) {\r\n seriesCount = Array.isArray(option.series) ? option.series.length : 1;\r\n }\r\n\r\n // 生成适当数量的颜色(如果用户没有提供颜色)\r\n let defaultOption = {};\r\n\r\n let newOption: any = { ...defaultOption, ...option };\r\n\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 chartColors = this.generateColors(seriesCount);\r\n newOption = this.getNewOption({ ...newOption });\r\n newOption = { color: chartColors, ...newOption };\r\n if (this.myChart) {\r\n this.myChart.dispose();\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 setTimeout(() => {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }, 0);\r\n this.setState({\r\n colors: newOption.color,\r\n });\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, legend } = this.props;\r\n const { legendData = [], colors } = this.state;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n } as any;\r\n if (legend == true) {\r\n boxStyle.display = \"flex\";\r\n }\r\n return legend == true ? (\r\n <div style={boxStyle}>\r\n <div ref={this.chartRef} style={{ flex: 1, height: \"100%\" }}></div>\r\n <div className=\"nsc-chart-legendBox\">\r\n {legendData.map((item, index) => {\r\n return (\r\n <div className=\"nsc-chart-legendItem\" key={index}>\r\n <div\r\n className=\"nsc-chart-legendItem-icon\"\r\n style={{ backgroundColor: colors[index] }}\r\n ></div>\r\n <div className=\"nsc-chart-legendItem-name\">{item.name}</div>\r\n <div className=\"nsc-chart-legendItem-value\">\r\n {item.value || 0}\r\n </div>\r\n <div className=\"nsc-chart-legendItem-percent\">\r\n {item.percent}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n ) : (\r\n <div style={boxStyle} ref={this.chartRef} id=\"nsc_charts\"></div>\r\n );\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","legendData","colors","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","myChart","chartRef","current","componentDidUpdate","prevProps","prevState","snapshot","JSON","stringify","reSetChart","isString","v","componentWillUnmount","dispose","window","removeEventListener","handleChartResize","bind","isReplace","test","replace","substring","length","getRandomColor","color","Math","floor","random","toString","padStart","generateColors","count","defaultColors","slice","needed","i","push","dataConversion","datas","dataMap","result","map","item","value","tempObj","key","objectConversion","obj","type","legend","allData","calculatePercentages","total","reduce","sum","name","percent","index","concat","toFixed","othersTotal","parseFloat","lastPercent","getNewOption","newOption","series","Array","tooltip","trigger","seriesItem","barWidth","itemStyle","borderRadius","pieDataCount","pieColors","radius","label","show","borderColor","borderWidth","_myChart$getZr","_myChart$getZr2","OnClick","OnZrClick","state","newDatas","seriesCount","defaultOption","xAxis","yAxis","chartColors","clear","off","getZr","setOption","on","params","setTimeout","resize","addEventListener","render","width","height","boxStyle","display","createElement","style","ref","flex","className","backgroundColor","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 { deepMerge, px2vw } from \"../../utils\";\r\nimport { isArray, isObject } from \"@bj-nsc/functions\";\r\nimport \"./index.less\";\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 legend?: boolean; //自定义图例是否显示 ,用于饼图\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 defaultColors = [\r\n \"#5B96F7\",\r\n \"#73C8FF\",\r\n \"#3C6CFE\",\r\n \"#818FFF\",\r\n \r\n \"#97DCFB\",\r\n \"#EF6F5B\",\r\n \"#F8BF70\",\r\n \"#57C39E\",\r\n ] as string[];\r\n state = {\r\n dataSource: null,\r\n legendData: [],\r\n colors: [],\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 // 添加检查避免重复初始化\r\n if (this.myChart || !this.chartRef.current) {\r\n return;\r\n }\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 // 清理 echarts 实例\r\n if (this.myChart) {\r\n this.myChart.dispose();\r\n this.myChart = null;\r\n }\r\n\r\n // 移除事件监听器\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 getRandomColor() {\r\n let color;\r\n do {\r\n color =\r\n \"#\" +\r\n Math.floor(Math.random() * 0xffffff)\r\n .toString(16)\r\n .padStart(6, \"0\");\r\n } while (color === \"#FFFFFF\" || color === \"#000000\");\r\n return color;\r\n }\r\n generateColors(count: number): string[] {\r\n // 如果需要的颜色数量少于或等于默认颜色数量,直接返回对应数量的默认颜色\r\n if (count <= this.defaultColors.length) {\r\n return this.defaultColors.slice(0, count);\r\n }\r\n\r\n // 否则,先复制所有默认颜色\r\n const colors = [...this.defaultColors];\r\n\r\n // 生成额外的随机颜色\r\n const needed = count - this.defaultColors.length;\r\n for (let i = 0; i < needed; i++) {\r\n colors.push(this.getRandomColor());\r\n }\r\n this.setState({ colors });\r\n return colors;\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\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 if (tempObj.type === \"pie\" && this.props.legend == true) {\r\n let allData = tempObj.data;\r\n const legendData = this.calculatePercentages(allData);\r\n this.setState({\r\n legendData,\r\n });\r\n }\r\n }\r\n }\r\n return tempObj;\r\n }\r\n calculatePercentages(\r\n allData: Array<{ name: string; value: number }>\r\n ): Array<{ name: string; value: number; percent: string }> {\r\n if (!allData || allData.length === 0) {\r\n return [];\r\n }\r\n const total = allData.reduce((sum, item) => sum + (item.value || 0), 0);\r\n if (total === 0) {\r\n return allData.map((item) => ({\r\n name: item.name,\r\n value: item.value,\r\n percent: \"0%\",\r\n }));\r\n }\r\n\r\n // Calculate percentages for all but the last item\r\n const result = allData.map((item, index) => {\r\n if (index === allData.length - 1) {\r\n // For the last item, we'll calculate based on remaining percentage\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: \"\", // Placeholder, will be calculated below\r\n };\r\n }\r\n\r\n const percent = (item.value / total) * 100;\r\n return {\r\n name: item.name,\r\n value: item.value,\r\n percent: `${percent.toFixed(2)}%`,\r\n };\r\n });\r\n\r\n // Calculate the last item's percentage to ensure total is 100%\r\n if (result.length > 0) {\r\n const othersTotal = result.slice(0, -1).reduce((sum, item) => {\r\n return sum + parseFloat(item.percent);\r\n }, 0);\r\n\r\n const lastPercent = 100 - othersTotal;\r\n result[result.length - 1].percent = `${lastPercent.toFixed(2)}%`;\r\n }\r\n\r\n return result;\r\n }\r\n getNewOption(newOption) {\r\n let colors = newOption.color;\r\n if (newOption.series) {\r\n if (Array.isArray(newOption.series)) {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"axis\" };\r\n newOption.series = newOption.series.map((seriesItem) => {\r\n // 如果是柱状图且没有设置 barWidth,则设置默认值为20\r\n if (seriesItem.type === \"bar\") {\r\n return {\r\n barWidth: 20,\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n ...seriesItem,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n };\r\n } else if (seriesItem.type === \"pie\") {\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (seriesItem.data && Array.isArray(seriesItem.data)) {\r\n pieDataCount = seriesItem.data.length;\r\n }\r\n\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n return {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...seriesItem.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n // color: seriesItem.color || pieColors,\r\n ...seriesItem,\r\n };\r\n }\r\n return seriesItem;\r\n });\r\n } else if (newOption.series.type === \"bar\") {\r\n // 处理单个 series 对象的情况\r\n newOption.series = {\r\n barWidth: 20,\r\n ...newOption.series,\r\n // 正确设置 borderRadius,需要放在 itemStyle 中\r\n itemStyle: {\r\n borderRadius: [5, 5, 0, 0],\r\n ...newOption.series.itemStyle, // 保留用户自定义的 itemStyle\r\n },\r\n };\r\n } else if (newOption.series.type === \"pie\") {\r\n // 处理单个 series 对象的情况(饼图)\r\n newOption.tooltip = newOption.tooltip || { trigger: \"item\" };\r\n let pieDataCount = 1;\r\n if (newOption.series.data && Array.isArray(newOption.series.data)) {\r\n pieDataCount = newOption.series.data.length;\r\n }\r\n // 为饼图生成适当数量的颜色\r\n const pieColors = this.generateColors(pieDataCount);\r\n colors = colors || pieColors;\r\n newOption.series = {\r\n radius: [\"40%\", \"70%\"],\r\n label: {\r\n show: false,\r\n },\r\n ...newOption.series,\r\n itemStyle: {\r\n borderRadius: 10,\r\n borderColor: \"#fff\",\r\n borderWidth: 2,\r\n ...newOption.series.itemStyle,\r\n },\r\n // color: newOption.series.color || pieColors,\r\n };\r\n }\r\n }\r\n newOption.color = colors;\r\n return newOption;\r\n }\r\n init() {\r\n if (!this.chartRef.current) {\r\n return;\r\n }\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 let seriesCount = 1; // 默认至少一个系列\r\n if (option?.series) {\r\n seriesCount = Array.isArray(option.series) ? option.series.length : 1;\r\n }\r\n\r\n // 生成适当数量的颜色(如果用户没有提供颜色)\r\n let defaultOption = {};\r\n\r\n let newOption: any = { ...defaultOption, ...option };\r\n\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 chartColors = this.generateColors(seriesCount);\r\n newOption = this.getNewOption({ ...newOption });\r\n newOption = { ...newOption ,color: newOption.color || chartColors};\r\n if (this.myChart) {\r\n this.myChart.dispose();\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 setTimeout(() => {\r\n if (this.myChart) {\r\n this.myChart.resize();\r\n }\r\n }, 0);\r\n this.setState({\r\n colors: newOption.color,\r\n });\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, legend } = this.props;\r\n const { legendData = [], colors } = this.state;\r\n const boxStyle = {\r\n width: typeof width == \"number\" ? px2vw(width) : width,\r\n height: typeof height == \"number\" ? px2vw(height) : height,\r\n } as any;\r\n if (legend == true) {\r\n boxStyle.display = \"flex\";\r\n }\r\n return legend == true ? (\r\n <div style={boxStyle}>\r\n <div ref={this.chartRef} style={{ flex: 1, height: \"100%\" }}></div>\r\n <div className=\"nsc-chart-legendBox\">\r\n {legendData.map((item, index) => {\r\n return (\r\n <div className=\"nsc-chart-legendItem\" key={index}>\r\n <div\r\n className=\"nsc-chart-legendItem-icon\"\r\n style={{ backgroundColor: colors[index] }}\r\n ></div>\r\n <div className=\"nsc-chart-legendItem-name\">{item.name}</div>\r\n <div className=\"nsc-chart-legendItem-value\">\r\n {item.value || 0}\r\n </div>\r\n <div className=\"nsc-chart-legendItem-percent\">\r\n {item.percent}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n ) : (\r\n <div style={boxStyle} ref={this.chartRef} id=\"nsc_charts\"></div>\r\n );\r\n }\r\n}\r\n\r\nexport default NscChart;\r\n"],"mappings":"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"}
@@ -129,7 +129,7 @@ export default class NSCSelect extends PureComponent {
129
129
  let isCacheKey = cacheKey;
130
130
  if (_viewname) {
131
131
  if (typeof cached !== "boolean") {
132
- isCached = true;
132
+ isCached = _viewname ? true : false;
133
133
  isCacheKey = isCacheKey ? isCacheKey : _viewname;
134
134
  }
135
135
  }
@@ -496,4 +496,4 @@ export default class NSCSelect extends PureComponent {
496
496
  }
497
497
  _defineProperty(NSCSelect, "Option", Option);
498
498
  _defineProperty(NSCSelect, "OptGroup", OptGroup);
499
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJnZXRGbGF0dGVuRGF0YSIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiX1NlbGVjdCIsIk5TQ1NlbGVjdCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiY2hpbGRyZW4iLCJhbGxDaGlsZHJlbiIsImRhdGFTdG9yZSIsImRhdGEiLCJzdG9yZSIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmFsdWVGaWVsZCIsInZpZXduYW1lIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3RGF0YSIsImxlbmd0aCIsInNwbGljZURhdGEiLCJ2YWx1ZUZpZWxkcyIsInNwbGl0IiwibWFwIiwiaXRlbSIsImkiLCJ2YWx1ZSIsInYiLCJpbmRleCIsImluZGV4T2YiLCJwdXNoIiwib3B0aW9ucyIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJjYWNoZWQiLCJjYWNoZUtleSIsInZpZXd0eXBlIiwic3RvcmVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwiZ2V0QWxsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInJlc2V0RGF0YSIsInN0YXRlIiwiZ2V0RGF0YSIsImdldFZhbHVlIiwic2V0VmFsdWUiLCJnZXRTZWxlY3REYXRhIiwia2V5RmllbGQiLCJyZXMiLCJ2YWwiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9uU2VhcmNoIiwiZmlsdGVyT3B0aW9uIiwibGFiZWxGaWVsZCIsInJlc3VsdCIsImZvckVhY2giLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImZsYWciLCJtYXRjaCIsImNoaWxkIiwiX2NoaWxkJHByb3BzIiwicmVuZGVyT3B0aW9uIiwib3B0aW9uRGF0YSIsInZhbHVlVHlwZSIsIk51bWJlciIsImtleSIsImlkIiwiY3JlYXRlRWxlbWVudCIsImRpc2FibGVkIiwicmVuZGVyQ2hpbGRyZW4iLCJzaG93R3JvdXAiLCJncm91cEZpZWxkIiwiRnJhZ21lbnQiLCJvcHRHcm91cERhdGEiLCJvcHRpb24iLCJvcHRHcm91cCIsIk9iamVjdCIsImtleXMiLCJvbkNoYW5nZSIsIm9uU2VsZWN0Iiwib25Ecm9wZG93blZpc2libGVDaGFuZ2UiLCJvcGVuIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJkZWZhdWx0U3R5bGUiLCJkYXRhVHlwZSIsInBhcmFtcyIsIl9leGNsdWRlZDIiLCJzaG93U2VhcmNoIiwib3B0aW9uRmlsdGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImFudGRTdHlsZSIsIm1vdW50RWxlbWVudElkIiwiZ2V0UG9wdXBDb250YWluZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY2xhc3NOYW1lIiwiX2V4dGVuZHMiLCJiaW5kIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9zZWxlY3QvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmltcG9ydCB7IGdldEZsYXR0ZW5EYXRhIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZ3JvdXBGaWVsZD86IHN0cmluZztcclxuICBkZWZhdWx0U3R5bGU/OiBib29sZWFuO1xyXG4gIHNob3dHcm91cD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65YiG57uEXHJcbiAgYWRkRGF0YT86IEFycmF5PE9iamVjdD47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzku47lop7liqDpop3lpJbnmoTmlbDmja5cclxuICBkZWxldGVEYXRhPzogQXJyYXk8U3RyaW5nPjsgLy/phY3lkIhzdG9yZeS9v+eUqO+8jOWIoOmZpOS7juaVsOaNruW6k+S4reiOt+WPluWIsOeahOaMh+WumuaVsOaNrlxyXG4gIHZhbHVlVHlwZT86IFwic3RyaW5nXCIgfCBcIm51bWJlclwiO1xyXG4gIFtwcm9OYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgb25DaGFuZ2U/OiBhbnk7XHJcbiAgb25TZWxlY3Q/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTlNDU2VsZWN0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJU2VsZWN0UHJvcHM+IHtcclxuICBzdGF0aWMgT3B0aW9uID0gT3B0aW9uO1xyXG4gIHN0YXRpYyBPcHRHcm91cCA9IE9wdEdyb3VwO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBzZWxlY3RWYWx1ZTogbnVsbCxcclxuICAgIGFsbERhdGFTb3VyY2U6IFtdLFxyXG4gICAgY2hpbGRyZW46IG51bGwsXHJcbiAgICBhbGxDaGlsZHJlbjogbnVsbCxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7XHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBhZGREYXRhID0gW10sXHJcbiAgICAgIGRlbGV0ZURhdGEgPSBbXSxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgdmlld25hbWUsXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGV0IHsgdmlld1VybCwgdmlld0JpelVybCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgcmVxdWVzdFZpZXdVcmwgPSB2aWV3dHlwZSA9PSBcInN5c1wiID8gdmlld1VybCA6IHZpZXdCaXpVcmw7XHJcblxyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBfdGhpcy5nZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgICAgICBhbGxEYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgICAgIGRhdGFTdG9yZTogZGF0YSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBfdGhpcy5nZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgICAgICBhbGxEYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgICAgIGRhdGFTdG9yZTogZGF0YSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKCh2aWV3bmFtZSB8fCB1cmwpICYmIGRhdGEgPT0gbnVsbCAmJiBvcHRpb25zID09IG51bGwpIHtcclxuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVLZXkgPSBjYWNoZUtleTtcclxuICAgICAgICBpZiAodmlld25hbWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICBpc0NhY2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVLZXkgPSBpc0NhY2hlS2V5ID8gaXNDYWNoZUtleSA6IHZpZXduYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHJlcXVlc3RWaWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldERhdGEoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY2hpbGRyZW46IGFsbENoaWxkcmVuIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBbGxEYXRhID0gKGRhdGEpID0+IHtcclxuICAgIGxldCB7IHN0b3JlID0ge30sIGFkZERhdGEgPSBbXSwgZGVsZXRlRGF0YSA9IFtdLCB2YWx1ZUZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGxldCBuZXdEYXRhID0gWy4uLmRhdGFdO1xyXG4gICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBuZXdEYXRhID0gWy4uLmFkZERhdGEsIC4uLm5ld0RhdGFdO1xyXG4gICAgfVxyXG4gICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgc3BsaWNlRGF0YSA9IFtdO1xyXG4gICAgICBjb25zdCB2YWx1ZUZpZWxkczogYW55ID0gdmFsdWVGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZGVsZXRlRGF0YS5pbmRleE9mKHZhbHVlKSA9PSAtMSkge1xyXG4gICAgICAgICAgc3BsaWNlRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBzcGxpY2VEYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgICB9XHJcbiAgfTtcclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYWxsRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3REYXRhKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgeyBzdG9yZSA9IHt9LCB2YWx1ZUZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IGdldEZsYXR0ZW5EYXRhKGRhdGFTb3VyY2UsIHsga2V5RmllbGQ6IHZhbHVlRmllbGQgfSk7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgbGV0IHJlcyA9IFtdIGFzIGFueTtcclxuICAgICAgdmFsdWUubWFwKCh2YWwpID0+IHtcclxuICAgICAgICByZXMucHVzaChuZXdEYXRhW3ZhbF0gfHwge30pO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHJlcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXdEYXRhW3ZhbHVlXSB8fCB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICAgIGFsbERhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICBhbGxDaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuLCBkYXRhU3RvcmUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSBkYXRhID8gZGF0YSA6IG9wdGlvbnM7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShhbGxEYXRhU291cmNlKSAhPT0gSlNPTi5zdHJpbmdpZnkobmV3RGF0YSkpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9ICBcclxuICAgICBpZiAoXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KG5ld1Byb3BzLmRlbGV0ZURhdGEpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZGVsZXRlRGF0YSkgfHxcclxuICAgICAgSlNPTi5zdHJpbmdpZnkobmV3UHJvcHMuYWRkRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuYWRkRGF0YSlcclxuICAgICkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5nZXRBbGxEYXRhKGRhdGFTdG9yZSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICBkYXRhU3RvcmU6IGRhdGFTdG9yZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY29uc3Qgc3RhdGVDaGlsZHJlblByb3BzOiBhbnkgPSBbXTtcclxuICAgICAgYWxsQ2hpbGRyZW4ubWFwKChzOiBhbnkpID0+IHtcclxuICAgICAgICBzdGF0ZUNoaWxkcmVuUHJvcHMucHVzaChzLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNoaWxkcmVuUHJvcHMucHVzaChjLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzdGF0ZUNoaWxkcmVuUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShjaGlsZHJlblByb3BzKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUgPSAoc3RhdGUsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH07XHJcbiAgfVxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBmaWx0ZXJPcHRpb24gPSB0cnVlLCBvblNlYXJjaCwgY2hpbGRyZW4sIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBsYWJlbEZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICBsYWJlbEZpZWxkID0gbGFiZWxGaWVsZCA/IGxhYmVsRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdFZhbHVlXCIgOiBcImxhYmVsXCI7XHJcbiAgICBpZiAoZmlsdGVyT3B0aW9uKSB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkYXRhU291cmNlOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbGxDaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgYWxsQ2hpbGRyZW4ubWFwKChjaGlsZDogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBsYWJlbCA9IGNoaWxkPy5wcm9wcz8uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogcmVzdWx0LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uU2VhcmNoICYmIG9uU2VhcmNoKHZhbHVlKTtcclxuICB9XHJcbiAgcmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIHZhbHVlVHlwZSA9IFwic3RyaW5nXCIsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQgPyB2YWx1ZUZpZWxkIDogdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGxhYmVsRmllbGQgPSBsYWJlbEZpZWxkID8gbGFiZWxGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0VmFsdWVcIiA6IFwibGFiZWxcIjtcclxuICAgIHJldHVybiBvcHRpb25EYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgaWYgKHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgdmFsdWUgPVxyXG4gICAgICAgICAgdmFsdWVUeXBlID09PSBcIm51bWJlclwiID8gTnVtYmVyKGl0ZW1bdmFsdWVGaWVsZF0pIDogaXRlbVt2YWx1ZUZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCB2YWx1ZUZpZWxkczogYW55ID0gdmFsdWVGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSwgZ3JvdXBGaWVsZCA9IFwiZ3JvdXBOYW1lXCIgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UsIGNoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIHJldHVybiA8PntjaGlsZHJlbn08Lz47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgb3B0R3JvdXBEYXRhID0ge30sXHJcbiAgICAgICAgb3B0aW9uRGF0YSA9IFtdO1xyXG4gICAgICBkYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbGFiZWwgPSBpdGVtW2dyb3VwRmllbGRdO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRTZWxlY3REYXRhKHZhbHVlKTtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMsIGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblNlbGVjdCh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvblNlbGVjdCB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBpZiAob25TZWxlY3QpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0U2VsZWN0RGF0YSh2YWx1ZSk7XHJcbiAgICAgIG9uU2VsZWN0KHZhbHVlLCBvcHRpb25zLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2Uob3Blbikge1xyXG4gICAgaWYgKCFvcGVuKSB7XHJcbiAgICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBvbkNoYW5nZSxcclxuICAgICAgb25TZWxlY3QsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgYWRkRGF0YSxcclxuICAgICAgZGVsZXRlRGF0YSxcclxuICAgICAgdmFsdWVUeXBlLFxyXG4gICAgICBncm91cEZpZWxkLFxyXG4gICAgICBkYXRhVHlwZSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgZmlsdGVyT3B0aW9uOiBmYWxzZSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJ1ZSxcclxuICAgICAgb3B0aW9uRmlsdGVyUHJvcDogXCJsYWJlbFwiLFxyXG4gICAgICBwbGFjZWhvbGRlcjogXCLor7fpgInmi6lcIixcclxuICAgICAgYWxsb3dDbGVhcjogdHJ1ZSxcclxuICAgIH0gYXMgYW55O1xyXG4gICAgbGV0IHsgYW50ZFN0eWxlLCBtb3VudEVsZW1lbnRJZCB9ID0gY29uZmlnKCk7XHJcbiAgICBpZiAobW91bnRFbGVtZW50SWQpIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZ2V0UG9wdXBDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICgoZGVmYXVsdFN0eWxlIHx8IGFudGRTdHlsZSkgJiYgZGVmYXVsdFN0eWxlID09PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhzdHlsZXNbXCJuc2Nfc2VsZWN0XCJdLCB0aGlzLnByb3BzLmNsYXNzTmFtZSl9PlxyXG4gICAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZX1cclxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMub25TZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25Ecm9wZG93blZpc2libGVDaGFuZ2U9e3RoaXMub25Ecm9wZG93blZpc2libGVDaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXt0aGlzLnByb3BzLmNsYXNzTmFtZX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlbGVjdD17dGhpcy5vblNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFRLE9BQU87QUFFNUMsT0FBT0MsS0FBSyxNQUFzQixhQUFhO0FBQy9DLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFFNUIsT0FBT0MsV0FBVyxNQUFNLGNBQWM7QUFDdEMsU0FBU0MsY0FBYyxRQUFRLG1CQUFtQjtBQUNsRCxNQUFNO0VBQUVDLE1BQU07RUFBRUM7QUFBUyxDQUFDLEdBQUFDLE9BQVM7QUFpQm5DLGVBQWUsTUFBTUMsU0FBUyxTQUFTWCxhQUFhLENB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
499
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJnZXRGbGF0dGVuRGF0YSIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiX1NlbGVjdCIsIk5TQ1NlbGVjdCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiY2hpbGRyZW4iLCJhbGxDaGlsZHJlbiIsImRhdGFTdG9yZSIsImRhdGEiLCJzdG9yZSIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmFsdWVGaWVsZCIsInZpZXduYW1lIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3RGF0YSIsImxlbmd0aCIsInNwbGljZURhdGEiLCJ2YWx1ZUZpZWxkcyIsInNwbGl0IiwibWFwIiwiaXRlbSIsImkiLCJ2YWx1ZSIsInYiLCJpbmRleCIsImluZGV4T2YiLCJwdXNoIiwib3B0aW9ucyIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJjYWNoZWQiLCJjYWNoZUtleSIsInZpZXd0eXBlIiwic3RvcmVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwiZ2V0QWxsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInJlc2V0RGF0YSIsInN0YXRlIiwiZ2V0RGF0YSIsImdldFZhbHVlIiwic2V0VmFsdWUiLCJnZXRTZWxlY3REYXRhIiwia2V5RmllbGQiLCJyZXMiLCJ2YWwiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9uU2VhcmNoIiwiZmlsdGVyT3B0aW9uIiwibGFiZWxGaWVsZCIsInJlc3VsdCIsImZvckVhY2giLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImZsYWciLCJtYXRjaCIsImNoaWxkIiwiX2NoaWxkJHByb3BzIiwicmVuZGVyT3B0aW9uIiwib3B0aW9uRGF0YSIsInZhbHVlVHlwZSIsIk51bWJlciIsImtleSIsImlkIiwiY3JlYXRlRWxlbWVudCIsImRpc2FibGVkIiwicmVuZGVyQ2hpbGRyZW4iLCJzaG93R3JvdXAiLCJncm91cEZpZWxkIiwiRnJhZ21lbnQiLCJvcHRHcm91cERhdGEiLCJvcHRpb24iLCJvcHRHcm91cCIsIk9iamVjdCIsImtleXMiLCJvbkNoYW5nZSIsIm9uU2VsZWN0Iiwib25Ecm9wZG93blZpc2libGVDaGFuZ2UiLCJvcGVuIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJkZWZhdWx0U3R5bGUiLCJkYXRhVHlwZSIsInBhcmFtcyIsIl9leGNsdWRlZDIiLCJzaG93U2VhcmNoIiwib3B0aW9uRmlsdGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImFudGRTdHlsZSIsIm1vdW50RWxlbWVudElkIiwiZ2V0UG9wdXBDb250YWluZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY2xhc3NOYW1lIiwiX2V4dGVuZHMiLCJiaW5kIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9zZWxlY3QvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmltcG9ydCB7IGdldEZsYXR0ZW5EYXRhIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZ3JvdXBGaWVsZD86IHN0cmluZztcclxuICBkZWZhdWx0U3R5bGU/OiBib29sZWFuO1xyXG4gIHNob3dHcm91cD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65YiG57uEXHJcbiAgYWRkRGF0YT86IEFycmF5PE9iamVjdD47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzku47lop7liqDpop3lpJbnmoTmlbDmja5cclxuICBkZWxldGVEYXRhPzogQXJyYXk8U3RyaW5nPjsgLy/phY3lkIhzdG9yZeS9v+eUqO+8jOWIoOmZpOS7juaVsOaNruW6k+S4reiOt+WPluWIsOeahOaMh+WumuaVsOaNrlxyXG4gIHZhbHVlVHlwZT86IFwic3RyaW5nXCIgfCBcIm51bWJlclwiO1xyXG4gIFtwcm9OYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgb25DaGFuZ2U/OiBhbnk7XHJcbiAgb25TZWxlY3Q/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTlNDU2VsZWN0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJU2VsZWN0UHJvcHM+IHtcclxuICBzdGF0aWMgT3B0aW9uID0gT3B0aW9uO1xyXG4gIHN0YXRpYyBPcHRHcm91cCA9IE9wdEdyb3VwO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBzZWxlY3RWYWx1ZTogbnVsbCxcclxuICAgIGFsbERhdGFTb3VyY2U6IFtdLFxyXG4gICAgY2hpbGRyZW46IG51bGwsXHJcbiAgICBhbGxDaGlsZHJlbjogbnVsbCxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7XHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBhZGREYXRhID0gW10sXHJcbiAgICAgIGRlbGV0ZURhdGEgPSBbXSxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgdmlld25hbWUsXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGV0IHsgdmlld1VybCwgdmlld0JpelVybCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgcmVxdWVzdFZpZXdVcmwgPSB2aWV3dHlwZSA9PSBcInN5c1wiID8gdmlld1VybCA6IHZpZXdCaXpVcmw7XHJcblxyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBfdGhpcy5nZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgICAgICBhbGxEYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgICAgIGRhdGFTdG9yZTogZGF0YSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBfdGhpcy5nZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgICAgICBhbGxEYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgICAgIGRhdGFTdG9yZTogZGF0YSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKCh2aWV3bmFtZSB8fCB1cmwpICYmIGRhdGEgPT0gbnVsbCAmJiBvcHRpb25zID09IG51bGwpIHtcclxuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVLZXkgPSBjYWNoZUtleTtcclxuICAgICAgICBpZiAodmlld25hbWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICBpc0NhY2hlZCA9IHZpZXduYW1lID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCByZXF1ZXN0Vmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiBhbGxDaGlsZHJlbiB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICBsZXQgeyBzdG9yZSA9IHt9LCBhZGREYXRhID0gW10sIGRlbGV0ZURhdGEgPSBbXSwgdmFsdWVGaWVsZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQgPyB2YWx1ZUZpZWxkIDogdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YSA9IFsuLi5kYXRhXTtcclxuICAgIGlmIChhZGREYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgbmV3RGF0YSA9IFsuLi5hZGREYXRhLCAuLi5uZXdEYXRhXTtcclxuICAgIH1cclxuICAgIGlmIChkZWxldGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHNwbGljZURhdGEgPSBbXTtcclxuICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICBuZXdEYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPT0gLTEpIHtcclxuICAgICAgICAgIHNwbGljZURhdGEucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gc3BsaWNlRGF0YTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmFsbERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0RGF0YSh2YWx1ZSkge1xyXG4gICAgY29uc3QgeyBkYXRhU291cmNlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHsgc3RvcmUgPSB7fSwgdmFsdWVGaWVsZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQgPyB2YWx1ZUZpZWxkIDogdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRGbGF0dGVuRGF0YShkYXRhU291cmNlLCB7IGtleUZpZWxkOiB2YWx1ZUZpZWxkIH0pO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIGxldCByZXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgIHZhbHVlLm1hcCgodmFsKSA9PiB7XHJcbiAgICAgICAgcmVzLnB1c2gobmV3RGF0YVt2YWxdIHx8IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbmV3RGF0YVt2YWx1ZV0gfHwge307XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIFNuYXBzaG90KSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiwgZGF0YVN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShuZXdQcm9wcy5kZWxldGVEYXRhKSAhPT1cclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmRlbGV0ZURhdGEpIHx8XHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KG5ld1Byb3BzLmFkZERhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmFkZERhdGEpXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IHRoaXMuZ2V0QWxsRGF0YShkYXRhU3RvcmUpO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgZGF0YVN0b3JlOiBkYXRhU3RvcmUsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNvbnN0IHN0YXRlQ2hpbGRyZW5Qcm9wczogYW55ID0gW107XHJcbiAgICAgIGFsbENoaWxkcmVuLm1hcCgoczogYW55KSA9PiB7XHJcbiAgICAgICAgc3RhdGVDaGlsZHJlblByb3BzLnB1c2gocy5wcm9wcyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBjaGlsZHJlblByb3BzOiBhbnkgPSBbXTtcclxuICAgICAgY2hpbGRyZW4ubWFwKChjOiBhbnkpID0+IHtcclxuICAgICAgICBjaGlsZHJlblByb3BzLnB1c2goYy5wcm9wcyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoc3RhdGVDaGlsZHJlblByb3BzKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hpbGRyZW5Qcm9wcylcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgICBhbGxDaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlID0gKHN0YXRlLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9O1xyXG4gIH1cclxuICBvblNlYXJjaCh2YWx1ZSkge1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgZmlsdGVyT3B0aW9uID0gdHJ1ZSwgb25TZWFyY2gsIGNoaWxkcmVuLCBzdG9yZSA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgbGFiZWxGaWVsZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgaWYgKGZpbHRlck9wdGlvbikge1xyXG4gICAgICBsZXQgcmVzdWx0ID0gW107XHJcbiAgICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICAgICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICBsYWJlbCA9IGl0ZW1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgaXRlbVtsXSA6IGxhYmVsICsgXCItXCIgKyBpdGVtW2xdO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBmbGFnID0gUGlueWluTWF0Y2gubWF0Y2gobGFiZWwsIHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogcmVzdWx0LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkYXRhU291cmNlOiBhbGxEYXRhU291cmNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWxsQ2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgIGFsbENoaWxkcmVuLm1hcCgoY2hpbGQ6IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICBsZXQgbGFiZWwgPSBjaGlsZD8ucHJvcHM/LmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgIGxldCBmbGFnID0gUGlueWluTWF0Y2gubWF0Y2gobGFiZWwsIHZhbHVlKTtcclxuICAgICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hpbGRyZW46IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvblNlYXJjaCAmJiBvblNlYXJjaCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHJlbmRlck9wdGlvbihvcHRpb25EYXRhKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICB2YWx1ZVR5cGUgPSBcInN0cmluZ1wiLFxyXG4gICAgICBsYWJlbEZpZWxkLFxyXG4gICAgICB2YWx1ZUZpZWxkLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuICAgIHZhbHVlRmllbGQgPSB2YWx1ZUZpZWxkID8gdmFsdWVGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0S2V5XCIgOiBcInZhbHVlXCI7XHJcbiAgICBsYWJlbEZpZWxkID0gbGFiZWxGaWVsZCA/IGxhYmVsRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdFZhbHVlXCIgOiBcImxhYmVsXCI7XHJcbiAgICByZXR1cm4gb3B0aW9uRGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICAgIGlmICh2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIHZhbHVlID1cclxuICAgICAgICAgIHZhbHVlVHlwZSA9PT0gXCJudW1iZXJcIiA/IE51bWJlcihpdGVtW3ZhbHVlRmllbGRdKSA6IGl0ZW1bdmFsdWVGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIHZhbHVlID0gXCJcIjtcclxuICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQga2V5ID0gaXRlbS5pZCA/IChpdGVtLmlkICE9PSBcInVuZGVmaW5lZFwiID8gaXRlbS5pZCA6IHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBsYWJlbCA9IGl0ZW1bbGFiZWxGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgaXRlbVtsXSA6IGxhYmVsICsgXCItXCIgKyBpdGVtW2xdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE9wdGlvblxyXG4gICAgICAgICAga2V5PXtrZXl9XHJcbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XHJcbiAgICAgICAgICBsYWJlbD17bGFiZWx9XHJcbiAgICAgICAgICBkaXNhYmxlZD17aXRlbS5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7bGFiZWx9XHJcbiAgICAgICAgPC9PcHRpb24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyQ2hpbGRyZW4oKSB7XHJcbiAgICBjb25zdCB7IHNob3dHcm91cCA9IHRydWUsIGdyb3VwRmllbGQgPSBcImdyb3VwTmFtZVwiIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBkYXRhU291cmNlLCBjaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IG9wdEdyb3VwRGF0YSA9IHt9LFxyXG4gICAgICAgIG9wdGlvbkRhdGEgPSBbXTtcclxuICAgICAgZGF0YVNvdXJjZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IGxhYmVsID0gaXRlbVtncm91cEZpZWxkXTtcclxuICAgICAgICBpZiAobGFiZWwgJiYgc2hvd0dyb3VwKSB7XHJcbiAgICAgICAgICBpZiAoIW9wdEdyb3VwRGF0YVtsYWJlbF0pIG9wdEdyb3VwRGF0YVtsYWJlbF0gPSBbXTtcclxuICAgICAgICAgIG9wdEdyb3VwRGF0YVtsYWJlbF0ucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9uRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBvcHRpb24gPSB0aGlzLnJlbmRlck9wdGlvbihvcHRpb25EYXRhKTtcclxuICAgICAgbGV0IG9wdEdyb3VwID0gT2JqZWN0LmtleXMob3B0R3JvdXBEYXRhKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8T3B0R3JvdXAga2V5PXtrZXl9IGxhYmVsPXtrZXl9PlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJPcHRpb24ob3B0R3JvdXBEYXRhW2tleV0pfVxyXG4gICAgICAgICAgPC9PcHRHcm91cD5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAge29wdGlvbn1cclxuICAgICAgICAgIHtvcHRHcm91cH1cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0U2VsZWN0RGF0YSh2YWx1ZSk7XHJcbiAgICAgIG9uQ2hhbmdlKHZhbHVlLCBvcHRpb25zLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25TZWxlY3QodmFsdWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgb25TZWxlY3QgfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgaWYgKG9uU2VsZWN0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldFNlbGVjdERhdGEodmFsdWUpO1xyXG4gICAgICBvblNlbGVjdCh2YWx1ZSwgb3B0aW9ucywgZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlKG9wZW4pIHtcclxuICAgIGlmICghb3Blbikge1xyXG4gICAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBzdG9yZSxcclxuICAgICAgZGF0YSxcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICAgIG9uU2VsZWN0LFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBsYWJlbEZpZWxkLFxyXG4gICAgICB2YWx1ZUZpZWxkLFxyXG4gICAgICBkZWZhdWx0U3R5bGUsXHJcbiAgICAgIHNob3dHcm91cCA9IHRydWUsXHJcbiAgICAgIGFkZERhdGEsXHJcbiAgICAgIGRlbGV0ZURhdGEsXHJcbiAgICAgIHZhbHVlVHlwZSxcclxuICAgICAgZ3JvdXBGaWVsZCxcclxuICAgICAgZGF0YVR5cGUsXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgcHJvcHMgPSB7XHJcbiAgICAgIGZpbHRlck9wdGlvbjogZmFsc2UsXHJcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXHJcbiAgICAgIG9wdGlvbkZpbHRlclByb3A6IFwibGFiZWxcIixcclxuICAgICAgcGxhY2Vob2xkZXI6IFwi6K+36YCJ5oupXCIsXHJcbiAgICAgIGFsbG93Q2xlYXI6IHRydWUsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGxldCB7IGFudGRTdHlsZSwgbW91bnRFbGVtZW50SWQgfSA9IGNvbmZpZygpO1xyXG4gICAgaWYgKG1vdW50RWxlbWVudElkKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGdldFBvcHVwQ29udGFpbmVyOiAoKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb3VudEVsZW1lbnRJZCksXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoKGRlZmF1bHRTdHlsZSB8fCBhbnRkU3R5bGUpICYmIGRlZmF1bHRTdHlsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoc3R5bGVzW1wibnNjX3NlbGVjdFwiXSwgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cclxuICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPXt0aGlzLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cclxuICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17dGhpcy5wcm9wcy5jbGFzc05hbWV9PlxyXG4gICAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZX1cclxuICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMub25TZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25Ecm9wZG93blZpc2libGVDaGFuZ2U9e3RoaXMub25Ecm9wZG93blZpc2libGVDaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBUSxPQUFPO0FBRTVDLE9BQU9DLEtBQUssTUFBc0IsYUFBYTtBQUMvQyxTQUFTQyxLQUFLLFFBQVEsdUJBQXVCO0FBQzdDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBRTVCLE9BQU9DLFdBQVcsTUFBTSxjQUFjO0FBQ3RDLFNBQVNDLGNBQWMsUUFBUSxtQkFBbUI7QUFDbEQsTUFBTTtFQUFFQyxNQUFNO0VBQUVDO0FBQVMsQ0FBQyxHQUFBQyxPQUFTO0FBaUJuQyxlQUFlLE1BQU1DLFNBQVMsU0FBU1gsYUFBYSxDQUFlO0VBWWpFWSxXQUFXQSxDQUFDQyxLQUFLLEVBQUU7SUFDakIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFBQ0MsZUFBQSxnQkFWUDtNQUNOQyxVQUFVLEVBQUUsRUFBRTtNQUNkQyxXQUFXLEVBQUUsSUFBSTtNQUNqQkMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFFBQVEsRUFBRSxJQUFJO01BQ2RDLFdBQVcsRUFBRSxJQUFJO01BQ2pCQyxTQUFTLEVBQUU7SUFDYixDQUFDO0lBQUFOLGVBQUEsZ0JBQ08sQ0FBQyxDQUFDO0lBQUFBLGVBQUEscUJBa0dJTyxJQUFJLElBQUs7TUFDckIsSUFBSTtRQUFFQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQUVDLE9BQU8sR0FBRyxFQUFFO1FBQUVDLFVBQVUsR0FBRyxFQUFFO1FBQUVDO01BQVcsQ0FBQyxHQUFHLElBQUksQ0FBQ1osS0FBSztNQUMxRSxNQUFNO1FBQUVhO01BQVMsQ0FBQyxHQUFHSixLQUFLO01BQzFCRyxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBVSxHQUFHQyxRQUFRLEdBQUcsU0FBUyxHQUFHLE9BQU87TUFDckUsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1AsSUFBSSxDQUFDLEVBQUU7UUFDeEIsT0FBTyxFQUFFO01BQ1g7TUFDQSxJQUFJUSxPQUFPLEdBQUcsQ0FBQyxHQUFHUixJQUFJLENBQUM7TUFDdkIsSUFBSUUsT0FBTyxDQUFDTyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3RCRCxPQUFPLEdBQUcsQ0FBQyxHQUFHTixPQUFPLEVBQUUsR0FBR00sT0FBTyxDQUFDO01BQ3BDO01BQ0EsSUFBSUwsVUFBVSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3pCLElBQUlDLFVBQVUsR0FBRyxFQUFFO1FBQ25CLE1BQU1DLFdBQWdCLEdBQUdQLFVBQVUsQ0FBQ1EsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUM5Q0osT0FBTyxDQUFDSyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxFQUFFQyxDQUFDLEtBQUs7VUFDdkIsSUFBSUMsS0FBSyxHQUFHLEVBQUU7VUFDZEwsV0FBVyxDQUFDRSxHQUFHLENBQUMsQ0FBQ0ksQ0FBQyxFQUFFQyxLQUFLLEtBQUs7WUFDNUJGLEtBQUssR0FBR0UsS0FBSyxJQUFJLENBQUMsR0FBR0YsS0FBSyxHQUFHRixJQUFJLENBQUNHLENBQUMsQ0FBQyxHQUFHRCxLQUFLLEdBQUcsR0FBRyxHQUFHRixJQUFJLENBQUNHLENBQUMsQ0FBQztVQUM5RCxDQUFDLENBQUM7VUFDRixJQUFJZCxVQUFVLENBQUNnQixPQUFPLENBQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ25DTixVQUFVLENBQUNVLElBQUksQ0FBQ04sSUFBSSxDQUFDO1VBQ3ZCO1FBQ0YsQ0FBQyxDQUFDO1FBQ0YsT0FBT0osVUFBVTtNQUNuQixDQUFDLE1BQU07UUFDTCxPQUFPRixPQUFPO01BQ2hCO0lBQ0YsQ0FBQztJQTFIQyxJQUFJO01BQ0ZSLElBQUksRUFBSkEsS0FBSTtNQUNKQyxLQUFLLEVBQUxBLE1BQUssR0FBRyxDQUFDLENBQUM7TUFDVkosUUFBUTtNQUNSd0IsT0FBTztNQUNQbkIsT0FBTyxFQUFQQSxRQUFPLEdBQUcsRUFBRTtNQUNaQyxVQUFVLEVBQVZBLFdBQVUsR0FBRyxFQUFFO01BQ2ZDLFVBQVUsRUFBVkE7SUFDRixDQUFDLEdBQUdaLEtBQUs7SUFDVCxNQUFNO1FBQ0o4QixHQUFHO1FBQ0hDLFNBQVMsRUFBRUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUM3Qm5CLFFBQVEsRUFBUkEsU0FBUTtRQUNSb0IsTUFBTTtRQUNOQyxRQUFRO1FBQ1JDLFFBQVEsR0FBRztNQUViLENBQUMsR0FBRzFCLE1BQUs7TUFESjJCLE1BQU0sR0FBQUMsd0JBQUEsQ0FDUDVCLE1BQUssRUFBQTZCLFNBQUE7SUFDVDFCLFdBQVUsR0FBR0EsV0FBVSxHQUFHQSxXQUFVLEdBQUdDLFNBQVEsR0FBRyxTQUFTLEdBQUcsT0FBTztJQUNyRSxJQUFJO01BQUUwQixPQUFPO01BQUVDO0lBQVcsQ0FBQyxHQUFHbEQsTUFBTSxDQUFDLENBQUM7SUFDdEMsSUFBSW1ELGNBQWMsR0FBR04sUUFBUSxJQUFJLEtBQUssR0FBR0ksT0FBTyxHQUFHQyxVQUFVO0lBRTdELElBQUksQ0FBQ25DLFFBQVEsRUFBRTtNQUNiLElBQUksRUFBRUcsS0FBSSxJQUFJSyxTQUFRLElBQUlpQixHQUFHLElBQUlELE9BQU8sQ0FBQyxFQUFFO1FBQ3pDLE1BQU0sSUFBSWEsS0FBSyxDQUFDLGlDQUFpQyxDQUFDO01BQ3BEO01BQ0EsSUFBSUMsS0FBSyxHQUFHLElBQUk7TUFDaEIsSUFBSUMsVUFBVSxHQUFBQyxhQUFBO1FBQ1pDLEtBQUssRUFBRSxPQUFPO1FBQ2RDLFNBQVMsRUFBRSxJQUFJO1FBQ2ZoQixTQUFTLEVBQUU7VUFDVGlCLFlBQVksRUFBRSxTQUFBQSxDQUFVdkMsS0FBSyxFQUFFb0IsT0FBTyxFQUFFO1lBQ3RDeEMsS0FBSyxDQUFDNEQsUUFBUSxDQUFDakIsYUFBYSxDQUFDZ0IsWUFBWSxFQUFFTCxLQUFLLEVBQUUsQ0FBQ2xDLEtBQUssRUFBRW9CLE9BQU8sQ0FBQyxDQUFDO1VBQ3JFLENBQUM7VUFDRHFCLElBQUksRUFBRSxTQUFBQSxDQUFVMUMsSUFBSSxFQUFFMkMsU0FBUyxFQUFFMUMsS0FBSyxFQUFFO1lBQ3RDLE1BQU1PLE9BQU8sR0FBRzJCLEtBQUssQ0FBQ1MsVUFBVSxDQUFDNUMsSUFBSSxDQUFDO1lBQ3RDbUMsS0FBSyxDQUFDVSxRQUFRLENBQUM7Y0FDYm5ELFVBQVUsRUFBRWMsT0FBTztjQUNuQlosYUFBYSxFQUFFWSxPQUFPO2NBQ3RCVCxTQUFTLEVBQUVDO1lBQ2IsQ0FBQyxDQUFDO1lBQ0ZuQixLQUFLLENBQUM0RCxRQUFRLENBQUNqQixhQUFhLENBQUNrQixJQUFJLEVBQUVQLEtBQUssRUFBRSxDQUFDbkMsSUFBSSxFQUFFMkMsU0FBUyxFQUFFMUMsS0FBSyxDQUFDLENBQUM7VUFDckUsQ0FBQztVQUNENkMsV0FBVyxFQUFFLFNBQUFBLENBQVU5QyxJQUFJLEVBQUUyQyxTQUFTLEVBQUUxQyxLQUFLLEVBQUU7WUFDN0MsTUFBTU8sT0FBTyxHQUFHMkIsS0FBSyxDQUFDUyxVQUFVLENBQUM1QyxJQUFJLENBQUM7WUFDdENtQyxLQUFLLENBQUNVLFFBQVEsQ0FBQztjQUNibkQsVUFBVSxFQUFFYyxPQUFPO2NBQ25CWixhQUFhLEVBQUVZLE9BQU87Y0FDdEJULFNBQVMsRUFBRUM7WUFDYixDQUFDLENBQUM7WUFDRm5CLEtBQUssQ0FBQzRELFFBQVEsQ0FBQ2pCLGFBQWEsQ0FBQ3NCLFdBQVcsRUFBRVgsS0FBSyxFQUFFLENBQy9DbkMsSUFBSSxFQUNKMkMsU0FBUyxFQUNUMUMsS0FBSyxDQUNOLENBQUM7VUFDSjtRQUNGO01BQUMsR0FDRTJCLE1BQU0sQ0FDVjtNQUNELElBQUksQ0FBQ3ZCLFNBQVEsSUFBSWlCLEdBQUcsS0FBS3RCLEtBQUksSUFBSSxJQUFJLElBQUlxQixPQUFPLElBQUksSUFBSSxFQUFFO1FBQ3hELElBQUkwQixRQUFRLEdBQUd0QixNQUFNO1FBQ3JCLElBQUl1QixVQUFVLEdBQUd0QixRQUFRO1FBQ3pCLElBQUlyQixTQUFRLEVBQUU7VUFDWixJQUFJLE9BQU9vQixNQUFNLEtBQUssU0FBUyxFQUFFO1lBQy9Cc0IsUUFBUSxHQUFHMUMsU0FBUSxHQUFHLElBQUksR0FBRyxLQUFLO1lBQ2xDMkMsVUFBVSxHQUFHQSxVQUFVLEdBQUdBLFVBQVUsR0FBRzNDLFNBQVE7VUFDakQ7UUFDRjtRQUVBK0IsVUFBVSxHQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FDTDtVQUNEWSxRQUFRLEVBQUUsSUFBSTtVQUNkM0IsR0FBRyxFQUFFQSxHQUFHLElBQUlXLGNBQWMsR0FBRzVCLFNBQVE7VUFBRTtVQUN2Q29CLE1BQU0sRUFBRXNCLFFBQVE7VUFDaEJyQixRQUFRLEVBQUVzQjtRQUNaLENBQUMsR0FDRVosVUFBVSxDQUNkO01BQ0g7TUFDQSxJQUFJLENBQUNuQyxLQUFLLEdBQUcsSUFBSXJCLEtBQUssQ0FBQ3dELFVBQVUsQ0FBQztJQUNwQztFQUNGO0VBRUFjLFNBQVNBLENBQUEsRUFBRztJQUNWLE1BQU07TUFBRXJEO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ0wsS0FBSztJQUMvQixNQUFNO01BQUVJLGFBQWE7TUFBRUU7SUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDcUQsS0FBSztJQUNqRCxJQUFJdEQsUUFBUSxFQUFFO01BQ1osSUFBSSxDQUFDZ0QsUUFBUSxDQUFDO1FBQUVoRCxRQUFRLEVBQUVDO01BQVksQ0FBQyxDQUFDO0lBQzFDLENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQytDLFFBQVEsQ0FBQztRQUNabkQsVUFBVSxFQUFFRTtNQUNkLENBQUMsQ0FBQztJQUNKO0VBQ0Y7RUE4QkF3RCxPQUFPQSxDQUFBLEVBQUc7SUFDUixPQUFPLElBQUksQ0FBQ0QsS0FBSyxDQUFDdkQsYUFBYTtFQUNqQztFQUVBeUQsUUFBUUEsQ0FBQSxFQUFHO0lBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUssQ0FBQ3hELFdBQVc7RUFDL0I7RUFDQTJELFFBQVFBLENBQUN0QyxLQUFLLEVBQUU7SUFDZCxJQUFJLENBQUM2QixRQUFRLENBQUM7TUFDWmxELFdBQVcsRUFBRXFCO0lBQ2YsQ0FBQyxDQUFDO0VBQ0o7RUFFQXVDLGFBQWFBLENBQUN2QyxLQUFLLEVBQUU7SUFDbkIsTUFBTTtNQUFFdEI7SUFBVyxDQUFDLEdBQUcsSUFBSSxDQUFDeUQsS0FBSztJQUNqQyxJQUFJO01BQUVsRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO01BQUVHO0lBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQ1osS0FBSztJQUMzQyxNQUFNO01BQUVhO0lBQVMsQ0FBQyxHQUFHSixLQUFLO0lBQzFCRyxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBVSxHQUFHQyxRQUFRLEdBQUcsU0FBUyxHQUFHLE9BQU87SUFDckUsTUFBTUcsT0FBTyxHQUFHdEIsY0FBYyxDQUFDUSxVQUFVLEVBQUU7TUFBRThELFFBQVEsRUFBRXBEO0lBQVcsQ0FBQyxDQUFDO0lBQ3BFLElBQUlFLEtBQUssQ0FBQ0MsT0FBTyxDQUFDUyxLQUFLLENBQUMsRUFBRTtNQUN4QixJQUFJeUMsR0FBRyxHQUFHLEVBQVM7TUFDbkJ6QyxLQUFLLENBQUNILEdBQUcsQ0FBRTZDLEdBQUcsSUFBSztRQUNqQkQsR0FBRyxDQUFDckMsSUFBSSxDQUFDWixPQUFPLENBQUNrRCxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztNQUM5QixDQUFDLENBQUM7TUFDRixPQUFPRCxHQUFHO0lBQ1osQ0FBQyxNQUFNO01BQ0wsT0FBT2pELE9BQU8sQ0FBQ1EsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCO0VBQ0Y7RUFFQTJDLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ2xCLE1BQU07TUFBRTNELElBQUk7TUFBRXFCLE9BQU87TUFBRXhCO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ0wsS0FBSztJQUM5QyxJQUFJLENBQUNLLFFBQVEsS0FBS0csSUFBSSxJQUFJcUIsT0FBTyxDQUFDLEVBQUU7TUFDbEMsSUFBSSxDQUFDd0IsUUFBUSxDQUFDO1FBQ1puRCxVQUFVLEVBQUVNLElBQUksR0FBR0EsSUFBSSxHQUFHcUIsT0FBTztRQUNqQ3pCLGFBQWEsRUFBRUksSUFBSSxHQUFHQSxJQUFJLEdBQUdxQjtNQUMvQixDQUFDLENBQUM7SUFDSixDQUFDLE1BQU0sSUFBSXhCLFFBQVEsRUFBRTtNQUNuQixJQUFJLENBQUNnRCxRQUFRLENBQUM7UUFDWmhELFFBQVEsRUFBRUEsUUFBUTtRQUNsQkMsV0FBVyxFQUFFRDtNQUNmLENBQUMsQ0FBQztJQUNKO0VBQ0Y7RUFFQStELGtCQUFrQkEsQ0FBQ0MsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsRUFBRTtJQUMvQyxNQUFNO01BQUUvRCxJQUFJO01BQUVxQixPQUFPO01BQUV4QjtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNMLEtBQUs7SUFDOUMsTUFBTTtNQUFFSSxhQUFhO01BQUVFLFdBQVc7TUFBRUM7SUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDb0QsS0FBSztJQUM1RCxJQUFJLENBQUN0RCxRQUFRLEtBQUtHLElBQUksSUFBSXFCLE9BQU8sQ0FBQyxFQUFFO01BQ2xDLE1BQU1iLE9BQU8sR0FBR1IsSUFBSSxHQUFHQSxJQUFJLEdBQUdxQixPQUFPO01BQ3JDLElBQUkyQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ3JFLGFBQWEsQ0FBQyxLQUFLb0UsSUFBSSxDQUFDQyxTQUFTLENBQUN6RCxPQUFPLENBQUMsRUFBRTtRQUM3RCxJQUFJLENBQUNxQyxRQUFRLENBQUM7VUFDWm5ELFVBQVUsRUFBRWMsT0FBTztVQUNuQlosYUFBYSxFQUFFWTtRQUNqQixDQUFDLENBQUM7TUFDSjtJQUNGO0lBQ0EsSUFDRXdELElBQUksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRLENBQUMxRCxVQUFVLENBQUMsS0FDakM2RCxJQUFJLENBQUNDLFNBQVMsQ0FBQyxJQUFJLENBQUN6RSxLQUFLLENBQUNXLFVBQVUsQ0FBQyxJQUN2QzZELElBQUksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRLENBQUMzRCxPQUFPLENBQUMsS0FBSzhELElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ3pFLEtBQUssQ0FBQ1UsT0FBTyxDQUFDLEVBQ3ZFO01BQ0EsTUFBTU0sT0FBTyxHQUFHLElBQUksQ0FBQ29DLFVBQVUsQ0FBQzdDLFNBQVMsQ0FBQztNQUMxQyxJQUFJLENBQUM4QyxRQUFRLENBQUM7UUFDWm5ELFVBQVUsRUFBRWMsT0FBTztRQUNuQlosYUFBYSxFQUFFWSxPQUFPO1FBQ3RCVCxTQUFTLEVBQUVBO01BQ2IsQ0FBQyxDQUFDO0lBQ0o7SUFDQSxJQUFJRixRQUFRLElBQUlTLEtBQUssQ0FBQ0MsT0FBTyxDQUFDVixRQUFRLENBQUMsRUFBRTtNQUN2QyxNQUFNcUUsa0JBQXVCLEdBQUcsRUFBRTtNQUNsQ3BFLFdBQVcsQ0FBQ2UsR0FBRyxDQUFFc0QsQ0FBTSxJQUFLO1FBQzFCRCxrQkFBa0IsQ0FBQzlDLElBQUksQ0FBQytDLENBQUMsQ0FBQzNFLEtBQUssQ0FBQztNQUNsQyxDQUFDLENBQUM7TUFDRixNQUFNNEUsYUFBa0IsR0FBRyxFQUFFO01BQzdCdkUsUUFBUSxDQUFDZ0IsR0FBRyxDQUFFd0QsQ0FBTSxJQUFLO1FBQ3ZCRCxhQUFhLENBQUNoRCxJQUFJLENBQUNpRCxDQUFDLENBQUM3RSxLQUFLLENBQUM7TUFDN0IsQ0FBQyxDQUFDO01BQ0YsSUFDRXdFLElBQUksQ0FBQ0MsU0FBUyxDQUFDQyxrQkFBa0IsQ0FBQyxLQUFLRixJQUFJLENBQUNDLFNBQVMsQ0FBQ0csYUFBYSxDQUFDLEVBQ3BFO1FBQ0EsSUFBSSxDQUFDdkIsUUFBUSxDQUFDO1VBQ1poRCxRQUFRLEVBQUVBLFFBQVE7VUFDbEJDLFdBQVcsRUFBRUQ7UUFDZixDQUFDLENBQUM7TUFDSjtJQUNGO0VBQ0Y7RUFDQXlFLG9CQUFvQkEsQ0FBQSxFQUFHO0lBQ3JCLElBQUksQ0FBQ3pCLFFBQVEsR0FBRyxDQUFDTSxLQUFLLEVBQUVWLFFBQVEsS0FBSztNQUNuQztJQUNGLENBQUM7RUFDSDtFQUNBOEIsUUFBUUEsQ0FBQ3ZELEtBQUssRUFBRTtJQUNkLE1BQU07TUFBRXBCLGFBQWE7TUFBRUU7SUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDcUQsS0FBSztJQUNqRCxNQUFNO01BQUVxQixZQUFZLEdBQUcsSUFBSTtNQUFFRCxRQUFRO01BQUUxRSxRQUFRO01BQUVJLEtBQUssR0FBRyxDQUFDO0lBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQ1QsS0FBSztJQUMxRSxJQUFJO01BQUVpRjtJQUFXLENBQUMsR0FBRyxJQUFJLENBQUNqRixLQUFLO0lBQy9CLE1BQU07TUFBRWE7SUFBUyxDQUFDLEdBQUdKLEtBQUs7SUFDMUJ3RSxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBVSxHQUFHcEUsUUFBUSxHQUFHLFdBQVcsR0FBRyxPQUFPO0lBQ3ZFLElBQUltRSxZQUFZLEVBQUU7TUFDaEIsSUFBSUUsTUFBTSxHQUFHLEVBQUU7TUFDZixJQUFJLENBQUM3RSxRQUFRLEVBQUU7UUFDYixJQUFJbUIsS0FBSyxFQUFFO1VBQ1RwQixhQUFhLENBQUMrRSxPQUFPLENBQUU3RCxJQUFJLElBQUs7WUFDOUIsSUFBSThELEtBQUssR0FBRyxFQUFFO1lBQ2QsSUFBSUgsVUFBVSxDQUFDN0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDSCxNQUFNLElBQUksQ0FBQyxFQUFFO2NBQ3JDbUUsS0FBSyxHQUFHOUQsSUFBSSxDQUFDMkQsVUFBVSxDQUFDO1lBQzFCLENBQUMsTUFBTTtjQUNMLE1BQU1JLFdBQWdCLEdBQUdKLFVBQVUsQ0FBQzdELEtBQUssQ0FBQyxHQUFHLENBQUM7Y0FDOUNpRSxXQUFXLENBQUNoRSxHQUFHLENBQUMsQ0FBQ2lFLENBQUMsRUFBRTVELEtBQUssS0FBSztnQkFDNUIwRCxLQUFLLEdBQUcxRCxLQUFLLElBQUksQ0FBQyxHQUFHMEQsS0FBSyxHQUFHOUQsSUFBSSxDQUFDZ0UsQ0FBQyxDQUFDLEdBQUdGLEtBQUssR0FBRyxHQUFHLEdBQUc5RCxJQUFJLENBQUNnRSxDQUFDLENBQUM7Y0FDOUQsQ0FBQyxDQUFDO1lBQ0o7WUFDQSxJQUFJQyxJQUFJLEdBQUc5RixXQUFXLENBQUMrRixLQUFLLENBQUNKLEtBQUssRUFBRTVELEtBQUssQ0FBQztZQUMxQyxJQUFJK0QsSUFBSSxFQUFFO2NBQ1JMLE1BQU0sQ0FBQ3RELElBQUksQ0FBQ04sSUFBSSxDQUFDO1lBQ25CO1VBQ0YsQ0FBQyxDQUFDO1VBQ0YsSUFBSSxDQUFDK0IsUUFBUSxDQUFDO1lBQ1puRCxVQUFVLEVBQUVnRjtVQUNkLENBQUMsQ0FBQztRQUNKLENBQUMsTUFBTTtVQUNMLElBQUksQ0FBQzdCLFFBQVEsQ0FBQztZQUNabkQsVUFBVSxFQUFFRTtVQUNkLENBQUMsQ0FBQztRQUNKO01BQ0YsQ0FBQyxNQUFNO1FBQ0wsSUFBSW9CLEtBQUssRUFBRTtVQUNULElBQUlWLEtBQUssQ0FBQ0MsT0FBTyxDQUFDVCxXQUFXLENBQUMsRUFBRTtZQUM5QkEsV0FBVyxDQUFDZSxHQUFHLENBQUMsQ0FBQ29FLEtBQVUsRUFBRS9ELEtBQUssS0FBSztjQUFBLElBQUFnRSxZQUFBO2NBQ3JDLElBQUlOLEtBQUssR0FBR0ssS0FBSyxhQUFMQSxLQUFLLGdCQUFBQyxZQUFBLEdBQUxELEtBQUssQ0FBRXpGLEtBQUssY0FBQTBGLFlBQUEsdUJBQVpBLFlBQUEsQ0FBY3JGLFFBQVE7Y0FDbEMsSUFBSWtGLElBQUksR0FBRzlGLFdBQVcsQ0FBQytGLEtBQUssQ0FBQ0osS0FBSyxFQUFFNUQsS0FBSyxDQUFDO2NBQzFDLElBQUkrRCxJQUFJLEVBQUU7Z0JBQ1JMLE1BQU0sQ0FBQ3RELElBQUksQ0FBQzZELEtBQUssQ0FBQztjQUNwQjtZQUNGLENBQUMsQ0FBQztVQUNKO1VBQ0EsSUFBSSxDQUFDcEMsUUFBUSxDQUFDO1lBQ1poRCxRQUFRLEVBQUU2RTtVQUNaLENBQUMsQ0FBQztRQUNKLENBQUMsTUFBTTtVQUNMLElBQUksQ0FBQzdCLFFBQVEsQ0FBQztZQUNaaEQsUUFBUSxFQUFFQTtVQUNaLENBQUMsQ0FBQztRQUNKO01BQ0Y7SUFDRjtJQUNBMEUsUUFBUSxJQUFJQSxRQUFRLENBQUN2RCxLQUFLLENBQUM7RUFDN0I7RUFDQW1FLFlBQVlBLENBQUNDLFVBQVUsRUFBRTtJQUN2QixJQUFJO01BQ0ZuRixLQUFLLEdBQUcsQ0FBQyxDQUFDO01BQ1ZvRixTQUFTLEdBQUcsUUFBUTtNQUNwQlosVUFBVTtNQUNWckU7SUFDRixDQUFDLEdBQUcsSUFBSSxDQUFDWixLQUFLO0lBQ2QsTUFBTTtNQUFFYTtJQUFTLENBQUMsR0FBR0osS0FBSztJQUMxQkcsVUFBVSxHQUFHQSxVQUFVLEdBQUdBLFVBQVUsR0FBR0MsUUFBUSxHQUFHLFNBQVMsR0FBRyxPQUFPO0lBQ3JFb0UsVUFBVSxHQUFHQSxVQUFVLEdBQUdBLFVBQVUsR0FBR3BFLFFBQVEsR0FBRyxXQUFXLEdBQUcsT0FBTztJQUN2RSxPQUFPK0UsVUFBVSxDQUFDdkUsR0FBRyxDQUFFQyxJQUFJLElBQUs7TUFDOUIsSUFBSUUsS0FBVTtNQUNkLElBQUlaLFVBQVUsQ0FBQ1EsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDSCxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQ3JDTyxLQUFLLEdBQ0hxRSxTQUFTLEtBQUssUUFBUSxHQUFHQyxNQUFNLENBQUN4RSxJQUFJLENBQUNWLFVBQVUsQ0FBQyxDQUFDLEdBQUdVLElBQUksQ0FBQ1YsVUFBVSxDQUFDO01BQ3hFLENBQUMsTUFBTTtRQUNMLE1BQU1PLFdBQWdCLEdBQUdQLFVBQVUsQ0FBQ1EsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUM5Q0ksS0FBSyxHQUFHLEVBQUU7UUFDVkwsV0FBVyxDQUFDRSxHQUFHLENBQUMsQ0FBQ0ksQ0FBQyxFQUFFQyxLQUFLLEtBQUs7VUFDNUJGLEtBQUssR0FBR0UsS0FBSyxJQUFJLENBQUMsR0FBR0YsS0FBSyxHQUFHRixJQUFJLENBQUNHLENBQUMsQ0FBQyxHQUFHRCxLQUFLLEdBQUcsR0FBRyxHQUFHRixJQUFJLENBQUNHLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUM7TUFDSjtNQUNBLElBQUlzRSxHQUFHLEdBQUd6RSxJQUFJLENBQUMwRSxFQUFFLEdBQUkxRSxJQUFJLENBQUMwRSxFQUFFLEtBQUssV0FBVyxHQUFHMUUsSUFBSSxDQUFDMEUsRUFBRSxHQUFHeEUsS0FBSyxHQUFJQSxLQUFLO01BQ3ZFLElBQUk0RCxLQUFLLEdBQUcsRUFBRTtNQUNkLElBQUlILFVBQVUsQ0FBQzdELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ0gsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUNyQ21FLEtBQUssR0FBRzlELElBQUksQ0FBQzJELFVBQVUsQ0FBQztNQUMxQixDQUFDLE1BQU07UUFDTCxNQUFNSSxXQUFnQixHQUFHSixVQUFVLENBQUM3RCxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzlDaUUsV0FBVyxDQUFDaEUsR0FBRyxDQUFDLENBQUNpRSxDQUFDLEVBQUU1RCxLQUFLLEtBQUs7VUFDNUIwRCxLQUFLLEdBQUcxRCxLQUFLLElBQUksQ0FBQyxHQUFHMEQsS0FBSyxHQUFHOUQsSUFBSSxDQUFDZ0UsQ0FBQyxDQUFDLEdBQUdGLEtBQUssR0FBRyxHQUFHLEdBQUc5RCxJQUFJLENBQUNnRSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDO01BQ0o7TUFDQSxvQkFDRXBHLEtBQUEsQ0FBQStHLGFBQUEsQ0FBQ3RHLE1BQU07UUFDTG9HLEdBQUcsRUFBRUEsR0FBSTtRQUNUdkUsS0FBSyxFQUFFQSxLQUFNO1FBQ2I0RCxLQUFLLEVBQUVBLEtBQU07UUFDYmMsUUFBUSxFQUFFNUUsSUFBSSxDQUFDNEUsUUFBUSxHQUFHLElBQUksR0FBRztNQUFNLEdBRXRDZCxLQUNLLENBQUM7SUFFYixDQUFDLENBQUM7RUFDSjtFQUNBZSxjQUFjQSxDQUFBLEVBQUc7SUFDZixNQUFNO01BQUVDLFNBQVMsR0FBRyxJQUFJO01BQUVDLFVBQVUsR0FBRztJQUFZLENBQUMsR0FBRyxJQUFJLENBQUNyRyxLQUFLO0lBQ2pFLE1BQU07TUFBRUUsVUFBVTtNQUFFRztJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNzRCxLQUFLO0lBQzNDLElBQUl0RCxRQUFRLEVBQUU7TUFDWixvQkFBT25CLEtBQUEsQ0FBQStHLGFBQUEsQ0FBQS9HLEtBQUEsQ0FBQW9ILFFBQUEsUUFBR2pHLFFBQVcsQ0FBQztJQUN4QixDQUFDLE1BQU07TUFDTCxJQUFJa0csWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNuQlgsVUFBVSxHQUFHLEVBQUU7TUFDakIxRixVQUFVLENBQUNpRixPQUFPLENBQUU3RCxJQUFJLElBQUs7UUFDM0IsSUFBSThELEtBQUssR0FBRzlELElBQUksQ0FBQytFLFVBQVUsQ0FBQztRQUM1QixJQUFJakIsS0FBSyxJQUFJZ0IsU0FBUyxFQUFFO1VBQ3RCLElBQUksQ0FBQ0csWUFBWSxDQUFDbkIsS0FBSyxDQUFDLEVBQUVtQixZQUFZLENBQUNuQixLQUFLLENBQUMsR0FBRyxFQUFFO1VBQ2xEbUIsWUFBWSxDQUFDbkIsS0FBSyxDQUFDLENBQUN4RCxJQUFJLENBQUNOLElBQUksQ0FBQztRQUNoQyxDQUFDLE1BQU07VUFDTHNFLFVBQVUsQ0FBQ2hFLElBQUksQ0FBQ04sSUFBSSxDQUFDO1FBQ3ZCO01BQ0YsQ0FBQyxDQUFDO01BQ0YsSUFBSWtGLE1BQU0sR0FBRyxJQUFJLENBQUNiLFlBQVksQ0FBQ0MsVUFBVSxDQUFDO01BQzFDLElBQUlhLFFBQVEsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNKLFlBQVksQ0FBQyxDQUFDbEYsR0FBRyxDQUFFMEUsR0FBRyxJQUFLO1FBQ3BELG9CQUNFN0csS0FBQSxDQUFBK0csYUFBQSxDQUFDckcsUUFBUTtVQUFDbUcsR0FBRyxFQUFFQSxHQUFJO1VBQUNYLEtBQUssRUFBRVc7UUFBSSxHQUM1QixJQUFJLENBQUNKLFlBQVksQ0FBQ1ksWUFBWSxDQUFDUixHQUFHLENBQUMsQ0FDNUIsQ0FBQztNQUVmLENBQUMsQ0FBQztNQUNGLG9CQUNFN0csS0FBQSxDQUFBK0csYUFBQSxDQUFBL0csS0FBQSxDQUFBb0gsUUFBQSxRQUNHRSxNQUFNLEVBQ05DLFFBQ0QsQ0FBQztJQUVQO0VBQ0Y7RUFDQUcsUUFBUUEsQ0FBQ3BGLEtBQUssRUFBRUssT0FBTyxFQUFFO0lBQ3ZCLE1BQU07TUFBRStFO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzVHLEtBQUs7SUFDL0IsSUFBSSxDQUFDcUQsUUFBUSxDQUFDO01BQ1psRCxXQUFXLEVBQUVxQjtJQUNmLENBQUMsQ0FBQztJQUNGLElBQUlvRixRQUFRLEVBQUU7TUFDWixNQUFNcEcsSUFBSSxHQUFHLElBQUksQ0FBQ3VELGFBQWEsQ0FBQ3ZDLEtBQUssQ0FBQztNQUN0Q29GLFFBQVEsQ0FBQ3BGLEtBQUssRUFBRUssT0FBTyxFQUFFckIsSUFBSSxDQUFDO0lBQ2hDO0VBQ0Y7RUFDQXFHLFFBQVFBLENBQUNyRixLQUFLLEVBQUVLLE9BQU8sRUFBRTtJQUN2QixNQUFNO01BQUVnRjtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUM3RyxLQUFLO0lBRS9CLElBQUk2RyxRQUFRLEVBQUU7TUFDWixNQUFNckcsSUFBSSxHQUFHLElBQUksQ0FBQ3VELGFBQWEsQ0FBQ3ZDLEtBQUssQ0FBQztNQUN0Q3FGLFFBQVEsQ0FBQ3JGLEtBQUssRUFBRUssT0FBTyxFQUFFckIsSUFBSSxDQUFDO0lBQ2hDO0VBQ0Y7RUFDQXNHLHVCQUF1QkEsQ0FBQ0MsSUFBSSxFQUFFO0lBQzVCLElBQUksQ0FBQ0EsSUFBSSxFQUFFO01BQ1QsSUFBSSxDQUFDckQsU0FBUyxDQUFDLENBQUM7SUFDbEI7RUFDRjtFQUNBc0QsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBQUMsV0FBQSxHQWlCSSxJQUFJLENBQUNqSCxLQUFLO01BakJSO1FBQ0pLLFFBQVE7UUFDUkksS0FBSztRQUNMRCxJQUFJO1FBQ0pvRyxRQUFRO1FBQ1JDLFFBQVE7UUFDUmhGLE9BQU87UUFDUG9ELFVBQVU7UUFDVnJFLFVBQVU7UUFDVnNHLFlBQVk7UUFDWmQsU0FBUyxHQUFHLElBQUk7UUFDaEIxRixPQUFPO1FBQ1BDLFVBQVU7UUFDVmtGLFNBQVM7UUFDVFEsVUFBVTtRQUNWYztNQUVGLENBQUMsR0FBQUYsV0FBQTtNQURJRyxNQUFNLEdBQUEvRSx3QkFBQSxDQUFBNEUsV0FBQSxFQUFBSSxVQUFBO0lBRVgsSUFBSXJILEtBQUssR0FBRztNQUNWZ0YsWUFBWSxFQUFFLEtBQUs7TUFDbkJzQyxVQUFVLEVBQUUsSUFBSTtNQUNoQkMsZ0JBQWdCLEVBQUUsT0FBTztNQUN6QkMsV0FBVyxFQUFFLEtBQUs7TUFDbEJDLFVBQVUsRUFBRTtJQUNkLENBQVE7SUFDUixJQUFJO01BQUVDLFNBQVM7TUFBRUM7SUFBZSxDQUFDLEdBQUdySSxNQUFNLENBQUMsQ0FBQztJQUM1QyxJQUFJcUksY0FBYyxFQUFFO01BQ2xCM0gsS0FBSyxHQUFBNkMsYUFBQTtRQUNIK0UsaUJBQWlCLEVBQUVBLENBQUEsS0FBTUMsUUFBUSxDQUFDQyxjQUFjLENBQUNILGNBQWM7TUFBQyxHQUM3RDNILEtBQUssQ0FDVDtJQUNIO0lBQ0EsSUFBSSxDQUFDa0gsWUFBWSxJQUFJUSxTQUFTLEtBQUtSLFlBQVksS0FBSyxJQUFJLEVBQUU7TUFDeEQsb0JBQ0VoSSxLQUFBLENBQUErRyxhQUFBO1FBQUs4QixTQUFTLEVBQUV2SSxHQUFHLENBQUNELE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUNTLEtBQUssQ0FBQytILFNBQVM7TUFBRSxnQkFDOUQ3SSxLQUFBLENBQUErRyxhQUFBLENBQUFwRyxPQUFBLEVBQUFtSSxRQUFBO1FBQ0V4RyxLQUFLLEVBQUUsSUFBSSxDQUFDbUMsS0FBSyxDQUFDeEQsV0FBWTtRQUM5QnlHLFFBQVEsRUFBRSxJQUFJLENBQUNBLFFBQVEsQ0FBQ3FCLElBQUksQ0FBQyxJQUFJLENBQUU7UUFDbkNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDQSxRQUFRLENBQUNrRCxJQUFJLENBQUMsSUFBSSxDQUFFO1FBQ25DcEIsUUFBUSxFQUFFLElBQUksQ0FBQ0EsUUFBUSxDQUFDb0IsSUFBSSxDQUFDLElBQUksQ0FBRTtRQUNuQ25CLHVCQUF1QixFQUFFLElBQUksQ0FBQ0EsdUJBQXVCLENBQUNtQixJQUFJLENBQUMsSUFBSTtNQUFFLEdBQzdEakksS0FBSyxFQUNMb0gsTUFBTSxHQUVULElBQUksQ0FBQ2pCLGNBQWMsQ0FBQyxDQUNmLENBQ0wsQ0FBQztJQUVWLENBQUMsTUFBTTtNQUNMLG9CQUNFakgsS0FBQSxDQUFBK0csYUFBQTtRQUFLOEIsU0FBUyxFQUFFLElBQUksQ0FBQy9ILEtBQUssQ0FBQytIO01BQVUsZ0JBQ25DN0ksS0FBQSxDQUFBK0csYUFBQSxDQUFBcEcsT0FBQSxFQUFBbUksUUFBQTtRQUNFeEcsS0FBSyxFQUFFLElBQUksQ0FBQ21DLEtBQUssQ0FBQ3hELFdBQVk7UUFDOUI0RSxRQUFRLEVBQUUsSUFBSSxDQUFDQSxRQUFRLENBQUNrRCxJQUFJLENBQUMsSUFBSSxDQUFFO1FBQ25DckIsUUFBUSxFQUFFLElBQUksQ0FBQ0EsUUFBUSxDQUFDcUIsSUFBSSxDQUFDLElBQUksQ0FBRTtRQUNuQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUNBLFFBQVEsQ0FBQ29CLElBQUksQ0FBQyxJQUFJLENBQUU7UUFDbkNuQix1QkFBdUIsRUFBRSxJQUFJLENBQUNBLHVCQUF1QixDQUFDbUIsSUFBSSxDQUFDLElBQUk7TUFBRSxHQUM3RGpJLEtBQUssRUFDTG9ILE1BQU0sR0FFVCxJQUFJLENBQUNqQixjQUFjLENBQUMsQ0FDZixDQUNMLENBQUM7SUFFVjtFQUNGO0FBQ0Y7QUFBQ2xHLGVBQUEsQ0FyY29CSCxTQUFTLFlBQ1pILE1BQU07QUFBQU0sZUFBQSxDQURISCxTQUFTLGNBRVZGLFFBQVEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PureComponent","Store","utils","config","styles","cls","PinyinMatch","getFlattenData","Option","OptGroup","_Select","NSCSelect","constructor","props","_defineProperty","dataSource","selectValue","allDataSource","children","allChildren","dataStore","data","store","addData","deleteData","valueField","viewname","Array","isArray","newData","length","spliceData","valueFields","split","map","item","i","value","v","index","indexOf","push","options","url","listeners","listenersPops","cached","cacheKey","viewtype","stores","_objectWithoutProperties","_excluded","viewUrl","viewBizUrl","requestViewUrl","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","modelData","getAllData","setState","dataChanged","isCached","isCacheKey","autoLoad","resetData","state","getData","getValue","setValue","getSelectData","keyField","res","val","componentDidMount","componentDidUpdate","newProps","newState","Snapshot","JSON","stringify","stateChildrenProps","s","childrenProps","c","componentWillUnmount","onSearch","filterOption","labelField","result","forEach","label","labelFields","l","flag","match","child","_child$props","renderOption","optionData","valueType","Number","key","id","createElement","disabled","renderChildren","showGroup","groupField","Fragment","optGroupData","option","optGroup","Object","keys","onChange","onSelect","onDropdownVisibleChange","open","render","_this$props","defaultStyle","dataType","params","_excluded2","showSearch","optionFilterProp","placeholder","allowClear","antdStyle","mountElementId","getPopupContainer","document","getElementById","className","_extends","bind"],"sources":["../../../src/components/base/select/index.tsx"],"sourcesContent":["import React, { PureComponent } from \"react\";\r\nimport { Select, SelectProps } from \"antd\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport config from \"../../config\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport omit from \"omit.js\";\r\nimport PinyinMatch from \"pinyin-match\";\r\nimport { getFlattenData } from \"@bj-nsc/functions\";\r\nconst { Option, OptGroup } = Select;\r\n\r\ninterface ISelectProps extends SelectProps<any> {\r\n store?: StoreProps;\r\n data?: Array<Object>; //默认数据\r\n labelField?: string;\r\n valueField?: string;\r\n groupField?: string;\r\n defaultStyle?: boolean;\r\n showGroup?: boolean; //是否显示分组\r\n addData?: Array<Object>; //配合store使用,从增加额外的数据\r\n deleteData?: Array<String>; //配合store使用,删除从数据库中获取到的指定数据\r\n valueType?: \"string\" | \"number\";\r\n [proName: string]: any;\r\n onChange?: any;\r\n onSelect?: any;\r\n}\r\nexport default class NSCSelect extends PureComponent<ISelectProps> {\r\n static Option = Option;\r\n static OptGroup = OptGroup;\r\n state = {\r\n dataSource: [],\r\n selectValue: null,\r\n allDataSource: [],\r\n children: null,\r\n allChildren: null,\r\n dataStore: [],\r\n };\r\n store = {} as StoreProps;\r\n constructor(props) {\r\n super(props);\r\n let {\r\n data,\r\n store = {},\r\n children,\r\n options,\r\n addData = [],\r\n deleteData = [],\r\n valueField,\r\n } = props;\r\n const {\r\n url,\r\n listeners: listenersPops = {},\r\n viewname,\r\n cached,\r\n cacheKey,\r\n viewtype = \"sys\",\r\n ...stores\r\n } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n let { viewUrl, viewBizUrl } = config();\r\n let requestViewUrl = viewtype == \"sys\" ? viewUrl : viewBizUrl;\r\n\r\n if (!children) {\r\n if (!(data || viewname || url || options)) {\r\n throw new Error(\"url、viewname、data、options不能都为空!\");\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 const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n dataStore: data,\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 ((viewname || url) && data == null && options == null) {\r\n let isCached = cached;\r\n let isCacheKey = cacheKey;\r\n if (viewname) {\r\n if (typeof cached !== \"boolean\") {\r\n isCached = true;\r\n isCacheKey = isCacheKey ? isCacheKey : viewname;\r\n }\r\n }\r\n\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url || requestViewUrl + viewname, //读字典,url固定,viewname\r\n cached: isCached,\r\n cacheKey: isCacheKey,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n\r\n resetData() {\r\n const { children } = this.props;\r\n const { allDataSource, allChildren } = this.state;\r\n if (children) {\r\n this.setState({ children: allChildren });\r\n } else {\r\n this.setState({\r\n dataSource: allDataSource,\r\n });\r\n }\r\n }\r\n\r\n getAllData = (data) => {\r\n let { store = {}, addData = [], deleteData = [], valueField } = this.props;\r\n const { viewname } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n let newData = [...data];\r\n if (addData.length > 0) {\r\n newData = [...addData, ...newData];\r\n }\r\n if (deleteData.length > 0) {\r\n let spliceData = [];\r\n const valueFields: any = valueField.split(\",\");\r\n newData.map((item, i) => {\r\n let value = \"\";\r\n valueFields.map((v, index) => {\r\n value = index == 0 ? value + item[v] : value + \",\" + item[v];\r\n });\r\n if (deleteData.indexOf(value) == -1) {\r\n spliceData.push(item);\r\n }\r\n });\r\n return spliceData;\r\n } else {\r\n return newData;\r\n }\r\n };\r\n getData() {\r\n return this.state.allDataSource;\r\n }\r\n\r\n getValue() {\r\n return this.state.selectValue;\r\n }\r\n setValue(value) {\r\n this.setState({\r\n selectValue: value,\r\n });\r\n }\r\n\r\n getSelectData(value) {\r\n const { dataSource } = this.state;\r\n let { store = {}, valueField } = this.props;\r\n const { viewname } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n const newData = getFlattenData(dataSource, { keyField: valueField });\r\n if (Array.isArray(value)) {\r\n let res = [] as any;\r\n value.map((val) => {\r\n res.push(newData[val] || {});\r\n });\r\n return res;\r\n } else {\r\n return newData[value] || {};\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { data, options, children } = this.props;\r\n if (!children && (data || options)) {\r\n this.setState({\r\n dataSource: data ? data : options,\r\n allDataSource: data ? data : options,\r\n });\r\n } else if (children) {\r\n this.setState({\r\n children: children,\r\n allChildren: children,\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(newProps, newState, Snapshot) {\r\n const { data, options, children } = this.props;\r\n const { allDataSource, allChildren, dataStore } = this.state;\r\n if (!children && (data || options)) {\r\n const newData = data ? data : options;\r\n if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n });\r\n }\r\n } \r\n if (\r\n JSON.stringify(newProps.deleteData) !==\r\n JSON.stringify(this.props.deleteData) ||\r\n JSON.stringify(newProps.addData) !== JSON.stringify(this.props.addData)\r\n ) {\r\n const newData = this.getAllData(dataStore);\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n dataStore: dataStore,\r\n });\r\n }\r\n if (children && Array.isArray(children)) {\r\n const stateChildrenProps: any = [];\r\n allChildren.map((s: any) => {\r\n stateChildrenProps.push(s.props);\r\n });\r\n const childrenProps: any = [];\r\n children.map((c: any) => {\r\n childrenProps.push(c.props);\r\n });\r\n if (\r\n JSON.stringify(stateChildrenProps) !== JSON.stringify(childrenProps)\r\n ) {\r\n this.setState({\r\n children: children,\r\n allChildren: children,\r\n });\r\n }\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.setState = (state, callback) => {\r\n return;\r\n };\r\n }\r\n onSearch(value) {\r\n const { allDataSource, allChildren } = this.state;\r\n const { filterOption = true, onSearch, children, store = {} } = this.props;\r\n let { labelField } = this.props;\r\n const { viewname } = store;\r\n labelField = labelField ? labelField : viewname ? \"dictValue\" : \"label\";\r\n if (filterOption) {\r\n let result = [];\r\n if (!children) {\r\n if (value) {\r\n allDataSource.forEach((item) => {\r\n let label = \"\";\r\n if (labelField.split(\",\").length == 1) {\r\n label = item[labelField];\r\n } else {\r\n const labelFields: any = labelField.split(\",\");\r\n labelFields.map((l, index) => {\r\n label = index == 0 ? label + item[l] : label + \"-\" + item[l];\r\n });\r\n }\r\n let flag = PinyinMatch.match(label, value);\r\n if (flag) {\r\n result.push(item);\r\n }\r\n });\r\n this.setState({\r\n dataSource: result,\r\n });\r\n } else {\r\n this.setState({\r\n dataSource: allDataSource,\r\n });\r\n }\r\n } else {\r\n if (value) {\r\n if (Array.isArray(allChildren)) {\r\n allChildren.map((child: any, index) => {\r\n let label = child?.props?.children;\r\n let flag = PinyinMatch.match(label, value);\r\n if (flag) {\r\n result.push(child);\r\n }\r\n });\r\n }\r\n this.setState({\r\n children: result,\r\n });\r\n } else {\r\n this.setState({\r\n children: children,\r\n });\r\n }\r\n }\r\n }\r\n onSearch && onSearch(value);\r\n }\r\n renderOption(optionData) {\r\n let {\r\n store = {},\r\n valueType = \"string\",\r\n labelField,\r\n valueField,\r\n } = this.props;\r\n const { viewname } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n labelField = labelField ? labelField : viewname ? \"dictValue\" : \"label\";\r\n return optionData.map((item) => {\r\n let value: any;\r\n if (valueField.split(\",\").length == 1) {\r\n value =\r\n valueType === \"number\" ? Number(item[valueField]) : item[valueField];\r\n } else {\r\n const valueFields: any = valueField.split(\",\");\r\n value = \"\";\r\n valueFields.map((v, index) => {\r\n value = index == 0 ? value + item[v] : value + \",\" + item[v];\r\n });\r\n }\r\n let key = item.id ? (item.id !== \"undefined\" ? item.id : value) : value;\r\n let label = \"\";\r\n if (labelField.split(\",\").length == 1) {\r\n label = item[labelField];\r\n } else {\r\n const labelFields: any = labelField.split(\",\");\r\n labelFields.map((l, index) => {\r\n label = index == 0 ? label + item[l] : label + \"-\" + item[l];\r\n });\r\n }\r\n return (\r\n <Option\r\n key={key}\r\n value={value}\r\n label={label}\r\n disabled={item.disabled ? true : false}\r\n >\r\n {label}\r\n </Option>\r\n );\r\n });\r\n }\r\n renderChildren() {\r\n const { showGroup = true, groupField = \"groupName\" } = this.props;\r\n const { dataSource, children } = this.state;\r\n if (children) {\r\n return <>{children}</>;\r\n } else {\r\n let optGroupData = {},\r\n optionData = [];\r\n dataSource.forEach((item) => {\r\n let label = item[groupField];\r\n if (label && showGroup) {\r\n if (!optGroupData[label]) optGroupData[label] = [];\r\n optGroupData[label].push(item);\r\n } else {\r\n optionData.push(item);\r\n }\r\n });\r\n let option = this.renderOption(optionData);\r\n let optGroup = Object.keys(optGroupData).map((key) => {\r\n return (\r\n <OptGroup key={key} label={key}>\r\n {this.renderOption(optGroupData[key])}\r\n </OptGroup>\r\n );\r\n });\r\n return (\r\n <>\r\n {option}\r\n {optGroup}\r\n </>\r\n );\r\n }\r\n }\r\n onChange(value, options) {\r\n const { onChange } = this.props;\r\n this.setState({\r\n selectValue: value,\r\n });\r\n if (onChange) {\r\n const data = this.getSelectData(value);\r\n onChange(value, options, data);\r\n }\r\n }\r\n onSelect(value, options) {\r\n const { onSelect } = this.props;\r\n\r\n if (onSelect) {\r\n const data = this.getSelectData(value);\r\n onSelect(value, options, data);\r\n }\r\n }\r\n onDropdownVisibleChange(open) {\r\n if (!open) {\r\n this.resetData();\r\n }\r\n }\r\n render() {\r\n const {\r\n children,\r\n store,\r\n data,\r\n onChange,\r\n onSelect,\r\n options,\r\n labelField,\r\n valueField,\r\n defaultStyle,\r\n showGroup = true,\r\n addData,\r\n deleteData,\r\n valueType,\r\n groupField,\r\n dataType,\r\n ...params\r\n } = this.props;\r\n let props = {\r\n filterOption: false,\r\n showSearch: true,\r\n optionFilterProp: \"label\",\r\n placeholder: \"请选择\",\r\n allowClear: true,\r\n } as any;\r\n let { antdStyle, mountElementId } = config();\r\n if (mountElementId) {\r\n props = {\r\n getPopupContainer: () => document.getElementById(mountElementId),\r\n ...props,\r\n };\r\n }\r\n if ((defaultStyle || antdStyle) && defaultStyle === true) {\r\n return (\r\n <div className={cls(styles[\"nsc_select\"], this.props.className)}>\r\n <Select\r\n value={this.state.selectValue}\r\n onChange={this.onChange.bind(this)}\r\n onSearch={this.onSearch.bind(this)}\r\n onSelect={this.onSelect.bind(this)}\r\n onDropdownVisibleChange={this.onDropdownVisibleChange.bind(this)}\r\n {...props}\r\n {...params}\r\n >\r\n {this.renderChildren()}\r\n </Select>\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className={this.props.className}>\r\n <Select\r\n value={this.state.selectValue}\r\n onSearch={this.onSearch.bind(this)}\r\n onChange={this.onChange.bind(this)}\r\n onSelect={this.onSelect.bind(this)}\r\n onDropdownVisibleChange={this.onDropdownVisibleChange.bind(this)}\r\n {...props}\r\n {...params}\r\n >\r\n {this.renderChildren()}\r\n </Select>\r\n </div>\r\n );\r\n }\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PureComponent","Store","utils","config","styles","cls","PinyinMatch","getFlattenData","Option","OptGroup","_Select","NSCSelect","constructor","props","_defineProperty","dataSource","selectValue","allDataSource","children","allChildren","dataStore","data","store","addData","deleteData","valueField","viewname","Array","isArray","newData","length","spliceData","valueFields","split","map","item","i","value","v","index","indexOf","push","options","url","listeners","listenersPops","cached","cacheKey","viewtype","stores","_objectWithoutProperties","_excluded","viewUrl","viewBizUrl","requestViewUrl","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","modelData","getAllData","setState","dataChanged","isCached","isCacheKey","autoLoad","resetData","state","getData","getValue","setValue","getSelectData","keyField","res","val","componentDidMount","componentDidUpdate","newProps","newState","Snapshot","JSON","stringify","stateChildrenProps","s","childrenProps","c","componentWillUnmount","onSearch","filterOption","labelField","result","forEach","label","labelFields","l","flag","match","child","_child$props","renderOption","optionData","valueType","Number","key","id","createElement","disabled","renderChildren","showGroup","groupField","Fragment","optGroupData","option","optGroup","Object","keys","onChange","onSelect","onDropdownVisibleChange","open","render","_this$props","defaultStyle","dataType","params","_excluded2","showSearch","optionFilterProp","placeholder","allowClear","antdStyle","mountElementId","getPopupContainer","document","getElementById","className","_extends","bind"],"sources":["../../../src/components/base/select/index.tsx"],"sourcesContent":["import React, { PureComponent } from \"react\";\r\nimport { Select, SelectProps } from \"antd\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport config from \"../../config\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport omit from \"omit.js\";\r\nimport PinyinMatch from \"pinyin-match\";\r\nimport { getFlattenData } from \"@bj-nsc/functions\";\r\nconst { Option, OptGroup } = Select;\r\n\r\ninterface ISelectProps extends SelectProps<any> {\r\n store?: StoreProps;\r\n data?: Array<Object>; //默认数据\r\n labelField?: string;\r\n valueField?: string;\r\n groupField?: string;\r\n defaultStyle?: boolean;\r\n showGroup?: boolean; //是否显示分组\r\n addData?: Array<Object>; //配合store使用,从增加额外的数据\r\n deleteData?: Array<String>; //配合store使用,删除从数据库中获取到的指定数据\r\n valueType?: \"string\" | \"number\";\r\n [proName: string]: any;\r\n onChange?: any;\r\n onSelect?: any;\r\n}\r\nexport default class NSCSelect extends PureComponent<ISelectProps> {\r\n static Option = Option;\r\n static OptGroup = OptGroup;\r\n state = {\r\n dataSource: [],\r\n selectValue: null,\r\n allDataSource: [],\r\n children: null,\r\n allChildren: null,\r\n dataStore: [],\r\n };\r\n store = {} as StoreProps;\r\n constructor(props) {\r\n super(props);\r\n let {\r\n data,\r\n store = {},\r\n children,\r\n options,\r\n addData = [],\r\n deleteData = [],\r\n valueField,\r\n } = props;\r\n const {\r\n url,\r\n listeners: listenersPops = {},\r\n viewname,\r\n cached,\r\n cacheKey,\r\n viewtype = \"sys\",\r\n ...stores\r\n } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n let { viewUrl, viewBizUrl } = config();\r\n let requestViewUrl = viewtype == \"sys\" ? viewUrl : viewBizUrl;\r\n\r\n if (!children) {\r\n if (!(data || viewname || url || options)) {\r\n throw new Error(\"url、viewname、data、options不能都为空!\");\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 const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n dataStore: data,\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 ((viewname || url) && data == null && options == null) {\r\n let isCached = cached;\r\n let isCacheKey = cacheKey;\r\n if (viewname) {\r\n if (typeof cached !== \"boolean\") {\r\n isCached = viewname ? true : false;\r\n isCacheKey = isCacheKey ? isCacheKey : viewname;\r\n }\r\n }\r\n\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url || requestViewUrl + viewname, //读字典,url固定,viewname\r\n cached: isCached,\r\n cacheKey: isCacheKey,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n\r\n resetData() {\r\n const { children } = this.props;\r\n const { allDataSource, allChildren } = this.state;\r\n if (children) {\r\n this.setState({ children: allChildren });\r\n } else {\r\n this.setState({\r\n dataSource: allDataSource,\r\n });\r\n }\r\n }\r\n\r\n getAllData = (data) => {\r\n let { store = {}, addData = [], deleteData = [], valueField } = this.props;\r\n const { viewname } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n let newData = [...data];\r\n if (addData.length > 0) {\r\n newData = [...addData, ...newData];\r\n }\r\n if (deleteData.length > 0) {\r\n let spliceData = [];\r\n const valueFields: any = valueField.split(\",\");\r\n newData.map((item, i) => {\r\n let value = \"\";\r\n valueFields.map((v, index) => {\r\n value = index == 0 ? value + item[v] : value + \",\" + item[v];\r\n });\r\n if (deleteData.indexOf(value) == -1) {\r\n spliceData.push(item);\r\n }\r\n });\r\n return spliceData;\r\n } else {\r\n return newData;\r\n }\r\n };\r\n getData() {\r\n return this.state.allDataSource;\r\n }\r\n\r\n getValue() {\r\n return this.state.selectValue;\r\n }\r\n setValue(value) {\r\n this.setState({\r\n selectValue: value,\r\n });\r\n }\r\n\r\n getSelectData(value) {\r\n const { dataSource } = this.state;\r\n let { store = {}, valueField } = this.props;\r\n const { viewname } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n const newData = getFlattenData(dataSource, { keyField: valueField });\r\n if (Array.isArray(value)) {\r\n let res = [] as any;\r\n value.map((val) => {\r\n res.push(newData[val] || {});\r\n });\r\n return res;\r\n } else {\r\n return newData[value] || {};\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { data, options, children } = this.props;\r\n if (!children && (data || options)) {\r\n this.setState({\r\n dataSource: data ? data : options,\r\n allDataSource: data ? data : options,\r\n });\r\n } else if (children) {\r\n this.setState({\r\n children: children,\r\n allChildren: children,\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(newProps, newState, Snapshot) {\r\n const { data, options, children } = this.props;\r\n const { allDataSource, allChildren, dataStore } = this.state;\r\n if (!children && (data || options)) {\r\n const newData = data ? data : options;\r\n if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n });\r\n }\r\n }\r\n if (\r\n JSON.stringify(newProps.deleteData) !==\r\n JSON.stringify(this.props.deleteData) ||\r\n JSON.stringify(newProps.addData) !== JSON.stringify(this.props.addData)\r\n ) {\r\n const newData = this.getAllData(dataStore);\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n dataStore: dataStore,\r\n });\r\n }\r\n if (children && Array.isArray(children)) {\r\n const stateChildrenProps: any = [];\r\n allChildren.map((s: any) => {\r\n stateChildrenProps.push(s.props);\r\n });\r\n const childrenProps: any = [];\r\n children.map((c: any) => {\r\n childrenProps.push(c.props);\r\n });\r\n if (\r\n JSON.stringify(stateChildrenProps) !== JSON.stringify(childrenProps)\r\n ) {\r\n this.setState({\r\n children: children,\r\n allChildren: children,\r\n });\r\n }\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.setState = (state, callback) => {\r\n return;\r\n };\r\n }\r\n onSearch(value) {\r\n const { allDataSource, allChildren } = this.state;\r\n const { filterOption = true, onSearch, children, store = {} } = this.props;\r\n let { labelField } = this.props;\r\n const { viewname } = store;\r\n labelField = labelField ? labelField : viewname ? \"dictValue\" : \"label\";\r\n if (filterOption) {\r\n let result = [];\r\n if (!children) {\r\n if (value) {\r\n allDataSource.forEach((item) => {\r\n let label = \"\";\r\n if (labelField.split(\",\").length == 1) {\r\n label = item[labelField];\r\n } else {\r\n const labelFields: any = labelField.split(\",\");\r\n labelFields.map((l, index) => {\r\n label = index == 0 ? label + item[l] : label + \"-\" + item[l];\r\n });\r\n }\r\n let flag = PinyinMatch.match(label, value);\r\n if (flag) {\r\n result.push(item);\r\n }\r\n });\r\n this.setState({\r\n dataSource: result,\r\n });\r\n } else {\r\n this.setState({\r\n dataSource: allDataSource,\r\n });\r\n }\r\n } else {\r\n if (value) {\r\n if (Array.isArray(allChildren)) {\r\n allChildren.map((child: any, index) => {\r\n let label = child?.props?.children;\r\n let flag = PinyinMatch.match(label, value);\r\n if (flag) {\r\n result.push(child);\r\n }\r\n });\r\n }\r\n this.setState({\r\n children: result,\r\n });\r\n } else {\r\n this.setState({\r\n children: children,\r\n });\r\n }\r\n }\r\n }\r\n onSearch && onSearch(value);\r\n }\r\n renderOption(optionData) {\r\n let {\r\n store = {},\r\n valueType = \"string\",\r\n labelField,\r\n valueField,\r\n } = this.props;\r\n const { viewname } = store;\r\n valueField = valueField ? valueField : viewname ? \"dictKey\" : \"value\";\r\n labelField = labelField ? labelField : viewname ? \"dictValue\" : \"label\";\r\n return optionData.map((item) => {\r\n let value: any;\r\n if (valueField.split(\",\").length == 1) {\r\n value =\r\n valueType === \"number\" ? Number(item[valueField]) : item[valueField];\r\n } else {\r\n const valueFields: any = valueField.split(\",\");\r\n value = \"\";\r\n valueFields.map((v, index) => {\r\n value = index == 0 ? value + item[v] : value + \",\" + item[v];\r\n });\r\n }\r\n let key = item.id ? (item.id !== \"undefined\" ? item.id : value) : value;\r\n let label = \"\";\r\n if (labelField.split(\",\").length == 1) {\r\n label = item[labelField];\r\n } else {\r\n const labelFields: any = labelField.split(\",\");\r\n labelFields.map((l, index) => {\r\n label = index == 0 ? label + item[l] : label + \"-\" + item[l];\r\n });\r\n }\r\n return (\r\n <Option\r\n key={key}\r\n value={value}\r\n label={label}\r\n disabled={item.disabled ? true : false}\r\n >\r\n {label}\r\n </Option>\r\n );\r\n });\r\n }\r\n renderChildren() {\r\n const { showGroup = true, groupField = \"groupName\" } = this.props;\r\n const { dataSource, children } = this.state;\r\n if (children) {\r\n return <>{children}</>;\r\n } else {\r\n let optGroupData = {},\r\n optionData = [];\r\n dataSource.forEach((item) => {\r\n let label = item[groupField];\r\n if (label && showGroup) {\r\n if (!optGroupData[label]) optGroupData[label] = [];\r\n optGroupData[label].push(item);\r\n } else {\r\n optionData.push(item);\r\n }\r\n });\r\n let option = this.renderOption(optionData);\r\n let optGroup = Object.keys(optGroupData).map((key) => {\r\n return (\r\n <OptGroup key={key} label={key}>\r\n {this.renderOption(optGroupData[key])}\r\n </OptGroup>\r\n );\r\n });\r\n return (\r\n <>\r\n {option}\r\n {optGroup}\r\n </>\r\n );\r\n }\r\n }\r\n onChange(value, options) {\r\n const { onChange } = this.props;\r\n this.setState({\r\n selectValue: value,\r\n });\r\n if (onChange) {\r\n const data = this.getSelectData(value);\r\n onChange(value, options, data);\r\n }\r\n }\r\n onSelect(value, options) {\r\n const { onSelect } = this.props;\r\n\r\n if (onSelect) {\r\n const data = this.getSelectData(value);\r\n onSelect(value, options, data);\r\n }\r\n }\r\n onDropdownVisibleChange(open) {\r\n if (!open) {\r\n this.resetData();\r\n }\r\n }\r\n render() {\r\n const {\r\n children,\r\n store,\r\n data,\r\n onChange,\r\n onSelect,\r\n options,\r\n labelField,\r\n valueField,\r\n defaultStyle,\r\n showGroup = true,\r\n addData,\r\n deleteData,\r\n valueType,\r\n groupField,\r\n dataType,\r\n ...params\r\n } = this.props;\r\n let props = {\r\n filterOption: false,\r\n showSearch: true,\r\n optionFilterProp: \"label\",\r\n placeholder: \"请选择\",\r\n allowClear: true,\r\n } as any;\r\n let { antdStyle, mountElementId } = config();\r\n if (mountElementId) {\r\n props = {\r\n getPopupContainer: () => document.getElementById(mountElementId),\r\n ...props,\r\n };\r\n }\r\n if ((defaultStyle || antdStyle) && defaultStyle === true) {\r\n return (\r\n <div className={cls(styles[\"nsc_select\"], this.props.className)}>\r\n <Select\r\n value={this.state.selectValue}\r\n onChange={this.onChange.bind(this)}\r\n onSearch={this.onSearch.bind(this)}\r\n onSelect={this.onSelect.bind(this)}\r\n onDropdownVisibleChange={this.onDropdownVisibleChange.bind(this)}\r\n {...props}\r\n {...params}\r\n >\r\n {this.renderChildren()}\r\n </Select>\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className={this.props.className}>\r\n <Select\r\n value={this.state.selectValue}\r\n onSearch={this.onSearch.bind(this)}\r\n onChange={this.onChange.bind(this)}\r\n onSelect={this.onSelect.bind(this)}\r\n onDropdownVisibleChange={this.onDropdownVisibleChange.bind(this)}\r\n {...props}\r\n {...params}\r\n >\r\n {this.renderChildren()}\r\n </Select>\r\n </div>\r\n );\r\n }\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -203,8 +203,8 @@ export default class NscTreeSelect extends React.PureComponent {
203
203
  }
204
204
  render() {
205
205
  const {
206
- valueField = "value",
207
- labelField = "label",
206
+ valueField = "id",
207
+ labelField = "title",
208
208
  childrenField = "children"
209
209
  } = this.props;
210
210
  const treeSelectProps = omit(_objectSpread({}, this.props), ["store", "valueField", "labelField", "childrenField"]);
@@ -223,4 +223,4 @@ export default class NscTreeSelect extends React.PureComponent {
223
223
  }));
224
224
  }
225
225
  }
226
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlN0b3JlIiwidXRpbHMiLCJQaW55aW5NYXRjaCIsIm9taXQiLCJOc2NUcmVlU2VsZWN0IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiZGF0YVN0b3JlIiwidHJlZURhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9ucyIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsImNvbXBvbmVudERpZE1vdW50Iiwib25TZWFyY2giLCJ2YWx1ZSIsInN0YXRlIiwibGFiZWxGaWVsZCIsInNlYXJjaFRyZWVEYXRhIiwic2VhcmNoVmFsdWUiLCJsZW5ndGgiLCJpc05vZGVNYXRjaCIsIm5vZGUiLCJsYWJlbCIsInNwbGl0IiwibGFiZWxGaWVsZHMiLCJmb3JFYWNoIiwibCIsImluZGV4IiwiaW5jbHVkZXMiLCJtYXRjaCIsImUiLCJmaW5kTWF0Y2hpbmdOb2RlcyIsImN1cnJlbnROb2RlTWF0Y2giLCJtYXRjaGVkQ2hpbGRyZW4iLCJjaGlsZCIsIm1hdGNoZWQiLCJwdXNoIiwicmVzdWx0IiwibWF0Y2hlZE5vZGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJuZXdQcm9wcyIsIm5ld1N0YXRlIiwiU25hcHNob3QiLCJuZXdEYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInJlbmRlciIsInZhbHVlRmllbGQiLCJjaGlsZHJlbkZpZWxkIiwidHJlZVNlbGVjdFByb3BzIiwiY3JlYXRlRWxlbWVudCIsIl9UcmVlU2VsZWN0IiwiX2V4dGVuZHMiLCJzaG93U2VhcmNoIiwicGxhY2Vob2xkZXIiLCJmaWVsZE5hbWVzIiwiYmluZCIsImZpbHRlclRyZWVOb2RlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS90cmVlc2VsZWN0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVHJlZVNlbGVjdCwgVHJlZVNlbGVjdFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmludGVyZmFjZSBJVHJlZVNlbGVjdFByb3BzIGV4dGVuZHMgVHJlZVNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW5GaWVsZD86IHN0cmluZztcclxuICBvbkNoYW5nZT86IGFueTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NUcmVlU2VsZWN0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxcclxuICBJVHJlZVNlbGVjdFByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgc2VsZWN0VmFsdWU6IG51bGwsXHJcbiAgICBhbGxEYXRhU291cmNlOiBbXSxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHRyZWVEYXRhLCBzdG9yZSA9IHt9LCBjaGlsZHJlbiwgb3B0aW9ucyB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG5cclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCEodXJsIHx8IHRyZWVEYXRhKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXRyZWVEYXRhXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgIGxldCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBuZXdEYXRhID0gX3RoaXMuZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGRhdGEsXHJcbiAgICAgICAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBkYXRhU3RvcmU6IGRhdGEsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBuZXdEYXRhID0gX3RoaXMuZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGRhdGEsXHJcbiAgICAgICAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBkYXRhU3RvcmU6IGRhdGEsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh1cmwgJiYgdHJlZURhdGEgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyB0cmVlRGF0YSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIHRyZWVEYXRhKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IHRyZWVEYXRhLFxyXG4gICAgICAgIGFsbERhdGFTb3VyY2U6IHRyZWVEYXRhLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgeyBsYWJlbEZpZWxkID0gXCJsYWJlbFwiIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIC8vIOa3seW6puS8mOWFiOaQnOe0ouWMuemFjeiKgueCueWPiuWFtuWFs+iBlOiKgueCuVxyXG4gICAgY29uc3Qgc2VhcmNoVHJlZURhdGEgPSAoZGF0YSwgc2VhcmNoVmFsdWUpID0+IHtcclxuICAgICAgaWYgKCFzZWFyY2hWYWx1ZSB8fCAhZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyDmo4Dmn6XoioLngrnmmK/lkKbljLnphY3mkJzntKLlgLzvvIjmlK/mjIHmsYnlrZflkozmi7zpn7PvvIlcclxuICAgICAgY29uc3QgaXNOb2RlTWF0Y2ggPSAobm9kZSkgPT4ge1xyXG4gICAgICAgIC8vIOaehOmAoOiKgueCueagh+etvlxyXG4gICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICBsYWJlbCA9IG5vZGVbbGFiZWxGaWVsZF0gfHwgXCJcIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgbGFiZWxGaWVsZHMuZm9yRWFjaCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbm9kZVtsXSB8fCBcIlwiIDogbGFiZWwgKyBcIi1cIiArIChub2RlW2xdIHx8IFwiXCIpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzmsqHmnInmoIfnrb7vvIzov5Tlm55mYWxzZVxyXG4gICAgICAgIGlmICghbGFiZWwpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgLy8g55u05o6l5YyF5ZCr5qOA5p+l77yI5rGJ5a2X5Yy56YWN77yJXHJcbiAgICAgICAgaWYgKGxhYmVsLmluY2x1ZGVzKHNlYXJjaFZhbHVlKSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDmi7zpn7PljLnphY3mo4Dmn6VcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgcmV0dXJuIFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCBzZWFyY2hWYWx1ZSkgfHwgZmFsc2U7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIOmAkuW9kuafpeaJvuWMuemFjeeahOiKgueCuVxyXG4gICAgICBjb25zdCBmaW5kTWF0Y2hpbmdOb2RlcyA9IChub2RlKSA9PiB7XHJcbiAgICAgICAgLy8g5qOA5p+l5b2T5YmN6IqC54K55piv5ZCm5Yy56YWNXHJcbiAgICAgICAgY29uc3QgY3VycmVudE5vZGVNYXRjaCA9IGlzTm9kZU1hdGNoKG5vZGUpO1xyXG5cclxuICAgICAgICAvLyDlpoLmnpzlvZPliY3oioLngrnljLnphY3vvIzov5Tlm57or6XoioLngrnlj4rlhbbmiYDmnInlrZDoioLngrlcclxuICAgICAgICBpZiAoY3VycmVudE5vZGVNYXRjaCkge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ubm9kZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzlvZPliY3oioLngrnkuI3ljLnphY3vvIzmo4Dmn6XlrZDoioLngrlcclxuICAgICAgICBsZXQgbWF0Y2hlZENoaWxkcmVuID0gW107XHJcbiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSBmaW5kTWF0Y2hpbmdOb2RlcyhjaGlsZCk7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaGVkKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZENoaWxkcmVuLnB1c2gobWF0Y2hlZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c5pyJ5Yy56YWN55qE5a2Q6IqC54K577yM5YiZ6L+U5Zue6K+l6IqC54K577yI5L2c5Li65a655Zmo77yJ5Y+K5YW25Yy56YWN55qE5a2Q6IqC54K5XHJcbiAgICAgICAgaWYgKG1hdGNoZWRDaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5ub2RlLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogbWF0Y2hlZENoaWxkcmVuLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeiKgueCueWSjOWtkOiKgueCuemDveS4jeWMuemFje+8jOi/lOWbnm51bGxcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIOWvueaJgOaciemhtue6p+iKgueCuei/m+ihjOaQnOe0olxyXG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgZGF0YS5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hlZE5vZGUgPSBmaW5kTWF0Y2hpbmdOb2Rlcyhub2RlKTtcclxuICAgICAgICBpZiAobWF0Y2hlZE5vZGUpIHtcclxuICAgICAgICAgIHJlc3VsdC5wdXNoKG1hdGNoZWROb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSB2YWx1ZSA/IHNlYXJjaFRyZWVEYXRhKGFsbERhdGFTb3VyY2UsIHZhbHVlKSA6IGFsbERhdGFTb3VyY2U7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUobmV3UHJvcHMsIG5ld1N0YXRlLCBTbmFwc2hvdCkge1xyXG4gICAgY29uc3QgeyB0cmVlRGF0YSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIHRyZWVEYXRhKSB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSB0cmVlRGF0YTtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGFsbERhdGFTb3VyY2UpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsXHJcbiAgICAgIGxhYmVsRmllbGQgPSBcImxhYmVsXCIsXHJcbiAgICAgIGNoaWxkcmVuRmllbGQgPSBcImNoaWxkcmVuXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHRyZWVTZWxlY3RQcm9wcyA9IG9taXQoeyAuLi50aGlzLnByb3BzIH0sIFtcclxuICAgICAgXCJzdG9yZVwiLFxyXG4gICAgICBcInZhbHVlRmllbGRcIixcclxuICAgICAgXCJsYWJlbEZpZWxkXCIsXHJcbiAgICAgIFwiY2hpbGRyZW5GaWVsZFwiLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8VHJlZVNlbGVjdFxyXG4gICAgICAgIHNob3dTZWFyY2g9e3RydWV9XHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgIGZpZWxkTmFtZXM9e3tcclxuICAgICAgICAgIHZhbHVlOiB2YWx1ZUZpZWxkLFxyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsRmllbGQsXHJcbiAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5GaWVsZCxcclxuICAgICAgICB9fVxyXG4gICAgICAgIHsuLi50cmVlU2VsZWN0UHJvcHN9XHJcbiAgICAgICAgdHJlZURhdGE9e3RoaXMuc3RhdGUuZGF0YVNvdXJjZX1cclxuICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgIGZpbHRlclRyZWVOb2RlPXtmYWxzZX1cclxuICAgICAgLz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsS0FBSyxNQUFzQixhQUFhO0FBQy9DLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsT0FBT0MsV0FBVyxNQUFNLGNBQWM7QUFDdEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFRMUIsZUFBZSxNQUFNQyxhQUFhLFNBQVNMLEtBQUssQ0FBQ00sYUFBYSxDQUc1RDtFQVFBQyxXQUFXQSxDQUFDQyxLQUFLLEVBQUU7SUFDakIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFBQ0MsZUFBQSxnQkFSUDtNQUNOQyxVQUFVLEVBQUUsRUFBRTtNQUNkQyxXQUFXLEVBQUUsSUFBSTtNQUNqQkMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRTtJQUNiLENBQUM7SUFBQUosZUFBQSxnQkFDTyxDQUFDLENBQUM7SUFHUixJQUFJO01BQUVLLFFBQVE7TUFBRUMsS0FBSyxHQUFHLENBQUMsQ0FBQztNQUFFQyxRQUFRO01BQUVDO0lBQVEsQ0FBQyxHQUFHVCxLQUFLO0lBQ3ZELE1BQU07UUFDSlUsR0FBRztRQUNIQyxTQUFTLEVBQUVDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDN0JDLE1BQU07UUFDTkM7TUFFRixDQUFDLEdBQUdQLEtBQUs7TUFESlEsTUFBTSxHQUFBQyx3QkFBQSxDQUNQVCxLQUFLLEVBQUFVLFNBQUE7SUFFVCxJQUFJLENBQUNULFFBQVEsRUFBRTtNQUNiLElBQUksRUFBRUUsR0FBRyxJQUFJSixRQUFRLENBQUMsRUFBRTtRQUN0QixNQUFNLElBQUlZLEtBQUssQ0FBQyxjQUFjLENBQUM7TUFDakM7TUFDQSxJQUFJQyxLQUFLLEdBQUcsSUFBSTtNQUNoQixJQUFJQyxVQUFVLEdBQUFDLGFBQUE7UUFDWkMsS0FBSyxFQUFFLE9BQU87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
226
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlN0b3JlIiwidXRpbHMiLCJQaW55aW5NYXRjaCIsIm9taXQiLCJOc2NUcmVlU2VsZWN0IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiZGF0YVN0b3JlIiwidHJlZURhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9ucyIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsImNvbXBvbmVudERpZE1vdW50Iiwib25TZWFyY2giLCJ2YWx1ZSIsInN0YXRlIiwibGFiZWxGaWVsZCIsInNlYXJjaFRyZWVEYXRhIiwic2VhcmNoVmFsdWUiLCJsZW5ndGgiLCJpc05vZGVNYXRjaCIsIm5vZGUiLCJsYWJlbCIsInNwbGl0IiwibGFiZWxGaWVsZHMiLCJmb3JFYWNoIiwibCIsImluZGV4IiwiaW5jbHVkZXMiLCJtYXRjaCIsImUiLCJmaW5kTWF0Y2hpbmdOb2RlcyIsImN1cnJlbnROb2RlTWF0Y2giLCJtYXRjaGVkQ2hpbGRyZW4iLCJjaGlsZCIsIm1hdGNoZWQiLCJwdXNoIiwicmVzdWx0IiwibWF0Y2hlZE5vZGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJuZXdQcm9wcyIsIm5ld1N0YXRlIiwiU25hcHNob3QiLCJuZXdEYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInJlbmRlciIsInZhbHVlRmllbGQiLCJjaGlsZHJlbkZpZWxkIiwidHJlZVNlbGVjdFByb3BzIiwiY3JlYXRlRWxlbWVudCIsIl9UcmVlU2VsZWN0IiwiX2V4dGVuZHMiLCJzaG93U2VhcmNoIiwicGxhY2Vob2xkZXIiLCJmaWVsZE5hbWVzIiwiYmluZCIsImZpbHRlclRyZWVOb2RlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS90cmVlc2VsZWN0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVHJlZVNlbGVjdCwgVHJlZVNlbGVjdFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmludGVyZmFjZSBJVHJlZVNlbGVjdFByb3BzIGV4dGVuZHMgVHJlZVNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW5GaWVsZD86IHN0cmluZztcclxuICBvbkNoYW5nZT86IGFueTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NUcmVlU2VsZWN0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxcclxuICBJVHJlZVNlbGVjdFByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgc2VsZWN0VmFsdWU6IG51bGwsXHJcbiAgICBhbGxEYXRhU291cmNlOiBbXSxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHRyZWVEYXRhLCBzdG9yZSA9IHt9LCBjaGlsZHJlbiwgb3B0aW9ucyB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG5cclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCEodXJsIHx8IHRyZWVEYXRhKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXRyZWVEYXRhXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgIGxldCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBuZXdEYXRhID0gX3RoaXMuZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGRhdGEsXHJcbiAgICAgICAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBkYXRhU3RvcmU6IGRhdGEsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBuZXdEYXRhID0gX3RoaXMuZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGRhdGEsXHJcbiAgICAgICAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBkYXRhU3RvcmU6IGRhdGEsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh1cmwgJiYgdHJlZURhdGEgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyB0cmVlRGF0YSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIHRyZWVEYXRhKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IHRyZWVEYXRhLFxyXG4gICAgICAgIGFsbERhdGFTb3VyY2U6IHRyZWVEYXRhLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgeyBsYWJlbEZpZWxkID0gXCJsYWJlbFwiIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIC8vIOa3seW6puS8mOWFiOaQnOe0ouWMuemFjeiKgueCueWPiuWFtuWFs+iBlOiKgueCuVxyXG4gICAgY29uc3Qgc2VhcmNoVHJlZURhdGEgPSAoZGF0YSwgc2VhcmNoVmFsdWUpID0+IHtcclxuICAgICAgaWYgKCFzZWFyY2hWYWx1ZSB8fCAhZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyDmo4Dmn6XoioLngrnmmK/lkKbljLnphY3mkJzntKLlgLzvvIjmlK/mjIHmsYnlrZflkozmi7zpn7PvvIlcclxuICAgICAgY29uc3QgaXNOb2RlTWF0Y2ggPSAobm9kZSkgPT4ge1xyXG4gICAgICAgIC8vIOaehOmAoOiKgueCueagh+etvlxyXG4gICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICBsYWJlbCA9IG5vZGVbbGFiZWxGaWVsZF0gfHwgXCJcIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgbGFiZWxGaWVsZHMuZm9yRWFjaCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbm9kZVtsXSB8fCBcIlwiIDogbGFiZWwgKyBcIi1cIiArIChub2RlW2xdIHx8IFwiXCIpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzmsqHmnInmoIfnrb7vvIzov5Tlm55mYWxzZVxyXG4gICAgICAgIGlmICghbGFiZWwpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgLy8g55u05o6l5YyF5ZCr5qOA5p+l77yI5rGJ5a2X5Yy56YWN77yJXHJcbiAgICAgICAgaWYgKGxhYmVsLmluY2x1ZGVzKHNlYXJjaFZhbHVlKSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDmi7zpn7PljLnphY3mo4Dmn6VcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgcmV0dXJuIFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCBzZWFyY2hWYWx1ZSkgfHwgZmFsc2U7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIOmAkuW9kuafpeaJvuWMuemFjeeahOiKgueCuVxyXG4gICAgICBjb25zdCBmaW5kTWF0Y2hpbmdOb2RlcyA9IChub2RlKSA9PiB7XHJcbiAgICAgICAgLy8g5qOA5p+l5b2T5YmN6IqC54K55piv5ZCm5Yy56YWNXHJcbiAgICAgICAgY29uc3QgY3VycmVudE5vZGVNYXRjaCA9IGlzTm9kZU1hdGNoKG5vZGUpO1xyXG5cclxuICAgICAgICAvLyDlpoLmnpzlvZPliY3oioLngrnljLnphY3vvIzov5Tlm57or6XoioLngrnlj4rlhbbmiYDmnInlrZDoioLngrlcclxuICAgICAgICBpZiAoY3VycmVudE5vZGVNYXRjaCkge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ubm9kZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzlvZPliY3oioLngrnkuI3ljLnphY3vvIzmo4Dmn6XlrZDoioLngrlcclxuICAgICAgICBsZXQgbWF0Y2hlZENoaWxkcmVuID0gW107XHJcbiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSBmaW5kTWF0Y2hpbmdOb2RlcyhjaGlsZCk7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaGVkKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZENoaWxkcmVuLnB1c2gobWF0Y2hlZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c5pyJ5Yy56YWN55qE5a2Q6IqC54K577yM5YiZ6L+U5Zue6K+l6IqC54K577yI5L2c5Li65a655Zmo77yJ5Y+K5YW25Yy56YWN55qE5a2Q6IqC54K5XHJcbiAgICAgICAgaWYgKG1hdGNoZWRDaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5ub2RlLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogbWF0Y2hlZENoaWxkcmVuLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeiKgueCueWSjOWtkOiKgueCuemDveS4jeWMuemFje+8jOi/lOWbnm51bGxcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIOWvueaJgOaciemhtue6p+iKgueCuei/m+ihjOaQnOe0olxyXG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgZGF0YS5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hlZE5vZGUgPSBmaW5kTWF0Y2hpbmdOb2Rlcyhub2RlKTtcclxuICAgICAgICBpZiAobWF0Y2hlZE5vZGUpIHtcclxuICAgICAgICAgIHJlc3VsdC5wdXNoKG1hdGNoZWROb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSB2YWx1ZSA/IHNlYXJjaFRyZWVEYXRhKGFsbERhdGFTb3VyY2UsIHZhbHVlKSA6IGFsbERhdGFTb3VyY2U7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUobmV3UHJvcHMsIG5ld1N0YXRlLCBTbmFwc2hvdCkge1xyXG4gICAgY29uc3QgeyB0cmVlRGF0YSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIHRyZWVEYXRhKSB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSB0cmVlRGF0YTtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGFsbERhdGFTb3VyY2UpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHZhbHVlRmllbGQgPSBcImlkXCIsXHJcbiAgICAgIGxhYmVsRmllbGQgPSBcInRpdGxlXCIsXHJcbiAgICAgIGNoaWxkcmVuRmllbGQgPSBcImNoaWxkcmVuXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHRyZWVTZWxlY3RQcm9wcyA9IG9taXQoeyAuLi50aGlzLnByb3BzIH0sIFtcclxuICAgICAgXCJzdG9yZVwiLFxyXG4gICAgICBcInZhbHVlRmllbGRcIixcclxuICAgICAgXCJsYWJlbEZpZWxkXCIsXHJcbiAgICAgIFwiY2hpbGRyZW5GaWVsZFwiLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8VHJlZVNlbGVjdFxyXG4gICAgICAgIHNob3dTZWFyY2g9e3RydWV9XHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgIGZpZWxkTmFtZXM9e3tcclxuICAgICAgICAgIHZhbHVlOiB2YWx1ZUZpZWxkLFxyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsRmllbGQsXHJcbiAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5GaWVsZCxcclxuICAgICAgICB9fVxyXG4gICAgICAgIHsuLi50cmVlU2VsZWN0UHJvcHN9XHJcbiAgICAgICAgdHJlZURhdGE9e3RoaXMuc3RhdGUuZGF0YVNvdXJjZX1cclxuICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgIGZpbHRlclRyZWVOb2RlPXtmYWxzZX1cclxuICAgICAgLz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsS0FBSyxNQUFzQixhQUFhO0FBQy9DLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsT0FBT0MsV0FBVyxNQUFNLGNBQWM7QUFDdEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFRMUIsZUFBZSxNQUFNQyxhQUFhLFNBQVNMLEtBQUssQ0FBQ00sYUFBYSxDQUc1RDtFQVFBQyxXQUFXQSxDQUFDQyxLQUFLLEVBQUU7SUFDakIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFBQ0MsZUFBQSxnQkFSUDtNQUNOQyxVQUFVLEVBQUUsRUFBRTtNQUNkQyxXQUFXLEVBQUUsSUFBSTtNQUNqQkMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRTtJQUNiLENBQUM7SUFBQUosZUFBQSxnQkFDTyxDQUFDLENBQUM7SUFHUixJQUFJO01BQUVLLFFBQVE7TUFBRUMsS0FBSyxHQUFHLENBQUMsQ0FBQztNQUFFQyxRQUFRO01BQUVDO0lBQVEsQ0FBQyxHQUFHVCxLQUFLO0lBQ3ZELE1BQU07UUFDSlUsR0FBRztRQUNIQyxTQUFTLEVBQUVDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDN0JDLE1BQU07UUFDTkM7TUFFRixDQUFDLEdBQUdQLEtBQUs7TUFESlEsTUFBTSxHQUFBQyx3QkFBQSxDQUNQVCxLQUFLLEVBQUFVLFNBQUE7SUFFVCxJQUFJLENBQUNULFFBQVEsRUFBRTtNQUNiLElBQUksRUFBRUUsR0FBRyxJQUFJSixRQUFRLENBQUMsRUFBRTtRQUN0QixNQUFNLElBQUlZLEtBQUssQ0FBQyxjQUFjLENBQUM7TUFDakM7TUFDQSxJQUFJQyxLQUFLLEdBQUcsSUFBSTtNQUNoQixJQUFJQyxVQUFVLEdBQUFDLGFBQUE7UUFDWkMsS0FBSyxFQUFFLE9BQU87UUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Store","utils","PinyinMatch","omit","NscTreeSelect","PureComponent","constructor","props","_defineProperty","dataSource","selectValue","allDataSource","dataStore","treeData","store","children","options","url","listeners","listenersPops","cached","cacheKey","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","data","modelData","setState","dataChanged","isCached","isCacheKey","autoLoad","componentDidMount","onSearch","value","state","labelField","searchTreeData","searchValue","length","isNodeMatch","node","label","split","labelFields","forEach","l","index","includes","match","e","findMatchingNodes","currentNodeMatch","matchedChildren","child","matched","push","result","matchedNode","componentDidUpdate","newProps","newState","Snapshot","newData","JSON","stringify","render","valueField","childrenField","treeSelectProps","createElement","_TreeSelect","_extends","showSearch","placeholder","fieldNames","bind","filterTreeNode"],"sources":["../../../src/components/base/treeselect/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { TreeSelect, TreeSelectProps } from \"antd\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport PinyinMatch from \"pinyin-match\";\r\nimport omit from \"omit.js\";\r\ninterface ITreeSelectProps extends TreeSelectProps<any> {\r\n store?: StoreProps;\r\n labelField?: string;\r\n valueField?: string;\r\n childrenField?: string;\r\n onChange?: any;\r\n}\r\nexport default class NscTreeSelect extends React.PureComponent<\r\n ITreeSelectProps,\r\n any\r\n> {\r\n state = {\r\n dataSource: [],\r\n selectValue: null,\r\n allDataSource: [],\r\n dataStore: [],\r\n };\r\n store = {} as StoreProps;\r\n constructor(props) {\r\n super(props);\r\n let { treeData, store = {}, children, options } = props;\r\n const {\r\n url,\r\n listeners: listenersPops = {},\r\n cached,\r\n cacheKey,\r\n ...stores\r\n } = store;\r\n\r\n if (!children) {\r\n if (!(url || treeData)) {\r\n throw new Error(\"url、treeData\");\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 // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\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 && treeData == null) {\r\n let isCached = cached;\r\n let isCacheKey = cacheKey;\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n cached: isCached,\r\n cacheKey: isCacheKey,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n componentDidMount() {\r\n const { treeData, children } = this.props;\r\n if (!children && treeData) {\r\n this.setState({\r\n dataSource: treeData,\r\n allDataSource: treeData,\r\n });\r\n }\r\n }\r\n\r\n onSearch(value) {\r\n const { allDataSource } = this.state;\r\n let { labelField = \"label\" } = this.props;\r\n\r\n // 深度优先搜索匹配节点及其关联节点\r\n const searchTreeData = (data, searchValue) => {\r\n if (!searchValue || !data || data.length === 0) {\r\n return data;\r\n }\r\n\r\n // 检查节点是否匹配搜索值(支持汉字和拼音)\r\n const isNodeMatch = (node) => {\r\n // 构造节点标签\r\n let label = \"\";\r\n if (labelField.split(\",\").length == 1) {\r\n label = node[labelField] || \"\";\r\n } else {\r\n const labelFields: any = labelField.split(\",\");\r\n labelFields.forEach((l, index) => {\r\n label = index == 0 ? node[l] || \"\" : label + \"-\" + (node[l] || \"\");\r\n });\r\n }\r\n\r\n // 如果没有标签,返回false\r\n if (!label) return false;\r\n\r\n // 直接包含检查(汉字匹配)\r\n if (label.includes(searchValue)) {\r\n return true;\r\n }\r\n\r\n // 拼音匹配检查\r\n try {\r\n return PinyinMatch.match(label, searchValue) || false;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n // 递归查找匹配的节点\r\n const findMatchingNodes = (node) => {\r\n // 检查当前节点是否匹配\r\n const currentNodeMatch = isNodeMatch(node);\r\n\r\n // 如果当前节点匹配,返回该节点及其所有子节点\r\n if (currentNodeMatch) {\r\n return {\r\n ...node,\r\n };\r\n }\r\n\r\n // 如果当前节点不匹配,检查子节点\r\n let matchedChildren = [];\r\n if (node.children && node.children.length > 0) {\r\n node.children.forEach((child) => {\r\n const matched = findMatchingNodes(child);\r\n if (matched) {\r\n matchedChildren.push(matched);\r\n }\r\n });\r\n }\r\n\r\n // 如果有匹配的子节点,则返回该节点(作为容器)及其匹配的子节点\r\n if (matchedChildren.length > 0) {\r\n return {\r\n ...node,\r\n children: matchedChildren,\r\n };\r\n }\r\n\r\n // 如果当前节点和子节点都不匹配,返回null\r\n return null;\r\n };\r\n\r\n // 对所有顶级节点进行搜索\r\n const result = [];\r\n data.forEach((node) => {\r\n const matchedNode = findMatchingNodes(node);\r\n if (matchedNode) {\r\n result.push(matchedNode);\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n const result = value ? searchTreeData(allDataSource, value) : allDataSource;\r\n\r\n this.setState({\r\n dataSource: result,\r\n });\r\n }\r\n componentDidUpdate(newProps, newState, Snapshot) {\r\n const { treeData, children } = this.props;\r\n const { allDataSource } = this.state;\r\n if (!children && treeData) {\r\n const newData = treeData;\r\n if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n });\r\n }\r\n }\r\n }\r\n render(): React.ReactNode {\r\n const {\r\n valueField = \"value\",\r\n labelField = \"label\",\r\n childrenField = \"children\",\r\n } = this.props;\r\n const treeSelectProps = omit({ ...this.props }, [\r\n \"store\",\r\n \"valueField\",\r\n \"labelField\",\r\n \"childrenField\",\r\n ]);\r\n return (\r\n <TreeSelect\r\n showSearch={true}\r\n placeholder=\"请选择\"\r\n fieldNames={{\r\n value: valueField,\r\n label: labelField,\r\n children: childrenField,\r\n }}\r\n {...treeSelectProps}\r\n treeData={this.state.dataSource}\r\n onSearch={this.onSearch.bind(this)}\r\n filterTreeNode={false}\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","Store","utils","PinyinMatch","omit","NscTreeSelect","PureComponent","constructor","props","_defineProperty","dataSource","selectValue","allDataSource","dataStore","treeData","store","children","options","url","listeners","listenersPops","cached","cacheKey","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","data","modelData","setState","dataChanged","isCached","isCacheKey","autoLoad","componentDidMount","onSearch","value","state","labelField","searchTreeData","searchValue","length","isNodeMatch","node","label","split","labelFields","forEach","l","index","includes","match","e","findMatchingNodes","currentNodeMatch","matchedChildren","child","matched","push","result","matchedNode","componentDidUpdate","newProps","newState","Snapshot","newData","JSON","stringify","render","valueField","childrenField","treeSelectProps","createElement","_TreeSelect","_extends","showSearch","placeholder","fieldNames","bind","filterTreeNode"],"sources":["../../../src/components/base/treeselect/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { TreeSelect, TreeSelectProps } from \"antd\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport PinyinMatch from \"pinyin-match\";\r\nimport omit from \"omit.js\";\r\ninterface ITreeSelectProps extends TreeSelectProps<any> {\r\n store?: StoreProps;\r\n labelField?: string;\r\n valueField?: string;\r\n childrenField?: string;\r\n onChange?: any;\r\n}\r\nexport default class NscTreeSelect extends React.PureComponent<\r\n ITreeSelectProps,\r\n any\r\n> {\r\n state = {\r\n dataSource: [],\r\n selectValue: null,\r\n allDataSource: [],\r\n dataStore: [],\r\n };\r\n store = {} as StoreProps;\r\n constructor(props) {\r\n super(props);\r\n let { treeData, store = {}, children, options } = props;\r\n const {\r\n url,\r\n listeners: listenersPops = {},\r\n cached,\r\n cacheKey,\r\n ...stores\r\n } = store;\r\n\r\n if (!children) {\r\n if (!(url || treeData)) {\r\n throw new Error(\"url、treeData\");\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 // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\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 && treeData == null) {\r\n let isCached = cached;\r\n let isCacheKey = cacheKey;\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n cached: isCached,\r\n cacheKey: isCacheKey,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n componentDidMount() {\r\n const { treeData, children } = this.props;\r\n if (!children && treeData) {\r\n this.setState({\r\n dataSource: treeData,\r\n allDataSource: treeData,\r\n });\r\n }\r\n }\r\n\r\n onSearch(value) {\r\n const { allDataSource } = this.state;\r\n let { labelField = \"label\" } = this.props;\r\n\r\n // 深度优先搜索匹配节点及其关联节点\r\n const searchTreeData = (data, searchValue) => {\r\n if (!searchValue || !data || data.length === 0) {\r\n return data;\r\n }\r\n\r\n // 检查节点是否匹配搜索值(支持汉字和拼音)\r\n const isNodeMatch = (node) => {\r\n // 构造节点标签\r\n let label = \"\";\r\n if (labelField.split(\",\").length == 1) {\r\n label = node[labelField] || \"\";\r\n } else {\r\n const labelFields: any = labelField.split(\",\");\r\n labelFields.forEach((l, index) => {\r\n label = index == 0 ? node[l] || \"\" : label + \"-\" + (node[l] || \"\");\r\n });\r\n }\r\n\r\n // 如果没有标签,返回false\r\n if (!label) return false;\r\n\r\n // 直接包含检查(汉字匹配)\r\n if (label.includes(searchValue)) {\r\n return true;\r\n }\r\n\r\n // 拼音匹配检查\r\n try {\r\n return PinyinMatch.match(label, searchValue) || false;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n // 递归查找匹配的节点\r\n const findMatchingNodes = (node) => {\r\n // 检查当前节点是否匹配\r\n const currentNodeMatch = isNodeMatch(node);\r\n\r\n // 如果当前节点匹配,返回该节点及其所有子节点\r\n if (currentNodeMatch) {\r\n return {\r\n ...node,\r\n };\r\n }\r\n\r\n // 如果当前节点不匹配,检查子节点\r\n let matchedChildren = [];\r\n if (node.children && node.children.length > 0) {\r\n node.children.forEach((child) => {\r\n const matched = findMatchingNodes(child);\r\n if (matched) {\r\n matchedChildren.push(matched);\r\n }\r\n });\r\n }\r\n\r\n // 如果有匹配的子节点,则返回该节点(作为容器)及其匹配的子节点\r\n if (matchedChildren.length > 0) {\r\n return {\r\n ...node,\r\n children: matchedChildren,\r\n };\r\n }\r\n\r\n // 如果当前节点和子节点都不匹配,返回null\r\n return null;\r\n };\r\n\r\n // 对所有顶级节点进行搜索\r\n const result = [];\r\n data.forEach((node) => {\r\n const matchedNode = findMatchingNodes(node);\r\n if (matchedNode) {\r\n result.push(matchedNode);\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n const result = value ? searchTreeData(allDataSource, value) : allDataSource;\r\n\r\n this.setState({\r\n dataSource: result,\r\n });\r\n }\r\n componentDidUpdate(newProps, newState, Snapshot) {\r\n const { treeData, children } = this.props;\r\n const { allDataSource } = this.state;\r\n if (!children && treeData) {\r\n const newData = treeData;\r\n if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n });\r\n }\r\n }\r\n }\r\n render(): React.ReactNode {\r\n const {\r\n valueField = \"id\",\r\n labelField = \"title\",\r\n childrenField = \"children\",\r\n } = this.props;\r\n const treeSelectProps = omit({ ...this.props }, [\r\n \"store\",\r\n \"valueField\",\r\n \"labelField\",\r\n \"childrenField\",\r\n ]);\r\n return (\r\n <TreeSelect\r\n showSearch={true}\r\n placeholder=\"请选择\"\r\n fieldNames={{\r\n value: valueField,\r\n label: labelField,\r\n children: childrenField,\r\n }}\r\n {...treeSelectProps}\r\n treeData={this.state.dataSource}\r\n onSearch={this.onSearch.bind(this)}\r\n filterTreeNode={false}\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -33,7 +33,7 @@ class PasswordCheck extends React.PureComponent {
33
33
  pwd: md5(value),
34
34
  authMinutes: num
35
35
  }).then(res => {
36
- if (res == 200) {
36
+ if (res.code == 200) {
37
37
  this.modalRef.current.hide();
38
38
  }
39
39
  });
@@ -47,7 +47,7 @@ class PasswordCheck extends React.PureComponent {
47
47
  className: getLess(styles, "nsc-password-margin-input")
48
48
  }), /*#__PURE__*/React.createElement("div", {
49
49
  className: getLess(styles, "nsc-password-margin-text")
50
- }, '有效时间(分钟)', ":"), /*#__PURE__*/React.createElement(Input.Number, {
50
+ }, "有效时间(分钟)", ":"), /*#__PURE__*/React.createElement(Input.Number, {
51
51
  ref: this.numRef,
52
52
  className: getLess(styles, "nsc-password-margin-input"),
53
53
  min: 5,
@@ -56,4 +56,4 @@ class PasswordCheck extends React.PureComponent {
56
56
  }
57
57
  }
58
58
  export default PasswordCheck;
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk1vZGFsIiwiSW5wdXQiLCJyZXF1ZXN0IiwibWQ1Iiwic3R5bGVzIiwiZ2V0TGVzcyIsIlBhc3N3b3JkQ2hlY2siLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJzaG93IiwibW9kYWxSZWYiLCJjdXJyZW50Iiwic3VibWl0IiwiZGF0YSIsInBvc3QiLCJhdXRvUHJlZml4IiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIm9uT2siLCJ2YWx1ZSIsInBhc3NSZWYiLCJnZXRWYWx1ZSIsIm51bSIsIm51bVJlZiIsInB3ZCIsImF1dGhNaW51dGVzIiwidGhlbiIsInJlcyIsImhpZGUiLCJ0aXRsZSIsInJlZiIsImNsYXNzTmFtZSIsIlBhc3N3b3JkIiwiTnVtYmVyIiwibWluIiwibWF4Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9QYXNzd29yZENoZWNrL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vYmFzZS9tb2RhbFwiO1xyXG5pbXBvcnQgSW5wdXQgZnJvbSBcIi4uLy4uL2Jhc2UvaW5wdXRcIjtcclxuaW1wb3J0IHJlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBtZDUgZnJvbSBcIm1kNVwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5cclxuY2xhc3MgUGFzc3dvcmRDaGVjayBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xyXG4gIHBhc3NSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIG51bVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgbW9kYWxSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHNob3coKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmLmN1cnJlbnQuc2hvdygpO1xyXG4gIH1cclxuICBzdWJtaXQoZGF0YSkge1xyXG4gICAgcmV0dXJuIHJlcXVlc3QucG9zdChgL2pxdWljay1zeXN0ZW0vYXBpLXNjb3BlL3B3ZC12ZXJpZnlgLCB7XHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgb25Paz17KCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBhc3NSZWYuY3VycmVudC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgY29uc3QgbnVtID0gdGhpcy5udW1SZWYuY3VycmVudC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXQoeyBwd2Q6IG1kNSh2YWx1ZSksIGF1dGhNaW51dGVzOiBudW0gfSkudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50LmhpZGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICB0aXRsZT17XCLlr4bnoIHnoa7orqRcIn1cclxuICAgICAgICByZWY9e3RoaXMubW9kYWxSZWZ9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXBhc3N3b3JkLW1hcmdpbi10ZXh0XCIpfT7noa7orqTlr4bnoIE6PC9kaXY+XHJcbiAgICAgICAgPElucHV0LlBhc3N3b3JkXHJcbiAgICAgICAgICByZWY9e3RoaXMucGFzc1JlZn1cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXBhc3N3b3JkLW1hcmdpbi1pbnB1dFwiKX1cclxuICAgICAgICAvPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtcGFzc3dvcmQtbWFyZ2luLXRleHRcIil9Pnsn5pyJ5pWI5pe26Ze0KOWIhumSnyknfTo8L2Rpdj5cclxuICAgICAgICA8SW5wdXQuTnVtYmVyXHJcbiAgICAgICAgICByZWY9e3RoaXMubnVtUmVmfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtcGFzc3dvcmQtbWFyZ2luLWlucHV0XCIpfVxyXG4gICAgICAgICAgbWluPXs1fVxyXG4gICAgICAgICAgbWF4PXszMH1cclxuICAgICAgICAvPlxyXG4gICAgICA8L01vZGFsPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgUGFzc3dvcmRDaGVjaztcclxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBQ3BDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsT0FBTyxNQUFNLGFBQWE7QUFDakMsT0FBT0MsR0FBRyxNQUFNLEtBQUs7QUFDckIsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFFckMsTUFBTUMsYUFBYSxTQUFTUCxLQUFLLENBQUNRLGFBQWEsQ0FBQztFQUFBQyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLCtCQUNwQ1gsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLDhCQUN2QlgsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLGdDQUNwQlgsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztFQUFBO0VBQ2pDQyxJQUFJQSxDQUFBLEVBQUc7SUFDTCxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUMsQ0FBQztFQUM5QjtFQUNBRyxNQUFNQSxDQUFDQyxJQUFJLEVBQUU7SUFDWCxPQUFPZCxPQUFPLENBQUNlLElBQUksd0NBQXdDO01BQ3pERCxJQUFJLEVBQUVBLElBQUk7TUFDVkUsVUFBVSxFQUFFO0lBQ2QsQ0FBQyxDQUFDO0VBQ0o7RUFDQUMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1Asb0JBQ0VwQixLQUFBLENBQUFxQixhQUFBLENBQUNwQixLQUFLO01BQ0pxQixJQUFJLEVBQUVBLENBQUEsS0FBTTtRQUNWLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLE9BQU8sQ0FBQ1QsT0FBTyxDQUFDVSxRQUFRLENBQUMsQ0FBQztRQUM3QyxNQUFNQyxHQUFHLEdBQUcsSUFBSSxDQUFDQyxNQUFNLENBQUNaLE9BQU8sQ0FBQ1UsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDVCxNQUFNLENBQUM7VUFBRVksR0FBRyxFQUFFeEIsR0FBRyxDQUFDbUIsS0FBSyxDQUFDO1VBQUVNLFdBQVcsRUFBRUg7UUFBSSxDQUFDLENBQUMsQ0FBQ0ksSUFBSSxDQUFFQyxHQUFHLElBQUs7VUFDL0QsSUFBSUEsR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQ2pCLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDaUIsSUFBSSxDQUFDLENBQUM7VUFDOUI7UUFDRixDQUFDLENBQUM7TUFDSixDQUFFO01BQ0ZDLEtBQUssRUFBRSxNQUFPO01BQ2RDLEdBQUcsRUFBRSxJQUFJLENBQUNwQjtJQUFTLGdCQUVuQmQsS0FBQSxDQUFBcUIsYUFBQTtNQUFLYyxTQUFTLEVBQUU3QixPQUFPLENBQUNELE1BQU0sRUFBRSwwQkFBMEI7SUFBRSxHQUFDLDJCQUFVLENBQUMsZUFDeEVMLEtBQUEsQ0FBQXFCLGFBQUEsQ0FBQ25CLEtBQUssQ0FBQ2tDLFFBQVE7TUFDYkYsR0FBRyxFQUFFLElBQUksQ0FBQ1YsT0FBUTtNQUNsQlcsU0FBUyxFQUFFN0IsT0FBTyxDQUFDRCxNQUFNLEVBQUUsMkJBQTJCO0lBQUUsQ0FDekQsQ0FBQyxlQUNGTCxLQUFBLENBQUFxQixhQUFBO01BQUtjLFNBQVMsRUFBRTdCLE9BQU8sQ0FBQ0QsTUFBTSxFQUFFLDBCQUEwQjtJQUFFLEdBQUUsVUFBVSxFQUFDLEdBQU0sQ0FBQyxlQUNoRkwsS0FBQSxDQUFBcUIsYUFBQSxDQUFDbkIsS0FBSyxDQUFDbUMsTUFBTTtNQUNYSCxHQUFHLEVBQUUsSUFBSSxDQUFDUCxNQUFPO01BQ2pCUSxTQUFTLEVBQUU3QixPQUFPLENBQUNELE1BQU0sRUFBRSwyQkFBMkIsQ0FBRTtNQUN4RGlDLEdBQUcsRUFBRSxDQUFFO01BQ1BDLEdBQUcsRUFBRTtJQUFHLENBQ1QsQ0FDSSxDQUFDO0VBRVo7QUFDRjtBQUNBLGVBQWVoQyxhQUFhIn0=
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk1vZGFsIiwiSW5wdXQiLCJyZXF1ZXN0IiwibWQ1Iiwic3R5bGVzIiwiZ2V0TGVzcyIsIlBhc3N3b3JkQ2hlY2siLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJzaG93IiwibW9kYWxSZWYiLCJjdXJyZW50Iiwic3VibWl0IiwiZGF0YSIsInBvc3QiLCJhdXRvUHJlZml4IiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIm9uT2siLCJ2YWx1ZSIsInBhc3NSZWYiLCJnZXRWYWx1ZSIsIm51bSIsIm51bVJlZiIsInB3ZCIsImF1dGhNaW51dGVzIiwidGhlbiIsInJlcyIsImNvZGUiLCJoaWRlIiwidGl0bGUiLCJyZWYiLCJjbGFzc05hbWUiLCJQYXNzd29yZCIsIk51bWJlciIsIm1pbiIsIm1heCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvUGFzc3dvcmRDaGVjay9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IElucHV0IGZyb20gXCIuLi8uLi9iYXNlL2lucHV0XCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgbWQ1IGZyb20gXCJtZDVcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmNsYXNzIFBhc3N3b3JkQ2hlY2sgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcclxuICBwYXNzUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBudW1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIG1vZGFsUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzaG93KCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50LnNob3coKTtcclxuICB9XHJcbiAgc3VibWl0KGRhdGEpIHtcclxuICAgIHJldHVybiByZXF1ZXN0LnBvc3QoYC9qcXVpY2stc3lzdGVtL2FwaS1zY29wZS9wd2QtdmVyaWZ5YCwge1xyXG4gICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxNb2RhbFxyXG4gICAgICAgIG9uT2s9eygpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXNzUmVmLmN1cnJlbnQuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgIGNvbnN0IG51bSA9IHRoaXMubnVtUmVmLmN1cnJlbnQuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgIHRoaXMuc3VibWl0KHsgcHdkOiBtZDUodmFsdWUpLCBhdXRoTWludXRlczogbnVtIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50LmhpZGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICB0aXRsZT17XCLlr4bnoIHnoa7orqRcIn1cclxuICAgICAgICByZWY9e3RoaXMubW9kYWxSZWZ9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXBhc3N3b3JkLW1hcmdpbi10ZXh0XCIpfT5cclxuICAgICAgICAgIOehruiupOWvhueggTpcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8SW5wdXQuUGFzc3dvcmRcclxuICAgICAgICAgIHJlZj17dGhpcy5wYXNzUmVmfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtcGFzc3dvcmQtbWFyZ2luLWlucHV0XCIpfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1wYXNzd29yZC1tYXJnaW4tdGV4dFwiKX0+XHJcbiAgICAgICAgICB7XCLmnInmlYjml7bpl7Qo5YiG6ZKfKVwifTpcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8SW5wdXQuTnVtYmVyXHJcbiAgICAgICAgICByZWY9e3RoaXMubnVtUmVmfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtcGFzc3dvcmQtbWFyZ2luLWlucHV0XCIpfVxyXG4gICAgICAgICAgbWluPXs1fVxyXG4gICAgICAgICAgbWF4PXszMH1cclxuICAgICAgICAvPlxyXG4gICAgICA8L01vZGFsPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgUGFzc3dvcmRDaGVjaztcclxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBQ3BDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsT0FBTyxNQUFNLGFBQWE7QUFDakMsT0FBT0MsR0FBRyxNQUFNLEtBQUs7QUFDckIsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFFckMsTUFBTUMsYUFBYSxTQUFTUCxLQUFLLENBQUNRLGFBQWEsQ0FBQztFQUFBQyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLCtCQUNwQ1gsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLDhCQUN2QlgsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLGdDQUNwQlgsS0FBSyxDQUFDWSxTQUFTLENBQU0sQ0FBQztFQUFBO0VBQ2pDQyxJQUFJQSxDQUFBLEVBQUc7SUFDTCxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUMsQ0FBQztFQUM5QjtFQUNBRyxNQUFNQSxDQUFDQyxJQUFJLEVBQUU7SUFDWCxPQUFPZCxPQUFPLENBQUNlLElBQUksd0NBQXdDO01BQ3pERCxJQUFJLEVBQUVBLElBQUk7TUFDVkUsVUFBVSxFQUFFO0lBQ2QsQ0FBQyxDQUFDO0VBQ0o7RUFDQUMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1Asb0JBQ0VwQixLQUFBLENBQUFxQixhQUFBLENBQUNwQixLQUFLO01BQ0pxQixJQUFJLEVBQUVBLENBQUEsS0FBTTtRQUNWLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLE9BQU8sQ0FBQ1QsT0FBTyxDQUFDVSxRQUFRLENBQUMsQ0FBQztRQUM3QyxNQUFNQyxHQUFHLEdBQUcsSUFBSSxDQUFDQyxNQUFNLENBQUNaLE9BQU8sQ0FBQ1UsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDVCxNQUFNLENBQUM7VUFBRVksR0FBRyxFQUFFeEIsR0FBRyxDQUFDbUIsS0FBSyxDQUFDO1VBQUVNLFdBQVcsRUFBRUg7UUFBSSxDQUFDLENBQUMsQ0FBQ0ksSUFBSSxDQUFFQyxHQUFHLElBQUs7VUFDL0QsSUFBSUEsR0FBRyxDQUFDQyxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQ2xCLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDa0IsSUFBSSxDQUFDLENBQUM7VUFDOUI7UUFDRixDQUFDLENBQUM7TUFDSixDQUFFO01BQ0ZDLEtBQUssRUFBRSxNQUFPO01BQ2RDLEdBQUcsRUFBRSxJQUFJLENBQUNyQjtJQUFTLGdCQUVuQmQsS0FBQSxDQUFBcUIsYUFBQTtNQUFLZSxTQUFTLEVBQUU5QixPQUFPLENBQUNELE1BQU0sRUFBRSwwQkFBMEI7SUFBRSxHQUFDLDJCQUV4RCxDQUFDLGVBQ05MLEtBQUEsQ0FBQXFCLGFBQUEsQ0FBQ25CLEtBQUssQ0FBQ21DLFFBQVE7TUFDYkYsR0FBRyxFQUFFLElBQUksQ0FBQ1gsT0FBUTtNQUNsQlksU0FBUyxFQUFFOUIsT0FBTyxDQUFDRCxNQUFNLEVBQUUsMkJBQTJCO0lBQUUsQ0FDekQsQ0FBQyxlQUNGTCxLQUFBLENBQUFxQixhQUFBO01BQUtlLFNBQVMsRUFBRTlCLE9BQU8sQ0FBQ0QsTUFBTSxFQUFFLDBCQUEwQjtJQUFFLEdBQ3pELFVBQVUsRUFBQyxHQUNULENBQUMsZUFDTkwsS0FBQSxDQUFBcUIsYUFBQSxDQUFDbkIsS0FBSyxDQUFDb0MsTUFBTTtNQUNYSCxHQUFHLEVBQUUsSUFBSSxDQUFDUixNQUFPO01BQ2pCUyxTQUFTLEVBQUU5QixPQUFPLENBQUNELE1BQU0sRUFBRSwyQkFBMkIsQ0FBRTtNQUN4RGtDLEdBQUcsRUFBRSxDQUFFO01BQ1BDLEdBQUcsRUFBRTtJQUFHLENBQ1QsQ0FDSSxDQUFDO0VBRVo7QUFDRjtBQUNBLGVBQWVqQyxhQUFhIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Modal","Input","request","md5","styles","getLess","PasswordCheck","PureComponent","constructor","arguments","_defineProperty","createRef","show","modalRef","current","submit","data","post","autoPrefix","render","createElement","onOk","value","passRef","getValue","num","numRef","pwd","authMinutes","then","res","hide","title","ref","className","Password","Number","min","max"],"sources":["../../../src/components/page/PasswordCheck/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport Modal from \"../../base/modal\";\r\nimport Input from \"../../base/input\";\r\nimport request from \"nsc-request\";\r\nimport md5 from \"md5\";\r\nimport styles from \"./index.less\";\r\nimport { getLess } from \"../../utils\";\r\n\r\nclass PasswordCheck extends React.PureComponent {\r\n passRef = React.createRef<any>();\r\n numRef = React.createRef<any>();\r\n modalRef = React.createRef<any>();\r\n show() {\r\n this.modalRef.current.show();\r\n }\r\n submit(data) {\r\n return request.post(`/jquick-system/api-scope/pwd-verify`, {\r\n data: data,\r\n autoPrefix: true,\r\n });\r\n }\r\n render() {\r\n return (\r\n <Modal\r\n onOk={() => {\r\n const value = this.passRef.current.getValue();\r\n const num = this.numRef.current.getValue();\r\n this.submit({ pwd: md5(value), authMinutes: num }).then((res) => {\r\n if (res == 200) {\r\n this.modalRef.current.hide();\r\n }\r\n });\r\n }}\r\n title={\"密码确认\"}\r\n ref={this.modalRef}\r\n >\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>确认密码:</div>\r\n <Input.Password\r\n ref={this.passRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n />\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>{'有效时间(分钟)'}:</div>\r\n <Input.Number\r\n ref={this.numRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n min={5}\r\n max={30}\r\n />\r\n </Modal>\r\n );\r\n }\r\n}\r\nexport default PasswordCheck;\r\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,OAAO,MAAM,aAAa;AACjC,OAAOC,GAAG,MAAM,KAAK;AACrB,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,OAAO,QAAQ,aAAa;AAErC,MAAMC,aAAa,SAASP,KAAK,CAACQ,aAAa,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,+BACpCX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,8BACvBX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,gCACpBX,KAAK,CAACY,SAAS,CAAM,CAAC;EAAA;EACjCC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACF,IAAI,CAAC,CAAC;EAC9B;EACAG,MAAMA,CAACC,IAAI,EAAE;IACX,OAAOd,OAAO,CAACe,IAAI,wCAAwC;MACzDD,IAAI,EAAEA,IAAI;MACVE,UAAU,EAAE;IACd,CAAC,CAAC;EACJ;EACAC,MAAMA,CAAA,EAAG;IACP,oBACEpB,KAAA,CAAAqB,aAAA,CAACpB,KAAK;MACJqB,IAAI,EAAEA,CAAA,KAAM;QACV,MAAMC,KAAK,GAAG,IAAI,CAACC,OAAO,CAACT,OAAO,CAACU,QAAQ,CAAC,CAAC;QAC7C,MAAMC,GAAG,GAAG,IAAI,CAACC,MAAM,CAACZ,OAAO,CAACU,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAACT,MAAM,CAAC;UAAEY,GAAG,EAAExB,GAAG,CAACmB,KAAK,CAAC;UAAEM,WAAW,EAAEH;QAAI,CAAC,CAAC,CAACI,IAAI,CAAEC,GAAG,IAAK;UAC/D,IAAIA,GAAG,IAAI,GAAG,EAAE;YACd,IAAI,CAACjB,QAAQ,CAACC,OAAO,CAACiB,IAAI,CAAC,CAAC;UAC9B;QACF,CAAC,CAAC;MACJ,CAAE;MACFC,KAAK,EAAE,MAAO;MACdC,GAAG,EAAE,IAAI,CAACpB;IAAS,gBAEnBd,KAAA,CAAAqB,aAAA;MAAKc,SAAS,EAAE7B,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GAAC,2BAAU,CAAC,eACxEL,KAAA,CAAAqB,aAAA,CAACnB,KAAK,CAACkC,QAAQ;MACbF,GAAG,EAAE,IAAI,CAACV,OAAQ;MAClBW,SAAS,EAAE7B,OAAO,CAACD,MAAM,EAAE,2BAA2B;IAAE,CACzD,CAAC,eACFL,KAAA,CAAAqB,aAAA;MAAKc,SAAS,EAAE7B,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GAAE,UAAU,EAAC,GAAM,CAAC,eAChFL,KAAA,CAAAqB,aAAA,CAACnB,KAAK,CAACmC,MAAM;MACXH,GAAG,EAAE,IAAI,CAACP,MAAO;MACjBQ,SAAS,EAAE7B,OAAO,CAACD,MAAM,EAAE,2BAA2B,CAAE;MACxDiC,GAAG,EAAE,CAAE;MACPC,GAAG,EAAE;IAAG,CACT,CACI,CAAC;EAEZ;AACF;AACA,eAAehC,aAAa"}
1
+ {"version":3,"file":"index.js","names":["React","Modal","Input","request","md5","styles","getLess","PasswordCheck","PureComponent","constructor","arguments","_defineProperty","createRef","show","modalRef","current","submit","data","post","autoPrefix","render","createElement","onOk","value","passRef","getValue","num","numRef","pwd","authMinutes","then","res","code","hide","title","ref","className","Password","Number","min","max"],"sources":["../../../src/components/page/PasswordCheck/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport Modal from \"../../base/modal\";\r\nimport Input from \"../../base/input\";\r\nimport request from \"nsc-request\";\r\nimport md5 from \"md5\";\r\nimport styles from \"./index.less\";\r\nimport { getLess } from \"../../utils\";\r\n\r\nclass PasswordCheck extends React.PureComponent {\r\n passRef = React.createRef<any>();\r\n numRef = React.createRef<any>();\r\n modalRef = React.createRef<any>();\r\n show() {\r\n this.modalRef.current.show();\r\n }\r\n submit(data) {\r\n return request.post(`/jquick-system/api-scope/pwd-verify`, {\r\n data: data,\r\n autoPrefix: true,\r\n });\r\n }\r\n render() {\r\n return (\r\n <Modal\r\n onOk={() => {\r\n const value = this.passRef.current.getValue();\r\n const num = this.numRef.current.getValue();\r\n this.submit({ pwd: md5(value), authMinutes: num }).then((res) => {\r\n if (res.code == 200) {\r\n this.modalRef.current.hide();\r\n }\r\n });\r\n }}\r\n title={\"密码确认\"}\r\n ref={this.modalRef}\r\n >\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>\r\n 确认密码:\r\n </div>\r\n <Input.Password\r\n ref={this.passRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n />\r\n <div className={getLess(styles, \"nsc-password-margin-text\")}>\r\n {\"有效时间(分钟)\"}:\r\n </div>\r\n <Input.Number\r\n ref={this.numRef}\r\n className={getLess(styles, \"nsc-password-margin-input\")}\r\n min={5}\r\n max={30}\r\n />\r\n </Modal>\r\n );\r\n }\r\n}\r\nexport default PasswordCheck;\r\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,KAAK,MAAM,kBAAkB;AACpC,OAAOC,OAAO,MAAM,aAAa;AACjC,OAAOC,GAAG,MAAM,KAAK;AACrB,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,OAAO,QAAQ,aAAa;AAErC,MAAMC,aAAa,SAASP,KAAK,CAACQ,aAAa,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,+BACpCX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,8BACvBX,KAAK,CAACY,SAAS,CAAM,CAAC;IAAAD,eAAA,gCACpBX,KAAK,CAACY,SAAS,CAAM,CAAC;EAAA;EACjCC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACF,IAAI,CAAC,CAAC;EAC9B;EACAG,MAAMA,CAACC,IAAI,EAAE;IACX,OAAOd,OAAO,CAACe,IAAI,wCAAwC;MACzDD,IAAI,EAAEA,IAAI;MACVE,UAAU,EAAE;IACd,CAAC,CAAC;EACJ;EACAC,MAAMA,CAAA,EAAG;IACP,oBACEpB,KAAA,CAAAqB,aAAA,CAACpB,KAAK;MACJqB,IAAI,EAAEA,CAAA,KAAM;QACV,MAAMC,KAAK,GAAG,IAAI,CAACC,OAAO,CAACT,OAAO,CAACU,QAAQ,CAAC,CAAC;QAC7C,MAAMC,GAAG,GAAG,IAAI,CAACC,MAAM,CAACZ,OAAO,CAACU,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAACT,MAAM,CAAC;UAAEY,GAAG,EAAExB,GAAG,CAACmB,KAAK,CAAC;UAAEM,WAAW,EAAEH;QAAI,CAAC,CAAC,CAACI,IAAI,CAAEC,GAAG,IAAK;UAC/D,IAAIA,GAAG,CAACC,IAAI,IAAI,GAAG,EAAE;YACnB,IAAI,CAAClB,QAAQ,CAACC,OAAO,CAACkB,IAAI,CAAC,CAAC;UAC9B;QACF,CAAC,CAAC;MACJ,CAAE;MACFC,KAAK,EAAE,MAAO;MACdC,GAAG,EAAE,IAAI,CAACrB;IAAS,gBAEnBd,KAAA,CAAAqB,aAAA;MAAKe,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GAAC,2BAExD,CAAC,eACNL,KAAA,CAAAqB,aAAA,CAACnB,KAAK,CAACmC,QAAQ;MACbF,GAAG,EAAE,IAAI,CAACX,OAAQ;MAClBY,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,2BAA2B;IAAE,CACzD,CAAC,eACFL,KAAA,CAAAqB,aAAA;MAAKe,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,0BAA0B;IAAE,GACzD,UAAU,EAAC,GACT,CAAC,eACNL,KAAA,CAAAqB,aAAA,CAACnB,KAAK,CAACoC,MAAM;MACXH,GAAG,EAAE,IAAI,CAACR,MAAO;MACjBS,SAAS,EAAE9B,OAAO,CAACD,MAAM,EAAE,2BAA2B,CAAE;MACxDkC,GAAG,EAAE,CAAE;MACPC,GAAG,EAAE;IAAG,CACT,CACI,CAAC;EAEZ;AACF;AACA,eAAejC,aAAa"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "4.4.4",
3
+ "version": "4.4.6",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {