@ohioepa/oepa-ui-lib 1.4.16 → 2.0.1

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.
Files changed (33) hide show
  1. package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +3 -3
  2. package/esm2022/lib/action-btn/action-btn.component.mjs +3 -3
  3. package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +3 -3
  4. package/esm2022/lib/comment-modal/comment-modal.component.mjs +3 -3
  5. package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +3 -3
  6. package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +3 -3
  7. package/esm2022/lib/datepicker/datepicker.component.mjs +3 -3
  8. package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +3 -3
  9. package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +3 -3
  10. package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +3 -3
  11. package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +3 -3
  12. package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +3 -3
  13. package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +3 -3
  14. package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +3 -3
  15. package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +3 -3
  16. package/esm2022/lib/file-upload/file-upload.component.mjs +3 -3
  17. package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +3 -3
  18. package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +3 -3
  19. package/esm2022/lib/notes-modal/notes-modal.component.mjs +3 -3
  20. package/esm2022/lib/pin-modal/pin-modal.component.mjs +3 -3
  21. package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +3 -3
  22. package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +3 -3
  23. package/esm2022/lib/table/p-table/p-table.component.mjs +3 -3
  24. package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +3 -3
  25. package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +3 -3
  26. package/esm2022/lib/table/table.component.mjs +3 -3
  27. package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +3 -3
  28. package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +3 -3
  29. package/fesm2022/ohioepa-oepa-ui-lib.mjs +56 -56
  30. package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
  31. package/ohioepa-oepa-ui-lib-2.0.1.tgz +0 -0
  32. package/package.json +1 -1
  33. package/ohioepa-oepa-ui-lib-1.4.16.tgz +0 -0
@@ -182,10 +182,10 @@ export class ShoppingCartViewComponent {
182
182
  }
183
183
  }
184
184
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShoppingCartViewComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.BsModalService }, { token: i3.ShoppingCartService }], target: i0.ɵɵFactoryTarget.Component });
185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ShoppingCartViewComponent, selector: "oepa-shopping-cart-view", ngImport: i0, template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ShoppingCartViewComponent, selector: "oepa-shopping-cart-view", ngImport: i0, template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
186
186
  }
187
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShoppingCartViewComponent, decorators: [{
188
188
  type: Component,
189
- args: [{ selector: 'oepa-shopping-cart-view', template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>" }]
189
+ args: [{ selector: 'oepa-shopping-cart-view', template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>" }]
190
190
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.BsModalService }, { type: i3.ShoppingCartService }] });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7Ozs7QUFZbkcsTUFBTSxPQUFPLHlCQUF5QjtJQStCaEI7SUFDVjtJQUNBO0lBQ0E7SUFqQ1YsV0FBVyxDQUFTO0lBQ3BCLEtBQUssQ0FBUztJQUNkLFdBQVcsQ0FBUztJQUNwQixTQUFTLENBQVM7SUFDbEIsWUFBWSxDQUEyQjtJQUN2QyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNmLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBQzNDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixXQUFXLEdBQVcsaUJBQWlCLENBQUM7SUFDeEMsZUFBZSxDQUFTO0lBQ3hCLHVCQUF1QixDQUFTO0lBQ2hDLGFBQWEsQ0FBUztJQUN0QixvQkFBb0IsR0FBVyxFQUFFLENBQUM7SUFFbEMsU0FBUyxHQUFvQjtRQUMzQixPQUFPLEVBQUU7WUFDUCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFB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SSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLENBQUM7Z0JBQ2hELENBQUM7YUFBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQzt3R0FyTFUseUJBQXlCOzRGQUF6Qix5QkFBeUIsK0RDakJ0Qyw0NUNBOEJNOzs0RkRiTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2hvcHBpbmdDYXJ0U2VydmljZSB9IGZyb20gJy4uL3Nob3BwaW5nLWNhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTaG9wcGluZ0NhcnRJdGVtLCBTaG9wcGluZ0NhcnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcbmltcG9ydCB7IEJzTW9kYWxSZWYsIEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzIH0gZnJvbSAnLi9zaG9wcGluZy1jYXJ0LXZpZXctcGFyYW1ldGVycyc7XG5pbXBvcnQgeyBPZXBhVGFibGVIZWFkZXIgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWhlYWRlcic7XG5pbXBvcnQgeyBPZXBhVGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL3RhYmxlL29lcGEtdGFibGUtY2VsbC1jbGljay1ldmVudCc7XG5pbXBvcnQgeyBPZXBhVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWNvbmZpZyc7XG5pbXBvcnQgeyBPZXBhVGFibGVSb3cgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLXJvdyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtc2hvcHBpbmctY2FydC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJldHVybkxhYmVsOiBzdHJpbmc7XG4gIHJldHVyblVybDogc3RyaW5nO1xuICBzaG9wcGluZ0NhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZDtcbiAgZW1wdHkgPSB0cnVlO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgaW1hZ2VSb290ID0gJy9Bbmd1bGFyV2ViQXBwL2Fzc2V0cy9pbWFnZXMnO1xuICBjaGVja091dEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgdG90YWxDb2x1bW46IHN0cmluZyA9ICdpdGVtRGVzY3JpcHRpb24nO1xuICBpdGVtTnVtYmVyTGFiZWw6IHN0cmluZztcbiAgaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWw6IHN0cmluZztcbiAgaXRlbU5hbWVMYWJlbDogc3RyaW5nO1xuICBpdGVtRGVzY3JpcHRpb25MYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgdGJsSGVhZGVyOiBPZXBhVGFibGVIZWFkZXIgPSB7XG4gICAgY29sdW1uczogW1xuICAgICAgeyB0aXRsZTogJ1JlbW92ZSBJdGVtJywgaWQ6ICdkZWxldGVJdGVtJywgc29ydDogJ25vbmUnLCBoeXBlcmxpbms6IHRydWUsIGNsYXNzTmFtZTogJ29lcGEtdGFibGUtaGVhZGVyLWNlbnRlcicgfSxcbiAgICAgIHsgdGl0bGU6ICdGZWUnLCBpZDogJ2ZlZScsIHNvcnQ6ICdub25lJyB9LFxuICAgIF1cbiAgfTtcblxuICB0YmxDb25maWc6IE9lcGFUYWJsZUNvbmZpZyA9IHtcbiAgICBjbGFzc05hbWVzOiBbJ3RhYmxlLWJvcmRlcmVkJ10sXG4gICAgaGlkZUZvb3RlcjogdHJ1ZVxuICB9O1xuXG4gIHRibERhdGE6IEFycmF5PE9lcGFUYWJsZVJvdz4gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSwgXG4gICAgcHJpdmF0ZSBzaG9wcGluZ0NhcnRTZXJ2aWNlOiBTaG9wcGluZ0NhcnRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBwYXJhbXM6IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzID0gPFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzPnJvdXRlLnNuYXBzaG90LmRhdGFbMF07XG4gICAgICB0aGlzLnNlcnZpY2VOYW1lID0gcGFyYW1zLnNlcnZpY2VOYW1lO1xuICAgICAgdGhpcy50aXRsZSA9IHBhcmFtcy50aXRsZTtcbiAgICAgIHRoaXMucmV0dXJuTGFiZWwgPSBwYXJhbXMucmV0dXJuTGFiZWw7XG4gICAgICB0aGlzLnJldHVyblVybCA9IHBhcmFtcy5yZXR1cm5Vcmw7XG4gICAgICB0aGlzLml0ZW1OdW1iZXJMYWJlbCA9IHBhcmFtcy5pdGVtTnVtYmVyTGFiZWw7XG4gICAgICB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsID0gcGFyYW1zLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsO1xuICAgICAgdGhpcy5pdGVtTmFtZUxhYmVsID0gcGFyYW1zLml0ZW1OYW1lTGFiZWw7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUhlYWRlcnMoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaGVhZGVycyBiYXNlZCBvbiB0aGUgbGFiZWxzIGRlZmluZWQgZm9yIHRoaXMgc2hvcHBpbmcgY2FydFxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJzKCkge1xuICAgIC8vIHByb2Nlc3MgbGFiZWxzIGluIHJldmVyc2Ugb3JkZXIgc2luY2UgdW5zaGlmdCBwbGFjZXMgaXRlbSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheVxuICAgIGlmICh0aGlzLml0ZW1EZXNjcmlwdGlvbkxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtRGVzY3JpcHRpb25MYWJlbCwgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1EZXNjcmlwdGlvbic7XG4gICAgfVxuICAgIGlmICh0aGlzLml0ZW1OYW1lTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1OYW1lTGFiZWwsIGlkOiAnaXRlbU5hbWUnLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1OYW1lJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsLCBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbUNsYXNzaWZpY2F0aW9uJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbU51bWJlckxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtTnVtYmVyTGFiZWwsIGlkOiAnaXRlbU51bWJlcicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbU51bWJlcic7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmV0cmlldmVTaG9wcGluZ0NhcnQodGhpcy5zZXJ2aWNlTmFtZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHNob3BwaW5nQ2FydCA9PiB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHNob3BwaW5nQ2FydDtcbiAgICAgIHRoaXMubG9hZFRhYmxlKCk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZXRyaWV2aW5nIHNob3BwaW5nIGNhcnQgZGF0YTogJyArIGVycjtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH19KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRhYmxlKCkge1xuICAgIHRoaXMudGJsRGF0YSA9IFtdO1xuICAgIHRoaXMuZW1wdHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCAmJiB0aGlzLnNob3BwaW5nQ2FydC5jYXJ0SXRlbXMpIHtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0LmNhcnRJdGVtcy5mb3JFYWNoKGNhcnRJdGVtID0+IHtcbiAgICAgICAgdGhpcy5lbXB0eSA9IGZhbHNlO1xuICAgICAgICBsZXQgcm93ID0gdGhpcy5jb252ZXJ0Q2FydEl0ZW1Ub1RhYmxlUm93KGNhcnRJdGVtKTtcbiAgICAgICAgdGhpcy50YmxEYXRhLnB1c2gocm93KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YmxEYXRhLnB1c2goeyBjZWxscyA6IFsgXG4gICAgICAgIHtpZDogJ2l0ZW1OdW1iZXInLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTnVtYmVyJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbUNsYXNzaWZpY2F0aW9uJywgdmFsdWU6ICh0aGlzLnRvdGFsQ29sdW1uID09PSAnaXRlbUNsYXNzaWZpY2F0aW9uJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbU5hbWUnLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTmFtZScgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDogJ2l0ZW1EZXNjcmlwdGlvbicsIHZhbHVlOiAodGhpcy50b3RhbENvbHVtbiA9PT0gJ2l0ZW1EZXNjcmlwdGlvbicgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDonZGVsZXRlSXRlbScsIHZhbHVlOicnLGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5JyB9LFxuICAgICAgICB7aWQ6ICdmZWUnLCAgdmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uZm9ybWF0dGVkU3RyaW5nLCBzb3J0VmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uY2VudHMsIGljb25DbGFzc05hbWU6J29lcGEtdW5kZWxpbmUtY2VsbCcsIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCd9XG4gICAgICBdfSk7XG4gICAgICB0aGlzLnRibERhdGEgPSB0aGlzLnRibERhdGEuc2xpY2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRDYXJ0SXRlbVRvVGFibGVSb3coY2FydEl0ZW06IFNob3BwaW5nQ2FydEl0ZW0pOiBPZXBhVGFibGVSb3cge1xuICAgIGxldCByb3c6IE9lcGFUYWJsZVJvdyA9IHtcbiAgICAgIGNlbGxzOiBbXG4gICAgICAgIHsgaWQ6ICdpdGVtTnVtYmVyJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OdW1iZXIgfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHZhbHVlOiBjYXJ0SXRlbS5pdGVtQ2xhc3NpZmljYXRpb24gfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1OYW1lJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OYW1lIH0sXG4gICAgICAgIHsgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCB2YWx1ZTogY2FydEl0ZW0uZGVzY3JpcHRpb24gfSxcbiAgICAgICAgeyBpZDogJ2RlbGV0ZUl0ZW0nLCB2YWx1ZTogJycsIGljb25DbGFzc05hbWU6ICdiaSBiaS1kYXNoLWNpcmNsZS1maWxsJywgY2xhc3NOYW1lOiAndGV4dC1jZW50ZXInIH0sXG4gICAgICAgIHsgaWQ6ICdmZWUnLCB2YWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5mb3JtYXR0ZWRTdHJpbmcsIHNvcnRWYWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5jZW50cyB9LFxuICAgICAgXSxcbiAgICAgIGRhdGFTb3VyY2U6IGNhcnRJdGVtXG4gICAgfVxuICAgIHJldHVybiByb3c7XG4gIH1cblxuICBvbkNlbGxDbGljayhldmVudDogT2VwYVRhYmxlQ2VsbENsaWNrRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY29sdW1uSWQgPT09ICdkZWxldGVJdGVtJykge1xuICAgICAgdGhpcy5kZWxldGVGcm9tQ2FydChldmVudC5yb3cuZGF0YVNvdXJjZS50eXBlSUQsIGV2ZW50LnJvdy5kYXRhU291cmNlLmRlc2NyaXB0aW9uLCB0aGlzLnNob3BwaW5nQ2FydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVGcm9tQ2FydChpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBjYXJ0OiBTaG9wcGluZ0NhcnQgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtb2RhbDogQnNNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQsIHsgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSB9KTtcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmhlYWRlclRleHQgPSAnUmVtb3ZlIGl0ZW0gZnJvbSBjYXJ0Pyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlICcgKyBkZXNjcmlwdGlvbiArICAnIGZyb20gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbUZyb21DYXJ0KGlkLCBjYXJ0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVsZXRlSXRlbUZyb21DYXJ0KGlkOiBzdHJpbmcsIGNhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjYXJ0KSB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmVtb3ZlU2hvcHBpbmdDYXJ0SXRlbShpZCwgY2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdXBkYXRlZENhcnQgPT4ge1xuICAgICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHVwZGF0ZWRDYXJ0O1xuICAgICAgICB0aGlzLmxvYWRUYWJsZSgpO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZW1vdmluZyBpdGVtIGZyb20gY2FydDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmV0dXJuVXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLnBhcmVudCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoZWNrb3V0KCkge1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuaGVhZGVyVGV4dCA9ICdDaGVja291dCc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdEbyB5b3Ugd2FudCB0byBzdWJtaXQgYWxsIG9mIHRoZSBhcHBsaWNhdGlvbnMgaW4gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tvdXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrb3V0KCkge1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0U2VydmljZS5jaGVja091dCh0aGlzLnNob3BwaW5nQ2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdHJhbnNhY3Rpb25JRCA9PiB7XG4gICAgICAgIC8vIG5hdmlnYXRlIHRvIENCT1NTIHBheW1lbnQgc2NyZWVuXG4gICAgICAgIGNvbnN0IGViaXpSb290VVJMID0gdGhpcy5zaG9wcGluZ0NhcnRTZXJ2aWNlLmdldEViaXpSb290VVJMKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWJpelJvb3RVUkwgKyAnL3BvcnRhbC9wYXltZW50U3VibWlzc2lvbkFjdGlvbi5wbz90cmFuc2FjdGlvbklEPScgKyB0cmFuc2FjdGlvbklEO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0NoZWNrb3V0IGZhaWxlZDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1zbS0xMlwiPlxuICAgICAgICAgIDxoMj48Yj57e3RpdGxlfX08L2I+PC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImxvYWRpbmcgfHwgZW1wdHlcIiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiBhbGVydCBhbGVydC1pbmZvIFwiPlxuICAgICAgICA8aDM+PGVtPnt7IGxvYWRpbmcgPyAnTG9hZGluZy4uLicgOiAnQ2FydCBpcyBlbXB0eScgfX08L2VtPjwvaDM+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJvZXBhLWljb25cIiBzcmM9XCJ7e2ltYWdlUm9vdH19L2JsdWUtbG9hZC5naWZcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFlbXB0eVwiIGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICA8b2VwYS10YWJsZSBbY29uZmlnXT1cInRibENvbmZpZ1wiIFtkYXRhXT1cInRibERhdGFcIiBbaGVhZGVyXT1cInRibEhlYWRlclwiIHRhYmxlSWQ9XCJTaG9wcGluZ0NhcnRUYWJsZVwiIChjZWxsQ2xpY2tlZCk9XCJvbkNlbGxDbGljaygkZXZlbnQpXCI+PC9vZXBhLXRhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPnt7ZXJyb3JNZXNzYWdlfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWNoZWNrT3V0SW5Qcm9ncmVzc1wiIGNsYXNzPVwiY29sLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiIGlkPVwicmV0dXJuVG9QYWdlQnV0dG9uXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAge3tyZXR1cm5MYWJlbH19PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhZW1wdHlcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0yXCIgaWQ9XCJjaGVja291dEJ0blwiIChjbGljayk9XCJvbkNoZWNrb3V0KClcIj5cbiAgICAgICAgICBDaGVja291dDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tPdXRJblByb2dyZXNzXCIgY2xhc3M9XCJjb2wtMTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+XG4gICAgICAgICAgQ2hlY2tpbmcgb3V0Li4uXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7Ozs7QUFZbkcsTUFBTSxPQUFPLHlCQUF5QjtJQStCaEI7SUFDVjtJQUNBO0lBQ0E7SUFqQ1YsV0FBVyxDQUFTO0lBQ3BCLEtBQUssQ0FBUztJQUNkLFdBQVcsQ0FBUztJQUNwQixTQUFTLENBQVM7SUFDbEIsWUFBWSxDQUEyQjtJQUN2QyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNmLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBQzNDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixXQUFXLEdBQVcsaUJBQWlCLENBQUM7SUFDeEMsZUFBZSxDQUFTO0lBQ3hCLHVCQUF1QixDQUFTO0lBQ2hDLGFBQWEsQ0FBUztJQUN0QixvQkFBb0IsR0FBVyxFQUFFLENBQUM7SUFFbEMsU0FBUyxHQUFvQjtRQUMzQixPQUFPLEVBQUU7WUFDUCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFB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SSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLENBQUM7Z0JBQ2hELENBQUM7YUFBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQzt3R0FyTFUseUJBQXlCOzRGQUF6Qix5QkFBeUIsK0RDakJ0QyxzOUNBOEJNOzs0RkRiTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2hvcHBpbmdDYXJ0U2VydmljZSB9IGZyb20gJy4uL3Nob3BwaW5nLWNhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTaG9wcGluZ0NhcnRJdGVtLCBTaG9wcGluZ0NhcnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcbmltcG9ydCB7IEJzTW9kYWxSZWYsIEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzIH0gZnJvbSAnLi9zaG9wcGluZy1jYXJ0LXZpZXctcGFyYW1ldGVycyc7XG5pbXBvcnQgeyBPZXBhVGFibGVIZWFkZXIgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWhlYWRlcic7XG5pbXBvcnQgeyBPZXBhVGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL3RhYmxlL29lcGEtdGFibGUtY2VsbC1jbGljay1ldmVudCc7XG5pbXBvcnQgeyBPZXBhVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWNvbmZpZyc7XG5pbXBvcnQgeyBPZXBhVGFibGVSb3cgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLXJvdyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtc2hvcHBpbmctY2FydC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJldHVybkxhYmVsOiBzdHJpbmc7XG4gIHJldHVyblVybDogc3RyaW5nO1xuICBzaG9wcGluZ0NhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZDtcbiAgZW1wdHkgPSB0cnVlO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgaW1hZ2VSb290ID0gJy9Bbmd1bGFyV2ViQXBwL2Fzc2V0cy9pbWFnZXMnO1xuICBjaGVja091dEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgdG90YWxDb2x1bW46IHN0cmluZyA9ICdpdGVtRGVzY3JpcHRpb24nO1xuICBpdGVtTnVtYmVyTGFiZWw6IHN0cmluZztcbiAgaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWw6IHN0cmluZztcbiAgaXRlbU5hbWVMYWJlbDogc3RyaW5nO1xuICBpdGVtRGVzY3JpcHRpb25MYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgdGJsSGVhZGVyOiBPZXBhVGFibGVIZWFkZXIgPSB7XG4gICAgY29sdW1uczogW1xuICAgICAgeyB0aXRsZTogJ1JlbW92ZSBJdGVtJywgaWQ6ICdkZWxldGVJdGVtJywgc29ydDogJ25vbmUnLCBoeXBlcmxpbms6IHRydWUsIGNsYXNzTmFtZTogJ29lcGEtdGFibGUtaGVhZGVyLWNlbnRlcicgfSxcbiAgICAgIHsgdGl0bGU6ICdGZWUnLCBpZDogJ2ZlZScsIHNvcnQ6ICdub25lJyB9LFxuICAgIF1cbiAgfTtcblxuICB0YmxDb25maWc6IE9lcGFUYWJsZUNvbmZpZyA9IHtcbiAgICBjbGFzc05hbWVzOiBbJ3RhYmxlLWJvcmRlcmVkJ10sXG4gICAgaGlkZUZvb3RlcjogdHJ1ZVxuICB9O1xuXG4gIHRibERhdGE6IEFycmF5PE9lcGFUYWJsZVJvdz4gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSwgXG4gICAgcHJpdmF0ZSBzaG9wcGluZ0NhcnRTZXJ2aWNlOiBTaG9wcGluZ0NhcnRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBwYXJhbXM6IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzID0gPFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzPnJvdXRlLnNuYXBzaG90LmRhdGFbMF07XG4gICAgICB0aGlzLnNlcnZpY2VOYW1lID0gcGFyYW1zLnNlcnZpY2VOYW1lO1xuICAgICAgdGhpcy50aXRsZSA9IHBhcmFtcy50aXRsZTtcbiAgICAgIHRoaXMucmV0dXJuTGFiZWwgPSBwYXJhbXMucmV0dXJuTGFiZWw7XG4gICAgICB0aGlzLnJldHVyblVybCA9IHBhcmFtcy5yZXR1cm5Vcmw7XG4gICAgICB0aGlzLml0ZW1OdW1iZXJMYWJlbCA9IHBhcmFtcy5pdGVtTnVtYmVyTGFiZWw7XG4gICAgICB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsID0gcGFyYW1zLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsO1xuICAgICAgdGhpcy5pdGVtTmFtZUxhYmVsID0gcGFyYW1zLml0ZW1OYW1lTGFiZWw7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUhlYWRlcnMoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaGVhZGVycyBiYXNlZCBvbiB0aGUgbGFiZWxzIGRlZmluZWQgZm9yIHRoaXMgc2hvcHBpbmcgY2FydFxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJzKCkge1xuICAgIC8vIHByb2Nlc3MgbGFiZWxzIGluIHJldmVyc2Ugb3JkZXIgc2luY2UgdW5zaGlmdCBwbGFjZXMgaXRlbSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheVxuICAgIGlmICh0aGlzLml0ZW1EZXNjcmlwdGlvbkxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtRGVzY3JpcHRpb25MYWJlbCwgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1EZXNjcmlwdGlvbic7XG4gICAgfVxuICAgIGlmICh0aGlzLml0ZW1OYW1lTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1OYW1lTGFiZWwsIGlkOiAnaXRlbU5hbWUnLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1OYW1lJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsLCBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbUNsYXNzaWZpY2F0aW9uJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbU51bWJlckxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtTnVtYmVyTGFiZWwsIGlkOiAnaXRlbU51bWJlcicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbU51bWJlcic7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmV0cmlldmVTaG9wcGluZ0NhcnQodGhpcy5zZXJ2aWNlTmFtZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHNob3BwaW5nQ2FydCA9PiB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHNob3BwaW5nQ2FydDtcbiAgICAgIHRoaXMubG9hZFRhYmxlKCk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZXRyaWV2aW5nIHNob3BwaW5nIGNhcnQgZGF0YTogJyArIGVycjtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH19KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRhYmxlKCkge1xuICAgIHRoaXMudGJsRGF0YSA9IFtdO1xuICAgIHRoaXMuZW1wdHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCAmJiB0aGlzLnNob3BwaW5nQ2FydC5jYXJ0SXRlbXMpIHtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0LmNhcnRJdGVtcy5mb3JFYWNoKGNhcnRJdGVtID0+IHtcbiAgICAgICAgdGhpcy5lbXB0eSA9IGZhbHNlO1xuICAgICAgICBsZXQgcm93ID0gdGhpcy5jb252ZXJ0Q2FydEl0ZW1Ub1RhYmxlUm93KGNhcnRJdGVtKTtcbiAgICAgICAgdGhpcy50YmxEYXRhLnB1c2gocm93KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YmxEYXRhLnB1c2goeyBjZWxscyA6IFsgXG4gICAgICAgIHtpZDogJ2l0ZW1OdW1iZXInLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTnVtYmVyJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbUNsYXNzaWZpY2F0aW9uJywgdmFsdWU6ICh0aGlzLnRvdGFsQ29sdW1uID09PSAnaXRlbUNsYXNzaWZpY2F0aW9uJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbU5hbWUnLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTmFtZScgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDogJ2l0ZW1EZXNjcmlwdGlvbicsIHZhbHVlOiAodGhpcy50b3RhbENvbHVtbiA9PT0gJ2l0ZW1EZXNjcmlwdGlvbicgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDonZGVsZXRlSXRlbScsIHZhbHVlOicnLGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5JyB9LFxuICAgICAgICB7aWQ6ICdmZWUnLCAgdmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uZm9ybWF0dGVkU3RyaW5nLCBzb3J0VmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uY2VudHMsIGljb25DbGFzc05hbWU6J29lcGEtdW5kZWxpbmUtY2VsbCcsIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCd9XG4gICAgICBdfSk7XG4gICAgICB0aGlzLnRibERhdGEgPSB0aGlzLnRibERhdGEuc2xpY2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRDYXJ0SXRlbVRvVGFibGVSb3coY2FydEl0ZW06IFNob3BwaW5nQ2FydEl0ZW0pOiBPZXBhVGFibGVSb3cge1xuICAgIGxldCByb3c6IE9lcGFUYWJsZVJvdyA9IHtcbiAgICAgIGNlbGxzOiBbXG4gICAgICAgIHsgaWQ6ICdpdGVtTnVtYmVyJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OdW1iZXIgfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHZhbHVlOiBjYXJ0SXRlbS5pdGVtQ2xhc3NpZmljYXRpb24gfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1OYW1lJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OYW1lIH0sXG4gICAgICAgIHsgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCB2YWx1ZTogY2FydEl0ZW0uZGVzY3JpcHRpb24gfSxcbiAgICAgICAgeyBpZDogJ2RlbGV0ZUl0ZW0nLCB2YWx1ZTogJycsIGljb25DbGFzc05hbWU6ICdiaSBiaS1kYXNoLWNpcmNsZS1maWxsJywgY2xhc3NOYW1lOiAndGV4dC1jZW50ZXInIH0sXG4gICAgICAgIHsgaWQ6ICdmZWUnLCB2YWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5mb3JtYXR0ZWRTdHJpbmcsIHNvcnRWYWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5jZW50cyB9LFxuICAgICAgXSxcbiAgICAgIGRhdGFTb3VyY2U6IGNhcnRJdGVtXG4gICAgfVxuICAgIHJldHVybiByb3c7XG4gIH1cblxuICBvbkNlbGxDbGljayhldmVudDogT2VwYVRhYmxlQ2VsbENsaWNrRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY29sdW1uSWQgPT09ICdkZWxldGVJdGVtJykge1xuICAgICAgdGhpcy5kZWxldGVGcm9tQ2FydChldmVudC5yb3cuZGF0YVNvdXJjZS50eXBlSUQsIGV2ZW50LnJvdy5kYXRhU291cmNlLmRlc2NyaXB0aW9uLCB0aGlzLnNob3BwaW5nQ2FydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVGcm9tQ2FydChpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBjYXJ0OiBTaG9wcGluZ0NhcnQgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtb2RhbDogQnNNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQsIHsgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSB9KTtcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmhlYWRlclRleHQgPSAnUmVtb3ZlIGl0ZW0gZnJvbSBjYXJ0Pyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlICcgKyBkZXNjcmlwdGlvbiArICAnIGZyb20gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbUZyb21DYXJ0KGlkLCBjYXJ0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVsZXRlSXRlbUZyb21DYXJ0KGlkOiBzdHJpbmcsIGNhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjYXJ0KSB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmVtb3ZlU2hvcHBpbmdDYXJ0SXRlbShpZCwgY2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdXBkYXRlZENhcnQgPT4ge1xuICAgICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHVwZGF0ZWRDYXJ0O1xuICAgICAgICB0aGlzLmxvYWRUYWJsZSgpO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZW1vdmluZyBpdGVtIGZyb20gY2FydDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmV0dXJuVXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLnBhcmVudCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoZWNrb3V0KCkge1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuaGVhZGVyVGV4dCA9ICdDaGVja291dCc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdEbyB5b3Ugd2FudCB0byBzdWJtaXQgYWxsIG9mIHRoZSBhcHBsaWNhdGlvbnMgaW4gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tvdXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrb3V0KCkge1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0U2VydmljZS5jaGVja091dCh0aGlzLnNob3BwaW5nQ2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdHJhbnNhY3Rpb25JRCA9PiB7XG4gICAgICAgIC8vIG5hdmlnYXRlIHRvIENCT1NTIHBheW1lbnQgc2NyZWVuXG4gICAgICAgIGNvbnN0IGViaXpSb290VVJMID0gdGhpcy5zaG9wcGluZ0NhcnRTZXJ2aWNlLmdldEViaXpSb290VVJMKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWJpelJvb3RVUkwgKyAnL3BvcnRhbC9wYXltZW50U3VibWlzc2lvbkFjdGlvbi5wbz90cmFuc2FjdGlvbklEPScgKyB0cmFuc2FjdGlvbklEO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0NoZWNrb3V0IGZhaWxlZDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1zbS0xMlwiPlxuICAgICAgICAgIDxoMj48Yj57e3RpdGxlfX08L2I+PC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImxvYWRpbmcgfHwgZW1wdHlcIiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiBhbGVydCBhbGVydC1pbmZvIFwiPlxuICAgICAgICA8aDM+PGVtPnt7IGxvYWRpbmcgPyAnTG9hZGluZy4uLicgOiAnQ2FydCBpcyBlbXB0eScgfX08L2VtPjwvaDM+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJvZXBhLWljb25cIiBzcmM9XCJ7e2ltYWdlUm9vdH19L2JsdWUtbG9hZC5naWZcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFlbXB0eVwiIGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICA8b2VwYS10YWJsZSBbY29uZmlnXT1cInRibENvbmZpZ1wiIFtkYXRhXT1cInRibERhdGFcIiBbaGVhZGVyXT1cInRibEhlYWRlclwiIHRhYmxlSWQ9XCJTaG9wcGluZ0NhcnRUYWJsZVwiIChjZWxsQ2xpY2tlZCk9XCJvbkNlbGxDbGljaygkZXZlbnQpXCI+PC9vZXBhLXRhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPnt7ZXJyb3JNZXNzYWdlfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWNoZWNrT3V0SW5Qcm9ncmVzc1wiIGNsYXNzPVwiY29sLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiIGlkPVwicmV0dXJuVG9QYWdlQnV0dG9uXCIgKGNsaWNrKT1cImdvQmFjaygpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXR1cm5MYWJlbFwiPlxuICAgICAgICAgIHt7cmV0dXJuTGFiZWx9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWVtcHR5XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiIGlkPVwiY2hlY2tvdXRCdG5cIiAoY2xpY2spPVwib25DaGVja291dCgpXCIgYXJpYS1sYWJlbD1cIkNoZWNrb3V0XCI+XG4gICAgICAgICAgQ2hlY2tvdXQ8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNoZWNrT3V0SW5Qcm9ncmVzc1wiIGNsYXNzPVwiY29sLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+PC9zcGFuPlxuICAgICAgICAgIENoZWNraW5nIG91dC4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==