nsc-react-component 4.1.8 → 4.1.9

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.
@@ -190,6 +190,16 @@ class FormPage extends PureComponent {
190
190
  } else {
191
191
  values[key] = dayjs(olddata, this.dateFormat[key]);
192
192
  }
193
+ } else {
194
+ if (this.rangerDate[key]) {
195
+ let value1 = values[this.rangerDate[key][0]];
196
+ let value2 = values[this.rangerDate[key][1]];
197
+ console.log("value1", value1);
198
+ console.log("value2", value2);
199
+ if (value1 && value2) {
200
+ values[key] = [dayjs(value1, this.dateFormat[key]), dayjs(value2, this.dateFormat[key])];
201
+ }
202
+ }
193
203
  }
194
204
  }
195
205
  }
@@ -581,4 +591,4 @@ class FormPage extends PureComponent {
581
591
  }
582
592
  }
583
593
  export default FormPage;
584
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZGF5anMiLCJsb2Rhc2giLCJCdXR0b24iLCJVcGxvYWQiLCJjbHMiLCJGb3JtUGFnZSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJzaG93Iiwib3JnVmFsdWUiLCJlZGl0b3JmbGFnIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiY2FsbEJhY2siLCJzZXRTdGF0ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImNvbnZlcnRWYWx1ZSIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2hvd0Zvcm0iLCJhZnRlclJlbmRlciIsIl90aGlzJGZvcm1SZWYkY3VycmVudDIiLCJwcm9wcyIsImRlZmF1bHRWYWx1ZSIsImhpZGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQzIiwib25IaWRlRm9ybSIsImhpZGVGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NCIsInNldExvYWRpbmciLCJnZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ1Iiwic3RhdGUiLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImRhdGEiLCJfb2JqZWN0U3ByZWFkIiwiZmlsZUZvcm1hdCIsIm5ld0ZpbGVMaXN0IiwibWFwIiwiaXRlbSIsImdldEZpbGVMaXN0Iiwic3VibWl0RmxhZyIsImVycm9yIiwiZGF0ZVZhbHVlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImZvcm1hdCIsInJhbmdlckRhdGUiLCJkYXRlRm9ybWF0IiwiZSIsImlkIiwidHlwZSIsInZhbHVlcyIsImNsb25lRGVlcCIsInNldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDYiLCJuZXdWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwiZG9TdWJtaXQiLCJmb3JtZGF0YSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJyZXF1ZXN0T2JqZWN0IiwicmVxdWVzdENvbmZpZyIsImFkZFVybCIsImVkaXRvclVybCIsImFkZFBhcmFtcyIsImVkaXRvclBhcmFtcyIsInVybCIsInBhcmFtcyIsIlV0aWxzIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY29udmVyUGFyYW1zIiwiY29uc29sZSIsIm90aGVyUGFyYW1zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwib25TdWJtaXQiLCJub1VuZGVmaW5lZCIsInJlcyIsImNvZGUiLCJzdWNjZXNzIiwib2JqIiwiZmlsZUlkIiwiZmlsZU5hbWUiLCJzdGF0dXMiLCJwdXNoIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OCIsIl90aGlzJGZvcm1SZWYkY3VycmVudDkiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImNhdGNoIiwiZXJyb3JJbmZvIiwidmFsdWVDaGFuZ2UiLCJfcmVmIiwidmFsdWVPcHRpb24iLCJkaWN0TmFtZSIsIm5ld05hbWVzIiwib25DaGFuZ2UiLCJldmVudE9wdGlvbiIsImZ1bmNzIiwicmVmcyIsInJlZkxpc3QiLCJ2YWx1ZVN0ciIsInNlbGZGdW5jIiwicmVuZGVyRm9ybSIsImZvcm1zIiwibmV3VmFsaWQiLCJjcmVhdGVFbGVtZW50IiwiZ3V0dGVyIiwiaW5kZXgiLCJfaXRlbSRwcm9wcyIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsInNwbGl0IiwiYWxsb3dDaGFycyIsInBsYWNlaG9sZGVyIiwiY29uY2F0IiwiYmluZCIsImRhdGFUeXBlIiwiZGlzYWJsZWQiLCJydWxlcyIsInJlcXVpcmVkIiwiaXRlbVJlZiIsIl9pdGVtJHByb3BzMiIsInNwYW4iLCJzdHlsZSIsImRpc3BsYXkiLCJJdGVtIiwiY29tcG9uZW50TmFtZSIsIm5vU3R5bGUiLCJmb3JtUmVuZGVyIiwicmVmIiwiX2l0ZW0kcHJvcHMzIiwiX2l0ZW0kcHJvcHM0IiwiX2l0ZW0kcHJvcHM1IiwiX2V4dGVuZHMiLCJvbkxpc3RDaGFuZ2UiLCJsaXN0Iiwic2hvd1VwbG9hZExpc3QiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1JlbW92ZUljb24iLCJjaGlsZHJlbiIsInJlbmRlciIsImZvb3RlciIsIm1vZGFsUHJvcHMiLCJ0aXRsZSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsIndpZHRoIiwiZHJhd2VyUHJvcHMiLCJvbkNsb3NlIiwibmV3Rm9ybXNPYmoiLCJmb3JtR3JvdXBzIiwib3RoZXJHcnVwcyIsImdyb3VwTmFtZSIsImluZGV4T2YiLCJncm91cEZvcm1zIiwiZm9ybSIsInNlbGZCdXR0b25zIiwic2hvd01vZGVsIiwiZm9ybVR5cGUiLCJsYWJlbENvbCIsImZsZXgiLCJ3cmFwcGVyQ29sIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9vdGVyQ2xhc3NOYW1lIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuY2xhc3MgRm9ybVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PEZvcm1QYWdlUHJvcHMsIGFueT4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBsYWJlbDogXCJcIixcclxuICAgIGVkaXRvckZsYWc6IHRydWUsXHJcbiAgICB2YWx1ZToge30gYXMgYW55LFxyXG4gICAgZGljdE5hbWVzOiB7fSBhcyBhbnksXHJcbiAgICBmaWxlTGlzdDoge30gYXMgYW55LFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmNvbnZlcnRWYWx1ZShvcmdWYWx1ZSwgbGFiZWwpO1xyXG4gICAgICAgICAgLy/lpITnkIbmlofku7bmlbDmja5cclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh2YWx1ZSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2hvd0Zvcm0ob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IHsgLi4uZm9ybVZhbHVlLCAuLi5kaWN0TmFtZXMgfTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCFmb3JtVmFsdWVbaXRlbV0pIHtcclxuICAgICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcIuivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuICBjb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpIHtcclxuICAgIGxldCB2YWx1ZXMgPSBsb2Rhc2guY2xvbmVEZWVwKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1tpdGVtXTtcclxuICAgICAgICBpZiAob2xkZGF0YSAmJiBBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtpdGVtXSA9IHRoaXMuZ2V0RmlsZUxpc3Qob2xkZGF0YSB8fCBbXSwgdHlwZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2l0ZW1dID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBmaWxlTGlzdCB9KTtcclxuICAgIH1cclxuICAgIC8v5aSE55CG5pel5pyf5qC85byP5pWw5o2uXHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxuICB9XHJcbiAgc2V0Rm9ybVZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgfVxyXG4gIGRvU3VibWl0KGZvcm1kYXRhLCBsYWJlbCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdWJtaXRVcmwsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBjYWxsQmFjayxcclxuICAgICAgcmVxdWVzdE9iamVjdCA9IHt9LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWRkVXJsLCBlZGl0b3JVcmwsIGFkZFBhcmFtcywgZWRpdG9yUGFyYW1zIH0gPSByZXF1ZXN0T2JqZWN0O1xyXG4gICAgbGV0IHVybCA9IFwiXCI7XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7fTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgIHVybCA9IGFkZFVybCA/IGFkZFVybCA6IHN1Ym1pdFVybDtcclxuICAgICAgaWYgKGFkZFBhcmFtcyAmJiB0eXBlb2YgYWRkUGFyYW1zID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge307XHJcbiAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCBhZGRQYXJhbXMpO1xyXG4gICAgICAgIGxldCBjb252ZXJQYXJhbXMgPSBmdW5jKFV0aWxzKTtcclxuICAgICAgICBwYXJhbXMgPSBjb252ZXJQYXJhbXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gYWRkUGFyYW1zID8gYWRkUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgdXJsID0gZWRpdG9yVXJsID8gZWRpdG9yVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoZWRpdG9yUGFyYW1zICYmIHR5cGVvZiBlZGl0b3JQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGVkaXRvclBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBlZGl0b3JQYXJhbXMgPyBlZGl0b3JQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLphY3nva5VcmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZGF0YSA9IHt9LCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxyXG4gICAgICB1cmwsXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiB7IC4uLmZvcm1kYXRhLCAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgICAuLi5vdGhlclBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oaWRlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoZGF0YSwgbGFiZWwgPSBcIuaWsOWinlwiKSB7XHJcbiAgICB0aGlzLnN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gICAgbGV0IGZpbGVMaXN0ID0gW10gYXMgYW55O1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgIGZpbGVJZDogaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgb2JqLnN0YXR1cyA9IFwiZG9uZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFiZWwgIT09IFwi5p+l55yLXCIgJiYgaXRlbS5zdGF0dXMgIT09IFwiZG9uZVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdEZsYWcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsZUxpc3QucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlTGlzdDtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgeyBvblN1Ym1pdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgdmFsaWQgPSB0aGlzLnZhbGlkO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcclxuICAgICAgPy52YWxpZGF0ZUZpZWxkcyh2YWxpZClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcclxuICAgICAgICAvLyBpZiAoIXRoaXMuc3VibWl0RmxhZykge1xyXG4gICAgICAgIC8vICAgbWVzc2FnZS5lcnJvcign6K+3562J5b6F5omA5pyJ5paH5Lu25LiK5Lyg5a6M5oiQ77yBJylcclxuICAgICAgICAvLyAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XHJcbiAgICAgICAgaWYgKG9uU3VibWl0KSB7XHJcbiAgICAgICAgICBvblN1Ym1pdCAmJiBvblN1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG9TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7fSk7XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlKHsgdHlwZSwgZGljdE5hbWUgfSwgcHJvcHMsIHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSkge1xyXG4gICAgaWYgKHZhbHVlT3B0aW9uKSB7XHJcbiAgICAgIGlmIChkaWN0TmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHsgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGNvbnN0IG5ld05hbWVzID0geyAuLi5kaWN0TmFtZXMgfSBhcyBhbnk7XHJcbiAgICAgICAgbmV3TmFtZXNbZGljdE5hbWVdID0gdmFsdWVPcHRpb24ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkaWN0TmFtZXM6IG5ld05hbWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcclxuICAgICAgaWYgKHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICBwcm9wcy5vbkNoYW5nZSh2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRPcHRpb24gPSB7XHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICBmb3JtUmVmOiB0aGlzLmZvcm1SZWYsXHJcbiAgICAgICAgICBmdW5jczogdGhpcy5wcm9wcy5mdW5jcyB8fCB7fSxcclxuICAgICAgICAgIHJlZnM6IHRoaXMucmVmTGlzdCxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge307XHJcbiAgICAgICAgaWYgKHR5cGUgPT0gXCJTZWxlY3RcIikge1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24udmFsdWVPcHRpb24gPSB2YWx1ZU9wdGlvbjtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLmRhdGEgPSBkYXRhO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIkRhdGVQaWNrZXJcIiB8fCB0eXBlID09IFwiUmFuZ2VQaWNrZXJcIikge1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24udmFsdWVTdHIgPSB2YWx1ZU9wdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc2VsZkZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJldmVudE9wdGlvblwiLCBcIlV0aWxzXCIsIHByb3BzLm9uQ2hhbmdlKTtcclxuICAgICAgICBzZWxmRnVuYyhldmVudE9wdGlvbiwgVXRpbHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXJGb3JtKGZvcm1zLCBsYWJlbCkge1xyXG4gICAgY29uc3QgbmV3VmFsaWQ6IGFueVtdID0gW107XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Um93IGd1dHRlcj17MjR9PlxyXG4gICAgICAgIHtmb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdFtpdGVtLm5hbWVdID1cclxuICAgICAgICAgICAgICBpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiICYmIGl0ZW0ubmFtZS5zcGxpdChcIixcIikubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICB0aGlzLnJhbmdlckRhdGVbaXRlbS5uYW1lXSA9IGl0ZW0ubmFtZS5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgYWxsb3dDaGFycyA9IGl0ZW0ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICBsZXQgcHJvcHMgPSB7XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLnZhbHVlQ2hhbmdlLmJpbmQoXHJcbiAgICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICAgICAgICBkaWN0TmFtZTogaXRlbS5kaWN0TmFtZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHsgLi4uaXRlbS5wcm9wcyB9XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgaWYgKCFpdGVtLnR5cGUgfHwgaXRlbS50eXBlID09IFwiSW5wdXRcIikge1xyXG4gICAgICAgICAgICBwcm9wcy5hbGxvd0NoYXJzID0gdHJ1ZTsgLy9mb3JtLml0ZW0g5L2/55SoaW5wdXTnu4Tku7ZhbGxvd0NoYXJz5b+F6aG76buY6K6kdHJ1ZSzkuI3nhLbovpPlhaXnibnmrorlrZfnrKbmi7/liLDnmoTlgLzkuI3lr7lcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMuZGF0YVR5cGU7XHJcbiAgICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgICBwcm9wcy5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHByb3BzLnBsYWNlaG9sZGVyID0gXCJcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHx8IGl0ZW0ucmVxdWlyZWQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgbmV3VmFsaWQucHVzaChpdGVtLm5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWQgPSBuZXdWYWxpZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGl0ZW1SZWY6IGFueSA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgICAgICAgICB0aGlzLnJlZkxpc3RbaXRlbS5uYW1lXSA9IGl0ZW1SZWY7XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlICE9PSBcIlVwbG9hZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfVxyXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IGl0ZW0uaGlkZSA/IFwibm9uZVwiIDogXCJibG9ja1wiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgbm9TdHlsZT17aXRlbS5ub1N0eWxlIHx8IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5mb3JtUmVuZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmZvcm1SZW5kZXIocHJvcHMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IGl0ZW1SZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUZvcm1hdC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfVxyXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IGl0ZW0uaGlkZSA/IFwibm9uZVwiIDogXCJibG9ja1wiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdFtpdGVtLm5hbWVdIHx8IFtdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uTGlzdENoYW5nZT17KGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q6IHsgLi4uZmlsZUxpc3QsIFtpdGVtLm5hbWVdOiBsaXN0IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0PXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd1JlbW92ZUljb246IGxhYmVsICE9PSBcIuafpeeci1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpdGVtUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtLnByb3BzPy5jaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgPyBpdGVtLnByb3BzPy5jaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBsYWJlbCAhPT0gXCLmn6XnnItcIiAmJiA8QnV0dG9uPuS4iuS8oOaWh+S7tjwvQnV0dG9uPn1cclxuICAgICAgICAgICAgICAgICAgPC9VcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZvcm1zID0gW10sIHByb3BzID0ge30sIGZvb3RlciA9IHRydWUsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBtb2RhbFByb3BzID0ge1xyXG4gICAgICB0aXRsZTogbGFiZWwsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DYW5jZWw6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICBva0J1dHRvblByb3BzOiB7IGxvYWRpbmc6IGxvYWRpbmcgfSxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgIH0gYXMgYW55O1xyXG5cclxuICAgIGxldCBkcmF3ZXJQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIC8v5aSE55CG6KGo5Y2V5pWw5o2uXHJcbiAgICBmb3Jtcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5ncm91cE5hbWUgJiYgZm9ybUdyb3Vwcy5pbmRleE9mKGl0ZW0uZ3JvdXBOYW1lKSA8IDApIHtcclxuICAgICAgICBmb3JtR3JvdXBzLnB1c2goaXRlbS5ncm91cE5hbWUpO1xyXG4gICAgICB9IGVsc2UgaWYgKCFpdGVtLmdyb3VwTmFtZSkge1xyXG4gICAgICAgIG90aGVyR3J1cHMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoZm9ybUdyb3Vwcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvcm1Hcm91cHMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgZ3JvdXBGb3JtcyA9IFtdIGFzIGFueTtcclxuICAgICAgICBmb3Jtcy5tYXAoKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm0uZ3JvdXBOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgZ3JvdXBGb3Jtcy5wdXNoKGZvcm0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW2l0ZW1dID0gZ3JvdXBGb3JtcztcclxuICAgICAgfSk7XHJcbiAgICAgIG5ld0Zvcm1zT2JqW1wibm9Hcm91cE5hbWVcIl0gPSBvdGhlckdydXBzO1xyXG4gICAgfVxyXG4gICAgLy/oh6rlrprkuYnmjInpkq5cclxuICAgIGxldCBzZWxmQnV0dG9ucyA9IFtdIGFzIGFueTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e3RoaXMucHJvcHMuZm9ybVR5cGV9XHJcbiAgICAgICAgbW9kYWxQcm9wcz17eyAuLi5tb2RhbFByb3BzIH19XHJcbiAgICAgICAgZHJhd2VyUHJvcHM9e3sgLi4uZHJhd2VyUHJvcHMgfX1cclxuICAgICAgICBsYWJlbENvbD17eyBmbGV4OiBcIjEwMHB4XCIgfX1cclxuICAgICAgICB3cmFwcGVyQ29sPXt7IGZsZXg6IFwiMTV2d1wiIH19XHJcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2U9eyhjaGFuZ2VkVmFsdWVzLCBhbGxWYWx1ZXMpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgb25Gb3JtQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgb25Gb3JtQ2hhbmdlICYmIG9uRm9ybUNoYW5nZShjaGFuZ2VkVmFsdWVzLCBhbGxWYWx1ZXMpO1xyXG4gICAgICAgIH19XHJcbiAgICAgICAgY2hhbmdlVmFsaWQ9e3RoaXMucHJvcHMuY2hhbmdlVmFsaWR9XHJcbiAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYWdlXCI+XHJcbiAgICAgICAgICB7Zm9ybUdyb3Vwcy5sZW5ndGggPT0gMCA/IChcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5mb3JtVHlwZSA/IChcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShmb3JtcywgbGFiZWwpfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhuZXdGb3Jtc09iaikubWFwKChrZXkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBrZXk9e2tleX0gY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7a2V5ICE9IFwibm9Hcm91cE5hbWVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS10aXRsZVwiPntrZXl9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckZvcm0obmV3Rm9ybXNPYmpba2V5XSwgbGFiZWwpfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgeyF0aGlzLnByb3BzLmZvcm1UeXBlICYmIGZvb3RlciA9PSB0cnVlICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgICAgXCJuc2MtZm9ybS1wYWdlLWZvb3RlclwiLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5mb290ZXJDbGFzc05hbWVcclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOWPlua2iFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQoKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5L+d5a2YXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAge3NlbGZCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgeyF0aGlzLnByb3BzLmZvcm1UeXBlICYmIGZvb3RlciAhPT0gdHJ1ZSAmJiB0aGlzLnByb3BzLmZvb3Rlcn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Gb3JtPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvcm1QYWdlO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFtQixPQUFPO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsU0FBa0JDLE9BQU8sUUFBUSxhQUFhO0FBQzlDLE9BQU9DLE9BQU8sTUFBTSxvQkFBb0I7QUFDeEMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLFNBQVNDLFVBQVUsUUFBUSxtQkFBbUI7QUFDOUMsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxxQkFBcUI7QUFDNUIsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBd0I1QixNQUFNQyxRQUFRLFNBQVNaLGFBQWEsQ0FBcUI7RUFBQWEsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSwrQkFDN0NoQixLQUFLLENBQUNpQixTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLGdCQUN4QjtNQUNORSxPQUFPLEVBQUUsS0FBSztNQUNkQyxLQUFLLEVBQUUsRUFBRTtNQUNUQyxVQUFVLEVBQUUsSUFBSTtNQUNoQkMsS0FBSyxFQUFFLENBQUMsQ0FBUTtNQUNoQkMsU0FBUyxFQUFFLENBQUMsQ0FBUTtNQUNwQkMsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0lBQUFQLGVBQUEsZ0JBQ1ksRUFBRTtJQUFBQSxlQUFBLDBCQUNHLENBQUMsQ0FBQztJQUFBQSxlQUFBLHFCQUNQLENBQUMsQ0FBQztJQUFBQSxlQUFBLHFCQUNGLEVBQUU7SUFBQUEsZUFBQSxxQkFDRixDQUFDLENBQUM7SUFBQUEsZUFBQSxrQkFDTCxDQUFDLENBQUM7SUFBQUEsZUFBQSxxQkFDQyxJQUFJO0VBQUE7RUFDakI7RUFDQVEsSUFBSUEsQ0FBQ0MsUUFBYyxFQUFzQztJQUFBLElBQXBDQyxVQUFVLEdBQUFYLFNBQUEsQ0FBQVksTUFBQSxRQUFBWixTQUFBLFFBQUFhLFNBQUEsR0FBQWIsU0FBQSxNQUFHLEtBQUs7SUFBQSxJQUFFYyxRQUFjLEdBQUFkLFNBQUEsQ0FBQVksTUFBQSxPQUFBWixTQUFBLE1BQUFhLFNBQUE7SUFDckQsSUFBSVQsS0FBSyxHQUFHLElBQUk7SUFDaEIsSUFBSU0sUUFBUSxJQUFJQyxVQUFVLElBQUksUUFBUSxFQUFFO01BQ3RDUCxLQUFLLEdBQUcsSUFBSTtJQUNkLENBQUMsTUFBTSxJQUFJTSxRQUFRLEtBQUtDLFVBQVUsSUFBSSxRQUFRLElBQUlBLFVBQVUsSUFBSSxRQUFRLENBQUMsRUFBRTtNQUN6RVAsS0FBSyxHQUFHLElBQUk7SUFDZDtJQUNBLElBQUlNLFFBQVEsRUFBRTtNQUNaLElBQUksQ0FBQ0ssUUFBUSxDQUNYO1FBQ0VYLEtBQUssRUFBRUEsS0FBSztRQUNaRSxLQUFLLEVBQUVJO01BQ1QsQ0FBQyxFQUNELE1BQU07UUFBQSxJQUFBTSxxQkFBQTtRQUNKLElBQUlWLEtBQUssR0FBRyxJQUFJLENBQUNXLFlBQVksQ0FBQ1AsUUFBUSxFQUFFTixLQUFLLENBQUM7UUFDOUM7UUFDQSxDQUFBWSxxQkFBQSxPQUFJLENBQUNFLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBSCxxQkFBQSxlQUFwQkEscUJBQUEsQ0FBc0JJLFFBQVEsQ0FBQ2QsS0FBSyxFQUFFO1VBQ3BDZSxXQUFXLEVBQUVBLENBQUEsS0FBTTtZQUNqQlAsUUFBUSxJQUFJQSxRQUFRLENBQUMsQ0FBQztVQUN4QjtRQUNGLENBQUMsQ0FBQztNQUNKLENBQ0YsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQ0MsUUFBUSxDQUNYO1FBQ0VYLEtBQUssRUFBRUE7TUFDVCxDQUFDLEVBQ0QsTUFBTTtRQUFBLElBQUFrQixzQkFBQTtRQUNKLENBQUFBLHNCQUFBLE9BQUksQ0FBQ0osT0FBTyxDQUFDQyxPQUFPLGNBQUFHLHNCQUFBLGVBQXBCQSxzQkFBQSxDQUFzQkYsUUFBUSxDQUFDLElBQUksQ0FBQ0csS0FBSyxDQUFDQyxZQUFZLEVBQUU7VUFDdERILFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1lBQ2pCUCxRQUFRLElBQUlBLFFBQVEsQ0FBQyxDQUFDO1VBQ3hCO1FBQ0YsQ0FBQyxDQUFDO01BQ0osQ0FDRixDQUFDO0lBQ0g7RUFDRjtFQUNBVyxJQUFJQSxDQUFBLEVBQWM7SUFBQSxJQUFBQyxzQkFBQTtJQUFBLElBQWJELElBQUksR0FBQXpCLFNBQUEsQ0FBQVksTUFBQSxRQUFBWixTQUFBLFFBQUFhLFNBQUEsR0FBQWIsU0FBQSxNQUFHLElBQUk7SUFDZCxNQUFNO01BQUUyQjtJQUFXLENBQUMsR0FBRyxJQUFJLENBQUNKLEtBQUs7SUFDakMsSUFBSUksVUFBVSxFQUFFO01BQ2RBLFVBQVUsSUFBSUEsVUFBVSxDQUFDLENBQUM7TUFDMUI7SUFDRjtJQUNBLElBQUksQ0FBQ1osUUFBUSxDQUFDO01BQUVaLE9BQU8sRUFBRSxLQUFLO01BQUVLLFFBQVEsRUFBRSxDQUFDO0lBQUUsQ0FBQyxDQUFDO0lBQy9DaUIsSUFBSSxNQUFBQyxzQkFBQSxHQUFJLElBQUksQ0FBQ1IsT0FBTyxDQUFDQyxPQUFPLGNBQUFPLHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBc0JFLFFBQVEsQ0FBQyxDQUFDO0VBQzFDO0VBQ0FBLFFBQVFBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ1QsSUFBSSxDQUFDZCxRQUFRLENBQUM7TUFBRVosT0FBTyxFQUFFLEtBQUs7TUFBRUssUUFBUSxFQUFFLENBQUM7SUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQXFCLHNCQUFBLE9BQUksQ0FBQ1gsT0FBTyxDQUFDQyxPQUFPLGNBQUFVLHNCQUFBLGVBQXBCQSxzQkFBQSxDQUFzQkQsUUFBUSxDQUFDLENBQUM7RUFDbEM7RUFDQVIsUUFBUUEsQ0FBQ1YsUUFBYyxFQUFzQztJQUFBLElBQXBDQyxVQUFVLEdBQUFYLFNBQUEsQ0FBQVksTUFBQSxRQUFBWixTQUFBLFFBQUFhLFNBQUEsR0FBQWIsU0FBQSxNQUFHLEtBQUs7SUFBQSxJQUFFYyxRQUFjLEdBQUFkLFNBQUEsQ0FBQVksTUFBQSxPQUFBWixTQUFBLE1BQUFhLFNBQUE7SUFDekQsSUFBSSxDQUFDSixJQUFJLENBQUNDLFFBQVEsRUFBRUMsVUFBVSxFQUFFRyxRQUFRLENBQUM7RUFDM0M7RUFDQWdCLFVBQVVBLENBQUMzQixPQUFnQixFQUFFO0lBQzNCLElBQUksQ0FBQ1ksUUFBUSxDQUFDO01BQUVaLE9BQU8sRUFBRUE7SUFBUSxDQUFDLENBQUM7RUFDckM7RUFDQTRCLFlBQVlBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ2IsTUFBTTtNQUFFNUIsS0FBSztNQUFFRSxLQUFLO01BQUVDLFNBQVM7TUFBRUM7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDeUIsS0FBSztJQUN4RCxNQUFNQyxTQUFTLElBQUFGLHNCQUFBLEdBQUcsSUFBSSxDQUFDZCxPQUFPLENBQUNDLE9BQU8sY0FBQWEsc0JBQUEsdUJBQXBCQSxzQkFBQSxDQUFzQkcsY0FBYyxDQUFDLENBQUM7SUFDeEQsSUFBSUMsSUFBSSxHQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FBUUgsU0FBUyxHQUFLM0IsU0FBUyxDQUFFO0lBQ3pDLElBQUksSUFBSSxDQUFDK0IsVUFBVSxDQUFDMUIsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUM5QixJQUFJMkIsV0FBVyxHQUFHLENBQUMsQ0FBUTtNQUMzQixJQUFJLENBQUNELFVBQVUsQ0FBQ0UsR0FBRyxDQUFFQyxJQUFJLElBQUs7UUFDNUIsSUFBSWpDLFFBQVEsQ0FBQ2lDLElBQUksQ0FBQyxDQUFDN0IsTUFBTSxJQUFJLENBQUMsRUFBRTtVQUM5QjJCLFdBQVcsQ0FBQ0UsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUMxQixDQUFDLE1BQU07VUFDTCxJQUFJLENBQUNQLFNBQVMsQ0FBQ08sSUFBSSxDQUFDLEVBQUU7WUFDcEJGLFdBQVcsQ0FBQ0UsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDQyxXQUFXLENBQUNsQyxRQUFRLENBQUNpQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7VUFDNUQ7UUFDRjtNQUNGLENBQUMsQ0FBQztNQUNGTCxJQUFJLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUFRRCxJQUFJLEdBQUtHLFdBQVcsQ0FBRTtJQUNwQztJQUNBLElBQUksQ0FBQyxJQUFJLENBQUNJLFVBQVUsRUFBRTtNQUNwQnRELE9BQU8sQ0FBQ3VELEtBQUssQ0FBQyxjQUFjLENBQUM7TUFDN0I7SUFDRjtJQUNBLElBQUksQ0FBQ3BELFVBQVUsQ0FBQyxJQUFJLENBQUNxRCxlQUFlLENBQUMsRUFBRTtNQUNyQyxLQUFLLElBQUlDLEdBQUcsSUFBSSxJQUFJLENBQUNELGVBQWUsRUFBRTtRQUNwQyxJQUFJRSxPQUFPLEdBQUdYLElBQUksQ0FBQ1UsR0FBRyxDQUFDO1FBQ3ZCLElBQUlDLE9BQU8sRUFBRTtVQUNYLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtZQUMxQlgsSUFBSSxDQUFDVSxHQUFHLENBQUMsR0FBRyxDQUNWckQsS0FBSyxDQUFDc0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNHLE1BQU0sQ0FBQyxJQUFJLENBQUNMLGVBQWUsQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFDbkRyRCxLQUFLLENBQUNzRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csTUFBTSxDQUFDLElBQUksQ0FBQ0wsZUFBZSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxDQUNwRDtZQUNELElBQUksSUFBSSxDQUFDSyxVQUFVLENBQUNMLEdBQUcsQ0FBQyxFQUFFO2NBQ3hCLElBQUk7Z0JBQ0ZWLElBQUksQ0FBQyxJQUFJLENBQUNlLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR3JELEtBQUssQ0FBQ3NELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxNQUFNLENBQ3RELElBQUksQ0FBQ0UsVUFBVSxDQUFDTixHQUFHLENBQ3JCLENBQUM7Z0JBQ0RWLElBQUksQ0FBQyxJQUFJLENBQUNlLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR3JELEtBQUssQ0FBQ3NELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxNQUFNLENBQ3RELElBQUksQ0FBQ0UsVUFBVSxDQUFDTixHQUFHLENBQ3JCLENBQUM7Z0JBQ0QsT0FBT1YsSUFBSSxDQUFDVSxHQUFHLENBQUM7Y0FDbEIsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRSxDQUFDO1lBQ2Y7VUFDRixDQUFDLE1BQU07WUFDTGpCLElBQUksQ0FBQ1UsR0FBRyxDQUFDLEdBQUdyRCxLQUFLLENBQUNzRCxPQUFPLENBQUMsQ0FBQ0csTUFBTSxDQUFDLElBQUksQ0FBQ0wsZUFBZSxDQUFDQyxHQUFHLENBQUMsQ0FBQztVQUM5RDtRQUNGO01BQ0Y7SUFDRjtJQUNBLElBQUkxQyxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCZ0MsSUFBSSxHQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FBUUQsSUFBSTtRQUFFa0IsRUFBRSxFQUFFaEQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVnRDtNQUFFLEVBQUU7SUFDbkM7SUFDQSxPQUFPbEIsSUFBSTtFQUNiO0VBQ0FuQixZQUFZQSxDQUFDWCxLQUFLLEVBQUVpRCxJQUFJLEVBQUU7SUFDeEIsSUFBSUMsTUFBTSxHQUFHOUQsTUFBTSxDQUFDK0QsU0FBUyxDQUFDbkQsS0FBSyxDQUFDO0lBQ3BDLElBQUksSUFBSSxDQUFDZ0MsVUFBVSxDQUFDMUIsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUM5QixJQUFJSixRQUFRLEdBQUcsQ0FBQyxDQUFRO01BQ3hCLElBQUksQ0FBQzhCLFVBQVUsQ0FBQ0UsR0FBRyxDQUFFQyxJQUFJLElBQUs7UUFDNUIsSUFBSU0sT0FBTyxHQUFHUyxNQUFNLENBQUNmLElBQUksQ0FBQztRQUMxQixJQUFJTSxPQUFPLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtVQUNyQ3ZDLFFBQVEsQ0FBQ2lDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDSyxPQUFPLElBQUksRUFBRSxFQUFFUSxJQUFJLENBQUM7UUFDeEQsQ0FBQyxNQUFNO1VBQ0wvQyxRQUFRLENBQUNpQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3JCO01BQ0YsQ0FBQyxDQUFDO01BQ0YsSUFBSSxDQUFDMUIsUUFBUSxDQUFDO1FBQUVQLFFBQVEsRUFBRUE7TUFBUyxDQUFDLENBQUM7SUFDdkM7SUFDQTtJQUNBLElBQUksQ0FBQ2hCLFVBQVUsQ0FBQyxJQUFJLENBQUM0RCxVQUFVLENBQUMsRUFBRTtNQUNoQyxLQUFLLElBQUlOLEdBQUcsSUFBSSxJQUFJLENBQUNNLFVBQVUsRUFBRTtRQUMvQixJQUFJTCxPQUFPLEdBQUdTLE1BQU0sQ0FBQ1YsR0FBRyxDQUFDO1FBQ3pCLElBQUlDLE9BQU8sRUFBRTtVQUNYLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtZQUMxQlMsTUFBTSxDQUFDVixHQUFHLENBQUMsR0FBRyxDQUNackQsS0FBSyxDQUFDc0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0ssVUFBVSxDQUFDTixHQUFHLENBQUMsQ0FBQyxFQUN2Q3JELEtBQUssQ0FBQ3NELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNLLFVBQVUsQ0FBQ04sR0FBRyxDQUFDLENBQUMsQ0FDeEM7VUFDSCxDQUFDLE1BQU07WUFDTFUsTUFBTSxDQUFDVixHQUFHLENBQUMsR0FBR3JELEtBQUssQ0FBQ3NELE9BQU8sRUFBRSxJQUFJLENBQUNLLFVBQVUsQ0FBQ04sR0FBRyxDQUFDLENBQUM7VUFDcEQ7UUFDRjtNQUNGO0lBQ0Y7SUFDQSxPQUFPVSxNQUFNO0VBQ2Y7RUFDQUUsWUFBWUEsQ0FBQ3BELEtBQUssRUFBRWlELElBQUksRUFBRTtJQUFBLElBQUFJLHNCQUFBO0lBQ3hCLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUMzQyxZQUFZLENBQUNYLEtBQUssRUFBRWlELElBQUksQ0FBQztJQUMvQyxDQUFBSSxzQkFBQSxPQUFJLENBQUN6QyxPQUFPLENBQUNDLE9BQU8sY0FBQXdDLHNCQUFBLGVBQXBCQSxzQkFBQSxDQUFzQkUsY0FBYyxDQUFDRCxRQUFRLENBQUM7RUFDaEQ7RUFDQUUsUUFBUUEsQ0FBQ0MsUUFBUSxFQUFFM0QsS0FBSyxFQUFFO0lBQUEsSUFBQTRELHNCQUFBO0lBQ3hCLE1BQU07TUFDSkMsU0FBUztNQUNUQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO01BQ2pCcEQsUUFBUTtNQUNScUQsYUFBYSxHQUFHLENBQUMsQ0FBQztNQUNsQkMsYUFBYSxHQUFHLENBQUM7SUFDbkIsQ0FBQyxHQUFHLElBQUksQ0FBQzdDLEtBQUs7SUFDZCxNQUFNO01BQUU4QyxNQUFNO01BQUVDLFNBQVM7TUFBRUMsU0FBUztNQUFFQztJQUFhLENBQUMsR0FBR0wsYUFBYTtJQUNwRSxJQUFJTSxHQUFHLEdBQUcsRUFBRTtJQUNaLElBQUlDLE1BQVcsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSXRFLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJxRSxHQUFHLEdBQUdKLE1BQU0sR0FBR0EsTUFBTSxHQUFHSixTQUFTO01BQ2pDLElBQUlNLFNBQVMsSUFBSSxPQUFPQSxTQUFTLElBQUksUUFBUSxFQUFFO1FBQzdDLE1BQU1JLEtBQUssR0FBRyxJQUFJLENBQUNwRCxLQUFLLENBQUNvRCxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUlDLElBQUksR0FBRyxJQUFJQyxRQUFRLENBQUMsT0FBTyxFQUFFTixTQUFTLENBQUM7UUFDM0MsSUFBSU8sWUFBWSxHQUFHRixJQUFJLENBQUNELEtBQUssQ0FBQztRQUM5QkQsTUFBTSxHQUFHSSxZQUFZO01BQ3ZCLENBQUMsTUFBTTtRQUNMSixNQUFNLEdBQUdILFNBQVMsR0FBR0EsU0FBUyxHQUFHTCxZQUFZO01BQy9DO0lBQ0YsQ0FBQyxNQUFNLElBQUk5RCxLQUFLLElBQUksSUFBSSxFQUFFO01BQ3hCcUUsR0FBRyxHQUFHSCxTQUFTLEdBQUdBLFNBQVMsR0FBR0wsU0FBUztNQUN2QyxJQUFJTyxZQUFZLElBQUksT0FBT0EsWUFBWSxJQUFJLFFBQVEsRUFBRTtRQUNuRCxNQUFNRyxLQUFLLEdBQUcsSUFBSSxDQUFDcEQsS0FBSyxDQUFDb0QsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJQyxJQUFJLEdBQUcsSUFBSUMsUUFBUSxDQUFDLE9BQU8sRUFBRUwsWUFBWSxDQUFDO1FBQzlDLElBQUlNLFlBQVksR0FBR0YsSUFBSSxDQUFDRCxLQUFLLENBQUM7UUFDOUJELE1BQU0sR0FBR0ksWUFBWTtNQUN2QixDQUFDLE1BQU07UUFDTEosTUFBTSxHQUFHRixZQUFZLEdBQUdBLFlBQVksR0FBR04sWUFBWTtNQUNyRDtJQUNGO0lBQ0EsSUFBSSxDQUFDTyxHQUFHLEVBQUU7TUFDUk0sT0FBTyxDQUFDbkMsS0FBSyxDQUFDLFlBQVksQ0FBQztNQUMzQjtJQUNGO0lBQ0EsTUFBTTtRQUFFUixJQUFJLEdBQUcsQ0FBQztNQUFrQixDQUFDLEdBQUdzQyxNQUFNO01BQXRCTSxXQUFXLEdBQUFDLHdCQUFBLENBQUtQLE1BQU0sRUFBQVEsU0FBQTtJQUM1QyxDQUFBbEIsc0JBQUEsT0FBSSxDQUFDOUMsT0FBTyxDQUFDQyxPQUFPLGNBQUE2QyxzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0JtQixRQUFRLENBQzVCVixHQUFHLEVBQUFwQyxhQUFBLENBQUFBLGFBQUE7TUFFREQsSUFBSSxFQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FBTzBCLFFBQVEsR0FBSzNCLElBQUksQ0FBRTtNQUM5QmdELFdBQVcsRUFBRWhGLEtBQUssSUFBSTtJQUFJLEdBQ3ZCZ0UsYUFBYSxHQUNiWSxXQUFXLEdBRWZLLEdBQVEsSUFBSztNQUNaLE1BQU07UUFBRUM7TUFBSyxDQUFDLEdBQUdELEdBQUc7TUFDcEIsSUFBSSxDQUFDdEUsUUFBUSxDQUFDO1FBQUVaLE9BQU8sRUFBRTtNQUFNLENBQUMsQ0FBQztNQUNqQyxJQUFJbUYsSUFBSSxLQUFLLEdBQUcsRUFBRTtRQUNoQmpHLE9BQU8sQ0FBQ2tHLE9BQU8sQ0FBQ25GLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDcUIsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNmWCxRQUFRLElBQUlBLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCO01BQ0Y7TUFDQSxJQUFJLENBQUNXLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbEIsQ0FDRixDQUFDO0VBQ0g7RUFDQWlCLFdBQVdBLENBQUNOLElBQUksRUFBZ0I7SUFBQSxJQUFkaEMsS0FBSyxHQUFBSixTQUFBLENBQUFZLE1BQUEsUUFBQVosU0FBQSxRQUFBYSxTQUFBLEdBQUFiLFNBQUEsTUFBRyxJQUFJO0lBQzVCLElBQUksQ0FBQzJDLFVBQVUsR0FBRyxJQUFJO0lBQ3RCLElBQUluQyxRQUFRLEdBQUcsRUFBUztJQUN4QixJQUFJNEIsSUFBSSxJQUFJQSxJQUFJLENBQUN4QixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQzNCd0IsSUFBSSxDQUFDSSxHQUFHLENBQUVDLElBQUksSUFBSztRQUNqQixJQUFJK0MsR0FBRyxHQUFHO1VBQ1JDLE1BQU0sRUFBRWhELElBQUksQ0FBQ2dELE1BQU07VUFDbkJDLFFBQVEsRUFBRWpELElBQUksQ0FBQ2lEO1FBQ2pCLENBQVE7UUFDUixJQUFJdEYsS0FBSyxJQUFJLElBQUksRUFBRTtVQUNqQm9GLEdBQUcsQ0FBQ0csTUFBTSxHQUFHLE1BQU07UUFDckI7UUFDQSxJQUFJdkYsS0FBSyxLQUFLLElBQUksSUFBSXFDLElBQUksQ0FBQ2tELE1BQU0sS0FBSyxNQUFNLEVBQUU7VUFDNUMsSUFBSSxDQUFDaEQsVUFBVSxHQUFHLEtBQUs7UUFDekI7UUFDQW5DLFFBQVEsQ0FBQ29GLElBQUksQ0FBQ0osR0FBRyxDQUFDO01BQ3BCLENBQUMsQ0FBQztJQUNKO0lBQ0EsT0FBT2hGLFFBQVE7RUFDakI7RUFFQTJFLFFBQVFBLENBQUEsRUFBRztJQUFBLElBQUFVLHNCQUFBLEVBQUFDLHNCQUFBO0lBQ1QsTUFBTTtNQUFFWDtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUM1RCxLQUFLO0lBQy9CLE1BQU07TUFBRW5CLEtBQUs7TUFBRUUsS0FBSztNQUFFQyxTQUFTO01BQUVDO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ3lCLEtBQUs7SUFDeEQsTUFBTUMsU0FBUyxJQUFBMkQsc0JBQUEsR0FBRyxJQUFJLENBQUMzRSxPQUFPLENBQUNDLE9BQU8sY0FBQTBFLHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBc0IxRCxjQUFjLENBQUMsQ0FBQztJQUN4RCxJQUFJNEQsS0FBSyxHQUFHLElBQUksQ0FBQ0EsS0FBSztJQUN0QixDQUFBRCxzQkFBQSxPQUFJLENBQUM1RSxPQUFPLENBQUNDLE9BQU8sY0FBQTJFLHNCQUFBLGVBQXBCQSxzQkFBQSxDQUNJRSxjQUFjLENBQUNELEtBQUssQ0FBQyxDQUN0QkUsSUFBSSxDQUFDLE1BQU07TUFDVixJQUFJN0QsSUFBSSxHQUFHLElBQUksQ0FBQ0wsWUFBWSxDQUFDLENBQUM7TUFDOUI7TUFDQTtNQUNBO01BQ0E7TUFDQSxJQUFJLENBQUNoQixRQUFRLENBQUM7UUFBRVosT0FBTyxFQUFFO01BQUssQ0FBQyxDQUFDO01BQ2hDLElBQUlnRixRQUFRLEVBQUU7UUFDWkEsUUFBUSxJQUFJQSxRQUFRLENBQUMvQyxJQUFJLEVBQUVoQyxLQUFLLENBQUM7UUFDakM7TUFDRjtNQUNBLElBQUksQ0FBQzBELFFBQVEsQ0FBQzFCLElBQUksRUFBRWhDLEtBQUssQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FDRDhGLEtBQUssQ0FBRUMsU0FBYyxJQUFLLENBQUMsQ0FBQyxDQUFDO0VBQ2xDO0VBQ0FDLFdBQVdBLENBQUFDLElBQUEsRUFBcUI5RSxLQUFLLEVBQUVqQixLQUFLLEVBQUVnRyxXQUFXLEVBQUVsRSxJQUFJLEVBQUU7SUFBQSxJQUFyRDtNQUFFbUIsSUFBSTtNQUFFZ0Q7SUFBUyxDQUFDLEdBQUFGLElBQUE7SUFDNUIsSUFBSUMsV0FBVyxFQUFFO01BQ2YsSUFBSUMsUUFBUSxFQUFFO1FBQ1osTUFBTTtVQUFFaEc7UUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDMEIsS0FBSztRQUNoQyxNQUFNdUUsUUFBUSxHQUFBbkUsYUFBQSxLQUFROUIsU0FBUyxDQUFTO1FBQ3hDaUcsUUFBUSxDQUFDRCxRQUFRLENBQUMsR0FBR0QsV0FBVyxDQUFDbEcsS0FBSztRQUN0QyxJQUFJLENBQUNXLFFBQVEsQ0FBQztVQUNaUixTQUFTLEVBQUVpRztRQUNiLENBQUMsQ0FBQztNQUNKO0lBQ0Y7SUFDQSxJQUFJakYsS0FBSyxDQUFDa0YsUUFBUSxFQUFFO01BQ2xCLElBQUksT0FBT2xGLEtBQUssQ0FBQ2tGLFFBQVEsSUFBSSxVQUFVLEVBQUU7UUFDdkNsRixLQUFLLENBQUNrRixRQUFRLENBQUNuRyxLQUFLLEVBQUVnRyxXQUFXLEVBQUVsRSxJQUFJLENBQUM7TUFDMUMsQ0FBQyxNQUFNLElBQUksT0FBT2IsS0FBSyxDQUFDa0YsUUFBUSxJQUFJLFFBQVEsRUFBRTtRQUM1QyxNQUFNQyxXQUFXLEdBQUc7VUFDbEJwRyxLQUFLO1VBQ0w4QixJQUFJO1VBQ0psQixPQUFPLEVBQUUsSUFBSSxDQUFDQSxPQUFPO1VBQ3JCeUYsS0FBSyxFQUFFLElBQUksQ0FBQ3BGLEtBQUssQ0FBQ29GLEtBQUssSUFBSSxDQUFDLENBQUM7VUFDN0JDLElBQUksRUFBRSxJQUFJLENBQUNDO1FBQ2IsQ0FBUTtRQUNSLE1BQU1sQyxLQUFLLEdBQUcsSUFBSSxDQUFDcEQsS0FBSyxDQUFDb0QsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJcEIsSUFBSSxJQUFJLFFBQVEsRUFBRTtVQUNwQm1ELFdBQVcsQ0FBQ0osV0FBVyxHQUFHQSxXQUFXO1VBQ3JDSSxXQUFXLENBQUN0RSxJQUFJLEdBQUdBLElBQUk7UUFDekIsQ0FBQyxNQUFNLElBQUltQixJQUFJLElBQUksWUFBWSxJQUFJQSxJQUFJLElBQUksYUFBYSxFQUFFO1VBQ3hEbUQsV0FBVyxDQUFDSSxRQUFRLEdBQUdSLFdBQVc7UUFDcEM7UUFDQSxNQUFNUyxRQUFRLEdBQUcsSUFBSWxDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFdEQsS0FBSyxDQUFDa0YsUUFBUSxDQUFDO1FBQ3JFTSxRQUFRLENBQUNMLFdBQVcsRUFBRS9CLEtBQUssQ0FBQztNQUM5QjtJQUNGO0VBQ0Y7RUFFQXFDLFVBQVVBLENBQUNDLEtBQUssRUFBRTdHLEtBQUssRUFBRTtJQUN2QixNQUFNOEcsUUFBZSxHQUFHLEVBQUU7SUFDMUIsb0JBQ0VqSSxLQUFBLENBQUFrSSxhQUFBLENBQUM1SCxHQUFHO01BQUM2SCxNQUFNLEVBQUU7SUFBRyxHQUNiSCxLQUFLLENBQUN6RSxHQUFHLENBQUMsQ0FBQ0MsSUFBUyxFQUFFNEUsS0FBYSxLQUFLO01BQUEsSUFBQUMsV0FBQTtNQUN2QyxNQUFNQyxTQUFTLEdBQUc5RSxJQUFJLENBQUNsQixLQUFLLElBQUksQ0FBQyxDQUFDO01BQ2xDLElBQUlnRyxTQUFTLENBQUNyRSxNQUFNLElBQUlxRSxTQUFTLENBQUNDLFdBQVcsRUFBRTtRQUM3QyxJQUFJLENBQUMzRSxlQUFlLENBQUNKLElBQUksQ0FBQ2dGLElBQUksQ0FBQyxHQUM3QkYsU0FBUyxDQUFDckUsTUFBTSxJQUFJcUUsU0FBUyxDQUFDQyxXQUFXO01BQzdDO01BQ0EsSUFBSUQsU0FBUyxDQUFDckUsTUFBTSxFQUFFO1FBQ3BCLElBQUksQ0FBQ0UsVUFBVSxDQUFDWCxJQUFJLENBQUNnRixJQUFJLENBQUMsR0FBR0YsU0FBUyxDQUFDckUsTUFBTTtNQUMvQztNQUNBLElBQUlULElBQUksQ0FBQ2MsSUFBSSxJQUFJLGFBQWEsSUFBSWQsSUFBSSxDQUFDZ0YsSUFBSSxDQUFDQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM5RyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pFLElBQUksQ0FBQ3VDLFVBQVUsQ0FBQ1YsSUFBSSxDQUFDZ0YsSUFBSSxDQUFDLEdBQUdoRixJQUFJLENBQUNnRixJQUFJLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUM7TUFDbkQ7TUFDQSxJQUFJQyxVQUFVLEdBQUcsRUFBQUwsV0FBQSxHQUFBN0UsSUFBSSxDQUFDbEIsS0FBSyxjQUFBK0YsV0FBQSx1QkFBVkEsV0FBQSxDQUFZSyxVQUFVLEtBQUksS0FBSztNQUNoRCxJQUFJcEcsS0FBSyxHQUFBYyxhQUFBLENBQUFBLGFBQUE7UUFDUHVGLFdBQVcsdUJBQUFDLE1BQUEsQ0FBUXBGLElBQUksQ0FBQ3JDLEtBQUs7TUFBRSxHQUM1QnFDLElBQUksQ0FBQ2xCLEtBQUs7UUFDYmtGLFFBQVEsRUFBRSxJQUFJLENBQUNMLFdBQVcsQ0FBQzBCLElBQUksQ0FDN0IsSUFBSSxFQUNKO1VBQ0V2RSxJQUFJLEVBQUVkLElBQUksQ0FBQ2MsSUFBSTtVQUNmZ0QsUUFBUSxFQUFFOUQsSUFBSSxDQUFDOEQ7UUFDakIsQ0FBQyxFQUFBbEUsYUFBQSxLQUNJSSxJQUFJLENBQUNsQixLQUFLLENBQ2pCO01BQUMsRUFDRjtNQUNELElBQUksQ0FBQ2tCLElBQUksQ0FBQ2MsSUFBSSxJQUFJZCxJQUFJLENBQUNjLElBQUksSUFBSSxPQUFPLEVBQUU7UUFDdENoQyxLQUFLLENBQUNvRyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUM7TUFDM0I7TUFDQSxPQUFPcEcsS0FBSyxDQUFDaUcsV0FBVztNQUN4QixPQUFPakcsS0FBSyxDQUFDMkIsTUFBTTtNQUNuQixPQUFPM0IsS0FBSyxDQUFDd0csUUFBUTtNQUNyQixJQUFJM0gsS0FBSyxJQUFJLElBQUksRUFBRTtRQUNqQm1CLEtBQUssQ0FBQ3lHLFFBQVEsR0FBRyxJQUFJO1FBQ3JCekcsS0FBSyxDQUFDcUcsV0FBVyxHQUFHLEVBQUU7TUFDeEI7TUFDQSxJQUFLbkYsSUFBSSxDQUFDd0YsS0FBSyxJQUFJeEYsSUFBSSxDQUFDd0YsS0FBSyxDQUFDckgsTUFBTSxHQUFHLENBQUMsSUFBSzZCLElBQUksQ0FBQ3lGLFFBQVEsS0FBSyxJQUFJLEVBQUU7UUFDbkVoQixRQUFRLENBQUN0QixJQUFJLENBQUNuRCxJQUFJLENBQUNnRixJQUFJLENBQUM7TUFDMUI7TUFDQSxJQUFJSixLQUFLLEdBQUcsQ0FBQyxLQUFLSixLQUFLLENBQUNyRyxNQUFNLEVBQUU7UUFDOUIsSUFBSSxDQUFDbUYsS0FBSyxHQUFHbUIsUUFBUTtNQUN2QjtNQUNBLE1BQU1pQixPQUFZLGdCQUFHbEosS0FBSyxDQUFDaUIsU0FBUyxDQUFNLENBQUM7TUFDM0MsSUFBSSxDQUFDMkcsT0FBTyxDQUFDcEUsSUFBSSxDQUFDZ0YsSUFBSSxDQUFDLEdBQUdVLE9BQU87TUFDakMsSUFBSTFGLElBQUksQ0FBQ2MsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUFBLElBQUE2RSxZQUFBO1FBQzFCLG9CQUNFbkosS0FBQSxDQUFBa0ksYUFBQSxDQUFDN0gsR0FBRztVQUNGK0ksSUFBSSxFQUFFNUYsSUFBSSxDQUFDNEYsSUFBSSxJQUFJLEVBQUc7VUFDdEJ2RixHQUFHLEVBQUV1RSxLQUFNO1VBQ1hpQixLQUFLLEVBQUU7WUFBRUMsT0FBTyxFQUFFOUYsSUFBSSxDQUFDaEIsSUFBSSxHQUFHLE1BQU0sR0FBRztVQUFRO1FBQUUsZ0JBRWpEeEMsS0FBQSxDQUFBa0ksYUFBQSxDQUFDaEksSUFBSSxDQUFDcUosSUFBSTtVQUNScEksS0FBSyxFQUFFcUMsSUFBSSxDQUFDckMsS0FBTTtVQUNsQnFILElBQUksRUFBRWhGLElBQUksQ0FBQ2dGLElBQUs7VUFDaEJRLEtBQUssRUFBRXhGLElBQUksQ0FBQ3dGLEtBQU07VUFDbEJOLFVBQVUsRUFBRUEsVUFBVztVQUN2QmMsYUFBYSxFQUFFaEcsSUFBSSxDQUFDYyxJQUFJLEdBQUdkLElBQUksQ0FBQ2MsSUFBSSxHQUFHLE9BQVE7VUFDL0MyRSxRQUFRLEVBQUV6RixJQUFJLENBQUN5RixRQUFTO1VBQ3hCM0UsSUFBSSxHQUFBNkUsWUFBQSxHQUFFM0YsSUFBSSxDQUFDbEIsS0FBSyxjQUFBNkcsWUFBQSx1QkFBVkEsWUFBQSxDQUFZN0UsSUFBSztVQUN2Qm1GLE9BQU8sRUFBRWpHLElBQUksQ0FBQ2lHLE9BQU8sSUFBSTtRQUFNLEdBRTlCakcsSUFBSSxDQUFDa0csVUFBVSxHQUNabEcsSUFBSSxDQUFDa0csVUFBVSxDQUFDcEgsS0FBSyxDQUFDLEdBQ3RCbkMsT0FBTyxDQUFDcUQsSUFBSSxDQUFDYyxJQUFJLEVBQUFsQixhQUFBO1VBQ2Z1RyxHQUFHLEVBQUVUO1FBQU8sR0FDVDVHLEtBQUssQ0FDVCxDQUNJLENBQ1IsQ0FBQztNQUVWLENBQUMsTUFBTTtRQUFBLElBQUFzSCxZQUFBLEVBQUFDLFlBQUEsRUFBQUMsWUFBQTtRQUNMLElBQUksQ0FBQ3pHLFVBQVUsQ0FBQ3NELElBQUksQ0FBQ25ELElBQUksQ0FBQ2dGLElBQUksQ0FBQztRQUMvQixvQkFDRXhJLEtBQUEsQ0FBQWtJLGFBQUEsQ0FBQzdILEdBQUc7VUFDRitJLElBQUksRUFBRTVGLElBQUksQ0FBQzRGLElBQUksSUFBSSxFQUFHO1VBQ3RCdkYsR0FBRyxFQUFFdUUsS0FBTTtVQUNYaUIsS0FBSyxFQUFFO1lBQUVDLE9BQU8sRUFBRTlGLElBQUksQ0FBQ2hCLElBQUksR0FBRyxNQUFNLEdBQUc7VUFBUTtRQUFFLGdCQUVqRHhDLEtBQUEsQ0FBQWtJLGFBQUEsQ0FBQ2hJLElBQUksQ0FBQ3FKLElBQUk7VUFDUnBJLEtBQUssRUFBRXFDLElBQUksQ0FBQ3JDLEtBQU07VUFDbEJxSCxJQUFJLEVBQUVoRixJQUFJLENBQUNnRixJQUFLO1VBQ2hCUSxLQUFLLEVBQUV4RixJQUFJLENBQUN3RixLQUFNO1VBQ2xCTixVQUFVLEVBQUVBLFVBQVc7VUFDdkJwRSxJQUFJLEdBQUFzRixZQUFBLEdBQUVwRyxJQUFJLENBQUNsQixLQUFLLGNBQUFzSCxZQUFBLHVCQUFWQSxZQUFBLENBQVl0RixJQUFLO1VBQ3ZCMkUsUUFBUSxFQUFFekYsSUFBSSxDQUFDeUY7UUFBUyxnQkFFeEJqSixLQUFBLENBQUFrSSxhQUFBLENBQUN2SCxNQUFNLEVBQUFvSixRQUFBO1VBQ0x4SSxRQUFRLEVBQUUsSUFBSSxDQUFDeUIsS0FBSyxDQUFDekIsUUFBUSxDQUFDaUMsSUFBSSxDQUFDZ0YsSUFBSSxDQUFDLElBQUksRUFBRztVQUMvQ3dCLFlBQVksRUFBR0MsSUFBSSxJQUFLO1lBQ3RCLE1BQU07Y0FBRTFJO1lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ3lCLEtBQUs7WUFDL0IsSUFBSSxDQUFDbEIsUUFBUSxDQUFDO2NBQ1pQLFFBQVEsRUFBQTZCLGFBQUEsQ0FBQUEsYUFBQSxLQUFPN0IsUUFBUTtnQkFBRSxDQUFDaUMsSUFBSSxDQUFDZ0YsSUFBSSxHQUFHeUI7Y0FBSTtZQUM1QyxDQUFDLENBQUM7VUFDSixDQUFFO1VBQ0ZDLGNBQWMsRUFBRTtZQUNkQyxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCQyxjQUFjLEVBQUVqSixLQUFLLEtBQUs7VUFDNUIsQ0FBRTtVQUNGd0ksR0FBRyxFQUFFVDtRQUFRLEdBQ1Q1RyxLQUFLLEdBRVIsQ0FBQXVILFlBQUEsR0FBQXJHLElBQUksQ0FBQ2xCLEtBQUssY0FBQXVILFlBQUEsZUFBVkEsWUFBQSxDQUFZUSxRQUFRLElBQUFQLFlBQUEsR0FDakJ0RyxJQUFJLENBQUNsQixLQUFLLGNBQUF3SCxZQUFBLHVCQUFWQSxZQUFBLENBQVlPLFFBQVEsR0FDcEJsSixLQUFLLEtBQUssSUFBSSxpQkFBSW5CLEtBQUEsQ0FBQWtJLGFBQUEsQ0FBQ3hILE1BQU0sUUFBQywwQkFBWSxDQUNwQyxDQUNDLENBQ1IsQ0FBQztNQUVWO0lBQ0YsQ0FBQyxDQUNFLENBQUM7RUFFVjtFQUNBNEosTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFFdEMsS0FBSyxHQUFHLEVBQUU7TUFBRTFGLEtBQUssR0FBRyxDQUFDLENBQUM7TUFBRWlJLE1BQU0sR0FBRyxJQUFJO01BQUVGO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQy9ILEtBQUs7SUFDdEUsTUFBTTtNQUFFcEIsT0FBTztNQUFFQztJQUFNLENBQUMsR0FBRyxJQUFJLENBQUM2QixLQUFLO0lBQ3JDLElBQUl3SCxVQUFVLEdBQUc7TUFDZkMsS0FBSyxFQUFFdEosS0FBSztNQUNadUosSUFBSSxFQUFFLElBQUksQ0FBQ3hFLFFBQVEsQ0FBQzJDLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDOUI4QixRQUFRLEVBQUUsSUFBSSxDQUFDbkksSUFBSSxDQUFDcUcsSUFBSSxDQUFDLElBQUksQ0FBQztNQUM5QitCLGFBQWEsRUFBRTtRQUFFMUosT0FBTyxFQUFFQTtNQUFRLENBQUM7TUFDbkMySixRQUFRLEVBQUUsSUFBSTtNQUNkQyxLQUFLLEVBQUU7SUFDVCxDQUFRO0lBRVIsSUFBSUMsV0FBVyxHQUFHO01BQ2hCTixLQUFLLEVBQUV0SixLQUFLO01BQ1p1SixJQUFJLEVBQUUsSUFBSSxDQUFDeEUsUUFBUSxDQUFDMkMsSUFBSSxDQUFDLElBQUksQ0FBQztNQUM5Qm1DLE9BQU8sRUFBRSxJQUFJLENBQUN4SSxJQUFJLENBQUNxRyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQzdCaUMsS0FBSyxFQUFFO0lBQ1QsQ0FBUTtJQUNSLElBQUkzSixLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCcUosVUFBVSxDQUFDRCxNQUFNLEdBQUcsSUFBSTtNQUN4QlEsV0FBVyxDQUFDUixNQUFNLEdBQUcsSUFBSTtJQUMzQjtJQUNBLElBQUksQ0FBQzNHLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDekIsSUFBSSxDQUFDTyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQ2QsVUFBVSxHQUFHLEVBQUU7SUFDcEIsSUFBSTRILFdBQVcsR0FBRyxDQUFDLENBQVE7SUFDM0IsSUFBSUMsVUFBVSxHQUFHLEVBQVM7SUFDMUIsSUFBSUMsVUFBVSxHQUFHLEVBQVM7SUFDMUI7SUFDQW5ELEtBQUssQ0FBQ3pFLEdBQUcsQ0FBRUMsSUFBUyxJQUFLO01BQ3ZCLElBQUlBLElBQUksQ0FBQzRILFNBQVMsSUFBSUYsVUFBVSxDQUFDRyxPQUFPLENBQUM3SCxJQUFJLENBQUM0SCxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDNURGLFVBQVUsQ0FBQ3ZFLElBQUksQ0FBQ25ELElBQUksQ0FBQzRILFNBQVMsQ0FBQztNQUNqQyxDQUFDLE1BQU0sSUFBSSxDQUFDNUgsSUFBSSxDQUFDNEgsU0FBUyxFQUFFO1FBQzFCRCxVQUFVLENBQUN4RSxJQUFJLENBQUNuRCxJQUFJLENBQUM7TUFDdkI7SUFDRixDQUFDLENBQUM7SUFDRixJQUFJMEgsVUFBVSxDQUFDdkosTUFBTSxHQUFHLENBQUMsRUFBRTtNQUN6QnVKLFVBQVUsQ0FBQzNILEdBQUcsQ0FBRUMsSUFBUyxJQUFLO1FBQzVCLElBQUk4SCxVQUFVLEdBQUcsRUFBUztRQUMxQnRELEtBQUssQ0FBQ3pFLEdBQUcsQ0FBRWdJLElBQVMsSUFBSztVQUN2QixJQUFJQSxJQUFJLENBQUNILFNBQVMsSUFBSTVILElBQUksRUFBRTtZQUMxQjhILFVBQVUsQ0FBQzNFLElBQUksQ0FBQzRFLElBQUksQ0FBQztVQUN2QjtRQUNGLENBQUMsQ0FBQztRQUNGTixXQUFXLENBQUN6SCxJQUFJLENBQUMsR0FBRzhILFVBQVU7TUFDaEMsQ0FBQyxDQUFDO01BQ0ZMLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBR0UsVUFBVTtJQUN6QztJQUNBO0lBQ0EsSUFBSUssV0FBVyxHQUFHLEVBQVM7SUFDM0IsSUFBSXpILEtBQUssQ0FBQ0MsT0FBTyxDQUFDcUcsUUFBUSxDQUFDLEVBQUU7TUFDM0JBLFFBQVEsQ0FBQzlHLEdBQUcsQ0FBRUMsSUFBUyxJQUFLO1FBQzFCLE9BQU9BLElBQUksSUFBSSxRQUFRLElBQUlnSSxXQUFXLENBQUM3RSxJQUFJLENBQUNuRCxJQUFJLENBQUM7TUFDbkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxNQUFNLElBQUk2RyxRQUFRLEVBQUU7TUFDbkIsT0FBT0EsUUFBUSxJQUFJLFFBQVEsSUFBSW1CLFdBQVcsQ0FBQzdFLElBQUksQ0FBQzBELFFBQVEsQ0FBQztJQUMzRDtJQUNBLG9CQUNFckssS0FBQSxDQUFBa0ksYUFBQSxDQUFDaEksSUFBSSxFQUFBNkosUUFBQTtNQUNISixHQUFHLEVBQUUsSUFBSSxDQUFDMUgsT0FBUTtNQUNsQndKLFNBQVMsRUFBRSxJQUFJLENBQUNuSixLQUFLLENBQUNvSixRQUFTO01BQy9CbEIsVUFBVSxFQUFBcEgsYUFBQSxLQUFPb0gsVUFBVSxDQUFHO01BQzlCTyxXQUFXLEVBQUEzSCxhQUFBLEtBQU8ySCxXQUFXLENBQUc7TUFDaENZLFFBQVEsRUFBRTtRQUFFQyxJQUFJLEVBQUU7TUFBUSxDQUFFO01BQzVCQyxVQUFVLEVBQUU7UUFBRUQsSUFBSSxFQUFFO01BQU8sQ0FBRTtNQUM3QkUsY0FBYyxFQUFFQSxDQUFDQyxhQUFhLEVBQUVDLFNBQVMsS0FBSztRQUM1QyxNQUFNO1VBQUVDO1FBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQzNKLEtBQUs7UUFDbkMySixZQUFZLElBQUlBLFlBQVksQ0FBQ0YsYUFBYSxFQUFFQyxTQUFTLENBQUM7TUFDeEQsQ0FBRTtNQUNGRSxXQUFXLEVBQUUsSUFBSSxDQUFDNUosS0FBSyxDQUFDNEo7SUFBWSxHQUNoQzVKLEtBQUssZ0JBRVR0QyxLQUFBLENBQUFrSSxhQUFBO01BQUtpRSxTQUFTLEVBQUM7SUFBZSxHQUMzQmpCLFVBQVUsQ0FBQ3ZKLE1BQU0sSUFBSSxDQUFDLEdBQ3JCLElBQUksQ0FBQ1csS0FBSyxDQUFDb0osUUFBUSxHQUNqQixJQUFJLENBQUMzRCxVQUFVLENBQUNDLEtBQUssRUFBRTdHLEtBQUssQ0FBQyxnQkFFN0JuQixLQUFBLENBQUFrSSxhQUFBO01BQUtpRSxTQUFTLEVBQUM7SUFBZSxHQUMzQixJQUFJLENBQUNwRSxVQUFVLENBQUNDLEtBQUssRUFBRTdHLEtBQUssQ0FDMUIsQ0FDTixHQUVEaUwsTUFBTSxDQUFDQyxJQUFJLENBQUNwQixXQUFXLENBQUMsQ0FBQzFILEdBQUcsQ0FBRU0sR0FBRyxJQUFLO01BQ3BDLG9CQUNFN0QsS0FBQSxDQUFBa0ksYUFBQTtRQUFLckUsR0FBRyxFQUFFQSxHQUFJO1FBQUNzSSxTQUFTLEVBQUM7TUFBZSxHQUNyQ3RJLEdBQUcsSUFBSSxhQUFhLGlCQUNuQjdELEtBQUEsQ0FBQWtJLGFBQUE7UUFBS2lFLFNBQVMsRUFBQztNQUFnQixHQUFFdEksR0FBUyxDQUMzQyxlQUNEN0QsS0FBQSxDQUFBa0ksYUFBQTtRQUFLaUUsU0FBUyxFQUFDO01BQWtCLEdBQzlCLElBQUksQ0FBQ3BFLFVBQVUsQ0FBQ2tELFdBQVcsQ0FBQ3BILEdBQUcsQ0FBQyxFQUFFMUMsS0FBSyxDQUNyQyxDQUNGLENBQUM7SUFFVixDQUFDLENBQ0YsRUFDQSxDQUFDLElBQUksQ0FBQ21CLEtBQUssQ0FBQ29KLFFBQVEsSUFBSW5CLE1BQU0sSUFBSSxJQUFJLGlCQUNyQ3ZLLEtBQUEsQ0FBQWtJLGFBQUE7TUFDRWlFLFNBQVMsRUFBRXZMLEdBQUcsQ0FDWixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDMEIsS0FBSyxDQUFDZ0ssZUFDYjtJQUFFLGdCQUVGdE0sS0FBQSxDQUFBa0ksYUFBQSxDQUFDeEgsTUFBTSxFQUFBcUosUUFBQSxLQUNELElBQUksQ0FBQ3pILEtBQUssQ0FBQ2lLLGlCQUFpQjtNQUNoQ0MsT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDYixJQUFJLElBQUksQ0FBQ2xLLEtBQUssQ0FBQ3FJLFFBQVEsRUFBRTtVQUN2QixJQUFJLENBQUNySSxLQUFLLENBQUNxSSxRQUFRLENBQUMsQ0FBQztVQUNyQjtRQUNGO1FBQ0EsSUFBSSxDQUFDN0ksUUFBUSxDQUFDO1VBQUVaLE9BQU8sRUFBRTtRQUFNLENBQUMsQ0FBQztNQUNuQztJQUFFLElBQ0gsY0FFTyxDQUFDLGVBQ1RsQixLQUFBLENBQUFrSSxhQUFBLENBQUN4SCxNQUFNLEVBQUFxSixRQUFBO01BQ0x6RixJQUFJLEVBQUM7SUFBUyxHQUNWLElBQUksQ0FBQ2hDLEtBQUssQ0FBQ3NJLGFBQWE7TUFDNUI0QixPQUFPLEVBQUVBLENBQUEsS0FBTTtRQUNiLElBQUksQ0FBQ3RHLFFBQVEsQ0FBQyxDQUFDO01BQ2pCLENBQUU7TUFDRmhGLE9BQU8sRUFBRSxJQUFJLENBQUM4QixLQUFLLENBQUM5QixPQUFRO01BQzVCaUwsU0FBUyxFQUFFO0lBQTJCLElBQ3ZDLGNBRU8sQ0FBQyxFQUNSWCxXQUFXLENBQUNqSSxHQUFHLENBQUMsQ0FBQ0MsSUFBUyxFQUFFNEUsS0FBVSxLQUFLO01BQzFDLG9CQUNFcEksS0FBQSxDQUFBa0ksYUFBQTtRQUFLaUUsU0FBUyxFQUFFLDBCQUEyQjtRQUFDdEksR0FBRyxFQUFFdUU7TUFBTSxHQUNwRDVFLElBQ0UsQ0FBQztJQUVWLENBQUMsQ0FDRSxDQUNOLEVBQ0EsQ0FBQyxJQUFJLENBQUNsQixLQUFLLENBQUNvSixRQUFRLElBQUluQixNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQ2pJLEtBQUssQ0FBQ2lJLE1BQ3BELENBQ0QsQ0FBQztFQUVYO0FBQ0Y7QUFFQSxlQUFlMUosUUFBUSJ9
594
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZGF5anMiLCJsb2Rhc2giLCJCdXR0b24iLCJVcGxvYWQiLCJjbHMiLCJGb3JtUGFnZSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJzaG93Iiwib3JnVmFsdWUiLCJlZGl0b3JmbGFnIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiY2FsbEJhY2siLCJzZXRTdGF0ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImNvbnZlcnRWYWx1ZSIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2hvd0Zvcm0iLCJhZnRlclJlbmRlciIsIl90aGlzJGZvcm1SZWYkY3VycmVudDIiLCJwcm9wcyIsImRlZmF1bHRWYWx1ZSIsImhpZGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQzIiwib25IaWRlRm9ybSIsImhpZGVGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NCIsInNldExvYWRpbmciLCJnZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ1Iiwic3RhdGUiLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImRhdGEiLCJfb2JqZWN0U3ByZWFkIiwiZmlsZUZvcm1hdCIsIm5ld0ZpbGVMaXN0IiwibWFwIiwiaXRlbSIsImdldEZpbGVMaXN0Iiwic3VibWl0RmxhZyIsImVycm9yIiwiZGF0ZVZhbHVlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImZvcm1hdCIsInJhbmdlckRhdGUiLCJkYXRlRm9ybWF0IiwiZSIsImlkIiwidHlwZSIsInZhbHVlcyIsImNsb25lRGVlcCIsInZhbHVlMSIsInZhbHVlMiIsImNvbnNvbGUiLCJsb2ciLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2IiwibmV3VmFsdWUiLCJzZXRGaWVsZHNWYWx1ZSIsImRvU3VibWl0IiwiZm9ybWRhdGEiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ3Iiwic3VibWl0VXJsIiwic3VibWl0UGFyYW1zIiwicmVxdWVzdE9iamVjdCIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJwYXJhbXMiLCJVdGlscyIsImZ1bmMiLCJGdW5jdGlvbiIsImNvbnZlclBhcmFtcyIsIm90aGVyUGFyYW1zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwib25TdWJtaXQiLCJub1VuZGVmaW5lZCIsInJlcyIsImNvZGUiLCJzdWNjZXNzIiwib2JqIiwiZmlsZUlkIiwiZmlsZU5hbWUiLCJzdGF0dXMiLCJwdXNoIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OCIsIl90aGlzJGZvcm1SZWYkY3VycmVudDkiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImNhdGNoIiwiZXJyb3JJbmZvIiwidmFsdWVDaGFuZ2UiLCJfcmVmIiwidmFsdWVPcHRpb24iLCJkaWN0TmFtZSIsIm5ld05hbWVzIiwib25DaGFuZ2UiLCJldmVudE9wdGlvbiIsImZ1bmNzIiwicmVmcyIsInJlZkxpc3QiLCJ2YWx1ZVN0ciIsInNlbGZGdW5jIiwicmVuZGVyRm9ybSIsImZvcm1zIiwibmV3VmFsaWQiLCJjcmVhdGVFbGVtZW50IiwiZ3V0dGVyIiwiaW5kZXgiLCJfaXRlbSRwcm9wcyIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsInNwbGl0IiwiYWxsb3dDaGFycyIsInBsYWNlaG9sZGVyIiwiY29uY2F0IiwiYmluZCIsImRhdGFUeXBlIiwiZGlzYWJsZWQiLCJydWxlcyIsInJlcXVpcmVkIiwiaXRlbVJlZiIsIl9pdGVtJHByb3BzMiIsInNwYW4iLCJzdHlsZSIsImRpc3BsYXkiLCJJdGVtIiwiY29tcG9uZW50TmFtZSIsIm5vU3R5bGUiLCJmb3JtUmVuZGVyIiwicmVmIiwiX2l0ZW0kcHJvcHMzIiwiX2l0ZW0kcHJvcHM0IiwiX2l0ZW0kcHJvcHM1IiwiX2V4dGVuZHMiLCJvbkxpc3RDaGFuZ2UiLCJsaXN0Iiwic2hvd1VwbG9hZExpc3QiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1JlbW92ZUljb24iLCJjaGlsZHJlbiIsInJlbmRlciIsImZvb3RlciIsIm1vZGFsUHJvcHMiLCJ0aXRsZSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsIndpZHRoIiwiZHJhd2VyUHJvcHMiLCJvbkNsb3NlIiwibmV3Rm9ybXNPYmoiLCJmb3JtR3JvdXBzIiwib3RoZXJHcnVwcyIsImdyb3VwTmFtZSIsImluZGV4T2YiLCJncm91cEZvcm1zIiwiZm9ybSIsInNlbGZCdXR0b25zIiwic2hvd01vZGVsIiwiZm9ybVR5cGUiLCJsYWJlbENvbCIsImZsZXgiLCJ3cmFwcGVyQ29sIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9vdGVyQ2xhc3NOYW1lIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuY2xhc3MgRm9ybVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PEZvcm1QYWdlUHJvcHMsIGFueT4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBsYWJlbDogXCJcIixcclxuICAgIGVkaXRvckZsYWc6IHRydWUsXHJcbiAgICB2YWx1ZToge30gYXMgYW55LFxyXG4gICAgZGljdE5hbWVzOiB7fSBhcyBhbnksXHJcbiAgICBmaWxlTGlzdDoge30gYXMgYW55LFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmNvbnZlcnRWYWx1ZShvcmdWYWx1ZSwgbGFiZWwpO1xyXG4gICAgICAgICAgLy/lpITnkIbmlofku7bmlbDmja5cclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh2YWx1ZSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2hvd0Zvcm0ob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IHsgLi4uZm9ybVZhbHVlLCAuLi5kaWN0TmFtZXMgfTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCFmb3JtVmFsdWVbaXRlbV0pIHtcclxuICAgICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcIuivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuICBjb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpIHtcclxuICAgIGxldCB2YWx1ZXMgPSBsb2Rhc2guY2xvbmVEZWVwKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1tpdGVtXTtcclxuICAgICAgICBpZiAob2xkZGF0YSAmJiBBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtpdGVtXSA9IHRoaXMuZ2V0RmlsZUxpc3Qob2xkZGF0YSB8fCBbXSwgdHlwZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2l0ZW1dID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBmaWxlTGlzdCB9KTtcclxuICAgIH1cclxuICAgIC8v5aSE55CG5pel5pyf5qC85byP5pWw5o2uXHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yYW5nZXJEYXRlW2tleV0pIHtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMSA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVswXV07XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZTIgPSB2YWx1ZXNbdGhpcy5yYW5nZXJEYXRlW2tleV1bMV1dO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInZhbHVlMVwiLCB2YWx1ZTEpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInZhbHVlMlwiLCB2YWx1ZTIpO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xyXG4gICAgICAgICAgICAgIHZhbHVlc1trZXldID0gW1xyXG4gICAgICAgICAgICAgICAgZGF5anModmFsdWUxLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTIsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG4gIH1cclxuICBzZXRGb3JtVmFsdWUodmFsdWUsIHR5cGUpIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIGNhbGxCYWNrLFxyXG4gICAgICByZXF1ZXN0T2JqZWN0ID0ge30sXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhZGRVcmwsIGVkaXRvclVybCwgYWRkUGFyYW1zLCBlZGl0b3JQYXJhbXMgfSA9IHJlcXVlc3RPYmplY3Q7XHJcbiAgICBsZXQgdXJsID0gXCJcIjtcclxuICAgIGxldCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgaWYgKGxhYmVsID09IFwi5paw5aKeXCIpIHtcclxuICAgICAgdXJsID0gYWRkVXJsID8gYWRkVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoYWRkUGFyYW1zICYmIHR5cGVvZiBhZGRQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGFkZFBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBhZGRQYXJhbXMgPyBhZGRQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICB1cmwgPSBlZGl0b3JVcmwgPyBlZGl0b3JVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChlZGl0b3JQYXJhbXMgJiYgdHlwZW9mIGVkaXRvclBhcmFtcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHNcIiwgZWRpdG9yUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGVkaXRvclBhcmFtcyA/IGVkaXRvclBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIumFjee9rlVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkYXRhID0ge30sIC4uLm90aGVyUGFyYW1zIH0gPSBwYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZm9ybWRhdGEsIC4uLmRhdGEgfSxcclxuICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAgIC4uLm90aGVyUGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhpZGUoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBnZXRGaWxlTGlzdChkYXRhLCBsYWJlbCA9IFwi5paw5aKeXCIpIHtcclxuICAgIHRoaXMuc3VibWl0RmxhZyA9IHRydWU7XHJcbiAgICBsZXQgZmlsZUxpc3QgPSBbXSBhcyBhbnk7XHJcbiAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgZmlsZUlkOiBpdGVtLmZpbGVJZCxcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICBvYmouc3RhdHVzID0gXCJkb25lXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsYWJlbCAhPT0gXCLmn6XnnItcIiAmJiBpdGVtLnN0YXR1cyAhPT0gXCJkb25lXCIpIHtcclxuICAgICAgICAgIHRoaXMuc3VibWl0RmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWxlTGlzdC5wdXNoKG9iaik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbGVMaXN0O1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCB7IG9uU3VibWl0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcywgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKHZhbGlkKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmdldEZvcm1WYWx1ZSgpO1xyXG4gICAgICAgIC8vIGlmICghdGhpcy5zdWJtaXRGbGFnKSB7XHJcbiAgICAgICAgLy8gICBtZXNzYWdlLmVycm9yKCfor7fnrYnlvoXmiYDmnInmlofku7bkuIrkvKDlrozmiJDvvIEnKVxyXG4gICAgICAgIC8vICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBpZiAob25TdWJtaXQpIHtcclxuICAgICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHt9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHtcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzIHx8IHt9LFxyXG4gICAgICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIlNlbGVjdFwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZU9wdGlvbiA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24uZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiRGF0ZVBpY2tlclwiIHx8IHR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZVN0ciA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxmRnVuYyA9IG5ldyBGdW5jdGlvbihcImV2ZW50T3B0aW9uXCIsIFwiVXRpbHNcIiwgcHJvcHMub25DaGFuZ2UpO1xyXG4gICAgICAgIHNlbGZGdW5jKGV2ZW50T3B0aW9uLCBVdGlscyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSB7XHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxSb3cgZ3V0dGVyPXsyNH0+XHJcbiAgICAgICAge2Zvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2l0ZW0ubmFtZV0gPVxyXG4gICAgICAgICAgICAgIGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPSBpdGVtUHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBcIlJhbmdlUGlja2VyXCIgJiYgaXRlbS5uYW1lLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmFuZ2VyRGF0ZVtpdGVtLm5hbWVdID0gaXRlbS5uYW1lLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbS5wcm9wcz8uYWxsb3dDaGFycyB8fCBmYWxzZTtcclxuICAgICAgICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAvL2Zvcm0uaXRlbSDkvb/nlKhpbnB1dOe7hOS7tmFsbG93Q2hhcnPlv4Xpobvpu5jorqR0cnVlLOS4jeeEtui+k+WFpeeJueauiuWtl+espuaLv+WIsOeahOWAvOS4jeWvuVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkgfHwgaXRlbS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgaXRlbVJlZjogYW55ID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICAgICAgICAgIHRoaXMucmVmTGlzdFtpdGVtLm5hbWVdID0gaXRlbVJlZjtcclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09IFwiVXBsb2FkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5oaWRlID8gXCJub25lXCIgOiBcImJsb2NrXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lPXtpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCJ9XHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICBub1N0eWxlPXtpdGVtLm5vU3R5bGUgfHwgZmFsc2V9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXJcclxuICAgICAgICAgICAgICAgICAgICA/IGl0ZW0uZm9ybVJlbmRlcihwcm9wcylcclxuICAgICAgICAgICAgICAgICAgICA6IGdldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogaXRlbVJlZixcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlRm9ybWF0LnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5oaWRlID8gXCJub25lXCIgOiBcImJsb2NrXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPFVwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgb25MaXN0Q2hhbmdlPXsobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdDogeyAuLi5maWxlTGlzdCwgW2l0ZW0ubmFtZV06IGxpc3QgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dEb3dubG9hZEljb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogbGFiZWwgIT09IFwi5p+l55yLXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICByZWY9e2l0ZW1SZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW0ucHJvcHM/LmNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcHM/LmNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGxhYmVsICE9PSBcIuafpeeci1wiICYmIDxCdXR0b24+5LiK5Lyg5paH5Lu2PC9CdXR0b24+fVxyXG4gICAgICAgICAgICAgICAgICA8L1VwbG9hZD5cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L1Jvdz5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgZm9ybXMgPSBbXSwgcHJvcHMgPSB7fSwgZm9vdGVyID0gdHJ1ZSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNhbmNlbDogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgbGV0IGRyYXdlclByb3BzID0ge1xyXG4gICAgICB0aXRsZTogbGFiZWwsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DbG9zZTogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgIH0gYXMgYW55O1xyXG4gICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgbW9kYWxQcm9wcy5mb290ZXIgPSBudWxsO1xyXG4gICAgICBkcmF3ZXJQcm9wcy5mb290ZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlVmFsdWVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHt9O1xyXG4gICAgdGhpcy5maWxlRm9ybWF0ID0gW107XHJcbiAgICBsZXQgbmV3Rm9ybXNPYmogPSB7fSBhcyBhbnk7XHJcbiAgICBsZXQgZm9ybUdyb3VwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBvdGhlckdydXBzID0gW10gYXMgYW55O1xyXG4gICAgLy/lpITnkIbooajljZXmlbDmja5cclxuICAgIGZvcm1zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmdyb3VwTmFtZSAmJiBmb3JtR3JvdXBzLmluZGV4T2YoaXRlbS5ncm91cE5hbWUpIDwgMCkge1xyXG4gICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIWl0ZW0uZ3JvdXBOYW1lKSB7XHJcbiAgICAgICAgb3RoZXJHcnVwcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmb3JtR3JvdXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ybUdyb3Vwcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBncm91cEZvcm1zID0gW10gYXMgYW55O1xyXG4gICAgICAgIGZvcm1zLm1hcCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybS5ncm91cE5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBncm91cEZvcm1zLnB1c2goZm9ybSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zO1xyXG4gICAgICB9KTtcclxuICAgICAgbmV3Rm9ybXNPYmpbXCJub0dyb3VwTmFtZVwiXSA9IG90aGVyR3J1cHM7XHJcbiAgICB9XHJcbiAgICAvL+iHquWumuS5ieaMiemSrlxyXG4gICAgbGV0IHNlbGZCdXR0b25zID0gW10gYXMgYW55O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdHlwZW9mIGNoaWxkcmVuID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhZ2VcIj5cclxuICAgICAgICAgIHtmb3JtR3JvdXBzLmxlbmd0aCA9PSAwID8gKFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmZvcm1UeXBlID8gKFxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybShmb3JtcywgbGFiZWwpXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCI+XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJGb3JtKGZvcm1zLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5ld0Zvcm1zT2JqKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17a2V5fSBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtrZXkgIT0gXCJub0dyb3VwTmFtZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXRpdGxlXCI+e2tleX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShuZXdGb3Jtc09ialtrZXldLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7IXRoaXMucHJvcHMuZm9ybVR5cGUgJiYgZm9vdGVyID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICBcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyXCIsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckNsYXNzTmFtZVxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FuY2VsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMub2tCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vblN1Ym1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGxvYWRpbmc9e3RoaXMuc3RhdGUubG9hZGluZ31cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDkv53lrZhcclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICB7c2VsZkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0blwifSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7IXRoaXMucHJvcHMuZm9ybVR5cGUgJiYgZm9vdGVyICE9PSB0cnVlICYmIHRoaXMucHJvcHMuZm9vdGVyfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9ybVBhZ2U7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxT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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","dayjs","lodash","Button","Upload","cls","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","editorFlag","value","dictNames","fileList","show","orgValue","editorflag","length","undefined","callBack","setState","_this$formRef$current","convertValue","formRef","current","showForm","afterRender","_this$formRef$current2","props","defaultValue","hide","_this$formRef$current3","onHideForm","hideForm","_this$formRef$current4","setLoading","getFormValue","_this$formRef$current5","state","formValue","getFieldsValue","data","_objectSpread","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","rangerDate","dateFormat","e","id","type","values","cloneDeep","setFormValue","_this$formRef$current6","newValue","setFieldsValue","doSubmit","formdata","_this$formRef$current7","submitUrl","submitParams","requestObject","requestConfig","addUrl","editorUrl","addParams","editorParams","url","params","Utils","func","Function","converParams","console","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","res","code","success","obj","fileId","fileName","status","push","_this$formRef$current8","_this$formRef$current9","valid","validateFields","then","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","funcs","refs","refList","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","split","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","style","display","Item","componentName","noStyle","formRender","ref","_item$props3","_item$props4","_item$props5","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","modalProps","title","onOk","onCancel","okButtonProps","centered","width","drawerProps","onClose","newFormsObj","formGroups","otherGrups","groupName","indexOf","groupForms","form","selfButtons","showModel","formType","labelCol","flex","wrapperCol","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from \"../../base/upload\";\r\nimport cls from \"classnames\";\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string;\r\n editorUrl?: string;\r\n addParams?: any;\r\n editorParams?: any;\r\n };\r\n requestConfig?: any;\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any,\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n rangerDate = {} as any;\r\n refList = {} as any;\r\n submitFlag = true;\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && (editorflag == \"detail\" || editorflag == \"search\")) {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n this.formRef.current?.showForm(this.props.defaultValue, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n this.show(orgValue, editorflag, callBack);\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = { ...formValue, ...dictNames };\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n if (!formValue[item]) {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n }\r\n });\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error(\"请等待所有文件上传完成!\");\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n if (this.rangerDate[key]) {\r\n try {\r\n data[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key]\r\n );\r\n data[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key]\r\n );\r\n delete data[key];\r\n } catch (e) {}\r\n }\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id };\r\n }\r\n return data;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n let olddata = values[item];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[item] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[item] = [];\r\n }\r\n });\r\n this.setState({ fileList: fileList });\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n return values;\r\n }\r\n setFormValue(value, type) {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const {\r\n submitUrl,\r\n submitParams = {},\r\n callBack,\r\n requestObject = {},\r\n requestConfig = {},\r\n } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject;\r\n let url = \"\";\r\n let params: any = {};\r\n if (label == \"新增\") {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", addParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == \"编辑\") {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", editorParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n this.hide(true);\r\n callBack && callBack();\r\n return;\r\n }\r\n this.hide(false);\r\n }\r\n );\r\n }\r\n getFileList(data, label = \"新增\") {\r\n this.submitFlag = true;\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == \"查看\") {\r\n obj.status = \"done\";\r\n }\r\n if (label !== \"查看\" && item.status !== \"done\") {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n }\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields(valid)\r\n .then(() => {\r\n let data = this.getFormValue();\r\n // if (!this.submitFlag) {\r\n // message.error('请等待所有文件上传完成!')\r\n // return;\r\n // }\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n onSubmit && onSubmit(data, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => {});\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == \"function\") {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == \"string\") {\r\n const eventOption = {\r\n value,\r\n data,\r\n formRef: this.formRef,\r\n funcs: this.props.funcs || {},\r\n refs: this.refList,\r\n } as any;\r\n const Utils = this.props.Utils || {};\r\n if (type == \"Select\") {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data;\r\n } else if (type == \"DatePicker\" || type == \"RangePicker\") {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function(\"eventOption\", \"Utils\", props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return (\r\n <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n if (item.type == \"RangePicker\" && item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = \"\";\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>();\r\n this.refList[item.name] = itemRef;\r\n if (item.type !== \"Upload\") {\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n noStyle={item.noStyle || false}\r\n >\r\n {item.formRender\r\n ? item.formRender(props)\r\n : getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name);\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state;\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list },\r\n });\r\n }}\r\n showUploadList={{\r\n showDownloadIcon: true,\r\n showRemoveIcon: label !== \"查看\",\r\n }}\r\n ref={itemRef}\r\n {...props}\r\n >\r\n {item.props?.children\r\n ? item.props?.children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n );\r\n }\r\n render() {\r\n const { forms = [], props = {}, footer = true, children } = this.props;\r\n const { loading, label } = this.state;\r\n let modalProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n } as any;\r\n\r\n let drawerProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = [];\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any;\r\n let otherGrups = [] as any;\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item);\r\n }\r\n });\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any;\r\n forms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form);\r\n }\r\n });\r\n newFormsObj[item] = groupForms;\r\n });\r\n newFormsObj[\"noGroupName\"] = otherGrups;\r\n }\r\n //自定义按钮\r\n let selfButtons = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n });\r\n } else if (children) {\r\n typeof children == \"object\" && selfButtons.push(children);\r\n }\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n labelCol={{ flex: \"100px\" }}\r\n wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? (\r\n this.props.formType ? (\r\n this.renderForm(forms, label)\r\n ) : (\r\n <div className=\"nsc-form-pane\">\r\n {this.renderForm(forms, label)}\r\n </div>\r\n )\r\n ) : (\r\n Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && (\r\n <div className=\"nsc-form-title\">{key}</div>\r\n )}\r\n <div className=\"nsc-form-content\">\r\n {this.renderForm(newFormsObj[key], label)}\r\n </div>\r\n </div>\r\n );\r\n })\r\n )}\r\n {!this.props.formType && footer == true && (\r\n <div\r\n className={cls(\r\n \"nsc-form-page-footer\",\r\n this.props.footerClassName\r\n )}\r\n >\r\n <Button\r\n {...this.props.cancelButtonProps}\r\n onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return;\r\n }\r\n this.setState({ loading: false });\r\n }}\r\n >\r\n 取消\r\n </Button>\r\n <Button\r\n type=\"primary\"\r\n {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit();\r\n }}\r\n loading={this.state.loading}\r\n className={\"nsc-form-page-footer-btn\"}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return (\r\n <div className={\"nsc-form-page-footer-btn\"} key={index}>\r\n {item}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {!this.props.formType && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","dayjs","lodash","Button","Upload","cls","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","editorFlag","value","dictNames","fileList","show","orgValue","editorflag","length","undefined","callBack","setState","_this$formRef$current","convertValue","formRef","current","showForm","afterRender","_this$formRef$current2","props","defaultValue","hide","_this$formRef$current3","onHideForm","hideForm","_this$formRef$current4","setLoading","getFormValue","_this$formRef$current5","state","formValue","getFieldsValue","data","_objectSpread","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","rangerDate","dateFormat","e","id","type","values","cloneDeep","value1","value2","console","log","setFormValue","_this$formRef$current6","newValue","setFieldsValue","doSubmit","formdata","_this$formRef$current7","submitUrl","submitParams","requestObject","requestConfig","addUrl","editorUrl","addParams","editorParams","url","params","Utils","func","Function","converParams","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","res","code","success","obj","fileId","fileName","status","push","_this$formRef$current8","_this$formRef$current9","valid","validateFields","then","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","funcs","refs","refList","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","split","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","style","display","Item","componentName","noStyle","formRender","ref","_item$props3","_item$props4","_item$props5","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","modalProps","title","onOk","onCancel","okButtonProps","centered","width","drawerProps","onClose","newFormsObj","formGroups","otherGrups","groupName","indexOf","groupForms","form","selfButtons","showModel","formType","labelCol","flex","wrapperCol","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from \"../../base/upload\";\r\nimport cls from \"classnames\";\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string;\r\n editorUrl?: string;\r\n addParams?: any;\r\n editorParams?: any;\r\n };\r\n requestConfig?: any;\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any,\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n rangerDate = {} as any;\r\n refList = {} as any;\r\n submitFlag = true;\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && (editorflag == \"detail\" || editorflag == \"search\")) {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n this.formRef.current?.showForm(this.props.defaultValue, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n this.show(orgValue, editorflag, callBack);\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = { ...formValue, ...dictNames };\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n if (!formValue[item]) {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n }\r\n });\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error(\"请等待所有文件上传完成!\");\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n if (this.rangerDate[key]) {\r\n try {\r\n data[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key]\r\n );\r\n data[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key]\r\n );\r\n delete data[key];\r\n } catch (e) {}\r\n }\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id };\r\n }\r\n return data;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n let olddata = values[item];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[item] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[item] = [];\r\n }\r\n });\r\n this.setState({ fileList: fileList });\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n } else {\r\n if (this.rangerDate[key]) {\r\n let value1 = values[this.rangerDate[key][0]];\r\n let value2 = values[this.rangerDate[key][1]];\r\n console.log(\"value1\", value1);\r\n console.log(\"value2\", value2);\r\n if (value1 && value2) {\r\n values[key] = [\r\n dayjs(value1, this.dateFormat[key]),\r\n dayjs(value2, this.dateFormat[key]),\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return values;\r\n }\r\n setFormValue(value, type) {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const {\r\n submitUrl,\r\n submitParams = {},\r\n callBack,\r\n requestObject = {},\r\n requestConfig = {},\r\n } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject;\r\n let url = \"\";\r\n let params: any = {};\r\n if (label == \"新增\") {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", addParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == \"编辑\") {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", editorParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n this.hide(true);\r\n callBack && callBack();\r\n return;\r\n }\r\n this.hide(false);\r\n }\r\n );\r\n }\r\n getFileList(data, label = \"新增\") {\r\n this.submitFlag = true;\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == \"查看\") {\r\n obj.status = \"done\";\r\n }\r\n if (label !== \"查看\" && item.status !== \"done\") {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n }\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields(valid)\r\n .then(() => {\r\n let data = this.getFormValue();\r\n // if (!this.submitFlag) {\r\n // message.error('请等待所有文件上传完成!')\r\n // return;\r\n // }\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n onSubmit && onSubmit(data, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => {});\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == \"function\") {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == \"string\") {\r\n const eventOption = {\r\n value,\r\n data,\r\n formRef: this.formRef,\r\n funcs: this.props.funcs || {},\r\n refs: this.refList,\r\n } as any;\r\n const Utils = this.props.Utils || {};\r\n if (type == \"Select\") {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data;\r\n } else if (type == \"DatePicker\" || type == \"RangePicker\") {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function(\"eventOption\", \"Utils\", props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return (\r\n <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n if (item.type == \"RangePicker\" && item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = \"\";\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>();\r\n this.refList[item.name] = itemRef;\r\n if (item.type !== \"Upload\") {\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n noStyle={item.noStyle || false}\r\n >\r\n {item.formRender\r\n ? item.formRender(props)\r\n : getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name);\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state;\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list },\r\n });\r\n }}\r\n showUploadList={{\r\n showDownloadIcon: true,\r\n showRemoveIcon: label !== \"查看\",\r\n }}\r\n ref={itemRef}\r\n {...props}\r\n >\r\n {item.props?.children\r\n ? item.props?.children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n );\r\n }\r\n render() {\r\n const { forms = [], props = {}, footer = true, children } = this.props;\r\n const { loading, label } = this.state;\r\n let modalProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n } as any;\r\n\r\n let drawerProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = [];\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any;\r\n let otherGrups = [] as any;\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item);\r\n }\r\n });\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any;\r\n forms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form);\r\n }\r\n });\r\n newFormsObj[item] = groupForms;\r\n });\r\n newFormsObj[\"noGroupName\"] = otherGrups;\r\n }\r\n //自定义按钮\r\n let selfButtons = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n });\r\n } else if (children) {\r\n typeof children == \"object\" && selfButtons.push(children);\r\n }\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n labelCol={{ flex: \"100px\" }}\r\n wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? (\r\n this.props.formType ? (\r\n this.renderForm(forms, label)\r\n ) : (\r\n <div className=\"nsc-form-pane\">\r\n {this.renderForm(forms, label)}\r\n </div>\r\n )\r\n ) : (\r\n Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && (\r\n <div className=\"nsc-form-title\">{key}</div>\r\n )}\r\n <div className=\"nsc-form-content\">\r\n {this.renderForm(newFormsObj[key], label)}\r\n </div>\r\n </div>\r\n );\r\n })\r\n )}\r\n {!this.props.formType && footer == true && (\r\n <div\r\n className={cls(\r\n \"nsc-form-page-footer\",\r\n this.props.footerClassName\r\n )}\r\n >\r\n <Button\r\n {...this.props.cancelButtonProps}\r\n onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return;\r\n }\r\n this.setState({ loading: false });\r\n }}\r\n >\r\n 取消\r\n </Button>\r\n <Button\r\n type=\"primary\"\r\n {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit();\r\n }}\r\n loading={this.state.loading}\r\n className={\"nsc-form-page-footer-btn\"}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return (\r\n <div className={\"nsc-form-page-footer-btn\"} key={index}>\r\n {item}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {!this.props.formType && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  .nsc-tabs-basepage {
2
+ width: calc(100% - 40px);
2
3
  height: 100%;
3
- // :global {
4
+ background: #fff;
5
+ padding-left: 20px;
6
+ padding-top: 20px;
7
+ padding-right: 20px;
8
+ border-radius: 10px;
4
9
  .ant-tabs > .ant-tabs-nav {
5
10
  border-top-left-radius: 10px;
6
11
  border-top-right-radius: 10px;
@@ -8,21 +13,48 @@
8
13
  padding: 10px 20px 0;
9
14
  margin: 0;
10
15
  }
11
- .nsc-basepage-headersearch {
12
- border-bottom-left-radius: 10px !important;
13
- border-bottom-right-radius: 10px !important;
14
- border-top-left-radius: 0px !important;
15
- border-top-right-radius: 0px !important;
16
- background: #fff !important;
17
- padding-left: 20px !important;
18
- padding-right: 20px !important;
19
- }
20
- .ant-tabs-top > .ant-tabs-nav:before {
21
- border-bottom: none !important;
22
- }
23
- .ant-tabs-tab {
24
- font-size: 18px;
25
- font-weight: 600;
16
+ // .nsc-basepage-headersearch {
17
+ // border-bottom-left-radius: 10px !important;
18
+ // border-bottom-right-radius: 10px !important;
19
+ // border-top-left-radius: 0px !important;
20
+ // border-top-right-radius: 0px !important;
21
+ // background: #fff !important;
22
+ // padding-left: 20px !important;
23
+ // padding-right: 20px !important;
24
+ // }
25
+
26
+ .ant-spin {
27
+ top: 50%;
28
+ left: 50%;
29
+ }
30
+ .ant-spin-spinning {
31
+ top: 50%;
32
+ left: 50%;
33
+ }
34
+ .ant-tabs {
35
+ height: calc(100% - 20px);
36
+ }
37
+ .ant-tabs .ant-tabs-content {
38
+ height: 100%;
39
+ }
40
+ .ant-tabs .ant-tabs-tabpane {
41
+ height: 100%;
42
+ }
43
+ .nsc-basepage-content {
44
+ margin-top: 0px !important;
45
+ padding-top: 10px !important;
46
+ height: calc(100% - 64px) !important;
47
+ }
48
+ .ant-tabs > .ant-tabs-nav {
49
+ margin: 0 !important;
50
+ }
51
+ .nsc-basepage .nsc-basepage-pane .nsc-basepage-left {
52
+ margin-top: 20px !important;
53
+ height: calc(100% - 20px) !important;
54
+ }
55
+ .nsc-basepage-content-gap {
56
+ padding-top: 20px !important;
57
+ height: 100% !important;
26
58
  }
27
59
  // }
28
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "4.1.8",
3
+ "version": "4.1.9",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {