@hmcts/ccd-case-ui-toolkit 7.0.64-ungrey-back-button → 7.0.64-ungrey-back-button-3

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 (16) hide show
  1. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +3 -3
  2. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +61 -19
  3. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +13 -1
  4. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +2 -2
  5. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +1 -3
  6. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +2 -1
  7. package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
  8. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +77 -24
  9. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  10. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +7 -2
  11. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  12. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -0
  13. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  14. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
  15. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
  16. package/package.json +1 -1
@@ -130,7 +130,7 @@ function CaseFlagSummaryListComponent_dl_0_Template(rf, ctx) { if (rf & 1) {
130
130
  i0.ɵɵtext(20);
131
131
  i0.ɵɵelementEnd();
132
132
  i0.ɵɵelementStart(21, "dd", 5)(22, "a", 6);
133
- i0.ɵɵlistener("click", function CaseFlagSummaryListComponent_dl_0_Template_a_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeButtonEmitter.emit(ctx_r1.summaryListDisplayMode === ctx_r1.displayMode.MANAGE ? ctx_r1.caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : ctx_r1.caseFlagFieldState.FLAG_TYPE)); });
133
+ i0.ɵɵlistener("click", function CaseFlagSummaryListComponent_dl_0_Template_a_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeButtonEmitter.emit(ctx_r1.summaryListDisplayMode === ctx_r1.displayMode.MANAGE ? ctx_r1.caseFlagFieldState.FLAG_UPDATE : ctx_r1.caseFlagFieldState.FLAG_TYPE)); });
134
134
  i0.ɵɵtext(23);
135
135
  i0.ɵɵpipe(24, "rpxTranslate");
136
136
  i0.ɵɵelementStart(25, "span", 7);
@@ -289,7 +289,7 @@ export class CaseFlagSummaryListComponent {
289
289
  }
290
290
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFlagSummaryListComponent, [{
291
291
  type: Component,
292
- args: [{ selector: 'ccd-case-flag-summary-list', template: "<dl class=\"govuk-summary-list\" *ngIf=\"flagForSummaryDisplay\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{addUpdateFlagHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagForSummaryDisplay.partyName || caseFlagCheckYourAnswersPageStep.CASE_LEVEL_LOCATION | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : caseFlagFieldState.FLAG_LOCATION)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'party name' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{flagTypeHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescription}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'flag type' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagDescriptionWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Other description (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescriptionWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'other description (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagComments?.length > 0\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{externalUserUpdate ? flagUpdateComments : flagComments}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagCommentsWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagCommentsWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{'Status' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagStatus | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a *ngIf=\"is2Point1Enabled\" class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_STATUS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'status' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n</dl>\n" }]
292
+ args: [{ selector: 'ccd-case-flag-summary-list', template: "<dl class=\"govuk-summary-list\" *ngIf=\"flagForSummaryDisplay\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{addUpdateFlagHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagForSummaryDisplay.partyName || caseFlagCheckYourAnswersPageStep.CASE_LEVEL_LOCATION | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : caseFlagFieldState.FLAG_LOCATION)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'party name' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{flagTypeHeaderText | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescription}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'flag type' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagDescriptionWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Other description (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagDescriptionWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_TYPE)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'other description (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagComments?.length > 0\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{externalUserUpdate ? flagUpdateComments : flagComments}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"flagCommentsWelsh?.length > 0 && !externalUserUpdate\">\n <dt class=\"govuk-summary-list__key\">\n {{'Comments (Welsh)' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagCommentsWelsh}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_COMMENTS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments (Welsh)' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{'Status' | rpxTranslate}}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{flagStatus | rpxTranslate}}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a *ngIf=\"is2Point1Enabled\" class=\"govuk-link\" href=\"javascript:void(0)\"\n (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_STATUS)\">\n {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'status' | rpxTranslate}}</span>\n </a>\n </dd>\n </div>\n</dl>\n" }]
293
293
  }], () => [{ type: i1.RpxTranslationService }], { flagForSummaryDisplay: [{
294
294
  type: Input
295
295
  }], displayContextParameter: [{
@@ -298,4 +298,4 @@ export class CaseFlagSummaryListComponent {
298
298
  type: Output
299
299
  }] }); })();
300
300
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFlagSummaryListComponent, { className: "CaseFlagSummaryListComponent", filePath: "lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.ts", lineNumber: 15 }); })();
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1mbGFnLXN1bW1hcnktbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZsYWcvY29tcG9uZW50cy9jYXNlLWZsYWctc3VtbWFyeS1saXN0L2Nhc2UtZmxhZy1zdW1tYXJ5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvY2FzZS1mbGFnLXN1bW1hcnktbGlzdC9jYXNlLWZsYWctc3VtbWFyeS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUMvQixNQUFNLGFBQWEsQ0FBQzs7Ozs7O0lDc0JqQixBQURGLDhCQUFxRyxZQUMvRDtJQUNsQyxZQUNGOztJQUFBLGlCQUFLO0lBQ0wsNkJBQXNDO0lBQ3BDLFlBQ0Y7SUFBQSxpQkFBSztJQUVILEFBREYsNkJBQXdDLFdBRXFJO0lBQXpLLDBMQUFTLDRMQUE4SixLQUFDO0lBQ3hLLFlBQTJCOztJQUFBLGdDQUFvQztJQUFDLGFBQThDOztJQUdwSCxBQURFLEFBREUsQUFEZ0gsaUJBQU8sRUFDbkgsRUFDRCxFQUNEOzs7SUFYRixlQUNGO0lBREUsa0ZBQ0Y7SUFF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LENBQUMsdUJBQXVCLEtBQUssK0JBQStCLENBQUMsTUFBTTtZQUN2RSxJQUFJLENBQUMsdUJBQXVCLEtBQUssK0JBQStCLENBQUMsZUFBZTtZQUNoRixJQUFJLENBQUMsdUJBQXVCLEtBQUssK0JBQStCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RixPQUFPLDhCQUE4QixDQUFDLE1BQU0sQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyw4QkFBOEIsQ0FBQyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUVPLHdDQUF3QztRQUM5QyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsS0FBSywrQkFBK0IsQ0FBQyxnQkFBZ0I7WUFDdEYsSUFBSSxDQUFDLHVCQUF1QixLQUFLLCtCQUErQixDQUFDLGdCQUFnQixDQUFDO0lBQ3RGLENBQUM7c0ZBdkdVLDRCQUE0Qjs2REFBNUIsNEJBQTRCO1lDZHpDLDZFQUE2RDs7WUFBN0IsZ0RBQTJCOzs7aUZEYzlDLDRCQUE0QjtjQUp4QyxTQUFTOzJCQUNFLDRCQUE0QjtzREFJdEIscUJBQXFCO2tCQUFwQyxLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1csbUJBQW1CO2tCQUFuQyxNQUFNOztrRkFISSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdycHgteHVpLXRyYW5zbGF0aW9uJztcbmltcG9ydCB7IEZsYWdEZXRhaWwsIEZsYWdEZXRhaWxEaXNwbGF5IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLFxuICBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLFxuICBDYXNlRmxhZ0ZpZWxkU3RhdGUsXG4gIENhc2VGbGFnU3VtbWFyeUxpc3REaXNwbGF5TW9kZVxufSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWZsYWctc3VtbWFyeS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZmxhZy1zdW1tYXJ5LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENhc2VGbGFnU3VtbWFyeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgZmxhZ0ZvclN1bW1hcnlEaXNwbGF5OiBGbGFnRGV0YWlsRGlzcGxheTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlQnV0dG9uRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHB1YmxpYyBmbGFnRGVzY3JpcHRpb246IHN0cmluZztcbiAgcHVibGljIGZsYWdDb21tZW50czogc3RyaW5nO1xuICBwdWJsaWMgZmxhZ1N0YXR1czogc3RyaW5nO1xuICBwdWJsaWMgZmxhZ0Rlc2NyaXB0aW9uV2Vsc2g6IHN0cmluZztcbiAgcHVibGljIGZsYWdDb21tZW50c1dlbHNoOiBzdHJpbmc7XG4gIHB1YmxpYyBvdGhlckRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBvdGhlckRlc2NyaXB0aW9uV2Vsc2g6IHN0cmluZztcbiAgcHVibGljIGZsYWdVcGRhdGVDb21tZW50czogc3RyaW5nO1xuICBwdWJsaWMgc3VtbWFyeUxpc3REaXNwbGF5TW9kZTogQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlO1xuICBwdWJsaWMgYWRkVXBkYXRlRmxhZ0hlYWRlclRleHQ6IHN0cmluZztcbiAgcHVibGljIGNhc2VGbGFnRmllbGRTdGF0ZSA9IENhc2VGbGFnRmllbGRTdGF0ZTtcbiAgcHVibGljIGRpc3BsYXlNb2RlID0gQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlO1xuICBwdWJsaWMgZmxhZ1R5cGVIZWFkZXJUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcCA9IENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwO1xuICBwdWJsaWMgaXMyUG9pbnQxRW5hYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgZXh0ZXJuYWxVc2VyVXBkYXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBycHhUcmFuc2xhdGlvblNlcnZpY2U6IFJweFRyYW5zbGF0aW9uU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheSkge1xuICAgICAgY29uc3QgZmxhZ0RldGFpbCA9IHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5LmZsYWdEZXRhaWw7XG4gICAgICB0aGlzLmZsYWdEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0RmxhZ0Rlc2NyaXB0aW9uKGZsYWdEZXRhaWwpO1xuICAgICAgdGhpcy5mbGFnRGVzY3JpcHRpb25XZWxzaCA9IGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbl9jeTtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzID0gZmxhZ0RldGFpbC5mbGFnQ29tbWVudDtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzV2Vsc2ggPSBmbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5O1xuICAgICAgLy8gRmxhZyB1cGRhdGUgY29tbWVudHMgd2lsbCBiZSBjb21pbmcgZnJvbSB0aGUgZmxhZ1N0YXR1c1JlYXNvbkNoYW5nZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mIGZsYWdVcGRhdGVDb21tZW50XG4gICAgICAvLyBiZWNhdXNlIHRoZXNlIGhhdmVuJ3QgYmVlbiBwZXJzaXN0ZWQgeWV0XG4gICAgICB0aGlzLmZsYWdVcGRhdGVDb21tZW50cyA9IGZsYWdEZXRhaWxbJ2ZsYWdTdGF0dXNSZWFzb25DaGFuZ2UnXTtcbiAgICAgIHRoaXMuZmxhZ1N0YXR1cyA9IGZsYWdEZXRhaWwuc3RhdHVzO1xuICAgICAgdGhpcy5hZGRVcGRhdGVGbGFnSGVhZGVyVGV4dCA9IHRoaXMuZ2V0QWRkVXBkYXRlRmxhZ0hlYWRlclRleHQoKTtcbiAgICAgIHRoaXMuZmxhZ1R5cGVIZWFkZXJUZXh0ID0gdGhpcy5nZXRGbGFnVHlwZUhlYWRlclRleHQoKTtcbiAgICAgIHRoaXMuc3VtbWFyeUxpc3REaXNwbGF5TW9kZSA9IHRoaXMuZ2V0U3VtbWFyeUxpc3REaXNwbGF5TW9kZSgpO1xuICAgICAgdGhpcy5pczJQb2ludDFFbmFibGVkID0gdGhpcy5nZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkKCk7XG4gICAgICB0aGlzLmV4dGVybmFsVXNlclVwZGF0ZSA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmxhZ0Rlc2NyaXB0aW9uKGZsYWdEZXRhaWw6IEZsYWdEZXRhaWwpOiBzdHJpbmcge1xuICAgIGxldCBmbGFnTmFtZTogc3RyaW5nO1xuICAgIGxldCBzdWJUeXBlVmFsdWU6IHN0cmluZztcbiAgICBpZiAodGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdjeScpIHtcbiAgICAgIGZsYWdOYW1lID0gZmxhZ0RldGFpbC5uYW1lX2N5IHx8IGZsYWdEZXRhaWwubmFtZTtcbiAgICAgIHN1YlR5cGVWYWx1ZSA9IGZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlX2N5IHx8IGZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGFnTmFtZSA9IGZsYWdEZXRhaWwubmFtZSB8fCBmbGFnRGV0YWlsLm5hbWVfY3k7XG4gICAgICBzdWJUeXBlVmFsdWUgPSBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZSB8fCBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZV9jeTtcbiAgICB9XG4gICAgLy8gVGhlIG90aGVyRGVzY3JpcHRpb24gZmllbGQgc2hvdWxkIGJlIHNob3duIHZlcmJhdGltOyBvdGhlckRlc2NyaXB0aW9uIGZvciBXZWxzaCBpcyBzaG93biBzZXBhcmF0ZWx5XG4gICAgY29uc3Qgb3RoZXJEZXNjcmlwdGlvbiA9IGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbiA/IGAgLSAke2ZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbn1gIDogJyc7XG4gICAgY29uc3Qgc3ViVHlwZVZhbHVlRm9yRGlzcGxheSA9IHN1YlR5cGVWYWx1ZSA/IGAgLSAke3N1YlR5cGVWYWx1ZX1gIDogJyc7XG4gICAgcmV0dXJuIGAke2ZsYWdOYW1lfSR7b3RoZXJEZXNjcmlwdGlvbn0ke3N1YlR5cGVWYWx1ZUZvckRpc3BsYXl9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWRkVXBkYXRlRmxhZ0hlYWRlclRleHQoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2godGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlcikge1xuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLkNSRUFURTpcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfMl9QT0lOVF8xOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdDaGVja1lvdXJBbnN3ZXJzUGFnZVN0ZXAuQUREX0ZMQUdfSEVBREVSX1RFWFQ7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFX0VYVEVSTkFMOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdDaGVja1lvdXJBbnN3ZXJzUGFnZVN0ZXAuQUREX0ZMQUdfSEVBREVSX1RFWFRfRVhURVJOQUw7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFOlxuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzE6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcC5VUERBVEVfRkxBR19IRUFERVJfVEVYVDtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUw6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcC5VUERBVEVfRkxBR19IRUFERVJfVEVYVF9FWFRFUk5BTDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcC5OT05FO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmxhZ1R5cGVIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgc3dpdGNoKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpIHtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEU6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFXzJfUE9JTlRfMTpcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLkZMQUdfVFlQRV9IRUFERVJfVEVYVDtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfRVhURVJOQUw6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdDaGVja1lvdXJBbnN3ZXJzUGFnZVN0ZXAuRkxBR19UWVBFX0hFQURFUl9URVhUX0VYVEVSTkFMO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLk5PTkU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdW1tYXJ5TGlzdERpc3BsYXlNb2RlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFIHx8XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFX0VYVEVSTkFMIHx8XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFXzJfUE9JTlRfMSkge1xuICAgICAgcmV0dXJuIENhc2VGbGFnU3VtbWFyeUxpc3REaXNwbGF5TW9kZS5DUkVBVEU7XG4gICAgfVxuICAgIHJldHVybiBDYXNlRmxhZ1N1bW1hcnlMaXN0RGlzcGxheU1vZGUuTUFOQUdFO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLkNSRUFURV8yX1BPSU5UXzEgfHxcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTtcbiAgfVxufVxuIiwiPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0XCIgKm5nSWY9XCJmbGFnRm9yU3VtbWFyeURpc3BsYXlcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCI+XG4gICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgIHt7YWRkVXBkYXRlRmxhZ0hlYWRlclRleHQgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZHQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAge3tmbGFnRm9yU3VtbWFyeURpc3BsYXkucGFydHlOYW1lIHx8IGNhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLkNBU0VfTEVWRUxfTE9DQVRJT04gfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZGQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZUJ1dHRvbkVtaXR0ZXIuZW1pdCh0aGlzLnN1bW1hcnlMaXN0RGlzcGxheU1vZGUgPT09IGRpc3BsYXlNb2RlLk1BTkFHRSA/IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTIDogY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTE9DQVRJT04pXCI+XG4gICAgICAgIHt7J0NoYW5nZScgfCBycHhUcmFuc2xhdGV9fTxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+IHt7J3BhcnR5IG5hbWUnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICB7e2ZsYWdUeXBlSGVhZGVyVGV4dCB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9kdD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICB7e2ZsYWdEZXNjcmlwdGlvbn19XG4gICAgPC9kZD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgIDxhIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlQnV0dG9uRW1pdHRlci5lbWl0KHRoaXMuc3VtbWFyeUxpc3REaXNwbGF5TW9kZSA9PT0gZGlzcGxheU1vZGUuTUFOQUdFID8gY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1MgOiBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFKVwiPlxuICAgICAgICB7eydDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlfX08c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPiB7eydmbGFnIHR5cGUnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiICpuZ0lmPVwiZmxhZ0Rlc2NyaXB0aW9uV2Vsc2g/Lmxlbmd0aCA+IDAgJiYgIWV4dGVybmFsVXNlclVwZGF0ZVwiPlxuICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICB7eydPdGhlciBkZXNjcmlwdGlvbiAoV2Vsc2gpJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9kdD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICB7e2ZsYWdEZXNjcmlwdGlvbldlbHNofX1cbiAgICA8L2RkPlxuICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VCdXR0b25FbWl0dGVyLmVtaXQodGhpcy5zdW1tYXJ5TGlzdERpc3BsYXlNb2RlID09PSBkaXNwbGF5TW9kZS5NQU5BR0UgPyBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEVfV0VMU0hfVFJBTlNMQVRJT04gOiBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFKVwiPlxuICAgICAgICB7eydDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlfX08c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPiB7eydvdGhlciBkZXNjcmlwdGlvbiAoV2Vsc2gpJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIiAqbmdJZj1cImZsYWdDb21tZW50cz8ubGVuZ3RoID4gMFwiPlxuICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICB7eydDb21tZW50cycgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZHQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAge3tleHRlcm5hbFVzZXJVcGRhdGUgPyBmbGFnVXBkYXRlQ29tbWVudHMgOiBmbGFnQ29tbWVudHN9fVxuICAgIDwvZGQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZUJ1dHRvbkVtaXR0ZXIuZW1pdCh0aGlzLnN1bW1hcnlMaXN0RGlzcGxheU1vZGUgPT09IGRpc3BsYXlNb2RlLk1BTkFHRSA/IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURSA6IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTKVwiPlxuICAgICAgICB7eydDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlfX08c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPiB7eydjb21tZW50cycgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2RkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJmbGFnQ29tbWVudHNXZWxzaD8ubGVuZ3RoID4gMCAmJiAhZXh0ZXJuYWxVc2VyVXBkYXRlXCI+XG4gICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgIHt7J0NvbW1lbnRzIChXZWxzaCknIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2R0PlxuICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj5cbiAgICAgIHt7ZmxhZ0NvbW1lbnRzV2Vsc2h9fVxuICAgIDwvZGQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZUJ1dHRvbkVtaXR0ZXIuZW1pdCh0aGlzLnN1bW1hcnlMaXN0RGlzcGxheU1vZGUgPT09IGRpc3BsYXlNb2RlLk1BTkFHRSA/IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURV9XRUxTSF9UUkFOU0xBVElPTiA6IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTKVwiPlxuICAgICAgICB7eydDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlfX08c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPiB7eydjb21tZW50cyAoV2Vsc2gpJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAge3snU3RhdHVzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9kdD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICB7e2ZsYWdTdGF0dXMgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZGQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICA8YSAqbmdJZj1cImlzMlBvaW50MUVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZUJ1dHRvbkVtaXR0ZXIuZW1pdCh0aGlzLnN1bW1hcnlMaXN0RGlzcGxheU1vZGUgPT09IGRpc3BsYXlNb2RlLk1BTkFHRSA/IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURSA6IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1NUQVRVUylcIj5cbiAgICAgICAge3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19PHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj4ge3snc3RhdHVzJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGQ+XG4gIDwvZGl2PlxuPC9kbD5cbiJdfQ==
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1mbGFnLXN1bW1hcnktbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZsYWcvY29tcG9uZW50cy9jYXNlLWZsYWctc3VtbWFyeS1saXN0L2Nhc2UtZmxhZy1zdW1tYXJ5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvY2FzZS1mbGFnLXN1bW1hcnktbGlzdC9jYXNlLWZsYWctc3VtbWFyeS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUMvQixNQUFNLGFBQWEsQ0FBQzs7Ozs7O0lDc0JqQixBQURGLDhCQUFxRyxZQUMvRDtJQUNsQyxZQUNGOztJQUFBLGlCQUFLO0lBQ0wsNkJBQXNDO0lBQ3BDLFlBQ0Y7SUFBQSxpQkFBSztJQUVILEFBREYsNkJBQXdDLFdBRXFJO0lBQXpLLDBMQUFTLDRMQUE4SixLQUFDO0lBQ3hLLFlBQTJCOztJQUFBLGdDQUFvQztJQUFDLGFBQThDOztJQUdwSCxBQURFLEFBREUsQUFEZ0gsaUJBQU8sRUFDbkgsRUFDRCxFQUNEOzs7SUFYRixlQUNGO0lBREUsa0ZBQ0Y7SUFF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LENBQUMsdUJBQXVCLEtBQUssK0JBQStCLENBQUMsTUFBTTtZQUN2RSxJQUFJLENBQUMsdUJBQXVCLEtBQUssK0JBQStCLENBQUMsZUFBZTtZQUNoRixJQUFJLENBQUMsdUJBQXVCLEtBQUssK0JBQStCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RixPQUFPLDhCQUE4QixDQUFDLE1BQU0sQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyw4QkFBOEIsQ0FBQyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUVPLHdDQUF3QztRQUM5QyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsS0FBSywrQkFBK0IsQ0FBQyxnQkFBZ0I7WUFDdEYsSUFBSSxDQUFDLHVCQUF1QixLQUFLLCtCQUErQixDQUFDLGdCQUFnQixDQUFDO0lBQ3RGLENBQUM7c0ZBdkdVLDRCQUE0Qjs2REFBNUIsNEJBQTRCO1lDZHpDLDZFQUE2RDs7WUFBN0IsZ0RBQTJCOzs7aUZEYzlDLDRCQUE0QjtjQUp4QyxTQUFTOzJCQUNFLDRCQUE0QjtzREFJdEIscUJBQXFCO2tCQUFwQyxLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1csbUJBQW1CO2tCQUFuQyxNQUFNOztrRkFISSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdycHgteHVpLXRyYW5zbGF0aW9uJztcbmltcG9ydCB7IEZsYWdEZXRhaWwsIEZsYWdEZXRhaWxEaXNwbGF5IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLFxuICBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLFxuICBDYXNlRmxhZ0ZpZWxkU3RhdGUsXG4gIENhc2VGbGFnU3VtbWFyeUxpc3REaXNwbGF5TW9kZVxufSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWZsYWctc3VtbWFyeS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZmxhZy1zdW1tYXJ5LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENhc2VGbGFnU3VtbWFyeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgZmxhZ0ZvclN1bW1hcnlEaXNwbGF5OiBGbGFnRGV0YWlsRGlzcGxheTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlQnV0dG9uRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHB1YmxpYyBmbGFnRGVzY3JpcHRpb246IHN0cmluZztcbiAgcHVibGljIGZsYWdDb21tZW50czogc3RyaW5nO1xuICBwdWJsaWMgZmxhZ1N0YXR1czogc3RyaW5nO1xuICBwdWJsaWMgZmxhZ0Rlc2NyaXB0aW9uV2Vsc2g6IHN0cmluZztcbiAgcHVibGljIGZsYWdDb21tZW50c1dlbHNoOiBzdHJpbmc7XG4gIHB1YmxpYyBvdGhlckRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBvdGhlckRlc2NyaXB0aW9uV2Vsc2g6IHN0cmluZztcbiAgcHVibGljIGZsYWdVcGRhdGVDb21tZW50czogc3RyaW5nO1xuICBwdWJsaWMgc3VtbWFyeUxpc3REaXNwbGF5TW9kZTogQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlO1xuICBwdWJsaWMgYWRkVXBkYXRlRmxhZ0hlYWRlclRleHQ6IHN0cmluZztcbiAgcHVibGljIGNhc2VGbGFnRmllbGRTdGF0ZSA9IENhc2VGbGFnRmllbGRTdGF0ZTtcbiAgcHVibGljIGRpc3BsYXlNb2RlID0gQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlO1xuICBwdWJsaWMgZmxhZ1R5cGVIZWFkZXJUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcCA9IENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwO1xuICBwdWJsaWMgaXMyUG9pbnQxRW5hYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgZXh0ZXJuYWxVc2VyVXBkYXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBycHhUcmFuc2xhdGlvblNlcnZpY2U6IFJweFRyYW5zbGF0aW9uU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheSkge1xuICAgICAgY29uc3QgZmxhZ0RldGFpbCA9IHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5LmZsYWdEZXRhaWw7XG4gICAgICB0aGlzLmZsYWdEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0RmxhZ0Rlc2NyaXB0aW9uKGZsYWdEZXRhaWwpO1xuICAgICAgdGhpcy5mbGFnRGVzY3JpcHRpb25XZWxzaCA9IGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbl9jeTtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzID0gZmxhZ0RldGFpbC5mbGFnQ29tbWVudDtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzV2Vsc2ggPSBmbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5O1xuICAgICAgLy8gRmxhZyB1cGRhdGUgY29tbWVudHMgd2lsbCBiZSBjb21pbmcgZnJvbSB0aGUgZmxhZ1N0YXR1c1JlYXNvbkNoYW5nZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mIGZsYWdVcGRhdGVDb21tZW50XG4gICAgICAvLyBiZWNhdXNlIHRoZXNlIGhhdmVuJ3QgYmVlbiBwZXJzaXN0ZWQgeWV0XG4gICAgICB0aGlzLmZsYWdVcGRhdGVDb21tZW50cyA9IGZsYWdEZXRhaWxbJ2ZsYWdTdGF0dXNSZWFzb25DaGFuZ2UnXTtcbiAgICAgIHRoaXMuZmxhZ1N0YXR1cyA9IGZsYWdEZXRhaWwuc3RhdHVzO1xuICAgICAgdGhpcy5hZGRVcGRhdGVGbGFnSGVhZGVyVGV4dCA9IHRoaXMuZ2V0QWRkVXBkYXRlRmxhZ0hlYWRlclRleHQoKTtcbiAgICAgIHRoaXMuZmxhZ1R5cGVIZWFkZXJUZXh0ID0gdGhpcy5nZXRGbGFnVHlwZUhlYWRlclRleHQoKTtcbiAgICAgIHRoaXMuc3VtbWFyeUxpc3REaXNwbGF5TW9kZSA9IHRoaXMuZ2V0U3VtbWFyeUxpc3REaXNwbGF5TW9kZSgpO1xuICAgICAgdGhpcy5pczJQb2ludDFFbmFibGVkID0gdGhpcy5nZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkKCk7XG4gICAgICB0aGlzLmV4dGVybmFsVXNlclVwZGF0ZSA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmxhZ0Rlc2NyaXB0aW9uKGZsYWdEZXRhaWw6IEZsYWdEZXRhaWwpOiBzdHJpbmcge1xuICAgIGxldCBmbGFnTmFtZTogc3RyaW5nO1xuICAgIGxldCBzdWJUeXBlVmFsdWU6IHN0cmluZztcbiAgICBpZiAodGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdjeScpIHtcbiAgICAgIGZsYWdOYW1lID0gZmxhZ0RldGFpbC5uYW1lX2N5IHx8IGZsYWdEZXRhaWwubmFtZTtcbiAgICAgIHN1YlR5cGVWYWx1ZSA9IGZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlX2N5IHx8IGZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGFnTmFtZSA9IGZsYWdEZXRhaWwubmFtZSB8fCBmbGFnRGV0YWlsLm5hbWVfY3k7XG4gICAgICBzdWJUeXBlVmFsdWUgPSBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZSB8fCBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZV9jeTtcbiAgICB9XG4gICAgLy8gVGhlIG90aGVyRGVzY3JpcHRpb24gZmllbGQgc2hvdWxkIGJlIHNob3duIHZlcmJhdGltOyBvdGhlckRlc2NyaXB0aW9uIGZvciBXZWxzaCBpcyBzaG93biBzZXBhcmF0ZWx5XG4gICAgY29uc3Qgb3RoZXJEZXNjcmlwdGlvbiA9IGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbiA/IGAgLSAke2ZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbn1gIDogJyc7XG4gICAgY29uc3Qgc3ViVHlwZVZhbHVlRm9yRGlzcGxheSA9IHN1YlR5cGVWYWx1ZSA/IGAgLSAke3N1YlR5cGVWYWx1ZX1gIDogJyc7XG4gICAgcmV0dXJuIGAke2ZsYWdOYW1lfSR7b3RoZXJEZXNjcmlwdGlvbn0ke3N1YlR5cGVWYWx1ZUZvckRpc3BsYXl9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWRkVXBkYXRlRmxhZ0hlYWRlclRleHQoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2godGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlcikge1xuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLkNSRUFURTpcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfMl9QT0lOVF8xOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdDaGVja1lvdXJBbnN3ZXJzUGFnZVN0ZXAuQUREX0ZMQUdfSEVBREVSX1RFWFQ7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFX0VYVEVSTkFMOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdDaGVja1lvdXJBbnN3ZXJzUGFnZVN0ZXAuQUREX0ZMQUdfSEVBREVSX1RFWFRfRVhURVJOQUw7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFOlxuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzE6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcC5VUERBVEVfRkxBR19IRUFERVJfVEVYVDtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUw6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcC5VUERBVEVfRkxBR19IRUFERVJfVEVYVF9FWFRFUk5BTDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ0NoZWNrWW91ckFuc3dlcnNQYWdlU3RlcC5OT05FO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmxhZ1R5cGVIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgc3dpdGNoKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpIHtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEU6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFXzJfUE9JTlRfMTpcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLkZMQUdfVFlQRV9IRUFERVJfVEVYVDtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfRVhURVJOQUw6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdDaGVja1lvdXJBbnN3ZXJzUGFnZVN0ZXAuRkxBR19UWVBFX0hFQURFUl9URVhUX0VYVEVSTkFMO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLk5PTkU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdW1tYXJ5TGlzdERpc3BsYXlNb2RlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFIHx8XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFX0VYVEVSTkFMIHx8XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFXzJfUE9JTlRfMSkge1xuICAgICAgcmV0dXJuIENhc2VGbGFnU3VtbWFyeUxpc3REaXNwbGF5TW9kZS5DUkVBVEU7XG4gICAgfVxuICAgIHJldHVybiBDYXNlRmxhZ1N1bW1hcnlMaXN0RGlzcGxheU1vZGUuTUFOQUdFO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLkNSRUFURV8yX1BPSU5UXzEgfHxcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTtcbiAgfVxufVxuIiwiPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0XCIgKm5nSWY9XCJmbGFnRm9yU3VtbWFyeURpc3BsYXlcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCI+XG4gICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgIHt7YWRkVXBkYXRlRmxhZ0hlYWRlclRleHQgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZHQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAge3tmbGFnRm9yU3VtbWFyeURpc3BsYXkucGFydHlOYW1lIHx8IGNhc2VGbGFnQ2hlY2tZb3VyQW5zd2Vyc1BhZ2VTdGVwLkNBU0VfTEVWRUxfTE9DQVRJT04gfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZGQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZUJ1dHRvbkVtaXR0ZXIuZW1pdCh0aGlzLnN1bW1hcnlMaXN0RGlzcGxheU1vZGUgPT09IGRpc3BsYXlNb2RlLk1BTkFHRSA/IGNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTIDogY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTE9DQVRJT04pXCI+XG4gICAgICAgIHt7J0NoYW5nZScgfCBycHhUcmFuc2xhdGV9fTxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+IHt7J3BhcnR5IG5hbWUnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICB7e2ZsYWdUeXBlSGVhZGVyVGV4dCB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9kdD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICB7e2ZsYWdEZXNjcmlwdGlvbn19XG4gICAgPC9kZD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgIDxhIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlQnV0dG9uRW1pdHRlci5lbWl0KHRoaXMuc3VtbWFyeUxpc3REaXNwbGF5TW9kZSA9PT0gZGlzcGxheU1vZGUuTUFOQUdFID8gY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFIDogY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSlcIj5cbiAgICAgICAge3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19PHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj4ge3snZmxhZyB0eXBlJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIiAqbmdJZj1cImZsYWdEZXNjcmlwdGlvbldlbHNoPy5sZW5ndGggPiAwICYmICFleHRlcm5hbFVzZXJVcGRhdGVcIj5cbiAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAge3snT3RoZXIgZGVzY3JpcHRpb24gKFdlbHNoKScgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZHQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAge3tmbGFnRGVzY3JpcHRpb25XZWxzaH19XG4gICAgPC9kZD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgIDxhIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlQnV0dG9uRW1pdHRlci5lbWl0KHRoaXMuc3VtbWFyeUxpc3REaXNwbGF5TW9kZSA9PT0gZGlzcGxheU1vZGUuTUFOQUdFID8gY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFX1dFTFNIX1RSQU5TTEFUSU9OIDogY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSlcIj5cbiAgICAgICAge3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19PHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj4ge3snb3RoZXIgZGVzY3JpcHRpb24gKFdlbHNoKScgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2RkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCIgKm5nSWY9XCJmbGFnQ29tbWVudHM/Lmxlbmd0aCA+IDBcIj5cbiAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAge3snQ29tbWVudHMnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2R0PlxuICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj5cbiAgICAgIHt7ZXh0ZXJuYWxVc2VyVXBkYXRlID8gZmxhZ1VwZGF0ZUNvbW1lbnRzIDogZmxhZ0NvbW1lbnRzfX1cbiAgICA8L2RkPlxuICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VCdXR0b25FbWl0dGVyLmVtaXQodGhpcy5zdW1tYXJ5TGlzdERpc3BsYXlNb2RlID09PSBkaXNwbGF5TW9kZS5NQU5BR0UgPyBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUgOiBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UUylcIj5cbiAgICAgICAge3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19PHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj4ge3snY29tbWVudHMnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiICpuZ0lmPVwiZmxhZ0NvbW1lbnRzV2Vsc2g/Lmxlbmd0aCA+IDAgJiYgIWV4dGVybmFsVXNlclVwZGF0ZVwiPlxuICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICB7eydDb21tZW50cyAoV2Vsc2gpJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9kdD5cbiAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICB7e2ZsYWdDb21tZW50c1dlbHNofX1cbiAgICA8L2RkPlxuICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VCdXR0b25FbWl0dGVyLmVtaXQodGhpcy5zdW1tYXJ5TGlzdERpc3BsYXlNb2RlID09PSBkaXNwbGF5TW9kZS5NQU5BR0UgPyBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEVfV0VMU0hfVFJBTlNMQVRJT04gOiBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UUylcIj5cbiAgICAgICAge3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19PHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj4ge3snY29tbWVudHMgKFdlbHNoKScgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2RkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCI+XG4gICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgIHt7J1N0YXR1cycgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZHQ+XG4gICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAge3tmbGFnU3RhdHVzIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2RkPlxuICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgPGEgKm5nSWY9XCJpczJQb2ludDFFbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VCdXR0b25FbWl0dGVyLmVtaXQodGhpcy5zdW1tYXJ5TGlzdERpc3BsYXlNb2RlID09PSBkaXNwbGF5TW9kZS5NQU5BR0UgPyBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUgOiBjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19TVEFUVVMpXCI+XG4gICAgICAgIHt7J0NoYW5nZScgfCBycHhUcmFuc2xhdGV9fTxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+IHt7J3N0YXR1cycgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2RkPlxuICA8L2Rpdj5cbjwvZGw+XG4iXX0=
@@ -3,6 +3,7 @@ import { FormControl, FormGroup } from '@angular/forms';
3
3
  import { FieldsUtils } from '../../../../../services/fields';
4
4
  import { CaseFlagDisplayContextParameter, CaseFlagFieldState, CaseFlagStatus, CaseFlagWizardStepTitle, SelectFlagErrorMessage } from '../../enums';
5
5
  import { AbstractJourneyComponent } from '../../../base-field';
6
+ import { cloneDeep } from 'lodash';
6
7
  import * as i0 from "@angular/core";
7
8
  const _c0 = a0 => ({ "form-group-error": a0 });
8
9
  function ManageCaseFlagsComponent_div_7_Template(rf, ctx) { if (rf & 1) {
@@ -21,20 +22,23 @@ function ManageCaseFlagsComponent_div_7_Template(rf, ctx) { if (rf & 1) {
21
22
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r0.manageCaseFlagSelectedErrorMessage), " ");
22
23
  } }
23
24
  function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelementStart(0, "div", 10);
25
- i0.ɵɵelement(1, "input", 11)(2, "label", 12);
25
+ const _r2 = i0.ɵɵgetCurrentView();
26
+ i0.ɵɵelementStart(0, "div", 10)(1, "input", 11);
27
+ i0.ɵɵlistener("change", function ManageCaseFlagsComponent_div_9_Template_input_change_1_listener() { const flagDisplay_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onFlagSelectionChange(flagDisplay_r3)); });
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelement(2, "label", 12);
26
30
  i0.ɵɵpipe(3, "manageCaseFlagsLabelDisplay");
27
31
  i0.ɵɵelementEnd();
28
32
  } if (rf & 2) {
29
- const flagDisplay_r2 = ctx.$implicit;
30
- const i_r3 = ctx.index;
33
+ const flagDisplay_r3 = ctx.$implicit;
34
+ const i_r4 = ctx.index;
31
35
  const ctx_r0 = i0.ɵɵnextContext();
32
36
  i0.ɵɵadvance();
33
- i0.ɵɵpropertyInterpolate1("id", "flag-selection-", i_r3, "");
34
- i0.ɵɵproperty("name", ctx_r0.selectedControlName)("value", flagDisplay_r2)("formControlName", ctx_r0.selectedControlName);
37
+ i0.ɵɵpropertyInterpolate1("id", "flag-selection-", i_r4, "");
38
+ i0.ɵɵproperty("checked", ctx_r0.isSelected(flagDisplay_r3));
35
39
  i0.ɵɵadvance();
36
- i0.ɵɵpropertyInterpolate1("for", "flag-selection-", i_r3, "");
37
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 8, flagDisplay_r2), i0.ɵɵsanitizeHtml);
40
+ i0.ɵɵpropertyInterpolate1("for", "flag-selection-", i_r4, "");
41
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 6, flagDisplay_r3), i0.ɵɵsanitizeHtml);
38
42
  } }
39
43
  export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
40
44
  formGroup;
@@ -50,13 +54,22 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
50
54
  noFlagsError = false;
51
55
  selectedControlName = 'selectedManageCaseLocation';
52
56
  excludedFlagStatuses = [CaseFlagStatus.INACTIVE, CaseFlagStatus.NOT_APPROVED];
57
+ cachedControls;
53
58
  ngOnInit() {
54
59
  this.manageCaseFlagTitle = this.setManageCaseFlagTitle(this.displayContextParameter);
55
60
  let originalStatus;
61
+ let originalPathToFlag;
56
62
  // if the user has progressed to CYA and then navigated away, the flag they selected will be set as inactive, we need to reset this
57
- if (this.formGroup.get('selectedManageCaseLocation')) {
58
- const locationControl = this.formGroup.get('selectedManageCaseLocation');
59
- originalStatus = locationControl.value?.originalStatus;
63
+ const locationControl = this.formGroup.get(this.selectedControlName);
64
+ if (locationControl) {
65
+ originalStatus = locationControl?.value?.originalStatus;
66
+ originalPathToFlag = locationControl?.value?.pathToFlagsFormGroup;
67
+ this.cachedControls = cloneDeep(this.formGroup.controls);
68
+ Object.keys(this.formGroup.controls).forEach((controlName) => {
69
+ if (controlName !== this.selectedControlName) {
70
+ this.formGroup.removeControl(controlName);
71
+ }
72
+ });
60
73
  }
61
74
  // Map flags instances to objects for display, filtering out any where the original status is either "Inactive" or
62
75
  // "Not approved"
@@ -67,7 +80,7 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
67
80
  if (flagsInstance.flags.details && flagsInstance.flags.details.length > 0) {
68
81
  displayData = [
69
82
  ...displayData,
70
- ...flagsInstance.flags.details.map((detail) => this.mapFlagDetailForDisplay(detail, flagsInstance, originalStatus))
83
+ ...flagsInstance.flags.details.map((detail) => this.mapFlagDetailForDisplay(detail, flagsInstance, originalStatus, originalPathToFlag))
71
84
  ];
72
85
  }
73
86
  return displayData;
@@ -83,7 +96,17 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
83
96
  this.onNoFlagsError();
84
97
  }
85
98
  }
86
- mapFlagDetailForDisplay(flagDetail, flagsInstance, originalStatusFromFG) {
99
+ onFlagSelectionChange(selectedFlag) {
100
+ this.formGroup.get(this.selectedControlName).setValue(selectedFlag);
101
+ }
102
+ isSelected(flagDisplay) {
103
+ const selectedFlag = this.formGroup.get(this.selectedControlName)?.value;
104
+ return selectedFlag && this.getFlagID(selectedFlag) === this.getFlagID(flagDisplay);
105
+ }
106
+ getFlagID(flag) {
107
+ return flag?.flagDetailDisplay?.flagDetail?.id || '';
108
+ }
109
+ mapFlagDetailForDisplay(flagDetail, flagsInstance, originalStatusFromFG, originalPathToFlag) {
87
110
  // Reset the flag status with the original persisted status. This is needed because ngOnInit() needs to filter
88
111
  // out any "Inactive" or "Not approved" flags based on their status *before* modification. If the user changes a
89
112
  // flag's status then decides to return to the start of the flag update journey, the flag's status would no
@@ -106,7 +129,13 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
106
129
  }
107
130
  if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
108
131
  const originalFlagDetail = formattedValue.details?.find((detail) => detail.id === flagDetail.id);
109
- const statusToUse = originalStatusFromFG ? (originalStatusFromFG === originalFlagDetail.value?.status ? originalFlagDetail.value?.status : originalStatusFromFG) : originalFlagDetail.value?.status;
132
+ let statusToUse;
133
+ if (flagsInstance.pathToFlagsFormGroup === originalPathToFlag) {
134
+ statusToUse = originalStatusFromFG ? (originalStatusFromFG === originalFlagDetail.value?.status ? originalFlagDetail.value?.status : originalStatusFromFG) : originalFlagDetail.value?.status;
135
+ }
136
+ else {
137
+ statusToUse = originalFlagDetail.value?.status;
138
+ }
110
139
  if (originalFlagDetail) {
111
140
  originalStatus = statusToUse;
112
141
  flagDetail.flagComment = originalFlagDetail.value?.flagComment;
@@ -179,12 +208,25 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
179
208
  }
180
209
  next() {
181
210
  this.onNext();
211
+ const cachedControl = this.cachedControls?.[this.selectedControlName];
212
+ if (cachedControl && this.getFlagID(cachedControl.value) === this.getFlagID(this.formGroup.value[this.selectedControlName])) {
213
+ this.reapplyCachedControls();
214
+ }
182
215
  if (this.errorMessages.length === 0) {
183
216
  super.next();
184
217
  }
185
218
  }
219
+ reapplyCachedControls() {
220
+ if (this.cachedControls) {
221
+ Object.keys(this.cachedControls).forEach((controlName) => {
222
+ if (!this.formGroup.contains(controlName)) {
223
+ this.formGroup.addControl(controlName, this.cachedControls[controlName]);
224
+ }
225
+ });
226
+ }
227
+ }
186
228
  static ɵfac = /*@__PURE__*/ (() => { let ɵManageCaseFlagsComponent_BaseFactory; return function ManageCaseFlagsComponent_Factory(t) { return (ɵManageCaseFlagsComponent_BaseFactory || (ɵManageCaseFlagsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ManageCaseFlagsComponent)))(t || ManageCaseFlagsComponent); }; })();
187
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 9, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--m"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
229
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 9, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--m"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "change", "id", "checked"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
188
230
  i0.ɵɵelementContainerStart(0, 0);
189
231
  i0.ɵɵelementStart(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
190
232
  i0.ɵɵtext(5);
@@ -192,7 +234,7 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
192
234
  i0.ɵɵelementEnd()();
193
235
  i0.ɵɵtemplate(7, ManageCaseFlagsComponent_div_7_Template, 6, 6, "div", 5);
194
236
  i0.ɵɵelementStart(8, "div", 6);
195
- i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 4, 10, "div", 7);
237
+ i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 4, 8, "div", 7);
196
238
  i0.ɵɵelementEnd()()();
197
239
  i0.ɵɵelementContainerEnd();
198
240
  } if (rf & 2) {
@@ -209,7 +251,7 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
209
251
  }
210
252
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManageCaseFlagsComponent, [{
211
253
  type: Component,
212
- args: [{ selector: 'ccd-manage-case-flags', encapsulation: ViewEncapsulation.None, template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"manage-case-flag-heading\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 id=\"manage-case-flag-heading\" class=\"govuk-fieldset__heading\">\n {{manageCaseFlagTitle | rpxTranslate}}\n </h1>\n </legend>\n <div id=\"manage-case-flag-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"manageCaseFlagSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{manageCaseFlagSelectedErrorMessage | rpxTranslate}}\n </div>\n <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n <div class=\"govuk-radios__item\" *ngFor=\"let flagDisplay of flagsDisplayData; index as i\">\n <input class=\"govuk-radios__input\" id=\"flag-selection-{{i}}\" [name]=\"selectedControlName\"\n type=\"radio\" [value]=\"flagDisplay\" [formControlName]=\"selectedControlName\"/>\n <label class=\"govuk-label govuk-radios__label\" for=\"flag-selection-{{i}}\" [innerHtml]=\"flagDisplay | manageCaseFlagsLabelDisplay\"></label>\n </div>\n </div>\n </fieldset>\n </div>\n</ng-container>", styles: [".flag-name-and-description{font-weight:700}\n"] }]
254
+ args: [{ selector: 'ccd-manage-case-flags', encapsulation: ViewEncapsulation.None, template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"manage-case-flag-heading\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 id=\"manage-case-flag-heading\" class=\"govuk-fieldset__heading\">\n {{manageCaseFlagTitle | rpxTranslate}}\n </h1>\n </legend>\n <div id=\"manage-case-flag-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"manageCaseFlagSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{manageCaseFlagSelectedErrorMessage | rpxTranslate}}\n </div>\n <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n <div class=\"govuk-radios__item\" *ngFor=\"let flagDisplay of flagsDisplayData; index as i\">\n <input class=\"govuk-radios__input\" id=\"flag-selection-{{i}}\"\n type=\"radio\"\n [checked]=\"isSelected(flagDisplay)\"\n (change)=\"onFlagSelectionChange(flagDisplay)\"/>\n <label class=\"govuk-label govuk-radios__label\" for=\"flag-selection-{{i}}\" [innerHtml]=\"flagDisplay | manageCaseFlagsLabelDisplay\"></label>\n </div>\n </div>\n </fieldset>\n </div>\n</ng-container>", styles: [".flag-name-and-description{font-weight:700}\n"] }]
213
255
  }], null, { formGroup: [{
214
256
  type: Input
215
257
  }], flagsData: [{
@@ -221,5 +263,5 @@ export class ManageCaseFlagsComponent extends AbstractJourneyComponent {
221
263
  }], caseFlagStateEmitter: [{
222
264
  type: Output
223
265
  }] }); })();
224
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ManageCaseFlagsComponent, { className: "ManageCaseFlagsComponent", filePath: "lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.ts", lineNumber: 15 }); })();
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25KLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0lDSXZELEFBRkYsOEJBQzZDLGNBQ1A7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTztJQUFDLFlBQ3pFOztJQUFBLGlCQUFNOzs7SUFEZ0MsZUFBMkI7SUFBM0Isb0RBQTJCO0lBQVEsZUFDekU7SUFEeUUsZ0dBQ3pFOzs7SUFFRSwrQkFBeUY7SUFHdkYsQUFGQSw0QkFD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QUF3QjtjQU5wQyxTQUFTOzJCQUNFLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSTtnQkFHckIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1csb0JBQW9CO2tCQUFwQyxNQUFNOztrRkFMSSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSwgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcyc7XG5pbXBvcnQgeyBDYXNlRmxhZ1N0YXRlLCBGbGFnRGV0YWlsLCBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoLCBGbGFncywgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLCBDYXNlRmxhZ0ZpZWxkU3RhdGUsIENhc2VGbGFnU3RhdHVzLCBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSwgU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbWFuYWdlLWNhc2UtZmxhZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYW5hZ2UtY2FzZS1mbGFncy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZUNhc2VGbGFnc0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nO1xuICBAT3V0cHV0KCkgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIG1hbmFnZUNhc2VGbGFnVGl0bGU6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIG1hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2U6IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgZmxhZ3NEaXNwbGF5RGF0YTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgZmxhZ3M6IEZsYWdzO1xuICBwdWJsaWMgbm9GbGFnc0Vycm9yID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZENvbnRyb2xOYW1lID0gJ3NlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uJztcbiAgcHJpdmF0ZSByZWFkb25seSBleGNsdWRlZEZsYWdTdGF0dXNlczogQ2FzZUZsYWdTdGF0dXNbXSA9IFtDYXNlRmxhZ1N0YXR1cy5JTkFDVElWRSwgQ2FzZUZsYWdTdGF0dXMuTk9UX0FQUFJPVkVEXTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1RpdGxlID0gdGhpcy5zZXRNYW5hZ2VDYXNlRmxhZ1RpdGxlKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpO1xuICAgIGxldCBvcmlnaW5hbFN0YXR1cztcbiAgICAvLyBpZiB0aGUgdXNlciBoYXMgcHJvZ3Jlc3NlZCB0byBDWUEgYW5kIHRoZW4gbmF2aWdhdGVkIGF3YXksIHRoZSBmbGFnIHRoZXkgc2VsZWN0ZWQgd2lsbCBiZSBzZXQgYXMgaW5hY3RpdmUsIHdlIG5lZWQgdG8gcmVzZXQgdGhpc1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5nZXQoJ3NlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uJykpIHtcbiAgICAgIGNvbnN0IGxvY2F0aW9uQ29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2VsZWN0ZWRNYW5hZ2VDYXNlTG9jYXRpb24nKTtcbiAgICAgIG9yaWdpbmFsU3RhdHVzID0gbG9jYXRpb25Db250cm9sLnZhbHVlPy5vcmlnaW5hbFN0YXR1cztcbiAgICB9XG4gICAgLy8gTWFwIGZsYWdzIGluc3RhbmNlcyB0byBvYmplY3RzIGZvciBkaXNwbGF5LCBmaWx0ZXJpbmcgb3V0IGFueSB3aGVyZSB0aGUgb3JpZ2luYWwgc3RhdHVzIGlzIGVpdGhlciBcIkluYWN0aXZlXCIgb3JcbiAgICAvLyBcIk5vdCBhcHByb3ZlZFwiXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5mbGFnc0RhdGEpIHtcbiAgICAgIHRoaXMuZmxhZ3NEaXNwbGF5RGF0YSA9IHRoaXMuZmxhZ3NEYXRhLnJlZHVjZSgoZGlzcGxheURhdGEsIGZsYWdzSW5zdGFuY2UpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscyAmJiBmbGFnc0luc3RhbmNlLmZsYWdzLmRldGFpbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGRpc3BsYXlEYXRhID0gW1xuICAgICAgICAgICAgLi4uZGlzcGxheURhdGEsXG4gICAgICAgICAgICAuLi5mbGFnc0luc3RhbmNlLmZsYWdzLmRldGFpbHMubWFwKChkZXRhaWwpID0+IHRoaXMubWFwRmxhZ0RldGFpbEZvckRpc3BsYXkoZGV0YWlsLCBmbGFnc0luc3RhbmNlLCBvcmlnaW5hbFN0YXR1cykpXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlzcGxheURhdGE7XG4gICAgICB9LCBbXSkuZmlsdGVyKChmbGFnRm9yRGlzcGxheSkgPT4gIXRoaXMuZXhjbHVkZWRGbGFnU3RhdHVzZXMuaW5jbHVkZXMoZmxhZ0ZvckRpc3BsYXkub3JpZ2luYWxTdGF0dXMgYXMgQ2FzZUZsYWdTdGF0dXMpKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYSBGb3JtQ29udHJvbCBmb3IgdGhlIHNlbGVjdGVkIGNhc2UgZmxhZyBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZmxhZ3MgaW5zdGFuY2UgcmVtYWluaW5nIGFmdGVyIG1hcHBpbmdcbiAgICBpZiAodGhpcy5mbGFnc0Rpc3BsYXlEYXRhICYmIHRoaXMuZmxhZ3NEaXNwbGF5RGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKG51bGwpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gZmxhZ3MgZGlzcGxheSBkYXRhIG1lYW5zIHRoZXJlIGFyZSBubyBmbGFncyB0byBzZWxlY3QgZnJvbS4gVGhlIHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBhIGZsYWcgdXBkYXRlLlxuICAgICAgLy8gKFdpbGwgbmVlZCB0byBiZSBleHRlbmRlZCB0byBjaGVjayBmb3IgY2FzZS1sZXZlbCBmbGFncyBpbiBmdXR1cmUpXG4gICAgICB0aGlzLm9uTm9GbGFnc0Vycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1hcEZsYWdEZXRhaWxGb3JEaXNwbGF5KGZsYWdEZXRhaWw6IEZsYWdEZXRhaWwsIGZsYWdzSW5zdGFuY2U6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGgsIG9yaWdpbmFsU3RhdHVzRnJvbUZHOiBzdHJpbmcpOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoIHtcbiAgICAvLyBSZXNldCB0aGUgZmxhZyBzdGF0dXMgd2l0aCB0aGUgb3JpZ2luYWwgcGVyc2lzdGVkIHN0YXR1cy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBuZ09uSW5pdCgpIG5lZWRzIHRvIGZpbHRlclxuICAgIC8vIG91dCBhbnkgXCJJbmFjdGl2ZVwiIG9yIFwiTm90IGFwcHJvdmVkXCIgZmxhZ3MgYmFzZWQgb24gdGhlaXIgc3RhdHVzICpiZWZvcmUqIG1vZGlmaWNhdGlvbi4gSWYgdGhlIHVzZXIgY2hhbmdlcyBhXG4gICAgLy8gZmxhZydzIHN0YXR1cyB0aGVuIGRlY2lkZXMgdG8gcmV0dXJuIHRvIHRoZSBzdGFydCBvZiB0aGUgZmxhZyB1cGRhdGUgam91cm5leSwgdGhlIGZsYWcncyBzdGF0dXMgd291bGQgbm9cbiAgICAvLyBsb25nZXIgcmVmbGVjdCBpdHMgYWN0dWFsICpwZXJzaXN0ZWQqIHN0YXR1c1xuICAgIC8vIEFsc28gcmVzZXQgY29tbWVudHMgYW5kIGRlc2NyaXB0aW9uIGZpZWxkcyAoYm90aCBFbmdsaXNoIGFuZCBXZWxzaCkgd2l0aCB0aGUgb3JpZ2luYWwgcGVyc2lzdGVkIGRhdGEsIHRvIGF2b2lkXG4gICAgLy8gdGhlIFVJIGNhY2hpbmcgYW55IGNoYW5nZXMgdGhhdCB0aGUgdXNlciBtaWdodCBub3Qgd2FudCBwZXJzaXN0ZWQsIGlmIHRoZXkgc3RhcnQgb3ZlciBhbmQgZG9uJ3QgaW50ZW5kIHRvIGFkZFxuICAgIC8vIHRyYW5zbGF0aW9ucyBzdWJzZXF1ZW50bHlcbiAgICBsZXQgb3JpZ2luYWxTdGF0dXM6IHN0cmluZztcbiAgICBsZXQgZm9ybWF0dGVkVmFsdWUgPSBmbGFnc0luc3RhbmNlLmNhc2VGaWVsZD8uZm9ybWF0dGVkX3ZhbHVlO1xuICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZnJvbSB0aGUgc2VsZWN0ZWQgZmxhZyBsb2NhdGlvbiB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgLy8gQ2FzZUZpZWxkIGZvcm1hdHRlZF92YWx1ZSBmcm9tIHdoaWNoIHRvIGdldCB0aGUgb3JpZ2luYWwgcGVyc2lzdGVkIGRhdGFcbiAgICBjb25zdCBwYXRoVG9WYWx1ZSA9IGZsYWdzSW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgLy8gUm9vdC1sZXZlbCBGbGFncyBDYXNlRmllbGRzIGRvbid0IGhhdmUgYSBkb3QtZGVsaW1pdGVkIHBhdGggLSBqdXN0IHRoZSBDYXNlRmllbGQgSUQgaXRzZWxmIC0gc28gZG9uJ3QgZHJpbGwgZG93blxuICAgIGlmIChwYXRoVG9WYWx1ZS5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgcGF0aFRvVmFsdWUuc2xpY2UocGF0aFRvVmFsdWUuaW5kZXhPZignLicpICsgMSkuc3BsaXQoJy4nKS5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSAmJiBGaWVsZHNVdGlscy5pc05vbkVtcHR5T2JqZWN0KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWVbcGFydF07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZm9ybWF0dGVkVmFsdWUgJiYgRmllbGRzVXRpbHMuaXNOb25FbXB0eU9iamVjdChmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsRmxhZ0RldGFpbCA9IGZvcm1hdHRlZFZhbHVlLmRldGFpbHM/LmZpbmQoKGRldGFpbCkgPT4gZGV0YWlsLmlkID09PSBmbGFnRGV0YWlsLmlkKTtcbiAgICAgIGNvbnN0IHN0YXR1c1RvVXNlID0gb3JpZ2luYWxTdGF0dXNGcm9tRkcgPyAob3JpZ2luYWxTdGF0dXNGcm9tRkcgPT09IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uc3RhdHVzID8gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5zdGF0dXMgOiBvcmlnaW5hbFN0YXR1c0Zyb21GRykgOiBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/LnN0YXR1cztcbiAgICAgIGlmIChvcmlnaW5hbEZsYWdEZXRhaWwpIHtcbiAgICAgICAgb3JpZ2luYWxTdGF0dXMgPSBzdGF0dXNUb1VzZTtcbiAgICAgICAgZmxhZ0RldGFpbC5mbGFnQ29tbWVudCA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uZmxhZ0NvbW1lbnQ7XG4gICAgICAgIGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnRfY3kgPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/LmZsYWdDb21tZW50X2N5O1xuICAgICAgICBmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb24gPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/Lm90aGVyRGVzY3JpcHRpb247XG4gICAgICAgIGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbl9jeSA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8ub3RoZXJEZXNjcmlwdGlvbl9jeTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGZsYWdEZXRhaWxEaXNwbGF5OiB7XG4gICAgICAgIHBhcnR5TmFtZTogZmxhZ3NJbnN0YW5jZS5mbGFncz8ucGFydHlOYW1lLFxuICAgICAgICBmbGFnRGV0YWlsLFxuICAgICAgICBmbGFnc0Nhc2VGaWVsZElkOiBmbGFnc0luc3RhbmNlLmNhc2VGaWVsZD8uaWQsXG4gICAgICAgIHZpc2liaWxpdHk6IGZsYWdzSW5zdGFuY2UuZmxhZ3M/LnZpc2liaWxpdHlcbiAgICAgIH0sXG4gICAgICBwYXRoVG9GbGFnc0Zvcm1Hcm91cDogZmxhZ3NJbnN0YW5jZS5wYXRoVG9GbGFnc0Zvcm1Hcm91cCxcbiAgICAgIGNhc2VGaWVsZDogZmxhZ3NJbnN0YW5jZS5jYXNlRmllbGQsXG4gICAgICByb2xlT25DYXNlOiBmbGFnc0luc3RhbmNlLmZsYWdzPy5yb2xlT25DYXNlLFxuICAgICAgb3JpZ2luYWxTdGF0dXNcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICAvLyBWYWxpZGF0ZSBmbGFnIHNlbGVjdGlvblxuICAgIHRoaXMudmFsaWRhdGVTZWxlY3Rpb24oKTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlLCBlcnJvciBtZXNzYWdlcywgYW5kIGZsYWcgc2VsZWN0aW9uIHRvIHRoZSBwYXJlbnRcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1MsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBzZWxlY3RlZEZsYWc6IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUpLnZhbHVlXG4gICAgICAgID8gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSkudmFsdWUgYXMgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aFxuICAgICAgICA6IG51bGxcbiAgICB9KTtcblxuICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNYW5hZ2VDYXNlRmxhZ1RpdGxlKGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyOiBzdHJpbmcpOiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSB7XG4gICAgc3dpdGNoIChkaXNwbGF5Q29udGV4dFBhcmFtZXRlcikge1xuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURTpcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfMl9QT0lOVF8xOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuTUFOQUdFX0NBU0VfRkxBR1M7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMOlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuTUFOQUdFX1NVUFBPUlQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuTk9ORTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMubWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZSkge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gdGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUwgP1xuICAgICAgICBTZWxlY3RGbGFnRXJyb3JNZXNzYWdlLk1BTkFHRV9TVVBQT1JUX0ZMQUdfTk9UX1NFTEVDVEVEIDogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5NQU5BR0VfQ0FTRV9GTEFHU19GTEFHX05PVF9TRUxFQ1RFRDtcbiAgICAgIHRoaXMubWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogZXJyb3JNZXNzYWdlLFxuICAgICAgICBmaWVsZElkOiAnY29uZGl0aW9uYWwtcmFkaW9zLWxpc3QnXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTm9GbGFnc0Vycm9yKCk6IHZvaWQge1xuICAgIC8vIFNldCBlcnJvciBmbGFnIG9uIGNvbXBvbmVudCB0byByZW1vdmUgdGhlIFwiTmV4dFwiIGJ1dHRvbiAodXNlciBjYW5ub3QgcHJvY2VlZCB3aXRoIGZsYWcgY3JlYXRpb24pXG4gICAgdGhpcy5ub0ZsYWdzRXJyb3IgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHsgdGl0bGU6ICcnLCBkZXNjcmlwdGlvbjogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5OT19GTEFHUywgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0JyB9KTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpIHtcbiAgICB0aGlzLm9uTmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDB9XCI+XG4gICAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwibWFuYWdlLWNhc2UtZmxhZy1oZWFkaW5nXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1tXCI+XG4gICAgICAgIDxoMSBpZD1cIm1hbmFnZS1jYXNlLWZsYWctaGVhZGluZ1wiIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2hlYWRpbmdcIj5cbiAgICAgICAgICB7e21hbmFnZUNhc2VGbGFnVGl0bGUgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2gxPlxuICAgICAgPC9sZWdlbmQ+XG4gICAgICA8ZGl2IGlkPVwibWFuYWdlLWNhc2UtZmxhZy1ub3Qtc2VsZWN0ZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICpuZ0lmPVwibWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3ttYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIiBpZD1cImNvbmRpdGlvbmFsLXJhZGlvcy1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgZmxhZ0Rpc3BsYXkgb2YgZmxhZ3NEaXNwbGF5RGF0YTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cImZsYWctc2VsZWN0aW9uLXt7aX19XCIgW25hbWVdPVwic2VsZWN0ZWRDb250cm9sTmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBbdmFsdWVdPVwiZmxhZ0Rpc3BsYXlcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInNlbGVjdGVkQ29udHJvbE5hbWVcIi8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cImZsYWctc2VsZWN0aW9uLXt7aX19XCIgW2lubmVySHRtbF09XCJmbGFnRGlzcGxheSB8IG1hbmFnZUNhc2VGbGFnc0xhYmVsRGlzcGxheVwiPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9maWVsZHNldD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=
266
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ManageCaseFlagsComponent, { className: "ManageCaseFlagsComponent", filePath: "lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.ts", lineNumber: 16 }); })();
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25KLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7SUNHM0IsQUFGRiw4QkFDNkMsY0FDUDtJQUFBLFlBQTJCOztJQUFBLGlCQUFPO0lBQUMsWUFDekU7O0lBQUEsaUJBQU07OztJQURnQyxlQUEyQjtJQUEzQixvREFBMkI7SUFBUSxlQUN6RTtJ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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlLCBKb3VybmV5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIEZsYWdEZXRhaWwsIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgsIEZsYWdzLCBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIsIENhc2VGbGFnRmllbGRTdGF0ZSwgQ2FzZUZsYWdTdGF0dXMsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLCBTZWxlY3RGbGFnRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS1maWVsZCc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbWFuYWdlLWNhc2UtZmxhZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYW5hZ2UtY2FzZS1mbGFncy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZUNhc2VGbGFnc0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nO1xuICBAT3V0cHV0KCkgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIG1hbmFnZUNhc2VGbGFnVGl0bGU6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIG1hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2U6IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgZmxhZ3NEaXNwbGF5RGF0YTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgZmxhZ3M6IEZsYWdzO1xuICBwdWJsaWMgbm9GbGFnc0Vycm9yID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZENvbnRyb2xOYW1lID0gJ3NlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uJztcbiAgcHJpdmF0ZSByZWFkb25seSBleGNsdWRlZEZsYWdTdGF0dXNlczogQ2FzZUZsYWdTdGF0dXNbXSA9IFtDYXNlRmxhZ1N0YXR1cy5JTkFDVElWRSwgQ2FzZUZsYWdTdGF0dXMuTk9UX0FQUFJPVkVEXTtcbiAgcHVibGljIGNhY2hlZENvbnRyb2xzO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZUNhc2VGbGFnVGl0bGUgPSB0aGlzLnNldE1hbmFnZUNhc2VGbGFnVGl0bGUodGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlcik7XG4gICAgbGV0IG9yaWdpbmFsU3RhdHVzO1xuICAgIGxldCBvcmlnaW5hbFBhdGhUb0ZsYWc7XG4gICAgLy8gaWYgdGhlIHVzZXIgaGFzIHByb2dyZXNzZWQgdG8gQ1lBIGFuZCB0aGVuIG5hdmlnYXRlZCBhd2F5LCB0aGUgZmxhZyB0aGV5IHNlbGVjdGVkIHdpbGwgYmUgc2V0IGFzIGluYWN0aXZlLCB3ZSBuZWVkIHRvIHJlc2V0IHRoaXNcbiAgICBjb25zdCBsb2NhdGlvbkNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKTtcbiAgICBpZiAobG9jYXRpb25Db250cm9sKSB7XG4gICAgICBvcmlnaW5hbFN0YXR1cyA9IGxvY2F0aW9uQ29udHJvbD8udmFsdWU/Lm9yaWdpbmFsU3RhdHVzO1xuICAgICAgb3JpZ2luYWxQYXRoVG9GbGFnID0gbG9jYXRpb25Db250cm9sPy52YWx1ZT8ucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgICB0aGlzLmNhY2hlZENvbnRyb2xzID0gY2xvbmVEZWVwKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKTtcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICBpZiAoY29udHJvbE5hbWUgIT09IHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSkge1xuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woY29udHJvbE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBNYXAgZmxhZ3MgaW5zdGFuY2VzIHRvIG9iamVjdHMgZm9yIGRpc3BsYXksIGZpbHRlcmluZyBvdXQgYW55IHdoZXJlIHRoZSBvcmlnaW5hbCBzdGF0dXMgaXMgZWl0aGVyIFwiSW5hY3RpdmVcIiBvclxuICAgIC8vIFwiTm90IGFwcHJvdmVkXCJcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmZsYWdzRGF0YSkge1xuICAgICAgdGhpcy5mbGFnc0Rpc3BsYXlEYXRhID0gdGhpcy5mbGFnc0RhdGEucmVkdWNlKChkaXNwbGF5RGF0YSwgZmxhZ3NJbnN0YW5jZSkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoZmxhZ3NJbnN0YW5jZS5mbGFncy5kZXRhaWxzICYmIGZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZGlzcGxheURhdGEgPSBbXG4gICAgICAgICAgICAuLi5kaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIC4uLmZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5tYXAoKGRldGFpbCkgPT4gdGhpcy5tYXBGbGFnRGV0YWlsRm9yRGlzcGxheShkZXRhaWwsIGZsYWdzSW5zdGFuY2UsIG9yaWdpbmFsU3RhdHVzLCBvcmlnaW5hbFBhdGhUb0ZsYWcpKVxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpc3BsYXlEYXRhO1xuICAgICAgfSwgW10pLmZpbHRlcigoZmxhZ0ZvckRpc3BsYXkpID0+ICF0aGlzLmV4Y2x1ZGVkRmxhZ1N0YXR1c2VzLmluY2x1ZGVzKGZsYWdGb3JEaXNwbGF5Lm9yaWdpbmFsU3RhdHVzIGFzIENhc2VGbGFnU3RhdHVzKSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGEgRm9ybUNvbnRyb2wgZm9yIHRoZSBzZWxlY3RlZCBjYXNlIGZsYWcgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGZsYWdzIGluc3RhbmNlIHJlbWFpbmluZyBhZnRlciBtYXBwaW5nXG4gICAgaWYgKHRoaXMuZmxhZ3NEaXNwbGF5RGF0YSAmJiB0aGlzLmZsYWdzRGlzcGxheURhdGEubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUsIG5ldyBGb3JtQ29udHJvbChudWxsKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGZsYWdzIGRpc3BsYXkgZGF0YSBtZWFucyB0aGVyZSBhcmUgbm8gZmxhZ3MgdG8gc2VsZWN0IGZyb20uIFRoZSB1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggYSBmbGFnIHVwZGF0ZS5cbiAgICAgIC8vIChXaWxsIG5lZWQgdG8gYmUgZXh0ZW5kZWQgdG8gY2hlY2sgZm9yIGNhc2UtbGV2ZWwgZmxhZ3MgaW4gZnV0dXJlKVxuICAgICAgdGhpcy5vbk5vRmxhZ3NFcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uRmxhZ1NlbGVjdGlvbkNoYW5nZShzZWxlY3RlZEZsYWc6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSkuc2V0VmFsdWUoc2VsZWN0ZWRGbGFnKTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQoZmxhZ0Rpc3BsYXk6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZEZsYWcgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKT8udmFsdWU7XG4gICAgcmV0dXJuIHNlbGVjdGVkRmxhZyAmJiB0aGlzLmdldEZsYWdJRChzZWxlY3RlZEZsYWcpID09PSB0aGlzLmdldEZsYWdJRChmbGFnRGlzcGxheSk7XG4gIH1cblxuICBnZXRGbGFnSUQoZmxhZzogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCl7XG4gICAgcmV0dXJuIGZsYWc/LmZsYWdEZXRhaWxEaXNwbGF5Py5mbGFnRGV0YWlsPy5pZCB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBtYXBGbGFnRGV0YWlsRm9yRGlzcGxheShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsLCBmbGFnc0luc3RhbmNlOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoLCBvcmlnaW5hbFN0YXR1c0Zyb21GRzogc3RyaW5nLCBvcmlnaW5hbFBhdGhUb0ZsYWc6IHN0cmluZyk6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgge1xuICAgIC8vIFJlc2V0IHRoZSBmbGFnIHN0YXR1cyB3aXRoIHRoZSBvcmlnaW5hbCBwZXJzaXN0ZWQgc3RhdHVzLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIG5nT25Jbml0KCkgbmVlZHMgdG8gZmlsdGVyXG4gICAgLy8gb3V0IGFueSBcIkluYWN0aXZlXCIgb3IgXCJOb3QgYXBwcm92ZWRcIiBmbGFncyBiYXNlZCBvbiB0aGVpciBzdGF0dXMgKmJlZm9yZSogbW9kaWZpY2F0aW9uLiBJZiB0aGUgdXNlciBjaGFuZ2VzIGFcbiAgICAvLyBmbGFnJ3Mgc3RhdHVzIHRoZW4gZGVjaWRlcyB0byByZXR1cm4gdG8gdGhlIHN0YXJ0IG9mIHRoZSBmbGFnIHVwZGF0ZSBqb3VybmV5LCB0aGUgZmxhZydzIHN0YXR1cyB3b3VsZCBub1xuICAgIC8vIGxvbmdlciByZWZsZWN0IGl0cyBhY3R1YWwgKnBlcnNpc3RlZCogc3RhdHVzXG4gICAgLy8gQWxzbyByZXNldCBjb21tZW50cyBhbmQgZGVzY3JpcHRpb24gZmllbGRzIChib3RoIEVuZ2xpc2ggYW5kIFdlbHNoKSB3aXRoIHRoZSBvcmlnaW5hbCBwZXJzaXN0ZWQgZGF0YSwgdG8gYXZvaWRcbiAgICAvLyB0aGUgVUkgY2FjaGluZyBhbnkgY2hhbmdlcyB0aGF0IHRoZSB1c2VyIG1pZ2h0IG5vdCB3YW50IHBlcnNpc3RlZCwgaWYgdGhleSBzdGFydCBvdmVyIGFuZCBkb24ndCBpbnRlbmQgdG8gYWRkXG4gICAgLy8gdHJhbnNsYXRpb25zIHN1YnNlcXVlbnRseVxuICAgIGxldCBvcmlnaW5hbFN0YXR1czogc3RyaW5nO1xuICAgIGxldCBmb3JtYXR0ZWRWYWx1ZSA9IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkPy5mb3JtYXR0ZWRfdmFsdWU7XG4gICAgLy8gVXNlIHRoZSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBwcm9wZXJ0eSBmcm9tIHRoZSBzZWxlY3RlZCBmbGFnIGxvY2F0aW9uIHRvIGRyaWxsIGRvd24gdG8gdGhlIGNvcnJlY3QgcGFydCBvZiB0aGVcbiAgICAvLyBDYXNlRmllbGQgZm9ybWF0dGVkX3ZhbHVlIGZyb20gd2hpY2ggdG8gZ2V0IHRoZSBvcmlnaW5hbCBwZXJzaXN0ZWQgZGF0YVxuICAgIGNvbnN0IHBhdGhUb1ZhbHVlID0gZmxhZ3NJbnN0YW5jZS5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgaWYgKHBhdGhUb1ZhbHVlLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICBwYXRoVG9WYWx1ZS5zbGljZShwYXRoVG9WYWx1ZS5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICAgICAgaWYgKGZvcm1hdHRlZFZhbHVlICYmIEZpZWxkc1V0aWxzLmlzTm9uRW1wdHlPYmplY3QoZm9ybWF0dGVkVmFsdWUpKSB7XG4gICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZVtwYXJ0XTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSAmJiBGaWVsZHNVdGlscy5pc05vbkVtcHR5T2JqZWN0KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgY29uc3Qgb3JpZ2luYWxGbGFnRGV0YWlsID0gZm9ybWF0dGVkVmFsdWUuZGV0YWlscz8uZmluZCgoZGV0YWlsKSA9PiBkZXRhaWwuaWQgPT09IGZsYWdEZXRhaWwuaWQpO1xuICAgICAgbGV0IHN0YXR1c1RvVXNlO1xuICAgICAgaWYgKGZsYWdzSW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IG9yaWdpbmFsUGF0aFRvRmxhZyl7XG4gICAgICAgIHN0YXR1c1RvVXNlID0gb3JpZ2luYWxTdGF0dXNGcm9tRkcgPyAob3JpZ2luYWxTdGF0dXNGcm9tRkcgPT09IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uc3RhdHVzID8gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5zdGF0dXMgOiBvcmlnaW5hbFN0YXR1c0Zyb21GRykgOiBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/LnN0YXR1cztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXR1c1RvVXNlID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5zdGF0dXM7XG4gICAgICB9XG4gICAgICBpZiAob3JpZ2luYWxGbGFnRGV0YWlsKSB7XG4gICAgICAgIG9yaWdpbmFsU3RhdHVzID0gc3RhdHVzVG9Vc2U7XG4gICAgICAgIGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQgPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/LmZsYWdDb21tZW50O1xuICAgICAgICBmbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5ID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5mbGFnQ29tbWVudF9jeTtcbiAgICAgICAgZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5vdGhlckRlc2NyaXB0aW9uO1xuICAgICAgICBmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb25fY3kgPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/Lm90aGVyRGVzY3JpcHRpb25fY3k7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBmbGFnRGV0YWlsRGlzcGxheToge1xuICAgICAgICBwYXJ0eU5hbWU6IGZsYWdzSW5zdGFuY2UuZmxhZ3M/LnBhcnR5TmFtZSxcbiAgICAgICAgZmxhZ0RldGFpbCxcbiAgICAgICAgZmxhZ3NDYXNlRmllbGRJZDogZmxhZ3NJbnN0YW5jZS5jYXNlRmllbGQ/LmlkLFxuICAgICAgICB2aXNpYmlsaXR5OiBmbGFnc0luc3RhbmNlLmZsYWdzPy52aXNpYmlsaXR5XG4gICAgICB9LFxuICAgICAgcGF0aFRvRmxhZ3NGb3JtR3JvdXA6IGZsYWdzSW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAsXG4gICAgICBjYXNlRmllbGQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkLFxuICAgICAgcm9sZU9uQ2FzZTogZmxhZ3NJbnN0YW5jZS5mbGFncz8ucm9sZU9uQ2FzZSxcbiAgICAgIG9yaWdpbmFsU3RhdHVzXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBzZWxlY3Rpb25cbiAgICB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uKCk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSwgZXJyb3IgbWVzc2FnZXMsIGFuZCBmbGFnIHNlbGVjdGlvbiB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgc2VsZWN0ZWRGbGFnOiB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZVxuICAgICAgICA/IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUpLnZhbHVlIGFzIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGhcbiAgICAgICAgOiBudWxsXG4gICAgfSk7XG5cbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWFuYWdlQ2FzZUZsYWdUaXRsZShkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nKTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUge1xuICAgIHN3aXRjaCAoZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpIHtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLk1BTkFHRV9DQVNFX0ZMQUdTO1xuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV9FWFRFUk5BTDpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLk1BTkFHRV9TVVBQT1JUO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLk5PTkU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSkudmFsdWUpIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMID9cbiAgICAgICAgU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5NQU5BR0VfU1VQUE9SVF9GTEFHX05PVF9TRUxFQ1RFRCA6IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuTUFOQUdFX0NBU0VfRkxBR1NfRkxBR19OT1RfU0VMRUNURUQ7XG4gICAgICB0aGlzLm1hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGVycm9yTWVzc2FnZSxcbiAgICAgICAgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbk5vRmxhZ3NFcnJvcigpOiB2b2lkIHtcbiAgICAvLyBTZXQgZXJyb3IgZmxhZyBvbiBjb21wb25lbnQgdG8gcmVtb3ZlIHRoZSBcIk5leHRcIiBidXR0b24gKHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBmbGFnIGNyZWF0aW9uKVxuICAgIHRoaXMubm9GbGFnc0Vycm9yID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuTk9fRkxBR1MsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCcgfSk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUyxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlc1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5leHQoKSB7XG4gICAgdGhpcy5vbk5leHQoKTtcbiAgICBjb25zdCBjYWNoZWRDb250cm9sID0gdGhpcy5jYWNoZWRDb250cm9scz8uW3RoaXMuc2VsZWN0ZWRDb250cm9sTmFtZV07XG4gICAgaWYgKGNhY2hlZENvbnRyb2wgJiYgdGhpcy5nZXRGbGFnSUQoY2FjaGVkQ29udHJvbC52YWx1ZSkgPT09IHRoaXMuZ2V0RmxhZ0lEKHRoaXMuZm9ybUdyb3VwLnZhbHVlW3RoaXMuc2VsZWN0ZWRDb250cm9sTmFtZV0pKSB7XG4gICAgICB0aGlzLnJlYXBwbHlDYWNoZWRDb250cm9scygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBzdXBlci5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlYXBwbHlDYWNoZWRDb250cm9scygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYWNoZWRDb250cm9scykge1xuICAgICAgT2JqZWN0LmtleXModGhpcy5jYWNoZWRDb250cm9scykuZm9yRWFjaCgoY29udHJvbE5hbWUpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5jb250YWlucyhjb250cm9sTmFtZSkpIHtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKGNvbnRyb2xOYW1lLCB0aGlzLmNhY2hlZENvbnRyb2xzW2NvbnRyb2xOYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJtYW5hZ2UtY2FzZS1mbGFnLWhlYWRpbmdcIj5cbiAgICAgIDxsZWdlbmQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9fbGVnZW5kIGdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLW1cIj5cbiAgICAgICAgPGgxIGlkPVwibWFuYWdlLWNhc2UtZmxhZy1oZWFkaW5nXCIgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9faGVhZGluZ1wiPlxuICAgICAgICAgIHt7bWFuYWdlQ2FzZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJtYW5hZ2UtY2FzZS1mbGFnLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJtYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e21hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWxcIiBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiIGlkPVwiY29uZGl0aW9uYWwtcmFkaW9zLWxpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiICpuZ0Zvcj1cImxldCBmbGFnRGlzcGxheSBvZiBmbGFnc0Rpc3BsYXlEYXRhOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwiZmxhZy1zZWxlY3Rpb24te3tpfX1cIlxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQoZmxhZ0Rpc3BsYXkpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25GbGFnU2VsZWN0aW9uQ2hhbmdlKGZsYWdEaXNwbGF5KVwiLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsXCIgZm9yPVwiZmxhZy1zZWxlY3Rpb24te3tpfX1cIiBbaW5uZXJIdG1sXT1cImZsYWdEaXNwbGF5IHwgbWFuYWdlQ2FzZUZsYWdzTGFiZWxEaXNwbGF5XCI+PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -87,7 +87,11 @@ export class SelectFlagLocationComponent extends AbstractJourneyComponent {
87
87
  selectedLocationControlName = 'selectedLocation';
88
88
  caseLevelFlagLabel = 'Case level';
89
89
  caseLevelCaseFlagsFieldId = 'caseFlags';
90
+ cachedLocation;
90
91
  ngOnInit() {
92
+ if (this.formGroup.get(this.selectedLocationControlName)) {
93
+ this.cachedLocation = this.formGroup.get(this.selectedLocationControlName).value?.pathToFlagsFormGroup;
94
+ }
91
95
  this.flagLocationTitle = this.isDisplayContextParameterExternal ?
92
96
  CaseFlagWizardStepTitle.SELECT_FLAG_LOCATION_EXTERNAL : CaseFlagWizardStepTitle.SELECT_FLAG_LOCATION;
93
97
  // Filter out any flags instances that don't have a party name, unless the instance is for case-level flags (this
@@ -122,6 +126,14 @@ export class SelectFlagLocationComponent extends AbstractJourneyComponent {
122
126
  onNext() {
123
127
  // Validate flag location selection
124
128
  this.validateSelection();
129
+ //check if the user has changed their location selection
130
+ if (this.cachedLocation !== this.formGroup.get(this.selectedLocationControlName).value?.pathToFlagsFormGroup) {
131
+ Object.keys(this.formGroup.controls).forEach((controlName) => {
132
+ if (controlName !== this.selectedLocationControlName) {
133
+ this.formGroup.removeControl(controlName);
134
+ }
135
+ });
136
+ }
125
137
  // Return case flag field state, error messages, and selected FlagsWithFormGroupPath instance (i.e. flag location) to
126
138
  // the parent
127
139
  this.caseFlagStateEmitter.emit({
@@ -192,4 +204,4 @@ export class SelectFlagLocationComponent extends AbstractJourneyComponent {
192
204
  type: Output
193
205
  }] }); })();
194
206
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectFlagLocationComponent, { className: "SelectFlagLocationComponent", filePath: "lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.ts", lineNumber: 12 }); })();
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctbG9jYXRpb24vc2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctbG9jYXRpb24vc2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztJQ0tsRixBQUZGLDhCQUM4QyxjQUNSO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87SUFBQyxZQUN6RTs7SUFBQSxpQkFBTTs7O0lBRGdDLGVBQTJCO0lBQTNCLG9EQUEyQjtJQUFRLGVBQ3pFO0lBRHlFLGlHQUN6RTs7O0lBUVEsNkJBQXFEO0lBQ25ELFlBQ0Y7Ozs7O0lBREUsY0FDRjtJQURFLDBGQUNGOzs7SUFKRiw2QkFBb0Q7SUFDbEQsWUFDQTtJQUFBLG9IQUFxRDs7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RSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7UUFDdkgsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzt5UUEzRlUsMkJBQTJCLFNBQTNCLDJCQUEyQjs2REFBM0IsMkJBQTJCO1lDWHhDLGdDQUFzQztZQUk5QixBQURGLEFBREYsQUFERiw4QkFBeUYsa0JBQ2IsZ0JBQ1AsWUFDQTtZQUM3RCxZQUNGOztZQUNGLEFBREUsaUJBQUssRUFDRTtZQUNULDRFQUM4QztZQUc5Qyw4QkFBNEc7WUFDMUcsNEVBQTRGO1lBaUJsRyxBQURFLEFBREUsaUJBQU0sRUFDRyxFQUNQOzs7WUE5Qk0seUNBQXVCO1lBQ0wsY0FBMEQ7WUFBMUQsa0ZBQTBEO1lBSWhGLGVBQ0Y7WUFERSw0RUFDRjtZQUdDLGVBQXlDO1lBQXpDLDhEQUF5QztZQUlnQixlQUFzQjtZQUF0QiwrQ0FBc0I7OztpRkRGM0UsMkJBQTJCO2NBSnZDLFNBQVM7MkJBQ0UsMEJBQTBCO2dCQUlwQixTQUFTO2tCQUF4QixLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUNVLGlDQUFpQztrQkFBaEQsS0FBSztZQUVXLG9CQUFvQjtrQkFBcEMsTUFBTTs7a0ZBTEksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSwgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ1N0YXRlLCBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRmllbGRTdGF0ZSwgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUsIFNlbGVjdEZsYWdMb2NhdGlvbkVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQvYWJzdHJhY3Qtam91cm5leS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtc2VsZWN0LWZsYWctbG9jYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdEZsYWdMb2NhdGlvbkNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBASW5wdXQoKSBwdWJsaWMgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjYXNlRmxhZ1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPigpO1xuXG4gIHB1YmxpYyBmbGFnTG9jYXRpb25UaXRsZTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgZmxhZ0xvY2F0aW9uTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2U6IFNlbGVjdEZsYWdMb2NhdGlvbkVycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmaWx0ZXJlZEZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgY2FzZUZsYWdzQ29uZmlnRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSA9ICdzZWxlY3RlZExvY2F0aW9uJztcbiAgcHVibGljIHJlYWRvbmx5IGNhc2VMZXZlbEZsYWdMYWJlbCA9ICdDYXNlIGxldmVsJztcbiAgcHJpdmF0ZSByZWFkb25seSBjYXNlTGV2ZWxDYXNlRmxhZ3NGaWVsZElkID0gJ2Nhc2VGbGFncyc7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmxhZ0xvY2F0aW9uVGl0bGUgPSB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA/XG4gICAgICBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5TRUxFQ1RfRkxBR19MT0NBVElPTl9FWFRFUk5BTCA6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlNFTEVDVF9GTEFHX0xPQ0FUSU9OO1xuXG4gICAgLy8gRmlsdGVyIG91dCBhbnkgZmxhZ3MgaW5zdGFuY2VzIHRoYXQgZG9uJ3QgaGF2ZSBhIHBhcnR5IG5hbWUsIHVubGVzcyB0aGUgaW5zdGFuY2UgaXMgZm9yIGNhc2UtbGV2ZWwgZmxhZ3MgKHRoaXNcbiAgICAvLyBpcyBleHBlY3RlZCBub3QgdG8gaGF2ZSBhIHBhcnR5IG5hbWUpXG4gICAgLy8gQWxzbyBkZS1kdXBsaWNhdGUgZmxhZ3MgaW5zdGFuY2VzIHdoZXJlIHRoZSBncm91cElkLCBpZiBwcmVzZW50LCBpcyB0aGUgc2FtZVxuICAgIGlmICh0aGlzLmZsYWdzRGF0YSkge1xuICAgICAgdGhpcy5maWx0ZXJlZEZsYWdzRGF0YSA9XG4gICAgICAgIHRoaXMuZmxhZ3NEYXRhXG4gICAgICAgIC5maWx0ZXIoKGYpID0+IGYuZmxhZ3MucGFydHlOYW1lICE9PSBudWxsIHx8IGYucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZClcbiAgICAgICAgLmZpbHRlcigodmFsdWUsIGluZGV4LCBwYXJ0eUxldmVsRmxhZ3MpID0+ICF2YWx1ZS5mbGFncy5ncm91cElkXG4gICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgIDogcGFydHlMZXZlbEZsYWdzLmZpbmRJbmRleCgocCkgPT4gcC5mbGFncy5ncm91cElkID09PSB2YWx1ZS5mbGFncy5ncm91cElkKSA9PT0gaW5kZXgpO1xuICAgIH1cbiAgICAvLyBBZGQgYSBGb3JtQ29udHJvbCBmb3IgdGhlIHNlbGVjdGVkIGZsYWcgbG9jYXRpb24gaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGZsYWdzIGluc3RhbmNlIHJlbWFpbmluZyBhZnRlciBmaWx0ZXJpbmdcbiAgICBpZiAodGhpcy5maWx0ZXJlZEZsYWdzRGF0YSAmJiB0aGlzLmZpbHRlcmVkRmxhZ3NEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lKTtcblxuICAgICAgaWYgKCFmb3JtQ29udHJvbCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuc2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2wobnVsbCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTmVlZHMgdG8gYmUgc2V0VmFsdWUgYXMgdGhleSBoYXZlIGRpZmZlcmVudCBvYmplY3QgcmVmZXJlbmNlcyAtLSB3ZSB1c2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIGtleVxuICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRmxhZ3NEYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnBhdGhUb0ZsYWdzRm9ybUdyb3VwID09PSBmb3JtQ29udHJvbC52YWx1ZT8ucGF0aFRvRmxhZ3NGb3JtR3JvdXApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGZpbHRlcmVkIGZsYWdzIGluc3RhbmNlcyBtZWFuIHRoZXJlIGFyZSBubyBwYXJ0aWVzIHRvIHNlbGVjdCBmcm9tLiBUaGUgY2FzZSBoYXMgbm90IGJlZW4gY29uZmlndXJlZCBwcm9wZXJseVxuICAgICAgLy8gZm9yIGNhc2UgZmxhZ3MgYW5kIHRoZSB1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggZmxhZyBjcmVhdGlvbi4gKFdpbGwgbmVlZCB0byBiZSBleHRlbmRlZCB0byBjaGVjayBmb3IgY2FzZS1sZXZlbFxuICAgICAgLy8gZmxhZ3MgaW4gZnV0dXJlKVxuICAgICAgdGhpcy5vbkNhc2VGbGFnc0NvbmZpZ0Vycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICAvLyBWYWxpZGF0ZSBmbGFnIGxvY2F0aW9uIHNlbGVjdGlvblxuICAgIHRoaXMudmFsaWRhdGVTZWxlY3Rpb24oKTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlLCBlcnJvciBtZXNzYWdlcywgYW5kIHNlbGVjdGVkIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggaW5zdGFuY2UgKGkuZS4gZmxhZyBsb2NhdGlvbikgdG9cbiAgICAvLyB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xPQ0FUSU9OLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdMb2NhdGlvbk5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSkudmFsdWUpIHtcbiAgICAgIHRoaXMuZmxhZ0xvY2F0aW9uTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBTZWxlY3RGbGFnTG9jYXRpb25FcnJvck1lc3NhZ2UuRkxBR19MT0NBVElPTl9OT1RfU0VMRUNURUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdMb2NhdGlvbkVycm9yTWVzc2FnZS5GTEFHX0xPQ0FUSU9OX05PVF9TRUxFQ1RFRCxcbiAgICAgICAgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkNhc2VGbGFnc0NvbmZpZ0Vycm9yKCk6IHZvaWQge1xuICAgIC8vIFNldCBlcnJvciBmbGFnIG9uIGNvbXBvbmVudCB0byByZW1vdmUgdGhlIFwiTmV4dFwiIGJ1dHRvbiAodXNlciBjYW5ub3QgcHJvY2VlZCB3aXRoIGZsYWcgY3JlYXRpb24pXG4gICAgdGhpcy5jYXNlRmxhZ3NDb25maWdFcnJvciA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goXG4gICAgICB7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdMb2NhdGlvbkVycm9yTWVzc2FnZS5GTEFHU19OT1RfQ09ORklHVVJFRCwgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0JyB9KTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHsgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSwgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzIH0pO1xuICB9XG5cbiAgcHVibGljIG5leHQoKSB7XG4gICAgdGhpcy5vbk5leHQoKTtcblxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBzdXBlci5uZXh0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cImZsYWctbG9jYXRpb24taGVhZGluZ1wiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbVwiPlxuICAgICAgICA8aDEgaWQ9XCJmbGFnLWxvY2F0aW9uLWhlYWRpbmdcIiBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19oZWFkaW5nXCI+XG4gICAgICAgICAge3tmbGFnTG9jYXRpb25UaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLWxvY2F0aW9uLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJmbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tmbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbFwiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgaWQ9XCJjb25kaXRpb25hbC1yYWRpb3MtbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCIgKm5nRm9yPVwibGV0IGZsYWdzSW5zdGFuY2Ugb2YgZmlsdGVyZWRGbGFnc0RhdGE7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJmbGFnLWxvY2F0aW9uLXt7aX19XCIgW25hbWVdPVwic2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJmbGFnc0luc3RhbmNlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJzZWxlY3RlZExvY2F0aW9uQ29udHJvbE5hbWVcIi8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cImZsYWctbG9jYXRpb24te3tpfX1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmbGFnc0luc3RhbmNlLmZsYWdzLnBhcnR5TmFtZVwiPlxuICAgICAgICAgICAgICB7e2ZsYWdzSW5zdGFuY2UuZmxhZ3MucGFydHlOYW1lfX1cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsYWdzSW5zdGFuY2UuZmxhZ3Mucm9sZU9uQ2FzZVwiPlxuICAgICAgICAgICAgICAgICh7e2ZsYWdzSW5zdGFuY2UuZmxhZ3Mucm9sZU9uQ2FzZSB8IHJweFRyYW5zbGF0ZX19KVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmbGFnc0luc3RhbmNlLmZsYWdzLnBhcnR5TmFtZVwiPlxuICAgICAgICAgICAgICB7e2Nhc2VMZXZlbEZsYWdMYWJlbCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctbG9jYXRpb24vc2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctbG9jYXRpb24vc2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztJQ0tsRixBQUZGLDhCQUM4QyxjQUNSO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87SUFBQyxZQUN6RTs7SUFBQSxpQkFBTTs7O0lBRGdDLGVBQTJCO0lBQTNCLG9EQUEyQjtJQUFRLGVBQ3pFO0lBRHlFLGlHQUN6RTs7O0lBUVEsNkJBQXFEO0lBQ25ELFlBQ0Y7Ozs7O0lBREUsY0FDRjtJQURFLDBGQUNGOzs7SUFKRiw2QkFBb0Q7SUFDbEQsWUFDQTtJQUFBLG9IQUFxRDs7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MkI7NkRBQTNCLDJCQUEyQjtZQ1h4QyxnQ0FBc0M7WUFJOUIsQUFERixBQURGLEFBREYsOEJBQXlGLGtCQUNiLGdCQUNQLFlBQ0E7WUFDN0QsWUFDRjs7WUFDRixBQURFLGlCQUFLLEVBQ0U7WUFDVCw0RUFDOEM7WUFHOUMsOEJBQTRHO1lBQzFHLDRFQUE0RjtZQWlCbEcsQUFERSxBQURFLGlCQUFNLEVBQ0csRUFDUDs7O1lBOUJNLHlDQUF1QjtZQUNMLGNBQTBEO1lBQTFELGtGQUEwRDtZQUloRixlQUNGO1lBREUsNEVBQ0Y7WUFHQyxlQUF5QztZQUF6Qyw4REFBeUM7WUFJZ0IsZUFBc0I7WUFBdEIsK0NBQXNCOzs7aUZERjNFLDJCQUEyQjtjQUp2QyxTQUFTOzJCQUNFLDBCQUEwQjtnQkFJcEIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxpQ0FBaUM7a0JBQWhELEtBQUs7WUFFVyxvQkFBb0I7a0JBQXBDLE1BQU07O2tGQUxJLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ0ZpZWxkU3RhdGUsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLCBTZWxlY3RGbGFnTG9jYXRpb25FcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWpvdXJuZXkuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlbGVjdC1mbGFnLWxvY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1mbGFnLWxvY2F0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RGbGFnTG9jYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEpvdXJuZXkge1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBmbGFnc0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgQElucHV0KCkgcHVibGljIGlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgZmxhZ0xvY2F0aW9uVGl0bGU6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIGZsYWdMb2NhdGlvbk5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlOiBTZWxlY3RGbGFnTG9jYXRpb25FcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgZmlsdGVyZWRGbGFnc0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIGNhc2VGbGFnc0NvbmZpZ0Vycm9yID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZExvY2F0aW9uQ29udHJvbE5hbWUgPSAnc2VsZWN0ZWRMb2NhdGlvbic7XG4gIHB1YmxpYyByZWFkb25seSBjYXNlTGV2ZWxGbGFnTGFiZWwgPSAnQ2FzZSBsZXZlbCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuICBwdWJsaWMgY2FjaGVkTG9jYXRpb246IHN0cmluZztcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSkpe1xuICAgICAgdGhpcy5jYWNoZWRMb2NhdGlvbiA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSkudmFsdWU/LnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgIH1cbiAgICB0aGlzLmZsYWdMb2NhdGlvblRpdGxlID0gdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwgP1xuICAgICAgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuU0VMRUNUX0ZMQUdfTE9DQVRJT05fRVhURVJOQUwgOiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5TRUxFQ1RfRkxBR19MT0NBVElPTjtcblxuICAgIC8vIEZpbHRlciBvdXQgYW55IGZsYWdzIGluc3RhbmNlcyB0aGF0IGRvbid0IGhhdmUgYSBwYXJ0eSBuYW1lLCB1bmxlc3MgdGhlIGluc3RhbmNlIGlzIGZvciBjYXNlLWxldmVsIGZsYWdzICh0aGlzXG4gICAgLy8gaXMgZXhwZWN0ZWQgbm90IHRvIGhhdmUgYSBwYXJ0eSBuYW1lKVxuICAgIC8vIEFsc28gZGUtZHVwbGljYXRlIGZsYWdzIGluc3RhbmNlcyB3aGVyZSB0aGUgZ3JvdXBJZCwgaWYgcHJlc2VudCwgaXMgdGhlIHNhbWVcbiAgICBpZiAodGhpcy5mbGFnc0RhdGEpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRGbGFnc0RhdGEgPVxuICAgICAgICB0aGlzLmZsYWdzRGF0YVxuICAgICAgICAuZmlsdGVyKChmKSA9PiBmLmZsYWdzLnBhcnR5TmFtZSAhPT0gbnVsbCB8fCBmLnBhdGhUb0ZsYWdzRm9ybUdyb3VwID09PSB0aGlzLmNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQpXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlLCBpbmRleCwgcGFydHlMZXZlbEZsYWdzKSA9PiAhdmFsdWUuZmxhZ3MuZ3JvdXBJZFxuICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICA6IHBhcnR5TGV2ZWxGbGFncy5maW5kSW5kZXgoKHApID0+IHAuZmxhZ3MuZ3JvdXBJZCA9PT0gdmFsdWUuZmxhZ3MuZ3JvdXBJZCkgPT09IGluZGV4KTtcbiAgICB9XG4gICAgLy8gQWRkIGEgRm9ybUNvbnRyb2wgZm9yIHRoZSBzZWxlY3RlZCBmbGFnIGxvY2F0aW9uIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBmbGFncyBpbnN0YW5jZSByZW1haW5pbmcgYWZ0ZXIgZmlsdGVyaW5nXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRGbGFnc0RhdGEgJiYgdGhpcy5maWx0ZXJlZEZsYWdzRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSk7XG5cbiAgICAgIGlmICghZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKG51bGwpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5lZWRzIHRvIGJlIHNldFZhbHVlIGFzIHRoZXkgaGF2ZSBkaWZmZXJlbnQgb2JqZWN0IHJlZmVyZW5jZXMgLS0gd2UgdXNlIHRoZSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBrZXlcbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZEZsYWdzRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5wYXRoVG9GbGFnc0Zvcm1Hcm91cCA9PT0gZm9ybUNvbnRyb2wudmFsdWU/LnBhdGhUb0ZsYWdzRm9ybUdyb3VwKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBmaWx0ZXJlZCBmbGFncyBpbnN0YW5jZXMgbWVhbiB0aGVyZSBhcmUgbm8gcGFydGllcyB0byBzZWxlY3QgZnJvbS4gVGhlIGNhc2UgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgcHJvcGVybHlcbiAgICAgIC8vIGZvciBjYXNlIGZsYWdzIGFuZCB0aGUgdXNlciBjYW5ub3QgcHJvY2VlZCB3aXRoIGZsYWcgY3JlYXRpb24uIChXaWxsIG5lZWQgdG8gYmUgZXh0ZW5kZWQgdG8gY2hlY2sgZm9yIGNhc2UtbGV2ZWxcbiAgICAgIC8vIGZsYWdzIGluIGZ1dHVyZSlcbiAgICAgIHRoaXMub25DYXNlRmxhZ3NDb25maWdFcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBsb2NhdGlvbiBzZWxlY3Rpb25cbiAgICB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uKCk7XG4gICAgLy9jaGVjayBpZiB0aGUgdXNlciBoYXMgY2hhbmdlZCB0aGVpciBsb2NhdGlvbiBzZWxlY3Rpb25cbiAgICBpZiAodGhpcy5jYWNoZWRMb2NhdGlvbiAhPT0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lKS52YWx1ZT8ucGF0aFRvRmxhZ3NGb3JtR3JvdXApIHtcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICBpZiAoY29udHJvbE5hbWUgIT09IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbChjb250cm9sTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlLCBlcnJvciBtZXNzYWdlcywgYW5kIHNlbGVjdGVkIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggaW5zdGFuY2UgKGkuZS4gZmxhZyBsb2NhdGlvbikgdG9cbiAgICAvLyB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xPQ0FUSU9OLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdMb2NhdGlvbk5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSkudmFsdWUpIHtcbiAgICAgIHRoaXMuZmxhZ0xvY2F0aW9uTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBTZWxlY3RGbGFnTG9jYXRpb25FcnJvck1lc3NhZ2UuRkxBR19MT0NBVElPTl9OT1RfU0VMRUNURUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdMb2NhdGlvbkVycm9yTWVzc2FnZS5GTEFHX0xPQ0FUSU9OX05PVF9TRUxFQ1RFRCxcbiAgICAgICAgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkNhc2VGbGFnc0NvbmZpZ0Vycm9yKCk6IHZvaWQge1xuICAgIC8vIFNldCBlcnJvciBmbGFnIG9uIGNvbXBvbmVudCB0byByZW1vdmUgdGhlIFwiTmV4dFwiIGJ1dHRvbiAodXNlciBjYW5ub3QgcHJvY2VlZCB3aXRoIGZsYWcgY3JlYXRpb24pXG4gICAgdGhpcy5jYXNlRmxhZ3NDb25maWdFcnJvciA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goXG4gICAgICB7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdMb2NhdGlvbkVycm9yTWVzc2FnZS5GTEFHU19OT1RfQ09ORklHVVJFRCwgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0JyB9KTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHsgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSwgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzIH0pO1xuICB9XG5cbiAgcHVibGljIG5leHQoKSB7XG4gICAgdGhpcy5vbk5leHQoKTtcblxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBzdXBlci5uZXh0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cImZsYWctbG9jYXRpb24taGVhZGluZ1wiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbVwiPlxuICAgICAgICA8aDEgaWQ9XCJmbGFnLWxvY2F0aW9uLWhlYWRpbmdcIiBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19oZWFkaW5nXCI+XG4gICAgICAgICAge3tmbGFnTG9jYXRpb25UaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLWxvY2F0aW9uLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJmbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tmbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbFwiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgaWQ9XCJjb25kaXRpb25hbC1yYWRpb3MtbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCIgKm5nRm9yPVwibGV0IGZsYWdzSW5zdGFuY2Ugb2YgZmlsdGVyZWRGbGFnc0RhdGE7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJmbGFnLWxvY2F0aW9uLXt7aX19XCIgW25hbWVdPVwic2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJmbGFnc0luc3RhbmNlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJzZWxlY3RlZExvY2F0aW9uQ29udHJvbE5hbWVcIi8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cImZsYWctbG9jYXRpb24te3tpfX1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmbGFnc0luc3RhbmNlLmZsYWdzLnBhcnR5TmFtZVwiPlxuICAgICAgICAgICAgICB7e2ZsYWdzSW5zdGFuY2UuZmxhZ3MucGFydHlOYW1lfX1cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsYWdzSW5zdGFuY2UuZmxhZ3Mucm9sZU9uQ2FzZVwiPlxuICAgICAgICAgICAgICAgICh7e2ZsYWdzSW5zdGFuY2UuZmxhZ3Mucm9sZU9uQ2FzZSB8IHJweFRyYW5zbGF0ZX19KVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmbGFnc0luc3RhbmNlLmZsYWdzLnBhcnR5TmFtZVwiPlxuICAgICAgICAgICAgICB7e2Nhc2VMZXZlbEZsYWdMYWJlbCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19