ng-tailwind 5.1.25 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ import * as i5 from "../../ngt-input/ngt-input.component";
9
9
  import * as i6 from "../../ngt-modal/ngt-modal-header/ngt-modal-header.component";
10
10
  import * as i7 from "../../ngt-modal/ngt-modal-body/ngt-modal-body.component";
11
11
  import * as i8 from "../../ngt-action/ngt-action.component";
12
+ import * as i9 from "../../ngt-svg/ngt-svg.component";
12
13
  export class NgtThComponent {
13
14
  constructor(injector, hostElement, ngtStylizableDirective, ngtDataTable) {
14
15
  this.injector = injector;
@@ -27,6 +28,8 @@ export class NgtThComponent {
27
28
  this.inputFocused = false;
28
29
  this.isCurrentSort = false;
29
30
  this.sortDirection = '';
31
+ this.filterModalHeaderStyle = new NgtStylizableService();
32
+ this.filterModalBodyStyle = new NgtStylizableService();
30
33
  this.subscriptions = [];
31
34
  if (this.checkDataTable()) {
32
35
  this.subscriptions.push(this.ngtDataTable.onDataChange.subscribe(() => {
@@ -166,6 +169,14 @@ export class NgtThComponent {
166
169
  'text',
167
170
  'font',
168
171
  ]);
172
+ this.filterModalHeaderStyle.load(this.injector, 'FilterModalHeader', {
173
+ pb: 'pb-3',
174
+ color: {}
175
+ });
176
+ this.filterModalBodyStyle.load(this.injector, 'FilterModalBody', {
177
+ px: 'px-0',
178
+ py: 'py-0'
179
+ });
169
180
  }
170
181
  destroySubscriptions() {
171
182
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
@@ -173,10 +184,10 @@ export class NgtThComponent {
173
184
  }
174
185
  }
175
186
  NgtThComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtThComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i1.NgtStylizableDirective, optional: true, self: true }, { token: i2.NgtDatatableComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
176
- NgtThComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtThComponent, selector: "[ngt-th]", inputs: { reference: "reference", sortReference: "sortReference", modalWidth: "modalWidth", searchModalOverflow: "searchModalOverflow", sortable: "sortable", searchable: "searchable", hasCustomSearch: "hasCustomSearch", searchLabel: "searchLabel", sortableTooltip: "sortableTooltip" }, outputs: { onEnableSearch: "onEnableSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "modal", first: true, predicate: ["modal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' [forceEnable]=\"true\" ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n (onClose)=\"ngtDataTable.searchModal.close()\">\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-gray-800 text-sm\">{{ searchLabel }}</span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body [isDisabled]=\"false\">\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgtInputComponent, selector: "ngt-input", inputs: ["label", "placeholder", "shining", "loading", "helpTitle", "helpTextColor", "helpText", "innerLeftIcon", "innerLeftIconColor", "innerRightIcon", "innerRightIconColor", "decimalMaskPrecision", "showCharactersLength", "uppercase", "customInnerContentTemplate", "helperReverseYPosition", "helperAutoXReverse", "isDisabled", "isReadonly", "showRoundedIcon", "type", "name", "mask", "focus", "allowClear", "jit", "useInputEvent", "findExistingResource", "allowPhoneValidation", "validatePassword", "passwordableId", "passwordPolicyId", "isRequired", "uniqueResource", "minValue", "maxValue", "maxLength", "minLength", "match", "multipleOf", "validateMinValueOnMask", "externalServerDependency", "customValidator"], outputs: ["onClickLeftIcon", "onClickRightIcon", "validatePhoneResult"] }, { kind: "component", type: i6.NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses"] }, { kind: "component", type: i7.NgtModalBodyComponent, selector: "ngt-modal-body", inputs: ["isDisabled"] }, { kind: "component", type: i8.NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "directive", type: i1.NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }] });
187
+ NgtThComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtThComponent, selector: "[ngt-th]", inputs: { reference: "reference", sortReference: "sortReference", modalWidth: "modalWidth", searchModalOverflow: "searchModalOverflow", sortable: "sortable", searchable: "searchable", hasCustomSearch: "hasCustomSearch", searchLabel: "searchLabel", searchIcon: "searchIcon", sortableTooltip: "sortableTooltip" }, outputs: { onEnableSearch: "onEnableSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "modal", first: true, predicate: ["modal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' [forceEnable]=\"true\" ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n [ngtStyle]=\"filterModalHeaderStyle\" (onClose)=\"ngtDataTable.searchModal.close()\">\n <ngt-svg *ngIf=\"searchIcon\" [src]=\"searchIcon\" class=\"text-sm\">\n </ngt-svg>\n\n <svg *ngIf=\"!searchIcon\" class=\"fill-current self-center text-sm\" viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.0042 6.84417L11.8042 2.04417V-0.355835H-0.195801V2.04417L4.6042 6.84417V11.6442L7.0042 9.24417V6.84417Z\" />\n </svg>\n\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-sm ml-2\">\n {{ searchLabel }}\n </span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body [isDisabled]=\"false\" [ngtStyle]=\"filterModalBodyStyle\">\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgtInputComponent, selector: "ngt-input", inputs: ["label", "placeholder", "shining", "loading", "helpTitle", "helpTextColor", "helpText", "innerLeftIcon", "innerLeftIconColor", "innerRightIcon", "innerRightIconColor", "decimalMaskPrecision", "showCharactersLength", "uppercase", "customInnerContentTemplate", "helperReverseYPosition", "helperAutoXReverse", "isDisabled", "isReadonly", "showRoundedIcon", "type", "name", "mask", "focus", "allowClear", "jit", "useInputEvent", "findExistingResource", "allowPhoneValidation", "validatePassword", "passwordableId", "passwordPolicyId", "isRequired", "uniqueResource", "minValue", "maxValue", "maxLength", "minLength", "match", "multipleOf", "validateMinValueOnMask", "externalServerDependency", "customValidator"], outputs: ["onClickLeftIcon", "onClickRightIcon", "validatePhoneResult"] }, { kind: "component", type: i6.NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses", "ngtStyle"] }, { kind: "component", type: i7.NgtModalBodyComponent, selector: "ngt-modal-body", inputs: ["ngtStyle", "isDisabled"] }, { kind: "component", type: i8.NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "directive", type: i1.NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }, { kind: "component", type: i9.NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }] });
177
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtThComponent, decorators: [{
178
189
  type: Component,
179
- args: [{ selector: '[ngt-th]', template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' [forceEnable]=\"true\" ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n (onClose)=\"ngtDataTable.searchModal.close()\">\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-gray-800 text-sm\">{{ searchLabel }}</span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body [isDisabled]=\"false\">\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>" }]
190
+ args: [{ selector: '[ngt-th]', template: "<div class=\"flex items-center w-full {{ ngtStyle.compile(['justifyContent']) }}\" [title]=\"getTooltip()\" (click)='sort()'\n [class.cursor-pointer]='sortable'>\n <ng-content></ng-content>\n <ng-container *ngIf='sortable && isCurrentSort'>\n <svg *ngIf=\"sortDirection == 'asc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\" />\n </svg>\n\n <svg *ngIf=\"sortDirection == 'desc'\" class=\"fill-current self-center cursor-pointer ml-1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M10.707 7.05L10 6.343 4.343 12l1.414 1.414L10 9.172l4.243 4.242L15.657 12z\" />\n </svg>\n </ng-container>\n\n <ng-container *ngIf='searchable'>\n <div (click)='enableSearch($event)' class=\"float-right ml-2\" title=\"Filtrar\">\n <ngt-action class=\"text-lg\" h='h-6' w='w-6' [forceEnable]=\"true\" ngt-stylizable>\n <svg class=\"fill-current self-center\" viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1595 295q17 41-14 70l-493 493v742q0 42-39 59-13 5-25 5-27 0-45-19l-256-256q-19-19-19-45V858L211 365q-31-29-14-70 17-39 59-39h1280q42 0 59 39z\" />\n </svg>\n </ngt-action>\n </div>\n </ng-container>\n</div>\n\n<ng-template #modal>\n <ngt-modal-header [disableDefaultCloses]=\"ngtDataTable.searchModal.disableDefaultCloses\"\n [ngtStyle]=\"filterModalHeaderStyle\" (onClose)=\"ngtDataTable.searchModal.close()\">\n <ngt-svg *ngIf=\"searchIcon\" [src]=\"searchIcon\" class=\"text-sm\">\n </ngt-svg>\n\n <svg *ngIf=\"!searchIcon\" class=\"fill-current self-center text-sm\" viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.0042 6.84417L11.8042 2.04417V-0.355835H-0.195801V2.04417L4.6042 6.84417V11.6442L7.0042 9.24417V6.84417Z\" />\n </svg>\n\n <span *ngIf=\"searchLabel\" class=\"font-semibold text-sm ml-2\">\n {{ searchLabel }}\n </span>\n\n <ng-content select='[customSearchHeader]'></ng-content>\n </ngt-modal-header>\n\n <ngt-modal-body [isDisabled]=\"false\" [ngtStyle]=\"filterModalBodyStyle\">\n <ngt-input *ngIf=\"!hasCustomSearch\" jit='true' [(ngModel)]='searchTerm' (ngModelChange)='search($event)'\n placeholder='Pesquisar...' name='{{ reference }}_filter' #searchInput>\n </ngt-input>\n\n <div [hidden]='!hasCustomSearch'>\n <ng-content select='[customSearch]'></ng-content>\n </div>\n </ngt-modal-body>\n</ng-template>" }]
180
191
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i1.NgtStylizableDirective, decorators: [{
181
192
  type: Self
182
193
  }, {
@@ -207,9 +218,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
207
218
  type: Input
208
219
  }], searchLabel: [{
209
220
  type: Input
221
+ }], searchIcon: [{
222
+ type: Input
210
223
  }], sortableTooltip: [{
211
224
  type: Input
212
225
  }], onEnableSearch: [{
213
226
  type: Output
214
227
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kYXRhdGFibGUvbmd0LXRoL25ndC10aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZGF0YXRhYmxlL25ndC10aC9uZ3QtdGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUVKLFFBQVEsRUFFUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7Ozs7Ozs7QUFRL0YsTUFBTSxPQUFPLGNBQWM7SUE2QnZCLFlBQ1ksUUFBa0IsRUFDbEIsV0FBdUIsRUFDSCxzQkFBOEMsRUFFbkUsWUFBbUM7UUFKbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUNILDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFFbkUsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBNUI5QixlQUFVLEdBQVcsYUFBYSxDQUFDO1FBQ25DLHdCQUFtQixHQUFXLGtCQUFrQixDQUFDO1FBR2pELG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9CQUFlLEdBQXVCO1lBQ2xELFNBQVMsRUFBRSxrQkFBa0I7WUFDN0IsVUFBVSxFQUFFLGtCQUFrQjtZQUM5QixTQUFTLEVBQUUsa0JBQWtCO1NBQ2hDLENBQUM7UUFFZSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFLbEIsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBUzVDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUV6RixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ3JFO1lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztZQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDcEQsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7aUJBQ2hDO1lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM1RTtJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDakUsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFFaEQsSUFBSSxhQUFhLEVBQUU7Z0JBQ2YsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUN4RTtpQkFBTTtnQkFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDbEM7WUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBVTtRQUMxQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBRTNFLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQy9CO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRVIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTO2VBQ25ELElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakQsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRWhCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFTO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksS0FBSyxFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO2FBQ3pDO2lCQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLEVBQUU7Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUM7YUFDMUM7WUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFFbEUsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO1lBRXZHLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixRQUFRLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDeEIsS0FBSyxLQUFLLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQztZQUMxQixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ3pFO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFO1lBQ3ZDLEVBQUUsRUFBRSxNQUFNO1lBQ1YsRUFBRSxFQUFFLE1BQU07WUFDVixJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLGNBQWMsRUFBRSxnQkFBZ0I7WUFDaEMsS0FBSyxFQUFFO2dCQUNILEVBQUUsRUFBRSxFQUFFO2dCQUNOLElBQUksRUFBRSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxFQUFFO2FBQ2I7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDOUQsR0FBRztZQUNILElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixRQUFRO1lBQ1IsVUFBVTtZQUNWLFlBQVk7WUFDWixjQUFjO1lBQ2QsTUFBTTtZQUNOLE1BQU07U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7MkdBbk5RLGNBQWM7K0ZBQWQsY0FBYyw2bEJDM0IzQixteEVBNENjOzJGRGpCRCxjQUFjO2tCQUoxQixTQUFTOytCQUNJLFVBQVU7OzBCQW1DZixJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsUUFBUTs7MEJBQUksUUFBUTs0Q0FoQ1EsV0FBVztzQkFBM0MsU0FBUzt1QkFBQyxhQUFhO2dCQUNxQixLQUFLO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXBCLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBTVcsY0FBYztzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9uZ3QtaW5wdXQvbmd0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3REYXRhdGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9uZ3QtZGF0YXRhYmxlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW25ndC10aF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtdGguY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5ndFRoQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JykgcHVibGljIHNlYXJjaElucHV0OiBOZ3RJbnB1dENvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdtb2RhbCcsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBtb2RhbDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyByZWZlcmVuY2U6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc29ydFJlZmVyZW5jZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2RhbFdpZHRoOiBzdHJpbmcgPSAnbWQ6bWF4LXctbWQnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hNb2RhbE92ZXJmbG93OiBzdHJpbmcgPSAnb3ZlcmZsb3ctdmlzaWJsZSc7XG4gICAgQElucHV0KCkgcHVibGljIHNvcnRhYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hhYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoYXNDdXN0b21TZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc29ydGFibGVUb29sdGlwOiBOZ3RTb3J0YWJsZVRvb2x0aXAgPSB7XG4gICAgICAgIGFzY2VuZGluZzogJ09yZGVuYXIgZGUgWiBhIEEnLFxuICAgICAgICBkZXNjZW5kaW5nOiAnTGltcGFyIG9yZGVuYcOnw6NvJyxcbiAgICAgICAgdW5vcmRlcmVkOiAnT3JkZW5hciBkZSBBIGEgWidcbiAgICB9O1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkVuYWJsZVNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpbnB1dEZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNDdXJyZW50U29ydCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzb3J0RGlyZWN0aW9uID0gJyc7XG4gICAgcHVibGljIHNlYXJjaFRlcm06IGFueTtcbiAgICBwdWJsaWMgY3VzdG9tU2VhcmNoVGVybTogYW55O1xuICAgIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwdWJsaWMgbmd0RGF0YVRhYmxlOiBOZ3REYXRhdGFibGVDb21wb25lbnRcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tEYXRhVGFibGUoKSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUub25EYXRhQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50U29ydCA9IHRoaXMubmd0RGF0YVRhYmxlLmdldEN1cnJlbnRTb3J0KCkuZmllbGQgPT0gdGhpcy5nZXRTb3J0UmVmZXJlbmNlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50U29ydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gdGhpcy5uZ3REYXRhVGFibGUuZ2V0Q3VycmVudFNvcnQoKS5kaXJlY3Rpb247XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUub25DbGVhckZpbHRlci5zdWJzY3JpYmUoKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlID09IHRoaXMucmVmZXJlbmNlIHx8ICFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21TZWFyY2hUZXJtID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5iaW5kTmd0U3R5bGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5zZWFyY2hMYWJlbCAmJiB0aGlzLmNoZWNrRGF0YVRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndERhdGFUYWJsZS5zZXRGaWx0ZXJEZXNjcmlwdGlvbih0aGlzLnJlZmVyZW5jZSwgdGhpcy5zZWFyY2hMYWJlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc29ydCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc29ydGFibGUgJiYgdGhpcy5jaGVja0RhdGFUYWJsZSgpICYmIHRoaXMuY2hlY2tSZWZlcmVuY2UoKSkge1xuICAgICAgICAgICAgbGV0IHNvcnREaXJlY3Rpb24gPSB0aGlzLmdldE5leHRTb3J0RGlyZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChzb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5uZ3REYXRhVGFibGUuc29ydCh0aGlzLmdldFNvcnRSZWZlcmVuY2UoKSwgc29ydERpcmVjdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubmd0RGF0YVRhYmxlLnNvcnQoJycsICcnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gc29ydERpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBlbmFibGVTZWFyY2goZXZlbnQ6IGFueSkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLm5ndERhdGFUYWJsZS5zZWFyY2hNb2RhbC5uZ3RTdHlsZS53ID0gdGhpcy5tb2RhbFdpZHRoO1xuICAgICAgICB0aGlzLm5ndERhdGFUYWJsZS5zZWFyY2hNb2RhbC5uZ3RTdHlsZS5vdmVyZmxvdyA9IHRoaXMuc2VhcmNoTW9kYWxPdmVyZmxvdztcblxuICAgICAgICB0aGlzLm5ndERhdGFUYWJsZS5zZXRTZWFyY2hNb2RhbFRlbXBsYXRlKHRoaXMubW9kYWwpO1xuICAgICAgICB0aGlzLm5ndERhdGFUYWJsZS5vcGVuU2VhcmNoTW9kYWwodGhpcy5yZWZlcmVuY2UpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0LnNldEZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMCk7XG5cbiAgICAgICAgdGhpcy5vbkVuYWJsZVNlYXJjaC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaCh0ZXJtOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0N1c3RvbVNlYXJjaCAmJiB0aGlzLnNlYXJjaFRlcm0gPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgJiYgdGhpcy5jdXN0b21TZWFyY2hUZXJtID09PSB1bmRlZmluZWQgJiYgIXRlcm0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaGFibGUgJiYgdGhpcy5yZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB7fTtcblxuICAgICAgICAgICAgZmlsdGVyW3RoaXMucmVmZXJlbmNlXSA9IHRlcm07XG4gICAgICAgICAgICB0aGlzLm5ndERhdGFUYWJsZS5zZWFyY2goZmlsdGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjdXN0b21TZWFyY2godGVybTogYW55KSB7XG4gICAgICAgIHRoaXMuY3VzdG9tU2VhcmNoVGVybSA9IHRlcm07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRvb2x0aXAoKSB7XG4gICAgICAgIGlmICh0aGlzLnNvcnRhYmxlICYmIHRoaXMuc29ydGFibGVUb29sdGlwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zb3J0RGlyZWN0aW9uID09ICdhc2MnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc29ydGFibGVUb29sdGlwLmFzY2VuZGluZztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zb3J0RGlyZWN0aW9uID09ICdkZXNjJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRhYmxlVG9vbHRpcC5kZXNjZW5kaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zb3J0YWJsZVRvb2x0aXAudW5vcmRlcmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U29ydFJlZmVyZW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFJlZmVyZW5jZSA/IHRoaXMuc29ydFJlZmVyZW5jZSA6IHRoaXMucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tEYXRhVGFibGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5uZ3REYXRhVGFibGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZSBbbmd0LXRoXSBtdXN0IGJlIGluc2lkZSBvZiBhIFtuZ3QtZGF0YXRhYmxlXScpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrUmVmZXJlbmNlKCkge1xuICAgICAgICBpZiAoIXRoaXMucmVmZXJlbmNlICYmICF0aGlzLnNvcnRSZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZSBbbmd0LXRoXSBtdXN0IGhhdmUgYSBbcmVmZXJlbmNlXSBvciBhIFtzb3J0UmVmZXJlbmNlXSBwcm9wZXJ0eSB0byBiZSBhYmxlIHRvIHNvcnQnKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0U29ydERpcmVjdGlvbigpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNvcnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2FzYyc6IHJldHVybiAnZGVzYyc7XG4gICAgICAgICAgICBjYXNlICdkZXNjJzogcmV0dXJuICcnO1xuICAgICAgICAgICAgY2FzZSAnJzogcmV0dXJuICdhc2MnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kTmd0U3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmd0U3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0VGgnLCB7XG4gICAgICAgICAgICBweTogJ3B5LTQnLFxuICAgICAgICAgICAgcHg6ICdweC02JyxcbiAgICAgICAgICAgIGZvbnQ6ICdmb250LWJvbGQnLFxuICAgICAgICAgICAgdGV4dDogJ3RleHQtc20nLFxuICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyLWInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdqdXN0aWZ5LWNlbnRlcicsXG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIGJnOiAnJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QgKz0gdGhpcy5uZ3RTdHlsZS5jb21waWxlKFtcbiAgICAgICAgICAgICdoJyxcbiAgICAgICAgICAgICdweCcsXG4gICAgICAgICAgICAncHknLFxuICAgICAgICAgICAgJ3BiJyxcbiAgICAgICAgICAgICdwbCcsXG4gICAgICAgICAgICAncHInLFxuICAgICAgICAgICAgJ3B0JyxcbiAgICAgICAgICAgICdtYicsXG4gICAgICAgICAgICAnbWwnLFxuICAgICAgICAgICAgJ21yJyxcbiAgICAgICAgICAgICdtdCcsXG4gICAgICAgICAgICAnYm9yZGVyJyxcbiAgICAgICAgICAgICdjb2xvci5iZycsXG4gICAgICAgICAgICAnY29sb3IudGV4dCcsXG4gICAgICAgICAgICAnY29sb3IuYm9yZGVyJyxcbiAgICAgICAgICAgICd0ZXh0JyxcbiAgICAgICAgICAgICdmb250JyxcbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndFNvcnRhYmxlVG9vbHRpcCB7XG4gICAgYXNjZW5kaW5nOiBzdHJpbmc7XG4gICAgZGVzY2VuZGluZzogc3RyaW5nO1xuICAgIHVub3JkZXJlZDogc3RyaW5nO1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHctZnVsbCB7eyBuZ3RTdHlsZS5jb21waWxlKFsnanVzdGlmeUNvbnRlbnQnXSkgfX1cIiBbdGl0bGVdPVwiZ2V0VG9vbHRpcCgpXCIgKGNsaWNrKT0nc29ydCgpJ1xuICAgIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09J3NvcnRhYmxlJz5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj0nc29ydGFibGUgJiYgaXNDdXJyZW50U29ydCc+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJzb3J0RGlyZWN0aW9uID09ICdhc2MnXCIgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbWwtMVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05LjI5MyAxMi45NWwuNzA3LjcwN0wxNS42NTcgOGwtMS40MTQtMS40MTRMMTAgMTAuODI4IDUuNzU3IDYuNTg2IDQuMzQzIDh6XCIgLz5cbiAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgPHN2ZyAqbmdJZj1cInNvcnREaXJlY3Rpb24gPT0gJ2Rlc2MnXCIgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbWwtMVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xMC43MDcgNy4wNUwxMCA2LjM0MyA0LjM0MyAxMmwxLjQxNCAxLjQxNEwxMCA5LjE3Mmw0LjI0MyA0LjI0MkwxNS42NTcgMTJ6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPSdzZWFyY2hhYmxlJz5cbiAgICAgICAgPGRpdiAoY2xpY2spPSdlbmFibGVTZWFyY2goJGV2ZW50KScgY2xhc3M9XCJmbG9hdC1yaWdodCBtbC0yXCIgdGl0bGU9XCJGaWx0cmFyXCI+XG4gICAgICAgICAgICA8bmd0LWFjdGlvbiBjbGFzcz1cInRleHQtbGdcIiBoPSdoLTYnIHc9J3ctNicgW2ZvcmNlRW5hYmxlXT1cInRydWVcIiBuZ3Qtc3R5bGl6YWJsZT5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50IHNlbGYtY2VudGVyXCIgdmlld0JveD1cIjAgMCAxNzkyIDE3OTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1OTUgMjk1cTE3IDQxLTE0IDcwbC00OTMgNDkzdjc0MnEwIDQyLTM5IDU5LTEzIDUtMjUgNS0yNyAwLTQ1LTE5bC0yNTYtMjU2cS0xOS0xOS0xOS00NVY4NThMMjExIDM2NXEtMzEtMjktMTQtNzAgMTctMzkgNTktMzloMTI4MHE0MiAwIDU5IDM5elwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L25ndC1hY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWw+XG4gICAgPG5ndC1tb2RhbC1oZWFkZXIgW2Rpc2FibGVEZWZhdWx0Q2xvc2VzXT1cIm5ndERhdGFUYWJsZS5zZWFyY2hNb2RhbC5kaXNhYmxlRGVmYXVsdENsb3Nlc1wiXG4gICAgICAgIChvbkNsb3NlKT1cIm5ndERhdGFUYWJsZS5zZWFyY2hNb2RhbC5jbG9zZSgpXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic2VhcmNoTGFiZWxcIiBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCB0ZXh0LXNtXCI+e3sgc2VhcmNoTGFiZWwgfX08L3NwYW4+XG5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdbY3VzdG9tU2VhcmNoSGVhZGVyXSc+PC9uZy1jb250ZW50PlxuICAgIDwvbmd0LW1vZGFsLWhlYWRlcj5cblxuICAgIDxuZ3QtbW9kYWwtYm9keSBbaXNEaXNhYmxlZF09XCJmYWxzZVwiPlxuICAgICAgICA8bmd0LWlucHV0ICpuZ0lmPVwiIWhhc0N1c3RvbVNlYXJjaFwiIGppdD0ndHJ1ZScgWyhuZ01vZGVsKV09J3NlYXJjaFRlcm0nIChuZ01vZGVsQ2hhbmdlKT0nc2VhcmNoKCRldmVudCknXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj0nUGVzcXVpc2FyLi4uJyBuYW1lPSd7eyByZWZlcmVuY2UgfX1fZmlsdGVyJyAjc2VhcmNoSW5wdXQ+XG4gICAgICAgIDwvbmd0LWlucHV0PlxuXG4gICAgICAgIDxkaXYgW2hpZGRlbl09JyFoYXNDdXN0b21TZWFyY2gnPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdbY3VzdG9tU2VhcmNoXSc+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25ndC1tb2RhbC1ib2R5PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kYXRhdGFibGUvbmd0LXRoL25ndC10aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZGF0YXRhYmxlL25ndC10aC9uZ3QtdGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUVKLFFBQVEsRUFFUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7Ozs7Ozs7O0FBUS9GLE1BQU0sT0FBTyxjQUFjO0lBaUN2QixZQUNZLFFBQWtCLEVBQ2xCLFdBQXVCLEVBQ0gsc0JBQThDLEVBRW5FLFlBQW1DO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDSCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRW5FLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQWhDOUIsZUFBVSxHQUFXLGFBQWEsQ0FBQztRQUNuQyx3QkFBbUIsR0FBVyxrQkFBa0IsQ0FBQztRQUdqRCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUdqQyxvQkFBZSxHQUF1QjtZQUNsRCxTQUFTLEVBQUUsa0JBQWtCO1lBQzdCLFVBQVUsRUFBRSxrQkFBa0I7WUFDOUIsU0FBUyxFQUFFLGtCQUFrQjtTQUNoQyxDQUFDO1FBRWUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGtCQUFhLEdB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QkFBSSxRQUFROzswQkFDaEIsUUFBUTs7MEJBQUksUUFBUTs0Q0FwQ1EsV0FBVztzQkFBM0MsU0FBUzt1QkFBQyxhQUFhO2dCQUNxQixLQUFLO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXBCLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFNVyxjQUFjO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFNraXBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL25ndC1pbnB1dC9uZ3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE5ndERhdGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1kYXRhdGFibGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbbmd0LXRoXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC10aC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTmd0VGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBwdWJsaWMgc2VhcmNoSW5wdXQ6IE5ndElucHV0Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ21vZGFsJywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIG1vZGFsOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgcHVibGljIHJlZmVyZW5jZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzb3J0UmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIG1vZGFsV2lkdGg6IHN0cmluZyA9ICdtZDptYXgtdy1tZCc7XG4gICAgQElucHV0KCkgcHVibGljIHNlYXJjaE1vZGFsT3ZlcmZsb3c6IHN0cmluZyA9ICdvdmVyZmxvdy12aXNpYmxlJztcbiAgICBASW5wdXQoKSBwdWJsaWMgc29ydGFibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGhhc0N1c3RvbVNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hJY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHNvcnRhYmxlVG9vbHRpcDogTmd0U29ydGFibGVUb29sdGlwID0ge1xuICAgICAgICBhc2NlbmRpbmc6ICdPcmRlbmFyIGRlIFogYSBBJyxcbiAgICAgICAgZGVzY2VuZGluZzogJ0xpbXBhciBvcmRlbmHDp8OjbycsXG4gICAgICAgIHVub3JkZXJlZDogJ09yZGVuYXIgZGUgQSBhIFonXG4gICAgfTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25FbmFibGVTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgaW5wdXRGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzQ3VycmVudFNvcnQgPSBmYWxzZTtcbiAgICBwdWJsaWMgc29ydERpcmVjdGlvbiA9ICcnO1xuICAgIHB1YmxpYyBzZWFyY2hUZXJtOiBhbnk7XG4gICAgcHVibGljIGN1c3RvbVNlYXJjaFRlcm06IGFueTtcblxuICAgIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgcHVibGljIGZpbHRlck1vZGFsSGVhZGVyU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgcHVibGljIGZpbHRlck1vZGFsQm9keVN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgbmd0U3R5bGl6YWJsZURpcmVjdGl2ZTogTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcbiAgICAgICAgcHVibGljIG5ndERhdGFUYWJsZTogTmd0RGF0YXRhYmxlQ29tcG9uZW50XG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrRGF0YVRhYmxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMubmd0RGF0YVRhYmxlLm9uRGF0YUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ3VycmVudFNvcnQgPSB0aGlzLm5ndERhdGFUYWJsZS5nZXRDdXJyZW50U29ydCgpLmZpZWxkID09IHRoaXMuZ2V0U29ydFJlZmVyZW5jZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ3VycmVudFNvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMubmd0RGF0YVRhYmxlLmdldEN1cnJlbnRTb3J0KCkuZGlyZWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMubmd0RGF0YVRhYmxlLm9uQ2xlYXJGaWx0ZXIuc3Vic2NyaWJlKChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZSA9PSB0aGlzLnJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tU2VhcmNoVGVybSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYmluZE5ndFN0eWxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuc2VhcmNoTGFiZWwgJiYgdGhpcy5jaGVja0RhdGFUYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUuc2V0RmlsdGVyRGVzY3JpcHRpb24odGhpcy5yZWZlcmVuY2UsIHRoaXMuc2VhcmNoTGFiZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNvcnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnNvcnRhYmxlICYmIHRoaXMuY2hlY2tEYXRhVGFibGUoKSAmJiB0aGlzLmNoZWNrUmVmZXJlbmNlKCkpIHtcbiAgICAgICAgICAgIGxldCBzb3J0RGlyZWN0aW9uID0gdGhpcy5nZXROZXh0U29ydERpcmVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoc29ydERpcmVjdGlvbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubmd0RGF0YVRhYmxlLnNvcnQodGhpcy5nZXRTb3J0UmVmZXJlbmNlKCksIHNvcnREaXJlY3Rpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5ndERhdGFUYWJsZS5zb3J0KCcnLCAnJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHNvcnREaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZW5hYmxlU2VhcmNoKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUuc2VhcmNoTW9kYWwubmd0U3R5bGUudyA9IHRoaXMubW9kYWxXaWR0aDtcbiAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUuc2VhcmNoTW9kYWwubmd0U3R5bGUub3ZlcmZsb3cgPSB0aGlzLnNlYXJjaE1vZGFsT3ZlcmZsb3c7XG5cbiAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUuc2V0U2VhcmNoTW9kYWxUZW1wbGF0ZSh0aGlzLm1vZGFsKTtcbiAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUub3BlblNlYXJjaE1vZGFsKHRoaXMucmVmZXJlbmNlKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaElucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5zZXRGb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxMDApO1xuXG4gICAgICAgIHRoaXMub25FbmFibGVTZWFyY2guZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2godGVybTogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNDdXN0b21TZWFyY2ggJiYgdGhpcy5zZWFyY2hUZXJtID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICYmIHRoaXMuY3VzdG9tU2VhcmNoVGVybSA9PT0gdW5kZWZpbmVkICYmICF0ZXJtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hhYmxlICYmIHRoaXMucmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBsZXQgZmlsdGVyID0ge307XG5cbiAgICAgICAgICAgIGZpbHRlclt0aGlzLnJlZmVyZW5jZV0gPSB0ZXJtO1xuICAgICAgICAgICAgdGhpcy5uZ3REYXRhVGFibGUuc2VhcmNoKGZpbHRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY3VzdG9tU2VhcmNoKHRlcm06IGFueSkge1xuICAgICAgICB0aGlzLmN1c3RvbVNlYXJjaFRlcm0gPSB0ZXJtO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb29sdGlwKCkge1xuICAgICAgICBpZiAodGhpcy5zb3J0YWJsZSAmJiB0aGlzLnNvcnRhYmxlVG9vbHRpcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc29ydERpcmVjdGlvbiA9PSAnYXNjJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRhYmxlVG9vbHRpcC5hc2NlbmRpbmc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc29ydERpcmVjdGlvbiA9PSAnZGVzYycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zb3J0YWJsZVRvb2x0aXAuZGVzY2VuZGluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc29ydGFibGVUb29sdGlwLnVub3JkZXJlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNvcnRSZWZlcmVuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRSZWZlcmVuY2UgPyB0aGlzLnNvcnRSZWZlcmVuY2UgOiB0aGlzLnJlZmVyZW5jZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrRGF0YVRhYmxlKCkge1xuICAgICAgICBpZiAoIXRoaXMubmd0RGF0YVRhYmxlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGUgW25ndC10aF0gbXVzdCBiZSBpbnNpZGUgb2YgYSBbbmd0LWRhdGF0YWJsZV0nKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1JlZmVyZW5jZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlZmVyZW5jZSAmJiAhdGhpcy5zb3J0UmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGUgW25ndC10aF0gbXVzdCBoYXZlIGEgW3JlZmVyZW5jZV0gb3IgYSBbc29ydFJlZmVyZW5jZV0gcHJvcGVydHkgdG8gYmUgYWJsZSB0byBzb3J0Jyk7XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dFNvcnREaXJlY3Rpb24oKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICdhc2MnOiByZXR1cm4gJ2Rlc2MnO1xuICAgICAgICAgICAgY2FzZSAnZGVzYyc6IHJldHVybiAnJztcbiAgICAgICAgICAgIGNhc2UgJyc6IHJldHVybiAnYXNjJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYmluZE5ndFN0eWxlKCkge1xuICAgICAgICBpZiAodGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gdGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFRoJywge1xuICAgICAgICAgICAgcHk6ICdweS00JyxcbiAgICAgICAgICAgIHB4OiAncHgtNicsXG4gICAgICAgICAgICBmb250OiAnZm9udC1ib2xkJyxcbiAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXNtJyxcbiAgICAgICAgICAgIGJvcmRlcjogJ2JvcmRlci1iJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnanVzdGlmeS1jZW50ZXInLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICBiZzogJycsXG4gICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0ICs9IHRoaXMubmd0U3R5bGUuY29tcGlsZShbXG4gICAgICAgICAgICAnaCcsXG4gICAgICAgICAgICAncHgnLFxuICAgICAgICAgICAgJ3B5JyxcbiAgICAgICAgICAgICdwYicsXG4gICAgICAgICAgICAncGwnLFxuICAgICAgICAgICAgJ3ByJyxcbiAgICAgICAgICAgICdwdCcsXG4gICAgICAgICAgICAnbWInLFxuICAgICAgICAgICAgJ21sJyxcbiAgICAgICAgICAgICdtcicsXG4gICAgICAgICAgICAnbXQnLFxuICAgICAgICAgICAgJ2JvcmRlcicsXG4gICAgICAgICAgICAnY29sb3IuYmcnLFxuICAgICAgICAgICAgJ2NvbG9yLnRleHQnLFxuICAgICAgICAgICAgJ2NvbG9yLmJvcmRlcicsXG4gICAgICAgICAgICAndGV4dCcsXG4gICAgICAgICAgICAnZm9udCcsXG4gICAgICAgIF0pO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyTW9kYWxIZWFkZXJTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdGaWx0ZXJNb2RhbEhlYWRlcicsIHtcbiAgICAgICAgICAgIHBiOiAncGItMycsXG4gICAgICAgICAgICBjb2xvcjoge31cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJNb2RhbEJvZHlTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdGaWx0ZXJNb2RhbEJvZHknLCB7XG4gICAgICAgICAgICBweDogJ3B4LTAnLFxuICAgICAgICAgICAgcHk6ICdweS0wJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lTdWJzY3JpcHRpb25zKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0U29ydGFibGVUb29sdGlwIHtcbiAgICBhc2NlbmRpbmc6IHN0cmluZztcbiAgICBkZXNjZW5kaW5nOiBzdHJpbmc7XG4gICAgdW5vcmRlcmVkOiBzdHJpbmc7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdy1mdWxsIHt7IG5ndFN0eWxlLmNvbXBpbGUoWydqdXN0aWZ5Q29udGVudCddKSB9fVwiIFt0aXRsZV09XCJnZXRUb29sdGlwKClcIiAoY2xpY2spPSdzb3J0KCknXG4gICAgW2NsYXNzLmN1cnNvci1wb2ludGVyXT0nc29ydGFibGUnPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPSdzb3J0YWJsZSAmJiBpc0N1cnJlbnRTb3J0Jz5cbiAgICAgICAgPHN2ZyAqbmdJZj1cInNvcnREaXJlY3Rpb24gPT0gJ2FzYydcIiBjbGFzcz1cImZpbGwtY3VycmVudCBzZWxmLWNlbnRlciBjdXJzb3ItcG9pbnRlciBtbC0xXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTkuMjkzIDEyLjk1bC43MDcuNzA3TDE1LjY1NyA4bC0xLjQxNC0xLjQxNEwxMCAxMC44MjggNS43NTcgNi41ODYgNC4zNDMgOHpcIiAvPlxuICAgICAgICA8L3N2Zz5cblxuICAgICAgICA8c3ZnICpuZ0lmPVwic29ydERpcmVjdGlvbiA9PSAnZGVzYydcIiBjbGFzcz1cImZpbGwtY3VycmVudCBzZWxmLWNlbnRlciBjdXJzb3ItcG9pbnRlciBtbC0xXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjcwNyA3LjA1TDEwIDYuMzQzIDQuMzQzIDEybDEuNDE0IDEuNDE0TDEwIDkuMTcybDQuMjQzIDQuMjQyTDE1LjY1NyAxMnpcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9J3NlYXJjaGFibGUnPlxuICAgICAgICA8ZGl2IChjbGljayk9J2VuYWJsZVNlYXJjaCgkZXZlbnQpJyBjbGFzcz1cImZsb2F0LXJpZ2h0IG1sLTJcIiB0aXRsZT1cIkZpbHRyYXJcIj5cbiAgICAgICAgICAgIDxuZ3QtYWN0aW9uIGNsYXNzPVwidGV4dC1sZ1wiIGg9J2gtNicgdz0ndy02JyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiIG5ndC1zdHlsaXphYmxlPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXJcIiB2aWV3Qm94PVwiMCAwIDE3OTIgMTc5MlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTU5NSAyOTVxMTcgNDEtMTQgNzBsLTQ5MyA0OTN2NzQycTAgNDItMzkgNTktMTMgNS0yNSA1LTI3IDAtNDUtMTlsLTI1Ni0yNTZxLTE5LTE5LTE5LTQ1Vjg1OEwyMTEgMzY1cS0zMS0yOS0xNC03MCAxNy0zOSA1OS0zOWgxMjgwcTQyIDAgNTkgMzl6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNtb2RhbD5cbiAgICA8bmd0LW1vZGFsLWhlYWRlciBbZGlzYWJsZURlZmF1bHRDbG9zZXNdPVwibmd0RGF0YVRhYmxlLnNlYXJjaE1vZGFsLmRpc2FibGVEZWZhdWx0Q2xvc2VzXCJcbiAgICAgICAgW25ndFN0eWxlXT1cImZpbHRlck1vZGFsSGVhZGVyU3R5bGVcIiAob25DbG9zZSk9XCJuZ3REYXRhVGFibGUuc2VhcmNoTW9kYWwuY2xvc2UoKVwiPlxuICAgICAgICA8bmd0LXN2ZyAqbmdJZj1cInNlYXJjaEljb25cIiBbc3JjXT1cInNlYXJjaEljb25cIiBjbGFzcz1cInRleHQtc21cIj5cbiAgICAgICAgPC9uZ3Qtc3ZnPlxuXG4gICAgICAgIDxzdmcgKm5nSWY9XCIhc2VhcmNoSWNvblwiIGNsYXNzPVwiZmlsbC1jdXJyZW50IHNlbGYtY2VudGVyIHRleHQtc21cIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk03LjAwNDIgNi44NDQxN0wxMS44MDQyIDIuMDQ0MTdWLTAuMzU1ODM1SC0wLjE5NTgwMVYyLjA0NDE3TDQuNjA0MiA2Ljg0NDE3VjExLjY0NDJMNy4wMDQyIDkuMjQ0MTdWNi44NDQxN1pcIiAvPlxuICAgICAgICA8L3N2Zz5cblxuICAgICAgICA8c3BhbiAqbmdJZj1cInNlYXJjaExhYmVsXCIgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtc20gbWwtMlwiPlxuICAgICAgICAgICAge3sgc2VhcmNoTGFiZWwgfX1cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0nW2N1c3RvbVNlYXJjaEhlYWRlcl0nPjwvbmctY29udGVudD5cbiAgICA8L25ndC1tb2RhbC1oZWFkZXI+XG5cbiAgICA8bmd0LW1vZGFsLWJvZHkgW2lzRGlzYWJsZWRdPVwiZmFsc2VcIiBbbmd0U3R5bGVdPVwiZmlsdGVyTW9kYWxCb2R5U3R5bGVcIj5cbiAgICAgICAgPG5ndC1pbnB1dCAqbmdJZj1cIiFoYXNDdXN0b21TZWFyY2hcIiBqaXQ9J3RydWUnIFsobmdNb2RlbCldPSdzZWFyY2hUZXJtJyAobmdNb2RlbENoYW5nZSk9J3NlYXJjaCgkZXZlbnQpJ1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI9J1Blc3F1aXNhci4uLicgbmFtZT0ne3sgcmVmZXJlbmNlIH19X2ZpbHRlcicgI3NlYXJjaElucHV0PlxuICAgICAgICA8L25ndC1pbnB1dD5cblxuICAgICAgICA8ZGl2IFtoaWRkZW5dPSchaGFzQ3VzdG9tU2VhcmNoJz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0nW2N1c3RvbVNlYXJjaF0nPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZ3QtbW9kYWwtYm9keT5cbjwvbmctdGVtcGxhdGU+Il19
@@ -1,10 +1,24 @@
1
- import { Component, Input, Optional } from '@angular/core';
1
+ import { Component, Input, Optional, Self } from '@angular/core';
2
+ import { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';
2
3
  import * as i0 from "@angular/core";
3
- import * as i1 from "../../../services/validation/ngt-ability-validation.service";
4
+ import * as i1 from "../../../directives/ngt-stylizable/ngt-stylizable.directive";
5
+ import * as i2 from "../../../services/validation/ngt-ability-validation.service";
4
6
  export class NgtModalBodyComponent {
5
- constructor(changeDetector, ngtAbilityValidationService) {
7
+ constructor(injector, changeDetector, tailStylizableDirective, ngtAbilityValidationService) {
8
+ this.injector = injector;
6
9
  this.changeDetector = changeDetector;
10
+ this.tailStylizableDirective = tailStylizableDirective;
7
11
  this.ngtAbilityValidationService = ngtAbilityValidationService;
12
+ if (this.tailStylizableDirective) {
13
+ this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();
14
+ }
15
+ else if (!this.ngtStyle) {
16
+ this.ngtStyle = new NgtStylizableService();
17
+ }
18
+ this.ngtStyle.load(this.injector, 'NgtModalBody', {
19
+ px: 'px-0',
20
+ py: 'py-0'
21
+ });
8
22
  }
9
23
  async ngAfterViewInit() {
10
24
  if (this.isDisabled === undefined && this.ngtAbilityValidationService) {
@@ -13,14 +27,20 @@ export class NgtModalBodyComponent {
13
27
  }
14
28
  }
15
29
  }
16
- NgtModalBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalBodyComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgtAbilityValidationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
17
- NgtModalBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalBodyComponent, selector: "ngt-modal-body", inputs: { isDisabled: "isDisabled" }, ngImport: i0, template: "<fieldset [disabled]=\"isDisabled\" style=\"min-inline-size: 100% !important\">\n <ng-content></ng-content>\n</fieldset>" });
30
+ NgtModalBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalBodyComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i1.NgtStylizableDirective, optional: true, self: true }, { token: i2.NgtAbilityValidationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
31
+ NgtModalBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalBodyComponent, selector: "ngt-modal-body", inputs: { ngtStyle: "ngtStyle", isDisabled: "isDisabled" }, ngImport: i0, template: "<div class=\"flex flex-col w-full {{ ngtStyle.compile(['px', 'py']) }}\">\n <fieldset [disabled]=\"isDisabled\" style=\"min-inline-size: 100% !important\">\n <ng-content></ng-content>\n </fieldset>\n</div>" });
18
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalBodyComponent, decorators: [{
19
33
  type: Component,
20
- args: [{ selector: 'ngt-modal-body', template: "<fieldset [disabled]=\"isDisabled\" style=\"min-inline-size: 100% !important\">\n <ng-content></ng-content>\n</fieldset>" }]
21
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NgtAbilityValidationService, decorators: [{
34
+ args: [{ selector: 'ngt-modal-body', template: "<div class=\"flex flex-col w-full {{ ngtStyle.compile(['px', 'py']) }}\">\n <fieldset [disabled]=\"isDisabled\" style=\"min-inline-size: 100% !important\">\n <ng-content></ng-content>\n </fieldset>\n</div>" }]
35
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i1.NgtStylizableDirective, decorators: [{
36
+ type: Self
37
+ }, {
22
38
  type: Optional
23
- }] }]; }, propDecorators: { isDisabled: [{
39
+ }] }, { type: i2.NgtAbilityValidationService, decorators: [{
40
+ type: Optional
41
+ }] }]; }, propDecorators: { ngtStyle: [{
42
+ type: Input
43
+ }], isDisabled: [{
24
44
  type: Input
25
45
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW1vZGFsLWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LW1vZGFsL25ndC1tb2RhbC1ib2R5L25ndC1tb2RhbC1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1tb2RhbC9uZ3QtbW9kYWwtYm9keS9uZ3QtbW9kYWwtYm9keS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPN0YsTUFBTSxPQUFPLHFCQUFxQjtJQUc5QixZQUNZLGNBQWlDLEVBR2pDLDJCQUF3RDtRQUh4RCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFHakMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtJQUNoRSxDQUFDO0lBRUUsS0FBSyxDQUFDLGVBQWU7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1lBRWxGLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdkM7SUFDTCxDQUFDOztrSEFoQlEscUJBQXFCO3NHQUFyQixxQkFBcUIsNEZDUGxDLDZIQUVXOzJGREtFLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDSSxnQkFBZ0I7OzBCQVNyQixRQUFROzRDQUxHLFVBQVU7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24vbmd0LWFiaWxpdHktdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtbW9kYWwtYm9keScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1tb2RhbC1ib2R5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3RNb2RhbEJvZHlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RBYmlsaXR5VmFsaWRhdGlvblNlcnZpY2U6IE5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbmdBZnRlclZpZXdJbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkID09PSB1bmRlZmluZWQgJiYgdGhpcy5uZ3RBYmlsaXR5VmFsaWRhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9ICEoYXdhaXQgdGhpcy5uZ3RBYmlsaXR5VmFsaWRhdGlvblNlcnZpY2UuaGFzTWFuYWdlUGVybWlzc2lvbigpKTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZmllbGRzZXQgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBzdHlsZT1cIm1pbi1pbmxpbmUtc2l6ZTogMTAwJSAhaW1wb3J0YW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9maWVsZHNldD4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW1vZGFsLWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LW1vZGFsL25ndC1tb2RhbC1ib2R5L25ndC1tb2RhbC1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1tb2RhbC9uZ3QtbW9kYWwtYm9keS9uZ3QtbW9kYWwtYm9keS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBWSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7OztBQU0vRixNQUFNLE9BQU8scUJBQXFCO0lBSTlCLFlBQ1ksUUFBa0IsRUFDbEIsY0FBaUMsRUFHakMsdUJBQStDLEVBRy9DLDJCQUF3RDtRQVB4RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUdqQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBRy9DLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFFaEUsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUMxRTthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUU7WUFDOUMsRUFBRSxFQUFFLE1BQU07WUFDVixFQUFFLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZTtRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNuRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7WUFFbEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7O2tIQWhDUSxxQkFBcUI7c0dBQXJCLHFCQUFxQixrSENUbEMsNE5BSU07MkZES08scUJBQXFCO2tCQUpqQyxTQUFTOytCQUNJLGdCQUFnQjs7MEJBV3JCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUdoQixRQUFROzRDQVZHLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24vbmd0LWFiaWxpdHktdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1tb2RhbC1ib2R5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LW1vZGFsLWJvZHkuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5ndE1vZGFsQm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcblxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgdGFpbFN0eWxpemFibGVEaXJlY3RpdmU6IE5ndFN0eWxpemFibGVEaXJlY3RpdmUsXG5cbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RBYmlsaXR5VmFsaWRhdGlvblNlcnZpY2U6IE5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZVxuICAgICkge1xuICAgICAgICBpZiAodGhpcy50YWlsU3R5bGl6YWJsZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IHRoaXMudGFpbFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5uZ3RTdHlsZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ3RTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RNb2RhbEJvZHknLCB7XG4gICAgICAgICAgICBweDogJ3B4LTAnLFxuICAgICAgICAgICAgcHk6ICdweS0wJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbmdBZnRlclZpZXdJbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkID09PSB1bmRlZmluZWQgJiYgdGhpcy5uZ3RBYmlsaXR5VmFsaWRhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9ICEoYXdhaXQgdGhpcy5uZ3RBYmlsaXR5VmFsaWRhdGlvblNlcnZpY2UuaGFzTWFuYWdlUGVybWlzc2lvbigpKTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwge3sgbmd0U3R5bGUuY29tcGlsZShbJ3B4JywgJ3B5J10pIH19XCI+XG4gICAgPGZpZWxkc2V0IFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgc3R5bGU9XCJtaW4taW5saW5lLXNpemU6IDEwMCUgIWltcG9ydGFudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9maWVsZHNldD5cbjwvZGl2PiJdfQ==
@@ -10,7 +10,7 @@ export class NgtModalHeaderComponent {
10
10
  if (this.tailStylizableDirective) {
11
11
  this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();
12
12
  }
13
- else {
13
+ else if (!this.ngtStyle) {
14
14
  this.ngtStyle = new NgtStylizableService();
15
15
  }
16
16
  this.ngtStyle.load(this.injector, 'NgtModalHeader', {
@@ -24,15 +24,17 @@ export class NgtModalHeaderComponent {
24
24
  }
25
25
  NgtModalHeaderComponent.onCloseModalByHeader = new EventEmitter();
26
26
  NgtModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalHeaderComponent, deps: [{ token: i0.Injector }, { token: i1.NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
27
- NgtModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: { disableDefaultCloses: "disableDefaultCloses" }, ngImport: i0, template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr']) }}\">\n <ng-content></ng-content>\n \n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 top-0 m-2\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
27
+ NgtModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: { disableDefaultCloses: "disableDefaultCloses", ngtStyle: "ngtStyle" }, ngImport: i0, template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr', 'color.bg', 'color.text']) }}\">\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 mr-3\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalHeaderComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'ngt-modal-header', template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr']) }}\">\n <ng-content></ng-content>\n \n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 top-0 m-2\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>" }]
30
+ args: [{ selector: 'ngt-modal-header', template: "<div\n class=\"flex w-full items-center {{ ngtStyle.compile(['px', 'py', 'pb', 'pt', 'pl', 'pr', 'mx', 'my', 'mb', 'mt', 'ml', 'mr', 'color.bg', 'color.text']) }}\">\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <div class=\"cursor-pointer z-50 absolute right-0 mr-3\" (click)='emitOnCloseEvent()'>\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\">\n </path>\n </svg>\n </div>\n </ng-container>\n</div>" }]
31
31
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtStylizableDirective, decorators: [{
32
32
  type: Self
33
33
  }, {
34
34
  type: Optional
35
35
  }] }]; }, propDecorators: { disableDefaultCloses: [{
36
36
  type: Input
37
+ }], ngtStyle: [{
38
+ type: Input
37
39
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW1vZGFsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtbW9kYWwvbmd0LW1vZGFsLWhlYWRlci9uZ3QtbW9kYWwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1tb2RhbC9uZ3QtbW9kYWwtaGVhZGVyL25ndC1tb2RhbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7QUFNL0YsTUFBTSxPQUFPLHVCQUF1QjtJQU9oQyxZQUNZLFFBQWtCLEVBQ0UsdUJBQStDO1FBRG5FLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDRSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBRTNFLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDMUU7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTtZQUNoRCxFQUFFLEVBQUUsTUFBTTtZQUNWLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQix1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDOztBQXhCYSw0Q0FBb0IsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztvSEFEbkUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsa0hDVHBDLDhzQkFhTTsyRkRKTyx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0ksa0JBQWtCOzswQkFZdkIsSUFBSTs7MEJBQUksUUFBUTs0Q0FOTCxvQkFBb0I7c0JBQW5DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtbW9kYWwtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LW1vZGFsLWhlYWRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTmd0TW9kYWxIZWFkZXJDb21wb25lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgb25DbG9zZU1vZGFsQnlIZWFkZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlRGVmYXVsdENsb3NlczogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgdGFpbFN0eWxpemFibGVEaXJlY3RpdmU6IE5ndFN0eWxpemFibGVEaXJlY3RpdmVcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMudGFpbFN0eWxpemFibGVEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLnRhaWxTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndE1vZGFsSGVhZGVyJywge1xuICAgICAgICAgICAgcGI6ICdwYi0zJyxcbiAgICAgICAgICAgIGNvbG9yOiB7fVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdE9uQ2xvc2VFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgTmd0TW9kYWxIZWFkZXJDb21wb25lbnQub25DbG9zZU1vZGFsQnlIZWFkZXIuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciB7eyBuZ3RTdHlsZS5jb21waWxlKFsncHgnLCAncHknLCAncGInLCAncHQnLCAncGwnLCAncHInLCAnbXgnLCAnbXknLCAnbWInLCAnbXQnLCAnbWwnLCAnbXInXSkgfX1cIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNhYmxlRGVmYXVsdENsb3Nlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgei01MCBhYnNvbHV0ZSByaWdodC0wIHRvcC0wIG0tMlwiIChjbGljayk9J2VtaXRPbkNsb3NlRXZlbnQoKSc+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIj5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjUzIDQuNTNsLTEuMDYtMS4wNkw5IDcuOTQgNC41MyAzLjQ3IDMuNDcgNC41MyA3Ljk0IDlsLTQuNDcgNC40NyAxLjA2IDEuMDZMOSAxMC4wNmw0LjQ3IDQuNDcgMS4wNi0xLjA2TDEwLjA2IDl6XCI+XG4gICAgICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW1vZGFsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtbW9kYWwvbmd0LW1vZGFsLWhlYWRlci9uZ3QtbW9kYWwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1tb2RhbC9uZ3QtbW9kYWwtaGVhZGVyL25ndC1tb2RhbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7QUFNL0YsTUFBTSxPQUFPLHVCQUF1QjtJQU1oQyxZQUNZLFFBQWtCLEVBQ0UsdUJBQStDO1FBRG5FLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDRSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBRTNFLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDMUU7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUU7WUFDaEQsRUFBRSxFQUFFLE1BQU07WUFDVixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxnQkFBZ0I7UUFDbkIsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQzs7QUF2QmEsNENBQW9CLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7b0hBRG5FLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHdJQ1RwQywrdEJBYU07MkZESk8sdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLGtCQUFrQjs7MEJBV3ZCLElBQUk7OzBCQUFJLFFBQVE7NENBTEwsb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtbW9kYWwtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LW1vZGFsLWhlYWRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTmd0TW9kYWxIZWFkZXJDb21wb25lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgb25DbG9zZU1vZGFsQnlIZWFkZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlRGVmYXVsdENsb3NlczogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgbmd0U3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIHRhaWxTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLnRhaWxTdHlsaXphYmxlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gdGhpcy50YWlsU3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm5ndFN0eWxlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndE1vZGFsSGVhZGVyJywge1xuICAgICAgICAgICAgcGI6ICdwYi0zJyxcbiAgICAgICAgICAgIGNvbG9yOiB7fVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdE9uQ2xvc2VFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgTmd0TW9kYWxIZWFkZXJDb21wb25lbnQub25DbG9zZU1vZGFsQnlIZWFkZXIuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciB7eyBuZ3RTdHlsZS5jb21waWxlKFsncHgnLCAncHknLCAncGInLCAncHQnLCAncGwnLCAncHInLCAnbXgnLCAnbXknLCAnbWInLCAnbXQnLCAnbWwnLCAnbXInLCAnY29sb3IuYmcnLCAnY29sb3IudGV4dCddKSB9fVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGlzYWJsZURlZmF1bHRDbG9zZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyIHotNTAgYWJzb2x1dGUgcmlnaHQtMCBtci0zXCIgKGNsaWNrKT0nZW1pdE9uQ2xvc2VFdmVudCgpJz5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuNTMgNC41M2wtMS4wNi0xLjA2TDkgNy45NCA0LjUzIDMuNDcgMy40NyA0LjUzIDcuOTQgOWwtNC40NyA0LjQ3IDEuMDYgMS4wNkw5IDEwLjA2bDQuNDcgNC40NyAxLjA2LTEuMDZMMTAuMDYgOXpcIj5cbiAgICAgICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
@@ -26,7 +26,7 @@ export class NgtModalComponent {
26
26
  if (this.tailStylizableDirective) {
27
27
  this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();
28
28
  }
29
- else {
29
+ else if (!this.ngtStyle) {
30
30
  this.ngtStyle = new NgtStylizableService();
31
31
  }
32
32
  this.ngtStyle.load(this.injector, 'NgtModal', {
@@ -82,7 +82,7 @@ export class NgtModalComponent {
82
82
  }
83
83
  }
84
84
  NgtModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtModalComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i1.NgtStylizableDirective, optional: true, self: true }, { token: i2.NgtAbilityValidationService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
85
- NgtModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalComponent, selector: "ngt-modal", inputs: { customLayout: "customLayout", disableDefaultCloses: "disableDefaultCloses", isDisabled: "isDisabled", ngtStyle: "ngtStyle" }, outputs: { onCloseModal: "onCloseModal", onOpenModal: "onOpenModal" }, ngImport: i0, template: "<div class=\"flex min-w-full relative justify-center text-gray-700\">\n <div *ngIf=\"isOpen\" class=\"flex fixed min-w-full h-full inset-0 px-6 py-6 md:py-0 md:px-0 justify-center\"\n style=\"background: rgba(0,0,0,.7); z-index: 1100 !important;\" @fade>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <button class=\"fixed inset-0 h-full w-full bg-black opacity-0 cursor-default z-0\" tabindex=\"-1\"\n type=\"button\" (click)='close()'>\n </button>\n </ng-container>\n\n <div class=\"{{ ngtStyle.compile(['w', 'overflow', 'border']) }} relative bg-white w-full self-center rounded shadow-lg z-10\"\n style=\"max-height: 85%;\">\n <div class=\"cursor-default text-left {{ ngtStyle.compile(['py', 'px']) }}\">\n <div *ngIf=\"!customLayout\">\n <ngt-modal-header class=\"w-full\" [disableDefaultCloses]=\"disableDefaultCloses\">\n <ng-content select='[header]'></ng-content>\n </ngt-modal-header>\n </div>\n\n <ng-container *ngIf=\"!customLayout\">\n <fieldset [disabled]=\"isDisabled\" style=\"min-inline-size: 100% !important\">\n <ngt-modal-body [isDisabled]=\"isDisabled\">\n <ng-content select='[body]'></ng-content>\n </ngt-modal-body>\n </fieldset>\n </ng-container>\n\n <!--Footer-->\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-footer>\n <ng-content select='[footer]'></ng-content>\n </ngt-modal-footer>\n </ng-container>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses"] }, { kind: "component", type: i5.NgtModalBodyComponent, selector: "ngt-modal-body", inputs: ["isDisabled"] }, { kind: "component", type: i6.NgtModalFooterComponent, selector: "ngt-modal-footer" }], animations: [
85
+ NgtModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtModalComponent, selector: "ngt-modal", inputs: { customLayout: "customLayout", disableDefaultCloses: "disableDefaultCloses", isDisabled: "isDisabled", ngtStyle: "ngtStyle" }, outputs: { onCloseModal: "onCloseModal", onOpenModal: "onOpenModal" }, ngImport: i0, template: "<div class=\"flex min-w-full relative justify-center text-gray-700\">\n <div *ngIf=\"isOpen\" class=\"flex fixed min-w-full h-full inset-0 px-6 py-6 md:py-0 md:px-0 justify-center\"\n style=\"background: rgba(0,0,0,.7); z-index: 1100 !important;\" @fade>\n <ng-container *ngIf=\"!disableDefaultCloses\">\n <button class=\"fixed inset-0 h-full w-full bg-black opacity-0 cursor-default z-0\" tabindex=\"-1\"\n type=\"button\" (click)='close()'>\n </button>\n </ng-container>\n\n <div class=\"{{ ngtStyle.compile(['w', 'overflow', 'border']) }} relative bg-white w-full self-center rounded shadow-lg z-10\"\n style=\"max-height: 85%;\">\n <div class=\"cursor-default text-left {{ ngtStyle.compile(['py', 'px']) }}\">\n <div *ngIf=\"!customLayout\">\n <ngt-modal-header class=\"w-full\" [disableDefaultCloses]=\"disableDefaultCloses\">\n <ng-content select='[header]'></ng-content>\n </ngt-modal-header>\n </div>\n\n <ng-container *ngIf=\"!customLayout\">\n <fieldset [disabled]=\"isDisabled\" style=\"min-inline-size: 100% !important\">\n <ngt-modal-body [isDisabled]=\"isDisabled\">\n <ng-content select='[body]'></ng-content>\n </ngt-modal-body>\n </fieldset>\n </ng-container>\n\n <!--Footer-->\n <ng-container *ngIf=\"!customLayout\">\n <ngt-modal-footer>\n <ng-content select='[footer]'></ng-content>\n </ngt-modal-footer>\n </ng-container>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.NgtModalHeaderComponent, selector: "ngt-modal-header", inputs: ["disableDefaultCloses", "ngtStyle"] }, { kind: "component", type: i5.NgtModalBodyComponent, selector: "ngt-modal-body", inputs: ["ngtStyle", "isDisabled"] }, { kind: "component", type: i6.NgtModalFooterComponent, selector: "ngt-modal-footer" }], animations: [
86
86
  trigger('fade', [
87
87
  state('void', style({ opacity: 0 })),
88
88
  transition(':enter, :leave', [
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
119
119
  }], onOpenModal: [{
120
120
  type: Output
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1tb2RhbC9uZ3QtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LW1vZGFsL25ndC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFHSCxTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7QUFleEYsTUFBTSxPQUFPLGlCQUFpQjtJQWUxQixZQUNZLGlCQUFvQyxFQUNwQyxRQUFrQixFQUdsQix1QkFBK0MsRUFHL0MsMkJBQXdEO1FBUHhELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUdsQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBRy9DLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUF0QnBELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUlyQyxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RELGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0QsV0FBTSxHQUFZLEtBQUssQ0FBQztR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akIsaUJBQWlCLGdRQy9COUIsaTFEQXFDTSw2YkRmVTtRQUNSLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDWixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUNmLENBQUM7U0FDTCxDQUFDO0tBQ0w7MkZBRVEsaUJBQWlCO2tCQVo3QixTQUFTOytCQUNJLFdBQVcsY0FFVDt3QkFDUixPQUFPLENBQUMsTUFBTSxFQUFFOzRCQUNaLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3BDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTtnQ0FDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDZixDQUFDO3lCQUNMLENBQUM7cUJBQ0w7OzBCQXFCSSxJQUFJOzswQkFBSSxRQUFROzswQkFHaEIsUUFBUTs0Q0FyQkcsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd0TW9kYWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL25ndC1tb2RhbC1oZWFkZXIvbmd0LW1vZGFsLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0QWJpbGl0eVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi9uZ3QtYWJpbGl0eS12YWxpZGF0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdmYWRlJywgW1xuICAgICAgICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyLCA6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgzMDApXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd0TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tTGF5b3V0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVEZWZhdWx0Q2xvc2VzOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25DbG9zZU1vZGFsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbk9wZW5Nb2RhbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyB2aWV3TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBrZXlkb3duRXZlbnRXYXNBZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG5cbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKVxuICAgICAgICBwcml2YXRlIHRhaWxTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxuXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgbmd0QWJpbGl0eVZhbGlkYXRpb25TZXJ2aWNlOiBOZ3RBYmlsaXR5VmFsaWRhdGlvblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMudGFpbFN0eWxpemFibGVEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLnRhaWxTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndE1vZGFsJywge1xuICAgICAgICAgICAgdzogJ21kOm1heC13LW1kJyxcbiAgICAgICAgICAgIHB5OiAncHktNCcsXG4gICAgICAgICAgICBweDogJ3B4LTYnLFxuICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyIGJvcmRlci10ZWFsLTUwMCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ292ZXJmbG93LXZpc2libGUnLFxuICAgICAgICAgICAgY29sb3I6IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQgPT09IHVuZGVmaW5lZCAmJiB0aGlzLm5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gIShhd2FpdCB0aGlzLm5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZS5oYXNNYW5hZ2VQZXJtaXNzaW9uKCkpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuXG4gICAgICAgIHRoaXMub25DbG9zZU1vZGFsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpIHtcbiAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmFkZEtleWRvd25FdmVudExpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuYmluZE9uQ2xvc2VNb2RhbEJ5SGVhZGVyU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5vbk9wZW5Nb2RhbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRLZXlkb3duRXZlbnRMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVEZWZhdWx0Q2xvc2VzICYmICF0aGlzLmtleWRvd25FdmVudFdhc0FkZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmtleWRvd25FdmVudFdhc0FkZGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09IDI3KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpZXdNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlVmlld01vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRPbkNsb3NlTW9kYWxCeUhlYWRlclN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBOZ3RNb2RhbEhlYWRlckNvbXBvbmVudC5vbkNsb3NlTW9kYWxCeUhlYWRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVZpZXdNb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdNb2RlID0gZmFsc2U7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggbWluLXctZnVsbCByZWxhdGl2ZSBqdXN0aWZ5LWNlbnRlciB0ZXh0LWdyYXktNzAwXCI+XG4gICAgPGRpdiAqbmdJZj1cImlzT3BlblwiIGNsYXNzPVwiZmxleCBmaXhlZCBtaW4tdy1mdWxsIGgtZnVsbCBpbnNldC0wIHB4LTYgcHktNiBtZDpweS0wIG1kOnB4LTAganVzdGlmeS1jZW50ZXJcIlxuICAgICAgICBzdHlsZT1cImJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjcpOyB6LWluZGV4OiAxMTAwICFpbXBvcnRhbnQ7XCIgQGZhZGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGlzYWJsZURlZmF1bHRDbG9zZXNcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJmaXhlZCBpbnNldC0wIGgtZnVsbCB3LWZ1bGwgYmctYmxhY2sgb3BhY2l0eS0wIGN1cnNvci1kZWZhdWx0IHotMFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPSdjbG9zZSgpJz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3cnLCAnb3ZlcmZsb3cnLCAnYm9yZGVyJ10pIH19IHJlbGF0aXZlIGJnLXdoaXRlIHctZnVsbCBzZWxmLWNlbnRlciByb3VuZGVkIHNoYWRvdy1sZyB6LTEwXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWF4LWhlaWdodDogODUlO1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1kZWZhdWx0IHRleHQtbGVmdCB7eyBuZ3RTdHlsZS5jb21waWxlKFsncHknLCAncHgnXSkgfX1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWN1c3RvbUxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd0LW1vZGFsLWhlYWRlciBjbGFzcz1cInctZnVsbFwiIFtkaXNhYmxlRGVmYXVsdENsb3Nlc109XCJkaXNhYmxlRGVmYXVsdENsb3Nlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdbaGVhZGVyXSc+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L25ndC1tb2RhbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbUxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBzdHlsZT1cIm1pbi1pbmxpbmUtc2l6ZTogMTAwJSAhaW1wb3J0YW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd0LW1vZGFsLWJvZHkgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0nW2JvZHldJz48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25ndC1tb2RhbC1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLUZvb3Rlci0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tTGF5b3V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3QtbW9kYWwtZm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdbZm9vdGVyXSc+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L25ndC1tb2RhbC1mb290ZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1tb2RhbC9uZ3QtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LW1vZGFsL25ndC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFHSCxTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7QUFleEYsTUFBTSxPQUFPLGlCQUFpQjtJQWUxQixZQUNZLGlCQUFvQyxFQUNwQyxRQUFrQixFQUdsQix1QkFBK0MsRUFHL0MsMkJBQXdEO1FBUHhELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUdsQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBRy9DLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUF0QnBELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUlyQyxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RELGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0QsV0FBTSxHQUFZLEtBQUssQ0FBQztR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O0lBQzFCLENBQUM7OzhHQWpHUSxpQkFBaUI7a0dBQWpCLGlCQUFpQixnUUMvQjlCLGkxREFxQ00scWREZlU7UUFDUixPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ1osS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDZixDQUFDO1NBQ0wsQ0FBQztLQUNMOzJGQUVRLGlCQUFpQjtrQkFaN0IsU0FBUzsrQkFDSSxXQUFXLGNBRVQ7d0JBQ1IsT0FBTyxDQUFDLE1BQU0sRUFBRTs0QkFDWixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNwQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0NBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUM7NkJBQ2YsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMOzswQkFxQkksSUFBSTs7MEJBQUksUUFBUTs7MEJBR2hCLFFBQVE7NENBckJHLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFFVyxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5ndE1vZGFsSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtbW9kYWwtaGVhZGVyL25ndC1tb2RhbC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24vbmd0LWFiaWxpdHktdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtbW9kYWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignZmFkZScsIFtcbiAgICAgICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlciwgOmxlYXZlJywgW1xuICAgICAgICAgICAgICAgIGFuaW1hdGUoMzAwKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgcHVibGljIGN1c3RvbUxheW91dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlRGVmYXVsdENsb3NlczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uQ2xvc2VNb2RhbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25PcGVuTW9kYWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgdmlld01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUga2V5ZG93bkV2ZW50V2FzQWRkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSB0YWlsU3R5bGl6YWJsZURpcmVjdGl2ZTogTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSxcblxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBwcml2YXRlIG5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZTogTmd0QWJpbGl0eVZhbGlkYXRpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLnRhaWxTdHlsaXphYmxlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gdGhpcy50YWlsU3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm5ndFN0eWxlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndE1vZGFsJywge1xuICAgICAgICAgICAgdzogJ21kOm1heC13LW1kJyxcbiAgICAgICAgICAgIHB5OiAncHktNCcsXG4gICAgICAgICAgICBweDogJ3B4LTYnLFxuICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyIGJvcmRlci10ZWFsLTUwMCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ292ZXJmbG93LXZpc2libGUnLFxuICAgICAgICAgICAgY29sb3I6IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQgPT09IHVuZGVmaW5lZCAmJiB0aGlzLm5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gIShhd2FpdCB0aGlzLm5ndEFiaWxpdHlWYWxpZGF0aW9uU2VydmljZS5oYXNNYW5hZ2VQZXJtaXNzaW9uKCkpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuXG4gICAgICAgIHRoaXMub25DbG9zZU1vZGFsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpIHtcbiAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmFkZEtleWRvd25FdmVudExpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuYmluZE9uQ2xvc2VNb2RhbEJ5SGVhZGVyU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5vbk9wZW5Nb2RhbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRLZXlkb3duRXZlbnRMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVEZWZhdWx0Q2xvc2VzICYmICF0aGlzLmtleWRvd25FdmVudFdhc0FkZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmtleWRvd25FdmVudFdhc0FkZGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09IDI3KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpZXdNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlVmlld01vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRPbkNsb3NlTW9kYWxCeUhlYWRlclN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBOZ3RNb2RhbEhlYWRlckNvbXBvbmVudC5vbkNsb3NlTW9kYWxCeUhlYWRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVZpZXdNb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdNb2RlID0gZmFsc2U7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggbWluLXctZnVsbCByZWxhdGl2ZSBqdXN0aWZ5LWNlbnRlciB0ZXh0LWdyYXktNzAwXCI+XG4gICAgPGRpdiAqbmdJZj1cImlzT3BlblwiIGNsYXNzPVwiZmxleCBmaXhlZCBtaW4tdy1mdWxsIGgtZnVsbCBpbnNldC0wIHB4LTYgcHktNiBtZDpweS0wIG1kOnB4LTAganVzdGlmeS1jZW50ZXJcIlxuICAgICAgICBzdHlsZT1cImJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjcpOyB6LWluZGV4OiAxMTAwICFpbXBvcnRhbnQ7XCIgQGZhZGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGlzYWJsZURlZmF1bHRDbG9zZXNcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJmaXhlZCBpbnNldC0wIGgtZnVsbCB3LWZ1bGwgYmctYmxhY2sgb3BhY2l0eS0wIGN1cnNvci1kZWZhdWx0IHotMFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPSdjbG9zZSgpJz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3cnLCAnb3ZlcmZsb3cnLCAnYm9yZGVyJ10pIH19IHJlbGF0aXZlIGJnLXdoaXRlIHctZnVsbCBzZWxmLWNlbnRlciByb3VuZGVkIHNoYWRvdy1sZyB6LTEwXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWF4LWhlaWdodDogODUlO1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1kZWZhdWx0IHRleHQtbGVmdCB7eyBuZ3RTdHlsZS5jb21waWxlKFsncHknLCAncHgnXSkgfX1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWN1c3RvbUxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd0LW1vZGFsLWhlYWRlciBjbGFzcz1cInctZnVsbFwiIFtkaXNhYmxlRGVmYXVsdENsb3Nlc109XCJkaXNhYmxlRGVmYXVsdENsb3Nlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdbaGVhZGVyXSc+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L25ndC1tb2RhbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbUxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBzdHlsZT1cIm1pbi1pbmxpbmUtc2l6ZTogMTAwJSAhaW1wb3J0YW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd0LW1vZGFsLWJvZHkgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0nW2JvZHldJz48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25ndC1tb2RhbC1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLUZvb3Rlci0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tTGF5b3V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3QtbW9kYWwtZm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdbZm9vdGVyXSc+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L25ndC1tb2RhbC1mb290ZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=