@dereekb/dbx-form 12.3.3 → 12.3.4

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.
@@ -15,7 +15,7 @@ export class DbxScheduleSelectionCalendarDateDialogButtonComponent {
15
15
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
16
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: { buttonText: { classPropertyName: "buttonText", publicName: "buttonText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, contentConfig: { classPropertyName: "contentConfig", publicName: "contentConfig", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
17
17
  <dbx-button [raised]="true" color="accent" [text]="buttonText()" [disabled]="disabled()" (buttonClick)="clickCustomize()"></dbx-button>
18
- `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
19
  }
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, decorators: [{
21
21
  type: Component,
@@ -33,7 +33,7 @@ export class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
33
33
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
34
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-popover-button", viewQueries: [{ propertyName: "buttonPopoverOrigin", first: true, predicate: ["buttonPopoverOrigin"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
35
35
  <dbx-button #buttonPopoverOrigin icon="date_range" [disabled]="disabledSignal()" [raised]="true" color="accent" [text]="buttonTextSignal()" (buttonClick)="openPopover()"></dbx-button>
36
- `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, decorators: [{
39
39
  type: Component,
@@ -50,7 +50,7 @@ export class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
50
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
51
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-selection-toggle-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
52
52
  <dbx-button [disabled]="disableButtonSignal()" [buttonDisplay]="buttonDisplaySignal()" [raised]="true" (buttonClick)="toggleSelection()"></dbx-button>
53
- `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
54
  }
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, decorators: [{
56
56
  type: Component,
@@ -53,10 +53,10 @@ export class DbxFormActionDialogComponent extends AbstractDialogDirective {
53
53
  <dbx-dialog-content-close (close)="close()"></dbx-dialog-content-close>
54
54
  <div>
55
55
  <dbx-formly dbxActionForm [dbxFormSource]="initialValue$"></dbx-formly>
56
- <dbx-button dbxActionButton [buttonDisplay]="submitButtonConfig" [style]="submitButtonConfig" [raised]="true"></dbx-button>
56
+ <dbx-button dbxActionButton [buttonDisplay]="submitButtonConfig" [buttonStyle]="submitButtonConfig" [raised]="true"></dbx-button>
57
57
  </div>
58
58
  </dbx-dialog-content>
59
- `, isInline: true, dependencies: [{ kind: "directive", type: DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content", inputs: ["width"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: i2.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "component", type: DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", inputs: ["padded"], outputs: ["close"] }, { kind: "component", type: DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }] });
59
+ `, isInline: true, dependencies: [{ kind: "directive", type: DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content", inputs: ["width"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: i2.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "component", type: DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", inputs: ["padded"], outputs: ["close"] }, { kind: "component", type: DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }] });
60
60
  }
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionDialogComponent, decorators: [{
62
62
  type: Component,
@@ -67,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
67
67
  <dbx-dialog-content-close (close)="close()"></dbx-dialog-content-close>
68
68
  <div>
69
69
  <dbx-formly dbxActionForm [dbxFormSource]="initialValue$"></dbx-formly>
70
- <dbx-button dbxActionButton [buttonDisplay]="submitButtonConfig" [style]="submitButtonConfig" [raised]="true"></dbx-button>
70
+ <dbx-button dbxActionButton [buttonDisplay]="submitButtonConfig" [buttonStyle]="submitButtonConfig" [raised]="true"></dbx-button>
71
71
  </div>
72
72
  </dbx-dialog-content>
73
73
  `,
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
76
76
  imports: [DbxDialogContentDirective, DbxActionModule, DbxButtonModule, DbxDialogContentCloseComponent, DbxFormlyComponent, DbxFormSourceDirective, DbxActionFormDirective, DbxFormlyComponent]
77
77
  }]
78
78
  }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5hY3Rpb24uZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybS9hY3Rpb24vZm9ybS5hY3Rpb24uZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFHeEssT0FBTyxFQUFFLHNCQUFzQixFQUF5RCxrQkFBa0IsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFcEosT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBMkJqRTs7R0FFRztBQWdCSCxNQUFNLE9BQU8sNEJBQWdDLFNBQVEsdUJBQWlFO0lBQ25HLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFOUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFBLGdCQUFtQixDQUFBLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RCxPQUFPLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxhQUFhLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUvRCxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFFMUIsa0JBQWtCLEdBQUc7UUFDNUIsSUFBSSxFQUFFLFFBQVE7UUFDZCxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCO0tBQ2hDLENBQUM7SUFFTyxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsaUJBQWlCLEdBQXdCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ25FLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBSSxTQUFvQixFQUFFLE1BQTZDO1FBQzlGLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQSw0QkFBK0IsQ0FBQSxFQUFFO1lBQ2hFLEtBQUssRUFBRSxNQUFNO1lBQ2IsU0FBUyxFQUFFLE9BQU87WUFDbEIsUUFBUSxFQUFFLE9BQU87WUFDakIsR0FBRyxNQUFNLENBQUMsTUFBTTtZQUNoQixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7d0dBekNVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLDJEQUg1QixDQUFDLG9CQUFvQixFQUFFLENBQUMsaURBWHpCOzs7Ozs7Ozs7R0FTVCw0REFHUyx5QkFBeUIsd0hBQUUsZUFBZSxpWkFBRSxlQUFlLHNSQUFFLDhCQUE4Qiw2R0FBRSxrQkFBa0IsNkVBQUUsc0JBQXNCLDRHQUFFLHNCQUFzQjs7NEZBRTlKLDRCQUE0QjtrQkFmeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7OztHQVNUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLDhCQUE4QixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDO2lCQUMvTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REaWFsb2dEaXJlY3RpdmUsIERieERpYWxvZ0NvbnRlbnREaXJlY3RpdmUsIERieERpYWxvZ0NvbnRlbnRDbG9zZUNvbXBvbmVudCwgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieEJ1dHRvblN0eWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBhc09ic2VydmFibGVGcm9tR2V0dGVyLCBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyLCBPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgU3Vic2NyaXB0aW9uT2JqZWN0LCBXb3JrVXNpbmdDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEJ1dHRvbkRpc3BsYXkgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb250ZXh0LCBwcm92aWRlRm9ybWx5Q29udGV4dCB9IGZyb20gJy4uLy4uL2Zvcm1seS9mb3JtbHkuY29udGV4dCc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtbHkvZm9ybWx5LmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERieEZvcm1Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICcuLi9pby9mb3JtLmlucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLmFjdGlvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRCdXR0b25Db25maWcgZXh0ZW5kcyBEYnhCdXR0b25EaXNwbGF5LCBEYnhCdXR0b25TdHlsZSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRDb25maWc8Tz4ge1xuICAvKipcbiAgICogSGVhZGVyIHRleHQgZm9yIHRoZSBkaWFsb2cuXG4gICAqL1xuICByZWFkb25seSBoZWFkZXI6IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHJldHJpZXZpbmcgdGhlIGZpZWxkcyB0byBkaXNwbGF5IGluIHRoZSBkaWFsb2cuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM6IE9ic2VydmFibGVPclZhbHVlR2V0dGVyPEZvcm1seUZpZWxkQ29uZmlnW10+O1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZvcm0uXG4gICAqL1xuICByZWFkb25seSBpbml0aWFsVmFsdWU/OiBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyPE8+O1xuICAvKipcbiAgICogVGV4dC9JY29uIGZvciB0aGUgc3VibWl0IGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym1pdEJ1dHRvbkNvbmZpZz86IERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRCdXR0b25Db25maWc7XG4gIC8qKlxuICAgKiBEaWFsb2ctc3BlY2lmaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGlhbG9nPzogT21pdDxNYXREaWFsb2dDb25maWcsICdkYXRhJz47XG59XG5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1kaWFsb2ctY29udGVudCBkYnhBY3Rpb24gW2RieEFjdGlvbkhhbmRsZXJdPVwiaGFuZGxlU3VibWl0VmFsdWVcIiBjbGFzcz1cImRieC1kaWFsb2ctY29udGVudC13aXRoLWhlYWRlclwiPlxuICAgICAgPGgzIGNsYXNzPVwiZGJ4LWRpYWxvZy1jb250ZW50LWhlYWRlclwiPnt7IGhlYWRlciB9fTwvaDM+XG4gICAgICA8ZGJ4LWRpYWxvZy1jb250ZW50LWNsb3NlIChjbG9zZSk9XCJjbG9zZSgpXCI+PC9kYngtZGlhbG9nLWNvbnRlbnQtY2xvc2U+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGJ4LWZvcm1seSBkYnhBY3Rpb25Gb3JtIFtkYnhGb3JtU291cmNlXT1cImluaXRpYWxWYWx1ZSRcIj48L2RieC1mb3JtbHk+XG4gICAgICAgIDxkYngtYnV0dG9uIGRieEFjdGlvbkJ1dHRvbiBbYnV0dG9uRGlzcGxheV09XCJzdWJtaXRCdXR0b25Db25maWdcIiBbc3R5bGVdPVwic3VibWl0QnV0dG9uQ29uZmlnXCIgW3JhaXNlZF09XCJ0cnVlXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kYngtZGlhbG9nLWNvbnRlbnQ+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVGb3JtbHlDb250ZXh0KCldLFxuICBpbXBvcnRzOiBbRGJ4RGlhbG9nQ29udGVudERpcmVjdGl2ZSwgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieERpYWxvZ0NvbnRlbnRDbG9zZUNvbXBvbmVudCwgRGJ4Rm9ybWx5Q29tcG9uZW50LCBEYnhGb3JtU291cmNlRGlyZWN0aXZlLCBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlLCBEYnhGb3JtbHlDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnQ8Tz4gZXh0ZW5kcyBBYnN0cmFjdERpYWxvZ0RpcmVjdGl2ZTxPLCBEYnhGb3JtQWN0aW9uRGlhbG9nQ29tcG9uZW50Q29uZmlnPE8+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmllbGRzU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBpbmplY3QoRGJ4Rm9ybWx5Q29udGV4dDxPPiwgeyBzZWxmOiB0cnVlIH0pO1xuICByZWFkb25seSBmaWVsZHMkID0gYXNPYnNlcnZhYmxlRnJvbUdldHRlcih0aGlzLmRhdGEuZmllbGRzKTtcbiAgcmVhZG9ubHkgaW5pdGlhbFZhbHVlJCA9IGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIodGhpcy5kYXRhLmluaXRpYWxWYWx1ZSk7XG5cbiAgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5kYXRhLmhlYWRlcjtcblxuICByZWFkb25seSBzdWJtaXRCdXR0b25Db25maWcgPSB7XG4gICAgdGV4dDogJ1N1Ym1pdCcsXG4gICAgLi4udGhpcy5kYXRhLnN1Ym1pdEJ1dHRvbkNvbmZpZ1xuICB9O1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5fZmllbGRzU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZmllbGRzJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoZmllbGRzKSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQuZmllbGRzID0gZmllbGRzO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9maWVsZHNTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlU3VibWl0VmFsdWU6IFdvcmtVc2luZ0NvbnRleHQ8Tz4gPSAodmFsdWUsIGNvbnRleHQpID0+IHtcbiAgICBjb250ZXh0LnN1Y2Nlc3MoKTtcbiAgICB0aGlzLmNsb3NlKHZhbHVlKTtcbiAgfTtcblxuICBzdGF0aWMgb3BlbkRpYWxvZ1dpdGhGb3JtPE8+KG1hdERpYWxvZzogTWF0RGlhbG9nLCBjb25maWc6IERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRDb25maWc8Tz4pOiBNYXREaWFsb2dSZWY8RGJ4Rm9ybUFjdGlvbkRpYWxvZ0NvbXBvbmVudDxPPiwgTWF5YmU8Tz4+IHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBtYXREaWFsb2cub3BlbihEYnhGb3JtQWN0aW9uRGlhbG9nQ29tcG9uZW50PE8+LCB7XG4gICAgICB3aWR0aDogJzkwdncnLFxuICAgICAgbWF4SGVpZ2h0OiAnMzAwcHgnLFxuICAgICAgbWF4V2lkdGg6ICc2MDBweCcsXG4gICAgICAuLi5jb25maWcuZGlhbG9nLFxuICAgICAgZGF0YTogY29uZmlnXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5hY3Rpb24uZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybS9hY3Rpb24vZm9ybS5hY3Rpb24uZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFHeEssT0FBTyxFQUFFLHNCQUFzQixFQUF5RCxrQkFBa0IsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFcEosT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBMkJqRTs7R0FFRztBQWdCSCxNQUFNLE9BQU8sNEJBQWdDLFNBQVEsdUJBQWlFO0lBQ25HLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFOUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFBLGdCQUFtQixDQUFBLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RCxPQUFPLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxhQUFhLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUvRCxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFFMUIsa0JBQWtCLEdBQUc7UUFDNUIsSUFBSSxFQUFFLFFBQVE7UUFDZCxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCO0tBQ2hDLENBQUM7SUFFTyxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVEsaUJBQWlCLEdBQXdCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ25FLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBSSxTQUFvQixFQUFFLE1BQTZDO1FBQzlGLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQSw0QkFBK0IsQ0FBQSxFQUFFO1lBQ2hFLEtBQUssRUFBRSxNQUFNO1lBQ2IsU0FBUyxFQUFFLE9BQU87WUFDbEIsUUFBUSxFQUFFLE9BQU87WUFDakIsR0FBRyxNQUFNLENBQUMsTUFBTTtZQUNoQixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7d0dBekNVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLDJEQUg1QixDQUFDLG9CQUFvQixFQUFFLENBQUMsaURBWHpCOzs7Ozs7Ozs7R0FTVCw0REFHUyx5QkFBeUIsd0hBQUUsZUFBZSxpWkFBRSxlQUFlLDRSQUFFLDhCQUE4Qiw2R0FBRSxrQkFBa0IsNkVBQUUsc0JBQXNCLDRHQUFFLHNCQUFzQjs7NEZBRTlKLDRCQUE0QjtrQkFmeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7OztHQVNUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLDhCQUE4QixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDO2lCQUMvTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REaWFsb2dEaXJlY3RpdmUsIERieERpYWxvZ0NvbnRlbnREaXJlY3RpdmUsIERieERpYWxvZ0NvbnRlbnRDbG9zZUNvbXBvbmVudCwgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieEJ1dHRvblN0eWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBhc09ic2VydmFibGVGcm9tR2V0dGVyLCBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyLCBPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgU3Vic2NyaXB0aW9uT2JqZWN0LCBXb3JrVXNpbmdDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEJ1dHRvbkRpc3BsYXkgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb250ZXh0LCBwcm92aWRlRm9ybWx5Q29udGV4dCB9IGZyb20gJy4uLy4uL2Zvcm1seS9mb3JtbHkuY29udGV4dCc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtbHkvZm9ybWx5LmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERieEZvcm1Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICcuLi9pby9mb3JtLmlucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLmFjdGlvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRCdXR0b25Db25maWcgZXh0ZW5kcyBEYnhCdXR0b25EaXNwbGF5LCBEYnhCdXR0b25TdHlsZSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRDb25maWc8Tz4ge1xuICAvKipcbiAgICogSGVhZGVyIHRleHQgZm9yIHRoZSBkaWFsb2cuXG4gICAqL1xuICByZWFkb25seSBoZWFkZXI6IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHJldHJpZXZpbmcgdGhlIGZpZWxkcyB0byBkaXNwbGF5IGluIHRoZSBkaWFsb2cuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM6IE9ic2VydmFibGVPclZhbHVlR2V0dGVyPEZvcm1seUZpZWxkQ29uZmlnW10+O1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZvcm0uXG4gICAqL1xuICByZWFkb25seSBpbml0aWFsVmFsdWU/OiBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyPE8+O1xuICAvKipcbiAgICogVGV4dC9JY29uIGZvciB0aGUgc3VibWl0IGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym1pdEJ1dHRvbkNvbmZpZz86IERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRCdXR0b25Db25maWc7XG4gIC8qKlxuICAgKiBEaWFsb2ctc3BlY2lmaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGlhbG9nPzogT21pdDxNYXREaWFsb2dDb25maWcsICdkYXRhJz47XG59XG5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1kaWFsb2ctY29udGVudCBkYnhBY3Rpb24gW2RieEFjdGlvbkhhbmRsZXJdPVwiaGFuZGxlU3VibWl0VmFsdWVcIiBjbGFzcz1cImRieC1kaWFsb2ctY29udGVudC13aXRoLWhlYWRlclwiPlxuICAgICAgPGgzIGNsYXNzPVwiZGJ4LWRpYWxvZy1jb250ZW50LWhlYWRlclwiPnt7IGhlYWRlciB9fTwvaDM+XG4gICAgICA8ZGJ4LWRpYWxvZy1jb250ZW50LWNsb3NlIChjbG9zZSk9XCJjbG9zZSgpXCI+PC9kYngtZGlhbG9nLWNvbnRlbnQtY2xvc2U+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGJ4LWZvcm1seSBkYnhBY3Rpb25Gb3JtIFtkYnhGb3JtU291cmNlXT1cImluaXRpYWxWYWx1ZSRcIj48L2RieC1mb3JtbHk+XG4gICAgICAgIDxkYngtYnV0dG9uIGRieEFjdGlvbkJ1dHRvbiBbYnV0dG9uRGlzcGxheV09XCJzdWJtaXRCdXR0b25Db25maWdcIiBbYnV0dG9uU3R5bGVdPVwic3VibWl0QnV0dG9uQ29uZmlnXCIgW3JhaXNlZF09XCJ0cnVlXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kYngtZGlhbG9nLWNvbnRlbnQ+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVGb3JtbHlDb250ZXh0KCldLFxuICBpbXBvcnRzOiBbRGJ4RGlhbG9nQ29udGVudERpcmVjdGl2ZSwgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieERpYWxvZ0NvbnRlbnRDbG9zZUNvbXBvbmVudCwgRGJ4Rm9ybWx5Q29tcG9uZW50LCBEYnhGb3JtU291cmNlRGlyZWN0aXZlLCBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlLCBEYnhGb3JtbHlDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnQ8Tz4gZXh0ZW5kcyBBYnN0cmFjdERpYWxvZ0RpcmVjdGl2ZTxPLCBEYnhGb3JtQWN0aW9uRGlhbG9nQ29tcG9uZW50Q29uZmlnPE8+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmllbGRzU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBpbmplY3QoRGJ4Rm9ybWx5Q29udGV4dDxPPiwgeyBzZWxmOiB0cnVlIH0pO1xuICByZWFkb25seSBmaWVsZHMkID0gYXNPYnNlcnZhYmxlRnJvbUdldHRlcih0aGlzLmRhdGEuZmllbGRzKTtcbiAgcmVhZG9ubHkgaW5pdGlhbFZhbHVlJCA9IGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIodGhpcy5kYXRhLmluaXRpYWxWYWx1ZSk7XG5cbiAgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5kYXRhLmhlYWRlcjtcblxuICByZWFkb25seSBzdWJtaXRCdXR0b25Db25maWcgPSB7XG4gICAgdGV4dDogJ1N1Ym1pdCcsXG4gICAgLi4udGhpcy5kYXRhLnN1Ym1pdEJ1dHRvbkNvbmZpZ1xuICB9O1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5fZmllbGRzU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZmllbGRzJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoZmllbGRzKSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQuZmllbGRzID0gZmllbGRzO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9maWVsZHNTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlU3VibWl0VmFsdWU6IFdvcmtVc2luZ0NvbnRleHQ8Tz4gPSAodmFsdWUsIGNvbnRleHQpID0+IHtcbiAgICBjb250ZXh0LnN1Y2Nlc3MoKTtcbiAgICB0aGlzLmNsb3NlKHZhbHVlKTtcbiAgfTtcblxuICBzdGF0aWMgb3BlbkRpYWxvZ1dpdGhGb3JtPE8+KG1hdERpYWxvZzogTWF0RGlhbG9nLCBjb25maWc6IERieEZvcm1BY3Rpb25EaWFsb2dDb21wb25lbnRDb25maWc8Tz4pOiBNYXREaWFsb2dSZWY8RGJ4Rm9ybUFjdGlvbkRpYWxvZ0NvbXBvbmVudDxPPiwgTWF5YmU8Tz4+IHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBtYXREaWFsb2cub3BlbihEYnhGb3JtQWN0aW9uRGlhbG9nQ29tcG9uZW50PE8+LCB7XG4gICAgICB3aWR0aDogJzkwdncnLFxuICAgICAgbWF4SGVpZ2h0OiAnMzAwcHgnLFxuICAgICAgbWF4V2lkdGg6ICc2MDBweCcsXG4gICAgICAuLi5jb25maWcuZGlhbG9nLFxuICAgICAgZGF0YTogY29uZmlnXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG59XG4iXX0=
@@ -316,10 +316,10 @@ export class DbxFormSourceSelectFieldComponent extends FieldType {
316
316
  this.formControl.markAsTouched();
317
317
  }
318
318
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
319
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormSourceSelectFieldComponent, isStandalone: true, selector: "dbx-form-sourceselectfield", viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n", dependencies: [{ kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
319
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormSourceSelectFieldComponent, isStandalone: true, selector: "dbx-form-sourceselectfield", viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n", dependencies: [{ kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
320
320
  }
321
321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, decorators: [{
322
322
  type: Component,
323
323
  args: [{ selector: 'dbx-form-sourceselectfield', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatSelect, MatOption, FormsModule, ReactiveFormsModule, DbxButtonComponent, MatOptgroup, DbxButtonSpacerDirective, DbxActionModule, DbxLoadingComponent], standalone: true, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n" }]
324
324
  }] });
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLDhCQUE4QixFQUFFLHFCQUFxQixFQUFnQyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixFQUFvQiw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvVCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBUyxXQUFXLEVBQWdCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuUCxPQUFPLEVBQUUsU0FB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QWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sZUFBZSxDQUFDLGFBQWtCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQ3hJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3dHQXJjVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQywwS0FVMEMsVUFBVSxvRUN4RWxHLDB1Q0EyQkEsNENEZ0NZLFNBQVMsd2VBQUUsU0FBUyxvSkFBRSxXQUFXLHNJQUFFLG1CQUFtQixrTkFBRSxrQkFBa0Isa09BQUUsV0FBVyxtSEFBRSx3QkFBd0IsK0VBQUUsZUFBZSxvaEJBQUUsbUJBQW1COzs0RkFHdEosaUNBQWlDO2tCQVA3QyxTQUFTOytCQUNFLDRCQUE0QixtQkFFckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUMsY0FDdEosSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZSwgaXNMb2FkaW5nU3RhdGVMb2FkaW5nLCBMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlLCBzdGFydFdpdGhCZWdpbkxvYWRpbmcsIFN1YnNjcmlwdGlvbk9iamVjdCwgc3VjY2Vzc1Jlc3VsdCwgYmVnaW5Mb2FkaW5nLCBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvciwgbG9hZGluZ1N0YXRlQ29udGV4dCwgV29ya1VzaW5nQ29udGV4dCwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgbWVyZ2VNYXAsIHNjYW4sIEJlaGF2aW9yU3ViamVjdCwgdGFwLCBmaXJzdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkZFRvU2V0Q29weSwgYXNBcnJheSwgY29udmVydE1heWJlVG9BcnJheSwgZmlsdGVyTWF5YmVBcnJheVZhbHVlcywgbGFzdFZhbHVlLCBtYWtlVmFsdWVzR3JvdXBNYXAsIE1heWJlLCBtZXJnZUFycmF5cywgUHJpbWF0aXZlS2V5LCBzZXBhcmF0ZVZhbHVlcywgc2V0Q29udGFpbnNBbGxWYWx1ZXMsIHNldHNBcmVFcXVpdmFsZW50LCBzb3J0QnlTdHJpbmdGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFNvdXJjZVNlbGVjdFZhbHVlTWV0YUxvYWRlciwgU291cmNlU2VsZWN0TWV0YVZhbHVlUmVhZGVyLCBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VzRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2UsIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VMb2FkaW5nU3RhdGUsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZSwgU291cmNlU2VsZWN0VmFsdWUsIFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbiwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdE9wdGlvbnMsIFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQgfSBmcm9tICcuL3NvdXJjZXNlbGVjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNYXRPcHRncm91cCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBvcGVuIHRoZSBzb3VyY2UgYW5kIHJlcXVlc3QgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlblNvdXJjZT86IFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvbjxNPjtcbiAgLyoqXG4gICAqIExvYWRzIHRoZSBzb3VyY2VzIHRvIGRpc3BsYXkgZW50cmllcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZFNvdXJjZXM/OiBTb3VyY2VTZWxlY3RMb2FkU291cmNlc0Z1bmN0aW9uPE0+O1xuICAvKipcbiAgICogUmVhZHMgdGhlIHZhbHVlIGZyb20gYSBtZXRhIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVSZWFkZXI6IFNvdXJjZVNlbGVjdE1ldGFWYWx1ZVJlYWRlcjxULCBNPjtcbiAgLyoqXG4gICAqIExvYWRzIG1ldGFkYXRhIGZvciB0aGUgaW5wdXQgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YUxvYWRlcjogU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyPFQsIE0+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlGb3JWYWx1ZTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+O1xuICAvKipcbiAgICogU2VsZWN0IGJ1dHRvbiBpY29uXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RCdXR0b25JY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHNlbGVjdGlvbiBpcyBhcyBhbiBhcnJheS5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpcGxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgb2JzZXJ2YWJsZSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgY2xlYXJpbmcgb2YgYWxsIGNhY2hlZCBkaXNwbGF5IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZnJlc2hEaXNwbGF5VmFsdWVzJD86IE9ic2VydmFibGU8dW5rbm93bj47XG59XG5cbmludGVyZmFjZSBTZWxlY3RGaWVsZE9wZW5Tb3VyY2VNYXA8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdO1xuICByZWFkb25seSB2YWx1ZXNTZXQ6IFNldDxUPjtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIHNlbGVjdCB2aWV3IChtdWx0aSBvciBub3QpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1mb3JtLXNvdXJjZXNlbGVjdGZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICdzb3VyY2VzZWxlY3QuZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW01hdFNlbGVjdCwgTWF0T3B0aW9uLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBNYXRPcHRncm91cCwgRGJ4QnV0dG9uU3BhY2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25Nb2R1bGUsIERieExvYWRpbmdDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Tb3VyY2VTZWxlY3RGaWVsZENvbXBvbmVudDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGVNZXRhU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGVhckRpc3BsYXlIYXNoTWFwU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZU1ldGFIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8VCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4+PihuZXcgTWFwKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFQsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUNvbnRyb2xPYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFic3RyYWN0Q29udHJvbDxUW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvbU9wZW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdEZpZWxkT3BlblNvdXJjZU1hcDxULCBNPj4oeyB2YWx1ZXM6IFtdLCB2YWx1ZXNTZXQ6IG5ldyBTZXQoKSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZFNvdXJjZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPE9ic2VydmFibGU8U291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdPj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRWxlbWVudCA9IHZpZXdDaGlsZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB9KTtcblxuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRGb3JtQ29udHJvbFZhbHVlJCA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5jdXJyZW50Rm9ybUNvbnRyb2xWYWx1ZSQucGlwZShtYXAoY29udmVydE1heWJlVG9BcnJheSksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBhbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBzY2FuKChhY2MsIHZhbHVlcykgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogU2V0PFQ+ID0gYWNjO1xuXG4gICAgICBpZiAoIXNldENvbnRhaW5zQWxsVmFsdWVzKGFjYywgdmFsdWVzKSkge1xuICAgICAgICByZXN1bHQgPSBhZGRUb1NldENvcHkoYWNjLCB2YWx1ZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIG5ldyBTZXQ8VD4oKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKHgpID0+IEFycmF5LmZyb20oeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy5hbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHZhbHVlczogVFtdKSA9PiB0aGlzLmxvYWRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGxvYWRTb3VyY2VzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLl9sb2FkU291cmNlcy5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgc3dpdGNoTWFwKChsb2FkU291cmNlKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlUmVhZGVyIH0gPSB0aGlzO1xuXG4gICAgICByZXR1cm4gbG9hZFNvdXJjZS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHNvdXJjZXM6IFNvdXJjZVNlbGVjdExvYWRTb3VyY2U8TT5bXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZU9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RMb2FkU291cmNlTG9hZGluZ1N0YXRlPE0+PltdID0gc291cmNlcy5tYXAoKHgpID0+IHgubWV0YS5waXBlKG1hcCgobWV0YVN0YXRlKSA9PiAoeyAuLi5tZXRhU3RhdGUsIGxhYmVsOiB4LmxhYmVsIH0pKSkpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZU9icy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZihzdWNjZXNzUmVzdWx0KFtdKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNvdXJjZU9icykucGlwZShcbiAgICAgICAgICAgICAgbWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVzV2l0aFZhbHVlcyA9IHguZmlsdGVyKCh5KSA9PiBpc0xvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUoeSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSB4LmZpbmRJbmRleChpc0xvYWRpbmdTdGF0ZUxvYWRpbmcpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gc3RhdGVzV2l0aFZhbHVlcy5tYXAoKHkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiAoeS52YWx1ZSBhcyBNW10pLm1hcCgobWV0YSkgPT4gKHsgbWV0YSwgdmFsdWU6IHZhbHVlUmVhZGVyKG1ldGEpIH0pKVxuICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuICByZWFkb25seSBmcm9tT3BlblNvdXJjZSQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPj4gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBzZXRzQXJlRXF1aXZhbGVudChhLnZhbHVlc1NldCwgYi52YWx1ZXNTZXQpKSxcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIHZhbHVlczogeC52YWx1ZXNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZnJvbU9wZW5Tb3VyY2UkLCB0aGlzLmxvYWRTb3VyY2VzJF0pLnBpcGUoXG4gICAgbWFwKChbZnJvbU9wZW5Tb3VyY2VHcm91cCwgbG9hZFNvdXJjZXNdKSA9PiB7XG4gICAgICBjb25zdCBsb2FkU291cmNlc1ZhbHVlID0gbG9hZFNvdXJjZXMudmFsdWUgPz8gW107XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gW2Zyb21PcGVuU291cmNlR3JvdXAsIC4uLmxvYWRTb3VyY2VzVmFsdWVdO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPiA9IHtcbiAgICAgICAgbG9hZGluZzogbG9hZFNvdXJjZXMubG9hZGluZyxcbiAgICAgICAgdmFsdWVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxWYWx1ZUdyb3Vwc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLnNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXM6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPikgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZShzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2YWx1ZXNGcm9tVmFsdWVzR3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgIHZhbHVlczogc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlcy52YWx1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQucGlwZShcbiAgICAgICAgICBtYXAoKHNvdXJjZXNTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxsR3JvdXBzOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBbdmFsdWVzRnJvbVZhbHVlc0dyb3VwLCAuLi5zb3VyY2VzU3RhdGUudmFsdWVdO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+ID0ge1xuICAgICAgICAgICAgICBsb2FkaW5nOiBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzLmxvYWRpbmcgfHwgc291cmNlc1N0YXRlLmxvYWRpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBhbGxHcm91cHNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihiZWdpbkxvYWRpbmc8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPih7fSkpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLmFsbFZhbHVlR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IoXG4gICAgICBzd2l0Y2hNYXAoKGdyb3VwczogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsID0gbWFrZVZhbHVlc0dyb3VwTWFwKGdyb3VwcywgKHgpID0+IHgubGFiZWwpIGFzIE1hcDxzdHJpbmcsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT47XG5cbiAgICAgICAgY29uc3QgdmFsdWVzRW5jb3VudGVyZWQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGNvbnN0IGFsbFVuaXF1ZVZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHM6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIC8vIHNvcnQgdG8gcHV0IHRoZSBibGFuayBsYWJlbCBmaXJzdFxuICAgICAgICBBcnJheS5mcm9tKGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsLmVudHJpZXMoKSlcbiAgICAgICAgICAuc29ydChzb3J0QnlTdHJpbmdGdW5jdGlvbigoeCkgPT4geFswXSkpXG4gICAgICAgICAgLmZvckVhY2goKFtsYWJlbCwgZ3JvdXBzXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gW107XG5cbiAgICAgICAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICBncm91cC52YWx1ZXMuZm9yRWFjaCgoc2VsZWN0VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlc0VuY291bnRlcmVkLmhhcyhzZWxlY3RWYWx1ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGFsbFVuaXF1ZVZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlc0VuY291bnRlcmVkLmFkZChzZWxlY3RWYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc2ltcGxpZmllZFZhbHVlc0dyb3Vwcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKGFsbFVuaXF1ZVZhbHVlcykucGlwZShcbiAgICAgICAgICBtYXAoKGRpc3BsYXlWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNNYXAgPSBuZXcgTWFwKGRpc3BsYXlWYWx1ZXMubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheUdyb3VwczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXSA9IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHMubWFwKCh2YWx1ZUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGZpbHRlck1heWJlQXJyYXlWYWx1ZXModmFsdWVHcm91cC52YWx1ZXMubWFwKCh4KSA9PiBkaXNwbGF5VmFsdWVzTWFwLmdldCh4LnZhbHVlKSkpO1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHZhbHVlR3JvdXAubGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWVzXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlHcm91cHM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzJDogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPiA9IHRoaXMuYWxsT3B0aW9uR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSxcbiAgICBtYXAoKHgpID0+IHggPz8gW10pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgb3B0aW9ucyQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0T3B0aW9uczxULCBNPj4gPSB0aGlzLmFsbE9wdGlvbkdyb3VwcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5jbHVkZWQ6IGdyb3VwZWRWYWx1ZXMsIGV4Y2x1ZGVkOiBub25Hcm91cGVkR3JvdXAgfSA9IHNlcGFyYXRlVmFsdWVzKHgsICh5KSA9PiBCb29sZWFuKHkubGFiZWwpKTtcblxuICAgICAgY29uc3QgcmVzdWx0OiBTb3VyY2VTZWxlY3RPcHRpb25zPFQsIE0+ID0ge1xuICAgICAgICBub25Hcm91cGVkVmFsdWVzOiBub25Hcm91cGVkR3JvdXBbMF0/LnZhbHVlcyA/PyBbXSxcbiAgICAgICAgZ3JvdXBlZFZhbHVlc1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXMkID0gdGhpcy5vcHRpb25zJC5waXBlKG1hcCgoeCkgPT4geC5ub25Hcm91cGVkVmFsdWVzKSk7XG4gIHJlYWRvbmx5IGdyb3VwZWRPcHRpb25zJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKHgpID0+IHguZ3JvdXBlZFZhbHVlcykpO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLm5vbkdyb3VwZWRWYWx1ZXMkKTtcbiAgcmVhZG9ubHkgZ3JvdXBlZE9wdGlvbnNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmdyb3VwZWRPcHRpb25zJCk7XG5cbiAgZ2V0IHNvdXJjZVNlbGVjdEZpZWxkKCk6IFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzO1xuICB9XG5cbiAgZ2V0IG9wZW5Tb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMub3BlblNvdXJjZTtcbiAgfVxuXG4gIGdldCBzaG93T3BlblNvdXJjZUJ1dHRvbigpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLm9wZW5Tb3VyY2UpO1xuICB9XG5cbiAgZ2V0IGxvYWRTb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmxvYWRTb3VyY2VzO1xuICB9XG5cbiAgZ2V0IHZhbHVlUmVhZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlUmVhZGVyO1xuICB9XG5cbiAgZ2V0IG1ldGFMb2FkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubWV0YUxvYWRlcjtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Rm9yVmFsdWUoKTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0QnV0dG9uSWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zZWxlY3RCdXR0b25JY29uID8/ICdhZGQnO1xuICB9XG5cbiAgZ2V0IG11bHRpcGxlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm11bHRpcGxlIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHJlZnJlc2hEaXNwbGF5VmFsdWVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQ7XG4gIH1cblxuICBsb2FkU291cmNlU2VsZWN0VmFsdWVGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoc291cmNlU2VsZWN0VmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdKSA9PiBzdWNjZXNzUmVzdWx0KHNvdXJjZVNlbGVjdFZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4ge1xuICAgIGNvbnN0IHsgdmFsdWVSZWFkZXIgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKG1ldGFNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlcy5tYXAoKGhhc2gsIGkpID0+IFtpLCBoYXNoLCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT5dKTtcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpbmNsdWRlZDogaGFzTWV0YSxcbiAgICAgICAgICBleGNsdWRlZDogbmVlZHNNZXRhXG4gICAgICAgIH0gPSBzZXBhcmF0ZVZhbHVlcyhtYXBwaW5nUmVzdWx0LCAoeCkgPT4gQm9vbGVhbih4WzJdKSk7XG5cbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPjtcblxuICAgICAgICBpZiAobmVlZHNNZXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBHbyBnZXQgdGhlIG1ldGEgdmFsdWUuXG4gICAgICAgICAgY29uc3QgbWV0YVZhbHVlc09icyA9IHRoaXMubWV0YUxvYWRlcihuZWVkc01ldGEubWFwKCh4KSA9PiB4WzFdKSk7XG5cbiAgICAgICAgICBvYnMgPSBtZXRhVmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChtZXRhUmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtZXRhUmVzdWx0c01hcHBpbmc6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBtZXRhUmVzdWx0cy5tYXAoKG1ldGEpID0+ICh7IG1ldGEsIHZhbHVlOiB2YWx1ZVJlYWRlcihtZXRhKSB9KSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChtZXRhUmVzdWx0c01hcHBpbmcubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgbWV0YU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIG1ldGFSZXN1bHRzTWFwcGluZy5mb3JFYWNoKCh4KSA9PiBtZXRhTWFwLnNldCh4LnZhbHVlLCB4KSk7XG5cbiAgICAgICAgICAgICAgLy8gWmlwIHZhbHVlcyBiYWNrIHRvZ2V0aGVyLlxuICAgICAgICAgICAgICBjb25zdCBuZXdEaXNwbGF5VmFsdWVzID0gbWFwcGluZ1Jlc3VsdC5tYXAoKHgpID0+IHhbMl0gPz8gdmFsdWVJbmRleEhhc2hNYXAuZ2V0KHhbMV0pKTtcblxuICAgICAgICAgICAgICAvLyBSZXR1cm4gZGlzcGxheSB2YWx1ZXMuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdEaXNwbGF5VmFsdWVzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIGFsbCBkaXNwbGF5IHZhbHVlcyBhcmUgaGFzaGVkIHJldHVybiB0aGVtXG4gICAgICAgICAgb2JzID0gb2YoaGFzTWV0YS5tYXAoKHgpID0+IHhbMl0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvclNlbGVjdFZhbHVlcyh2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoZGlzcGxheVZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10pID0+IHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUhhc2hNYXAucGlwZShcbiAgICAgIG1lcmdlTWFwKChtZXRhTWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdSZXN1bHQgPSB2YWx1ZXMubWFwKCh4KSA9PiBbeCwgeC52YWx1ZV0gYXMgW1NvdXJjZVNlbGVjdFZhbHVlPFQsIE0+LCBUXSkubWFwKChbeCwgaGFzaF0sIGkpID0+IFtpLCBoYXNoLCB4LCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4sIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcigoeCkgPT4gQm9vbGVhbih4WzNdKSk7XG4gICAgICAgIGNvbnN0IG5lZWRzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKCh4KSA9PiAheFszXSk7XG4gICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+O1xuXG4gICAgICAgIGlmIChuZWVkc0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCgoeCkgPT4geFsyXSkpO1xuXG4gICAgICAgICAgb2JzID0gZGlzcGxheVZhbHVlc09icy5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgoZGlzcGxheVJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVJlc3VsdHNNYXBwaW5nOiBbU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+LCBUXVtdID0gKGRpc3BsYXlSZXN1bHRzIGFzIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdKS5tYXAoKHgpID0+IFt4LCB4LnZhbHVlXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChkaXNwbGF5UmVzdWx0c01hcHBpbmcubWFwKChbeCwgaGFzaF0pID0+IFtoYXNoLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBtZXRhTWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKFt4LCBoYXNoXSkgPT4gbWV0YU1hcC5zZXQoaGFzaCwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKCh4KSA9PiB4WzNdID8/IHZhbHVlSW5kZXhIYXNoTWFwLmdldCh4WzFdKSk7XG5cbiAgICAgICAgICAgICAgLy8gUmV0dXJuIGRpc3BsYXkgdmFsdWVzLlxuICAgICAgICAgICAgICByZXR1cm4gbmV3RGlzcGxheVZhbHVlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhhdC5cbiAgICAgICAgICBvYnMgPSBvZihoYXNEaXNwbGF5Lm1hcCgoeCkgPT4geFszXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmFsbE9wdGlvbkdyb3Vwc1N0YXRlJCB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGxvYWRTb3VyY2VzIH0gPSB0aGlzO1xuXG4gICAgdGhpcy5fbG9hZFNvdXJjZXMubmV4dChsb2FkU291cmNlcz8uKCkgfHwgb2YoW10pKTtcblxuICAgIGlmICh0aGlzLnJlZnJlc2hEaXNwbGF5VmFsdWVzJCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9jbGVhckRpc3BsYXlIYXNoTWFwU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMucmVmcmVzaERpc3BsYXlWYWx1ZXMkLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5uZXh0KG5ldyBNYXAoKSkpO1xuICAgIH1cblxuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG5cbiAgICAvLyBjb3B5IGFsbCB2YWx1ZXMgZnJvbSB0aGUgc291cmNlcyBpbnRvIHRoZSB2YWx1ZXMgaGFzaCBtYXAgdG8gcHJldmVudCByZWxvYWRpbmdcbiAgICB0aGlzLl9jYWNoZU1ldGFTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy52YWx1ZUdyb3Vwc0Zyb21Tb3VyY2VzU3RhdGUkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgY29uc3QgaGFzaE1hcCA9IHRoaXMuX3ZhbHVlTWV0YUhhc2hNYXAudmFsdWU7XG4gICAgICB4LnZhbHVlLmZvckVhY2goKHgpID0+IHgudmFsdWVzLmZvckVhY2goKHkpID0+IGhhc2hNYXAuc2V0KHkudmFsdWUsIHkpKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2NhY2hlTWV0YVN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2xlYXJEaXNwbGF5SGFzaE1hcFN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2xvYWRTb3VyY2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGhhbmRsZVNlbGVjdE9wdGlvbnM6IFdvcmtVc2luZ0NvbnRleHQ8dW5rbm93bj4gPSAoXywgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHsgb3BlblNvdXJjZSB9ID0gdGhpcztcbiAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJ1dHRvbkVsZW1lbnQoKTtcblxuICAgIGlmIChvcGVuU291cmNlICYmIG9yaWdpbikge1xuICAgICAgY29uc3Qgc291cmNlT2JzID0gb3BlblNvdXJjZSh7IG9yaWdpbiB9KTtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aE9ic2VydmFibGUoXG4gICAgICAgIHNvdXJjZU9icy5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKChyZXN1bHQ6IFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvQWRkID0gbWVyZ2VBcnJheXMoW3Jlc3VsdC5zZWxlY3QsIHJlc3VsdC5vcHRpb25zXSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRUb09wZW5Tb3VyY2VNYXAodmFsdWVzVG9BZGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNldCkge1xuICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShyZXN1bHQuc2V0Lm1hcCgoeCkgPT4gdGhpcy52YWx1ZVJlYWRlcih4KSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc2VsZWN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkVG9DdXJyZW50VmFsdWUocmVzdWx0LnNlbGVjdC5tYXAoKHgpID0+IHRoaXMudmFsdWVSZWFkZXIoeCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnJlamVjdCgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFkZFRvT3BlblNvdXJjZU1hcChpbnB1dDogTVtdKSB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHZhbHVlczogbWV0YSwgdmFsdWVzU2V0OiBpbml0aWFsVmFsdWVzIH0gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS52YWx1ZTtcblxuICAgIGNvbnN0IG5ld01ldGFGcm9tSW5wdXQ6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcbiAgICBjb25zdCB2YWx1ZXNTZXQgPSBuZXcgU2V0KGluaXRpYWxWYWx1ZXMpO1xuXG4gICAgaW5wdXQuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVJlYWRlcih4KTtcblxuICAgICAgaWYgKCF2YWx1ZXNTZXQuaGFzKHZhbHVlKSkge1xuICAgICAgICBuZXdNZXRhRnJvbUlucHV0LnB1c2goeyBtZXRhOiB4LCB2YWx1ZSB9KTtcbiAgICAgICAgdmFsdWVzU2V0LmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobmV3TWV0YUZyb21JbnB1dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5uZXh0KHtcbiAgICAgICAgdmFsdWVzOiBbLi4ubWV0YSwgLi4ubmV3TWV0YUZyb21JbnB1dF0sXG4gICAgICAgIHZhbHVlc1NldDogdmFsdWVzU2V0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFRvQ3VycmVudFZhbHVlKHZhbHVlczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXNBcnJheSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gWy4uLmN1cnJlbnRWYWx1ZSwgLi4udmFsdWVzXTtcbiAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShuZXdWYWx1ZUFycmF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudFZhbHVlKG5ld1ZhbHVlQXJyYXk6IFRbXSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IG5ld1ZhbHVlQXJyYXkgOiBsYXN0VmFsdWUobmV3VmFsdWVBcnJheSk7IC8vIHBpY2sgbGFzdCB2YWx1ZSwgYXMgdGhlIGxhc3QgdmFsdWUgYWRkZWQgaXMgdGhlIG5ld2VzdCB2YWx1ZS5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZFwiPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtY29udGVudFwiPlxuICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtc2VsZWN0XCIgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCI+XG4gICAgICBAZm9yICh2YWx1ZSBvZiBub25Hcm91cGVkVmFsdWVzU2lnbmFsKCk7IHRyYWNrIHZhbHVlLnZhbHVlKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKG9wdGlvbkdyb3VwIG9mIGdyb3VwZWRPcHRpb25zU2lnbmFsKCk7IHRyYWNrIG9wdGlvbkdyb3VwLmxhYmVsKSB7XG4gICAgICAgIDxtYXQtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbkdyb3VwLmxhYmVsXCI+XG4gICAgICAgICAgQGZvciAodmFsdWUgb2Ygb3B0aW9uR3JvdXAudmFsdWVzOyB0cmFjayB2YWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCI+XG4gICAgICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgIH1cbiAgICA8L21hdC1zZWxlY3Q+XG4gICAgQGlmIChzaG93T3BlblNvdXJjZUJ1dHRvbikge1xuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICA8ZGJ4LWFjdGlvbiBkYnhBY3Rpb25WYWx1ZSBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVTZWxlY3RPcHRpb25zXCIgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZC1idXR0b25cIj5cbiAgICAgICAgPGRieC1idXR0b24gI2J1dHRvbiBkYnhBY3Rpb25CdXR0b24gW2ZhYl09XCJ0cnVlXCIgW2ljb25Pbmx5XT1cInRydWVcIiBbaWNvbl09XCJzZWxlY3RCdXR0b25JY29uXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9kYngtYWN0aW9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkYngtbG9hZGluZyBjbGFzcz1cImRieC1zb3VyY2Utc2VsZWN0LWZpZWxkLWxvYWRpbmdcIiBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbjwvZGl2PlxuIl19
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLDhCQUE4QixFQUFFLHFCQUFxQixFQUFnQyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixFQUFvQiw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvVCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBUyxXQUFXLEVBQWdCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuUCxPQUFPLEVBQUUsU0FB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QWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sZUFBZSxDQUFDLGFBQWtCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQ3hJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3dHQXJjVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQywwS0FVMEMsVUFBVSxvRUN4RWxHLDB1Q0EyQkEsNENEZ0NZLFNBQVMsd2VBQUUsU0FBUyxvSkFBRSxXQUFXLHNJQUFFLG1CQUFtQixrTkFBRSxrQkFBa0Isd09BQUUsV0FBVyxtSEFBRSx3QkFBd0IsK0VBQUUsZUFBZSxvaEJBQUUsbUJBQW1COzs0RkFHdEosaUNBQWlDO2tCQVA3QyxTQUFTOytCQUNFLDRCQUE0QixtQkFFckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUMsY0FDdEosSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZSwgaXNMb2FkaW5nU3RhdGVMb2FkaW5nLCBMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlLCBzdGFydFdpdGhCZWdpbkxvYWRpbmcsIFN1YnNjcmlwdGlvbk9iamVjdCwgc3VjY2Vzc1Jlc3VsdCwgYmVnaW5Mb2FkaW5nLCBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvciwgbG9hZGluZ1N0YXRlQ29udGV4dCwgV29ya1VzaW5nQ29udGV4dCwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgbWVyZ2VNYXAsIHNjYW4sIEJlaGF2aW9yU3ViamVjdCwgdGFwLCBmaXJzdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkZFRvU2V0Q29weSwgYXNBcnJheSwgY29udmVydE1heWJlVG9BcnJheSwgZmlsdGVyTWF5YmVBcnJheVZhbHVlcywgbGFzdFZhbHVlLCBtYWtlVmFsdWVzR3JvdXBNYXAsIE1heWJlLCBtZXJnZUFycmF5cywgUHJpbWF0aXZlS2V5LCBzZXBhcmF0ZVZhbHVlcywgc2V0Q29udGFpbnNBbGxWYWx1ZXMsIHNldHNBcmVFcXVpdmFsZW50LCBzb3J0QnlTdHJpbmdGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFNvdXJjZVNlbGVjdFZhbHVlTWV0YUxvYWRlciwgU291cmNlU2VsZWN0TWV0YVZhbHVlUmVhZGVyLCBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VzRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2UsIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VMb2FkaW5nU3RhdGUsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZSwgU291cmNlU2VsZWN0VmFsdWUsIFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbiwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdE9wdGlvbnMsIFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQgfSBmcm9tICcuL3NvdXJjZXNlbGVjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNYXRPcHRncm91cCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBvcGVuIHRoZSBzb3VyY2UgYW5kIHJlcXVlc3QgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlblNvdXJjZT86IFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvbjxNPjtcbiAgLyoqXG4gICAqIExvYWRzIHRoZSBzb3VyY2VzIHRvIGRpc3BsYXkgZW50cmllcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZFNvdXJjZXM/OiBTb3VyY2VTZWxlY3RMb2FkU291cmNlc0Z1bmN0aW9uPE0+O1xuICAvKipcbiAgICogUmVhZHMgdGhlIHZhbHVlIGZyb20gYSBtZXRhIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVSZWFkZXI6IFNvdXJjZVNlbGVjdE1ldGFWYWx1ZVJlYWRlcjxULCBNPjtcbiAgLyoqXG4gICAqIExvYWRzIG1ldGFkYXRhIGZvciB0aGUgaW5wdXQgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YUxvYWRlcjogU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyPFQsIE0+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlGb3JWYWx1ZTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+O1xuICAvKipcbiAgICogU2VsZWN0IGJ1dHRvbiBpY29uXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RCdXR0b25JY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHNlbGVjdGlvbiBpcyBhcyBhbiBhcnJheS5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpcGxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgb2JzZXJ2YWJsZSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgY2xlYXJpbmcgb2YgYWxsIGNhY2hlZCBkaXNwbGF5IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZnJlc2hEaXNwbGF5VmFsdWVzJD86IE9ic2VydmFibGU8dW5rbm93bj47XG59XG5cbmludGVyZmFjZSBTZWxlY3RGaWVsZE9wZW5Tb3VyY2VNYXA8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdO1xuICByZWFkb25seSB2YWx1ZXNTZXQ6IFNldDxUPjtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIHNlbGVjdCB2aWV3IChtdWx0aSBvciBub3QpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1mb3JtLXNvdXJjZXNlbGVjdGZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICdzb3VyY2VzZWxlY3QuZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW01hdFNlbGVjdCwgTWF0T3B0aW9uLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBNYXRPcHRncm91cCwgRGJ4QnV0dG9uU3BhY2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25Nb2R1bGUsIERieExvYWRpbmdDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Tb3VyY2VTZWxlY3RGaWVsZENvbXBvbmVudDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGVNZXRhU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGVhckRpc3BsYXlIYXNoTWFwU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZU1ldGFIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8VCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4+PihuZXcgTWFwKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFQsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUNvbnRyb2xPYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFic3RyYWN0Q29udHJvbDxUW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvbU9wZW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdEZpZWxkT3BlblNvdXJjZU1hcDxULCBNPj4oeyB2YWx1ZXM6IFtdLCB2YWx1ZXNTZXQ6IG5ldyBTZXQoKSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZFNvdXJjZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPE9ic2VydmFibGU8U291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdPj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRWxlbWVudCA9IHZpZXdDaGlsZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB9KTtcblxuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRGb3JtQ29udHJvbFZhbHVlJCA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5jdXJyZW50Rm9ybUNvbnRyb2xWYWx1ZSQucGlwZShtYXAoY29udmVydE1heWJlVG9BcnJheSksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBhbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBzY2FuKChhY2MsIHZhbHVlcykgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogU2V0PFQ+ID0gYWNjO1xuXG4gICAgICBpZiAoIXNldENvbnRhaW5zQWxsVmFsdWVzKGFjYywgdmFsdWVzKSkge1xuICAgICAgICByZXN1bHQgPSBhZGRUb1NldENvcHkoYWNjLCB2YWx1ZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIG5ldyBTZXQ8VD4oKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKHgpID0+IEFycmF5LmZyb20oeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy5hbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHZhbHVlczogVFtdKSA9PiB0aGlzLmxvYWRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGxvYWRTb3VyY2VzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLl9sb2FkU291cmNlcy5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgc3dpdGNoTWFwKChsb2FkU291cmNlKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlUmVhZGVyIH0gPSB0aGlzO1xuXG4gICAgICByZXR1cm4gbG9hZFNvdXJjZS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHNvdXJjZXM6IFNvdXJjZVNlbGVjdExvYWRTb3VyY2U8TT5bXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZU9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RMb2FkU291cmNlTG9hZGluZ1N0YXRlPE0+PltdID0gc291cmNlcy5tYXAoKHgpID0+IHgubWV0YS5waXBlKG1hcCgobWV0YVN0YXRlKSA9PiAoeyAuLi5tZXRhU3RhdGUsIGxhYmVsOiB4LmxhYmVsIH0pKSkpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZU9icy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZihzdWNjZXNzUmVzdWx0KFtdKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNvdXJjZU9icykucGlwZShcbiAgICAgICAgICAgICAgbWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVzV2l0aFZhbHVlcyA9IHguZmlsdGVyKCh5KSA9PiBpc0xvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUoeSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSB4LmZpbmRJbmRleChpc0xvYWRpbmdTdGF0ZUxvYWRpbmcpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gc3RhdGVzV2l0aFZhbHVlcy5tYXAoKHkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiAoeS52YWx1ZSBhcyBNW10pLm1hcCgobWV0YSkgPT4gKHsgbWV0YSwgdmFsdWU6IHZhbHVlUmVhZGVyKG1ldGEpIH0pKVxuICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuICByZWFkb25seSBmcm9tT3BlblNvdXJjZSQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPj4gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBzZXRzQXJlRXF1aXZhbGVudChhLnZhbHVlc1NldCwgYi52YWx1ZXNTZXQpKSxcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIHZhbHVlczogeC52YWx1ZXNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZnJvbU9wZW5Tb3VyY2UkLCB0aGlzLmxvYWRTb3VyY2VzJF0pLnBpcGUoXG4gICAgbWFwKChbZnJvbU9wZW5Tb3VyY2VHcm91cCwgbG9hZFNvdXJjZXNdKSA9PiB7XG4gICAgICBjb25zdCBsb2FkU291cmNlc1ZhbHVlID0gbG9hZFNvdXJjZXMudmFsdWUgPz8gW107XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gW2Zyb21PcGVuU291cmNlR3JvdXAsIC4uLmxvYWRTb3VyY2VzVmFsdWVdO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPiA9IHtcbiAgICAgICAgbG9hZGluZzogbG9hZFNvdXJjZXMubG9hZGluZyxcbiAgICAgICAgdmFsdWVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxWYWx1ZUdyb3Vwc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLnNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXM6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPikgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZShzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2YWx1ZXNGcm9tVmFsdWVzR3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgIHZhbHVlczogc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlcy52YWx1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQucGlwZShcbiAgICAgICAgICBtYXAoKHNvdXJjZXNTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxsR3JvdXBzOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBbdmFsdWVzRnJvbVZhbHVlc0dyb3VwLCAuLi5zb3VyY2VzU3RhdGUudmFsdWVdO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+ID0ge1xuICAgICAgICAgICAgICBsb2FkaW5nOiBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzLmxvYWRpbmcgfHwgc291cmNlc1N0YXRlLmxvYWRpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBhbGxHcm91cHNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihiZWdpbkxvYWRpbmc8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPih7fSkpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLmFsbFZhbHVlR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IoXG4gICAgICBzd2l0Y2hNYXAoKGdyb3VwczogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsID0gbWFrZVZhbHVlc0dyb3VwTWFwKGdyb3VwcywgKHgpID0+IHgubGFiZWwpIGFzIE1hcDxzdHJpbmcsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT47XG5cbiAgICAgICAgY29uc3QgdmFsdWVzRW5jb3VudGVyZWQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGNvbnN0IGFsbFVuaXF1ZVZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHM6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIC8vIHNvcnQgdG8gcHV0IHRoZSBibGFuayBsYWJlbCBmaXJzdFxuICAgICAgICBBcnJheS5mcm9tKGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsLmVudHJpZXMoKSlcbiAgICAgICAgICAuc29ydChzb3J0QnlTdHJpbmdGdW5jdGlvbigoeCkgPT4geFswXSkpXG4gICAgICAgICAgLmZvckVhY2goKFtsYWJlbCwgZ3JvdXBzXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gW107XG5cbiAgICAgICAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICBncm91cC52YWx1ZXMuZm9yRWFjaCgoc2VsZWN0VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlc0VuY291bnRlcmVkLmhhcyhzZWxlY3RWYWx1ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGFsbFVuaXF1ZVZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlc0VuY291bnRlcmVkLmFkZChzZWxlY3RWYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc2ltcGxpZmllZFZhbHVlc0dyb3Vwcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKGFsbFVuaXF1ZVZhbHVlcykucGlwZShcbiAgICAgICAgICBtYXAoKGRpc3BsYXlWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNNYXAgPSBuZXcgTWFwKGRpc3BsYXlWYWx1ZXMubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheUdyb3VwczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXSA9IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHMubWFwKCh2YWx1ZUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGZpbHRlck1heWJlQXJyYXlWYWx1ZXModmFsdWVHcm91cC52YWx1ZXMubWFwKCh4KSA9PiBkaXNwbGF5VmFsdWVzTWFwLmdldCh4LnZhbHVlKSkpO1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHZhbHVlR3JvdXAubGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWVzXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlHcm91cHM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzJDogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPiA9IHRoaXMuYWxsT3B0aW9uR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSxcbiAgICBtYXAoKHgpID0+IHggPz8gW10pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgb3B0aW9ucyQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0T3B0aW9uczxULCBNPj4gPSB0aGlzLmFsbE9wdGlvbkdyb3VwcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5jbHVkZWQ6IGdyb3VwZWRWYWx1ZXMsIGV4Y2x1ZGVkOiBub25Hcm91cGVkR3JvdXAgfSA9IHNlcGFyYXRlVmFsdWVzKHgsICh5KSA9PiBCb29sZWFuKHkubGFiZWwpKTtcblxuICAgICAgY29uc3QgcmVzdWx0OiBTb3VyY2VTZWxlY3RPcHRpb25zPFQsIE0+ID0ge1xuICAgICAgICBub25Hcm91cGVkVmFsdWVzOiBub25Hcm91cGVkR3JvdXBbMF0/LnZhbHVlcyA/PyBbXSxcbiAgICAgICAgZ3JvdXBlZFZhbHVlc1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXMkID0gdGhpcy5vcHRpb25zJC5waXBlKG1hcCgoeCkgPT4geC5ub25Hcm91cGVkVmFsdWVzKSk7XG4gIHJlYWRvbmx5IGdyb3VwZWRPcHRpb25zJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKHgpID0+IHguZ3JvdXBlZFZhbHVlcykpO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLm5vbkdyb3VwZWRWYWx1ZXMkKTtcbiAgcmVhZG9ubHkgZ3JvdXBlZE9wdGlvbnNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmdyb3VwZWRPcHRpb25zJCk7XG5cbiAgZ2V0IHNvdXJjZVNlbGVjdEZpZWxkKCk6IFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzO1xuICB9XG5cbiAgZ2V0IG9wZW5Tb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMub3BlblNvdXJjZTtcbiAgfVxuXG4gIGdldCBzaG93T3BlblNvdXJjZUJ1dHRvbigpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLm9wZW5Tb3VyY2UpO1xuICB9XG5cbiAgZ2V0IGxvYWRTb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmxvYWRTb3VyY2VzO1xuICB9XG5cbiAgZ2V0IHZhbHVlUmVhZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlUmVhZGVyO1xuICB9XG5cbiAgZ2V0IG1ldGFMb2FkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubWV0YUxvYWRlcjtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Rm9yVmFsdWUoKTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0QnV0dG9uSWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zZWxlY3RCdXR0b25JY29uID8/ICdhZGQnO1xuICB9XG5cbiAgZ2V0IG11bHRpcGxlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm11bHRpcGxlIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHJlZnJlc2hEaXNwbGF5VmFsdWVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQ7XG4gIH1cblxuICBsb2FkU291cmNlU2VsZWN0VmFsdWVGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoc291cmNlU2VsZWN0VmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdKSA9PiBzdWNjZXNzUmVzdWx0KHNvdXJjZVNlbGVjdFZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4ge1xuICAgIGNvbnN0IHsgdmFsdWVSZWFkZXIgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKG1ldGFNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlcy5tYXAoKGhhc2gsIGkpID0+IFtpLCBoYXNoLCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT5dKTtcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpbmNsdWRlZDogaGFzTWV0YSxcbiAgICAgICAgICBleGNsdWRlZDogbmVlZHNNZXRhXG4gICAgICAgIH0gPSBzZXBhcmF0ZVZhbHVlcyhtYXBwaW5nUmVzdWx0LCAoeCkgPT4gQm9vbGVhbih4WzJdKSk7XG5cbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPjtcblxuICAgICAgICBpZiAobmVlZHNNZXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBHbyBnZXQgdGhlIG1ldGEgdmFsdWUuXG4gICAgICAgICAgY29uc3QgbWV0YVZhbHVlc09icyA9IHRoaXMubWV0YUxvYWRlcihuZWVkc01ldGEubWFwKCh4KSA9PiB4WzFdKSk7XG5cbiAgICAgICAgICBvYnMgPSBtZXRhVmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChtZXRhUmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtZXRhUmVzdWx0c01hcHBpbmc6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBtZXRhUmVzdWx0cy5tYXAoKG1ldGEpID0+ICh7IG1ldGEsIHZhbHVlOiB2YWx1ZVJlYWRlcihtZXRhKSB9KSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChtZXRhUmVzdWx0c01hcHBpbmcubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgbWV0YU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIG1ldGFSZXN1bHRzTWFwcGluZy5mb3JFYWNoKCh4KSA9PiBtZXRhTWFwLnNldCh4LnZhbHVlLCB4KSk7XG5cbiAgICAgICAgICAgICAgLy8gWmlwIHZhbHVlcyBiYWNrIHRvZ2V0aGVyLlxuICAgICAgICAgICAgICBjb25zdCBuZXdEaXNwbGF5VmFsdWVzID0gbWFwcGluZ1Jlc3VsdC5tYXAoKHgpID0+IHhbMl0gPz8gdmFsdWVJbmRleEhhc2hNYXAuZ2V0KHhbMV0pKTtcblxuICAgICAgICAgICAgICAvLyBSZXR1cm4gZGlzcGxheSB2YWx1ZXMuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdEaXNwbGF5VmFsdWVzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIGFsbCBkaXNwbGF5IHZhbHVlcyBhcmUgaGFzaGVkIHJldHVybiB0aGVtXG4gICAgICAgICAgb2JzID0gb2YoaGFzTWV0YS5tYXAoKHgpID0+IHhbMl0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvclNlbGVjdFZhbHVlcyh2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoZGlzcGxheVZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10pID0+IHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUhhc2hNYXAucGlwZShcbiAgICAgIG1lcmdlTWFwKChtZXRhTWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdSZXN1bHQgPSB2YWx1ZXMubWFwKCh4KSA9PiBbeCwgeC52YWx1ZV0gYXMgW1NvdXJjZVNlbGVjdFZhbHVlPFQsIE0+LCBUXSkubWFwKChbeCwgaGFzaF0sIGkpID0+IFtpLCBoYXNoLCB4LCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4sIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcigoeCkgPT4gQm9vbGVhbih4WzNdKSk7XG4gICAgICAgIGNvbnN0IG5lZWRzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKCh4KSA9PiAheFszXSk7XG4gICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+O1xuXG4gICAgICAgIGlmIChuZWVkc0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCgoeCkgPT4geFsyXSkpO1xuXG4gICAgICAgICAgb2JzID0gZGlzcGxheVZhbHVlc09icy5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgoZGlzcGxheVJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVJlc3VsdHNNYXBwaW5nOiBbU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+LCBUXVtdID0gKGRpc3BsYXlSZXN1bHRzIGFzIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdKS5tYXAoKHgpID0+IFt4LCB4LnZhbHVlXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChkaXNwbGF5UmVzdWx0c01hcHBpbmcubWFwKChbeCwgaGFzaF0pID0+IFtoYXNoLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBtZXRhTWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKFt4LCBoYXNoXSkgPT4gbWV0YU1hcC5zZXQoaGFzaCwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKCh4KSA9PiB4WzNdID8/IHZhbHVlSW5kZXhIYXNoTWFwLmdldCh4WzFdKSk7XG5cbiAgICAgICAgICAgICAgLy8gUmV0dXJuIGRpc3BsYXkgdmFsdWVzLlxuICAgICAgICAgICAgICByZXR1cm4gbmV3RGlzcGxheVZhbHVlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhhdC5cbiAgICAgICAgICBvYnMgPSBvZihoYXNEaXNwbGF5Lm1hcCgoeCkgPT4geFszXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmFsbE9wdGlvbkdyb3Vwc1N0YXRlJCB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGxvYWRTb3VyY2VzIH0gPSB0aGlzO1xuXG4gICAgdGhpcy5fbG9hZFNvdXJjZXMubmV4dChsb2FkU291cmNlcz8uKCkgfHwgb2YoW10pKTtcblxuICAgIGlmICh0aGlzLnJlZnJlc2hEaXNwbGF5VmFsdWVzJCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9jbGVhckRpc3BsYXlIYXNoTWFwU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMucmVmcmVzaERpc3BsYXlWYWx1ZXMkLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5uZXh0KG5ldyBNYXAoKSkpO1xuICAgIH1cblxuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG5cbiAgICAvLyBjb3B5IGFsbCB2YWx1ZXMgZnJvbSB0aGUgc291cmNlcyBpbnRvIHRoZSB2YWx1ZXMgaGFzaCBtYXAgdG8gcHJldmVudCByZWxvYWRpbmdcbiAgICB0aGlzLl9jYWNoZU1ldGFTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy52YWx1ZUdyb3Vwc0Zyb21Tb3VyY2VzU3RhdGUkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgY29uc3QgaGFzaE1hcCA9IHRoaXMuX3ZhbHVlTWV0YUhhc2hNYXAudmFsdWU7XG4gICAgICB4LnZhbHVlLmZvckVhY2goKHgpID0+IHgudmFsdWVzLmZvckVhY2goKHkpID0+IGhhc2hNYXAuc2V0KHkudmFsdWUsIHkpKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2NhY2hlTWV0YVN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2xlYXJEaXNwbGF5SGFzaE1hcFN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2xvYWRTb3VyY2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGhhbmRsZVNlbGVjdE9wdGlvbnM6IFdvcmtVc2luZ0NvbnRleHQ8dW5rbm93bj4gPSAoXywgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHsgb3BlblNvdXJjZSB9ID0gdGhpcztcbiAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJ1dHRvbkVsZW1lbnQoKTtcblxuICAgIGlmIChvcGVuU291cmNlICYmIG9yaWdpbikge1xuICAgICAgY29uc3Qgc291cmNlT2JzID0gb3BlblNvdXJjZSh7IG9yaWdpbiB9KTtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aE9ic2VydmFibGUoXG4gICAgICAgIHNvdXJjZU9icy5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKChyZXN1bHQ6IFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvQWRkID0gbWVyZ2VBcnJheXMoW3Jlc3VsdC5zZWxlY3QsIHJlc3VsdC5vcHRpb25zXSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRUb09wZW5Tb3VyY2VNYXAodmFsdWVzVG9BZGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNldCkge1xuICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShyZXN1bHQuc2V0Lm1hcCgoeCkgPT4gdGhpcy52YWx1ZVJlYWRlcih4KSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc2VsZWN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkVG9DdXJyZW50VmFsdWUocmVzdWx0LnNlbGVjdC5tYXAoKHgpID0+IHRoaXMudmFsdWVSZWFkZXIoeCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnJlamVjdCgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFkZFRvT3BlblNvdXJjZU1hcChpbnB1dDogTVtdKSB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHZhbHVlczogbWV0YSwgdmFsdWVzU2V0OiBpbml0aWFsVmFsdWVzIH0gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS52YWx1ZTtcblxuICAgIGNvbnN0IG5ld01ldGFGcm9tSW5wdXQ6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcbiAgICBjb25zdCB2YWx1ZXNTZXQgPSBuZXcgU2V0KGluaXRpYWxWYWx1ZXMpO1xuXG4gICAgaW5wdXQuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVJlYWRlcih4KTtcblxuICAgICAgaWYgKCF2YWx1ZXNTZXQuaGFzKHZhbHVlKSkge1xuICAgICAgICBuZXdNZXRhRnJvbUlucHV0LnB1c2goeyBtZXRhOiB4LCB2YWx1ZSB9KTtcbiAgICAgICAgdmFsdWVzU2V0LmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobmV3TWV0YUZyb21JbnB1dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5uZXh0KHtcbiAgICAgICAgdmFsdWVzOiBbLi4ubWV0YSwgLi4ubmV3TWV0YUZyb21JbnB1dF0sXG4gICAgICAgIHZhbHVlc1NldDogdmFsdWVzU2V0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFRvQ3VycmVudFZhbHVlKHZhbHVlczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXNBcnJheSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gWy4uLmN1cnJlbnRWYWx1ZSwgLi4udmFsdWVzXTtcbiAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShuZXdWYWx1ZUFycmF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudFZhbHVlKG5ld1ZhbHVlQXJyYXk6IFRbXSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IG5ld1ZhbHVlQXJyYXkgOiBsYXN0VmFsdWUobmV3VmFsdWVBcnJheSk7IC8vIHBpY2sgbGFzdCB2YWx1ZSwgYXMgdGhlIGxhc3QgdmFsdWUgYWRkZWQgaXMgdGhlIG5ld2VzdCB2YWx1ZS5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZFwiPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtY29udGVudFwiPlxuICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtc2VsZWN0XCIgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCI+XG4gICAgICBAZm9yICh2YWx1ZSBvZiBub25Hcm91cGVkVmFsdWVzU2lnbmFsKCk7IHRyYWNrIHZhbHVlLnZhbHVlKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKG9wdGlvbkdyb3VwIG9mIGdyb3VwZWRPcHRpb25zU2lnbmFsKCk7IHRyYWNrIG9wdGlvbkdyb3VwLmxhYmVsKSB7XG4gICAgICAgIDxtYXQtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbkdyb3VwLmxhYmVsXCI+XG4gICAgICAgICAgQGZvciAodmFsdWUgb2Ygb3B0aW9uR3JvdXAudmFsdWVzOyB0cmFjayB2YWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCI+XG4gICAgICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgIH1cbiAgICA8L21hdC1zZWxlY3Q+XG4gICAgQGlmIChzaG93T3BlblNvdXJjZUJ1dHRvbikge1xuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICA8ZGJ4LWFjdGlvbiBkYnhBY3Rpb25WYWx1ZSBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVTZWxlY3RPcHRpb25zXCIgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZC1idXR0b25cIj5cbiAgICAgICAgPGRieC1idXR0b24gI2J1dHRvbiBkYnhBY3Rpb25CdXR0b24gW2ZhYl09XCJ0cnVlXCIgW2ljb25Pbmx5XT1cInRydWVcIiBbaWNvbl09XCJzZWxlY3RCdXR0b25JY29uXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9kYngtYWN0aW9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkYngtbG9hZGluZyBjbGFzcz1cImRieC1zb3VyY2Utc2VsZWN0LWZpZWxkLWxvYWRpbmdcIiBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbjwvZGl2PlxuIl19
@@ -179,7 +179,7 @@ export class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
179
179
  </div>
180
180
  </dbx-subsection>
181
181
  </div>
182
- `, isInline: true, dependencies: [{ kind: "component", type: DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
182
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
183
183
  }
184
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
185
185
  type: Component,
@@ -228,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
228
228
  standalone: true
229
229
  }]
230
230
  }] });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQXNELGtCQUFrQixFQUFZLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUMzSyxPQUFPLEVBQXdCLGNBQWMsRUFBdUMsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBb0dsRSxNQUFNLE9BQU8sK0JBQTZDLFNBQVEsY0FBOEQ7SUFDN0csY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUU7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztRQUVsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFD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QkFBRSxtQkFBbUI7OzRGQUl2TCwrQkFBK0I7a0JBNUMzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztvQkFDbk0sZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNEZWNpc2lvbkZ1bmN0aW9uLCBjYWNoZWRHZXR0ZXIsIERlY2lzaW9uRnVuY3Rpb24sIEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgR2V0dGVyLCBnZXRWYWx1ZUZyb21HZXR0ZXIsIEluZGV4UmVmLCBtYWtlR2V0dGVyLCB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBGaWVsZEFycmF5VHlwZUNvbmZpZywgRmllbGRBcnJheVR5cGUsIEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzLCBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IERieEJhckRpcmVjdGl2ZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBEYnhCdXR0b25TcGFjZXJEaXJlY3RpdmUsIERieFN1YlNlY3Rpb25Db21wb25lbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUID0gdW5rbm93bj4gZXh0ZW5kcyBJbmRleFJlZiB7XG4gIHJlYWRvbmx5IHZhbHVlPzogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VCA9IHVua25vd24+IGV4dGVuZHMgUGFydGlhbDxEYnhGb3JtUmVwZWF0QXJyYXlQYWlyPFQ+PiB7XG4gIHJlYWRvbmx5IGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZztcbn1cblxuZXhwb3J0IHR5cGUgRGJ4Rm9ybVJlcGVhdEFycmF5QWRkVGVtcGxhdGVGdW5jdGlvbjxUPiA9IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dDxQYXJ0aWFsPE1heWJlPFQ+PiwgbnVtYmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlDb25maWc8VCA9IHVua25vd24+IGV4dGVuZHMgUGljazxGb3JtbHlGaWVsZFByb3BzLCAnbWF4TGVuZ3RoJyB8ICdsYWJlbCcgfCAnZGVzY3JpcHRpb24nPiB7XG4gIHJlYWRvbmx5IGxhYmVsRm9yRmllbGQ/OiBzdHJpbmcgfCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8c3RyaW5nLCBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VD4+O1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBhZGRUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgdGVtcGxhdGUgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IHRlbXBsYXRlIHdoZW4gdXNpbmcgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBhZGRUZW1wbGF0ZT86IERieEZvcm1SZXBlYXRBcnJheUFkZFRlbXBsYXRlRnVuY3Rpb248VD47XG4gIC8qKlxuICAgKiBUZXh0IGZvciB0aGUgZHVwbGljYXRlIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGR1cGxpY2F0ZVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IGZvciB0aGUgcmVtb3ZlIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGUgb3Igbm90IHRvIGRpc2FibGUgcmVhcnJhbmdpbmcgaXRlbXMuXG4gICAqXG4gICAqIEZhbHNlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlUmVhcnJhbmdlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdldGhlciBvciBub3QgdG8gc2hvdyB0aGUgYWRkIGJ1dHRvbi5cbiAgICpcbiAgICogVHJ1ZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dBZGQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gYWxsb3cgZHVwbGljYXRlaW5nIGl0ZW1zLiBDYW4gb3B0aW9uYWxseSBwYXNzIGEgZGVjaXNpb24gZnVuY3Rpb24gdGhhdCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IGEgc3BlY2lmaWMgaXRlbSBjYW4gYmUgcmVtb3ZlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RHVwbGljYXRlPzogYm9vbGVhbiB8IERlY2lzaW9uRnVuY3Rpb248RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyByZW1vdmluZyBpdGVtcy4gQ2FuIG9wdGlvbmFsbHkgcGFzcyBhIGRlY2lzaW9uIGZ1bmN0aW9uIHRoYXQgZGVjaWRlcyB3aGV0aGVyIG9yIG5vdCBhIHNwZWNpZmljIGl0ZW0gY2FuIGJlIHJlbW92ZWQuXG4gICAqL1xuICByZWFkb25seSBhbGxvd1JlbW92ZT86IGJvb2xlYW4gfCBEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+O1xuICAvKipcbiAgICogQWRkcyB0aGUgZHVwbGljYXRlIHRvIHRoZSBlbmQgb2YgdGhlIHZhbHVlc1xuICAgKi9cbiAgcmVhZG9ubHkgYWRkRHVwbGljYXRlVG9FbmQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5XCI+XG4gICAgICA8ZGJ4LXN1YnNlY3Rpb24gW2hlYWRlcl09XCJsYWJlbFwiIFtoaW50XT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgIDwhLS0gRmllbGRzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZpZWxkc1wiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERpc2FibGVkXT1cImRpc2FibGVSZWFycmFuZ2VcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpZWxkLmZpZWxkR3JvdXA7IHRyYWNrIGZpZWxkLmtleTsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGRcIiBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1kcmFnLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRieC1iYXIgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktYmFyIGRieC1iYXItZml4ZWQtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgQGlmICghZGlzYWJsZVJlYXJyYW5nZSkge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1kcmFnLWJ1dHRvblwiIGNka0RyYWdIYW5kbGUgbWF0LXN0cm9rZWQtYnV0dG9uPjxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbi1zcGFjZXI+PC9kYngtYnV0dG9uLXNwYWNlcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGg0PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBlYXQtYXJyYXktbnVtYmVyXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBsYWJlbEZvckl0ZW0oZmllbGQsIGkpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoYWxsb3dEdXBsaWNhdGUoaSkpIHtcbiAgICAgICAgICAgICAgICAgIDxkYngtYnV0dG9uIFtzdHJva2VkXT1cInRydWVcIiBbdGV4dF09XCJkdXBsaWNhdGVUZXh0XCIgKGJ1dHRvbkNsaWNrKT1cImR1cGxpY2F0ZShpKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGFsbG93UmVtb3ZlKGkpKSB7XG4gICAgICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBbc3Ryb2tlZF09XCJ0cnVlXCIgW3RleHRdPVwicmVtb3ZlVGV4dFwiIChidXR0b25DbGljayk9XCJyZW1vdmUoaSlcIj48L2RieC1idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2RieC1iYXI+XG4gICAgICAgICAgICAgIDxmb3JtbHktZmllbGQgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGQtY29udGVudFwiIFtmaWVsZF09XCJmaWVsZFwiPjwvZm9ybWx5LWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBBZGQgQnV0dG9uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZvb3RlclwiPlxuICAgICAgICAgIEBpZiAoYWxsb3dBZGQpIHtcbiAgICAgICAgICAgIDxkYngtYnV0dG9uIFtyYWlzZWRdPVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJhZGRJdGVtRGlzYWJsZWRcIiBbdGV4dF09XCJhZGRUZXh0XCIgKGJ1dHRvbkNsaWNrKT1cImFkZENsaWNrZWQoKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kYngtc3Vic2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaW1wb3J0czogW0RieFN1YlNlY3Rpb25Db21wb25lbnQsIERieEJhckRpcmVjdGl2ZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBGb3JtbHlNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBEYnhCdXR0b25TcGFjZXJEaXJlY3RpdmUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtUmVwZWF0QXJyYXlUeXBlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkQXJyYXlUeXBlQ29uZmlnPERieEZvcm1SZXBlYXRBcnJheUNvbmZpZz4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbGFiZWxGb3JGaWVsZCA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnJlcGVhdEFycmF5RmllbGQubGFiZWxGb3JGaWVsZDtcblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ha2VHZXR0ZXIoaW5wdXQgPz8gJycpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWxsb3dSZW1vdmU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93UmVtb3ZlLCB0cnVlKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWxsb3dEdXBsaWNhdGU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93RHVwbGljYXRlIHx8IGZhbHNlLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGdldCByZXBlYXRBcnJheUZpZWxkKCk6IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHM7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5sYWJlbCA/PyAodGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCBkdXBsaWNhdGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZXh0ID8/ICdEdXBsaWNhdGUnO1xuICB9XG5cbiAgZ2V0IGFkZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLmFkZFRleHQgPz8gJ0FkZCc7XG4gIH1cblxuICBnZXQgYWRkVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCByZW1vdmVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5yZW1vdmVUZXh0ID8/ICdSZW1vdmUnO1xuICB9XG5cbiAgZ2V0IG1heCgpOiBNYXliZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5tYXhMZW5ndGg7XG4gIH1cblxuICBnZXQgY291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5maWVsZEdyb3VwPy5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIGdldCBkaXNhYmxlUmVhcnJhbmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuZmllbGQucHJvcHMuZGlzYWJsZVJlYXJyYW5nZSk7XG4gIH1cblxuICBnZXQgYWxsb3dBZGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMuYWxsb3dBZGQgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBhZGREdXBsaWNhdGVUb0VuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5hZGREdXBsaWNhdGVUb0VuZCA/PyBmYWxzZTtcbiAgfVxuXG4gIGFsbG93UmVtb3ZlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV0gYXMgVCB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dSZW1vdmUoKSh7XG4gICAgICBpLFxuICAgICAgdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGFsbG93RHVwbGljYXRlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV0gYXMgVDtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dEdXBsaWNhdGUoKSh7XG4gICAgICBpLFxuICAgICAgdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhZGRJdGVtRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmNhbkFkZEl0ZW07XG4gIH1cblxuICBnZXQgY2FuQWRkSXRlbSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtYXggPSB0aGlzLm1heDtcblxuICAgIGlmIChtYXggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvdW50IDwgbWF4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgdGFyZ2V0IGluZGV4IHVwIG9uZSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBtb3ZlVXAoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3dhcEluZGV4ZXMoaW5kZXgsIGluZGV4IC0gMSk7XG4gIH1cblxuICBtb3ZlRG93bihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhpbmRleCwgaW5kZXggKyAxKTtcbiAgfVxuXG4gIGFkZENsaWNrZWQoKSB7XG4gICAgY29uc3QgYWRkVGVtcGxhdGUgPSB0aGlzLmFkZFRlbXBsYXRlO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYWRkVGVtcGxhdGUgPyBhZGRUZW1wbGF0ZSh0aGlzLmNvdW50KSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFkZCh1bmRlZmluZWQsIHRlbXBsYXRlKTtcbiAgfVxuXG4gIGR1cGxpY2F0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdGFyZ2V0VmFsdWUgPSBhcnJheVtpbmRleF07XG5cbiAgICBpZiAoIXRhcmdldFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLmFkZER1cGxpY2F0ZVRvRW5kID8gYXJyYXkubGVuZ3RoIDogaW5kZXg7XG4gICAgdGhpcy5hZGQodGFyZ2V0SW5kZXgsIHRhcmdldFZhbHVlLCB7IG1hcmtBc0RpcnR5OiB0cnVlIH0pO1xuICB9XG5cbiAgc3dhcEluZGV4ZXMoY3VycmVudEluZGV4OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IGFycmF5W2N1cnJlbnRJbmRleF07XG5cbiAgICBpZiAoIXRhcmdldFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmUoY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmFkZCh0YXJnZXRJbmRleCwgdGFyZ2V0VmFsdWUsIHsgbWFya0FzRGlydHk6IHRydWUgfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duPikge1xuICAgIHRoaXMuc3dhcEluZGV4ZXMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIGxhYmVsRm9ySXRlbShmaWVsZENvbmZpZzogRm9ybWx5RmllbGRDb25maWcsIGk6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdmFsdWUgPSBhcnJheVtpXSBhcyBUO1xuXG4gICAgcmV0dXJuIGdldFZhbHVlRnJvbUdldHRlcih0aGlzLl9sYWJlbEZvckZpZWxkKCksIHtcbiAgICAgIGksXG4gICAgICB2YWx1ZSxcbiAgICAgIGZpZWxkQ29uZmlnXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQXNELGtCQUFrQixFQUFZLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUMzSyxPQUFPLEVBQXdCLGNBQWMsRUFBdUMsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBb0dsRSxNQUFNLE9BQU8sK0JBQTZDLFNBQVEsY0FBOEQ7SUFDN0csY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUU7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztRQUVsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFD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QkFBRSxtQkFBbUI7OzRGQUl2TCwrQkFBK0I7a0JBNUMzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztvQkFDbk0sZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNEZWNpc2lvbkZ1bmN0aW9uLCBjYWNoZWRHZXR0ZXIsIERlY2lzaW9uRnVuY3Rpb24sIEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgR2V0dGVyLCBnZXRWYWx1ZUZyb21HZXR0ZXIsIEluZGV4UmVmLCBtYWtlR2V0dGVyLCB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBGaWVsZEFycmF5VHlwZUNvbmZpZywgRmllbGRBcnJheVR5cGUsIEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzLCBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IERieEJhckRpcmVjdGl2ZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBEYnhCdXR0b25TcGFjZXJEaXJlY3RpdmUsIERieFN1YlNlY3Rpb25Db21wb25lbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUID0gdW5rbm93bj4gZXh0ZW5kcyBJbmRleFJlZiB7XG4gIHJlYWRvbmx5IHZhbHVlPzogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VCA9IHVua25vd24+IGV4dGVuZHMgUGFydGlhbDxEYnhGb3JtUmVwZWF0QXJyYXlQYWlyPFQ+PiB7XG4gIHJlYWRvbmx5IGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZztcbn1cblxuZXhwb3J0IHR5cGUgRGJ4Rm9ybVJlcGVhdEFycmF5QWRkVGVtcGxhdGVGdW5jdGlvbjxUPiA9IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dDxQYXJ0aWFsPE1heWJlPFQ+PiwgbnVtYmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlDb25maWc8VCA9IHVua25vd24+IGV4dGVuZHMgUGljazxGb3JtbHlGaWVsZFByb3BzLCAnbWF4TGVuZ3RoJyB8ICdsYWJlbCcgfCAnZGVzY3JpcHRpb24nPiB7XG4gIHJlYWRvbmx5IGxhYmVsRm9yRmllbGQ/OiBzdHJpbmcgfCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8c3RyaW5nLCBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VD4+O1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBhZGRUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgdGVtcGxhdGUgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IHRlbXBsYXRlIHdoZW4gdXNpbmcgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBhZGRUZW1wbGF0ZT86IERieEZvcm1SZXBlYXRBcnJheUFkZFRlbXBsYXRlRnVuY3Rpb248VD47XG4gIC8qKlxuICAgKiBUZXh0IGZvciB0aGUgZHVwbGljYXRlIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGR1cGxpY2F0ZVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0IGZvciB0aGUgcmVtb3ZlIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGUgb3Igbm90IHRvIGRpc2FibGUgcmVhcnJhbmdpbmcgaXRlbXMuXG4gICAqXG4gICAqIEZhbHNlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlUmVhcnJhbmdlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdldGhlciBvciBub3QgdG8gc2hvdyB0aGUgYWRkIGJ1dHRvbi5cbiAgICpcbiAgICogVHJ1ZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dBZGQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gYWxsb3cgZHVwbGljYXRlaW5nIGl0ZW1zLiBDYW4gb3B0aW9uYWxseSBwYXNzIGEgZGVjaXNpb24gZnVuY3Rpb24gdGhhdCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IGEgc3BlY2lmaWMgaXRlbSBjYW4gYmUgcmVtb3ZlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RHVwbGljYXRlPzogYm9vbGVhbiB8IERlY2lzaW9uRnVuY3Rpb248RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyByZW1vdmluZyBpdGVtcy4gQ2FuIG9wdGlvbmFsbHkgcGFzcyBhIGRlY2lzaW9uIGZ1bmN0aW9uIHRoYXQgZGVjaWRlcyB3aGV0aGVyIG9yIG5vdCBhIHNwZWNpZmljIGl0ZW0gY2FuIGJlIHJlbW92ZWQuXG4gICAqL1xuICByZWFkb25seSBhbGxvd1JlbW92ZT86IGJvb2xlYW4gfCBEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+O1xuICAvKipcbiAgICogQWRkcyB0aGUgZHVwbGljYXRlIHRvIHRoZSBlbmQgb2YgdGhlIHZhbHVlc1xuICAgKi9cbiAgcmVhZG9ubHkgYWRkRHVwbGljYXRlVG9FbmQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5XCI+XG4gICAgICA8ZGJ4LXN1YnNlY3Rpb24gW2hlYWRlcl09XCJsYWJlbFwiIFtoaW50XT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgIDwhLS0gRmllbGRzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZpZWxkc1wiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERpc2FibGVkXT1cImRpc2FibGVSZWFycmFuZ2VcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpZWxkLmZpZWxkR3JvdXA7IHRyYWNrIGZpZWxkLmtleTsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGRcIiBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1kcmFnLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRieC1iYXIgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktYmFyIGRieC1iYXItZml4ZWQtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgQGlmICghZGlzYWJsZVJlYXJyYW5nZSkge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1kcmFnLWJ1dHRvblwiIGNka0RyYWdIYW5kbGUgbWF0LXN0cm9rZWQtYnV0dG9uPjxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbi1zcGFjZXI+PC9kYngtYnV0dG9uLXNwYWNlcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGg0PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBlYXQtYXJyYXktbnVtYmVyXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBsYWJlbEZvckl0ZW0oZmllbGQsIGkpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoYWxsb3dEdXBsaWNhdGUoaSkpIHtcbiAgICAgICAgICAgICAgICAgIDxkYngtYnV0dG9uIFtzdHJva2VkXT1cInRydWVcIiBbdGV4dF09XCJkdXBsaWNhdGVUZXh0XCIgKGJ1dHRvbkNsaWNrKT1cImR1cGxpY2F0ZShpKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGFsbG93UmVtb3ZlKGkpKSB7XG4gICAgICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBbc3Ryb2tlZF09XCJ0cnVlXCIgW3RleHRdPVwicmVtb3ZlVGV4dFwiIChidXR0b25DbGljayk9XCJyZW1vdmUoaSlcIj48L2RieC1idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2RieC1iYXI+XG4gICAgICAgICAgICAgIDxmb3JtbHktZmllbGQgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGQtY29udGVudFwiIFtmaWVsZF09XCJmaWVsZFwiPjwvZm9ybWx5LWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBBZGQgQnV0dG9uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZvb3RlclwiPlxuICAgICAgICAgIEBpZiAoYWxsb3dBZGQpIHtcbiAgICAgICAgICAgIDxkYngtYnV0dG9uIFtyYWlzZWRdPVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJhZGRJdGVtRGlzYWJsZWRcIiBbdGV4dF09XCJhZGRUZXh0XCIgKGJ1dHRvbkNsaWNrKT1cImFkZENsaWNrZWQoKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kYngtc3Vic2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaW1wb3J0czogW0RieFN1YlNlY3Rpb25Db21wb25lbnQsIERieEJhckRpcmVjdGl2ZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBGb3JtbHlNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBEYnhCdXR0b25TcGFjZXJEaXJlY3RpdmUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtUmVwZWF0QXJyYXlUeXBlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkQXJyYXlUeXBlQ29uZmlnPERieEZvcm1SZXBlYXRBcnJheUNvbmZpZz4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbGFiZWxGb3JGaWVsZCA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnJlcGVhdEFycmF5RmllbGQubGFiZWxGb3JGaWVsZDtcblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ha2VHZXR0ZXIoaW5wdXQgPz8gJycpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWxsb3dSZW1vdmU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93UmVtb3ZlLCB0cnVlKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWxsb3dEdXBsaWNhdGU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93RHVwbGljYXRlIHx8IGZhbHNlLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGdldCByZXBlYXRBcnJheUZpZWxkKCk6IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHM7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5sYWJlbCA/PyAodGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCBkdXBsaWNhdGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZXh0ID8/ICdEdXBsaWNhdGUnO1xuICB9XG5cbiAgZ2V0IGFkZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLmFkZFRleHQgPz8gJ0FkZCc7XG4gIH1cblxuICBnZXQgYWRkVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCByZW1vdmVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5yZW1vdmVUZXh0ID8/ICdSZW1vdmUnO1xuICB9XG5cbiAgZ2V0IG1heCgpOiBNYXliZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5tYXhMZW5ndGg7XG4gIH1cblxuICBnZXQgY291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5maWVsZEdyb3VwPy5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIGdldCBkaXNhYmxlUmVhcnJhbmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuZmllbGQucHJvcHMuZGlzYWJsZVJlYXJyYW5nZSk7XG4gIH1cblxuICBnZXQgYWxsb3dBZGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMuYWxsb3dBZGQgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBhZGREdXBsaWNhdGVUb0VuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5hZGREdXBsaWNhdGVUb0VuZCA/PyBmYWxzZTtcbiAgfVxuXG4gIGFsbG93UmVtb3ZlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV0gYXMgVCB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dSZW1vdmUoKSh7XG4gICAgICBpLFxuICAgICAgdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGFsbG93RHVwbGljYXRlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV0gYXMgVDtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dEdXBsaWNhdGUoKSh7XG4gICAgICBpLFxuICAgICAgdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhZGRJdGVtRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmNhbkFkZEl0ZW07XG4gIH1cblxuICBnZXQgY2FuQWRkSXRlbSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtYXggPSB0aGlzLm1heDtcblxuICAgIGlmIChtYXggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvdW50IDwgbWF4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgdGFyZ2V0IGluZGV4IHVwIG9uZSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBtb3ZlVXAoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3dhcEluZGV4ZXMoaW5kZXgsIGluZGV4IC0gMSk7XG4gIH1cblxuICBtb3ZlRG93bihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhpbmRleCwgaW5kZXggKyAxKTtcbiAgfVxuXG4gIGFkZENsaWNrZWQoKSB7XG4gICAgY29uc3QgYWRkVGVtcGxhdGUgPSB0aGlzLmFkZFRlbXBsYXRlO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYWRkVGVtcGxhdGUgPyBhZGRUZW1wbGF0ZSh0aGlzLmNvdW50KSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFkZCh1bmRlZmluZWQsIHRlbXBsYXRlKTtcbiAgfVxuXG4gIGR1cGxpY2F0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdGFyZ2V0VmFsdWUgPSBhcnJheVtpbmRleF07XG5cbiAgICBpZiAoIXRhcmdldFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLmFkZER1cGxpY2F0ZVRvRW5kID8gYXJyYXkubGVuZ3RoIDogaW5kZXg7XG4gICAgdGhpcy5hZGQodGFyZ2V0SW5kZXgsIHRhcmdldFZhbHVlLCB7IG1hcmtBc0RpcnR5OiB0cnVlIH0pO1xuICB9XG5cbiAgc3dhcEluZGV4ZXMoY3VycmVudEluZGV4OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IGFycmF5W2N1cnJlbnRJbmRleF07XG5cbiAgICBpZiAoIXRhcmdldFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmUoY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmFkZCh0YXJnZXRJbmRleCwgdGFyZ2V0VmFsdWUsIHsgbWFya0FzRGlydHk6IHRydWUgfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duPikge1xuICAgIHRoaXMuc3dhcEluZGV4ZXMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIGxhYmVsRm9ySXRlbShmaWVsZENvbmZpZzogRm9ybWx5RmllbGRDb25maWcsIGk6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdmFsdWUgPSBhcnJheVtpXSBhcyBUO1xuXG4gICAgcmV0dXJuIGdldFZhbHVlRnJvbUdldHRlcih0aGlzLl9sYWJlbEZvckZpZWxkKCksIHtcbiAgICAgIGksXG4gICAgICB2YWx1ZSxcbiAgICAgIGZpZWxkQ29uZmlnXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1217,7 +1217,7 @@ class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
1217
1217
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1218
1218
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-popover-button", viewQueries: [{ propertyName: "buttonPopoverOrigin", first: true, predicate: ["buttonPopoverOrigin"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
1219
1219
  <dbx-button #buttonPopoverOrigin icon="date_range" [disabled]="disabledSignal()" [raised]="true" color="accent" [text]="buttonTextSignal()" (buttonClick)="openPopover()"></dbx-button>
1220
- `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1220
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1221
1221
  }
1222
1222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, decorators: [{
1223
1223
  type: Component,
@@ -1314,7 +1314,7 @@ class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
1314
1314
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1315
1315
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-selection-toggle-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1316
1316
  <dbx-button [disabled]="disableButtonSignal()" [buttonDisplay]="buttonDisplaySignal()" [raised]="true" (buttonClick)="toggleSelection()"></dbx-button>
1317
- `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1317
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1318
1318
  }
1319
1319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, decorators: [{
1320
1320
  type: Component,
@@ -1531,7 +1531,7 @@ class DbxScheduleSelectionCalendarDateDialogButtonComponent {
1531
1531
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1532
1532
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: { buttonText: { classPropertyName: "buttonText", publicName: "buttonText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, contentConfig: { classPropertyName: "contentConfig", publicName: "contentConfig", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1533
1533
  <dbx-button [raised]="true" color="accent" [text]="buttonText()" [disabled]="disabled()" (buttonClick)="clickCustomize()"></dbx-button>
1534
- `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "style", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1534
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1535
1535
  }
1536
1536
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, decorators: [{
1537
1537
  type: Component,