ngx-techlify-core 18.74.0 → 18.76.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.
Files changed (41) hide show
  1. package/esm2022/lib/base-model/index.mjs +3 -2
  2. package/esm2022/lib/base-model/techlify-form/contract/techlify-form.contract.mjs +191 -0
  3. package/esm2022/lib/base-model/techlify-form/techlify-form.component.mjs +134 -0
  4. package/esm2022/lib/base-model/techlify-list/techlify-list.component.mjs +17 -2
  5. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +76 -76
  6. package/esm2022/lib/entity-files/entity-file-list/entity-file-list.component.mjs +230 -0
  7. package/esm2022/lib/entity-files/entity-file-list.module.mjs +49 -0
  8. package/esm2022/lib/entity-files/index.mjs +2 -2
  9. package/esm2022/lib/pipes/file-size.pipe.mjs +21 -0
  10. package/esm2022/lib/role/permission/permissions-management.component.mjs +8 -5
  11. package/esm2022/lib/shared.module.mjs +57 -0
  12. package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +2 -2
  13. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +1 -2
  14. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +2 -2
  15. package/esm2022/lib/user-tenant-accept-invitation/user-tenant-accept-invitation.component.mjs +27 -0
  16. package/esm2022/lib/user-tenant-accept-invitation/user-tenant-accept-invitation.service.mjs +18 -0
  17. package/esm2022/public-api.mjs +7 -2
  18. package/fesm2022/ngx-techlify-core.mjs +6312 -6071
  19. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  20. package/lib/base-model/index.d.ts +2 -1
  21. package/lib/base-model/techlify-form/contract/techlify-form.contract.d.ts +18 -0
  22. package/lib/base-model/{techlify-form.component.d.ts → techlify-form/techlify-form.component.d.ts} +3 -3
  23. package/lib/base-model/techlify-list/techlify-list.component.d.ts +3 -1
  24. package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +17 -20
  25. package/lib/entity-files/entity-file-list/entity-file-list.component.d.ts +67 -0
  26. package/lib/entity-files/entity-file-list.module.d.ts +15 -0
  27. package/lib/entity-files/index.d.ts +1 -1
  28. package/lib/pipes/file-size.pipe.d.ts +7 -0
  29. package/lib/shared.module.d.ts +15 -0
  30. package/lib/subscription/subscription-form/subscription-form.component.d.ts +1 -1
  31. package/lib/subscription/subscription-package-listing/subscription-package-listing.component.d.ts +0 -1
  32. package/lib/techlify-view/techlify-view-form/techlify-view-form.component.d.ts +1 -1
  33. package/lib/user-tenant-accept-invitation/user-tenant-accept-invitation.component.d.ts +14 -0
  34. package/lib/user-tenant-accept-invitation/user-tenant-accept-invitation.service.d.ts +8 -0
  35. package/package.json +1 -1
  36. package/public-api.d.ts +5 -1
  37. package/esm2022/lib/base-model/techlify-form.component.mjs +0 -132
  38. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +0 -277
  39. package/esm2022/lib/entity-files/entity-files-view-all.module.mjs +0 -76
  40. package/lib/entity-files/entity-files-view-all.component.d.ts +0 -67
  41. package/lib/entity-files/entity-files-view-all.module.d.ts +0 -22
@@ -59,7 +59,9 @@ export class PermissionsManagementComponent {
59
59
  return false;
60
60
  }
61
61
  loadPermissions() {
62
- const filters = {};
62
+ const filters = {
63
+ 'sort_by': 'label|asc'
64
+ };
63
65
  if (this.clientId) {
64
66
  filters.client_id = this.clientId;
65
67
  }
@@ -74,7 +76,8 @@ export class PermissionsManagementComponent {
74
76
  loadRoles() {
75
77
  const filters = {
76
78
  loadPermissions: true,
77
- is_subscribed: true
79
+ is_subscribed: true,
80
+ sort_by: 'label|asc'
78
81
  };
79
82
  if (this.clientId) {
80
83
  filters.client_id = this.clientId;
@@ -113,12 +116,12 @@ export class PermissionsManagementComponent {
113
116
  }
114
117
  }
115
118
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionsManagementComponent, deps: [{ token: i1.HttpService }, { token: i1.AlertService }, { token: i2.ActivatedRoute }, { token: i1.CredentialsService }, { token: i1.ErrorHandlerService }, { token: i3.UserConfigService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PermissionsManagementComponent, selector: "role-permissions-management", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div class=\"d-flex flex-column justify-content-start gap-3\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0 fw-bold\">\n Manage Role Permissions\n </h3>\n <button *ngIf=\"!config.permissionConfig.disableUsers\" [routerLink]=\"['../users']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"icon fas fa-users\"></i> Users\n </button>\n <button *ngIf=\"!config.permissionConfig.disableRoles\" [routerLink]=\"['../roles']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"fas fa-user-md\"></i> Manage Roles\n </button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" formControlName=\"search\" matInput placeholder=\"Search Permissions\" type=\"text\" />\n <button (click)=\"filterForm.get('search').setValue('')\" *ngIf=\"filterForm.get('search').value\" mat-icon-button\n matSuffix type=\"button\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"roles\" appearance=\"outline\" class=\"ml-2\">\n <mat-label>Show Roles</mat-label>\n <mat-select formControlName='role_ids' multiple>\n <mat-option *ngFor=\"let role of roles\" [value]=\"role?.id\">\n {{ role.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content class=\"p-0\">\n <form>\n <table aria-describedby=\"Role Permissions\" class=\"table table-sm table-bordered table-condensed table-striped\">\n <thead>\n <tr>\n <th>Permissions</th>\n <ng-container *ngFor=\"let role of roles\">\n <th *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center\">\n {{ role.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of filteredPermissions\">\n <td>\n {{ permission.label }}\n </td>\n <ng-container *ngFor=\"let role of roles\">\n <td *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center align-middle\">\n <div class=\"d-flex justify-content-center align-items-center h-100\">\n <input (change)=\"updateRolePermission(role, permission)\"\n [checked]=\"role.hasPermission(permission.slug)\"\n [disabled]=\"isDisabled(role?.client_id == null, role.is_editable)\"\n name=\"{{role.id}}[{{permission?.label}}]\" type=\"checkbox\" />\n </div>\n </td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n </form>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i12.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PermissionsManagementComponent, selector: "role-permissions-management", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div class=\"d-flex flex-column justify-content-start m-2\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"m-0 fw-bold\">\n Manage Role Permissions\n </h5>\n <button *ngIf=\"!config.permissionConfig.disableUsers\" [routerLink]=\"['../users']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"icon fas fa-users\"></i> Users\n </button>\n <button *ngIf=\"!config.permissionConfig.disableRoles\" [routerLink]=\"['../roles']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"fas fa-user-md\"></i> Manage Roles\n </button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" formControlName=\"search\" matInput placeholder=\"Search Permissions\" type=\"text\" />\n <button (click)=\"filterForm.get('search').setValue('')\" *ngIf=\"filterForm.get('search').value\" mat-icon-button\n matSuffix type=\"button\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"roles\" appearance=\"outline\" class=\"ml-2\">\n <mat-label>Show Roles</mat-label>\n <mat-select formControlName='role_ids' multiple>\n <mat-option *ngFor=\"let role of roles\" [value]=\"role?.id\">\n {{ role.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2 p-0\">\n <form>\n <table aria-describedby=\"Role Permissions\" class=\"table table-sm table-bordered table-condensed table-striped\">\n <thead>\n <tr>\n <th>Permissions</th>\n <ng-container *ngFor=\"let role of roles\">\n <th *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center\">\n {{ role.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of filteredPermissions\">\n <td>\n {{ permission.label }}\n </td>\n <ng-container *ngFor=\"let role of roles\">\n <td *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center align-middle\">\n <div class=\"d-flex justify-content-center align-items-center h-100\">\n <input (change)=\"updateRolePermission(role, permission)\"\n [checked]=\"role.hasPermission(permission.slug)\" name=\"{{role.id}}[{{permission?.label}}]\"\n type=\"checkbox\" />\n </div>\n </td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n </form>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i12.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
117
120
  }
118
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionsManagementComponent, decorators: [{
119
122
  type: Component,
120
- args: [{ selector: 'role-permissions-management', template: "<div class=\"d-flex flex-column justify-content-start gap-3\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0 fw-bold\">\n Manage Role Permissions\n </h3>\n <button *ngIf=\"!config.permissionConfig.disableUsers\" [routerLink]=\"['../users']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"icon fas fa-users\"></i> Users\n </button>\n <button *ngIf=\"!config.permissionConfig.disableRoles\" [routerLink]=\"['../roles']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"fas fa-user-md\"></i> Manage Roles\n </button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" formControlName=\"search\" matInput placeholder=\"Search Permissions\" type=\"text\" />\n <button (click)=\"filterForm.get('search').setValue('')\" *ngIf=\"filterForm.get('search').value\" mat-icon-button\n matSuffix type=\"button\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"roles\" appearance=\"outline\" class=\"ml-2\">\n <mat-label>Show Roles</mat-label>\n <mat-select formControlName='role_ids' multiple>\n <mat-option *ngFor=\"let role of roles\" [value]=\"role?.id\">\n {{ role.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content class=\"p-0\">\n <form>\n <table aria-describedby=\"Role Permissions\" class=\"table table-sm table-bordered table-condensed table-striped\">\n <thead>\n <tr>\n <th>Permissions</th>\n <ng-container *ngFor=\"let role of roles\">\n <th *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center\">\n {{ role.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of filteredPermissions\">\n <td>\n {{ permission.label }}\n </td>\n <ng-container *ngFor=\"let role of roles\">\n <td *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center align-middle\">\n <div class=\"d-flex justify-content-center align-items-center h-100\">\n <input (change)=\"updateRolePermission(role, permission)\"\n [checked]=\"role.hasPermission(permission.slug)\"\n [disabled]=\"isDisabled(role?.client_id == null, role.is_editable)\"\n name=\"{{role.id}}[{{permission?.label}}]\" type=\"checkbox\" />\n </div>\n </td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n </form>\n </mat-card-content>\n </mat-card>\n</div>" }]
123
+ args: [{ selector: 'role-permissions-management', template: "<div class=\"d-flex flex-column justify-content-start m-2\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"m-0 fw-bold\">\n Manage Role Permissions\n </h5>\n <button *ngIf=\"!config.permissionConfig.disableUsers\" [routerLink]=\"['../users']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"icon fas fa-users\"></i> Users\n </button>\n <button *ngIf=\"!config.permissionConfig.disableRoles\" [routerLink]=\"['../roles']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"fas fa-user-md\"></i> Manage Roles\n </button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" formControlName=\"search\" matInput placeholder=\"Search Permissions\" type=\"text\" />\n <button (click)=\"filterForm.get('search').setValue('')\" *ngIf=\"filterForm.get('search').value\" mat-icon-button\n matSuffix type=\"button\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"roles\" appearance=\"outline\" class=\"ml-2\">\n <mat-label>Show Roles</mat-label>\n <mat-select formControlName='role_ids' multiple>\n <mat-option *ngFor=\"let role of roles\" [value]=\"role?.id\">\n {{ role.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2 p-0\">\n <form>\n <table aria-describedby=\"Role Permissions\" class=\"table table-sm table-bordered table-condensed table-striped\">\n <thead>\n <tr>\n <th>Permissions</th>\n <ng-container *ngFor=\"let role of roles\">\n <th *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center\">\n {{ role.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of filteredPermissions\">\n <td>\n {{ permission.label }}\n </td>\n <ng-container *ngFor=\"let role of roles\">\n <td *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center align-middle\">\n <div class=\"d-flex justify-content-center align-items-center h-100\">\n <input (change)=\"updateRolePermission(role, permission)\"\n [checked]=\"role.hasPermission(permission.slug)\" name=\"{{role.id}}[{{permission?.label}}]\"\n type=\"checkbox\" />\n </div>\n </td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n </form>\n </mat-card>\n</div>" }]
121
124
  }], ctorParameters: () => [{ type: i1.HttpService }, { type: i1.AlertService }, { type: i2.ActivatedRoute }, { type: i1.CredentialsService }, { type: i1.ErrorHandlerService }, { type: i3.UserConfigService }, { type: i4.FormBuilder }], propDecorators: { clientId: [{
122
125
  type: Input
123
126
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcGVybWlzc2lvbi9wZXJtaXNzaW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcm9sZS9wZXJtaXNzaW9uL3Blcm1pc3Npb25zLW1hbmFnZW1lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRTFEOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLDhCQUE4QjtJQVN2QyxZQUFvQixJQUFpQixFQUN6QixZQUEwQixFQUMxQixLQUFxQixFQUNyQixrQkFBc0MsRUFDdEMsWUFBaUMsRUFDbEMsaUJBQW9DLEVBQ25DLEVBQWU7UUFOUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUV2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFF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LFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUM7YUFDSSxDQUFDO1lBQ0Ysd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLGVBQWUsR0FBRyxVQUFVLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ3JHLEdBQUcsQ0FBQyxFQUFFO2dCQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZFLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7K0dBMUhRLDhCQUE4QjttR0FBOUIsOEJBQThCLHFHQ3JCM0MscXZHQXlFTTs7NEZEcERPLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDSSw2QkFBNkI7cVFBTzlCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBDcmVkZW50aWFsc1NlcnZpY2UsIEVycm9ySGFuZGxlclNlcnZpY2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi9yb2xlLm1vZGVsJztcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuL3Blcm1pc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlVc2VyQ29uZmlnLCBVc2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItY29uZmlnJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFJvbGUgUGVybWlzc2lvbnMgbWFuYWdlbWVudCBjb250cm9sbGVyXG4gKlxuICogQGF1dGhvciBKb3NodWEgS2lzc29vblxuICogQHNpbmNlIDIwMTYxMDEzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncm9sZS1wZXJtaXNzaW9ucy1tYW5hZ2VtZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGVybWlzc2lvbnMtbWFuYWdlbWVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uc01hbmFnZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJvbGVzOiBSb2xlW107XG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXTtcbiAgICBmaWx0ZXJlZFBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW107XG4gICAgQElucHV0KCkgY2xpZW50SWQ6IG51bWJlcjtcbiAgICBjb25maWc6IE11bHRpVXNlckNvbmZpZztcblxuICAgIGZpbHRlckZvcm06IEZvcm1Hcm91cDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGNyZWRlbnRpYWxzU2VydmljZTogQ3JlZGVudGlhbHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIHVzZXJDb25maWdTZXJ2aWNlOiBVc2VyQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLnVzZXJDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgc2VhcmNoOiBbJyddLFxuICAgICAgICAgICAgcm9sZV9pZHM6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldEZpbHRlcmVkUGVybWlzc2lvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZFBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHBlcm1pc3Npb246IFBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24ubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXModGhpcy5maWx0ZXJGb3JtLmdldCgnc2VhcmNoJykudmFsdWUudG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSgpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkUGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmdldCgnc2VhcmNoJykudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZShfID0+IHRoaXMuc2V0RmlsdGVyZWRQZXJtaXNzaW9ucygpKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRSb2xlcygpO1xuICAgICAgICAgICAgdGhpcy5sb2FkUGVybWlzc2lvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXNEaXNhYmxlZChpc0dsb2JhbDogYm9vbGVhbiwgaXNFZGl0YWJsZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXNHbG9iYWwgJiYgdGhpcy5jcmVkZW50aWFsc1NlcnZpY2UuY3JlZGVudGlhbHM/LnVzZXI/LnVzZXJfdHlwZV9pZCAhPT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuICFpc0VkaXRhYmxlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsb2FkUGVybWlzc2lvbnMoKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHt9O1xuICAgICAgICBpZiAodGhpcy5jbGllbnRJZCkge1xuICAgICAgICAgICAgZmlsdGVycy5jbGllbnRfaWQgPSB0aGlzLmNsaWVudElkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaHR0cC5nZXQoJ2FwaS9wZXJtaXNzaW9ucycsIHsgcGFyYW1zOiBmaWx0ZXJzIH0pLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcblxuICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEZpbHRlcmVkUGVybWlzc2lvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHRoZSBSb2xlcyBmcm9tIHRoZSBEQlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZFJvbGVzKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgICAgICBsb2FkUGVybWlzc2lvbnM6IHRydWUsXG4gICAgICAgICAgICBpc19zdWJzY3JpYmVkOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLmNsaWVudElkKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLmNsaWVudF9pZCA9IHRoaXMuY2xpZW50SWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmh0dHAuZ2V0KCdhcGkvcm9sZXMnLCB7IHBhcmFtczogZmlsdGVycyB9KS50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb2xlcyA9IG5ldyBBcnJheTxSb2xlPigpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgcm93IG9mIHJlcy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCByb2xlID0gbmV3IFJvbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcm9sZS5sb2FkRnJvbUpzb24ocm93KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb2xlcy5wdXNoKHJvbGUpO1xuICAgICAgICAgICAgICAgICAgICByb2xlLnNldHVwQmxhbmtQZXJtaXNzaW9uc0Zvck5nTW9kZWwoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmdldCgncm9sZV9pZHMnKS5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb2xlcy5tYXAocm9sZSA9PiByb2xlLmlkKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHVwZGF0ZVJvbGVQZXJtaXNzaW9uKHJvbGU6IFJvbGUsIHBlcm1pc3Npb246IFBlcm1pc3Npb24pIHtcbiAgICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgICAgICByaWQ6IHJvbGUuaWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBwZXJtaXNzaW9uLnNsdWdcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocm9sZS5oYXNQZXJtaXNzaW9uKHBlcm1pc3Npb24uc2x1ZykpIHtcbiAgICAgICAgICAgIC8qIFJlbW92ZSB0aGUgcGVybWlzc2lvbiAgKi9cbiAgICAgICAgICAgIHRoaXMuaHR0cC5wYXRjaCgnYXBpL3JvbGVzLycgKyByb2xlLmlkICsgJy9wZXJtaXNzaW9ucy8nICsgcGVybWlzc2lvbi5pZCArICcvcmVtb3ZlJywgZGF0YSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICByb2xlLnJlbW92ZVBlcm1pc3Npb24ocGVybWlzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KHBlcm1pc3Npb24ubGFiZWwgKyAnIHJlbW92ZWQnLCAnd2FybmluZycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvKiBBZGQgdGhlIHBlcm1pc3Npb24gKi9cbiAgICAgICAgICAgIHRoaXMuaHR0cC5wYXRjaCgnYXBpL3JvbGVzLycgKyByb2xlLmlkICsgJy9wZXJtaXNzaW9ucy8nICsgcGVybWlzc2lvbi5pZCArICcvYWRkJywgZGF0YSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICByb2xlLmFkZFBlcm1pc3Npb24ocGVybWlzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KHBlcm1pc3Npb24ubGFiZWwgKyAnIGFkZGVkJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1zdGFydCBnYXAtM1wiPlxuICA8bWF0LWNhcmQ+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwibS0wIGZ3LWJvbGRcIj5cbiAgICAgICAgICBNYW5hZ2UgUm9sZSBQZXJtaXNzaW9uc1xuICAgICAgICA8L2gzPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWNvbmZpZy5wZXJtaXNzaW9uQ29uZmlnLmRpc2FibGVVc2Vyc1wiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vdXNlcnMnXVwiIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGZhcyBmYS11c2Vyc1wiPjwvaT4gVXNlcnNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhY29uZmlnLnBlcm1pc3Npb25Db25maWcuZGlzYWJsZVJvbGVzXCIgW3JvdXRlckxpbmtdPVwiWycuLi9yb2xlcyddXCIgY2xhc3M9XCJtbC0xXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS11c2VyLW1kXCI+PC9pPiBNYW5hZ2UgUm9sZXNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFwiIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiU2VhcmNoIFBlcm1pc3Npb25zXCIgdHlwZT1cInRleHRcIiAvPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS5zZXRWYWx1ZSgnJylcIiAqbmdJZj1cImZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS52YWx1ZVwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgbWF0U3VmZml4IHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwicm9sZXNcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+U2hvdyBSb2xlczwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT0ncm9sZV9pZHMnIG11bHRpcGxlPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHJvbGUgb2Ygcm9sZXNcIiBbdmFsdWVdPVwicm9sZT8uaWRcIj5cbiAgICAgICAgICAgICAge3sgcm9sZS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG5cbiAgPG1hdC1jYXJkIGNsYXNzPVwibXQtMlwiPlxuICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwicC0wXCI+XG4gICAgICA8Zm9ybT5cbiAgICAgICAgPHRhYmxlIGFyaWEtZGVzY3JpYmVkYnk9XCJSb2xlIFBlcm1pc3Npb25zXCIgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zbSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1jb25kZW5zZWQgdGFibGUtc3RyaXBlZFwiPlxuICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoPlBlcm1pc3Npb25zPC90aD5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm9sZSBvZiByb2xlc1wiPlxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImZpbHRlckZvcm0uZ2V0KCdyb2xlX2lkcycpLnZhbHVlLmluY2x1ZGVzKHJvbGUuaWQpXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAge3sgcm9sZS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcGVybWlzc2lvbiBvZiBmaWx0ZXJlZFBlcm1pc3Npb25zXCI+XG4gICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICB7eyBwZXJtaXNzaW9uLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvbGUgb2Ygcm9sZXNcIj5cbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJmaWx0ZXJGb3JtLmdldCgncm9sZV9pZHMnKS52YWx1ZS5pbmNsdWRlcyhyb2xlLmlkKVwiIGNsYXNzPVwidGV4dC1jZW50ZXIgYWxpZ24tbWlkZGxlXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGgtMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cInVwZGF0ZVJvbGVQZXJtaXNzaW9uKHJvbGUsIHBlcm1pc3Npb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyb2xlLmhhc1Blcm1pc3Npb24ocGVybWlzc2lvbi5zbHVnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQocm9sZT8uY2xpZW50X2lkID09IG51bGwsIHJvbGUuaXNfZWRpdGFibGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwie3tyb2xlLmlkfX1be3twZXJtaXNzaW9uPy5sYWJlbH19XVwiIHR5cGU9XCJjaGVja2JveFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZm9ybT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG48L2Rpdj4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcGVybWlzc2lvbi9wZXJtaXNzaW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcm9sZS9wZXJtaXNzaW9uL3Blcm1pc3Npb25zLW1hbmFnZW1lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRTFEOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLDhCQUE4QjtJQVN2QyxZQUFvQixJQUFpQixFQUN6QixZQUEwQixFQUMxQixLQUFxQixFQUNyQixrQkFBc0MsRUFDdEMsWUFBaUMsRUFDbEMsaUJBQW9DLEVBQ25DLEVBQWU7UUFOUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUV2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFF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QUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUM7YUFDSSxDQUFDO1lBQ0Ysd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLGVBQWUsR0FBRyxVQUFVLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ3JHLEdBQUcsQ0FBQyxFQUFFO2dCQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZFLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7K0dBN0hRLDhCQUE4QjttR0FBOUIsOEJBQThCLHFHQ3JCM0MsZ2lHQXNFTTs7NEZEakRPLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDSSw2QkFBNkI7cVFBTzlCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBDcmVkZW50aWFsc1NlcnZpY2UsIEVycm9ySGFuZGxlclNlcnZpY2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi9yb2xlLm1vZGVsJztcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuL3Blcm1pc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlVc2VyQ29uZmlnLCBVc2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItY29uZmlnJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogUm9sZSBQZXJtaXNzaW9ucyBtYW5hZ2VtZW50IGNvbnRyb2xsZXJcbiAqXG4gKiBAYXV0aG9yIEpvc2h1YSBLaXNzb29uXG4gKiBAc2luY2UgMjAxNjEwMTNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdyb2xlLXBlcm1pc3Npb25zLW1hbmFnZW1lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wZXJtaXNzaW9ucy1tYW5hZ2VtZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zTWFuYWdlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcm9sZXM6IFJvbGVbXTtcbiAgICBwZXJtaXNzaW9uczogUGVybWlzc2lvbltdO1xuICAgIGZpbHRlcmVkUGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXTtcbiAgICBASW5wdXQoKSBjbGllbnRJZDogbnVtYmVyO1xuICAgIGNvbmZpZzogTXVsdGlVc2VyQ29uZmlnO1xuXG4gICAgZmlsdGVyRm9ybTogRm9ybUdyb3VwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgY3JlZGVudGlhbHNTZXJ2aWNlOiBDcmVkZW50aWFsc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdXNlckNvbmZpZ1NlcnZpY2U6IFVzZXJDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMudXNlckNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBzZWFyY2g6IFsnJ10sXG4gICAgICAgICAgICByb2xlX2lkczogW11cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0RmlsdGVyZWRQZXJtaXNzaW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybS5nZXQoJ3NlYXJjaCcpLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkUGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zXG4gICAgICAgICAgICAgICAgLmZpbHRlcigocGVybWlzc2lvbjogUGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5sYWJlbC50b0xvY2FsZUxvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLmZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS52YWx1ZS50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRQZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnM7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKF8gPT4gdGhpcy5zZXRGaWx0ZXJlZFBlcm1pc3Npb25zKCkpO1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZFJvbGVzKCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRQZXJtaXNzaW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpc0Rpc2FibGVkKGlzR2xvYmFsOiBib29sZWFuLCBpc0VkaXRhYmxlOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0dsb2JhbCAmJiB0aGlzLmNyZWRlbnRpYWxzU2VydmljZS5jcmVkZW50aWFscz8udXNlcj8udXNlcl90eXBlX2lkICE9PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gIWlzRWRpdGFibGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxvYWRQZXJtaXNzaW9ucygpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyczogYW55ID0ge1xuICAgICAgICAgICAgJ3NvcnRfYnknOiAnbGFiZWx8YXNjJ1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5jbGllbnRJZCkge1xuICAgICAgICAgICAgZmlsdGVycy5jbGllbnRfaWQgPSB0aGlzLmNsaWVudElkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaHR0cC5nZXQoJ2FwaS9wZXJtaXNzaW9ucycsIHsgcGFyYW1zOiBmaWx0ZXJzIH0pLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcblxuICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEZpbHRlcmVkUGVybWlzc2lvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHRoZSBSb2xlcyBmcm9tIHRoZSBEQlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZFJvbGVzKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgICAgICBsb2FkUGVybWlzc2lvbnM6IHRydWUsXG4gICAgICAgICAgICBpc19zdWJzY3JpYmVkOiB0cnVlLFxuICAgICAgICAgICAgc29ydF9ieTogJ2xhYmVsfGFzYydcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMuY2xpZW50SWQpIHtcbiAgICAgICAgICAgIGZpbHRlcnMuY2xpZW50X2lkID0gdGhpcy5jbGllbnRJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaHR0cC5nZXQoJ2FwaS9yb2xlcycsIHsgcGFyYW1zOiBmaWx0ZXJzIH0pLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvbGVzID0gbmV3IEFycmF5PFJvbGU+KCk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgb2YgcmVzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJvbGUgPSBuZXcgUm9sZSgpO1xuICAgICAgICAgICAgICAgICAgICByb2xlLmxvYWRGcm9tSnNvbihyb3cpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvbGVzLnB1c2gocm9sZSk7XG4gICAgICAgICAgICAgICAgICAgIHJvbGUuc2V0dXBCbGFua1Blcm1pc3Npb25zRm9yTmdNb2RlbCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdyb2xlX2lkcycpLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvbGVzLm1hcChyb2xlID0+IHJvbGUuaWQpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXBkYXRlUm9sZVBlcm1pc3Npb24ocm9sZTogUm9sZSwgcGVybWlzc2lvbjogUGVybWlzc2lvbikge1xuICAgICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgICAgIHJpZDogcm9sZS5pZCxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IHBlcm1pc3Npb24uc2x1Z1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChyb2xlLmhhc1Blcm1pc3Npb24ocGVybWlzc2lvbi5zbHVnKSkge1xuICAgICAgICAgICAgLyogUmVtb3ZlIHRoZSBwZXJtaXNzaW9uICAqL1xuICAgICAgICAgICAgdGhpcy5odHRwLnBhdGNoKCdhcGkvcm9sZXMvJyArIHJvbGUuaWQgKyAnL3Blcm1pc3Npb25zLycgKyBwZXJtaXNzaW9uLmlkICsgJy9yZW1vdmUnLCBkYXRhKS50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJvbGUucmVtb3ZlUGVybWlzc2lvbihwZXJtaXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQocGVybWlzc2lvbi5sYWJlbCArICcgcmVtb3ZlZCcsICd3YXJuaW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8qIEFkZCB0aGUgcGVybWlzc2lvbiAqL1xuICAgICAgICAgICAgdGhpcy5odHRwLnBhdGNoKCdhcGkvcm9sZXMvJyArIHJvbGUuaWQgKyAnL3Blcm1pc3Npb25zLycgKyBwZXJtaXNzaW9uLmlkICsgJy9hZGQnLCBkYXRhKS50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJvbGUuYWRkUGVybWlzc2lvbihwZXJtaXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQocGVybWlzc2lvbi5sYWJlbCArICcgYWRkZWQnLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LXN0YXJ0IG0tMlwiPlxuICA8bWF0LWNhcmQ+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgPGg1IGNsYXNzPVwibS0wIGZ3LWJvbGRcIj5cbiAgICAgICAgICBNYW5hZ2UgUm9sZSBQZXJtaXNzaW9uc1xuICAgICAgICA8L2g1PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWNvbmZpZy5wZXJtaXNzaW9uQ29uZmlnLmRpc2FibGVVc2Vyc1wiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vdXNlcnMnXVwiIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGZhcyBmYS11c2Vyc1wiPjwvaT4gVXNlcnNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhY29uZmlnLnBlcm1pc3Npb25Db25maWcuZGlzYWJsZVJvbGVzXCIgW3JvdXRlckxpbmtdPVwiWycuLi9yb2xlcyddXCIgY2xhc3M9XCJtbC0xXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS11c2VyLW1kXCI+PC9pPiBNYW5hZ2UgUm9sZXNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFwiIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiU2VhcmNoIFBlcm1pc3Npb25zXCIgdHlwZT1cInRleHRcIiAvPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS5zZXRWYWx1ZSgnJylcIiAqbmdJZj1cImZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS52YWx1ZVwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgbWF0U3VmZml4IHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwicm9sZXNcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+U2hvdyBSb2xlczwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT0ncm9sZV9pZHMnIG11bHRpcGxlPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHJvbGUgb2Ygcm9sZXNcIiBbdmFsdWVdPVwicm9sZT8uaWRcIj5cbiAgICAgICAgICAgICAge3sgcm9sZS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG5cbiAgPG1hdC1jYXJkIGNsYXNzPVwibXQtMiBwLTBcIj5cbiAgICA8Zm9ybT5cbiAgICAgIDx0YWJsZSBhcmlhLWRlc2NyaWJlZGJ5PVwiUm9sZSBQZXJtaXNzaW9uc1wiIGNsYXNzPVwidGFibGUgdGFibGUtc20gdGFibGUtYm9yZGVyZWQgdGFibGUtY29uZGVuc2VkIHRhYmxlLXN0cmlwZWRcIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aD5QZXJtaXNzaW9uczwvdGg+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb2xlIG9mIHJvbGVzXCI+XG4gICAgICAgICAgICAgIDx0aCAqbmdJZj1cImZpbHRlckZvcm0uZ2V0KCdyb2xlX2lkcycpLnZhbHVlLmluY2x1ZGVzKHJvbGUuaWQpXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHt7IHJvbGUubGFiZWwgfX1cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHBlcm1pc3Npb24gb2YgZmlsdGVyZWRQZXJtaXNzaW9uc1wiPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICB7eyBwZXJtaXNzaW9uLmxhYmVsIH19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm9sZSBvZiByb2xlc1wiPlxuICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJmaWx0ZXJGb3JtLmdldCgncm9sZV9pZHMnKS52YWx1ZS5pbmNsdWRlcyhyb2xlLmlkKVwiIGNsYXNzPVwidGV4dC1jZW50ZXIgYWxpZ24tbWlkZGxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBoLTEwMFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwidXBkYXRlUm9sZVBlcm1pc3Npb24ocm9sZSwgcGVybWlzc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyb2xlLmhhc1Blcm1pc3Npb24ocGVybWlzc2lvbi5zbHVnKVwiIG5hbWU9XCJ7e3JvbGUuaWR9fVt7e3Blcm1pc3Npb24/LmxhYmVsfX1dXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZm9ybT5cbiAgPC9tYXQtY2FyZD5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+ import { InfiniteScrollDirective } from "ngx-infinite-scroll";
5
+ import { MaterialModule } from "./material.module";
6
+ import { TechlifyDeleteButtonComponent } from './delete-button/techlify-delete-button.component';
7
+ import { TechlifyFormButtonComponent } from './form-button/techlify-form-button.component';
8
+ import { TechlifyIconModule } from './techlify-icon/techlify-icon.module';
9
+ import { SearchableSelectorModule } from './searchable-selector/searchable-selector.module';
10
+ import { FormConfigurationForFormModule } from './form-configuration/form-configuration-for-form/form-configuration-for-form.module';
11
+ import * as i0 from "@angular/core";
12
+ export class SharedModule {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SharedModule, imports: [InfiniteScrollDirective,
15
+ TechlifyDeleteButtonComponent,
16
+ TechlifyFormButtonComponent], exports: [CommonModule,
17
+ FormConfigurationForFormModule,
18
+ FormsModule,
19
+ InfiniteScrollDirective,
20
+ MaterialModule,
21
+ ReactiveFormsModule,
22
+ SearchableSelectorModule,
23
+ TechlifyDeleteButtonComponent,
24
+ TechlifyFormButtonComponent,
25
+ TechlifyIconModule] }); }
26
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedModule, imports: [TechlifyDeleteButtonComponent,
27
+ TechlifyFormButtonComponent, CommonModule,
28
+ FormConfigurationForFormModule,
29
+ FormsModule,
30
+ MaterialModule,
31
+ ReactiveFormsModule,
32
+ SearchableSelectorModule,
33
+ TechlifyIconModule] }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedModule, decorators: [{
36
+ type: NgModule,
37
+ args: [{
38
+ imports: [
39
+ InfiniteScrollDirective,
40
+ TechlifyDeleteButtonComponent,
41
+ TechlifyFormButtonComponent,
42
+ ],
43
+ exports: [
44
+ CommonModule,
45
+ FormConfigurationForFormModule,
46
+ FormsModule,
47
+ InfiniteScrollDirective,
48
+ MaterialModule,
49
+ ReactiveFormsModule,
50
+ SearchableSelectorModule,
51
+ TechlifyDeleteButtonComponent,
52
+ TechlifyFormButtonComponent,
53
+ TechlifyIconModule,
54
+ ]
55
+ }]
56
+ }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvc2hhcmVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFGQUFxRixDQUFDOztBQXFCckksTUFBTSxPQUFPLFlBQVk7K0dBQVosWUFBWTtnSEFBWixZQUFZLFlBakJqQix1QkFBdUI7WUFDdkIsNkJBQTZCO1lBQzdCLDJCQUEyQixhQUczQixZQUFZO1lBQ1osOEJBQThCO1lBQzlCLFdBQVc7WUFDWCx1QkFBdUI7WUFDdkIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsNkJBQTZCO1lBQzdCLDJCQUEyQjtZQUMzQixrQkFBa0I7Z0hBR2IsWUFBWSxZQWhCakIsNkJBQTZCO1lBQzdCLDJCQUEyQixFQUczQixZQUFZO1lBQ1osOEJBQThCO1lBQzlCLFdBQVc7WUFFWCxjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUd4QixrQkFBa0I7OzRGQUdiLFlBQVk7a0JBbkJ4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCx1QkFBdUI7d0JBQ3ZCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3FCQUM5QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWiw4QkFBOEI7d0JBQzlCLFdBQVc7d0JBQ1gsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4Qiw2QkFBNkI7d0JBQzdCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3FCQUNyQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gXCJuZ3gtaW5maW5pdGUtc2Nyb2xsXCI7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gXCIuL21hdGVyaWFsLm1vZHVsZVwiO1xuaW1wb3J0IHsgVGVjaGxpZnlEZWxldGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2RlbGV0ZS1idXR0b24vdGVjaGxpZnktZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVjaGxpZnlGb3JtQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWJ1dHRvbi90ZWNobGlmeS1mb3JtLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVjaGxpZnlJY29uTW9kdWxlIH0gZnJvbSAnLi90ZWNobGlmeS1pY29uL3RlY2hsaWZ5LWljb24ubW9kdWxlJztcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4vc2VhcmNoYWJsZS1zZWxlY3Rvci9zZWFyY2hhYmxlLXNlbGVjdG9yLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtQ29uZmlndXJhdGlvbkZvckZvcm1Nb2R1bGUgfSBmcm9tICcuL2Zvcm0tY29uZmlndXJhdGlvbi9mb3JtLWNvbmZpZ3VyYXRpb24tZm9yLWZvcm0vZm9ybS1jb25maWd1cmF0aW9uLWZvci1mb3JtLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICAgICAgVGVjaGxpZnlEZWxldGVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRlY2hsaWZ5Rm9ybUJ1dHRvbkNvbXBvbmVudCxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3JtQ29uZmlndXJhdGlvbkZvckZvcm1Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICAgICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSxcbiAgICAgICAgVGVjaGxpZnlEZWxldGVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRlY2hsaWZ5Rm9ybUJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgVGVjaGxpZnlJY29uTW9kdWxlLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHsgfSJdfQ==
@@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { finalize } from 'rxjs';
4
4
  import { SubscriptionStatus } from '../subscription-status.enum';
5
- import { TechlifyFormComponent } from '../../base-model/techlify-form.component';
5
+ import { TechlifyFormComponent } from '../../base-model/techlify-form/techlify-form.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../core/form-validator.service";
8
8
  import * as i2 from "@angular/material/dialog";
@@ -146,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
146
146
  }], tenantSubscriptionInfo: [{
147
147
  type: Input
148
148
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWZvcm0vc3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWZvcm0vc3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQXNCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFqRixNQUFNLE9BQU8seUJBQTBCLFNBQVEscUJBQXFCO0lBOEJsRSxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBYSxzQkFBc0IsQ0FBQyxLQUFVO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUN4QyxD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O1lBRW5DLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwRCxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEQsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2pDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDL0IsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFFdEMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQy9DLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFFSCxDQUFDOytHQXpJVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixxUENkdEMsdTNNQThHYzs7NEZEaEdELHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7b0xBTXhCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBOEJNLHNCQUFzQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uL3N1YnNjcmlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvblN0YXR1cyB9IGZyb20gJy4uL3N1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBUZWNobGlmeUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsL3RlY2hsaWZ5LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9mb3JtLXZhbGlkYXRvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXN1YnNjcmlwdGlvbi1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1YnNjcmlwdGlvbi1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25Gb3JtQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBpc1VwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJzY3JpcHRpb25QYWNrYWdlOiBhbnk7XG4gIEBPdXRwdXQoKSBzdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHNlbGVjdGVkVGVuYW50OiBhbnk7XG4gIHNlbGVjdGVkUGFja2FnZTogYW55O1xuXG4gIGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgICB0ZW5hbnRfaWQ6IHtcbiAgICAgIHJlcXVpcmVkOiAnVGVuYW50IGlzIHJlcXVpcmVkJyxcbiAgICB9LFxuICAgIHBhY2thZ2VfaWQ6IHtcbiAgICAgIHJlcXVpcmVkOiAnUGFja2FnZSBpcyByZXF1aXJlZCcsXG4gICAgfSxcbiAgICB0cmFpbF9zdGFydGVkX2F0OiB7XG4gICAgICByZXF1aXJlZDogXCJUcmFpbCBTdGFydGVkIEF0IGlzIHJlcXVpcmVkXCJcbiAgICB9LFxuICAgIHRyYWlsX2VuZGVkX2F0OiB7XG4gICAgICByZXF1aXJlZDogXCJUcmFpbCBFbmRlZCBBdCBpcyByZXF1aXJlZFwiXG4gICAgfSxcbiAgICBzdGFydGVkX2F0OiB7XG4gICAgICByZXF1aXJlZDogXCJTdGFydGVkIEF0IGlzIHJlcXVpcmVkXCJcbiAgICB9XG4gIH07XG5cbiAgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55LCBhbnk+O1xuICBpc1dvcmtpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBfdGVuYW50U3Vic2NyaXB0aW9uSW5mbzogYW55O1xuICBnZXQgdGVuYW50U3Vic2NyaXB0aW9uSW5mbygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl90ZW5hbnRTdWJzY3JpcHRpb25JbmZvO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRlbmFudFN1YnNjcmlwdGlvbkluZm8odmFsdWU6IGFueSkge1xuICAgIHRoaXMuaXNVcGRhdGUgPSB0cnVlO1xuICAgIHRoaXMuX3RlbmFudFN1YnNjcmlwdGlvbkluZm8gPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkVGVuYW50ID0gdmFsdWU/LnRlbmFudDtcbiAgICB0aGlzLnNlbGVjdGVkUGFja2FnZSA9IHZhbHVlPy5wYWNrYWdlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uU2VydmljZTogU3Vic2NyaXB0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG4gIH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgdGVuYW50X2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcGFja2FnZV9pZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGNvc3RfcGVyX3VuaXQ6IFsnJ10sXG4gICAgICB1bml0czogWycnXSxcbiAgICAgIHN0YXR1c19pZDogW1N1YnNjcmlwdGlvblN0YXR1cy5BQ1RJVkVdLFxuICAgICAgaXNfdW5pdF9saW1pdGF0aW9uX2VuZm9yY2VkOiBbZmFsc2VdLFxuICAgICAgaXNfdHJhaWw6IFtmYWxzZV0sXG4gICAgICBkZXRhaWxzOiBbJyddLFxuICAgICAgdHJhaWxfc3RhcnRlZF9hdDogWycnXSxcbiAgICAgIHRyYWlsX2VuZGVkX2F0OiBbJyddLFxuICAgICAgc3RhcnRlZF9hdDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGVuZGVkX2F0OiBbJyddLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uUGFja2FnZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFBhY2thZ2UgPSB0aGlzLnNlbGVjdGVkUGFja2FnZTtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgJ3BhY2thZ2VfaWQnOiB0aGlzLnN1YnNjcmlwdGlvblBhY2thZ2UuaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgZm9ybURpYWxvZyh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIGlmICh0aGlzLmlzVXBkYXRlKSB7XG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLnRlbmFudFN1YnNjcmlwdGlvbkluZm8pO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGVtcGxhdGVSZWYsIHtcbiAgICAgIHdpZHRoOiAnNzAwcHgnLFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5mb3JtLnZhbHVlO1xuICAgICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgICAgKFxuICAgICAgICB0aGlzLmlzVXBkYXRlID9cbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlKG1vZGVsKSA6XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25TZXJ2aWNlLnN0b3JlKG1vZGVsKVxuICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzV29ya2luZyA9IGZhbHNlKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHJlcz8uaXRlbSk7XG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVEYXRlcygpIHtcbiAgICBjb25zdCBzdGFydGVkQXQgPSB0aGlzLmZvcm0uZ2V0KCdzdGFydGVkX2F0Jyk7XG4gICAgY29uc3QgZW5kZWRBdCA9IHRoaXMuZm9ybS5nZXQoJ2VuZGVkX2F0Jyk7XG4gICAgY29uc3QgdHJhaWxTdGFydGVkQXQgPSB0aGlzLmZvcm0uZ2V0KCd0cmFpbF9zdGFydGVkX2F0Jyk7XG4gICAgY29uc3QgdHJhaWxFbmRlZEF0ID0gdGhpcy5mb3JtLmdldCgndHJhaWxfZW5kZWRfYXQnKTtcblxuICAgIGlmICh0aGlzLmZvcm0uZ2V0KCdpc190cmFpbCcpLnZhbHVlKSB7XG4gICAgICBlbmRlZEF0LnJlc2V0KCk7XG4gICAgICBzdGFydGVkQXQucmVzZXQoKTtcbiAgICAgIHN0YXJ0ZWRBdC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgIHN0YXJ0ZWRBdC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAgIHRyYWlsU3RhcnRlZEF0LmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRyYWlsU3RhcnRlZEF0LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIHRyYWlsRW5kZWRBdC5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0cmFpbEVuZGVkQXQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFpbFN0YXJ0ZWRBdC5yZXNldCgpO1xuICAgICAgdHJhaWxTdGFydGVkQXQuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICB0cmFpbFN0YXJ0ZWRBdC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0cmFpbEVuZGVkQXQucmVzZXQoKTtcbiAgICAgIHRyYWlsRW5kZWRBdC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgIHRyYWlsRW5kZWRBdC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAgIHN0YXJ0ZWRBdC5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICBzdGFydGVkQXQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICB9XG5cbn1cbiIsIjxidXR0b24gKm5nSWY9XCIhaXNVcGRhdGVcIiBtYXRUb29sdGlwPVwiQWRkIFN1YnNjcmlwdGlvblwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b25cbiAgICAoY2xpY2spPVwiZm9ybURpYWxvZyhmb3JtVGVtcGxhdGUpXCI+XG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG48L2J1dHRvbj5cbjxidXR0b24gKm5nSWY9XCJpc1VwZGF0ZVwiIG1hdFRvb2x0aXA9XCJFZGl0IFN1YnNjcmlwdGlvblwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b25cbiAgICAoY2xpY2spPVwiZm9ybURpYWxvZyhmb3JtVGVtcGxhdGUpXCI+XG4gICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuPC9idXR0b24+XG5cblxuPG5nLXRlbXBsYXRlICNmb3JtVGVtcGxhdGU+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImlzV29ya2luZ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICAgICAgICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj57e3N1YnNjcmlwdGlvblBhY2thZ2U/J1BhY2thZ2UnOidUZW5hbnQnfX0gU3Vic2NyaXB0aW9uIEZvcm08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0wLjVyZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGVuYW50PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvciBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGZvcm1Db250cm9sTmFtZT1cInRlbmFudF9pZFwiIHRpdGxlRmllbGQ9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwaVVybD1cImFwaS9jbGllbnRzXCIgc29ydEJ5PVwibmFtZXxBU0NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRUZW5hbnRcIj48L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCd0ZW5hbnRfaWQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKCd0ZW5hbnRfaWQnKX19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBmeEZsZXg9XCIwIDEgY2FsYyg1MCUtMC41cmVtKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlBhY2thZ2U8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFja2FnZV9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcGlVcmw9XCJhcGkvc3Vic2NyaXB0aW9uLXBhY2thZ2VzXCIgc29ydEJ5PVwidGl0bGV8QVNDXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkUGFja2FnZVwiPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3BhY2thZ2VfaWQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKCdwYWNrYWdlX2lkJyl9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeEZsZXg9XCIxMDBcIiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVNdWx0aXBsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiaXNfdHJhaWxcIiAoY2hhbmdlKT1cInZhbGlkYXRlRGF0ZXMoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJ0cnVlXCI+VHJhaWw8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJmYWxzZVwiPlBhaWQ8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmb3JtLmdldCgnaXNfdHJhaWwnKS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTAuNXJlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJzdGFydGVkX2F0XCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRlZF9hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGFydGVkIEF0XCIgW3JlcXVpcmVkXT1cIiFmb3JtLmdldCgnaXNfdHJhaWwnKS52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInN0YXJ0ZWRfYXRcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjc3RhcnRlZF9hdD48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnc3RhcnRlZF9hdCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ3N0YXJ0ZWRfYXQnKX19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0wLjVyZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiZW5kZWRfYXRcIiBmb3JtQ29udHJvbE5hbWU9XCJlbmRlZF9hdFwiIHBsYWNlaG9sZGVyPVwiRW5kZWQgQXRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJlbmRlZF9hdFwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNlbmRlZF9hdD48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uZ2V0KCdpc190cmFpbCcpLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIwIDEgY2FsYyg1MCUtMC41cmVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cInRyYWlsX3N0YXJ0ZWRfYXRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmFpbF9zdGFydGVkX2F0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRyYWlsIFN0YXJ0ZWQgQXRcIiBbcmVxdWlyZWRdPVwiZm9ybS5nZXQoJ2lzX3RyYWlsJykudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJ0cmFpbF9zdGFydGVkX2F0XCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3RyYWlsX3N0YXJ0ZWRfYXQ+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzRmllbGRWYWxpZCgndHJhaWxfc3RhcnRlZF9hdCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ3RyYWlsX3N0YXJ0ZWRfYXQnKX19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0wLjVyZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwidHJhaWxfZW5kZWRfYXRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmFpbF9lbmRlZF9hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUcmFpbCBFbmRlZCBBdFwiIFtyZXF1aXJlZF09XCJmb3JtLmdldCgnaXNfdHJhaWwnKS52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInRyYWlsX2VuZGVkX2F0XCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3RyYWlsX2VuZGVkX2F0PjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3RyYWlsX2VuZGVkX2F0JylcIj57e2dldEVycm9yTWVzc2FnZSgndHJhaWxfZW5kZWRfYXQnKX19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBmeEZsZXg9XCIwIDEgY2FsYyg1MCUtMC41cmVtKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNvc3QvVW5pdDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNvc3RfcGVyX3VuaXRcIiBwbGFjZWhvbGRlcj1cIkNvc3QvVW5pdFwiIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0wLjVyZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VW5pdHM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ1bml0c1wiIHBsYWNlaG9sZGVyPVwiVW5pdHNcIiAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeEZsZXg9XCIxMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJzd2l0Y2hcIiBmb3JtQ29udHJvbE5hbWU9XCJpc191bml0X2xpbWl0YXRpb25fZW5mb3JjZWRcIj5Jc1xuICAgICAgICAgICAgICAgICAgICAgICAgVW5pdCBFbmZvcmNlZFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMlwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIzMHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBmeEZsZXggbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdERpYWxvZ0Nsb3NlIGNsYXNzPVwid2hpdGUtYmctYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZnhGbGV4IG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNhdmVcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWZvcm0vc3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWZvcm0vc3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQXNCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVEvRixNQUFNLE9BQU8seUJBQTBCLFNBQVEscUJBQXFCO0lBOEJsRSxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBYSxzQkFBc0IsQ0FBQyxLQUFVO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUN4QyxD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O1lBRW5DLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwRCxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEQsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2pDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDL0IsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFFdEMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQy9DLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFFSCxDQUFDOytHQXpJVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixxUENkdEMsdTNNQThHYzs7NEZEaEdELHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7b0xBTXhCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBOEJNLHNCQUFzQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uL3N1YnNjcmlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvblN0YXR1cyB9IGZyb20gJy4uL3N1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBUZWNobGlmeUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsL3RlY2hsaWZ5LWZvcm0vdGVjaGxpZnktZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0tdmFsaWRhdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc3Vic2NyaXB0aW9uLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Vic2NyaXB0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWJzY3JpcHRpb24tZm9ybS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkZvcm1Db21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGlzVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1YnNjcmlwdGlvblBhY2thZ2U6IGFueTtcbiAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgc2VsZWN0ZWRUZW5hbnQ6IGFueTtcbiAgc2VsZWN0ZWRQYWNrYWdlOiBhbnk7XG5cbiAgZXJyb3JNZXNzYWdlczogYW55ID0ge1xuICAgIHRlbmFudF9pZDoge1xuICAgICAgcmVxdWlyZWQ6ICdUZW5hbnQgaXMgcmVxdWlyZWQnLFxuICAgIH0sXG4gICAgcGFja2FnZV9pZDoge1xuICAgICAgcmVxdWlyZWQ6ICdQYWNrYWdlIGlzIHJlcXVpcmVkJyxcbiAgICB9LFxuICAgIHRyYWlsX3N0YXJ0ZWRfYXQ6IHtcbiAgICAgIHJlcXVpcmVkOiBcIlRyYWlsIFN0YXJ0ZWQgQXQgaXMgcmVxdWlyZWRcIlxuICAgIH0sXG4gICAgdHJhaWxfZW5kZWRfYXQ6IHtcbiAgICAgIHJlcXVpcmVkOiBcIlRyYWlsIEVuZGVkIEF0IGlzIHJlcXVpcmVkXCJcbiAgICB9LFxuICAgIHN0YXJ0ZWRfYXQ6IHtcbiAgICAgIHJlcXVpcmVkOiBcIlN0YXJ0ZWQgQXQgaXMgcmVxdWlyZWRcIlxuICAgIH1cbiAgfTtcblxuICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnksIGFueT47XG4gIGlzV29ya2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIF90ZW5hbnRTdWJzY3JpcHRpb25JbmZvOiBhbnk7XG4gIGdldCB0ZW5hbnRTdWJzY3JpcHRpb25JbmZvKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbmFudFN1YnNjcmlwdGlvbkluZm87XG4gIH1cblxuICBASW5wdXQoKSBzZXQgdGVuYW50U3Vic2NyaXB0aW9uSW5mbyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5pc1VwZGF0ZSA9IHRydWU7XG4gICAgdGhpcy5fdGVuYW50U3Vic2NyaXB0aW9uSW5mbyA9IHZhbHVlO1xuICAgIHRoaXMuc2VsZWN0ZWRUZW5hbnQgPSB2YWx1ZT8udGVuYW50O1xuICAgIHRoaXMuc2VsZWN0ZWRQYWNrYWdlID0gdmFsdWU/LnBhY2thZ2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtVmFsaWRhdG9yU2VydmljZTogRm9ybVZhbGlkYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25TZXJ2aWNlOiBTdWJzY3JpcHRpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGZvcm1WYWxpZGF0b3JTZXJ2aWNlKTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBpbml0aWFsaXplKCkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaWQ6IFsnJ10sXG4gICAgICB0ZW5hbnRfaWQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBwYWNrYWdlX2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgY29zdF9wZXJfdW5pdDogWycnXSxcbiAgICAgIHVuaXRzOiBbJyddLFxuICAgICAgc3RhdHVzX2lkOiBbU3Vic2NyaXB0aW9uU3RhdHVzLkFDVElWRV0sXG4gICAgICBpc191bml0X2xpbWl0YXRpb25fZW5mb3JjZWQ6IFtmYWxzZV0sXG4gICAgICBpc190cmFpbDogW2ZhbHNlXSxcbiAgICAgIGRldGFpbHM6IFsnJ10sXG4gICAgICB0cmFpbF9zdGFydGVkX2F0OiBbJyddLFxuICAgICAgdHJhaWxfZW5kZWRfYXQ6IFsnJ10sXG4gICAgICBzdGFydGVkX2F0OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZW5kZWRfYXQ6IFsnJ10sXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25QYWNrYWdlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUGFja2FnZSA9IHRoaXMuc2VsZWN0ZWRQYWNrYWdlO1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyAncGFja2FnZV9pZCc6IHRoaXMuc3Vic2NyaXB0aW9uUGFja2FnZS5pZCB9KTtcbiAgICB9XG4gIH1cblxuICBmb3JtRGlhbG9nKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgaWYgKHRoaXMuaXNVcGRhdGUpIHtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMudGVuYW50U3Vic2NyaXB0aW9uSW5mbyk7XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0ZW1wbGF0ZVJlZiwge1xuICAgICAgd2lkdGg6ICc3MDBweCcsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgICAoXG4gICAgICAgIHRoaXMuaXNVcGRhdGUgP1xuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uU2VydmljZS51cGRhdGUobW9kZWwpIDpcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblNlcnZpY2Uuc3RvcmUobW9kZWwpXG4gICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQocmVzPy5pdGVtKTtcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZURhdGVzKCkge1xuICAgIGNvbnN0IHN0YXJ0ZWRBdCA9IHRoaXMuZm9ybS5nZXQoJ3N0YXJ0ZWRfYXQnKTtcbiAgICBjb25zdCBlbmRlZEF0ID0gdGhpcy5mb3JtLmdldCgnZW5kZWRfYXQnKTtcbiAgICBjb25zdCB0cmFpbFN0YXJ0ZWRBdCA9IHRoaXMuZm9ybS5nZXQoJ3RyYWlsX3N0YXJ0ZWRfYXQnKTtcbiAgICBjb25zdCB0cmFpbEVuZGVkQXQgPSB0aGlzLmZvcm0uZ2V0KCd0cmFpbF9lbmRlZF9hdCcpO1xuXG4gICAgaWYgKHRoaXMuZm9ybS5nZXQoJ2lzX3RyYWlsJykudmFsdWUpIHtcbiAgICAgIGVuZGVkQXQucmVzZXQoKTtcbiAgICAgIHN0YXJ0ZWRBdC5yZXNldCgpO1xuICAgICAgc3RhcnRlZEF0LmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgc3RhcnRlZEF0LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICAgICAgdHJhaWxTdGFydGVkQXQuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgdHJhaWxTdGFydGVkQXQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgdHJhaWxFbmRlZEF0LmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRyYWlsRW5kZWRBdC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYWlsU3RhcnRlZEF0LnJlc2V0KCk7XG4gICAgICB0cmFpbFN0YXJ0ZWRBdC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgIHRyYWlsU3RhcnRlZEF0LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIHRyYWlsRW5kZWRBdC5yZXNldCgpO1xuICAgICAgdHJhaWxFbmRlZEF0LmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgdHJhaWxFbmRlZEF0LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICAgICAgc3RhcnRlZEF0LmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHN0YXJ0ZWRBdC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gIH1cblxufVxuIiwiPGJ1dHRvbiAqbmdJZj1cIiFpc1VwZGF0ZVwiIG1hdFRvb2x0aXA9XCJBZGQgU3Vic2NyaXB0aW9uXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvblxuICAgIChjbGljayk9XCJmb3JtRGlhbG9nKGZvcm1UZW1wbGF0ZSlcIj5cbiAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuPGJ1dHRvbiAqbmdJZj1cImlzVXBkYXRlXCIgbWF0VG9vbHRpcD1cIkVkaXQgU3Vic2NyaXB0aW9uXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvblxuICAgIChjbGljayk9XCJmb3JtRGlhbG9nKGZvcm1UZW1wbGF0ZSlcIj5cbiAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuXG48bmctdGVtcGxhdGUgI2Zvcm1UZW1wbGF0ZT5cbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgICAgICAgICAgPGRpdiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7c3Vic2NyaXB0aW9uUGFja2FnZT8nUGFja2FnZSc6J1RlbmFudCd9fSBTdWJzY3JpcHRpb24gRm9ybTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTAuNXJlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5UZW5hbnQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgZm9ybUNvbnRyb2xOYW1lPVwidGVuYW50X2lkXCIgdGl0bGVGaWVsZD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBpVXJsPVwiYXBpL2NsaWVudHNcIiBzb3J0Qnk9XCJuYW1lfEFTQ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFRlbmFudFwiPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3RlbmFudF9pZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ3RlbmFudF9pZCcpfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0wLjVyZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UGFja2FnZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBmb3JtQ29udHJvbE5hbWU9XCJwYWNrYWdlX2lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwaVVybD1cImFwaS9zdWJzY3JpcHRpb24tcGFja2FnZXNcIiBzb3J0Qnk9XCJ0aXRsZXxBU0NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRQYWNrYWdlXCI+PC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncGFja2FnZV9pZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ3BhY2thZ2VfaWQnKX19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cblxuICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleD1cIjEwMFwiIGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZU11bHRpcGxlU2VsZWN0aW9uSW5kaWNhdG9yXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJpc190cmFpbFwiIChjaGFuZ2UpPVwidmFsaWRhdGVEYXRlcygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cInRydWVcIj5UcmFpbDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImZhbHNlXCI+UGFpZDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZvcm0uZ2V0KCdpc190cmFpbCcpLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIwIDEgY2FsYyg1MCUtMC41cmVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cInN0YXJ0ZWRfYXRcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydGVkX2F0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlN0YXJ0ZWQgQXRcIiBbcmVxdWlyZWRdPVwiIWZvcm0uZ2V0KCdpc190cmFpbCcpLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwic3RhcnRlZF9hdFwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNzdGFydGVkX2F0PjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdzdGFydGVkX2F0JylcIj57e2dldEVycm9yTWVzc2FnZSgnc3RhcnRlZF9hdCcpfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTAuNXJlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJlbmRlZF9hdFwiIGZvcm1Db250cm9sTmFtZT1cImVuZGVkX2F0XCIgcGxhY2Vob2xkZXI9XCJFbmRlZCBBdFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImVuZGVkX2F0XCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2VuZGVkX2F0PjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5nZXQoJ2lzX3RyYWlsJykudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0wLjVyZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwidHJhaWxfc3RhcnRlZF9hdFwiIGZvcm1Db250cm9sTmFtZT1cInRyYWlsX3N0YXJ0ZWRfYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHJhaWwgU3RhcnRlZCBBdFwiIFtyZXF1aXJlZF09XCJmb3JtLmdldCgnaXNfdHJhaWwnKS52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInRyYWlsX3N0YXJ0ZWRfYXRcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdHJhaWxfc3RhcnRlZF9hdD48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCd0cmFpbF9zdGFydGVkX2F0JylcIj57e2dldEVycm9yTWVzc2FnZSgndHJhaWxfc3RhcnRlZF9hdCcpfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTAuNXJlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJ0cmFpbF9lbmRlZF9hdFwiIGZvcm1Db250cm9sTmFtZT1cInRyYWlsX2VuZGVkX2F0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRyYWlsIEVuZGVkIEF0XCIgW3JlcXVpcmVkXT1cImZvcm0uZ2V0KCdpc190cmFpbCcpLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwidHJhaWxfZW5kZWRfYXRcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdHJhaWxfZW5kZWRfYXQ+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzRmllbGRWYWxpZCgndHJhaWxfZW5kZWRfYXQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKCd0cmFpbF9lbmRlZF9hdCcpfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0wLjVyZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q29zdC9Vbml0PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29zdF9wZXJfdW5pdFwiIHBsYWNlaG9sZGVyPVwiQ29zdC9Vbml0XCIgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTAuNXJlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Vbml0czwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInVuaXRzXCIgcGxhY2Vob2xkZXI9XCJVbml0c1wiIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleD1cIjEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cInN3aXRjaFwiIGZvcm1Db250cm9sTmFtZT1cImlzX3VuaXRfbGltaXRhdGlvbl9lbmZvcmNlZFwiPklzXG4gICAgICAgICAgICAgICAgICAgICAgICBVbml0IEVuZm9yY2VkXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjMwcHhcIiBmeExheW91dEFsaWduPVwiZW5kXCIgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGZ4RmxleCBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0RGlhbG9nQ2xvc2UgY2xhc3M9XCJ3aGl0ZS1iZy1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBmeEZsZXggbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -34,7 +34,6 @@ let SubscriptionPackageListingComponent = class SubscriptionPackageListingCompon
34
34
  this.dialog = dialog;
35
35
  this.fb = fb;
36
36
  this.displayedColumns = ['index', 'title', 'code', 'description', 'tenants_count', 'actions'];
37
- this.isWorking = false;
38
37
  this.filterFormGroup = this.fb.group({
39
38
  search: [''],
40
39
  sort_by: ['']
@@ -115,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
115
114
  type: Component,
116
115
  args: [{ selector: 'app-subscription-package-listing', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Subscription Packages</h5>\n <span fxFlex></span>\n <form [formGroup]=\"filterFormGroup\" class=\"filter-form\" fxLayout=\"row\">\n <mat-form-field appearance=\"outline\" class=\"nil-subscript-wrappe fl-md\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search..\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterFormGroup.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0 mt-2\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.title }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Code </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.code }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear class=\"w-description\"> Description\n </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.description }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenants_count\">\n <th mat-header-cell *matHeaderCellDef> Tenants </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.tenants_count ?? 0 }} tenants</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <div class=\"text-secondary\" fxLayout fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"view\" class=\"clickable\" matTooltip=\"View\"\n (click)=\"navigateToView(subscriptionPackage)\"></app-techlify-icon>\n <mat-slide-toggle style=\"transform: scale(0.8);\" [checked]=\"subscriptionPackage?.is_enabled\"\n color=\"primary\" (change)=\"confirmToggle($event,subscriptionPackage)\">Is Enabled\n </mat-slide-toggle>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>" }]
117
116
  }], ctorParameters: () => [{ type: i1.SubscriptionPackageService }, { type: i2.ActivatedRoute }, { type: i3.FilterService }, { type: i2.Router }, { type: i4.MatDialog }, { type: i5.UntypedFormBuilder }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLXBhY2thZ2UtbGlzdGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3N1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcGFja2FnZS1saXN0aW5nL3N1YnNjcmlwdGlvbi1wYWNrYWdlLWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXBhY2thZ2UtbGlzdGluZy9zdWJzY3JpcHRpb24tcGFja2FnZS1saXN0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNuRCxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFvQyxTQUFRLHFCQUFxQjtJQU01RSxZQUNVLDBCQUFzRCxFQUN0RCxjQUE4QixFQUM5QixhQUE0QixFQUM1QixNQUFjLEVBQ2QsTUFBaUIsRUFDakIsRUFBc0I7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFOQSwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFB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QUVELGNBQWMsQ0FBQyxtQkFBd0I7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLG1CQUFtQixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbkcsQ0FBQzsrR0EvRlUsbUNBQW1DO21HQUFuQyxtQ0FBbUMsK0ZDakJoRCw2NkhBdUVNOztBRHRETyxtQ0FBbUM7SUFOL0MsWUFBWSxFQUFFO0dBTUYsbUNBQW1DLENBaUcvQzs7NEZBakdZLG1DQUFtQztrQkFML0MsU0FBUzsrQkFDRSxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uUGFja2FnZVNlcnZpY2UgfSBmcm9tICcuLi9zdWJzY3JpcHRpb24tcGFja2FnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBUZWNobGlmeUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsL3RlY2hsaWZ5LWxpc3QvdGVjaGxpZnktbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc3Vic2NyaXB0aW9uLXBhY2thZ2UtbGlzdGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24tcGFja2FnZS1saXN0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Vic2NyaXB0aW9uLXBhY2thZ2UtbGlzdGluZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblBhY2thZ2VMaXN0aW5nQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnaW5kZXgnLCAndGl0bGUnLCAnY29kZScsICdkZXNjcmlwdGlvbicsICd0ZW5hbnRzX2NvdW50JywgJ2FjdGlvbnMnXTtcbiAgaXNXb3JraW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbHRlckZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvblBhY2thZ2VTZXJ2aWNlOiBTdWJzY3JpcHRpb25QYWNrYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2g6IFsnJ10sXG4gICAgICBzb3J0X2J5OiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhdGNoRmlsdGVycygpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB0aGlzLmxpc3RlbkZvckNoYW5nZXMoKTtcbiAgfVxuXG4gIGxpc3RlbkZvckNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5hcHBseUZpbHRlclRvUm91dGUoXG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC52YWx1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXRjaEZpbHRlcnMoKSB7XG4gICAgbGV0IHJvdXRlRmlsdGVycyA9IHRoaXMuZmlsdGVyU2VydmljZS5nZXRGaWx0ZXJzRnJvbVJvdXRlKFxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5zZXRWYWx1ZShyb3V0ZUZpbHRlcnMpO1xuICB9XG5cbiAgbG9hZERhdGEoKSB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlKSk7XG4gICAgZmlsdGVycy5wYWdlID0gdGhpcy5wYWdlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uUGFja2FnZVNlcnZpY2UuaW5kZXgoZmlsdGVycylcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlcz8ubGFzdF9wYWdlIHx8IHRoaXMucGFnZTtcbiAgICAgICAgaWYgKHJlcz8uZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzLmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgc29ydENvbHVtbihldmVudDogYW55KSB7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gZXZlbnQuZGlyZWN0aW9uLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcbiAgICB0aGlzLm1vZGVscyA9IFtdO1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnc29ydF9ieScpLnNldFZhbHVlKGAke2V2ZW50Py5hY3RpdmV9fCR7ZGlyZWN0aW9ufWApO1xuICB9XG5cbiAgY29uZmlybVRvZ2dsZShldmVudDogYW55LCBzdWJzY3JpcHRpb25QYWNrYWdlOiBhbnkpIHtcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3Vic2NyaXB0aW9uUGFja2FnZS5pc19lbmFibGVkO1xuICAgIGV2ZW50LnNvdXJjZS5jaGVja2VkID0gcHJldmlvdXNWYWx1ZTtcbiAgICBjb25zdCBhY3Rpb24gPSBwcmV2aW91c1ZhbHVlID8gJ0Rpc2FibGUnIDogJ0VuYWJsZSc7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3Rpb25Qb3B1cENvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiBgJHthY3Rpb259IFBhY2thZ2VgLFxuICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHRvICR7YWN0aW9uLnRvTG93ZXJDYXNlKCl9IHRoaXMgcGFja2FnZT9gLFxuICAgICAgfSxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2VcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoY29uZmlybWVkKSA9PiB7XG4gICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUGFja2FnZVNlcnZpY2UudG9nZ2xlKHN1YnNjcmlwdGlvblBhY2thZ2UuaWQpXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvblBhY2thZ2UuaXNfZW5hYmxlZCA9IHJlcz8uaXRlbT8uaXNfZW5hYmxlZDtcbiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5jaGVja2VkID0gc3Vic2NyaXB0aW9uUGFja2FnZS5pc19lbmFibGVkOyAvLyB1cGRhdGUgVUkgYWZ0ZXIgc3VjY2Vzc1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZlbnQuc291cmNlLmNoZWNrZWQgPSBwcmV2aW91c1ZhbHVlOyAvLyBlbnN1cmUgVUkgZnVsbHkgcmVzdG9yZWRcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5hdmlnYXRlVG9WaWV3KHN1YnNjcmlwdGlvblBhY2thZ2U6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi8ke3N1YnNjcmlwdGlvblBhY2thZ2U/LmlkfS92aWV3YF0sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJtLTJcIj5cbiAgICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm0tMFwiPlN1YnNjcmlwdGlvbiBQYWNrYWdlczwvaDU+XG4gICAgICAgIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybUdyb3VwXCIgY2xhc3M9XCJmaWx0ZXItZm9ybVwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cIm5pbC1zdWJzY3JpcHQtd3JhcHBlIGZsLW1kXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5TZWFyY2g8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uXCIgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImZpbHRlckZvcm1Hcm91cC5nZXQoJ3NlYXJjaCcpLnZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyRm9ybUdyb3VwLmdldCgnc2VhcmNoJykuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJwLTAgbXQtMlwiPlxuICAgICAgICA8dGFibGUgbWF0LXRhYmxlIG1hdFNvcnQgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMFwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIChtYXRTb3J0Q2hhbmdlKT1cInNvcnRDb2x1bW4oJGV2ZW50KVwiPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJzY3JpcHRpb25QYWNrYWdlOyBsZXQgaSA9IGluZGV4XCI+IHt7IGkrMSB9fSA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlciBkaXNhYmxlQ2xlYXI+IFRpdGxlIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1YnNjcmlwdGlvblBhY2thZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tzdWJzY3JpcHRpb25QYWNrYWdlPy50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29kZVwiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyIGRpc2FibGVDbGVhcj4gQ29kZSA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJzY3JpcHRpb25QYWNrYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c3Vic2NyaXB0aW9uUGFja2FnZT8uY29kZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlciBkaXNhYmxlQ2xlYXIgY2xhc3M9XCJ3LWRlc2NyaXB0aW9uXCI+IERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgc3Vic2NyaXB0aW9uUGFja2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3N1YnNjcmlwdGlvblBhY2thZ2U/LmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0ZW5hbnRzX2NvdW50XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gVGVuYW50cyA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJzY3JpcHRpb25QYWNrYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c3Vic2NyaXB0aW9uUGFja2FnZT8udGVuYW50c19jb3VudCA/PyAwIH19IHRlbmFudHM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1YnNjcmlwdGlvblBhY2thZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCIgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1pY29uIG5hbWU9XCJ2aWV3XCIgY2xhc3M9XCJjbGlja2FibGVcIiBtYXRUb29sdGlwPVwiVmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9WaWV3KHN1YnNjcmlwdGlvblBhY2thZ2UpXCI+PC9hcHAtdGVjaGxpZnktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIHN0eWxlPVwidHJhbnNmb3JtOiBzY2FsZSgwLjgpO1wiIFtjaGVja2VkXT1cInN1YnNjcmlwdGlvblBhY2thZ2U/LmlzX2VuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIChjaGFuZ2UpPVwiY29uZmlybVRvZ2dsZSgkZXZlbnQsc3Vic2NyaXB0aW9uUGFja2FnZSlcIj5JcyBFbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvbWF0LWNhcmQ+XG48L2Rpdj4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLXBhY2thZ2UtbGlzdGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3N1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcGFja2FnZS1saXN0aW5nL3N1YnNjcmlwdGlvbi1wYWNrYWdlLWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXBhY2thZ2UtbGlzdGluZy9zdWJzY3JpcHRpb24tcGFja2FnZS1saXN0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNuRCxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFvQyxTQUFRLHFCQUFxQjtJQUs1RSxZQUNVLDBCQUFzRCxFQUN0RCxjQUE4QixFQUM5QixhQUE0QixFQUM1QixNQUFjLEVBQ2QsTUFBaUIsRUFDakIsRUFBc0I7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFOQSwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFB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LElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxtQkFBbUIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLENBQUM7K0dBOUZVLG1DQUFtQzttR0FBbkMsbUNBQW1DLCtGQ2pCaEQsNjZIQXVFTTs7QUR0RE8sbUNBQW1DO0lBTi9DLFlBQVksRUFBRTtHQU1GLG1DQUFtQyxDQWdHL0M7OzRGQWhHWSxtQ0FBbUM7a0JBTC9DLFNBQVM7K0JBQ0Usa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvblBhY2thZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3Vic2NyaXB0aW9uLXBhY2thZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbC90ZWNobGlmeS1saXN0L3RlY2hsaWZ5LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2ZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9uLXBvcHVwJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXN1YnNjcmlwdGlvbi1wYWNrYWdlLWxpc3RpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Vic2NyaXB0aW9uLXBhY2thZ2UtbGlzdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1YnNjcmlwdGlvbi1wYWNrYWdlLWxpc3RpbmcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25QYWNrYWdlTGlzdGluZ0NvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ2luZGV4JywgJ3RpdGxlJywgJ2NvZGUnLCAnZGVzY3JpcHRpb24nLCAndGVuYW50c19jb3VudCcsICdhY3Rpb25zJ107XG4gIGZpbHRlckZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvblBhY2thZ2VTZXJ2aWNlOiBTdWJzY3JpcHRpb25QYWNrYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2g6IFsnJ10sXG4gICAgICBzb3J0X2J5OiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhdGNoRmlsdGVycygpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB0aGlzLmxpc3RlbkZvckNoYW5nZXMoKTtcbiAgfVxuXG4gIGxpc3RlbkZvckNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5hcHBseUZpbHRlclRvUm91dGUoXG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC52YWx1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXRjaEZpbHRlcnMoKSB7XG4gICAgbGV0IHJvdXRlRmlsdGVycyA9IHRoaXMuZmlsdGVyU2VydmljZS5nZXRGaWx0ZXJzRnJvbVJvdXRlKFxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5zZXRWYWx1ZShyb3V0ZUZpbHRlcnMpO1xuICB9XG5cbiAgbG9hZERhdGEoKSB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlKSk7XG4gICAgZmlsdGVycy5wYWdlID0gdGhpcy5wYWdlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uUGFja2FnZVNlcnZpY2UuaW5kZXgoZmlsdGVycylcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlcz8ubGFzdF9wYWdlIHx8IHRoaXMucGFnZTtcbiAgICAgICAgaWYgKHJlcz8uZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzLmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgc29ydENvbHVtbihldmVudDogYW55KSB7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gZXZlbnQuZGlyZWN0aW9uLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcbiAgICB0aGlzLm1vZGVscyA9IFtdO1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnc29ydF9ieScpLnNldFZhbHVlKGAke2V2ZW50Py5hY3RpdmV9fCR7ZGlyZWN0aW9ufWApO1xuICB9XG5cbiAgY29uZmlybVRvZ2dsZShldmVudDogYW55LCBzdWJzY3JpcHRpb25QYWNrYWdlOiBhbnkpIHtcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3Vic2NyaXB0aW9uUGFja2FnZS5pc19lbmFibGVkO1xuICAgIGV2ZW50LnNvdXJjZS5jaGVja2VkID0gcHJldmlvdXNWYWx1ZTtcbiAgICBjb25zdCBhY3Rpb24gPSBwcmV2aW91c1ZhbHVlID8gJ0Rpc2FibGUnIDogJ0VuYWJsZSc7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3Rpb25Qb3B1cENvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiBgJHthY3Rpb259IFBhY2thZ2VgLFxuICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHRvICR7YWN0aW9uLnRvTG93ZXJDYXNlKCl9IHRoaXMgcGFja2FnZT9gLFxuICAgICAgfSxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2VcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoY29uZmlybWVkKSA9PiB7XG4gICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUGFja2FnZVNlcnZpY2UudG9nZ2xlKHN1YnNjcmlwdGlvblBhY2thZ2UuaWQpXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvblBhY2thZ2UuaXNfZW5hYmxlZCA9IHJlcz8uaXRlbT8uaXNfZW5hYmxlZDtcbiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5jaGVja2VkID0gc3Vic2NyaXB0aW9uUGFja2FnZS5pc19lbmFibGVkOyAvLyB1cGRhdGUgVUkgYWZ0ZXIgc3VjY2Vzc1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZlbnQuc291cmNlLmNoZWNrZWQgPSBwcmV2aW91c1ZhbHVlOyAvLyBlbnN1cmUgVUkgZnVsbHkgcmVzdG9yZWRcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5hdmlnYXRlVG9WaWV3KHN1YnNjcmlwdGlvblBhY2thZ2U6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi8ke3N1YnNjcmlwdGlvblBhY2thZ2U/LmlkfS92aWV3YF0sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJtLTJcIj5cbiAgICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm0tMFwiPlN1YnNjcmlwdGlvbiBQYWNrYWdlczwvaDU+XG4gICAgICAgIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybUdyb3VwXCIgY2xhc3M9XCJmaWx0ZXItZm9ybVwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cIm5pbC1zdWJzY3JpcHQtd3JhcHBlIGZsLW1kXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5TZWFyY2g8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uXCIgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImZpbHRlckZvcm1Hcm91cC5nZXQoJ3NlYXJjaCcpLnZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyRm9ybUdyb3VwLmdldCgnc2VhcmNoJykuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJwLTAgbXQtMlwiPlxuICAgICAgICA8dGFibGUgbWF0LXRhYmxlIG1hdFNvcnQgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMFwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIChtYXRTb3J0Q2hhbmdlKT1cInNvcnRDb2x1bW4oJGV2ZW50KVwiPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJzY3JpcHRpb25QYWNrYWdlOyBsZXQgaSA9IGluZGV4XCI+IHt7IGkrMSB9fSA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlciBkaXNhYmxlQ2xlYXI+IFRpdGxlIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1YnNjcmlwdGlvblBhY2thZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tzdWJzY3JpcHRpb25QYWNrYWdlPy50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29kZVwiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyIGRpc2FibGVDbGVhcj4gQ29kZSA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJzY3JpcHRpb25QYWNrYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c3Vic2NyaXB0aW9uUGFja2FnZT8uY29kZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlciBkaXNhYmxlQ2xlYXIgY2xhc3M9XCJ3LWRlc2NyaXB0aW9uXCI+IERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgc3Vic2NyaXB0aW9uUGFja2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3N1YnNjcmlwdGlvblBhY2thZ2U/LmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0ZW5hbnRzX2NvdW50XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gVGVuYW50cyA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJzY3JpcHRpb25QYWNrYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c3Vic2NyaXB0aW9uUGFja2FnZT8udGVuYW50c19jb3VudCA/PyAwIH19IHRlbmFudHM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1YnNjcmlwdGlvblBhY2thZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCIgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1pY29uIG5hbWU9XCJ2aWV3XCIgY2xhc3M9XCJjbGlja2FibGVcIiBtYXRUb29sdGlwPVwiVmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9WaWV3KHN1YnNjcmlwdGlvblBhY2thZ2UpXCI+PC9hcHAtdGVjaGxpZnktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIHN0eWxlPVwidHJhbnNmb3JtOiBzY2FsZSgwLjgpO1wiIFtjaGVja2VkXT1cInN1YnNjcmlwdGlvblBhY2thZ2U/LmlzX2VuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIChjaGFuZ2UpPVwiY29uZmlybVRvZ2dsZSgkZXZlbnQsc3Vic2NyaXB0aW9uUGFja2FnZSlcIj5JcyBFbmFibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvbWF0LWNhcmQ+XG48L2Rpdj4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { finalize } from 'rxjs';
4
- import { TechlifyFormComponent } from '../../base-model/techlify-form.component';
4
+ import { TechlifyFormComponent } from '../../base-model/techlify-form/techlify-form.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../core/form-validator.service";
7
7
  import * as i2 from "@angular/material/dialog";
@@ -93,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
93
93
  }], viewInfo: [{
94
94
  type: Input
95
95
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdmlldy90ZWNobGlmeS12aWV3LWZvcm0vdGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdmlldy90ZWNobGlmeS12aWV3LWZvcm0vdGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFNUYsT0FBTyxFQUFzQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVFqRixNQUFNLE9BQU8seUJBQTBCLFNBQVEscUJBQXFCO0lBaUJsRSxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLEtBQVU7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQ0Usb0JBQTBDLEVBQ2xDLE1BQWlCLEVBQ2pCLEVBQXNCLEVBQ3RCLG1CQUF3QztRQUVoRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUpwQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUE3QnpDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFLNUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFRO1lBQ25CLEtBQUssRUFBRTtnQkFDTCxRQUFRLEVBQUUsbUJBQW1CO2FBQzlCO1NBQ0YsQ0FBQztJQXFCRixDQUFDO0lBR0QsUUFBUTtJQUNSLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUE2QjtRQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM3QyxLQUFLLEVBQUUsT0FBTztZQUNkLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM5QixLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDN0IsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzdCLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixDQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQ3hDO2lCQUNFLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FDdkM7aUJBQ0EsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDOytHQWhGVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw0T0NidEMsODdEQTBDYzs7NEZEN0JELHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7b0xBS3pCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBZ0JPLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlY2hsaWZ5Vmlld1NlcnZpY2UgfSBmcm9tICcuLi90ZWNobGlmeS12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbC90ZWNobGlmeS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS12YWxpZGF0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS12aWV3LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlY2hsaWZ5LXZpZXctZm9ybS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlWaWV3Rm9ybUNvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlzVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGNvbHVtbnM6IGFueTtcbiAgQElucHV0KCkgZmlsdGVyczogYW55O1xuICBASW5wdXQoKSBwYWdlQ29kZTogYW55O1xuXG4gIGlzV29ya2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2VzOiBhbnkgPSB7XG4gICAgdGl0bGU6IHtcbiAgICAgIHJlcXVpcmVkOiAnVGl0bGUgaXMgcmVxdWlyZWQnLFxuICAgIH1cbiAgfTtcblxuICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnksIGFueT47XG5cbiAgX3ZpZXdJbmZvOiBhbnk7XG4gIGdldCB2aWV3SW5mbygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92aWV3SW5mbztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB2aWV3SW5mbyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5pc1VwZGF0ZSA9IHRydWU7XG4gICAgdGhpcy5fdmlld0luZm8gPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRlY2hsaWZ5Vmlld1NlcnZpY2U6IFRlY2hsaWZ5Vmlld1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZm9ybVZhbGlkYXRvclNlcnZpY2UpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBpZDogWycnXSxcbiAgICAgIHRpdGxlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZGVzY3JpcHRpb246IFsnJ10sXG4gICAgfSk7XG4gIH1cblxuICBmb3JtRGlhbG9nKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgaWYgKHRoaXMuaXNVcGRhdGUpIHtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMudmlld0luZm8pO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGVtcGxhdGVSZWYsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5mb3JtLnZhbHVlO1xuICAgICAgbW9kZWwuY29sdW1ucyA9IHRoaXMuY29sdW1ucztcbiAgICAgIG1vZGVsLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnM7XG4gICAgICBtb2RlbC5wYWdlX2NvZGUgPSB0aGlzLnBhZ2VDb2RlO1xuXG4gICAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgICAoXG4gICAgICAgIHRoaXMuaXNVcGRhdGUgP1xuICAgICAgICAgIHRoaXMudGVjaGxpZnlWaWV3U2VydmljZS51cGRhdGUobW9kZWwpIDpcbiAgICAgICAgICB0aGlzLnRlY2hsaWZ5Vmlld1NlcnZpY2Uuc3RvcmUobW9kZWwpXG4gICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQocmVzPy5pdGVtKTtcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhaXNVcGRhdGVcIiBtYXRUb29sdGlwPVwiQWRkIFZpZXdcIiBjbGFzcz1cImNsaWNrYWJsZVwiIChjbGljayk9XCJmb3JtRGlhbG9nKGZvcm1UZW1wbGF0ZSlcIlxuICAgIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtci0xIHNtYWxsLWljb24gXCI+YWRkPC9tYXQtaWNvbj5cbiAgICA8ZGl2PlZpZXc8L2Rpdj5cbjwvZGl2PlxuPGJ1dHRvbiAqbmdJZj1cImlzVXBkYXRlXCIgbWF0VG9vbHRpcD1cIkVkaXQgVmlld1wiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImZvcm1EaWFsb2coZm9ybVRlbXBsYXRlKVwiPlxuICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG5cbjxuZy10ZW1wbGF0ZSAjZm9ybVRlbXBsYXRlPlxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJ0aGlzLmlzV29ya2luZ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICAgICAgICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5WaWV3IEZvcm08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMC4yNXJlbVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlRpdGxlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHBsYWNlaG9sZGVyPVwiVGl0bGVcIiByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCd0aXRsZScpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ3RpdGxlJyl9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RGVzY3JpcHRpb248L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgcGxhY2Vob2xkZXI9XCJEZXNjcmlwdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjMwcHhcIiBmeExheW91dEFsaWduPVwiZW5kXCIgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGZ4RmxleCBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0RGlhbG9nQ2xvc2UgY2xhc3M9XCJ3aGl0ZS1iZy1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBmeEZsZXggbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdmlldy90ZWNobGlmeS12aWV3LWZvcm0vdGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdmlldy90ZWNobGlmeS12aWV3LWZvcm0vdGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFNUYsT0FBTyxFQUFzQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVEvRixNQUFNLE9BQU8seUJBQTBCLFNBQVEscUJBQXFCO0lBaUJsRSxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLEtBQVU7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQ0Usb0JBQTBDLEVBQ2xDLE1BQWlCLEVBQ2pCLEVBQXNCLEVBQ3RCLG1CQUF3QztRQUVoRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUpwQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUE3QnpDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFLNUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFRO1lBQ25CLEtBQUssRUFBRTtnQkFDTCxRQUFRLEVBQUUsbUJBQW1CO2FBQzlCO1NBQ0YsQ0FBQztJQXFCRixDQUFDO0lBR0QsUUFBUTtJQUNSLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUE2QjtRQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM3QyxLQUFLLEVBQUUsT0FBTztZQUNkLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM5QixLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDN0IsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzdCLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixDQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQ3hDO2lCQUNFLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FDdkM7aUJBQ0EsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDOytHQWhGVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw0T0NidEMsODdEQTBDYzs7NEZEN0JELHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7b0xBS3pCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBZ0JPLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlY2hsaWZ5Vmlld1NlcnZpY2UgfSBmcm9tICcuLi90ZWNobGlmeS12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbC90ZWNobGlmeS1mb3JtL3RlY2hsaWZ5LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9mb3JtLXZhbGlkYXRvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlY2hsaWZ5LXZpZXctZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS12aWV3LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGVjaGxpZnktdmlldy1mb3JtLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVZpZXdGb3JtQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaXNVcGRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgY29sdW1uczogYW55O1xuICBASW5wdXQoKSBmaWx0ZXJzOiBhbnk7XG4gIEBJbnB1dCgpIHBhZ2VDb2RlOiBhbnk7XG5cbiAgaXNXb3JraW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgICB0aXRsZToge1xuICAgICAgcmVxdWlyZWQ6ICdUaXRsZSBpcyByZXF1aXJlZCcsXG4gICAgfVxuICB9O1xuXG4gIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueSwgYW55PjtcblxuICBfdmlld0luZm86IGFueTtcbiAgZ2V0IHZpZXdJbmZvKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdJbmZvO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHZpZXdJbmZvKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmlzVXBkYXRlID0gdHJ1ZTtcbiAgICB0aGlzLl92aWV3SW5mbyA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdGVjaGxpZnlWaWV3U2VydmljZTogVGVjaGxpZnlWaWV3U2VydmljZVxuICApIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG4gIH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgdGl0bGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICB9KTtcbiAgfVxuXG4gIGZvcm1EaWFsb2codGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICBpZiAodGhpcy5pc1VwZGF0ZSkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy52aWV3SW5mbyk7XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0ZW1wbGF0ZVJlZiwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgICBtb2RlbC5jb2x1bW5zID0gdGhpcy5jb2x1bW5zO1xuICAgICAgbW9kZWwuZmlsdGVycyA9IHRoaXMuZmlsdGVycztcbiAgICAgIG1vZGVsLnBhZ2VfY29kZSA9IHRoaXMucGFnZUNvZGU7XG5cbiAgICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICAgIChcbiAgICAgICAgdGhpcy5pc1VwZGF0ZSA/XG4gICAgICAgICAgdGhpcy50ZWNobGlmeVZpZXdTZXJ2aWNlLnVwZGF0ZShtb2RlbCkgOlxuICAgICAgICAgIHRoaXMudGVjaGxpZnlWaWV3U2VydmljZS5zdG9yZShtb2RlbClcbiAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdChyZXM/Lml0ZW0pO1xuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFpc1VwZGF0ZVwiIG1hdFRvb2x0aXA9XCJBZGQgVmlld1wiIGNsYXNzPVwiY2xpY2thYmxlXCIgKGNsaWNrKT1cImZvcm1EaWFsb2coZm9ybVRlbXBsYXRlKVwiXG4gICAgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1yLTEgc21hbGwtaWNvbiBcIj5hZGQ8L21hdC1pY29uPlxuICAgIDxkaXY+VmlldzwvZGl2PlxuPC9kaXY+XG48YnV0dG9uICpuZ0lmPVwiaXNVcGRhdGVcIiBtYXRUb29sdGlwPVwiRWRpdCBWaWV3XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZm9ybURpYWxvZyhmb3JtVGVtcGxhdGUpXCI+XG4gICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuPC9idXR0b24+XG5cblxuPG5nLXRlbXBsYXRlICNmb3JtVGVtcGxhdGU+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cInRoaXMuaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgICAgICAgICAgPGRpdiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlZpZXcgRm9ybTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIwLjI1cmVtXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGl0bGU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgcGxhY2Vob2xkZXI9XCJUaXRsZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3RpdGxlJylcIj57e2dldEVycm9yTWVzc2FnZSgndGl0bGUnKX19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EZXNjcmlwdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBwbGFjZWhvbGRlcj1cIkRlc2NyaXB0aW9uXCIgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTJcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMzBweFwiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZnhGbGV4IG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXREaWFsb2dDbG9zZSBjbGFzcz1cIndoaXRlLWJnLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGZ4RmxleCBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBTYXZlXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbjwvbmctdGVtcGxhdGU+Il19
@@ -0,0 +1,27 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component } from '@angular/core';
3
+ import { switchMap } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "./user-tenant-accept-invitation.service";
7
+ import * as i3 from "@angular/common";
8
+ export class UserTenantAcceptInvitationComponent {
9
+ constructor(activatedRoute, userTenantAcceptInvitationService) {
10
+ this.activatedRoute = activatedRoute;
11
+ this.userTenantAcceptInvitationService = userTenantAcceptInvitationService;
12
+ }
13
+ ngOnInit() {
14
+ this.activatedRoute.paramMap.pipe(switchMap((paramMap) => {
15
+ this.invitationCode = paramMap.get('invitationCode');
16
+ return this.userTenantAcceptInvitationService.show(this.invitationCode);
17
+ }))
18
+ .subscribe((res) => this.userTenant = res?.item);
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserTenantAcceptInvitationComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.UserTenantAcceptInvitationService }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: UserTenantAcceptInvitationComponent, isStandalone: true, selector: "app-user-tenant-accept-invitation", ngImport: i0, template: "<div *ngIf=\"!userTenant\" class=\"jumbotron-primary container mt-4\">\n <p class=\"mb-0\">\n We are working on adding you to the company.\n </p>\n</div>\n\n<div class=\"jumbotron-success container mt-4\" *ngIf=\"userTenant\">\n <p class=\"mb-0\">\n You have accepted the invitation and are now able to access {{userTenant?.tenant?.name}} via your user menu.\n </p>\n</div>", styles: [".jumbotron-primary{padding:2rem;margin-bottom:1.5rem;border-radius:.5rem;background:#e7f1ff;border:1px solid #b6d4fe;color:#084298}.jumbotron-success{padding:2rem;margin-bottom:1.5rem;border-radius:.5rem;background:#d1e7dd;border:1px solid #a3cfbb;color:#0f5132}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserTenantAcceptInvitationComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'app-user-tenant-accept-invitation', standalone: true, imports: [CommonModule], template: "<div *ngIf=\"!userTenant\" class=\"jumbotron-primary container mt-4\">\n <p class=\"mb-0\">\n We are working on adding you to the company.\n </p>\n</div>\n\n<div class=\"jumbotron-success container mt-4\" *ngIf=\"userTenant\">\n <p class=\"mb-0\">\n You have accepted the invitation and are now able to access {{userTenant?.tenant?.name}} via your user menu.\n </p>\n</div>", styles: [".jumbotron-primary{padding:2rem;margin-bottom:1.5rem;border-radius:.5rem;background:#e7f1ff;border:1px solid #b6d4fe;color:#084298}.jumbotron-success{padding:2rem;margin-bottom:1.5rem;border-radius:.5rem;background:#d1e7dd;border:1px solid #a3cfbb;color:#0f5132}\n"] }]
26
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.UserTenantAcceptInvitationService }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW5hbnQtYWNjZXB0LWludml0YXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi91c2VyLXRlbmFudC1hY2NlcHQtaW52aXRhdGlvbi91c2VyLXRlbmFudC1hY2NlcHQtaW52aXRhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXItdGVuYW50LWFjY2VwdC1pbnZpdGF0aW9uL3VzZXItdGVuYW50LWFjY2VwdC1pbnZpdGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBU2pDLE1BQU0sT0FBTyxtQ0FBbUM7SUFJOUMsWUFBb0IsY0FBOEIsRUFDeEMsaUNBQW9FO1FBRDFELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUN4QyxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO0lBQzFFLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMvQixTQUFTLENBQUMsQ0FBQyxRQUFrQixFQUFPLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFFLENBQUM7WUFDdEQsT0FBTyxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FDSDthQUNFLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDekQsQ0FBQzsrR0FoQlUsbUNBQW1DO21HQUFuQyxtQ0FBbUMsNkZDYmhELGlaQVVNLGlVRERNLFlBQVk7OzRGQUlYLG1DQUFtQztrQkFQL0MsU0FBUzsrQkFDRSxtQ0FBbUMsY0FDakMsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1NYXAgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVXNlclRlbmFudEFjY2VwdEludml0YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi91c2VyLXRlbmFudC1hY2NlcHQtaW52aXRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci10ZW5hbnQtYWNjZXB0LWludml0YXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItdGVuYW50LWFjY2VwdC1pbnZpdGF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3VzZXItdGVuYW50LWFjY2VwdC1pbnZpdGF0aW9uLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyVGVuYW50QWNjZXB0SW52aXRhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGludml0YXRpb25Db2RlPzogc3RyaW5nO1xuICB1c2VyVGVuYW50OiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB1c2VyVGVuYW50QWNjZXB0SW52aXRhdGlvblNlcnZpY2U6IFVzZXJUZW5hbnRBY2NlcHRJbnZpdGF0aW9uU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1NYXAucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocGFyYW1NYXA6IFBhcmFtTWFwKTogYW55ID0+IHtcbiAgICAgICAgdGhpcy5pbnZpdGF0aW9uQ29kZSA9IHBhcmFtTWFwLmdldCgnaW52aXRhdGlvbkNvZGUnKSE7XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJUZW5hbnRBY2NlcHRJbnZpdGF0aW9uU2VydmljZS5zaG93KHRoaXMuaW52aXRhdGlvbkNvZGUpO1xuICAgICAgfSlcbiAgICApXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4gdGhpcy51c2VyVGVuYW50ID0gcmVzPy5pdGVtKVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIXVzZXJUZW5hbnRcIiBjbGFzcz1cImp1bWJvdHJvbi1wcmltYXJ5IGNvbnRhaW5lciBtdC00XCI+XG4gICAgPHAgY2xhc3M9XCJtYi0wXCI+XG4gICAgICAgIFdlIGFyZSB3b3JraW5nIG9uIGFkZGluZyB5b3UgdG8gdGhlIGNvbXBhbnkuXG4gICAgPC9wPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJqdW1ib3Ryb24tc3VjY2VzcyBjb250YWluZXIgbXQtNFwiICpuZ0lmPVwidXNlclRlbmFudFwiPlxuICAgIDxwIGNsYXNzPVwibWItMFwiPlxuICAgICAgICBZb3UgaGF2ZSBhY2NlcHRlZCB0aGUgaW52aXRhdGlvbiBhbmQgYXJlIG5vdyBhYmxlIHRvIGFjY2VzcyB7e3VzZXJUZW5hbnQ/LnRlbmFudD8ubmFtZX19IHZpYSB5b3VyIHVzZXIgbWVudS5cbiAgICA8L3A+XG48L2Rpdj4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyService } from '../base-model/techlify-service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../core/http.service";
5
+ export class UserTenantAcceptInvitationService extends TechlifyService {
6
+ constructor(http) {
7
+ super(http, 'user-tenant-accept-invitation');
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserTenantAcceptInvitationService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
10
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserTenantAcceptInvitationService, providedIn: 'root' }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserTenantAcceptInvitationService, decorators: [{
13
+ type: Injectable,
14
+ args: [{
15
+ providedIn: 'root'
16
+ }]
17
+ }], ctorParameters: () => [{ type: i1.HttpService }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW5hbnQtYWNjZXB0LWludml0YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci10ZW5hbnQtYWNjZXB0LWludml0YXRpb24vdXNlci10ZW5hbnQtYWNjZXB0LWludml0YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBTWpFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxlQUFlO0lBRXBFLFlBQVksSUFBaUI7UUFDM0IsS0FBSyxDQUFDLElBQUksRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQy9DLENBQUM7K0dBSlUsaUNBQWlDO21IQUFqQyxpQ0FBaUMsY0FGaEMsTUFBTTs7NEZBRVAsaUNBQWlDO2tCQUg3QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZSB9IGZyb20gJy4uL2Jhc2UtbW9kZWwvdGVjaGxpZnktc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclRlbmFudEFjY2VwdEludml0YXRpb25TZXJ2aWNlIGV4dGVuZHMgVGVjaGxpZnlTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihodHRwOiBIdHRwU2VydmljZSkge1xuICAgIHN1cGVyKGh0dHAsICd1c2VyLXRlbmFudC1hY2NlcHQtaW52aXRhdGlvbicpO1xuICB9XG59XG4iXX0=