@yibozhang/pro-table 11.0.2 → 12.0.0

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.
@@ -142,7 +142,7 @@ ColmunsSettingComponent.decorators = [
142
142
  { type: Component, args: [{
143
143
  selector: "app-colmuns-setting",
144
144
  template: "<div class=\"action-pic-btn\" (click)=\"handleModalVisible()\" title=\"\u5217\u8BBE\u7F6E\">\r\n <i nz-icon nzType=\"setting\" nzTheme=\"outline\"></i>\r\n</div>\r\n\r\n<nz-modal\r\n [(nzVisible)]=\"modalVisible\"\r\n [nzWidth]=\"820\"\r\n [nzTitle]=\"modalTitle\"\r\n (nzOnCancel)=\"handleModalClose()\"\r\n [nzContent]=\"modalBody\"\r\n [nzBodyStyle]=\"{ padding: '12px' }\"\r\n (nzOnOk)=\"handleConfirm()\"\r\n [nzWrapClassName]=\"'draggable-modal'\"\r\n>\r\n <ng-template #modalTitle>\r\n <div\r\n class=\"modal-drag-handle\"\r\n cdkDrag\r\n [cdkDragRootElement]=\"'.draggable-modal .ant-modal'\"\r\n cdkDragHandle\r\n [cdkDragBoundary]=\"'.draggable-modal'\"\r\n >\r\n <span>\u8BBE\u7F6E\u663E\u793A\u5B57\u6BB5</span>\r\n </div>\r\n </ng-template>\r\n <ng-template #modalBody>\r\n <div class=\"modal-body\">\r\n <div class=\"check-box-list\">\r\n <div class=\"mb-12\">\u53EF\u9009\u5B57\u6BB5</div>\r\n <nz-checkbox-wrapper style=\"width: 100%\">\r\n <div nz-row [nzGutter]=\"[24, 24]\">\r\n <div nz-col nzSpan=\"6\" *ngFor=\"let item of options\">\r\n <label\r\n nz-checkbox\r\n nzValue=\"item.value\"\r\n [ngModel]=\"item.checked\"\r\n (ngModelChange)=\"handleCheckBoxChange($event, item)\"\r\n >{{ item.label }}</label\r\n >\r\n </div>\r\n </div>\r\n </nz-checkbox-wrapper>\r\n </div>\r\n <div class=\"sort-list\">\r\n <div nz-typography class=\"mb-4\">\u5F53\u524D\u5DF2\u7ECF\u9009\u5B9A\u7684\u5B57\u6BB5</div>\r\n <div\r\n nz-typography\r\n nzType=\"secondary\"\r\n class=\"mb-4\"\r\n [style.fontSize]=\"'12px'\"\r\n >\r\n \u63D0\u793A\uFF1A\u53EF\u62D6\u52A8\u6392\u5E8F\r\n </div>\r\n <div #sortableContainer class=\"sortable-container\">\r\n <div\r\n class=\"sort-list-item mb-12\"\r\n *ngFor=\"let item of selectedColumns; trackBy: trackByColumn\"\r\n >\r\n {{ item.title }}\r\n <a\r\n href=\"javascript:void(0)\"\r\n class=\"fieldd-remove\"\r\n title=\"\u5220\u9664\"\r\n (click)=\"handleSelectRemove(item.prop)\"\r\n >\u00D7</a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</nz-modal>\r\n",
145
- styles: [".action-pic-btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px}.modal-body{width:100%;height:600px;display:flex}.modal-body .check-box-list{width:calc(100% - 200px);height:100%}.modal-body .sort-list{width:200px;height:100%;border-left:1px solid #e3e3e3;box-sizing:border-box;padding-left:12px;padding-right:12px;overflow-y:auto}.modal-body .sort-list .sortable-container{min-height:100px}.modal-body .sort-list .sort-list-item{display:flex;justify-content:space-between;align-items:center;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal-body .sort-list .sort-list-item a{font-size:18px}.modal-drag-handle{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}"]
145
+ styles: [".action-pic-btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px}.modal-body{width:100%;height:600px;display:flex}.modal-body .check-box-list{width:calc(100% - 200px);height:100%}.modal-body .sort-list{width:200px;height:100%;border-left:1px solid #e3e3e3;box-sizing:border-box;padding-left:12px;padding-right:12px;overflow-y:auto}.modal-body .sort-list .sortable-container{min-height:100px}.modal-body .sort-list .sort-list-item{display:flex;justify-content:space-between;align-items:center;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal-body .sort-list .sort-list-item a{font-size:18px}.modal-drag-handle{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}\n"]
146
146
  },] }
147
147
  ];
148
148
  ColmunsSettingComponent.ctorParameters = () => [
@@ -155,4 +155,4 @@ ColmunsSettingComponent.propDecorators = {
155
155
  afterConfirm: [{ type: Output }],
156
156
  sortableContainer: [{ type: ViewChild, args: ["sortableContainer", { static: false },] }]
157
157
  };
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbXVucy1zZXR0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byby10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvY29sbXVucy1zZXR0aW5nL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRWxDLE9BQU8sRUFBRSx1QkFBdUIsRUFBK0IsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU9wQyxNQUFNLE9BQU8sdUJBQXVCO0lBb0JsQyxZQUdVLFlBQWdEO1FBQWhELGlCQUFZLEdBQVosWUFBWSxDQUFvQztRQXBCakQsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFFL0Isb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBSXRDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLOUQsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsWUFBTyxHQUE4RCxFQUFFLENBQUM7UUFFaEUscUJBQWdCLEdBQW9CLElBQUksQ0FBQztJQU05QyxDQUFDO0lBRUosUUFBUSxLQUFVLENBQUM7SUFFbkIsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsWUFBWTtRQUNaLElB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QkFFTCxLQUFLOzJCQUVMLE1BQU07Z0NBRU4sU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBTb3J0YWJsZSBmcm9tIFwic29ydGFibGVqc1wiO1xyXG5pbXBvcnQgeyBQcm9UYWJsZUNvbHVtbiB9IGZyb20gXCIuLi8uLi90eXBlXCI7XHJcbmltcG9ydCB7IFBST19UQUJMRV9DT0xVTU5fUkVNT1RFLCBQcm9UYWJsZVJlbW90ZUNvbHVtblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcbmltcG9ydCB7IEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWNvbG11bnMtc2V0dGluZ1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29sbXVucy1zZXR0aW5nLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQubGVzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbG11bnNTZXR0aW5nQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgQElucHV0KCkgY29sdW1uczogUHJvVGFibGVDb2x1bW5bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3RlZENvbHVtbnM6IFByb1RhYmxlQ29sdW1uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgdGFibGVOYW1lOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKSBhZnRlckNvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPFByb1RhYmxlQ29sdW1uW10+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzb3J0YWJsZUNvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBzb3J0YWJsZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG1vZGFsVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBvcHRpb25zOiBBcnJheTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW4gfT4gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzb3J0YWJsZUluc3RhbmNlOiBTb3J0YWJsZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KFBST19UQUJMRV9DT0xVTU5fUkVNT1RFKVxyXG4gICAgcHJpdmF0ZSBjb2x1bW5SZW1vdGU6IFByb1RhYmxlUmVtb3RlQ29sdW1uU2VydmljZSB8IG51bGxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0U29ydGFibGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc29ydGFibGVJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdFNvcnRhYmxlKCk6IHZvaWQge1xyXG4gICAgLy8g5YWI6ZSA5q+B5bey5a2Y5Zyo55qE5a6e5L6LXHJcbiAgICBpZiAodGhpcy5zb3J0YWJsZUluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZS5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydGFibGVDb250YWluZXIgJiYgdGhpcy5zb3J0YWJsZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZSA9IG5ldyBTb3J0YWJsZShcclxuICAgICAgICB0aGlzLnNvcnRhYmxlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiAxNTAsXHJcbiAgICAgICAgICBnaG9zdENsYXNzOiBcInNvcnRhYmxlLWdob3N0XCIsXHJcbiAgICAgICAgICBjaG9zZW5DbGFzczogXCJzb3J0YWJsZS1jaG9zZW5cIixcclxuICAgICAgICAgIGRyYWdDbGFzczogXCJzb3J0YWJsZS1kcmFnXCIsXHJcbiAgICAgICAgICBoYW5kbGU6IFwiLnNvcnQtbGlzdC1pdGVtXCIsIC8vIOaMh+WumuaLluaLveWPpeafhFxyXG4gICAgICAgICAgb25FbmQ6IChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vblNvcnRFbmQoZXZ0KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Tb3J0RW5kKGV2dDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCB7IG9sZEluZGV4LCBuZXdJbmRleCB9ID0gZXZ0O1xyXG4gICAgaWYgKG9sZEluZGV4ICE9PSBuZXdJbmRleCkge1xyXG4gICAgICAvLyDliJvlu7rmlrDnmoTmlbDnu4TmnaXpgb/lhY3nm7TmjqXkv67mlLnovpPlhaXlsZ7mgKdcclxuICAgICAgY29uc3QgbmV3U2VsZWN0ZWRDb2x1bW5zID0gWy4uLnRoaXMuc2VsZWN0ZWRDb2x1bW5zXTtcclxuICAgICAgY29uc3QgbW92ZWRJdGVtID0gbmV3U2VsZWN0ZWRDb2x1bW5zLnNwbGljZShvbGRJbmRleCwgMSlbMF07XHJcbiAgICAgIG5ld1NlbGVjdGVkQ29sdW1ucy5zcGxpY2UobmV3SW5kZXgsIDAsIG1vdmVkSXRlbSk7XHJcblxyXG4gICAgICAvLyDmm7TmlrAgc2VsZWN0ZWRDb2x1bW5zXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gbmV3U2VsZWN0ZWRDb2x1bW5zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUNvbHVtbihpbmRleDogbnVtYmVyLCBpdGVtOiBQcm9UYWJsZUNvbHVtbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXRlbS5wcm9wIHx8IGluZGV4LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlkIzmraUgb3B0aW9ucyDmlbDnu4TnmoQgY2hlY2tlZCDnirbmgIHkuI4gc2VsZWN0ZWRDb2x1bW5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzeW5jT3B0aW9uc1dpdGhTZWxlY3RlZENvbHVtbnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFByb3BzID0gdGhpcy5zZWxlY3RlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5wcm9wKTtcclxuICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgb3B0aW9uLmNoZWNrZWQgPSBzZWxlY3RlZFByb3BzLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU1vZGFsVmlzaWJsZSgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuY29sdW1uc1xyXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5hdXhpbGlhcnlDb2x1bW4pXHJcbiAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbGFiZWw6IGl0ZW0udGl0bGUsXHJcbiAgICAgICAgICB2YWx1ZTogaXRlbS5wcm9wLFxyXG4gICAgICAgICAgY2hlY2tlZDogaXRlbS5oaWRlSW5UYWJsZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgICAgIHNvcnROYW1lOiBpdGVtLnNvcnROYW1lIHx8IG51bGwsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgLy8g5ZCM5q2lIG9wdGlvbnMg55qEIGNoZWNrZWQg54q25oCB5LiO5b2T5YmNIHNlbGVjdGVkQ29sdW1uc1xyXG4gICAgdGhpcy5zeW5jT3B0aW9uc1dpdGhTZWxlY3RlZENvbHVtbnMoKTtcclxuXHJcbiAgICB0aGlzLm1vZGFsVmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgLy8g5qih5oCB5qGG5omT5byA5ZCO6YeN5paw5Yid5aeL5YyW5o6S5bqPXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pbml0U29ydGFibGUoKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb2RhbENsb3NlKCkge1xyXG4gICAgdGhpcy5tb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnNvcnRhYmxlSW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy5zb3J0YWJsZUluc3RhbmNlLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5zb3J0YWJsZUluc3RhbmNlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNlbGVjdFJlbW92ZShrZXk6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbHVtbnMgPSB0aGlzLnNlbGVjdGVkQ29sdW1ucy5maWx0ZXIoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtLnByb3AgIT09IGtleVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyDkvb/nlKjlkIzmraXmlrnms5Xnoa7kv53miYDmnInnirbmgIHkuIDoh7RcclxuICAgIHRoaXMuc3luY09wdGlvbnNXaXRoU2VsZWN0ZWRDb2x1bW5zKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGVja0JveENoYW5nZSh2YWx1ZSwgcmVjb3JkKSB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU2VsZWN0UmVtb3ZlKHJlY29yZC52YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucy5wdXNoKHtcclxuICAgICAgICB0aXRsZTogcmVjb3JkLmxhYmVsLFxyXG4gICAgICAgIHByb3A6IHJlY29yZC52YWx1ZSxcclxuICAgICAgICBzb3J0TmFtZTogcmVjb3JkLnNvcnROYW1lLFxyXG4gICAgICAgIGhpZGVJblRhYmxlOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIOa3u+WKoOmhueebruWQjuWQjOatpeeKtuaAgVxyXG4gICAgICB0aGlzLnN5bmNPcHRpb25zV2l0aFNlbGVjdGVkQ29sdW1ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbHVtblJlbW90ZT8uc2V0Q29sIHx8ICF0aGlzLnRhYmxlTmFtZSkge1xyXG4gICAgICB0aGlzLm1vZGFsVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFmdGVyQ29uZmlybS5lbWl0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLnNlbGVjdGVkQ29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGZpZWxkOiBjb2x1bW4ucHJvcCxcclxuICAgICAgICBpc1Nob3c6IGNvbHVtbi5oaWRlSW5UYWJsZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgICBoZWFkZXI6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICBzb3J0TmFtZTogY29sdW1uLnNvcnROYW1lIHx8IG51bGwsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY29sdW1uUmVtb3RlLnNldENvbCh0aGlzLnRhYmxlTmFtZSwgcGF5bG9hZCk7XHJcbiAgICBjb25zdCBkb25lID0gKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLm1vZGFsVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFmdGVyQ29uZmlybS5lbWl0KCk7XHJcbiAgICB9O1xyXG4gICAgaWYgKHJlc3VsdCAmJiBpc09ic2VydmFibGUocmVzdWx0KSkge1xyXG4gICAgICByZXN1bHQuc3Vic2NyaWJlKGRvbmUsICgpID0+IGRvbmUobnVsbCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkuZmluYWxseSgoKSA9PiBkb25lKG51bGwpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbXVucy1zZXR0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byby10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvY29sbXVucy1zZXR0aW5nL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRWxDLE9BQU8sRUFBRSx1QkFBdUIsRUFBK0IsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU9wQyxNQUFNLE9BQU8sdUJBQXVCO0lBb0JsQyxZQUdVLFlBQWdEO1FBQWhELGlCQUFZLEdBQVosWUFBWSxDQUFvQztRQXBCakQsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFFL0Isb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBSXRDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLOUQsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsWUFBTyxHQUE4RCxFQUFFLENBQUM7UUFFaEUscUJBQWdCLEdBQW9CLElBQUksQ0FBQztJQU05QyxDQUFDO0lBRUosUUFBUSxLQUFVLENBQUM7SUFFbkIsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsWUFBWTtRQUNaLElB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QUVMLEtBQUs7d0JBRUwsS0FBSzsyQkFFTCxNQUFNO2dDQUVOLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgU29ydGFibGUgZnJvbSBcInNvcnRhYmxlanNcIjtcclxuaW1wb3J0IHsgUHJvVGFibGVDb2x1bW4gfSBmcm9tIFwiLi4vLi4vdHlwZVwiO1xyXG5pbXBvcnQgeyBQUk9fVEFCTEVfQ09MVU1OX1JFTU9URSwgUHJvVGFibGVSZW1vdGVDb2x1bW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5pbXBvcnQgeyBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1jb2xtdW5zLXNldHRpbmdcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9jb2xtdW5zLXNldHRpbmcuY29tcG9uZW50Lmxlc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2xtdW5zU2V0dGluZ0NvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IFByb1RhYmxlQ29sdW1uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDb2x1bW5zOiBQcm9UYWJsZUNvbHVtbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHRhYmxlTmFtZTogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgYWZ0ZXJDb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjxQcm9UYWJsZUNvbHVtbltdPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwic29ydGFibGVDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgc29ydGFibGVDb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBtb2RhbFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgb3B0aW9uczogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuIH0+ID0gW107XHJcblxyXG4gIHByaXZhdGUgc29ydGFibGVJbnN0YW5jZTogU29ydGFibGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQEluamVjdChQUk9fVEFCTEVfQ09MVU1OX1JFTU9URSlcclxuICAgIHByaXZhdGUgY29sdW1uUmVtb3RlOiBQcm9UYWJsZVJlbW90ZUNvbHVtblNlcnZpY2UgfCBudWxsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFNvcnRhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNvcnRhYmxlSW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy5zb3J0YWJsZUluc3RhbmNlLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRTb3J0YWJsZSgpOiB2b2lkIHtcclxuICAgIC8vIOWFiOmUgOavgeW3suWtmOWcqOeahOWunuS+i1xyXG4gICAgaWYgKHRoaXMuc29ydGFibGVJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UuZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNvcnRhYmxlQ29udGFpbmVyICYmIHRoaXMuc29ydGFibGVDb250YWluZXIubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UgPSBuZXcgU29ydGFibGUoXHJcbiAgICAgICAgdGhpcy5zb3J0YWJsZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGFuaW1hdGlvbjogMTUwLFxyXG4gICAgICAgICAgZ2hvc3RDbGFzczogXCJzb3J0YWJsZS1naG9zdFwiLFxyXG4gICAgICAgICAgY2hvc2VuQ2xhc3M6IFwic29ydGFibGUtY2hvc2VuXCIsXHJcbiAgICAgICAgICBkcmFnQ2xhc3M6IFwic29ydGFibGUtZHJhZ1wiLFxyXG4gICAgICAgICAgaGFuZGxlOiBcIi5zb3J0LWxpc3QtaXRlbVwiLCAvLyDmjIflrprmi5bmi73lj6Xmn4RcclxuICAgICAgICAgIG9uRW5kOiAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25Tb3J0RW5kKGV2dCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU29ydEVuZChldnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBvbGRJbmRleCwgbmV3SW5kZXggfSA9IGV2dDtcclxuICAgIGlmIChvbGRJbmRleCAhPT0gbmV3SW5kZXgpIHtcclxuICAgICAgLy8g5Yib5bu65paw55qE5pWw57uE5p2l6YG/5YWN55u05o6l5L+u5pS56L6T5YWl5bGe5oCnXHJcbiAgICAgIGNvbnN0IG5ld1NlbGVjdGVkQ29sdW1ucyA9IFsuLi50aGlzLnNlbGVjdGVkQ29sdW1uc107XHJcbiAgICAgIGNvbnN0IG1vdmVkSXRlbSA9IG5ld1NlbGVjdGVkQ29sdW1ucy5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdO1xyXG4gICAgICBuZXdTZWxlY3RlZENvbHVtbnMuc3BsaWNlKG5ld0luZGV4LCAwLCBtb3ZlZEl0ZW0pO1xyXG5cclxuICAgICAgLy8g5pu05pawIHNlbGVjdGVkQ29sdW1uc1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IG5ld1NlbGVjdGVkQ29sdW1ucztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgaXRlbTogUHJvVGFibGVDb2x1bW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW0ucHJvcCB8fCBpbmRleC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5ZCM5q2lIG9wdGlvbnMg5pWw57uE55qEIGNoZWNrZWQg54q25oCB5LiOIHNlbGVjdGVkQ29sdW1uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3luY09wdGlvbnNXaXRoU2VsZWN0ZWRDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRQcm9wcyA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wucHJvcCk7XHJcbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIG9wdGlvbi5jaGVja2VkID0gc2VsZWN0ZWRQcm9wcy5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb2RhbFZpc2libGUoKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmNvbHVtbnNcclxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uYXV4aWxpYXJ5Q29sdW1uKVxyXG4gICAgICAubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGxhYmVsOiBpdGVtLnRpdGxlLFxyXG4gICAgICAgICAgdmFsdWU6IGl0ZW0ucHJvcCxcclxuICAgICAgICAgIGNoZWNrZWQ6IGl0ZW0uaGlkZUluVGFibGUgPyBmYWxzZSA6IHRydWUsXHJcbiAgICAgICAgICBzb3J0TmFtZTogaXRlbS5zb3J0TmFtZSB8fCBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIC8vIOWQjOatpSBvcHRpb25zIOeahCBjaGVja2VkIOeKtuaAgeS4juW9k+WJjSBzZWxlY3RlZENvbHVtbnNcclxuICAgIHRoaXMuc3luY09wdGlvbnNXaXRoU2VsZWN0ZWRDb2x1bW5zKCk7XHJcblxyXG4gICAgdGhpcy5tb2RhbFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIC8vIOaooeaAgeahhuaJk+W8gOWQjumHjeaWsOWIneWni+WMluaOkuW6j1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdFNvcnRhYmxlKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTW9kYWxDbG9zZSgpIHtcclxuICAgIHRoaXMubW9kYWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5zb3J0YWJsZUluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZS5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RSZW1vdmUoa2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5zZWxlY3RlZENvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAoaXRlbSkgPT4gaXRlbS5wcm9wICE9PSBrZXlcclxuICAgICk7XHJcblxyXG4gICAgLy8g5L2/55So5ZCM5q2l5pa55rOV56Gu5L+d5omA5pyJ54q25oCB5LiA6Ie0XHJcbiAgICB0aGlzLnN5bmNPcHRpb25zV2l0aFNlbGVjdGVkQ29sdW1ucygpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hlY2tCb3hDaGFuZ2UodmFsdWUsIHJlY29yZCkge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdFJlbW92ZShyZWNvcmQudmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IHJlY29yZC5sYWJlbCxcclxuICAgICAgICBwcm9wOiByZWNvcmQudmFsdWUsXHJcbiAgICAgICAgc29ydE5hbWU6IHJlY29yZC5zb3J0TmFtZSxcclxuICAgICAgICBoaWRlSW5UYWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyDmt7vliqDpobnnm67lkI7lkIzmraXnirbmgIFcclxuICAgICAgdGhpcy5zeW5jT3B0aW9uc1dpdGhTZWxlY3RlZENvbHVtbnMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgIGlmICghdGhpcy5jb2x1bW5SZW1vdGU/LnNldENvbCB8fCAhdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgdGhpcy5tb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hZnRlckNvbmZpcm0uZW1pdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5zZWxlY3RlZENvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZDogY29sdW1uLnByb3AsXHJcbiAgICAgICAgaXNTaG93OiBjb2x1bW4uaGlkZUluVGFibGUgPyBmYWxzZSA6IHRydWUsXHJcbiAgICAgICAgaGVhZGVyOiBjb2x1bW4udGl0bGUsXHJcbiAgICAgICAgc29ydE5hbWU6IGNvbHVtbi5zb3J0TmFtZSB8fCBudWxsLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmNvbHVtblJlbW90ZS5zZXRDb2wodGhpcy50YWJsZU5hbWUsIHBheWxvYWQpO1xyXG4gICAgY29uc3QgZG9uZSA9IChyZXMpID0+IHtcclxuICAgICAgdGhpcy5tb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hZnRlckNvbmZpcm0uZW1pdCgpO1xyXG4gICAgfTtcclxuICAgIGlmIChyZXN1bHQgJiYgaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgcmVzdWx0LnN1YnNjcmliZShkb25lLCAoKSA9PiBkb25lKG51bGwpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIFByb21pc2UucmVzb2x2ZShyZXN1bHQpLmZpbmFsbHkoKCkgPT4gZG9uZShudWxsKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -10,7 +10,7 @@ PageContainerComponent.decorators = [
10
10
  { type: Component, args: [{
11
11
  selector: "app-page-container",
12
12
  template: "<nz-card\r\n [nzBorderless]=\"true\"\r\n [nzBodyStyle]=\"{ padding: '8px', width: '100%' }\"\r\n>\r\n <div class=\"page-container-title\" *ngIf=\"title\">{{ title }}</div>\r\n <div class=\"page-container-header\" *ngIf=\"showHeader\">\r\n <ng-container *ngTemplateOutlet=\"headerTpl\"></ng-container>\r\n </div>\r\n <div class=\"page-container-body\">\r\n <ng-container *ngTemplateOutlet=\"bodyTpl\"></ng-container>\r\n </div>\r\n</nz-card>\r\n",
13
- styles: [".page-container-title{padding-left:8px;font-size:16px;color:#1d1d1d;margin-bottom:8px}.page-container-title:before{content:\"\";display:inline-block;width:2px;height:16px;position:relative;left:-8px;top:3px;background-color:#096dd9}.page-container-header{box-sizing:border-box;padding:12px 24px;background:#f4f4f5}.page-container-body{box-sizing:border-box;padding:7px}"]
13
+ styles: [".page-container-title{padding-left:8px;font-size:16px;color:#1d1d1d;margin-bottom:8px}.page-container-title:before{content:\"\";display:inline-block;width:2px;height:16px;position:relative;left:-8px;top:3px;background-color:#096dd9}.page-container-header{box-sizing:border-box;padding:12px 24px;background:#f4f4f5}.page-container-body{box-sizing:border-box;padding:7px}\n"]
14
14
  },] }
15
15
  ];
16
16
  PageContainerComponent.ctorParameters = () => [];
@@ -520,4 +520,4 @@ AntdFormService.decorators = [
520
520
  AntdFormService.ctorParameters = () => [
521
521
  { type: FormBuilder }
522
522
  ];
523
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW50ZC1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvLXRhYmxlL3NyYy9saWIvcGFnZS1wdWJsaWMvYW50ZC1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUdMLFdBQVcsRUFDWCxTQUFTLEdBRVYsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQTBFcEUsZ0RBQWdEO0FBR2hELE1BQU0sT0FBTyxlQUFlO0lBdUIxQixpREFBaUQ7SUFDakQsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUF2Qm5DLGlEQUFpRDtRQUNqRCxjQUFTLEdBQThCLEVBQUUsQ0FBQztRQUMxQyxtQkFBYyxHQUFtQixRQUFRLENBQUM7UUFFMUMsaURBQWlEO1FBQ3pDLHNCQUFpQixHQUE0QixFQUFFLENBQUM7UUFDaEQsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUM3QixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBQzdCLG1CQUFjLEdBQXFDLEVBQUUsQ0FBQztRQUN0RCxzQkFBaUIsR0FHckIsRUFBRSxDQUFDO1FBQ0MsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFDakIseUJBQW9CLEdBQXVCO1lBQzFELFFBQVEsRUFBRSxTQUFTO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFHb0MsQ0FBQztJQUV2QyxxREFBcUQ7SUFFckQsdUJBQXVCO0lBQ2YsaUJBQWlCLENBQ3ZCLE1BQXFDO1FBRXJDLE9BQU8sQ0FDTCxPQUFPLE1BQU0sS0FBSyxRQUFRO1lBQzFCLE1BQU0sS0FBSyxJQUFJO1lBQ2YsTUFBTSxJQUFJLE1BQU07WUFDaEIsTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLENBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CO0lBQ1gscUJBQXFCLENBQzNCLE1BQWtCLEVBQ2xCLFFBQWtCO1FBRWxCLE1BQU0sV0FBVyxHQUF3QixFQUFFLENBQUM7UUFFNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFOztZQUNwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdkMsb0JBQW9CO2dCQUNwQixXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUMzQyxXQUFXLENBQUMsTUFBTSxRQUNsQixXQUFXLENBQUMsUUFBUSxtQ0FBSSxRQUFRLENBQ2pDLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxtQkFBbUI7Z0JBQ25CLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRztvQkFDakI7d0JBQ0UsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO3dCQUN4QixRQUFRLGNBQUUsV0FBVyxDQUFDLFFBQVEsbUNBQUksUUFBUSxtQ0FBSSxLQUFLO3FCQUNwRDtnQ0FDRCxXQUFXLENBQUMsVUFBVSwrQ0FBdEIsV0FBVyxvQ0FBbUIsRUFBRTtpQkFDakMsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO0lBQ1IsZUFBZSxDQUNiLElBQVksRUFDWixNQUFrQixFQUNsQixPQUFzRDtRQUV0RCxNQUFNLFdBQVcsR0FBd0IsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFOztZQUNwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdkMsaUJBQWlCO2dCQUNqQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQzVDLFdBQVcsQ0FBQyxNQUFNLEVBQ2xCLFdBQVcsQ0FBQyxRQUFRLENBQ3JCLENBQUM7Z0JBQ0YsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztnQkFFL0IsNkJBQTZCO2dCQUM3QixJQUFJLFdBQVcsQ0FBQyxhQUFhLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO2lCQUMvRDthQUNGO2lCQUFNO2dCQUNMLFNBQVM7Z0JBQ1QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHO29CQUNqQjt3QkFDRSxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7d0JBQ3hCLFFBQVEsUUFBRSxXQUFXLENBQUMsUUFBUSxtQ0FBSSxLQUFLO3FCQUN4QztnQ0FDRCxXQUFXLENBQUMsVUFBVSwrQ0FBdEIsV0FBVyxvQ0FBbUIsRUFBRTtpQkFDakMsQ0FBQztnQkFDRixJQUFJLFdBQVcsQ0FBQyxhQUFhLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO2lCQUMvRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsVUFBVSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztTQUN0QztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxpREFBaUQ7SUFFakQsT0FBTztJQUNQLGNBQWMsQ0FBQyxJQUFZLEVBQUUsS0FBVzs7UUFDdEMsTUFBQSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywwQ0FBRSxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQ3JDLENBQUM7SUFFRCxhQUFhO0lBQ2IsZ0JBQWdCLENBQUMsSUFBWTs7UUFDM0IsYUFBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1DQUFJLEtBQUssQ0FBQztJQUMvQyxDQUFDO0lBRUQsVUFBVTtJQUNWLE9BQU8sQ0FBQyxLQUFlO1FBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQixjQUFjO1lBQ2QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JDO1lBRUQsY0FBYztZQUNkLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQztZQUVELHdDQUF3QztZQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQjtJQUNkLGtCQUFrQixDQUN4QixTQUFvQixFQUNwQixJQUFZO1FBRVosSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQy9CLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLFlBQVksR0FBMkIsU0FBUyxDQUFDO1FBRXJELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksWUFBWSxTQUFTLENBQUMsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELFlBQVksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksWUFBWSxTQUFTLENBQUMsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBRUQsT0FBTyxZQUFZLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVztJQUNYLGVBQWUsQ0FDYixRQUFnQixFQUNoQixZQUF3QixFQUN4QixPQUFnQzs7UUFFaEMsTUFBTSxNQUFNLEdBQTBCO1lBQ3BDLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFFRixjQUFjO1FBQ2QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLGtCQUFrQjtZQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFOztnQkFDOUMsTUFBTSxLQUFLLEdBQUcsU0FBUyxRQUFRLGFBQWEsQ0FBQztnQkFDN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLFNBQVM7b0JBQ1QsS0FBSztpQkFDTixDQUFDLENBQUM7Z0JBQ0gsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSwrQ0FBckIsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNuRCxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFFRCw0QkFBNEI7UUFDNUIsTUFBTSxVQUFVLEdBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFVBQVUsQ0FBQztRQUN2QyxNQUFNLGVBQWUsR0FBRyxVQUFVO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQztZQUNwRCxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRWxCLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsNkJBQTZCO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7O2dCQUM5QyxNQUFNLEtBQUssR0FBRyxVQUFVO29CQUN0QixDQUFDLENBQUMsNkJBQTZCLFVBQVUsYUFBYTtvQkFDdEQsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO2dCQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDakIsU0FBUztvQkFDVCxLQUFLO2lCQUNOLENBQUMsQ0FBQztnQkFDSCxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLCtDQUFyQixPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUVELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdkM7UUFFRCxjQUFjO1FBQ2QsTUFBTSxhQUFhLEdBQW9DLEVBQUUsQ0FBQztRQUMxRCxNQUFNLGtCQUFrQixHQUF1QyxFQUFFLENBQUM7UUFFbEUsc0JBQXNCO1FBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTs7WUFDaEUsSUFBSTtnQkFDRixnQkFBZ0I7Z0JBQ2hCLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDbEMsTUFBTSxLQUFLLEdBQUcsVUFBVSxTQUFTLG1CQUMvQixVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ3ZDLEVBQUUsQ0FBQztvQkFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDakIsU0FBUzt3QkFDVCxLQUFLO3FCQUNOLENBQUMsQ0FBQztvQkFDSCxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLCtDQUFyQixPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO29CQUNqRCxPQUFPO2lCQUNSO2dCQUVELFdBQVc7Z0JBQ1gsSUFBSSxPQUF3QixDQUFDO2dCQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDdkMsaUJBQWlCO29CQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUNsQyxXQUFXLENBQUMsTUFBTSxFQUNsQixXQUFXLENBQUMsUUFBUSxDQUNyQixDQUFDO29CQUNGLDZCQUE2QjtvQkFDN0IsSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFO3dCQUM3QixNQUFNLGVBQWUsR0FBRyxVQUFVOzRCQUNoQyxDQUFDLENBQUMsR0FBRyxVQUFVLElBQUksU0FBUyxFQUFFOzRCQUM5QixDQUFDLENBQUMsU0FBUyxDQUFDO3dCQUNkLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7cUJBQ2pFO2lCQUNGO3FCQUFNO29CQUNMLG1CQUFtQjtvQkFDbkIsTUFBTSxjQUFjLEdBQTJCO3dCQUM3QyxVQUFVLGNBQUUsV0FBVyxDQUFDLFVBQVUsK0NBQXRCLFdBQVcsb0NBQW1CLEVBQUU7cUJBQzdDLENBQUM7b0JBQ0YsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQzdELGlCQUFpQjtvQkFDakIsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFO3dCQUN4QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7cUJBQ25CO29CQUNELFNBQVM7b0JBQ1QsSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFO3dCQUM3QixNQUFNLGVBQWUsR0FBRyxVQUFVOzRCQUNoQyxDQUFDLENBQUMsR0FBRyxVQUFVLElBQUksU0FBUyxFQUFFOzRCQUM5QixDQUFDLENBQUMsU0FBUyxDQUFDO3dCQUNkLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7cUJBQ2pFO2lCQUNGO2dCQUVELGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUM7Z0JBRW5DLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3QixNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLCtDQUFyQixPQUFPLEVBQWlCLFNBQVMsRUFBRSxJQUFJLEVBQUU7YUFDMUM7WUFBQyxPQUFPLEtBQVUsRUFBRTtnQkFDbkIsTUFBTSxZQUFZLEdBQ2hCLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sTUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsUUFBUSxHQUFFLElBQUksZUFBZSxDQUFDO2dCQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDakIsU0FBUztvQkFDVCxLQUFLLEVBQUUsWUFBWTtpQkFDcEIsQ0FBQyxDQUFDO2dCQUNILE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksK0NBQXJCLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7YUFDekQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILHVCQUF1QjtRQUN2QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7Z0JBQzdELGVBQWUsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDO1lBRUgsY0FBYztZQUNkLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUM3RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1lBRUgsY0FBYztZQUNkLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLHNCQUFzQixFQUFFO2dCQUNuQyxlQUFlLENBQUMsc0JBQXNCLENBQUM7b0JBQ3JDLFNBQVMsUUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUyxtQ0FBSSxJQUFJO2lCQUN0QyxDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsY0FBYztRQUNkLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO0lBQ1gsa0JBQWtCLENBQ2hCLFFBQWdCLEVBQ2hCLFVBQW9CLEVBQ3BCLE9BQW1DO1FBRW5DLE1BQU0sTUFBTSxHQUE2QjtZQUN2QyxPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBRUYsY0FBYztRQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTs7Z0JBQy9CLE1BQU0sS0FBSyxHQUFHLFNBQVMsUUFBUSxhQUFhLENBQUM7Z0JBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNqQixTQUFTO29CQUNULEtBQUs7aUJBQ04sQ0FBQyxDQUFDO2dCQUNILE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGNBQWMsK0NBQXZCLE9BQU8sRUFBbUIsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDckQsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBRUQsaUJBQWlCO1FBQ2pCLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztRQUNwQyxNQUFNLHdCQUF3QixHQUFhLEVBQUUsQ0FBQztRQUU5QyxpQkFBaUI7UUFDakIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFOztZQUMvQixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXpDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ1osTUFBTSxLQUFLLEdBQUcsVUFBVSxTQUFTLGFBQWEsQ0FBQztnQkFDL0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLFNBQVM7b0JBQ1QsS0FBSztpQkFDTixDQUFDLENBQUM7Z0JBQ0gsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsY0FBYywrQ0FBdkIsT0FBTyxFQUFtQixTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDbkQsT0FBTzthQUNSO1lBRUQsVUFBVTtZQUNWLHdCQUF3QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsY0FBYztRQUNkLElBQUk7WUFDRix3QkFBd0I7WUFDeEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFOztnQkFDbkMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9CLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGNBQWMsK0NBQXZCLE9BQU8sRUFBbUIsU0FBUyxFQUFFLElBQUksRUFBRTtZQUM3QyxDQUFDLENBQUMsQ0FBQztZQUVILGVBQWU7WUFDZixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixvQkFBb0I7WUFDcEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFOztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUN2QyxNQUFNLFlBQVksR0FDaEIsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxNQUFJLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRLEdBQUUsSUFBSSx3QkFBd0IsQ0FBQztvQkFDbEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQ2pCLFNBQVM7d0JBQ1QsS0FBSyxFQUFFLFlBQVk7cUJBQ3BCLENBQUMsQ0FBQztvQkFDSCxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxjQUFjLCtDQUF2QixPQUFPLEVBQW1CLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2lCQUMzRDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxjQUFjO1FBQ2QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFFNUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU87SUFDUCxlQUFlLENBQ2IsSUFBWSxFQUNaLE1BQTJCLEVBQzNCLE9BQWlDOztRQUVqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUNWLDRDQUE0QyxJQUFJLGNBQWMsQ0FDL0QsQ0FBQztZQUNGLE9BQU87U0FDUjtRQUVELFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQzNCLFNBQVMsUUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUyxtQ0FBSSxJQUFJO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsWUFBWSxDQUNWLElBQVksRUFDWixPQUFxRDs7UUFFckQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BELE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdDO2FBQU07WUFDTCxXQUFXO1lBQ1gsSUFBSSxDQUFDLHNCQUFzQixDQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUNwQixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUyxtQ0FBSSxJQUFJLFFBQzFCLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLG1DQUFJLEtBQUssQ0FDM0IsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsb0JBQW9CO0lBQ1osc0JBQXNCLENBQzVCLE9BQXdCLEVBQ3hCLFNBQWtCLEVBQ2xCLFFBQWlCO1FBRWpCLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLHNCQUFzQixDQUFDO2dCQUM3QixTQUFTO2dCQUNULFFBQVE7YUFDVCxDQUFDLENBQUM7U0FDSjtRQUVELDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsbURBQW1EO0lBRW5ELGFBQWE7SUFDYixvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsV0FBbUI7O1FBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQ1YsaURBQWlELElBQUksY0FBYyxDQUNwRSxDQUFDO1lBQ0YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysb0RBQW9ELFdBQVcsd0JBQXdCLElBQUksSUFBSSxDQUNoRyxDQUFDO1lBQ0YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ25CLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCwrQkFBK0I7UUFDL0IsTUFBTSxhQUFhLFNBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQywwQ0FBRyxXQUFXLENBQUMsQ0FBQztRQUNsRSxNQUFNLGNBQWMsbUNBQ2YsSUFBSSxDQUFDLG9CQUFvQixHQUN6QixDQUFDLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUFJLEVBQUUsQ0FBQyxDQUN6QixDQUFDO1FBRUYsS0FBSyxNQUFNLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsa0JBQWtCO2dCQUNsQixPQUFPLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDbkQ7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGlEQUFpRDtJQUVqRCxhQUFhO0lBQ2IsZ0JBQWdCLENBQ2QsSUFBWSxFQUNaLE9BQTJCLEVBQzNCLE9BQXNCO1FBRXRCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQ1YsNkNBQTZDLElBQUksY0FBYyxDQUNoRSxDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxXQUFXO0lBQ1gsaUJBQWlCLENBQ2YsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLE9BQTJCLEVBQzNCLE9BQXNCO1FBRXRCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQ1YsOENBQThDLElBQUksY0FBYyxDQUNqRSxDQUFDO1lBQ0YsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLENBQUMsSUFBSSxDQUNWLGlEQUFpRCxXQUFXLHdCQUF3QixJQUFJLElBQUksQ0FDN0YsQ0FBQztZQUNGLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsaURBQWlEO0lBRWpELFNBQVM7SUFDVCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQzlDLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsdUJBQXVCLENBQUMsSUFBWTtRQUNsQyxNQUFNLHFCQUFxQixHQUFHLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEUsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDMUMscUJBQXFCLENBQ1AsQ0FBQztRQUVqQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtnQkFDekMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDdEMscUJBQXFCLENBQ1AsQ0FBQztnQkFDakIsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDOUQsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDOUQsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUN2QjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUM5QixTQUFTLEVBQUUsSUFBSTtnQkFDZixPQUFPLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztZQUVILGtCQUFrQjtZQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLE9BQU87U0FDUjtRQUVELGdCQUFnQjtRQUNoQixhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGlEQUFpRDtJQUVqRCxvQkFBb0I7SUFDWixxQkFBcUIsQ0FBQyxLQUFVO1FBQ3RDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3pDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCx3QkFBd0I7UUFDeEIsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLFFBQVEsR0FBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQzNDLGlCQUFpQjtZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFVBQVU7SUFDRiw0QkFBNEIsQ0FDbEMsTUFBeUMsRUFDekMsT0FBMkIsRUFDM0IsT0FBc0I7UUFFdEIsSUFBSSxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUV4QyxJQUFJLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsS0FBSSxJQUFJLEVBQUU7WUFDN0IsYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxvQkFBb0IsTUFBSyxLQUFLLEVBQUU7WUFDM0MsYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsSUFBSSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkI7UUFFRCxPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7OztZQTFvQkYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7O1lBakZoQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIEFic3RyYWN0Q29udHJvbE9wdGlvbnMsXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvckZuLFxyXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PSDnsbvlnovlrprkuYkgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8vIOWtl+autemUmeivr+a2iOaBr+exu+Wei++8iOWtl+espuS4suaIluWHveaVsO+8iVxyXG5leHBvcnQgdHlwZSBGaWVsZEVycm9yTWVzc2FnZSA9XHJcbiAgfCBzdHJpbmdcclxuICB8ICgoY29udGV4dDogeyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7IGNvbnRyb2xOYW1lOiBzdHJpbmcgfSkgPT4gc3RyaW5nKTtcclxuXHJcbi8vIOWtl+autemUmeivr+a2iOaBr+mbhuWQiFxyXG5leHBvcnQgdHlwZSBGaWVsZEVycm9yTWVzc2FnZXMgPSBSZWNvcmQ8c3RyaW5nLCBGaWVsZEVycm9yTWVzc2FnZT47XHJcblxyXG4vLyDlrZfmrrXphY3nva5cclxuZXhwb3J0IHR5cGUgRmllbGRDb25maWcgPSB7XHJcbiAgdmFsdWU6IGFueTtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86ICgpID0+IFZhbGlkYXRvckZuW107XHJcbiAgZXJyb3JNZXNzYWdlcz86IEZpZWxkRXJyb3JNZXNzYWdlcztcclxufTtcclxuXHJcbi8vIOW1jOWllyBGb3JtR3JvdXAg6YWN572uXHJcbmV4cG9ydCB0eXBlIEZvcm1Hcm91cENvbmZpZyA9IHtcclxuICB0eXBlOiBcImdyb3VwXCI7XHJcbiAgZmllbGRzOiBGb3JtQ29uZmlnO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogKCkgPT4gVmFsaWRhdG9yRm5bXTtcclxuICBlcnJvck1lc3NhZ2VzPzogRmllbGRFcnJvck1lc3NhZ2VzO1xyXG59O1xyXG5cclxuLy8g6KGo5Y2V5L+u5pS557G75Z6LXHJcbmV4cG9ydCB0eXBlIEZvcm1Nb2RpZnlUeXBlID0gXCJjcmVhdGVcIiB8IFwidXBkYXRlXCI7XHJcblxyXG4vLyDooajljZXphY3nva7vvIjmlK/mjIHmma7pgJrlrZfmrrXlkozltYzlpZcgRm9ybUdyb3Vw77yJXHJcbmV4cG9ydCB0eXBlIEZvcm1Db25maWcgPSBSZWNvcmQ8c3RyaW5nLCBGaWVsZENvbmZpZyB8IEZvcm1Hcm91cENvbmZpZz47XHJcblxyXG4vLyDnm5HlkKzpgInpoblcclxuZXhwb3J0IHR5cGUgV2F0Y2hPcHRpb25zID0ge1xyXG4gIGRlYm91bmNlPzogbnVtYmVyO1xyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkPzogYm9vbGVhbjtcclxuICBlbWl0SW5pdGlhbD86IGJvb2xlYW47XHJcbn07XHJcblxyXG4vLyDmibnph4/mt7vliqDlrZfmrrXphY3nva7pgInpoblcclxuZXhwb3J0IHR5cGUgQWRkRmllbGRzQ29uZmlnT3B0aW9ucyA9IHtcclxuICBlbWl0RXZlbnQ/OiBib29sZWFuO1xyXG4gIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHk/OiBib29sZWFuO1xyXG4gIG9uRmllbGRBZGRlZD86IChmaWVsZE5hbWU6IHN0cmluZywgc3VjY2VzczogYm9vbGVhbiwgZXJyb3I/OiBzdHJpbmcpID0+IHZvaWQ7IC8vIOavj+S4quWtl+autea3u+WKoOeahOWbnuiwg1xyXG4gIHRhcmdldFBhdGg/OiBzdHJpbmc7IC8vIOebruagh+i3r+W+hO+8jOeUqOS6juWcqOW1jOWllyBGb3JtR3JvdXAg5YaF6YOo5re75Yqg5a2X5q6177yM5L6L5aaCOiBcImNhcmRCYXNlSW5mb1wiIOaIliBcInVzZXJJbmZvLmFkZHJlc3NJbmZvXCJcclxufTtcclxuXHJcbi8vIOaJuemHj+a3u+WKoOWtl+autemFjee9rue7k+aenFxyXG5leHBvcnQgdHlwZSBBZGRGaWVsZHNDb25maWdSZXN1bHQgPSB7XHJcbiAgc3VjY2VzczogYm9vbGVhbjtcclxuICBhZGRlZDogc3RyaW5nW107IC8vIOaIkOWKn+a3u+WKoOeahOWtl+auteWQjeWIl+ihqFxyXG4gIGZhaWxlZDogQXJyYXk8eyBmaWVsZE5hbWU6IHN0cmluZzsgZXJyb3I6IHN0cmluZyB9PjsgLy8g5aSx6LSl55qE5a2X5q615Y+K6ZSZ6K+v5L+h5oGvXHJcbn07XHJcblxyXG4vLyDmibnph4/liKDpmaTlrZfmrrXphY3nva7pgInpoblcclxuZXhwb3J0IHR5cGUgUmVtb3ZlRmllbGRzQ29uZmlnT3B0aW9ucyA9IHtcclxuICBlbWl0RXZlbnQ/OiBib29sZWFuO1xyXG4gIG9uRmllbGRSZW1vdmVkPzogKFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBzdWNjZXNzOiBib29sZWFuLFxyXG4gICAgZXJyb3I/OiBzdHJpbmdcclxuICApID0+IHZvaWQ7IC8vIOavj+S4quWtl+auteWIoOmZpOeahOWbnuiwg1xyXG59O1xyXG5cclxuLy8g5om56YeP5Yig6Zmk5a2X5q616YWN572u57uT5p6cXHJcbmV4cG9ydCB0eXBlIFJlbW92ZUZpZWxkc0NvbmZpZ1Jlc3VsdCA9IHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIHJlbW92ZWQ6IHN0cmluZ1tdOyAvLyDmiJDlip/liKDpmaTnmoTlrZfmrrXlkI3liJfooahcclxuICBmYWlsZWQ6IEFycmF5PHsgZmllbGROYW1lOiBzdHJpbmc7IGVycm9yOiBzdHJpbmcgfT47IC8vIOWksei0peeahOWtl+auteWPiumUmeivr+S/oeaBr1xyXG59O1xyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT0g5pyN5Yqh57G7ID09PT09PT09PT09PT09PT09PT09XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXHJcbmV4cG9ydCBjbGFzcyBBbnRkRm9ybVNlcnZpY2Uge1xyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOWFrOWFseWxnuaApyA9PT09PT09PT09PT09PT09PT09PVxyXG4gIGZvcm1TdG9yZTogUmVjb3JkPHN0cmluZywgRm9ybUdyb3VwPiA9IHt9O1xyXG4gIGZvcm1Nb2RpZnlUeXBlOiBGb3JtTW9kaWZ5VHlwZSA9IFwiY3JlYXRlXCI7XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOengeacieWxnuaApyA9PT09PT09PT09PT09PT09PT09PVxyXG4gIHByaXZhdGUgZm9ybVJlZ2lzdGVyU3RvcmU6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgcHJpdmF0ZSBsYWJlbFdpZHRoOiBzdHJpbmcgPSBcIjEyMHB4XCI7XHJcbiAgcHJpdmF0ZSBsYWJlbEFsaWduOiBzdHJpbmcgPSBcInJpZ2h0XCI7XHJcbiAgcHJpdmF0ZSBsYWJlbE9ic2VydmVyczogUmVjb3JkPHN0cmluZywgTXV0YXRpb25PYnNlcnZlcj4gPSB7fTtcclxuICBwcml2YXRlIGVycm9yTWVzc2FnZVN0b3JlOiBSZWNvcmQ8XHJcbiAgICBzdHJpbmcsXHJcbiAgICBSZWNvcmQ8c3RyaW5nLCBGaWVsZEVycm9yTWVzc2FnZXM+XHJcbiAgPiA9IHt9O1xyXG4gIHByaXZhdGUgY2xhc3NQcmVmaXggPSBcImFudC1mb3JtLVwiO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEVycm9yTWVzc2FnZXM6IEZpZWxkRXJyb3JNZXNzYWdlcyA9IHtcclxuICAgIHJlcXVpcmVkOiBcIuivpeWtl+auteS4uuW/heWhq+mhuVwiLFxyXG4gICAgbWlubGVuZ3RoOiBcIui+k+WFpemVv+W6puS4jei2s1wiLFxyXG4gICAgbWF4bGVuZ3RoOiBcIui+k+WFpemVv+W6pui2hemZkFwiLFxyXG4gICAgZW1haWw6IFwi6K+36L6T5YWl5ZCI5rOV55qE6YKu566x5Zyw5Z2AXCIsXHJcbiAgICBwYXR0ZXJuOiBcIui+k+WFpeagvOW8j+S4jeato+ehrlwiLFxyXG4gIH07XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOaehOmAoOWHveaVsCA9PT09PT09PT09PT09PT09PT09PVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxyXG5cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PSDooajljZXliJvlu7rlkozliJ3lp4vljJYgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgLy8g5Yik5pat5piv5ZCm5Li65bWM5aWXIEZvcm1Hcm91cCDphY3nva5cclxuICBwcml2YXRlIGlzRm9ybUdyb3VwQ29uZmlnKFxyXG4gICAgY29uZmlnOiBGaWVsZENvbmZpZyB8IEZvcm1Hcm91cENvbmZpZ1xyXG4gICk6IGNvbmZpZyBpcyBGb3JtR3JvdXBDb25maWcge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdHlwZW9mIGNvbmZpZyA9PT0gXCJvYmplY3RcIiAmJlxyXG4gICAgICBjb25maWcgIT09IG51bGwgJiZcclxuICAgICAgXCJ0eXBlXCIgaW4gY29uZmlnICYmXHJcbiAgICAgIGNvbmZpZy50eXBlID09PSBcImdyb3VwXCJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyDpgJLlvZLliJvlu7rltYzlpZcgRm9ybUdyb3VwXHJcbiAgcHJpdmF0ZSBjcmVhdGVOZXN0ZWRGb3JtR3JvdXAoXHJcbiAgICBmaWVsZHM6IEZvcm1Db25maWcsXHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cclxuICApOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgZ3JvdXBDb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgICBPYmplY3QuZW50cmllcyhmaWVsZHMpLmZvckVhY2goKFtrZXksIGZpZWxkQ29uZmlnXSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc0Zvcm1Hcm91cENvbmZpZyhmaWVsZENvbmZpZykpIHtcclxuICAgICAgICAvLyDpgJLlvZLliJvlu7rltYzlpZfnmoQgRm9ybUdyb3VwXHJcbiAgICAgICAgZ3JvdXBDb25maWdba2V5XSA9IHRoaXMuY3JlYXRlTmVzdGVkRm9ybUdyb3VwKFxyXG4gICAgICAgICAgZmllbGRDb25maWcuZmllbGRzLFxyXG4gICAgICAgICAgZmllbGRDb25maWcuZGlzYWJsZWQgPz8gZGlzYWJsZWRcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIOWIm+W7uuaZrumAmiBGb3JtQ29udHJvbFxyXG4gICAgICAgIGdyb3VwQ29uZmlnW2tleV0gPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiBmaWVsZENvbmZpZy52YWx1ZSxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZpZWxkQ29uZmlnLmRpc2FibGVkID8/IGRpc2FibGVkID8/IGZhbHNlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGZpZWxkQ29uZmlnLnZhbGlkYXRvcnM/LigpID8/IFtdLFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKGdyb3VwQ29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8vIOWIneWni+WMluihqOWNlVxyXG4gIGNyZWF0ZUZvcm1Hcm91cChcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGNvbmZpZzogRm9ybUNvbmZpZyxcclxuICAgIG9wdGlvbnM/OiB7IGxhYmVsV2lkdGg/OiBzdHJpbmc7IGxhYmVsQWxpZ24/OiBzdHJpbmcgfVxyXG4gICk6IEZvcm1Hcm91cCB7XHJcbiAgICBjb25zdCBncm91cENvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtuYW1lXSA9IHt9O1xyXG5cclxuICAgIE9iamVjdC5lbnRyaWVzKGNvbmZpZykuZm9yRWFjaCgoW2tleSwgZmllbGRDb25maWddKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzRm9ybUdyb3VwQ29uZmlnKGZpZWxkQ29uZmlnKSkge1xyXG4gICAgICAgIC8vIOWkhOeQhuW1jOWllyBGb3JtR3JvdXBcclxuICAgICAgICBjb25zdCBuZXN0ZWRHcm91cCA9IHRoaXMuY3JlYXRlTmVzdGVkRm9ybUdyb3VwKFxyXG4gICAgICAgICAgZmllbGRDb25maWcuZmllbGRzLFxyXG4gICAgICAgICAgZmllbGRDb25maWcuZGlzYWJsZWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGdyb3VwQ29uZmlnW2tleV0gPSBuZXN0ZWRHcm91cDtcclxuXHJcbiAgICAgICAgLy8g5a2Y5YKo5bWM5aWXIEZvcm1Hcm91cCDnmoTplJnor6/mtojmga/vvIjlpoLmnpzpnIDopoHvvIlcclxuICAgICAgICBpZiAoZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcykge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtuYW1lXVtrZXldID0gZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8g5aSE55CG5pmu6YCa5a2X5q61XHJcbiAgICAgICAgZ3JvdXBDb25maWdba2V5XSA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6IGZpZWxkQ29uZmlnLnZhbHVlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZmllbGRDb25maWcuZGlzYWJsZWQgPz8gZmFsc2UsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZmllbGRDb25maWcudmFsaWRhdG9ycz8uKCkgPz8gW10sXHJcbiAgICAgICAgXTtcclxuICAgICAgICBpZiAoZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcykge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtuYW1lXVtrZXldID0gZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChvcHRpb25zPy5sYWJlbFdpZHRoKSB7XHJcbiAgICAgIHRoaXMubGFiZWxXaWR0aCA9IG9wdGlvbnMubGFiZWxXaWR0aDtcclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zPy5sYWJlbEFsaWduKSB7XHJcbiAgICAgIHRoaXMubGFiZWxBbGlnbiA9IG9wdGlvbnMubGFiZWxBbGlnbjtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybVN0b3JlW25hbWVdID0gdGhpcy5mYi5ncm91cChncm91cENvbmZpZyk7XHJcbiAgICB0aGlzLmZvcm1SZWdpc3RlclN0b3JlW25hbWVdID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0Q1NTVmFyaWFibGVzVG9UYXJnZXQobmFtZSk7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgfVxyXG5cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PSDooajljZXmk43kvZwgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgLy8g6YeN572u6KGo5Y2VXHJcbiAgcmVzZXRGb3JtR3JvdXAobmFtZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtU3RvcmVbbmFtZV0/LnJlc2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vIOajgOa1i+ihqOWNleaYr+WQpuWujOaIkOazqOWGjFxyXG4gIGlzRm9ybVJlZ2lzdGVyZWQobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVnaXN0ZXJTdG9yZVtuYW1lXSA/PyBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIOmUgOavgeWvueW6lOeahOihqOWNlVxyXG4gIGRlc3RvcnkobmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBuYW1lcy5mb3JFYWNoKChuYW1lKSA9PiB7XHJcbiAgICAgIC8vIDIuIOa4heeQhumUmeivr+a2iOaBr+WtmOWCqFxyXG4gICAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtuYW1lXSkge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmVycm9yTWVzc2FnZVN0b3JlW25hbWVdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyAzLiDmuIXnkIbooajljZXms6jlhozmoIforrBcclxuICAgICAgaWYgKHRoaXMuZm9ybVJlZ2lzdGVyU3RvcmVbbmFtZV0pIHtcclxuICAgICAgICBkZWxldGUgdGhpcy5mb3JtUmVnaXN0ZXJTdG9yZVtuYW1lXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gNC4g5riF55CG6KGo5Y2V57uE77yIQW5ndWxhciDkvJroh6rliqjlpITnkIYgRm9ybUdyb3VwIOeahOa4heeQhu+8iVxyXG4gICAgICBpZiAodGhpcy5mb3JtU3RvcmVbbmFtZV0pIHtcclxuICAgICAgICBkZWxldGUgdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g5qC55o2u6Lev5b6E6I635Y+W5bWM5aWX55qEIEZvcm1Hcm91cFxyXG4gIHByaXZhdGUgZ2V0TmVzdGVkRm9ybUdyb3VwKFxyXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXHJcbiAgICBwYXRoOiBzdHJpbmdcclxuICApOiBGb3JtR3JvdXAgfCBudWxsIHtcclxuICAgIGlmICghcGF0aCB8fCBwYXRoLnRyaW0oKSA9PT0gXCJcIikge1xyXG4gICAgICByZXR1cm4gZm9ybUdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhdGhQYXJ0cyA9IHBhdGguc3BsaXQoXCIuXCIpLmZpbHRlcigocCkgPT4gcC50cmltKCkgIT09IFwiXCIpO1xyXG4gICAgbGV0IGN1cnJlbnRHcm91cDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IGZvcm1Hcm91cDtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGF0aFBhcnRzKSB7XHJcbiAgICAgIGlmICghY3VycmVudEdyb3VwIHx8ICEoY3VycmVudEdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGN1cnJlbnRHcm91cCA9IGN1cnJlbnRHcm91cC5nZXQocGFydCk7XHJcbiAgICAgIGlmICghY3VycmVudEdyb3VwIHx8ICEoY3VycmVudEdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRHcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCA/IGN1cnJlbnRHcm91cCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyDmibnph4/mt7vliqDlrZfmrrXphY3nva5cclxuICBhZGRGaWVsZHNDb25maWcoXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGRzQ29uZmlnOiBGb3JtQ29uZmlnLFxyXG4gICAgb3B0aW9ucz86IEFkZEZpZWxkc0NvbmZpZ09wdGlvbnNcclxuICApOiBBZGRGaWVsZHNDb25maWdSZXN1bHQge1xyXG4gICAgY29uc3QgcmVzdWx0OiBBZGRGaWVsZHNDb25maWdSZXN1bHQgPSB7XHJcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXHJcbiAgICAgIGFkZGVkOiBbXSxcclxuICAgICAgZmFpbGVkOiBbXSxcclxuICAgIH07XHJcblxyXG4gICAgLy8gMS4g6aqM6K+B6KGo5Y2V5piv5ZCm5a2Y5ZyoXHJcbiAgICBjb25zdCByb290Rm9ybUdyb3VwID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFyb290Rm9ybUdyb3VwKSB7XHJcbiAgICAgIC8vIOWmguaenOihqOWNleS4jeWtmOWcqO+8jOaJgOacieWtl+autemDveWksei0pVxyXG4gICAgICBPYmplY3Qua2V5cyhmaWVsZHNDb25maWcpLmZvckVhY2goKGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gYEZvcm0gXCIke2Zvcm1OYW1lfVwiIG5vdCBmb3VuZGA7XHJcbiAgICAgICAgcmVzdWx0LmZhaWxlZC5wdXNoKHtcclxuICAgICAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9wdGlvbnM/Lm9uRmllbGRBZGRlZD8uKGZpZWxkTmFtZSwgZmFsc2UsIGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJlc3VsdC5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMi4g6I635Y+W55uu5qCHIEZvcm1Hcm91cO+8iOaUr+aMgeW1jOWll+i3r+W+hO+8iVxyXG4gICAgY29uc3QgdGFyZ2V0UGF0aCA9IG9wdGlvbnM/LnRhcmdldFBhdGg7XHJcbiAgICBjb25zdCB0YXJnZXRGb3JtR3JvdXAgPSB0YXJnZXRQYXRoXHJcbiAgICAgID8gdGhpcy5nZXROZXN0ZWRGb3JtR3JvdXAocm9vdEZvcm1Hcm91cCwgdGFyZ2V0UGF0aClcclxuICAgICAgOiByb290Rm9ybUdyb3VwO1xyXG5cclxuICAgIGlmICghdGFyZ2V0Rm9ybUdyb3VwKSB7XHJcbiAgICAgIC8vIOWmguaenOebruaghyBGb3JtR3JvdXAg5LiN5a2Y5Zyo77yM5omA5pyJ5a2X5q616YO95aSx6LSlXHJcbiAgICAgIE9iamVjdC5rZXlzKGZpZWxkc0NvbmZpZykuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0YXJnZXRQYXRoXHJcbiAgICAgICAgICA/IGBUYXJnZXQgRm9ybUdyb3VwIGF0IHBhdGggXCIke3RhcmdldFBhdGh9XCIgbm90IGZvdW5kYFxyXG4gICAgICAgICAgOiBgRm9ybUdyb3VwIG5vdCBmb3VuZGA7XHJcbiAgICAgICAgcmVzdWx0LmZhaWxlZC5wdXNoKHtcclxuICAgICAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9wdGlvbnM/Lm9uRmllbGRBZGRlZD8uKGZpZWxkTmFtZSwgZmFsc2UsIGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJlc3VsdC5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMy4g5Yid5aeL5YyWIGVycm9yTWVzc2FnZVN0b3Jl77yI5aaC5p6c5LiN5a2Y5Zyo77yJXHJcbiAgICBpZiAoIXRoaXMuZXJyb3JNZXNzYWdlU3RvcmVbZm9ybU5hbWVdKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlU3RvcmVbZm9ybU5hbWVdID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgLy8gNC4g5om56YeP5p6E5bu65o6n5Lu26YWN572uXHJcbiAgICBjb25zdCBjb250cm9sc1RvQWRkOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+ID0ge307XHJcbiAgICBjb25zdCBlcnJvck1lc3NhZ2VzVG9BZGQ6IFJlY29yZDxzdHJpbmcsIEZpZWxkRXJyb3JNZXNzYWdlcz4gPSB7fTtcclxuXHJcbiAgICAvLyA1LiDpgY3ljobmiYDmnInlrZfmrrXphY3nva7vvIzov5vooYzpqozor4HlkozmnoTlu7pcclxuICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkc0NvbmZpZykuZm9yRWFjaCgoW2ZpZWxkTmFtZSwgZmllbGRDb25maWddKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgLy8gNS4xIOajgOafpeWtl+auteaYr+WQpuW3suWtmOWcqFxyXG4gICAgICAgIGlmICh0YXJnZXRGb3JtR3JvdXAuZ2V0KGZpZWxkTmFtZSkpIHtcclxuICAgICAgICAgIGNvbnN0IGVycm9yID0gYEZpZWxkIFwiJHtmaWVsZE5hbWV9XCIgYWxyZWFkeSBleGlzdHMke1xyXG4gICAgICAgICAgICB0YXJnZXRQYXRoID8gYCBpbiBcIiR7dGFyZ2V0UGF0aH1cImAgOiBcIlwiXHJcbiAgICAgICAgICB9YDtcclxuICAgICAgICAgIHJlc3VsdC5mYWlsZWQucHVzaCh7XHJcbiAgICAgICAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIG9wdGlvbnM/Lm9uRmllbGRBZGRlZD8uKGZpZWxkTmFtZSwgZmFsc2UsIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIDUuMiDliJvlu7rmjqfku7ZcclxuICAgICAgICBsZXQgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0Zvcm1Hcm91cENvbmZpZyhmaWVsZENvbmZpZykpIHtcclxuICAgICAgICAgIC8vIOWIm+W7uuW1jOWllyBGb3JtR3JvdXBcclxuICAgICAgICAgIGNvbnRyb2wgPSB0aGlzLmNyZWF0ZU5lc3RlZEZvcm1Hcm91cChcclxuICAgICAgICAgICAgZmllbGRDb25maWcuZmllbGRzLFxyXG4gICAgICAgICAgICBmaWVsZENvbmZpZy5kaXNhYmxlZFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIC8vIOWtmOWCqOW1jOWllyBGb3JtR3JvdXAg55qE6ZSZ6K+v5raI5oGv77yI5aaC5p6c6ZyA6KaB77yJXHJcbiAgICAgICAgICBpZiAoZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcykge1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VLZXkgPSB0YXJnZXRQYXRoXHJcbiAgICAgICAgICAgICAgPyBgJHt0YXJnZXRQYXRofS4ke2ZpZWxkTmFtZX1gXHJcbiAgICAgICAgICAgICAgOiBmaWVsZE5hbWU7XHJcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZXNUb0FkZFtlcnJvck1lc3NhZ2VLZXldID0gZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8g5Yib5bu65pmu6YCaIEZvcm1Db250cm9sXHJcbiAgICAgICAgICBjb25zdCBjb250cm9sT3B0aW9uczogQWJzdHJhY3RDb250cm9sT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgdmFsaWRhdG9yczogZmllbGRDb25maWcudmFsaWRhdG9ycz8uKCkgPz8gW10sXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbChmaWVsZENvbmZpZy52YWx1ZSwgY29udHJvbE9wdGlvbnMpO1xyXG4gICAgICAgICAgLy8g6K6+572uIGRpc2FibGVkIOeKtuaAgVxyXG4gICAgICAgICAgaWYgKGZpZWxkQ29uZmlnLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8g5a2Y5YKo6ZSZ6K+v5raI5oGvXHJcbiAgICAgICAgICBpZiAoZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcykge1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VLZXkgPSB0YXJnZXRQYXRoXHJcbiAgICAgICAgICAgICAgPyBgJHt0YXJnZXRQYXRofS4ke2ZpZWxkTmFtZX1gXHJcbiAgICAgICAgICAgICAgOiBmaWVsZE5hbWU7XHJcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZXNUb0FkZFtlcnJvck1lc3NhZ2VLZXldID0gZmllbGRDb25maWcuZXJyb3JNZXNzYWdlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnRyb2xzVG9BZGRbZmllbGROYW1lXSA9IGNvbnRyb2w7XHJcblxyXG4gICAgICAgIHJlc3VsdC5hZGRlZC5wdXNoKGZpZWxkTmFtZSk7XHJcbiAgICAgICAgb3B0aW9ucz8ub25GaWVsZEFkZGVkPy4oZmllbGROYW1lLCB0cnVlKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XHJcbiAgICAgICAgICBlcnJvcj8ubWVzc2FnZSB8fCBlcnJvcj8udG9TdHJpbmcoKSB8fCBcIlVua25vd24gZXJyb3JcIjtcclxuICAgICAgICByZXN1bHQuZmFpbGVkLnB1c2goe1xyXG4gICAgICAgICAgZmllbGROYW1lLFxyXG4gICAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBvcHRpb25zPy5vbkZpZWxkQWRkZWQ/LihmaWVsZE5hbWUsIGZhbHNlLCBlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyA2LiDmibnph4/mt7vliqDliLDnm67moIcgRm9ybUdyb3VwXHJcbiAgICBpZiAoT2JqZWN0LmtleXMoY29udHJvbHNUb0FkZCkubGVuZ3RoID4gMCkge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhjb250cm9sc1RvQWRkKS5mb3JFYWNoKChbZmllbGROYW1lLCBjb250cm9sXSkgPT4ge1xyXG4gICAgICAgIHRhcmdldEZvcm1Hcm91cC5hZGRDb250cm9sKGZpZWxkTmFtZSwgY29udHJvbCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gNy4g5om56YeP5a2Y5YKo6ZSZ6K+v5raI5oGvXHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKGVycm9yTWVzc2FnZXNUb0FkZCkuZm9yRWFjaCgoW2tleSwgbWVzc2FnZXNdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtmb3JtTmFtZV1ba2V5XSA9IG1lc3NhZ2VzO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIDguIOabtOaWsOihqOWNlemqjOivgeeKtuaAgVxyXG4gICAgICBpZiAob3B0aW9ucz8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSkge1xyXG4gICAgICAgIHRhcmdldEZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtcclxuICAgICAgICAgIGVtaXRFdmVudDogb3B0aW9ucz8uZW1pdEV2ZW50ID8/IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyA5LiDliKTmlq3mlbTkvZPmmK/lkKbmiJDlip9cclxuICAgIHJlc3VsdC5zdWNjZXNzID0gcmVzdWx0LmZhaWxlZC5sZW5ndGggPT09IDA7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vIOaJuemHj+WIoOmZpOWtl+autemFjee9rlxyXG4gIHJlbW92ZUZpZWxkc0NvbmZpZyhcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZE5hbWVzOiBzdHJpbmdbXSxcclxuICAgIG9wdGlvbnM/OiBSZW1vdmVGaWVsZHNDb25maWdPcHRpb25zXHJcbiAgKTogUmVtb3ZlRmllbGRzQ29uZmlnUmVzdWx0IHtcclxuICAgIGNvbnN0IHJlc3VsdDogUmVtb3ZlRmllbGRzQ29uZmlnUmVzdWx0ID0ge1xyXG4gICAgICBzdWNjZXNzOiB0cnVlLFxyXG4gICAgICByZW1vdmVkOiBbXSxcclxuICAgICAgZmFpbGVkOiBbXSxcclxuICAgIH07XHJcblxyXG4gICAgLy8gMS4g6aqM6K+B6KGo5Y2V5piv5ZCm5a2Y5ZyoXHJcbiAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm1Hcm91cCkge1xyXG4gICAgICBmaWVsZE5hbWVzLmZvckVhY2goKGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gYEZvcm0gXCIke2Zvcm1OYW1lfVwiIG5vdCBmb3VuZGA7XHJcbiAgICAgICAgcmVzdWx0LmZhaWxlZC5wdXNoKHtcclxuICAgICAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9wdGlvbnM/Lm9uRmllbGRSZW1vdmVkPy4oZmllbGROYW1lLCBmYWxzZSwgZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmVzdWx0LnN1Y2Nlc3MgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyAyLiDmibnph4/mlLbpm4bpnIDopoHmuIXnkIbnmoTkv6Hmga9cclxuICAgIGNvbnN0IGZpZWxkc1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlS2V5c1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8vIDMuIOmqjOivgeavj+S4quWtl+auteW5tuaUtumbhuS/oeaBr1xyXG4gICAgZmllbGROYW1lcy5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGROYW1lKTtcclxuXHJcbiAgICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gYEZpZWxkIFwiJHtmaWVsZE5hbWV9XCIgbm90IGZvdW5kYDtcclxuICAgICAgICByZXN1bHQuZmFpbGVkLnB1c2goe1xyXG4gICAgICAgICAgZmllbGROYW1lLFxyXG4gICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgb3B0aW9ucz8ub25GaWVsZFJlbW92ZWQ/LihmaWVsZE5hbWUsIGZhbHNlLCBlcnJvcik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyDmlLbpm4bplJnor6/mtojmga/plK5cclxuICAgICAgZXJyb3JNZXNzYWdlS2V5c1RvUmVtb3ZlLnB1c2goZmllbGROYW1lKTtcclxuICAgICAgZmllbGRzVG9SZW1vdmUucHVzaChmaWVsZE5hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gNC4g5om56YeP5omn6KGM5Yig6Zmk5pON5L2cXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyA0LjEg5LuOIEZvcm1Hcm91cCDkuK3np7vpmaTmjqfku7ZcclxuICAgICAgZmllbGRzVG9SZW1vdmUuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woZmllbGROYW1lKTtcclxuICAgICAgICByZXN1bHQucmVtb3ZlZC5wdXNoKGZpZWxkTmFtZSk7XHJcbiAgICAgICAgb3B0aW9ucz8ub25GaWVsZFJlbW92ZWQ/LihmaWVsZE5hbWUsIHRydWUpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIDQuMiDmibnph4/liKDpmaTplJnor6/mtojmga9cclxuICAgICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlU3RvcmVbZm9ybU5hbWVdKSB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlS2V5c1RvUmVtb3ZlLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgZGVsZXRlIHRoaXMuZXJyb3JNZXNzYWdlU3RvcmVbZm9ybU5hbWVdW2tleV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgLy8g5aaC5p6c5om56YeP5Yig6Zmk6L+H56iL5Lit5Ye66ZSZ77yM5qCH6K6w5Li65aSx6LSlXHJcbiAgICAgIGZpZWxkc1RvUmVtb3ZlLmZvckVhY2goKGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgIGlmICghcmVzdWx0LnJlbW92ZWQuaW5jbHVkZXMoZmllbGROYW1lKSkge1xyXG4gICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cclxuICAgICAgICAgICAgZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyb3I/LnRvU3RyaW5nKCkgfHwgXCJGYWlsZWQgdG8gcmVtb3ZlIGZpZWxkXCI7XHJcbiAgICAgICAgICByZXN1bHQuZmFpbGVkLnB1c2goe1xyXG4gICAgICAgICAgICBmaWVsZE5hbWUsXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIG9wdGlvbnM/Lm9uRmllbGRSZW1vdmVkPy4oZmllbGROYW1lLCBmYWxzZSwgZXJyb3JNZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDUuIOWIpOaWreaVtOS9k+aYr+WQpuaIkOWKn1xyXG4gICAgcmVzdWx0LnN1Y2Nlc3MgPSByZXN1bHQuZmFpbGVkLmxlbmd0aCA9PT0gMDtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8g5bGA6YOo6LWL5YC8XHJcbiAgcGF0Y2hGb3JtVmFsdWVzKFxyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgb3B0aW9ucz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1TdG9yZVtuYW1lXTtcclxuICAgIGlmICghZm9ybUdyb3VwKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgW0FudGRGb3JtU2VydmljZV0gcGF0Y2hGb3JtVmFsdWVzOiBmb3JtIFwiJHtuYW1lfVwiIG5vdCBmb3VuZC5gXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtR3JvdXAucGF0Y2hWYWx1ZSh2YWx1ZXMsIHtcclxuICAgICAgZW1pdEV2ZW50OiBvcHRpb25zPy5lbWl0RXZlbnQgPz8gdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g6KGo5Y2V5qCh6aqM77yI6Ieq5Yqo6L+H5ruk5YaF6YOo5a2X5q6177yJXHJcbiAgdmFsaWRhdGVGb3JtKFxyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgb3B0aW9ucz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbjsgb25seVNlbGY/OiBib29sZWFuIH1cclxuICApOiBib29sZWFuIHwgUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICBpZiAodGhpcy5mb3JtU3RvcmVbbmFtZV0udmFsaWQpIHtcclxuICAgICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLmZvcm1TdG9yZVtuYW1lXS5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICByZXR1cm4gdGhpcy5leGNsdWRlSW50ZXJuYWxGaWVsZHMocmF3VmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8g6YCS5b2S5qCh6aqM5omA5pyJ5o6n5Lu2XHJcbiAgICAgIHRoaXMubWFya0FsbENvbnRyb2xzQXNEaXJ0eShcclxuICAgICAgICB0aGlzLmZvcm1TdG9yZVtuYW1lXSxcclxuICAgICAgICBvcHRpb25zPy5lbWl0RXZlbnQgPz8gdHJ1ZSxcclxuICAgICAgICBvcHRpb25zPy5vbmx5U2VsZiA/PyBmYWxzZVxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDpgJLlvZLmoIforrDmiYDmnInml6DmlYjmjqfku7bkuLogZGlydHlcclxuICBwcml2YXRlIG1hcmtBbGxDb250cm9sc0FzRGlydHkoXHJcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICBlbWl0RXZlbnQ6IGJvb2xlYW4sXHJcbiAgICBvbmx5U2VsZjogYm9vbGVhblxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKGNvbnRyb2wuaW52YWxpZCkge1xyXG4gICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XHJcbiAgICAgICAgZW1pdEV2ZW50LFxyXG4gICAgICAgIG9ubHlTZWxmLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDlpoLmnpzmmK8gRm9ybUdyb3Vw77yM6YCS5b2S5aSE55CG5omA5pyJ5a2Q5o6n5Lu2XHJcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICBPYmplY3QudmFsdWVzKGNvbnRyb2wuY29udHJvbHMpLmZvckVhY2goKGNoaWxkQ29udHJvbCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWFya0FsbENvbnRyb2xzQXNEaXJ0eShjaGlsZENvbnRyb2wsIGVtaXRFdmVudCwgb25seVNlbGYpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOmUmeivr+a2iOaBr+ebuOWFsyA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAvLyDojrflj5blrZfmrrXpppbmnaHplJnor6/mj5DnpLpcclxuICBnZXRGaWVsZEVycm9yTWVzc2FnZShuYW1lOiBzdHJpbmcsIGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICBpZiAoIWZvcm1Hcm91cCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYFtBbnRkRm9ybVNlcnZpY2VdIGdldEZpZWxkRXJyb3JNZXNzYWdlOiBmb3JtIFwiJHtuYW1lfVwiIG5vdCBmb3VuZC5gXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgW0FudGRGb3JtU2VydmljZV0gZ2V0RmllbGRFcnJvck1lc3NhZ2U6IGNvbnRyb2wgXCIke2NvbnRyb2xOYW1lfVwiIG5vdCBmb3VuZCBpbiBmb3JtIFwiJHtuYW1lfVwiLmBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOS7jiBlcnJvck1lc3NhZ2VTdG9yZSDojrflj5bplJnor6/mtojmga/phY3nva5cclxuICAgIGNvbnN0IGVycm9yTWVzc2FnZXMgPSB0aGlzLmVycm9yTWVzc2FnZVN0b3JlW25hbWVdPy5bY29udHJvbE5hbWVdO1xyXG4gICAgY29uc3QgbWVyZ2VkTWVzc2FnZXMgPSB7XHJcbiAgICAgIC4uLnRoaXMuZGVmYXVsdEVycm9yTWVzc2FnZXMsXHJcbiAgICAgIC4uLihlcnJvck1lc3NhZ2VzID8/IHt9KSxcclxuICAgIH07XHJcblxyXG4gICAgZm9yIChjb25zdCBlcnJvcktleSBvZiBPYmplY3Qua2V5cyhjb250cm9sLmVycm9ycykpIHtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IG1lcmdlZE1lc3NhZ2VzW2Vycm9yS2V5XTtcclxuICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICAvLyDkuI3lho3mlK/mjIHlh73mlbDlvaLlvI/vvIzlj6rov5Tlm57lrZfnrKbkuLJcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgPyBtZXNzYWdlIDogXCJcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PSDnm5HlkKznm7jlhbMgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgLy8g55uR5ZCs6KGo5Y2V5omA5pyJ5a2X5q615Y+Y5pu0XHJcbiAgd2F0Y2hGb3JtQ2hhbmdlczxUID0gYW55PihcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGhhbmRsZXI6ICh2YWx1ZTogVCkgPT4gdm9pZCxcclxuICAgIG9wdGlvbnM/OiBXYXRjaE9wdGlvbnNcclxuICApOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICBpZiAoIWZvcm1Hcm91cCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYFtBbnRkRm9ybVNlcnZpY2VdIHdhdGNoRm9ybUNoYW5nZXM6IGZvcm0gXCIke25hbWV9XCIgbm90IGZvdW5kLmBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zZXR1cFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uKGZvcm1Hcm91cCwgaGFuZGxlciwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvLyDnm5HlkKzmjIflrprlrZfmrrXlj5jmm7RcclxuICB3YXRjaEZpZWxkQ2hhbmdlczxUID0gYW55PihcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBoYW5kbGVyOiAodmFsdWU6IFQpID0+IHZvaWQsXHJcbiAgICBvcHRpb25zPzogV2F0Y2hPcHRpb25zXHJcbiAgKTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybVN0b3JlW25hbWVdO1xyXG4gICAgaWYgKCFmb3JtR3JvdXApIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBbQW50ZEZvcm1TZXJ2aWNlXSB3YXRjaEZpZWxkQ2hhbmdlczogZm9ybSBcIiR7bmFtZX1cIiBub3QgZm91bmQuYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYFtBbnRkRm9ybVNlcnZpY2VdIHdhdGNoRmllbGRDaGFuZ2VzOiBjb250cm9sIFwiJHtjb250cm9sTmFtZX1cIiBub3QgZm91bmQgaW4gZm9ybSBcIiR7bmFtZX1cIi5gXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc2V0dXBWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbihjb250cm9sLCBoYW5kbGVyLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOW3peWFt+aWueazlSA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAvLyDojrflj5booajljZXnsbvlkI1cclxuICBnZXRGb3JtQ2xhc3NOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5jbGFzc1ByZWZpeH1jdXN0b20tJHtuYW1lfSBgO1xyXG4gIH1cclxuXHJcbiAgLy8g6K6+572uIENTUyDlj5jph4/liLDnm67moIflhYPntKDvvIjmlK/mjIHmjIHkuYXljJbnm5HlkKzliqjmgIHmt7vliqDnmoTlhYPntKDvvIlcclxuICBzZXRDU1NWYXJpYWJsZXNUb1RhcmdldChuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm1Db250YWluZXJTZWxlY3RvciA9IGAuJHt0aGlzLmdldEZvcm1DbGFzc05hbWUobmFtZSl9YDtcclxuICAgIGNvbnN0IGZvcm1Db250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICBmb3JtQ29udGFpbmVyU2VsZWN0b3JcclxuICAgICkgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgLy8g5aaC5p6c5a655Zmo6L+Y5LiN5a2Y5Zyo77yM5Y+v5Lul55SoIE11dGF0aW9uT2JzZXJ2ZXIg562J5b6F5a6D5Ye6546wXHJcbiAgICBpZiAoIWZvcm1Db250YWluZXIpIHtcclxuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgIGZvcm1Db250YWluZXJTZWxlY3RvclxyXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xyXG4gICAgICAgICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KFwiLS1sYWJlbC13aWR0aFwiLCB0aGlzLmxhYmVsV2lkdGgpO1xyXG4gICAgICAgICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KFwiLS1sYWJlbC1hbGlnblwiLCB0aGlzLmxhYmVsQWxpZ24pO1xyXG4gICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtcclxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyAxMOenkuWQjuiHquWKqOaWreW8gO+8jOmBv+WFjeWGheWtmOazhOa8j1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSwgMTAwMDApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5Zyo5a655Zmo5LiK6K6+572uIENTUyDlj5jph49cclxuICAgIGZvcm1Db250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCItLWxhYmVsLXdpZHRoXCIsIHRoaXMubGFiZWxXaWR0aCk7XHJcbiAgICBmb3JtQ29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KFwiLS1sYWJlbC1hbGlnblwiLCB0aGlzLmxhYmVsQWxpZ24pO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0g56eB5pyJ5pa55rOVID09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIC8vIOi/h+a7pOWGhemDqOWtl+aute+8iOmAkuW9kuWkhOeQhuWvueixoeWSjOaVsOe7hO+8iVxyXG4gIHByaXZhdGUgZXhjbHVkZUludGVybmFsRmllbGRzKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeJueauiuWkhOeQhiBEYXRlIOWvueixoe+8jOebtOaOpei/lOWbnuS4jeWBmui9rOaNolxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMuZXhjbHVkZUludGVybmFsRmllbGRzKGl0ZW0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXJlZDogYW55ID0ge307XHJcbiAgICBPYmplY3QuZW50cmllcyh2YWx1ZSkuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xyXG4gICAgICAvLyDov4fmu6Tku6UgX18g5byA5aS055qE5YaF6YOo5a2X5q61XHJcbiAgICAgIGlmICgha2V5LnN0YXJ0c1dpdGgoXCJfX1wiKSkge1xyXG4gICAgICAgIGZpbHRlcmVkW2tleV0gPSB0aGlzLmV4Y2x1ZGVJbnRlcm5hbEZpZWxkcyh2YWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmaWx0ZXJlZDtcclxuICB9XHJcblxyXG4gIC8vIOiuvue9ruWAvOWPmOabtOiuoumYhVxyXG4gIHByaXZhdGUgc2V0dXBWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjxUPihcclxuICAgIHRhcmdldDogeyB2YWx1ZUNoYW5nZXM6IGFueTsgdmFsdWU6IGFueSB9LFxyXG4gICAgaGFuZGxlcjogKHZhbHVlOiBUKSA9PiB2b2lkLFxyXG4gICAgb3B0aW9ucz86IFdhdGNoT3B0aW9uc1xyXG4gICk6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICBsZXQgdmFsdWVDaGFuZ2VzJCA9IHRhcmdldC52YWx1ZUNoYW5nZXM7XHJcblxyXG4gICAgaWYgKG9wdGlvbnM/LmRlYm91bmNlICE9IG51bGwpIHtcclxuICAgICAgdmFsdWVDaGFuZ2VzJCA9IHZhbHVlQ2hhbmdlcyQucGlwZShkZWJvdW5jZVRpbWUob3B0aW9ucy5kZWJvdW5jZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zPy5kaXN0aW5jdFVudGlsQ2hhbmdlZCAhPT0gZmFsc2UpIHtcclxuICAgICAgdmFsdWVDaGFuZ2VzJCA9IHZhbHVlQ2hhbmdlcyQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucz8uZW1pdEluaXRpYWwpIHtcclxuICAgICAgaGFuZGxlcih0YXJnZXQudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZUNoYW5nZXMkLnN1YnNjcmliZShoYW5kbGVyKTtcclxuICB9XHJcbn1cclxuIl19
523
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW50ZC1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvLXRhYmxlL3NyYy9saWIvcGFnZS1wdWJsaWMvYW50ZC1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUdMLFdBQVcsRUFDWCxTQUFTLEdBRVYsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQTBFcEUsZ0RBQWdEO0FBR2hELE1BQU0sT0FBTyxlQUFlO0lBdUIxQixpREFBaUQ7SUFDakQsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUF2Qm5DLGlEQUFpRDtRQUNqRCxjQUFTLEdBQThCLEVBQUUsQ0FBQztRQUMxQyxtQkFBYyxHQUFtQixRQUFRLENBQUM7UUFFMUMsaURBQWlEO1FBQ3pDLHNCQUFpQixHQUE0QixFQUFFLENBQUM7UUFDaEQsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUM3QixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBQzdCLG1CQUFjLEdBQXFDLEVBQUUsQ0FBQztRQUN0RCxzQkFBaUIsR0FHckIsRUFBRSxDQUFDO1FBQ0MsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFDakIseUJBQW9CLEdBQXVCO1lBQzFELFFBQVEsRUFBRSxTQUFTO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFHb0MsQ0FBQztJQUV2QyxxREFBcUQ7SUFFckQsdUJBQXVCO0lBQ2YsaUJBQWlCLENBQ3ZCLE1BQXFDO1FBRXJDLE9BQU8sQ0FDTCxPQUFPLE1BQU0sS0FBSyxRQUFRO1lBQzFCLE1BQU0sS0FBSyxJQUFJO1lBQ2YsTUFBTSxJQUFJ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QUFDO0lBRUQsVUFBVTtJQUNGLDRCQUE0QixDQUNsQyxNQUF5QyxFQUN6QyxPQUEyQixFQUMzQixPQUFzQjtRQUV0QixJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRXhDLElBQUksQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxLQUFJLElBQUksRUFBRTtZQUM3QixhQUFhLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDcEU7UUFFRCxJQUFJLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLG9CQUFvQixNQUFLLEtBQUssRUFBRTtZQUMzQyxhQUFhLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLEVBQUU7WUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QjtRQUVELE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7O1lBMW9CRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7WUFqRmhDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQWJzdHJhY3RDb250cm9sT3B0aW9ucyxcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09IOexu+Wei+WumuS5iSA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy8g5a2X5q616ZSZ6K+v5raI5oGv57G75Z6L77yI5a2X56ym5Liy5oiW5Ye95pWw77yJXHJcbmV4cG9ydCB0eXBlIEZpZWxkRXJyb3JNZXNzYWdlID1cclxuICB8IHN0cmluZ1xyXG4gIHwgKChjb250ZXh0OiB7IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgY29udHJvbE5hbWU6IHN0cmluZyB9KSA9PiBzdHJpbmcpO1xyXG5cclxuLy8g5a2X5q616ZSZ6K+v5raI5oGv6ZuG5ZCIXHJcbmV4cG9ydCB0eXBlIEZpZWxkRXJyb3JNZXNzYWdlcyA9IFJlY29yZDxzdHJpbmcsIEZpZWxkRXJyb3JNZXNzYWdlPjtcclxuXHJcbi8vIOWtl+autemFjee9rlxyXG5leHBvcnQgdHlwZSBGaWVsZENvbmZpZyA9IHtcclxuICB2YWx1ZTogYW55O1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogKCkgPT4gVmFsaWRhdG9yRm5bXTtcclxuICBlcnJvck1lc3NhZ2VzPzogRmllbGRFcnJvck1lc3NhZ2VzO1xyXG59O1xyXG5cclxuLy8g5bWM5aWXIEZvcm1Hcm91cCDphY3nva5cclxuZXhwb3J0IHR5cGUgRm9ybUdyb3VwQ29uZmlnID0ge1xyXG4gIHR5cGU6IFwiZ3JvdXBcIjtcclxuICBmaWVsZHM6IEZvcm1Db25maWc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiAoKSA9PiBWYWxpZGF0b3JGbltdO1xyXG4gIGVycm9yTWVzc2FnZXM/OiBGaWVsZEVycm9yTWVzc2FnZXM7XHJcbn07XHJcblxyXG4vLyDooajljZXkv67mlLnnsbvlnotcclxuZXhwb3J0IHR5cGUgRm9ybU1vZGlmeVR5cGUgPSBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIjtcclxuXHJcbi8vIOihqOWNlemFjee9ru+8iOaUr+aMgeaZrumAmuWtl+auteWSjOW1jOWllyBGb3JtR3JvdXDvvIlcclxuZXhwb3J0IHR5cGUgRm9ybUNvbmZpZyA9IFJlY29yZDxzdHJpbmcsIEZpZWxkQ29uZmlnIHwgRm9ybUdyb3VwQ29uZmlnPjtcclxuXHJcbi8vIOebkeWQrOmAiemhuVxyXG5leHBvcnQgdHlwZSBXYXRjaE9wdGlvbnMgPSB7XHJcbiAgZGVib3VuY2U/OiBudW1iZXI7XHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGVtaXRJbml0aWFsPzogYm9vbGVhbjtcclxufTtcclxuXHJcbi8vIOaJuemHj+a3u+WKoOWtl+autemFjee9rumAiemhuVxyXG5leHBvcnQgdHlwZSBBZGRGaWVsZHNDb25maWdPcHRpb25zID0ge1xyXG4gIGVtaXRFdmVudD86IGJvb2xlYW47XHJcbiAgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eT86IGJvb2xlYW47XHJcbiAgb25GaWVsZEFkZGVkPzogKGZpZWxkTmFtZTogc3RyaW5nLCBzdWNjZXNzOiBib29sZWFuLCBlcnJvcj86IHN0cmluZykgPT4gdm9pZDsgLy8g5q+P5Liq5a2X5q615re75Yqg55qE5Zue6LCDXHJcbiAgdGFyZ2V0UGF0aD86IHN0cmluZzsgLy8g55uu5qCH6Lev5b6E77yM55So5LqO5Zyo5bWM5aWXIEZvcm1Hcm91cCDlhoXpg6jmt7vliqDlrZfmrrXvvIzkvovlpoI6IFwiY2FyZEJhc2VJbmZvXCIg5oiWIFwidXNlckluZm8uYWRkcmVzc0luZm9cIlxyXG59O1xyXG5cclxuLy8g5om56YeP5re75Yqg5a2X5q616YWN572u57uT5p6cXHJcbmV4cG9ydCB0eXBlIEFkZEZpZWxkc0NvbmZpZ1Jlc3VsdCA9IHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIGFkZGVkOiBzdHJpbmdbXTsgLy8g5oiQ5Yqf5re75Yqg55qE5a2X5q615ZCN5YiX6KGoXHJcbiAgZmFpbGVkOiBBcnJheTx7IGZpZWxkTmFtZTogc3RyaW5nOyBlcnJvcjogc3RyaW5nIH0+OyAvLyDlpLHotKXnmoTlrZfmrrXlj4rplJnor6/kv6Hmga9cclxufTtcclxuXHJcbi8vIOaJuemHj+WIoOmZpOWtl+autemFjee9rumAiemhuVxyXG5leHBvcnQgdHlwZSBSZW1vdmVGaWVsZHNDb25maWdPcHRpb25zID0ge1xyXG4gIGVtaXRFdmVudD86IGJvb2xlYW47XHJcbiAgb25GaWVsZFJlbW92ZWQ/OiAoXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHN1Y2Nlc3M6IGJvb2xlYW4sXHJcbiAgICBlcnJvcj86IHN0cmluZ1xyXG4gICkgPT4gdm9pZDsgLy8g5q+P5Liq5a2X5q615Yig6Zmk55qE5Zue6LCDXHJcbn07XHJcblxyXG4vLyDmibnph4/liKDpmaTlrZfmrrXphY3nva7nu5PmnpxcclxuZXhwb3J0IHR5cGUgUmVtb3ZlRmllbGRzQ29uZmlnUmVzdWx0ID0ge1xyXG4gIHN1Y2Nlc3M6IGJvb2xlYW47XHJcbiAgcmVtb3ZlZDogc3RyaW5nW107IC8vIOaIkOWKn+WIoOmZpOeahOWtl+auteWQjeWIl+ihqFxyXG4gIGZhaWxlZDogQXJyYXk8eyBmaWVsZE5hbWU6IHN0cmluZzsgZXJyb3I6IHN0cmluZyB9PjsgLy8g5aSx6LSl55qE5a2X5q615Y+K6ZSZ6K+v5L+h5oGvXHJcbn07XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PSDmnI3liqHnsbsgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcclxuZXhwb3J0IGNsYXNzIEFudGRGb3JtU2VydmljZSB7XHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0g5YWs5YWx5bGe5oCnID09PT09PT09PT09PT09PT09PT09XHJcbiAgZm9ybVN0b3JlOiBSZWNvcmQ8c3RyaW5nLCBGb3JtR3JvdXA+ID0ge307XHJcbiAgZm9ybU1vZGlmeVR5cGU6IEZvcm1Nb2RpZnlUeXBlID0gXCJjcmVhdGVcIjtcclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0g56eB5pyJ5bGe5oCnID09PT09PT09PT09PT09PT09PT09XHJcbiAgcHJpdmF0ZSBmb3JtUmVnaXN0ZXJTdG9yZTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuICBwcml2YXRlIGxhYmVsV2lkdGg6IHN0cmluZyA9IFwiMTIwcHhcIjtcclxuICBwcml2YXRlIGxhYmVsQWxpZ246IHN0cmluZyA9IFwicmlnaHRcIjtcclxuICBwcml2YXRlIGxhYmVsT2JzZXJ2ZXJzOiBSZWNvcmQ8c3RyaW5nLCBNdXRhdGlvbk9ic2VydmVyPiA9IHt9O1xyXG4gIHByaXZhdGUgZXJyb3JNZXNzYWdlU3RvcmU6IFJlY29yZDxcclxuICAgIHN0cmluZyxcclxuICAgIFJlY29yZDxzdHJpbmcsIEZpZWxkRXJyb3JNZXNzYWdlcz5cclxuICA+ID0ge307XHJcbiAgcHJpdmF0ZSBjbGFzc1ByZWZpeCA9IFwiYW50LWZvcm0tXCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0RXJyb3JNZXNzYWdlczogRmllbGRFcnJvck1lc3NhZ2VzID0ge1xyXG4gICAgcmVxdWlyZWQ6IFwi6K+l5a2X5q615Li65b+F5aGr6aG5XCIsXHJcbiAgICBtaW5sZW5ndGg6IFwi6L6T5YWl6ZW/5bqm5LiN6LazXCIsXHJcbiAgICBtYXhsZW5ndGg6IFwi6L6T5YWl6ZW/5bqm6LaF6ZmQXCIsXHJcbiAgICBlbWFpbDogXCLor7fovpPlhaXlkIjms5XnmoTpgq7nrrHlnLDlnYBcIixcclxuICAgIHBhdHRlcm46IFwi6L6T5YWl5qC85byP5LiN5q2j56GuXCIsXHJcbiAgfTtcclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0g5p6E6YCg5Ye95pWwID09PT09PT09PT09PT09PT09PT09XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOihqOWNleWIm+W7uuWSjOWIneWni+WMliA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAvLyDliKTmlq3mmK/lkKbkuLrltYzlpZcgRm9ybUdyb3VwIOmFjee9rlxyXG4gIHByaXZhdGUgaXNGb3JtR3JvdXBDb25maWcoXHJcbiAgICBjb25maWc6IEZpZWxkQ29uZmlnIHwgRm9ybUdyb3VwQ29uZmlnXHJcbiAgKTogY29uZmlnIGlzIEZvcm1Hcm91cENvbmZpZyB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0eXBlb2YgY29uZmlnID09PSBcIm9iamVjdFwiICYmXHJcbiAgICAgIGNvbmZpZyAhPT0gbnVsbCAmJlxyXG4gICAgICBcInR5cGVcIiBpbiBjb25maWcgJiZcclxuICAgICAgY29uZmlnLnR5cGUgPT09IFwiZ3JvdXBcIlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIOmAkuW9kuWIm+W7uuW1jOWllyBGb3JtR3JvdXBcclxuICBwcml2YXRlIGNyZWF0ZU5lc3RlZEZvcm1Hcm91cChcclxuICAgIGZpZWxkczogRm9ybUNvbmZpZyxcclxuICAgIGRpc2FibGVkPzogYm9vbGVhblxyXG4gICk6IEZvcm1Hcm91cCB7XHJcbiAgICBjb25zdCBncm91cENvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG5cclxuICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkcykuZm9yRWFjaCgoW2tleSwgZmllbGRDb25maWddKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzRm9ybUdyb3VwQ29uZmlnKGZpZWxkQ29uZmlnKSkge1xyXG4gICAgICAgIC8vIOmAkuW9kuWIm+W7uuW1jOWll+eahCBGb3JtR3JvdXBcclxuICAgICAgICBncm91cENvbmZpZ1trZXldID0gdGhpcy5jcmVhdGVOZXN0ZWRGb3JtR3JvdXAoXHJcbiAgICAgICAgICBmaWVsZENvbmZpZy5maWVsZHMsXHJcbiAgICAgICAgICBmaWVsZENvbmZpZy5kaXNhYmxlZCA/PyBkaXNhYmxlZFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8g5Yib5bu65pmu6YCaIEZvcm1Db250cm9sXHJcbiAgICAgICAgZ3JvdXBDb25maWdba2V5XSA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6IGZpZWxkQ29uZmlnLnZhbHVlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZmllbGRDb25maWcuZGlzYWJsZWQgPz8gZGlzYWJsZWQgPz8gZmFsc2UsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZmllbGRDb25maWcudmFsaWRhdG9ycz8uKCkgPz8gW10sXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoZ3JvdXBDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLy8g5Yid5aeL5YyW6KGo5Y2VXHJcbiAgY3JlYXRlRm9ybUdyb3VwKFxyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgY29uZmlnOiBGb3JtQ29uZmlnLFxyXG4gICAgb3B0aW9ucz86IHsgbGFiZWxXaWR0aD86IHN0cmluZzsgbGFiZWxBbGlnbj86IHN0cmluZyB9XHJcbiAgKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGdyb3VwQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZVN0b3JlW25hbWVdID0ge307XHJcblxyXG4gICAgT2JqZWN0LmVudHJpZXMoY29uZmlnKS5mb3JFYWNoKChba2V5LCBmaWVsZENvbmZpZ10pID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNGb3JtR3JvdXBDb25maWcoZmllbGRDb25maWcpKSB7XHJcbiAgICAgICAgLy8g5aSE55CG5bWM5aWXIEZvcm1Hcm91cFxyXG4gICAgICAgIGNvbnN0IG5lc3RlZEdyb3VwID0gdGhpcy5jcmVhdGVOZXN0ZWRGb3JtR3JvdXAoXHJcbiAgICAgICAgICBmaWVsZENvbmZpZy5maWVsZHMsXHJcbiAgICAgICAgICBmaWVsZENvbmZpZy5kaXNhYmxlZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZ3JvdXBDb25maWdba2V5XSA9IG5lc3RlZEdyb3VwO1xyXG5cclxuICAgICAgICAvLyDlrZjlgqjltYzlpZcgRm9ybUdyb3VwIOeahOmUmeivr+a2iOaBr++8iOWmguaenOmcgOimge+8iVxyXG4gICAgICAgIGlmIChmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZVN0b3JlW25hbWVdW2tleV0gPSBmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyDlpITnkIbmma7pgJrlrZfmrrVcclxuICAgICAgICBncm91cENvbmZpZ1trZXldID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogZmllbGRDb25maWcudmFsdWUsXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBmaWVsZENvbmZpZy5kaXNhYmxlZCA/PyBmYWxzZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBmaWVsZENvbmZpZy52YWxpZGF0b3JzPy4oKSA/PyBbXSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmIChmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZVN0b3JlW25hbWVdW2tleV0gPSBmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG9wdGlvbnM/LmxhYmVsV2lkdGgpIHtcclxuICAgICAgdGhpcy5sYWJlbFdpZHRoID0gb3B0aW9ucy5sYWJlbFdpZHRoO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdGlvbnM/LmxhYmVsQWxpZ24pIHtcclxuICAgICAgdGhpcy5sYWJlbEFsaWduID0gb3B0aW9ucy5sYWJlbEFsaWduO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtU3RvcmVbbmFtZV0gPSB0aGlzLmZiLmdyb3VwKGdyb3VwQ29uZmlnKTtcclxuICAgIHRoaXMuZm9ybVJlZ2lzdGVyU3RvcmVbbmFtZV0gPSB0cnVlO1xyXG4gICAgdGhpcy5zZXRDU1NWYXJpYWJsZXNUb1RhcmdldChuYW1lKTtcclxuICAgIHJldHVybiB0aGlzLmZvcm1TdG9yZVtuYW1lXTtcclxuICB9XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOihqOWNleaTjeS9nCA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAvLyDph43nva7ooajljZVcclxuICByZXNldEZvcm1Hcm91cChuYW1lOiBzdHJpbmcsIHZhbHVlPzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TdG9yZVtuYW1lXT8ucmVzZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8g5qOA5rWL6KGo5Y2V5piv5ZCm5a6M5oiQ5rOo5YaMXHJcbiAgaXNGb3JtUmVnaXN0ZXJlZChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWdpc3RlclN0b3JlW25hbWVdID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8g6ZSA5q+B5a+55bqU55qE6KGo5Y2VXHJcbiAgZGVzdG9yeShuYW1lczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIG5hbWVzLmZvckVhY2goKG5hbWUpID0+IHtcclxuICAgICAgLy8gMi4g5riF55CG6ZSZ6K+v5raI5oGv5a2Y5YKoXHJcbiAgICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZVN0b3JlW25hbWVdKSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZXJyb3JNZXNzYWdlU3RvcmVbbmFtZV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIDMuIOa4heeQhuihqOWNleazqOWGjOagh+iusFxyXG4gICAgICBpZiAodGhpcy5mb3JtUmVnaXN0ZXJTdG9yZVtuYW1lXSkge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmZvcm1SZWdpc3RlclN0b3JlW25hbWVdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyA0LiDmuIXnkIbooajljZXnu4TvvIhBbmd1bGFyIOS8muiHquWKqOWkhOeQhiBGb3JtR3JvdXAg55qE5riF55CG77yJXHJcbiAgICAgIGlmICh0aGlzLmZvcm1TdG9yZVtuYW1lXSkge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmZvcm1TdG9yZVtuYW1lXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDmoLnmja7ot6/lvoTojrflj5bltYzlpZfnmoQgRm9ybUdyb3VwXHJcbiAgcHJpdmF0ZSBnZXROZXN0ZWRGb3JtR3JvdXAoXHJcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cCxcclxuICAgIHBhdGg6IHN0cmluZ1xyXG4gICk6IEZvcm1Hcm91cCB8IG51bGwge1xyXG4gICAgaWYgKCFwYXRoIHx8IHBhdGgudHJpbSgpID09PSBcIlwiKSB7XHJcbiAgICAgIHJldHVybiBmb3JtR3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGF0aFBhcnRzID0gcGF0aC5zcGxpdChcIi5cIikuZmlsdGVyKChwKSA9PiBwLnRyaW0oKSAhPT0gXCJcIik7XHJcbiAgICBsZXQgY3VycmVudEdyb3VwOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gZm9ybUdyb3VwO1xyXG5cclxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXRoUGFydHMpIHtcclxuICAgICAgaWYgKCFjdXJyZW50R3JvdXAgfHwgIShjdXJyZW50R3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgY3VycmVudEdyb3VwID0gY3VycmVudEdyb3VwLmdldChwYXJ0KTtcclxuICAgICAgaWYgKCFjdXJyZW50R3JvdXAgfHwgIShjdXJyZW50R3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY3VycmVudEdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwID8gY3VycmVudEdyb3VwIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8vIOaJuemHj+a3u+WKoOWtl+autemFjee9rlxyXG4gIGFkZEZpZWxkc0NvbmZpZyhcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZHNDb25maWc6IEZvcm1Db25maWcsXHJcbiAgICBvcHRpb25zPzogQWRkRmllbGRzQ29uZmlnT3B0aW9uc1xyXG4gICk6IEFkZEZpZWxkc0NvbmZpZ1Jlc3VsdCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFkZEZpZWxkc0NvbmZpZ1Jlc3VsdCA9IHtcclxuICAgICAgc3VjY2VzczogdHJ1ZSxcclxuICAgICAgYWRkZWQ6IFtdLFxyXG4gICAgICBmYWlsZWQ6IFtdLFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyAxLiDpqozor4HooajljZXmmK/lkKblrZjlnKhcclxuICAgIGNvbnN0IHJvb3RGb3JtR3JvdXAgPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIXJvb3RGb3JtR3JvdXApIHtcclxuICAgICAgLy8g5aaC5p6c6KGo5Y2V5LiN5a2Y5Zyo77yM5omA5pyJ5a2X5q616YO95aSx6LSlXHJcbiAgICAgIE9iamVjdC5rZXlzKGZpZWxkc0NvbmZpZykuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSBgRm9ybSBcIiR7Zm9ybU5hbWV9XCIgbm90IGZvdW5kYDtcclxuICAgICAgICByZXN1bHQuZmFpbGVkLnB1c2goe1xyXG4gICAgICAgICAgZmllbGROYW1lLFxyXG4gICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgb3B0aW9ucz8ub25GaWVsZEFkZGVkPy4oZmllbGROYW1lLCBmYWxzZSwgZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmVzdWx0LnN1Y2Nlc3MgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyAyLiDojrflj5bnm67moIcgRm9ybUdyb3Vw77yI5pSv5oyB5bWM5aWX6Lev5b6E77yJXHJcbiAgICBjb25zdCB0YXJnZXRQYXRoID0gb3B0aW9ucz8udGFyZ2V0UGF0aDtcclxuICAgIGNvbnN0IHRhcmdldEZvcm1Hcm91cCA9IHRhcmdldFBhdGhcclxuICAgICAgPyB0aGlzLmdldE5lc3RlZEZvcm1Hcm91cChyb290Rm9ybUdyb3VwLCB0YXJnZXRQYXRoKVxyXG4gICAgICA6IHJvb3RGb3JtR3JvdXA7XHJcblxyXG4gICAgaWYgKCF0YXJnZXRGb3JtR3JvdXApIHtcclxuICAgICAgLy8g5aaC5p6c55uu5qCHIEZvcm1Hcm91cCDkuI3lrZjlnKjvvIzmiYDmnInlrZfmrrXpg73lpLHotKVcclxuICAgICAgT2JqZWN0LmtleXMoZmllbGRzQ29uZmlnKS5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRhcmdldFBhdGhcclxuICAgICAgICAgID8gYFRhcmdldCBGb3JtR3JvdXAgYXQgcGF0aCBcIiR7dGFyZ2V0UGF0aH1cIiBub3QgZm91bmRgXHJcbiAgICAgICAgICA6IGBGb3JtR3JvdXAgbm90IGZvdW5kYDtcclxuICAgICAgICByZXN1bHQuZmFpbGVkLnB1c2goe1xyXG4gICAgICAgICAgZmllbGROYW1lLFxyXG4gICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgb3B0aW9ucz8ub25GaWVsZEFkZGVkPy4oZmllbGROYW1lLCBmYWxzZSwgZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmVzdWx0LnN1Y2Nlc3MgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyAzLiDliJ3lp4vljJYgZXJyb3JNZXNzYWdlU3RvcmXvvIjlpoLmnpzkuI3lrZjlnKjvvIlcclxuICAgIGlmICghdGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtmb3JtTmFtZV0pIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtmb3JtTmFtZV0gPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICAvLyA0LiDmibnph4/mnoTlu7rmjqfku7bphY3nva5cclxuICAgIGNvbnN0IGNvbnRyb2xzVG9BZGQ6IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0Q29udHJvbD4gPSB7fTtcclxuICAgIGNvbnN0IGVycm9yTWVzc2FnZXNUb0FkZDogUmVjb3JkPHN0cmluZywgRmllbGRFcnJvck1lc3NhZ2VzPiA9IHt9O1xyXG5cclxuICAgIC8vIDUuIOmBjeWOhuaJgOacieWtl+autemFjee9ru+8jOi/m+ihjOmqjOivgeWSjOaehOW7ulxyXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzQ29uZmlnKS5mb3JFYWNoKChbZmllbGROYW1lLCBmaWVsZENvbmZpZ10pID0+IHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICAvLyA1LjEg5qOA5p+l5a2X5q615piv5ZCm5bey5a2Y5ZyoXHJcbiAgICAgICAgaWYgKHRhcmdldEZvcm1Hcm91cC5nZXQoZmllbGROYW1lKSkge1xyXG4gICAgICAgICAgY29uc3QgZXJyb3IgPSBgRmllbGQgXCIke2ZpZWxkTmFtZX1cIiBhbHJlYWR5IGV4aXN0cyR7XHJcbiAgICAgICAgICAgIHRhcmdldFBhdGggPyBgIGluIFwiJHt0YXJnZXRQYXRofVwiYCA6IFwiXCJcclxuICAgICAgICAgIH1gO1xyXG4gICAgICAgICAgcmVzdWx0LmZhaWxlZC5wdXNoKHtcclxuICAgICAgICAgICAgZmllbGROYW1lLFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgb3B0aW9ucz8ub25GaWVsZEFkZGVkPy4oZmllbGROYW1lLCBmYWxzZSwgZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gNS4yIOWIm+W7uuaOp+S7tlxyXG4gICAgICAgIGxldCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRm9ybUdyb3VwQ29uZmlnKGZpZWxkQ29uZmlnKSkge1xyXG4gICAgICAgICAgLy8g5Yib5bu65bWM5aWXIEZvcm1Hcm91cFxyXG4gICAgICAgICAgY29udHJvbCA9IHRoaXMuY3JlYXRlTmVzdGVkRm9ybUdyb3VwKFxyXG4gICAgICAgICAgICBmaWVsZENvbmZpZy5maWVsZHMsXHJcbiAgICAgICAgICAgIGZpZWxkQ29uZmlnLmRpc2FibGVkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8g5a2Y5YKo5bWM5aWXIEZvcm1Hcm91cCDnmoTplJnor6/mtojmga/vvIjlpoLmnpzpnIDopoHvvIlcclxuICAgICAgICAgIGlmIChmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZUtleSA9IHRhcmdldFBhdGhcclxuICAgICAgICAgICAgICA/IGAke3RhcmdldFBhdGh9LiR7ZmllbGROYW1lfWBcclxuICAgICAgICAgICAgICA6IGZpZWxkTmFtZTtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlc1RvQWRkW2Vycm9yTWVzc2FnZUtleV0gPSBmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyDliJvlu7rmma7pgJogRm9ybUNvbnRyb2xcclxuICAgICAgICAgIGNvbnN0IGNvbnRyb2xPcHRpb25zOiBBYnN0cmFjdENvbnRyb2xPcHRpb25zID0ge1xyXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiBmaWVsZENvbmZpZy52YWxpZGF0b3JzPy4oKSA/PyBbXSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBjb250cm9sID0gdGhpcy5mYi5jb250cm9sKGZpZWxkQ29uZmlnLnZhbHVlLCBjb250cm9sT3B0aW9ucyk7XHJcbiAgICAgICAgICAvLyDorr7nva4gZGlzYWJsZWQg54q25oCBXHJcbiAgICAgICAgICBpZiAoZmllbGRDb25maWcuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDlrZjlgqjplJnor6/mtojmga9cclxuICAgICAgICAgIGlmIChmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZUtleSA9IHRhcmdldFBhdGhcclxuICAgICAgICAgICAgICA/IGAke3RhcmdldFBhdGh9LiR7ZmllbGROYW1lfWBcclxuICAgICAgICAgICAgICA6IGZpZWxkTmFtZTtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlc1RvQWRkW2Vycm9yTWVzc2FnZUtleV0gPSBmaWVsZENvbmZpZy5lcnJvck1lc3NhZ2VzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29udHJvbHNUb0FkZFtmaWVsZE5hbWVdID0gY29udHJvbDtcclxuXHJcbiAgICAgICAgcmVzdWx0LmFkZGVkLnB1c2goZmllbGROYW1lKTtcclxuICAgICAgICBvcHRpb25zPy5vbkZpZWxkQWRkZWQ/LihmaWVsZE5hbWUsIHRydWUpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID1cclxuICAgICAgICAgIGVycm9yPy5tZXNzYWdlIHx8IGVycm9yPy50b1N0cmluZygpIHx8IFwiVW5rbm93biBlcnJvclwiO1xyXG4gICAgICAgIHJlc3VsdC5mYWlsZWQucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZE5hbWUsXHJcbiAgICAgICAgICBlcnJvcjogZXJyb3JNZXNzYWdlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9wdGlvbnM/Lm9uRmllbGRBZGRlZD8uKGZpZWxkTmFtZSwgZmFsc2UsIGVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDYuIOaJuemHj+a3u+WKoOWIsOebruaghyBGb3JtR3JvdXBcclxuICAgIGlmIChPYmplY3Qua2V5cyhjb250cm9sc1RvQWRkKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRyb2xzVG9BZGQpLmZvckVhY2goKFtmaWVsZE5hbWUsIGNvbnRyb2xdKSA9PiB7XHJcbiAgICAgICAgdGFyZ2V0Rm9ybUdyb3VwLmFkZENvbnRyb2woZmllbGROYW1lLCBjb250cm9sKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyA3LiDmibnph4/lrZjlgqjplJnor6/mtojmga9cclxuICAgICAgT2JqZWN0LmVudHJpZXMoZXJyb3JNZXNzYWdlc1RvQWRkKS5mb3JFYWNoKChba2V5LCBtZXNzYWdlc10pID0+IHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZVN0b3JlW2Zvcm1OYW1lXVtrZXldID0gbWVzc2FnZXM7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gOC4g5pu05paw6KGo5Y2V6aqM6K+B54q25oCBXHJcbiAgICAgIGlmIChvcHRpb25zPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KSB7XHJcbiAgICAgICAgdGFyZ2V0Rm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe1xyXG4gICAgICAgICAgZW1pdEV2ZW50OiBvcHRpb25zPy5lbWl0RXZlbnQgPz8gdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDkuIOWIpOaWreaVtOS9k+aYr+WQpuaIkOWKn1xyXG4gICAgcmVzdWx0LnN1Y2Nlc3MgPSByZXN1bHQuZmFpbGVkLmxlbmd0aCA9PT0gMDtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8g5om56YeP5Yig6Zmk5a2X5q616YWN572uXHJcbiAgcmVtb3ZlRmllbGRzQ29uZmlnKFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZXM6IHN0cmluZ1tdLFxyXG4gICAgb3B0aW9ucz86IFJlbW92ZUZpZWxkc0NvbmZpZ09wdGlvbnNcclxuICApOiBSZW1vdmVGaWVsZHNDb25maWdSZXN1bHQge1xyXG4gICAgY29uc3QgcmVzdWx0OiBSZW1vdmVGaWVsZHNDb25maWdSZXN1bHQgPSB7XHJcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXHJcbiAgICAgIHJlbW92ZWQ6IFtdLFxyXG4gICAgICBmYWlsZWQ6IFtdLFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyAxLiDpqozor4HooajljZXmmK/lkKblrZjlnKhcclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybUdyb3VwKSB7XHJcbiAgICAgIGZpZWxkTmFtZXMuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSBgRm9ybSBcIiR7Zm9ybU5hbWV9XCIgbm90IGZvdW5kYDtcclxuICAgICAgICByZXN1bHQuZmFpbGVkLnB1c2goe1xyXG4gICAgICAgICAgZmllbGROYW1lLFxyXG4gICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgb3B0aW9ucz8ub25GaWVsZFJlbW92ZWQ/LihmaWVsZE5hbWUsIGZhbHNlLCBlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXN1bHQuc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIOaJuemHj+aUtumbhumcgOimgea4heeQhueahOS/oeaBr1xyXG4gICAgY29uc3QgZmllbGRzVG9SZW1vdmU6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCBlcnJvck1lc3NhZ2VLZXlzVG9SZW1vdmU6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgLy8gMy4g6aqM6K+B5q+P5Liq5a2X5q615bm25pS26ZuG5L+h5oGvXHJcbiAgICBmaWVsZE5hbWVzLmZvckVhY2goKGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpO1xyXG5cclxuICAgICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSBgRmllbGQgXCIke2ZpZWxkTmFtZX1cIiBub3QgZm91bmRgO1xyXG4gICAgICAgIHJlc3VsdC5mYWlsZWQucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZE5hbWUsXHJcbiAgICAgICAgICBlcnJvcixcclxuICAgICAgICB9KTtcclxuICAgICAgICBvcHRpb25zPy5vbkZpZWxkUmVtb3ZlZD8uKGZpZWxkTmFtZSwgZmFsc2UsIGVycm9yKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIOaUtumbhumUmeivr+a2iOaBr+mUrlxyXG4gICAgICBlcnJvck1lc3NhZ2VLZXlzVG9SZW1vdmUucHVzaChmaWVsZE5hbWUpO1xyXG4gICAgICBmaWVsZHNUb1JlbW92ZS5wdXNoKGZpZWxkTmFtZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyA0LiDmibnph4/miafooYzliKDpmaTmk43kvZxcclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIDQuMSDku44gRm9ybUdyb3VwIOS4reenu+mZpOaOp+S7tlxyXG4gICAgICBmaWVsZHNUb1JlbW92ZS5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICBmb3JtR3JvdXAucmVtb3ZlQ29udHJvbChmaWVsZE5hbWUpO1xyXG4gICAgICAgIHJlc3VsdC5yZW1vdmVkLnB1c2goZmllbGROYW1lKTtcclxuICAgICAgICBvcHRpb25zPy5vbkZpZWxkUmVtb3ZlZD8uKGZpZWxkTmFtZSwgdHJ1ZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gNC4yIOaJuemHj+WIoOmZpOmUmeivr+a2iOaBr1xyXG4gICAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtmb3JtTmFtZV0pIHtcclxuICAgICAgICBlcnJvck1lc3NhZ2VLZXlzVG9SZW1vdmUuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICBkZWxldGUgdGhpcy5lcnJvck1lc3NhZ2VTdG9yZVtmb3JtTmFtZV1ba2V5XTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAvLyDlpoLmnpzmibnph4/liKDpmaTov4fnqIvkuK3lh7rplJnvvIzmoIforrDkuLrlpLHotKVcclxuICAgICAgZmllbGRzVG9SZW1vdmUuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXN1bHQucmVtb3ZlZC5pbmNsdWRlcyhmaWVsZE5hbWUpKSB7XHJcbiAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxyXG4gICAgICAgICAgICBlcnJvcj8ubWVzc2FnZSB8fCBlcnJvcj8udG9TdHJpbmcoKSB8fCBcIkZhaWxlZCB0byByZW1vdmUgZmllbGRcIjtcclxuICAgICAgICAgIHJlc3VsdC5mYWlsZWQucHVzaCh7XHJcbiAgICAgICAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgb3B0aW9ucz8ub25GaWVsZFJlbW92ZWQ/LihmaWVsZE5hbWUsIGZhbHNlLCBlcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gNS4g5Yik5pat5pW05L2T5piv5ZCm5oiQ5YqfXHJcbiAgICByZXN1bHQuc3VjY2VzcyA9IHJlc3VsdC5mYWlsZWQubGVuZ3RoID09PSAwO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLyDlsYDpg6jotYvlgLxcclxuICBwYXRjaEZvcm1WYWx1ZXMoXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4sXHJcbiAgICBvcHRpb25zPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH1cclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybVN0b3JlW25hbWVdO1xyXG4gICAgaWYgKCFmb3JtR3JvdXApIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBbQW50ZEZvcm1TZXJ2aWNlXSBwYXRjaEZvcm1WYWx1ZXM6IGZvcm0gXCIke25hbWV9XCIgbm90IGZvdW5kLmBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1Hcm91cC5wYXRjaFZhbHVlKHZhbHVlcywge1xyXG4gICAgICBlbWl0RXZlbnQ6IG9wdGlvbnM/LmVtaXRFdmVudCA/PyB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDooajljZXmoKHpqozvvIjoh6rliqjov4fmu6TlhoXpg6jlrZfmrrXvvIlcclxuICB2YWxpZGF0ZUZvcm0oXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBvcHRpb25zPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuOyBvbmx5U2VsZj86IGJvb2xlYW4gfVxyXG4gICk6IGJvb2xlYW4gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICAgIGlmICh0aGlzLmZvcm1TdG9yZVtuYW1lXS52YWxpZCkge1xyXG4gICAgICBjb25zdCByYXdWYWx1ZSA9IHRoaXMuZm9ybVN0b3JlW25hbWVdLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgIHJldHVybiB0aGlzLmV4Y2x1ZGVJbnRlcm5hbEZpZWxkcyhyYXdWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyDpgJLlvZLmoKHpqozmiYDmnInmjqfku7ZcclxuICAgICAgdGhpcy5tYXJrQWxsQ29udHJvbHNBc0RpcnR5KFxyXG4gICAgICAgIHRoaXMuZm9ybVN0b3JlW25hbWVdLFxyXG4gICAgICAgIG9wdGlvbnM/LmVtaXRFdmVudCA/PyB0cnVlLFxyXG4gICAgICAgIG9wdGlvbnM/Lm9ubHlTZWxmID8/IGZhbHNlXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOmAkuW9kuagh+iusOaJgOacieaXoOaViOaOp+S7tuS4uiBkaXJ0eVxyXG4gIHByaXZhdGUgbWFya0FsbENvbnRyb2xzQXNEaXJ0eShcclxuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcclxuICAgIGVtaXRFdmVudDogYm9vbGVhbixcclxuICAgIG9ubHlTZWxmOiBib29sZWFuXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XHJcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtcclxuICAgICAgICBlbWl0RXZlbnQsXHJcbiAgICAgICAgb25seVNlbGYsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWmguaenOaYryBGb3JtR3JvdXDvvIzpgJLlvZLlpITnkIbmiYDmnInlrZDmjqfku7ZcclxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoY29udHJvbC5jb250cm9scykuZm9yRWFjaCgoY2hpbGRDb250cm9sKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tYXJrQWxsQ29udHJvbHNBc0RpcnR5KGNoaWxkQ29udHJvbCwgZW1pdEV2ZW50LCBvbmx5U2VsZik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0g6ZSZ6K+v5raI5oGv55u45YWzID09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIC8vIOiOt+WPluWtl+autemmluadoemUmeivr+aPkOekulxyXG4gIGdldEZpZWxkRXJyb3JNZXNzYWdlKG5hbWU6IHN0cmluZywgY29udHJvbE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1TdG9yZVtuYW1lXTtcclxuICAgIGlmICghZm9ybUdyb3VwKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgW0FudGRGb3JtU2VydmljZV0gZ2V0RmllbGRFcnJvck1lc3NhZ2U6IGZvcm0gXCIke25hbWV9XCIgbm90IGZvdW5kLmBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk7XHJcbiAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBbQW50ZEZvcm1TZXJ2aWNlXSBnZXRGaWVsZEVycm9yTWVzc2FnZTogY29udHJvbCBcIiR7Y29udHJvbE5hbWV9XCIgbm90IGZvdW5kIGluIGZvcm0gXCIke25hbWV9XCIuYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICghY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5LuOIGVycm9yTWVzc2FnZVN0b3JlIOiOt+WPlumUmeivr+a2iOaBr+mFjee9rlxyXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IHRoaXMuZXJyb3JNZXNzYWdlU3RvcmVbbmFtZV0/Lltjb250cm9sTmFtZV07XHJcbiAgICBjb25zdCBtZXJnZWRNZXNzYWdlcyA9IHtcclxuICAgICAgLi4udGhpcy5kZWZhdWx0RXJyb3JNZXNzYWdlcyxcclxuICAgICAgLi4uKGVycm9yTWVzc2FnZXMgPz8ge30pLFxyXG4gICAgfTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGVycm9yS2V5IG9mIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKSkge1xyXG4gICAgICBjb25zdCBtZXNzYWdlID0gbWVyZ2VkTWVzc2FnZXNbZXJyb3JLZXldO1xyXG4gICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgIC8vIOS4jeWGjeaUr+aMgeWHveaVsOW9ouW8j++8jOWPqui/lOWbnuWtl+espuS4slxyXG4gICAgICAgIHJldHVybiB0eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIiA/IG1lc3NhZ2UgOiBcIlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09IOebkeWQrOebuOWFsyA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAvLyDnm5HlkKzooajljZXmiYDmnInlrZfmrrXlj5jmm7RcclxuICB3YXRjaEZvcm1DaGFuZ2VzPFQgPSBhbnk+KFxyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgaGFuZGxlcjogKHZhbHVlOiBUKSA9PiB2b2lkLFxyXG4gICAgb3B0aW9ucz86IFdhdGNoT3B0aW9uc1xyXG4gICk6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1TdG9yZVtuYW1lXTtcclxuICAgIGlmICghZm9ybUdyb3VwKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgW0FudGRGb3JtU2VydmljZV0gd2F0Y2hGb3JtQ2hhbmdlczogZm9ybSBcIiR7bmFtZX1cIiBub3QgZm91bmQuYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNldHVwVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24oZm9ybUdyb3VwLCBoYW5kbGVyLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8vIOebkeWQrOaMh+WumuWtl+auteWPmOabtFxyXG4gIHdhdGNoRmllbGRDaGFuZ2VzPFQgPSBhbnk+KFxyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZyxcclxuICAgIGhhbmRsZXI6ICh2YWx1ZTogVCkgPT4gdm9pZCxcclxuICAgIG9wdGlvbnM/OiBXYXRjaE9wdGlvbnNcclxuICApOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICBpZiAoIWZvcm1Hcm91cCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYFtBbnRkRm9ybVNlcnZpY2VdIHdhdGNoRmllbGRDaGFuZ2VzOiBmb3JtIFwiJHtuYW1lfVwiIG5vdCBmb3VuZC5gXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgW0FudGRGb3JtU2VydmljZV0gd2F0Y2hGaWVsZENoYW5nZXM6IGNvbnRyb2wgXCIke2NvbnRyb2xOYW1lfVwiIG5vdCBmb3VuZCBpbiBmb3JtIFwiJHtuYW1lfVwiLmBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zZXR1cFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uKGNvbnRyb2wsIGhhbmRsZXIsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0g5bel5YW35pa55rOVID09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIC8vIOiOt+WPluihqOWNleexu+WQjVxyXG4gIGdldEZvcm1DbGFzc05hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmNsYXNzUHJlZml4fWN1c3RvbS0ke25hbWV9IGA7XHJcbiAgfVxyXG5cclxuICAvLyDorr7nva4gQ1NTIOWPmOmHj+WIsOebruagh+WFg+e0oO+8iOaUr+aMgeaMgeS5heWMluebkeWQrOWKqOaAgea3u+WKoOeahOWFg+e0oO+8iVxyXG4gIHNldENTU1ZhcmlhYmxlc1RvVGFyZ2V0KG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybUNvbnRhaW5lclNlbGVjdG9yID0gYC4ke3RoaXMuZ2V0Rm9ybUNsYXNzTmFtZShuYW1lKX1gO1xyXG4gICAgY29uc3QgZm9ybUNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgIGZvcm1Db250YWluZXJTZWxlY3RvclxyXG4gICAgKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvLyDlpoLmnpzlrrnlmajov5jkuI3lrZjlnKjvvIzlj6/ku6XnlKggTXV0YXRpb25PYnNlcnZlciDnrYnlvoXlroPlh7rnjrBcclxuICAgIGlmICghZm9ybUNvbnRhaW5lcikge1xyXG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICAgZm9ybUNvbnRhaW5lclNlbGVjdG9yXHJcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAoY29udGFpbmVyKSB7XHJcbiAgICAgICAgICBjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCItLWxhYmVsLXdpZHRoXCIsIHRoaXMubGFiZWxXaWR0aCk7XHJcbiAgICAgICAgICBjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCItLWxhYmVsLWFsaWduXCIsIHRoaXMubGFiZWxBbGlnbik7XHJcbiAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge1xyXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIDEw56eS5ZCO6Ieq5Yqo5pat5byA77yM6YG/5YWN5YaF5a2Y5rOE5ryPXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpLCAxMDAwMCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyDlnKjlrrnlmajkuIrorr7nva4gQ1NTIOWPmOmHj1xyXG4gICAgZm9ybUNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tbGFiZWwtd2lkdGhcIiwgdGhpcy5sYWJlbFdpZHRoKTtcclxuICAgIGZvcm1Db250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCItLWxhYmVsLWFsaWduXCIsIHRoaXMubGFiZWxBbGlnbik7XHJcbiAgfVxyXG5cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PSDnp4HmnInmlrnms5UgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgLy8g6L+H5ruk5YaF6YOo5a2X5q6177yI6YCS5b2S5aSE55CG5a+56LGh5ZKM5pWw57uE77yJXHJcbiAgcHJpdmF0ZSBleGNsdWRlSW50ZXJuYWxGaWVsZHModmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g54m55q6K5aSE55CGIERhdGUg5a+56LGh77yM55u05o6l6L+U5Zue5LiN5YGa6L2s5o2iXHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5leGNsdWRlSW50ZXJuYWxGaWVsZHMoaXRlbSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbHRlcmVkOiBhbnkgPSB7fTtcclxuICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChba2V5LCB2YWxdKSA9PiB7XHJcbiAgICAgIC8vIOi/h+a7pOS7pSBfXyDlvIDlpLTnmoTlhoXpg6jlrZfmrrVcclxuICAgICAgaWYgKCFrZXkuc3RhcnRzV2l0aChcIl9fXCIpKSB7XHJcbiAgICAgICAgZmlsdGVyZWRba2V5XSA9IHRoaXMuZXhjbHVkZUludGVybmFsRmllbGRzKHZhbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZpbHRlcmVkO1xyXG4gIH1cclxuXHJcbiAgLy8g6K6+572u5YC85Y+Y5pu06K6i6ZiFXHJcbiAgcHJpdmF0ZSBzZXR1cFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPFQ+KFxyXG4gICAgdGFyZ2V0OiB7IHZhbHVlQ2hhbmdlczogYW55OyB2YWx1ZTogYW55IH0sXHJcbiAgICBoYW5kbGVyOiAodmFsdWU6IFQpID0+IHZvaWQsXHJcbiAgICBvcHRpb25zPzogV2F0Y2hPcHRpb25zXHJcbiAgKTogU3Vic2NyaXB0aW9uIHtcclxuICAgIGxldCB2YWx1ZUNoYW5nZXMkID0gdGFyZ2V0LnZhbHVlQ2hhbmdlcztcclxuXHJcbiAgICBpZiAob3B0aW9ucz8uZGVib3VuY2UgIT0gbnVsbCkge1xyXG4gICAgICB2YWx1ZUNoYW5nZXMkID0gdmFsdWVDaGFuZ2VzJC5waXBlKGRlYm91bmNlVGltZShvcHRpb25zLmRlYm91bmNlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnM/LmRpc3RpbmN0VW50aWxDaGFuZ2VkICE9PSBmYWxzZSkge1xyXG4gICAgICB2YWx1ZUNoYW5nZXMkID0gdmFsdWVDaGFuZ2VzJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zPy5lbWl0SW5pdGlhbCkge1xyXG4gICAgICBoYW5kbGVyKHRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbHVlQ2hhbmdlcyQuc3Vic2NyaWJlKGhhbmRsZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -390,4 +390,4 @@ ArrayFormService.decorators = [
390
390
  },] }
391
391
  ];
392
392
  ArrayFormService.ctorParameters = () => [];
393
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byby10YWJsZS9zcmMvbGliL3BhZ2UtcHVibGljL2FycmF5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUF3RHBDLGtCQUFrQjtBQUlsQixNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCO1FBRlEsY0FBUyxHQUFtQixFQUFFLENBQUM7SUFFeEIsQ0FBQztJQUVoQixZQUFZO0lBQ0osVUFBVSxDQUFDLEtBQVU7UUFDM0IsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDekMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7WUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0I7SUFDUixPQUFPLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDNUIsSUFBSSxD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R0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUU1QixtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFckIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7O1lBdmZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xyXG5cclxuLyoqIOWtl+auteagoemqjOe7k+aenOexu+WeiyAqL1xyXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uUmVzdWx0ID0gc3RyaW5nO1xyXG5cclxuLyoqIOWtl+auteagoemqjOaWueazleexu+WeiyAqL1xyXG5leHBvcnQgdHlwZSBGaWVsZFZhbGlkYXRvciA9IChcclxuICB2YWx1ZTogYW55LFxyXG4gIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gIGZpZWxkTmFtZTogc3RyaW5nXHJcbikgPT4gVmFsaWRhdGlvblJlc3VsdDtcclxuXHJcbi8qKiDlrZfmrrXphY3nva7mjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZENvbmZpZyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcj86IEZpZWxkVmFsaWRhdG9yO1xyXG59XHJcblxyXG4vKiog5pWw57uE6KGo5Y2V6KGM5pWw5o2u5o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGb3JtUm93IHtcclxuICB1aWQ/OiBzdHJpbmc7XHJcbiAgaXNFZGl0PzogYm9vbGVhbjtcclxuICBpc0FkZD86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqIOaVsOe7hOihqOWNlemFjee9ruaOpeWPoyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFycmF5Rm9ybUNvbmZpZyB7XHJcbiAgZmllbGRzOiBGaWVsZENvbmZpZ1tdO1xyXG4gIGRlZmF1bHRWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIC8vIOiHquWKqOabtOaWsOebruagh+WvueixoeWSjOWxnuaAp+WQje+8jOeUqOS6juinpuWPkSBBbmd1bGFyIOWPmOWMluajgOa1i1xyXG4gIHRhcmdldE9iamVjdD86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgYXJyYXlQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKiDooajljZXlrZjlgqjpobnmjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUZvcm1TdG9yZUl0ZW0ge1xyXG4gIGRhdGE6IEFycmF5Rm9ybVJvd1tdO1xyXG4gIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnO1xyXG4gIHZhbGlkYXRpb25SZXN1bHRzPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgVmFsaWRhdGlvblJlc3VsdD4+O1xyXG4gIC8qKiDliJ3lp4vlgLzlv6vnhafvvIznlKjkuo7oh6rliqjmo4DmtYvlrZfmrrXmmK/lkKbooqvkv67mlLkgKi9cclxuICBpbml0aWFsU25hcHNob3Q6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+O1xyXG4gIC8qKiDnvJbovpHml7blv6vnhafvvIznlKjkuo7lj5bmtojnvJbovpHml7bmgaLlpI3mlbDmja4gKi9cclxuICBlZGl0aW5nU25hcHNob3Q6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+O1xyXG4gIC8qKiDmmK/lkKbmoIforrDmiYDmnInlrZfmrrXkuLrlt7Lop6bnorDvvIjmlbTkuKrooajljZXmj5DkuqTml7borr7kuLogdHJ1Ze+8iSAqL1xyXG4gIGFsbFRvdWNoZWQ6IGJvb2xlYW47XHJcbiAgLyoqIOavj+ihjOeahCB0b3VjaGVkIOeKtuaAge+8iOWNleihjOS/neWtmOaXtuiuvuS4uiB0cnVl77yJICovXHJcbiAgcm93VG91Y2hlZDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XHJcbn1cclxuXHJcbi8qKiDooajljZXlrZjlgqjmjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUZvcm1TdG9yZSB7XHJcbiAgW2Zvcm1OYW1lOiBzdHJpbmddOiBBcnJheUZvcm1TdG9yZUl0ZW07XHJcbn1cclxuXHJcbi8qKiDmlbDnu4TlnovmlbDmja7mlLbpm4bln7rnoYDmnI3liqEgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBmb3JtU3RvcmU6IEFycmF5Rm9ybVN0b3JlID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgLyoqIOa3seW6puWFi+mahuWAvCAqL1xyXG4gIHByaXZhdGUgY2xvbmVWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB0aGlzLmNsb25lVmFsdWUoaXRlbSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICBjb25zdCBjbG9uZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XHJcbiAgICAgICAgY2xvbmVkW2tleV0gPSB0aGlzLmNsb25lVmFsdWUodmFsdWVba2V5XSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNsb25lZDtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDmr5TovoPkuKTkuKrlgLzmmK/lkKbnm7jnrYkgKi9cclxuICBwcml2YXRlIGlzRXF1YWwoYTogYW55LCBiOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmIChhID09PSBiKSByZXR1cm4gdHJ1ZTtcclxuICAgIGlmIChhID09PSBudWxsIHx8IGIgPT09IG51bGwpIHJldHVybiBhID09PSBiO1xyXG4gICAgaWYgKGEgPT09IHVuZGVmaW5lZCB8fCBiID09PSB1bmRlZmluZWQpIHJldHVybiBhID09PSBiO1xyXG4gICAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikpIHtcclxuICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICByZXR1cm4gYS5ldmVyeSgoaXRlbSwgaW5kZXgpID0+IHRoaXMuaXNFcXVhbChpdGVtLCBiW2luZGV4XSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgYSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgYiA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xyXG4gICAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xyXG4gICAgICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIGtleXNBLmV2ZXJ5KChrZXkpID0+IHRoaXMuaXNFcXVhbChhW2tleV0sIGJba2V5XSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiDliJvlu7rooYznmoTliJ3lp4vlgLzlv6vnhacgKi9cclxuICBwcml2YXRlIGNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZHM6IEZpZWxkQ29uZmlnW11cclxuICApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICAgIGNvbnN0IHNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgc25hcHNob3RbZmllbGQubmFtZV0gPSB0aGlzLmNsb25lVmFsdWUocm93W2ZpZWxkLm5hbWVdKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHNuYXBzaG90O1xyXG4gIH1cclxuXHJcbiAgLyoqIOWIneWni+WMluaVsOe7hOaVsOaNru+8jOa3u+WKoCB1aWQg5ZKMIGlzRWRpdCDlrZfmrrUgKi9cclxuICBwcml2YXRlIGluaXRpYWxpemVEYXRhKGRhdGE6IGFueVtdKTogQXJyYXlGb3JtUm93W10ge1xyXG4gICAgcmV0dXJuIGRhdGEubWFwKChpdGVtKSA9PiB0aGlzLmVucmljaFJvdyhpdGVtKSk7XHJcbiAgfVxyXG5cclxuICAvKiog5Li65Y2V6KGM5pWw5o2u5re75YqgIHVpZCDlkowgaXNFZGl0IOWtl+autSAqL1xyXG4gIHByaXZhdGUgZW5yaWNoUm93KHJvdzogYW55KTogQXJyYXlGb3JtUm93IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnJvdyxcclxuICAgICAgdWlkOiByb3cudWlkIHx8IHV1aWR2NCgpLFxyXG4gICAgICBpc0VkaXQ6IHJvdy5pc0VkaXQgIT09IHVuZGVmaW5lZCA/IHJvdy5pc0VkaXQgOiBmYWxzZSxcclxuICAgICAgZGlzYWJsZWQ6IHJvdy5kaXNhYmxlZCAhPT0gdW5kZWZpbmVkID8gcm93LmRpc2FibGVkIDogZmFsc2UsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIOaWsOWinuS4gOihjOaVsOaNriAqL1xyXG4gIHByaXZhdGUgYWRkUm93KFxyXG4gICAgZGF0YTogQXJyYXlGb3JtUm93W10sXHJcbiAgICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IEFycmF5Rm9ybVJvdyB7XHJcbiAgICBjb25zdCBuZXdSb3c6IEFycmF5Rm9ybVJvdyA9IHtcclxuICAgICAgLi4uZGVmYXVsdFZhbHVlcyxcclxuICAgICAgdWlkOiB1dWlkdjQoKSxcclxuICAgICAgaXNFZGl0OiB0cnVlLFxyXG4gICAgICBpc0FkZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIGRhdGEucHVzaChuZXdSb3cpO1xyXG4gICAgcmV0dXJuIG5ld1JvdztcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozljZXkuKrlrZfmrrUgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlRmllbGQoXHJcbiAgICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgY29uZmlnOiBBcnJheUZvcm1Db25maWdcclxuICApOiBWYWxpZGF0aW9uUmVzdWx0IHtcclxuICAgIGNvbnN0IGZpZWxkQ29uZmlnID0gY29uZmlnLmZpZWxkcy5maW5kKChmKSA9PiBmLm5hbWUgPT09IGZpZWxkTmFtZSk7XHJcblxyXG4gICAgaWYgKCFmaWVsZENvbmZpZykge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmllbGRDb25maWcudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZENvbmZpZy52YWxpZGF0b3Iocm93W2ZpZWxkTmFtZV0sIHJvdywgZmllbGROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozmlbTooYzmlbDmja4gKi9cclxuICBwcml2YXRlIHZhbGlkYXRlUm93KFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZ1xyXG4gICk6IFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIGNvbnN0IHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+ID0ge307XHJcblxyXG4gICAgY29uZmlnLmZpZWxkcy5mb3JFYWNoKChmaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICByZXN1bHRzW2ZpZWxkQ29uZmlnLm5hbWVdID0gdGhpcy52YWxpZGF0ZUZpZWxkKFxyXG4gICAgICAgIHJvdyxcclxuICAgICAgICBmaWVsZENvbmZpZy5uYW1lLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5pW05Liq5pWw57uEICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZURhdGEoXHJcbiAgICBkYXRhOiBBcnJheUZvcm1Sb3dbXSxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgVmFsaWRhdGlvblJlc3VsdD4+IHtcclxuICAgIGNvbnN0IHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PiA9IHt9O1xyXG5cclxuICAgIGRhdGEuZm9yRWFjaCgocm93KSA9PiB7XHJcbiAgICAgIHJlc3VsdHNbcm93LnVpZF0gPSB0aGlzLnZhbGlkYXRlUm93KHJvdywgY29uZmlnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgLyoqIOazqOWGjOihqOWNleWIsOWtmOWCqCAqL1xyXG4gIHJlZ2lzdGVyRm9ybShcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBBcnJheUZvcm1Sb3dbXSxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbml0aWFsaXplZERhdGEgPSB0aGlzLmluaXRpYWxpemVEYXRhKGRhdGEpO1xyXG5cclxuICAgIC8vIOiusOW9leWIneWni+WAvOW/q+eFp1xyXG4gICAgY29uc3QgaW5pdGlhbFNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHt9O1xyXG4gICAgaW5pdGlhbGl6ZWREYXRhLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgICBpbml0aWFsU25hcHNob3Rbcm93LnVpZCFdID0gdGhpcy5jcmVhdGVSb3dTbmFwc2hvdChyb3csIGNvbmZpZy5maWVsZHMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdID0ge1xyXG4gICAgICBkYXRhOiBpbml0aWFsaXplZERhdGEsXHJcbiAgICAgIGNvbmZpZyxcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdHM6IHt9LFxyXG4gICAgICBpbml0aWFsU25hcHNob3QsXHJcbiAgICAgIGVkaXRpbmdTbmFwc2hvdDoge30sXHJcbiAgICAgIGFsbFRvdWNoZWQ6IGZhbHNlLFxyXG4gICAgICByb3dUb3VjaGVkOiB7fSxcclxuICAgIH07XHJcbiAgICAvLyDlpoLmnpzphY3nva7kuoboh6rliqjmm7TmlrDvvIznq4vljbPmm7TmlrDkuIDmrKFcclxuICAgIHRoaXMuYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKiDku47lrZjlgqjkuK3ojrflj5booajljZUgKi9cclxuICBnZXRGb3JtKGZvcm1OYW1lOiBzdHJpbmcpOiBBcnJheUZvcm1TdG9yZUl0ZW0gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICB9XHJcblxyXG4gIC8qKiDku47lrZjlgqjkuK3ojrflj5booajljZXmlbDmja4gKi9cclxuICBnZXRGb3JtRGF0YShcclxuICAgIGZvcm1OYW1lOiBzdHJpbmdcclxuICApOlxyXG4gICAgfCBBcnJheTxQaWNrPEFycmF5Rm9ybVJvdywgXCJ1aWRcIiB8IFwiaXNFZGl0XCIgfCBcImlzQWRkXCIgfCBrZXlvZiBBcnJheUZvcm1Sb3c+PlxyXG4gICAgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm0uZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgZGVsZXRlIGl0ZW0uaXNFZGl0O1xyXG4gICAgICBkZWxldGUgaXRlbS5pc0FkZDtcclxuICAgICAgZGVsZXRlIGl0ZW0udWlkO1xyXG4gICAgICBkZWxldGUgaXRlbS5kaXNhYmxlZDtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiDlkJHooajljZXmt7vliqDooYwgKi9cclxuICBhZGRSb3dUb0Zvcm0oXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgZGVmYXVsdFZhbHVlcz86IFJlY29yZDxzdHJpbmcsIGFueT5cclxuICApOiBBcnJheUZvcm1Sb3cgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3Um93ID0gdGhpcy5hZGRSb3coZm9ybS5kYXRhLCBkZWZhdWx0VmFsdWVzKTtcclxuICAgIC8vIOS4uuaWsOihjOiusOW9leWIneWni+WAvOW/q+eFp1xyXG4gICAgZm9ybS5pbml0aWFsU25hcHNob3RbbmV3Um93LnVpZCFdID0gdGhpcy5jcmVhdGVSb3dTbmFwc2hvdChcclxuICAgICAgbmV3Um93LFxyXG4gICAgICBmb3JtLmNvbmZpZy5maWVsZHNcclxuICAgICk7XHJcbiAgICAvLyDoh6rliqjmm7TmlrDlpJbpg6jmlbDnu4TlvJXnlKhcclxuICAgIHRoaXMuYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lKTtcclxuICAgIHJldHVybiBuZXdSb3c7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM6KGo5Y2V77yM6Ieq5Yqo5qCH6K6w5omA5pyJ5a2X5q615Li65bey6Kem56KwICovXHJcbiAgdmFsaWRhdGVGb3JtKGZvcm1OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyDmoIforrDmiYDmnInlrZfmrrXkuLrlt7Lop6bnorBcclxuICAgIGZvcm0uYWxsVG91Y2hlZCA9IHRydWU7XHJcbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy52YWxpZGF0ZURhdGEoZm9ybS5kYXRhLCBmb3JtLmNvbmZpZyk7XHJcbiAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzID0gcmVzdWx0cztcclxuXHJcbiAgICAvLyDmo4Dmn6XmmK/lkKbmnInku7vkvZXplJnor69cclxuICAgIGZvciAoY29uc3QgdWlkIG9mIE9iamVjdC5rZXlzKHJlc3VsdHMpKSB7XHJcbiAgICAgIGZvciAoY29uc3QgZmllbGROYW1lIG9mIE9iamVjdC5rZXlzKHJlc3VsdHNbdWlkXSkpIHtcclxuICAgICAgICBpZiAocmVzdWx0c1t1aWRdW2ZpZWxkTmFtZV0pIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIOW8gOWQr+e8lui+keaooeW8j++8jOS/neWtmOW/q+eFp+eUqOS6juWPlua2iOaBouWkjSAqL1xyXG4gIGVuYWJsZUVkaXQoZm9ybU5hbWU6IHN0cmluZywgcm93OiBBcnJheUZvcm1Sb3cpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoZm9ybSAmJiByb3cudWlkKSB7XHJcbiAgICAgIC8vIOS/neWtmOe8lui+keWJjeeahOW/q+eFp1xyXG4gICAgICBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3QoXHJcbiAgICAgICAgcm93LFxyXG4gICAgICAgIGZvcm0uY29uZmlnLmZpZWxkc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcm93LmlzRWRpdCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiog5Y+W5raI57yW6L6R77yM5oGi5aSN5Yiw57yW6L6R5YmN55qE5pWw5o2uICovXHJcbiAgZGlzYWJsZUVkaXQoZm9ybU5hbWU6IHN0cmluZywgcm93OiBBcnJheUZvcm1Sb3cpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoZm9ybSAmJiByb3cudWlkICYmIGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdKSB7XHJcbiAgICAgIC8vIOaBouWkjee8lui+keWJjeeahOaVsOaNrlxyXG4gICAgICBjb25zdCBzbmFwc2hvdCA9IGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdO1xyXG4gICAgICBmb3JtLmNvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICByb3dbZmllbGQubmFtZV0gPSB0aGlzLmNsb25lVmFsdWUoc25hcHNob3RbZmllbGQubmFtZV0pO1xyXG4gICAgICB9KTtcclxuICAgICAgLy8g5pu05paw5Yid5aeL5b+r54Wn5Li65oGi5aSN5ZCO55qE5YC877yM5raI6ZmkIHRvdWNoZWQg54q25oCBXHJcbiAgICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWRdID0gdGhpcy5jbG9uZVZhbHVlKHNuYXBzaG90KTtcclxuICAgICAgLy8g5riF55CG57yW6L6R5b+r54Wn5ZKMIHRvdWNoZWQg54q25oCBXHJcbiAgICAgIGRlbGV0ZSBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXTtcclxuICAgICAgZGVsZXRlIGZvcm0ucm93VG91Y2hlZFtyb3cudWlkXTtcclxuICAgICAgLy8g5riF55CG6K+l6KGM55qE5qCh6aqM57uT5p6cXHJcbiAgICAgIGlmIChmb3JtLnZhbGlkYXRpb25SZXN1bHRzKSB7XHJcbiAgICAgICAgZGVsZXRlIGZvcm0udmFsaWRhdGlvblJlc3VsdHNbcm93LnVpZF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJvdy5pc0VkaXQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiDnoa7orqTnvJbovpHvvIzkv53nlZnkv67mlLnlkI7nmoTmlbDmja4gKi9cclxuICBjb25maXJtRWRpdChmb3JtTmFtZTogc3RyaW5nLCByb3c6IEFycmF5Rm9ybVJvdyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmIChmb3JtICYmIHJvdy51aWQpIHtcclxuICAgICAgLy8g5riF55CG57yW6L6R5b+r54Wn77yI5L+d55WZ5b2T5YmN5pWw5o2u77yJXHJcbiAgICAgIGlmIChmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXSkge1xyXG4gICAgICAgIGRlbGV0ZSBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXTtcclxuICAgICAgfVxyXG4gICAgICAvLyDmm7TmlrDliJ3lp4vlv6vnhafkuLrlvZPliY3lgLzvvIjnlKjkuo7lkI7nu60gdG91Y2hlZCDmo4DmtYvvvIlcclxuICAgICAgZm9ybS5pbml0aWFsU25hcHNob3Rbcm93LnVpZF0gPSB0aGlzLmNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgICAgIHJvdyxcclxuICAgICAgICBmb3JtLmNvbmZpZy5maWVsZHNcclxuICAgICAgKTtcclxuICAgICAgLy8g5riF6ZmkIHRvdWNoZWQg54q25oCB77yM5Z+65LqO5paw55qEIGluaXRpYWxTbmFwc2hvdCDph43mlrDliKTmlq1cclxuICAgICAgZGVsZXRlIGZvcm0ucm93VG91Y2hlZFtyb3cudWlkXTtcclxuICAgIH1cclxuICAgIHJvdy5pc0VkaXQgPSBmYWxzZTtcclxuICAgIHJvdy5pc0FkZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIOS7juihqOWNleS4reWIoOmZpOaMh+WumuihjCAqL1xyXG4gIGRlbGV0ZVJvd0Zyb21Gb3JtKGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtIHx8ICFyb3cudWlkKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4ID0gZm9ybS5kYXRhLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS51aWQgPT09IHJvdy51aWQpO1xyXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBmb3JtLmRhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIC8vIOa4heeQhuivpeihjOeahOaJgOacieW/q+eFp+OAgXRvdWNoZWQg54q25oCB5ZKM5qCh6aqM57uT5p6cXHJcbiAgICBkZWxldGUgZm9ybS5pbml0aWFsU25hcHNob3Rbcm93LnVpZF07XHJcbiAgICBkZWxldGUgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF07XHJcbiAgICBkZWxldGUgZm9ybS5yb3dUb3VjaGVkW3Jvdy51aWRdO1xyXG4gICAgaWYgKGZvcm0udmFsaWRhdGlvblJlc3VsdHMpIHtcclxuICAgICAgZGVsZXRlIGZvcm0udmFsaWRhdGlvblJlc3VsdHNbcm93LnVpZF07XHJcbiAgICB9XHJcbiAgICAvLyDoh6rliqjmm7TmlrDlpJbpg6jmlbDnu4TlvJXnlKhcclxuICAgIHRoaXMuYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIOajgOa1i+Wtl+auteaYr+WQpuW3suiiq+inpueisCAqL1xyXG4gIHByaXZhdGUgaXNGaWVsZFRvdWNoZWQoXHJcbiAgICBmb3JtOiBBcnJheUZvcm1TdG9yZUl0ZW0sXHJcbiAgICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICAvLyDmlbTkuKrooajljZXlt7IgdG91Y2hlZO+8iOaVtOS4quihqOWNleaPkOS6pOaXtu+8iVxyXG4gICAgaWYgKGZvcm0uYWxsVG91Y2hlZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIOW9k+WJjeihjOW3siB0b3VjaGVk77yI5Y2V6KGM5L+d5a2Y5pe277yJXHJcbiAgICBpZiAoZm9ybS5yb3dUb3VjaGVkW3Jvdy51aWQhXSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIOajgOa1i+W9k+WJjeWAvOS4juWIneWni+WAvOaYr+WQpuS4jeWQjFxyXG4gICAgY29uc3QgaW5pdGlhbFZhbHVlID0gZm9ybS5pbml0aWFsU25hcHNob3Rbcm93LnVpZCFdPy5bZmllbGROYW1lXTtcclxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHJvd1tmaWVsZE5hbWVdO1xyXG4gICAgcmV0dXJuICF0aGlzLmlzRXF1YWwoaW5pdGlhbFZhbHVlLCBjdXJyZW50VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIOagoemqjOaMh+WumuihjOeahOaMh+WumuWtl+aute+8jOacquS/ruaUueaXtuS4jeaYvuekuuagoemqjOeKtuaAgSAqL1xyXG4gIHZhbGlkYXRlRmllbGRJblJvdyhcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nXHJcbiAgKTogXCJzdWNjZXNzXCIgfCBcImVycm9yXCIgfCBcIlwiIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmllbGRDb25maWcgPSBmb3JtLmNvbmZpZy5maWVsZHMuZmluZCgoZikgPT4gZi5uYW1lID09PSBmaWVsZE5hbWUpO1xyXG4gICAgaWYgKCFmaWVsZENvbmZpZykge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmiafooYzmoKHpqoxcclxuICAgIGxldCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBcIlwiO1xyXG4gICAgaWYgKGZpZWxkQ29uZmlnLnZhbGlkYXRvcikge1xyXG4gICAgICByZXN1bHQgPSBmaWVsZENvbmZpZy52YWxpZGF0b3Iocm93W2ZpZWxkTmFtZV0sIHJvdywgZmllbGROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmm7TmlrDmoKHpqoznu5PmnpzlrZjlgqhcclxuICAgIGlmICghZm9ybS52YWxpZGF0aW9uUmVzdWx0cykge1xyXG4gICAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzID0ge307XHJcbiAgICB9XHJcbiAgICBpZiAoIWZvcm0udmFsaWRhdGlvblJlc3VsdHNbcm93LnVpZCFdKSB7XHJcbiAgICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHNbcm93LnVpZCFdID0ge307XHJcbiAgICB9XHJcbiAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWQhXVtmaWVsZE5hbWVdID0gcmVzdWx0O1xyXG5cclxuICAgIC8vIOWmguaenOWtl+auteacquiiq+inpueisO+8jOS4jeaYvuekuuagoemqjOeKtuaAgVxyXG4gICAgaWYgKCF0aGlzLmlzRmllbGRUb3VjaGVkKGZvcm0sIHJvdywgZmllbGROYW1lKSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0ID8gXCJlcnJvclwiIDogXCJzdWNjZXNzXCI7XHJcbiAgfVxyXG5cclxuICAvKiog6I635Y+W5oyH5a6a6KGM5oyH5a6a5a2X5q6155qE5qCh6aqM6ZSZ6K+v5L+h5oGvICovXHJcbiAgZ2V0RmllbGRFcnJvck1lc3NhZ2UoXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xyXG4gICk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtIHx8ICFyb3cudWlkKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgLy8g5aaC5p6c5a2X5q615pyq6KKr6Kem56Kw77yM5LiN5pi+56S66ZSZ6K+v5L+h5oGvXHJcbiAgICBpZiAoIXRoaXMuaXNGaWVsZFRvdWNoZWQoZm9ybSwgcm93LCBmaWVsZE5hbWUpKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm0udmFsaWRhdGlvblJlc3VsdHM/Lltyb3cudWlkXT8uW2ZpZWxkTmFtZV0gfHwgXCJcIjtcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozmjIflrprooYznmoTmiYDmnInlrZfmrrUgKi9cclxuICB2YWxpZGF0ZVJvd0FsbEZpZWxkcyhmb3JtTmFtZTogc3RyaW5nLCByb3c6IEFycmF5Rm9ybVJvdyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSB8fCAhcm93LnVpZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmm7TmlrDliJ3lp4vlv6vnhafkuLrlvZPliY3lgLxcclxuICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWRdID0gdGhpcy5jcmVhdGVSb3dTbmFwc2hvdChcclxuICAgICAgcm93LFxyXG4gICAgICBmb3JtLmNvbmZpZy5maWVsZHNcclxuICAgICk7XHJcbiAgICAvLyDmoIforrDlvZPliY3ooYzkuLogdG91Y2hlZO+8iOWPquW9seWTjeW9k+WJjeihjO+8jOS4jeW9seWTjeWFtuS7luihjO+8iVxyXG4gICAgZm9ybS5yb3dUb3VjaGVkW3Jvdy51aWRdID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgaGFzRXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICBmb3JtLmNvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWcpID0+IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy52YWxpZGF0ZUZpZWxkSW5Sb3coZm9ybU5hbWUsIHJvdywgZmllbGRDb25maWcubmFtZSk7XHJcbiAgICAgIGlmIChyZXN1bHQgPT09IFwiZXJyb3JcIikge1xyXG4gICAgICAgIGhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuICFoYXNFcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKiDoh6rliqjmm7TmlrDlpJbpg6jmlbDnu4TlvJXnlKggKi9cclxuICBwcml2YXRlIGF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtIHx8ICFmb3JtLmNvbmZpZy50YXJnZXRPYmplY3QgfHwgIWZvcm0uY29uZmlnLmFycmF5UHJvcGVydHlOYW1lKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0FycmF5ID0gZm9ybS5kYXRhID8gWy4uLmZvcm0uZGF0YV0gOiBbXTtcclxuICAgIC8vIOabtOaWsOebruagh+WvueixoeeahOaVsOe7hOWxnuaAp+S4uuaWsOaVsOe7hOW8leeUqFxyXG4gICAgKGZvcm0uY29uZmlnLnRhcmdldE9iamVjdCBhcyBhbnkpW2Zvcm0uY29uZmlnLmFycmF5UHJvcGVydHlOYW1lXSA9IG5ld0FycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqIOaYr+WQpuacieato+WcqOe8lui+keeahOihjCAqL1xyXG4gIGhhc0VkaXRpbmdSb3coZm9ybU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybS5kYXRhLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaXNFZGl0KTtcclxuICB9XHJcblxyXG4gIC8vIOmUgOavgeWvueW6lOeahOihqOWNlVxyXG4gIGRlc3RvcnkobmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBuYW1lcy5mb3JFYWNoKChuYW1lKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1TdG9yZVtuYW1lXSkge1xyXG4gICAgICAgIC8vIOa4heeQhuihqOWNleaVsOaNrlxyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmZvcm1TdG9yZVtuYW1lXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDph43nva7ooajljZXmlbDnu4RcclxuICByZXNldEZvcm1BcnJheShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtuYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMS4g5riF56m65pWw5o2u5pWw57uEXHJcbiAgICBmb3JtLmRhdGEgPSBbXTtcclxuXHJcbiAgICAvLyAyLiDmuIXnkIbmiYDmnInlv6vnhadcclxuICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90ID0ge307XHJcbiAgICBmb3JtLmVkaXRpbmdTbmFwc2hvdCA9IHt9O1xyXG5cclxuICAgIC8vIDMuIOa4heeQhuagoemqjOe7k+aenFxyXG4gICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0cyA9IHt9O1xyXG5cclxuICAgIC8vIDQuIOmHjee9riB0b3VjaGVkIOeKtuaAgVxyXG4gICAgZm9ybS5hbGxUb3VjaGVkID0gZmFsc2U7XHJcbiAgICBmb3JtLnJvd1RvdWNoZWQgPSB7fTtcclxuXHJcbiAgICAvLyA1LiDlpoLmnpzphY3nva7kuoboh6rliqjmm7TmlrDvvIzmm7TmlrDlpJbpg6jmlbDnu4TlvJXnlKhcclxuICAgIHRoaXMuYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIOaJuemHj+iuvue9ruihqOWNleaVsOaNru+8iOeUqOS6juWbnuWhq+aVsOaNru+8iSAqL1xyXG4gIHNldEZvcm1EYXRhKGZvcm1OYW1lOiBzdHJpbmcsIGRhdGE6IGFueVtdKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyAxLiDliJ3lp4vljJbmlbDmja7vvIjmt7vliqAgdWlk44CBaXNFZGl0IOetieWtl+aute+8iVxyXG4gICAgY29uc3QgaW5pdGlhbGl6ZWREYXRhID0gdGhpcy5pbml0aWFsaXplRGF0YShkYXRhKTtcclxuXHJcbiAgICAvLyAyLiDmm7TmlrDooajljZXmlbDmja5cclxuICAgIGZvcm0uZGF0YSA9IGluaXRpYWxpemVkRGF0YTtcclxuXHJcbiAgICAvLyAzLiDph43mlrDliJvlu7rliJ3lp4vlgLzlv6vnhadcclxuICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90ID0ge307XHJcbiAgICBpbml0aWFsaXplZERhdGEuZm9yRWFjaCgocm93KSA9PiB7XHJcbiAgICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWQhXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3QoXHJcbiAgICAgICAgcm93LFxyXG4gICAgICAgIGZvcm0uY29uZmlnLmZpZWxkc1xyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gNC4g5riF55CG57yW6L6R5b+r54Wn5ZKM5qCh6aqM57uT5p6cXHJcbiAgICBmb3JtLmVkaXRpbmdTbmFwc2hvdCA9IHt9O1xyXG4gICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0cyA9IHt9O1xyXG5cclxuICAgIC8vIDUuIOmHjee9riB0b3VjaGVkIOeKtuaAgVxyXG4gICAgZm9ybS5hbGxUb3VjaGVkID0gZmFsc2U7XHJcbiAgICBmb3JtLnJvd1RvdWNoZWQgPSB7fTtcclxuXHJcbiAgICAvLyA2LiDlpoLmnpzphY3nva7kuoboh6rliqjmm7TmlrDvvIzmm7TmlrDlpJbpg6jmlbDnu4TlvJXnlKhcclxuICAgIHRoaXMuYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lKTtcclxuICB9XHJcbn1cclxuIl19
393
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byby10YWJsZS9zcmMvbGliL3BhZ2UtcHVibGljL2FycmF5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUF3RHBDLGtCQUFrQjtBQUlsQixNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCO1FBRlEsY0FBUyxHQUFtQixFQUFFLENBQUM7SUFFeEIsQ0FBQztJQUVoQixZQUFZO0lBQ0osVUFBVSxDQUFDLEtBQVU7UUFDM0IsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDekMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7WUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0I7SUFDUixPQUFPLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDNUIsSUFBSSxD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QWlCO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFNUIsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXJCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7OztZQXZmRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSBcInV1aWRcIjtcclxuXHJcbi8qKiDlrZfmrrXmoKHpqoznu5PmnpznsbvlnosgKi9cclxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdCA9IHN0cmluZztcclxuXHJcbi8qKiDlrZfmrrXmoKHpqozmlrnms5XnsbvlnosgKi9cclxuZXhwb3J0IHR5cGUgRmllbGRWYWxpZGF0b3IgPSAoXHJcbiAgdmFsdWU6IGFueSxcclxuICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICBmaWVsZE5hbWU6IHN0cmluZ1xyXG4pID0+IFZhbGlkYXRpb25SZXN1bHQ7XHJcblxyXG4vKiog5a2X5q616YWN572u5o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRDb25maWcge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWxpZGF0b3I/OiBGaWVsZFZhbGlkYXRvcjtcclxufVxyXG5cclxuLyoqIOaVsOe7hOihqOWNleihjOaVsOaNruaOpeWPoyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFycmF5Rm9ybVJvdyB7XHJcbiAgdWlkPzogc3RyaW5nO1xyXG4gIGlzRWRpdD86IGJvb2xlYW47XHJcbiAgaXNBZGQ/OiBib29sZWFuO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8qKiDmlbDnu4TooajljZXphY3nva7mjqXlj6MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUZvcm1Db25maWcge1xyXG4gIGZpZWxkczogRmllbGRDb25maWdbXTtcclxuICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICAvLyDoh6rliqjmm7TmlrDnm67moIflr7nosaHlkozlsZ7mgKflkI3vvIznlKjkuo7op6blj5EgQW5ndWxhciDlj5jljJbmo4DmtYtcclxuICB0YXJnZXRPYmplY3Q/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIGFycmF5UHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKiog6KGo5Y2V5a2Y5YKo6aG55o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGb3JtU3RvcmVJdGVtIHtcclxuICBkYXRhOiBBcnJheUZvcm1Sb3dbXTtcclxuICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZztcclxuICB2YWxpZGF0aW9uUmVzdWx0cz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PjtcclxuICAvKiog5Yid5aeL5YC85b+r54Wn77yM55So5LqO6Ieq5Yqo5qOA5rWL5a2X5q615piv5ZCm6KKr5L+u5pS5ICovXHJcbiAgaW5pdGlhbFNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcclxuICAvKiog57yW6L6R5pe25b+r54Wn77yM55So5LqO5Y+W5raI57yW6L6R5pe25oGi5aSN5pWw5o2uICovXHJcbiAgZWRpdGluZ1NuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcclxuICAvKiog5piv5ZCm5qCH6K6w5omA5pyJ5a2X5q615Li65bey6Kem56Kw77yI5pW05Liq6KGo5Y2V5o+Q5Lqk5pe26K6+5Li6IHRydWXvvIkgKi9cclxuICBhbGxUb3VjaGVkOiBib29sZWFuO1xyXG4gIC8qKiDmr4/ooYznmoQgdG91Y2hlZCDnirbmgIHvvIjljZXooYzkv53lrZjml7borr7kuLogdHJ1Ze+8iSAqL1xyXG4gIHJvd1RvdWNoZWQ6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xyXG59XHJcblxyXG4vKiog6KGo5Y2V5a2Y5YKo5o6l5Y+jICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGb3JtU3RvcmUge1xyXG4gIFtmb3JtTmFtZTogc3RyaW5nXTogQXJyYXlGb3JtU3RvcmVJdGVtO1xyXG59XHJcblxyXG4vKiog5pWw57uE5Z6L5pWw5o2u5pS26ZuG5Z+656GA5pyN5YqhICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgZm9ybVN0b3JlOiBBcnJheUZvcm1TdG9yZSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIC8qKiDmt7HluqblhYvpmoblgLwgKi9cclxuICBwcml2YXRlIGNsb25lVmFsdWUodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5jbG9uZVZhbHVlKGl0ZW0pKTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgY29uc3QgY2xvbmVkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xyXG4gICAgICAgIGNsb25lZFtrZXldID0gdGhpcy5jbG9uZVZhbHVlKHZhbHVlW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbG9uZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiog5q+U6L6D5Lik5Liq5YC85piv5ZCm55u4562JICovXHJcbiAgcHJpdmF0ZSBpc0VxdWFsKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XHJcbiAgICBpZiAoYSA9PT0gbnVsbCB8fCBiID09PSBudWxsKSByZXR1cm4gYSA9PT0gYjtcclxuICAgIGlmIChhID09PSB1bmRlZmluZWQgfHwgYiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gYSA9PT0gYjtcclxuICAgIGlmICh0eXBlb2YgYSAhPT0gdHlwZW9mIGIpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSAmJiBBcnJheS5pc0FycmF5KGIpKSB7XHJcbiAgICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIGEuZXZlcnkoKGl0ZW0sIGluZGV4KSA9PiB0aGlzLmlzRXF1YWwoaXRlbSwgYltpbmRleF0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIGEgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGIgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgY29uc3Qga2V5c0EgPSBPYmplY3Qua2V5cyhhKTtcclxuICAgICAgY29uc3Qga2V5c0IgPSBPYmplY3Qua2V5cyhiKTtcclxuICAgICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIHJldHVybiBrZXlzQS5ldmVyeSgoa2V5KSA9PiB0aGlzLmlzRXF1YWwoYVtrZXldLCBiW2tleV0pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiog5Yib5bu66KGM55qE5Yid5aeL5YC85b+r54WnICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVSb3dTbmFwc2hvdChcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgZmllbGRzOiBGaWVsZENvbmZpZ1tdXHJcbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICBjb25zdCBzbmFwc2hvdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgIHNuYXBzaG90W2ZpZWxkLm5hbWVdID0gdGhpcy5jbG9uZVZhbHVlKHJvd1tmaWVsZC5uYW1lXSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzbmFwc2hvdDtcclxuICB9XHJcblxyXG4gIC8qKiDliJ3lp4vljJbmlbDnu4TmlbDmja7vvIzmt7vliqAgdWlkIOWSjCBpc0VkaXQg5a2X5q61ICovXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YShkYXRhOiBhbnlbXSk6IEFycmF5Rm9ybVJvd1tdIHtcclxuICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbSkgPT4gdGhpcy5lbnJpY2hSb3coaXRlbSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqIOS4uuWNleihjOaVsOaNrua3u+WKoCB1aWQg5ZKMIGlzRWRpdCDlrZfmrrUgKi9cclxuICBwcml2YXRlIGVucmljaFJvdyhyb3c6IGFueSk6IEFycmF5Rm9ybVJvdyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5yb3csXHJcbiAgICAgIHVpZDogcm93LnVpZCB8fCB1dWlkdjQoKSxcclxuICAgICAgaXNFZGl0OiByb3cuaXNFZGl0ICE9PSB1bmRlZmluZWQgPyByb3cuaXNFZGl0IDogZmFsc2UsXHJcbiAgICAgIGRpc2FibGVkOiByb3cuZGlzYWJsZWQgIT09IHVuZGVmaW5lZCA/IHJvdy5kaXNhYmxlZCA6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKiDmlrDlop7kuIDooYzmlbDmja4gKi9cclxuICBwcml2YXRlIGFkZFJvdyhcclxuICAgIGRhdGE6IEFycmF5Rm9ybVJvd1tdLFxyXG4gICAgZGVmYXVsdFZhbHVlcz86IFJlY29yZDxzdHJpbmcsIGFueT5cclxuICApOiBBcnJheUZvcm1Sb3cge1xyXG4gICAgY29uc3QgbmV3Um93OiBBcnJheUZvcm1Sb3cgPSB7XHJcbiAgICAgIC4uLmRlZmF1bHRWYWx1ZXMsXHJcbiAgICAgIHVpZDogdXVpZHY0KCksXHJcbiAgICAgIGlzRWRpdDogdHJ1ZSxcclxuICAgICAgaXNBZGQ6IHRydWUsXHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICBkYXRhLnB1c2gobmV3Um93KTtcclxuICAgIHJldHVybiBuZXdSb3c7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5Y2V5Liq5a2X5q61ICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkKFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogVmFsaWRhdGlvblJlc3VsdCB7XHJcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IGNvbmZpZy5maWVsZHMuZmluZCgoZikgPT4gZi5uYW1lID09PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgIGlmICghZmllbGRDb25maWcpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpZWxkQ29uZmlnLnZhbGlkYXRvcikge1xyXG4gICAgICByZXR1cm4gZmllbGRDb25maWcudmFsaWRhdG9yKHJvd1tmaWVsZE5hbWVdLCByb3csIGZpZWxkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5pW06KGM5pWw5o2uICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZVJvdyhcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgY29uZmlnOiBBcnJheUZvcm1Db25maWdcclxuICApOiBSZWNvcmQ8c3RyaW5nLCBWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICBjb25zdCByZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBWYWxpZGF0aW9uUmVzdWx0PiA9IHt9O1xyXG5cclxuICAgIGNvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWcpID0+IHtcclxuICAgICAgcmVzdWx0c1tmaWVsZENvbmZpZy5uYW1lXSA9IHRoaXMudmFsaWRhdGVGaWVsZChcclxuICAgICAgICByb3csXHJcbiAgICAgICAgZmllbGRDb25maWcubmFtZSxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgLyoqIOagoemqjOaVtOS4quaVsOe7hCAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVEYXRhKFxyXG4gICAgZGF0YTogQXJyYXlGb3JtUm93W10sXHJcbiAgICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZ1xyXG4gICk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PiB7XHJcbiAgICBjb25zdCByZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBWYWxpZGF0aW9uUmVzdWx0Pj4gPSB7fTtcclxuXHJcbiAgICBkYXRhLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgICByZXN1bHRzW3Jvdy51aWRdID0gdGhpcy52YWxpZGF0ZVJvdyhyb3csIGNvbmZpZyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIC8qKiDms6jlhozooajljZXliLDlrZjlgqggKi9cclxuICByZWdpc3RlckZvcm0oXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YTogQXJyYXlGb3JtUm93W10sXHJcbiAgICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZ1xyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5pdGlhbGl6ZWREYXRhID0gdGhpcy5pbml0aWFsaXplRGF0YShkYXRhKTtcclxuXHJcbiAgICAvLyDorrDlvZXliJ3lp4vlgLzlv6vnhadcclxuICAgIGNvbnN0IGluaXRpYWxTbmFwc2hvdDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7fTtcclxuICAgIGluaXRpYWxpemVkRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcclxuICAgICAgaW5pdGlhbFNuYXBzaG90W3Jvdy51aWQhXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3Qocm93LCBjb25maWcuZmllbGRzKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXSA9IHtcclxuICAgICAgZGF0YTogaW5pdGlhbGl6ZWREYXRhLFxyXG4gICAgICBjb25maWcsXHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHRzOiB7fSxcclxuICAgICAgaW5pdGlhbFNuYXBzaG90LFxyXG4gICAgICBlZGl0aW5nU25hcHNob3Q6IHt9LFxyXG4gICAgICBhbGxUb3VjaGVkOiBmYWxzZSxcclxuICAgICAgcm93VG91Y2hlZDoge30sXHJcbiAgICB9O1xyXG4gICAgLy8g5aaC5p6c6YWN572u5LqG6Ieq5Yqo5pu05paw77yM56uL5Y2z5pu05paw5LiA5qyhXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKiog5LuO5a2Y5YKo5Lit6I635Y+W6KGo5Y2VICovXHJcbiAgZ2V0Rm9ybShmb3JtTmFtZTogc3RyaW5nKTogQXJyYXlGb3JtU3RvcmVJdGVtIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgfVxyXG5cclxuICAvKiog5LuO5a2Y5YKo5Lit6I635Y+W6KGo5Y2V5pWw5o2uICovXHJcbiAgZ2V0Rm9ybURhdGEoXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nXHJcbiAgKTpcclxuICAgIHwgQXJyYXk8UGljazxBcnJheUZvcm1Sb3csIFwidWlkXCIgfCBcImlzRWRpdFwiIHwgXCJpc0FkZFwiIHwga2V5b2YgQXJyYXlGb3JtUm93Pj5cclxuICAgIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtLmRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBpdGVtLmlzRWRpdDtcclxuICAgICAgZGVsZXRlIGl0ZW0uaXNBZGQ7XHJcbiAgICAgIGRlbGV0ZSBpdGVtLnVpZDtcclxuICAgICAgZGVsZXRlIGl0ZW0uZGlzYWJsZWQ7XHJcbiAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiog5ZCR6KGo5Y2V5re75Yqg6KGMICovXHJcbiAgYWRkUm93VG9Gb3JtKFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcclxuICAgIGRlZmF1bHRWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbiAgKTogQXJyYXlGb3JtUm93IHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld1JvdyA9IHRoaXMuYWRkUm93KGZvcm0uZGF0YSwgZGVmYXVsdFZhbHVlcyk7XHJcbiAgICAvLyDkuLrmlrDooYzorrDlvZXliJ3lp4vlgLzlv6vnhadcclxuICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90W25ld1Jvdy51aWQhXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3QoXHJcbiAgICAgIG5ld1JvdyxcclxuICAgICAgZm9ybS5jb25maWcuZmllbGRzXHJcbiAgICApO1xyXG4gICAgLy8g6Ieq5Yqo5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgICByZXR1cm4gbmV3Um93O1xyXG4gIH1cclxuXHJcbiAgLyoqIOagoemqjOihqOWNle+8jOiHquWKqOagh+iusOaJgOacieWtl+auteS4uuW3suinpueisCAqL1xyXG4gIHZhbGlkYXRlRm9ybShmb3JtTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8g5qCH6K6w5omA5pyJ5a2X5q615Li65bey6Kem56KwXHJcbiAgICBmb3JtLmFsbFRvdWNoZWQgPSB0cnVlO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IHRoaXMudmFsaWRhdGVEYXRhKGZvcm0uZGF0YSwgZm9ybS5jb25maWcpO1xyXG4gICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0cyA9IHJlc3VsdHM7XHJcblxyXG4gICAgLy8g5qOA5p+l5piv5ZCm5pyJ5Lu75L2V6ZSZ6K+vXHJcbiAgICBmb3IgKGNvbnN0IHVpZCBvZiBPYmplY3Qua2V5cyhyZXN1bHRzKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkTmFtZSBvZiBPYmplY3Qua2V5cyhyZXN1bHRzW3VpZF0pKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdHNbdWlkXVtmaWVsZE5hbWVdKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDlvIDlkK/nvJbovpHmqKHlvI/vvIzkv53lrZjlv6vnhafnlKjkuo7lj5bmtojmgaLlpI0gKi9cclxuICBlbmFibGVFZGl0KGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKGZvcm0gJiYgcm93LnVpZCkge1xyXG4gICAgICAvLyDkv53lrZjnvJbovpHliY3nmoTlv6vnhadcclxuICAgICAgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF0gPSB0aGlzLmNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgICAgIHJvdyxcclxuICAgICAgICBmb3JtLmNvbmZpZy5maWVsZHNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJvdy5pc0VkaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIOWPlua2iOe8lui+ke+8jOaBouWkjeWIsOe8lui+keWJjeeahOaVsOaNriAqL1xyXG4gIGRpc2FibGVFZGl0KGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKGZvcm0gJiYgcm93LnVpZCAmJiBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXSkge1xyXG4gICAgICAvLyDmgaLlpI3nvJbovpHliY3nmoTmlbDmja5cclxuICAgICAgY29uc3Qgc25hcHNob3QgPSBmb3JtLmVkaXRpbmdTbmFwc2hvdFtyb3cudWlkXTtcclxuICAgICAgZm9ybS5jb25maWcuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgcm93W2ZpZWxkLm5hbWVdID0gdGhpcy5jbG9uZVZhbHVlKHNuYXBzaG90W2ZpZWxkLm5hbWVdKTtcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIOabtOaWsOWIneWni+W/q+eFp+S4uuaBouWkjeWQjueahOWAvO+8jOa2iOmZpCB0b3VjaGVkIOeKtuaAgVxyXG4gICAgICBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkXSA9IHRoaXMuY2xvbmVWYWx1ZShzbmFwc2hvdCk7XHJcbiAgICAgIC8vIOa4heeQhue8lui+keW/q+eFp+WSjCB0b3VjaGVkIOeKtuaAgVxyXG4gICAgICBkZWxldGUgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF07XHJcbiAgICAgIGRlbGV0ZSBmb3JtLnJvd1RvdWNoZWRbcm93LnVpZF07XHJcbiAgICAgIC8vIOa4heeQhuivpeihjOeahOagoemqjOe7k+aenFxyXG4gICAgICBpZiAoZm9ybS52YWxpZGF0aW9uUmVzdWx0cykge1xyXG4gICAgICAgIGRlbGV0ZSBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWRdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByb3cuaXNFZGl0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiog56Gu6K6k57yW6L6R77yM5L+d55WZ5L+u5pS55ZCO55qE5pWw5o2uICovXHJcbiAgY29uZmlybUVkaXQoZm9ybU5hbWU6IHN0cmluZywgcm93OiBBcnJheUZvcm1Sb3cpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoZm9ybSAmJiByb3cudWlkKSB7XHJcbiAgICAgIC8vIOa4heeQhue8lui+keW/q+eFp++8iOS/neeVmeW9k+WJjeaVsOaNru+8iVxyXG4gICAgICBpZiAoZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF0pIHtcclxuICAgICAgICBkZWxldGUgZm9ybS5lZGl0aW5nU25hcHNob3Rbcm93LnVpZF07XHJcbiAgICAgIH1cclxuICAgICAgLy8g5pu05paw5Yid5aeL5b+r54Wn5Li65b2T5YmN5YC877yI55So5LqO5ZCO57utIHRvdWNoZWQg5qOA5rWL77yJXHJcbiAgICAgIGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWRdID0gdGhpcy5jcmVhdGVSb3dTbmFwc2hvdChcclxuICAgICAgICByb3csXHJcbiAgICAgICAgZm9ybS5jb25maWcuZmllbGRzXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIOa4hemZpCB0b3VjaGVkIOeKtuaAge+8jOWfuuS6juaWsOeahCBpbml0aWFsU25hcHNob3Qg6YeN5paw5Yik5patXHJcbiAgICAgIGRlbGV0ZSBmb3JtLnJvd1RvdWNoZWRbcm93LnVpZF07XHJcbiAgICB9XHJcbiAgICByb3cuaXNFZGl0ID0gZmFsc2U7XHJcbiAgICByb3cuaXNBZGQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiDku47ooajljZXkuK3liKDpmaTmjIflrprooYwgKi9cclxuICBkZWxldGVSb3dGcm9tRm9ybShmb3JtTmFtZTogc3RyaW5nLCByb3c6IEFycmF5Rm9ybVJvdyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSB8fCAhcm93LnVpZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbmRleCA9IGZvcm0uZGF0YS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udWlkID09PSByb3cudWlkKTtcclxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZm9ybS5kYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAvLyDmuIXnkIbor6XooYznmoTmiYDmnInlv6vnhafjgIF0b3VjaGVkIOeKtuaAgeWSjOagoemqjOe7k+aenFxyXG4gICAgZGVsZXRlIGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWRdO1xyXG4gICAgZGVsZXRlIGZvcm0uZWRpdGluZ1NuYXBzaG90W3Jvdy51aWRdO1xyXG4gICAgZGVsZXRlIGZvcm0ucm93VG91Y2hlZFtyb3cudWlkXTtcclxuICAgIGlmIChmb3JtLnZhbGlkYXRpb25SZXN1bHRzKSB7XHJcbiAgICAgIGRlbGV0ZSBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWRdO1xyXG4gICAgfVxyXG4gICAgLy8g6Ieq5Yqo5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDmo4DmtYvlrZfmrrXmmK/lkKblt7Looqvop6bnorAgKi9cclxuICBwcml2YXRlIGlzRmllbGRUb3VjaGVkKFxyXG4gICAgZm9ybTogQXJyYXlGb3JtU3RvcmVJdGVtLFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgLy8g5pW05Liq6KGo5Y2V5beyIHRvdWNoZWTvvIjmlbTkuKrooajljZXmj5DkuqTml7bvvIlcclxuICAgIGlmIChmb3JtLmFsbFRvdWNoZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyDlvZPliY3ooYzlt7IgdG91Y2hlZO+8iOWNleihjOS/neWtmOaXtu+8iVxyXG4gICAgaWYgKGZvcm0ucm93VG91Y2hlZFtyb3cudWlkIV0pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyDmo4DmtYvlvZPliY3lgLzkuI7liJ3lp4vlgLzmmK/lkKbkuI3lkIxcclxuICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IGZvcm0uaW5pdGlhbFNuYXBzaG90W3Jvdy51aWQhXT8uW2ZpZWxkTmFtZV07XHJcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSByb3dbZmllbGROYW1lXTtcclxuICAgIHJldHVybiAhdGhpcy5pc0VxdWFsKGluaXRpYWxWYWx1ZSwgY3VycmVudFZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKiDmoKHpqozmjIflrprooYznmoTmjIflrprlrZfmrrXvvIzmnKrkv67mlLnml7bkuI3mmL7npLrmoKHpqoznirbmgIEgKi9cclxuICB2YWxpZGF0ZUZpZWxkSW5Sb3coXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xyXG4gICk6IFwic3VjY2Vzc1wiIHwgXCJlcnJvclwiIHwgXCJcIiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpZWxkQ29uZmlnID0gZm9ybS5jb25maWcuZmllbGRzLmZpbmQoKGYpID0+IGYubmFtZSA9PT0gZmllbGROYW1lKTtcclxuICAgIGlmICghZmllbGRDb25maWcpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5omn6KGM5qCh6aqMXHJcbiAgICBsZXQgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gXCJcIjtcclxuICAgIGlmIChmaWVsZENvbmZpZy52YWxpZGF0b3IpIHtcclxuICAgICAgcmVzdWx0ID0gZmllbGRDb25maWcudmFsaWRhdG9yKHJvd1tmaWVsZE5hbWVdLCByb3csIGZpZWxkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5pu05paw5qCh6aqM57uT5p6c5a2Y5YKoXHJcbiAgICBpZiAoIWZvcm0udmFsaWRhdGlvblJlc3VsdHMpIHtcclxuICAgICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0cyA9IHt9O1xyXG4gICAgfVxyXG4gICAgaWYgKCFmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWQhXSkge1xyXG4gICAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWQhXSA9IHt9O1xyXG4gICAgfVxyXG4gICAgZm9ybS52YWxpZGF0aW9uUmVzdWx0c1tyb3cudWlkIV1bZmllbGROYW1lXSA9IHJlc3VsdDtcclxuXHJcbiAgICAvLyDlpoLmnpzlrZfmrrXmnKrooqvop6bnorDvvIzkuI3mmL7npLrmoKHpqoznirbmgIFcclxuICAgIGlmICghdGhpcy5pc0ZpZWxkVG91Y2hlZChmb3JtLCByb3csIGZpZWxkTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdCA/IFwiZXJyb3JcIiA6IFwic3VjY2Vzc1wiO1xyXG4gIH1cclxuXHJcbiAgLyoqIOiOt+WPluaMh+WumuihjOaMh+WumuWtl+auteeahOagoemqjOmUmeivr+S/oeaBryAqL1xyXG4gIGdldEZpZWxkRXJyb3JNZXNzYWdlKFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcclxuICAgIHJvdzogQXJyYXlGb3JtUm93LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmdcclxuICApOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSB8fCAhcm93LnVpZCkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIC8vIOWmguaenOWtl+auteacquiiq+inpueisO+8jOS4jeaYvuekuumUmeivr+S/oeaBr1xyXG4gICAgaWYgKCF0aGlzLmlzRmllbGRUb3VjaGVkKGZvcm0sIHJvdywgZmllbGROYW1lKSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtLnZhbGlkYXRpb25SZXN1bHRzPy5bcm93LnVpZF0/LltmaWVsZE5hbWVdIHx8IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvKiog5qCh6aqM5oyH5a6a6KGM55qE5omA5pyJ5a2X5q61ICovXHJcbiAgdmFsaWRhdGVSb3dBbGxGaWVsZHMoZm9ybU5hbWU6IHN0cmluZywgcm93OiBBcnJheUZvcm1Sb3cpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0gfHwgIXJvdy51aWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5pu05paw5Yid5aeL5b+r54Wn5Li65b2T5YmN5YC8XHJcbiAgICBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkXSA9IHRoaXMuY3JlYXRlUm93U25hcHNob3QoXHJcbiAgICAgIHJvdyxcclxuICAgICAgZm9ybS5jb25maWcuZmllbGRzXHJcbiAgICApO1xyXG4gICAgLy8g5qCH6K6w5b2T5YmN6KGM5Li6IHRvdWNoZWTvvIjlj6rlvbHlk43lvZPliY3ooYzvvIzkuI3lvbHlk43lhbbku5booYzvvIlcclxuICAgIGZvcm0ucm93VG91Y2hlZFtyb3cudWlkXSA9IHRydWU7XHJcblxyXG4gICAgbGV0IGhhc0Vycm9yID0gZmFsc2U7XHJcblxyXG4gICAgZm9ybS5jb25maWcuZmllbGRzLmZvckVhY2goKGZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudmFsaWRhdGVGaWVsZEluUm93KGZvcm1OYW1lLCByb3csIGZpZWxkQ29uZmlnLm5hbWUpO1xyXG4gICAgICBpZiAocmVzdWx0ID09PSBcImVycm9yXCIpIHtcclxuICAgICAgICBoYXNFcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiAhaGFzRXJyb3I7XHJcbiAgfVxyXG5cclxuICAvKiog6Ieq5Yqo5pu05paw5aSW6YOo5pWw57uE5byV55SoICovXHJcbiAgcHJpdmF0ZSBhdXRvVXBkYXRlQXJyYXlSZWZlcmVuY2UoZm9ybU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSB8fCAhZm9ybS5jb25maWcudGFyZ2V0T2JqZWN0IHx8ICFmb3JtLmNvbmZpZy5hcnJheVByb3BlcnR5TmFtZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdBcnJheSA9IGZvcm0uZGF0YSA/IFsuLi5mb3JtLmRhdGFdIDogW107XHJcbiAgICAvLyDmm7TmlrDnm67moIflr7nosaHnmoTmlbDnu4TlsZ7mgKfkuLrmlrDmlbDnu4TlvJXnlKhcclxuICAgIChmb3JtLmNvbmZpZy50YXJnZXRPYmplY3QgYXMgYW55KVtmb3JtLmNvbmZpZy5hcnJheVByb3BlcnR5TmFtZV0gPSBuZXdBcnJheTtcclxuICB9XHJcblxyXG4gIC8qKiDmmK/lkKbmnInmraPlnKjnvJbovpHnmoTooYwgKi9cclxuICBoYXNFZGl0aW5nUm93KGZvcm1OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm0uZGF0YS5zb21lKChpdGVtKSA9PiBpdGVtLmlzRWRpdCk7XHJcbiAgfVxyXG5cclxuICAvLyDplIDmr4Hlr7nlupTnmoTooajljZVcclxuICBkZXN0b3J5KG5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgbmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb3JtU3RvcmVbbmFtZV0pIHtcclxuICAgICAgICAvLyDmuIXnkIbooajljZXmlbDmja5cclxuICAgICAgICBkZWxldGUgdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g6YeN572u6KGo5Y2V5pWw57uEXHJcbiAgcmVzZXRGb3JtQXJyYXkobmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbbmFtZV07XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDEuIOa4heepuuaVsOaNruaVsOe7hFxyXG4gICAgZm9ybS5kYXRhID0gW107XHJcblxyXG4gICAgLy8gMi4g5riF55CG5omA5pyJ5b+r54WnXHJcbiAgICBmb3JtLmluaXRpYWxTbmFwc2hvdCA9IHt9O1xyXG4gICAgZm9ybS5lZGl0aW5nU25hcHNob3QgPSB7fTtcclxuXHJcbiAgICAvLyAzLiDmuIXnkIbmoKHpqoznu5PmnpxcclxuICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHMgPSB7fTtcclxuXHJcbiAgICAvLyA0LiDph43nva4gdG91Y2hlZCDnirbmgIFcclxuICAgIGZvcm0uYWxsVG91Y2hlZCA9IGZhbHNlO1xyXG4gICAgZm9ybS5yb3dUb3VjaGVkID0ge307XHJcblxyXG4gICAgLy8gNS4g5aaC5p6c6YWN572u5LqG6Ieq5Yqo5pu05paw77yM5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShuYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKiDmibnph4/orr7nva7ooajljZXmlbDmja7vvIjnlKjkuo7lm57loavmlbDmja7vvIkgKi9cclxuICBzZXRGb3JtRGF0YShmb3JtTmFtZTogc3RyaW5nLCBkYXRhOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMS4g5Yid5aeL5YyW5pWw5o2u77yI5re75YqgIHVpZOOAgWlzRWRpdCDnrYnlrZfmrrXvvIlcclxuICAgIGNvbnN0IGluaXRpYWxpemVkRGF0YSA9IHRoaXMuaW5pdGlhbGl6ZURhdGEoZGF0YSk7XHJcblxyXG4gICAgLy8gMi4g5pu05paw6KGo5Y2V5pWw5o2uXHJcbiAgICBmb3JtLmRhdGEgPSBpbml0aWFsaXplZERhdGE7XHJcblxyXG4gICAgLy8gMy4g6YeN5paw5Yib5bu65Yid5aeL5YC85b+r54WnXHJcbiAgICBmb3JtLmluaXRpYWxTbmFwc2hvdCA9IHt9O1xyXG4gICAgaW5pdGlhbGl6ZWREYXRhLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgICBmb3JtLmluaXRpYWxTbmFwc2hvdFtyb3cudWlkIV0gPSB0aGlzLmNyZWF0ZVJvd1NuYXBzaG90KFxyXG4gICAgICAgIHJvdyxcclxuICAgICAgICBmb3JtLmNvbmZpZy5maWVsZHNcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDQuIOa4heeQhue8lui+keW/q+eFp+WSjOagoemqjOe7k+aenFxyXG4gICAgZm9ybS5lZGl0aW5nU25hcHNob3QgPSB7fTtcclxuICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHMgPSB7fTtcclxuXHJcbiAgICAvLyA1LiDph43nva4gdG91Y2hlZCDnirbmgIFcclxuICAgIGZvcm0uYWxsVG91Y2hlZCA9IGZhbHNlO1xyXG4gICAgZm9ybS5yb3dUb3VjaGVkID0ge307XHJcblxyXG4gICAgLy8gNi4g5aaC5p6c6YWN572u5LqG6Ieq5Yqo5pu05paw77yM5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -144,7 +144,7 @@ PlateInputComponent.decorators = [
144
144
  multi: true,
145
145
  },
146
146
  ],
147
- styles: ["::ng-deep .plate-input-popover{box-sizing:border-box;padding:5px 0}::ng-deep .plate-input-popover .ant-popover-inner-content{width:387px;height:264px;padding:0}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item{height:42px;box-sizing:border-box;padding:6px 12px;cursor:pointer}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item .plate-input-popover-item-label{width:100%;height:100%;display:flex;justify-content:center;align-items:center;border:1px solid #ccc}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item-default:hover{background-color:#eaeaea}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item-active{background-color:#096dd9;color:#fff}::ng-deep .plate-input-prefix:hover:after{content:\"\";position:absolute;top:0;right:0;width:1px;height:100%;background-color:transparent;z-index:2}::ng-deep .plate-antd-input-container{width:100%;display:flex;flex-wrap:nowrap}::ng-deep .plate-antd-input-container .plate-input-prefix{width:60px;text-align:center;min-height:32px;border:1px solid #d9d9d9;border-radius:4px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;background-color:#fff}::ng-deep .plate-antd-input-container .plate-input-prefix .plate-input-icon-down{position:absolute;top:50%;right:5px;transform:translateY(-50%);font-size:10px}::ng-deep .plate-antd-input-container .plate-input-prefix:hover:not(.plate-input-prefix-disabled){border-color:#096dd9}::ng-deep .plate-antd-input-container .plate-input-prefix-disabled{background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed;color:#7c7c7c}::ng-deep .plate-antd-input-container .plate-input-suffix{width:calc(100% - 60px)}"]
147
+ styles: ["::ng-deep .plate-input-popover{box-sizing:border-box;padding:5px 0}::ng-deep .plate-input-popover .ant-popover-inner-content{width:387px;height:264px;padding:0}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item{height:42px;box-sizing:border-box;padding:6px 12px;cursor:pointer}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item .plate-input-popover-item-label{width:100%;height:100%;display:flex;justify-content:center;align-items:center;border:1px solid #ccc}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item-default:hover{background-color:#eaeaea}::ng-deep .plate-input-popover .ant-popover-inner-content .plate-input-popover-item-active{background-color:#096dd9;color:#fff}::ng-deep .plate-input-prefix:hover:after{content:\"\";position:absolute;top:0;right:0;width:1px;height:100%;background-color:transparent;z-index:2}::ng-deep .plate-antd-input-container{width:100%;display:flex;flex-wrap:nowrap}::ng-deep .plate-antd-input-container .plate-input-prefix{width:60px;text-align:center;min-height:32px;border:1px solid #d9d9d9;border-radius:4px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;background-color:#fff}::ng-deep .plate-antd-input-container .plate-input-prefix .plate-input-icon-down{position:absolute;top:50%;right:5px;transform:translateY(-50%);font-size:10px}::ng-deep .plate-antd-input-container .plate-input-prefix:hover:not(.plate-input-prefix-disabled){border-color:#096dd9}::ng-deep .plate-antd-input-container .plate-input-prefix-disabled{background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed;color:#7c7c7c}::ng-deep .plate-antd-input-container .plate-input-suffix{width:calc(100% - 60px)}\n"]
148
148
  },] }
149
149
  ];
150
150
  PlateInputComponent.ctorParameters = () => [